Initial commit: pygenium as git submodule

This commit is contained in:
2026-08-07 14:54:45 -04:00
commit 581436ed23
61 changed files with 9331 additions and 0 deletions

50
tasks/01-scaffolding.md Normal file
View File

@@ -0,0 +1,50 @@
# 01. Extension scaffolding and project structure
meta:
id: pygienium-01
feature: pygienium
priority: P1
depends_on: []
tags: [infrastructure, setup]
objective:
- Establish the pygienium extension directory, package.json, tsconfig, and a minimal index.ts that loads without error and surfaces a startup notification.
deliverables:
- `pygienium/package.json` with pi package manifest (`pi.extensions`, keywords, peer deps echoing piolium)
- `pygienium/tsconfig.json` (extends the repo tsconfig)
- `pygienium/src/index.ts` default-export factory registering a `session_start` notify + a stub `/pygienium-help`
- `pygienium/` subdirectories: `src/`, `src/modes/`, `src/checks/`, `agents/`, `skills/` (empty, with `.gitkeep`)
- Verified load: `pi -e ./pygienium/src/index.ts -p "/pygienium-help"` runs without throwing
steps:
- Create the `pygienium/` tree and empty subdirectories
- Author `package.json`: name `pygienium`, type module, `pi.extensions: ["./src/index.ts"]`, peerDeps mirroring piolium (`@earendil-works/pi-coding-agent`, `typebox`, etc.), engines bun >=1.1.0
- Author `tsconfig.json` referencing the parent `tsconfig.json`
- Author `src/index.ts`: import `ExtensionAPI`, default-export factory that registers a `session_start` notify ("Pygienium loaded. Run /pygienium-help.") and a `/pygienium-help` command printing a placeholder line
- Confirm the extension auto-discovers from `~/.pi/agent/extensions/pygienium/src/index.ts` (per docs, subdir `index.ts`); if discovery prefers `pygienium/index.ts`, adjust entry path in package.json
tests:
- Manual: run `pi -e ./pygienium/src/index.ts -p "/pygienium-help"`; confirm the placeholder help renders
- Manual: start pi in `~/.pi/agent/extensions` and confirm the startup notify appears without `session_start` errors
acceptance_criteria:
- The directory tree and package.json exist with valid JSON
- `pi` loads the extension via auto-discovery with no load errors
- `/pygienium-help` responds with a non-empty line
validation:
- `node -e "JSON.parse(require('fs').readFileSync('pygienium/package.json','utf8'))"` exits 0
- `pi -e ./pygienium/src/index.ts -p "/pygienium-help"` prints the placeholder
notes:
- Place the extension in `~/.pi/agent/extensions/pygienium/` so it auto-discovers and hot-reloads with `/reload`
- Do NOT add backward-compat shims or migration paths (engineering rule)
- Keep index.ts minimal here; full command wiring lands in task 06