@agimon-ai/po 0.0.0-alpha.2 → 0.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -11
- package/dist/antigravity.mjs +1 -2
- package/dist/baseCommand.mjs +1 -2
- package/dist/bin/cli.cjs +37 -14
- package/dist/bin/cli.cjs.map +1 -1
- package/dist/bin/cli.mjs +34 -14
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/bin/{doomRunner.cjs → poRunner.cjs} +5 -5
- package/dist/bin/poRunner.cjs.map +1 -0
- package/dist/bin/{doomRunner.d.mts → poRunner.d.mts} +2 -2
- package/dist/bin/poRunner.d.mts.map +1 -0
- package/dist/bin/{doomRunner.mjs → poRunner.mjs} +5 -5
- package/dist/bin/poRunner.mjs.map +1 -0
- package/dist/builders/cli/extensionAssembler/index.cjs +14 -12
- package/dist/builders/cli/extensionAssembler/index.cjs.map +1 -1
- package/dist/builders/cli/extensionAssembler/index.d.mts +2 -1
- package/dist/builders/cli/extensionAssembler/index.d.mts.map +1 -1
- package/dist/builders/cli/extensionAssembler/index.mjs +14 -12
- package/dist/builders/cli/extensionAssembler/index.mjs.map +1 -1
- package/dist/catalog/index.json +68 -51
- package/dist/cliApp.mjs +1 -2
- package/dist/codex.mjs +1 -2
- package/dist/compatibilityCommand.mjs +1 -2
- package/dist/compatibilityContext.mjs +1 -2
- package/dist/compatibilityOptions.mjs +1 -2
- package/dist/config.cjs +57 -12
- package/dist/config.d.mts +3 -3
- package/dist/config.mjs +3 -3
- package/dist/doctorCommand.mjs +1 -2
- package/dist/emitMcpCommand.mjs +1 -2
- package/dist/explainCommand.mjs +1 -2
- package/dist/extensions/server.cjs +11 -7
- package/dist/extensions/server.cjs.map +1 -1
- package/dist/extensions/server.d.mts +2 -2
- package/dist/extensions/server.d.mts.map +1 -1
- package/dist/extensions/server.mjs +12 -8
- package/dist/extensions/server.mjs.map +1 -1
- package/dist/harnessContext.mjs +1 -2
- package/dist/harnessState.cjs +66 -11
- package/dist/harnessState.d.mts +2 -2
- package/dist/harnessState.mjs +1 -2
- package/dist/index.cjs +60 -15
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +3 -3
- package/dist/initCommand.mjs +1 -2
- package/dist/matrixOptions.mjs +1 -2
- package/dist/options.mjs +1 -2
- package/dist/process.mjs +1 -2
- package/dist/projectTrust.cjs +2 -2
- package/dist/projectTrust.d.mts +2 -2
- package/dist/projectTrust.mjs +1 -2
- package/dist/repository.cjs +1 -1
- package/dist/repository.d.mts +2 -2
- package/dist/repository.mjs +1 -2
- package/dist/router.mjs +1 -2
- package/dist/shared.mjs +1 -2
- package/dist/src/bin/agentDirectory.cjs +18 -12
- package/dist/src/bin/agentDirectory.cjs.map +1 -1
- package/dist/src/bin/agentDirectory.mjs +15 -12
- package/dist/src/bin/agentDirectory.mjs.map +1 -1
- package/dist/src/builders/apiContractExport/index.cjs +6 -6
- package/dist/src/builders/apiContractExport/index.cjs.map +1 -1
- package/dist/src/builders/apiContractExport/index.mjs +9 -9
- package/dist/src/builders/apiContractExport/index.mjs.map +1 -1
- package/dist/src/builders/cli/entryResolution.cjs +3 -3
- package/dist/src/builders/cli/entryResolution.cjs.map +1 -1
- package/dist/src/builders/cli/entryResolution.mjs +3 -3
- package/dist/src/builders/cli/entryResolution.mjs.map +1 -1
- package/dist/src/builders/cli/harnessContext.cjs +5 -5
- package/dist/src/builders/cli/harnessContext.cjs.map +1 -1
- package/dist/src/builders/cli/harnessContext.mjs +7 -7
- package/dist/src/builders/cli/harnessContext.mjs.map +1 -1
- package/dist/src/builders/hooks/index.cjs +1 -1
- package/dist/src/builders/hooks/index.cjs.map +1 -1
- package/dist/src/builders/hooks/index.mjs +2 -2
- package/dist/src/builders/hooks/index.mjs.map +1 -1
- package/dist/src/builders/server/backgroundSync.cjs +13 -1
- package/dist/src/builders/server/backgroundSync.cjs.map +1 -1
- package/dist/src/builders/server/backgroundSync.mjs +13 -1
- package/dist/src/builders/server/backgroundSync.mjs.map +1 -1
- package/dist/src/builders/server/bundlerService.cjs +151 -0
- package/dist/src/builders/server/bundlerService.cjs.map +1 -0
- package/dist/src/builders/server/bundlerService.mjs +151 -0
- package/dist/src/builders/server/bundlerService.mjs.map +1 -0
- package/dist/src/builders/server/computerUseBinding.cjs +2 -2
- package/dist/src/builders/server/computerUseBinding.cjs.map +1 -1
- package/dist/src/builders/server/computerUseBinding.mjs +3 -3
- package/dist/src/builders/server/computerUseBinding.mjs.map +1 -1
- package/dist/src/builders/server/defaultWorkspace.cjs +1 -1
- package/dist/src/builders/server/defaultWorkspace.cjs.map +1 -1
- package/dist/src/builders/server/defaultWorkspace.mjs +2 -2
- package/dist/src/builders/server/defaultWorkspace.mjs.map +1 -1
- package/dist/src/builders/server/idleRestart.cjs +3 -3
- package/dist/src/builders/server/idleRestart.cjs.map +1 -1
- package/dist/src/builders/server/idleRestart.mjs +3 -3
- package/dist/src/builders/server/idleRestart.mjs.map +1 -1
- package/dist/src/builders/server/index.cjs +6 -6
- package/dist/src/builders/server/index.cjs.map +1 -1
- package/dist/src/builders/server/index.mjs +6 -6
- package/dist/src/builders/server/index.mjs.map +1 -1
- package/dist/src/builders/server/logSink.cjs +3 -3
- package/dist/src/builders/server/logSink.cjs.map +1 -1
- package/dist/src/builders/server/logSink.mjs +2 -2
- package/dist/src/builders/server/logSink.mjs.map +1 -1
- package/dist/src/builders/server/mcpBundle.cjs.map +1 -1
- package/dist/src/builders/server/mcpBundle.d.mts +2 -2
- package/dist/src/builders/server/mcpBundle.mjs.map +1 -1
- package/dist/src/builders/server/packageUrl.cjs +25 -18
- package/dist/src/builders/server/packageUrl.cjs.map +1 -1
- package/dist/src/builders/server/packageUrl.mjs +25 -18
- package/dist/src/builders/server/packageUrl.mjs.map +1 -1
- package/dist/src/builders/server/runtime.cjs +157 -168
- package/dist/src/builders/server/runtime.cjs.map +1 -1
- package/dist/src/builders/server/runtime.mjs +161 -171
- package/dist/src/builders/server/runtime.mjs.map +1 -1
- package/dist/src/builders/server/selectionStatus.cjs +3 -3
- package/dist/src/builders/server/selectionStatus.cjs.map +1 -1
- package/dist/src/builders/server/selectionStatus.mjs +3 -3
- package/dist/src/builders/server/selectionStatus.mjs.map +1 -1
- package/dist/src/builders/server/sessionArguments.cjs.map +1 -1
- package/dist/src/builders/server/sessionArguments.mjs.map +1 -1
- package/dist/src/builders/server/watcherService.cjs +65 -0
- package/dist/src/builders/server/watcherService.cjs.map +1 -0
- package/dist/src/builders/server/watcherService.mjs +61 -0
- package/dist/src/builders/server/watcherService.mjs.map +1 -0
- package/dist/src/builders/server/webTemplateDecision.cjs +1 -1
- package/dist/src/builders/server/webTemplateDecision.cjs.map +1 -1
- package/dist/src/builders/server/webTemplateDecision.mjs +2 -2
- package/dist/src/builders/server/webTemplateDecision.mjs.map +1 -1
- package/dist/src/builders/web/bundle.cjs.map +1 -1
- package/dist/src/builders/web/bundle.d.mts +4 -3
- package/dist/src/builders/web/bundle.mjs.map +1 -1
- package/dist/src/builders/web/bundleAssetPolicy.d.mts +1 -0
- package/dist/src/builders/web/index.cjs +1 -1
- package/dist/src/builders/web/index.cjs.map +1 -1
- package/dist/src/builders/web/index.d.mts +1 -0
- package/dist/src/builders/web/index.mjs +1 -1
- package/dist/src/builders/web/index.mjs.map +1 -1
- package/dist/src/builders/web/webPluginGenerate.cjs +4 -15
- package/dist/src/builders/web/webPluginGenerate.cjs.map +1 -1
- package/dist/src/builders/web/webPluginGenerate.d.mts +5 -9
- package/dist/src/builders/web/webPluginGenerate.d.mts.map +1 -1
- package/dist/src/builders/web/webPluginGenerate.mjs +4 -15
- package/dist/src/builders/web/webPluginGenerate.mjs.map +1 -1
- package/dist/src/builders/web/webPluginVite.d.mts +1 -0
- package/dist/src/cli/cliApp.cjs +1 -1
- package/dist/src/cli/cliApp.cjs.map +1 -1
- package/dist/src/cli/cliApp.mjs +1 -1
- package/dist/src/cli/cliApp.mjs.map +1 -1
- package/dist/src/cli/commands/compat/index.cjs +1 -1
- package/dist/src/cli/commands/compat/index.cjs.map +1 -1
- package/dist/src/cli/commands/compat/index.mjs +1 -1
- package/dist/src/cli/commands/compat/index.mjs.map +1 -1
- package/dist/src/cli/commands/doctor/index.cjs +2 -2
- package/dist/src/cli/commands/doctor/index.cjs.map +1 -1
- package/dist/src/cli/commands/doctor/index.d.mts +1 -0
- package/dist/src/cli/commands/doctor/index.d.mts.map +1 -1
- package/dist/src/cli/commands/doctor/index.mjs +4 -4
- package/dist/src/cli/commands/doctor/index.mjs.map +1 -1
- package/dist/src/cli/commands/explain/index.cjs +3 -1
- package/dist/src/cli/commands/explain/index.cjs.map +1 -1
- package/dist/src/cli/commands/explain/index.d.mts.map +1 -1
- package/dist/src/cli/commands/explain/index.mjs +4 -2
- package/dist/src/cli/commands/explain/index.mjs.map +1 -1
- package/dist/src/cli/commands/init/index.cjs +2 -2
- package/dist/src/cli/commands/init/index.cjs.map +1 -1
- package/dist/src/cli/commands/init/index.mjs +3 -3
- package/dist/src/cli/commands/init/index.mjs.map +1 -1
- package/dist/src/cli/commands/init/presenter.cjs +1 -1
- package/dist/src/cli/commands/init/presenter.cjs.map +1 -1
- package/dist/src/cli/commands/init/presenter.mjs +2 -2
- package/dist/src/cli/commands/init/presenter.mjs.map +1 -1
- package/dist/src/cli/commands/sync/index.cjs +4 -4
- package/dist/src/cli/commands/sync/index.cjs.map +1 -1
- package/dist/src/cli/commands/sync/index.d.mts +1 -0
- package/dist/src/cli/commands/sync/index.mjs +7 -7
- package/dist/src/cli/commands/sync/index.mjs.map +1 -1
- package/dist/src/cli/commands/sync/presenter.cjs +1 -1
- package/dist/src/cli/commands/sync/presenter.cjs.map +1 -1
- package/dist/src/cli/commands/sync/presenter.d.mts +1 -1
- package/dist/src/cli/commands/sync/presenter.mjs +1 -1
- package/dist/src/cli/commands/sync/presenter.mjs.map +1 -1
- package/dist/src/cli/commands/web/index.cjs +2 -1
- package/dist/src/cli/commands/web/index.cjs.map +1 -1
- package/dist/src/cli/commands/web/index.mjs +2 -1
- package/dist/src/cli/commands/web/index.mjs.map +1 -1
- package/dist/src/cli/harnessOptions.cjs +1 -1
- package/dist/src/cli/harnessOptions.cjs.map +1 -1
- package/dist/src/cli/harnessOptions.mjs +2 -2
- package/dist/src/cli/harnessOptions.mjs.map +1 -1
- package/dist/src/cli/help.cjs +2 -0
- package/dist/src/cli/help.cjs.map +1 -1
- package/dist/src/cli/help.mjs +2 -0
- package/dist/src/cli/help.mjs.map +1 -1
- package/dist/src/cli/matrixOptions.cjs +1 -1
- package/dist/src/cli/matrixOptions.cjs.map +1 -1
- package/dist/src/cli/matrixOptions.d.mts +1 -1
- package/dist/src/cli/matrixOptions.mjs +1 -1
- package/dist/src/cli/matrixOptions.mjs.map +1 -1
- package/dist/src/cli/server/run.cjs +1 -1
- package/dist/src/cli/server/run.cjs.map +1 -1
- package/dist/src/cli/server/run.mjs +2 -2
- package/dist/src/cli/server/run.mjs.map +1 -1
- package/dist/src/composition/harnessState/index.cjs +66 -11
- package/dist/src/composition/harnessState/index.cjs.map +1 -1
- package/dist/src/composition/harnessState/index.d.mts +3 -3
- package/dist/src/composition/harnessState/index.mjs +2 -2
- package/dist/src/composition/harnessState/index.mjs.map +1 -1
- package/dist/src/composition/layerPackageInstaller/index.cjs +5 -4
- package/dist/src/composition/layerPackageInstaller/index.cjs.map +1 -1
- package/dist/src/composition/layerPackageInstaller/index.mjs +6 -5
- package/dist/src/composition/layerPackageInstaller/index.mjs.map +1 -1
- package/dist/src/composition/poHomeMigration/index.cjs +1 -1
- package/dist/src/composition/poHomeMigration/index.cjs.map +1 -1
- package/dist/src/composition/poHomeMigration/index.mjs +1 -1
- package/dist/src/composition/poHomeMigration/index.mjs.map +1 -1
- package/dist/src/composition/projectTrust/index.cjs +6 -6
- package/dist/src/composition/projectTrust/index.cjs.map +1 -1
- package/dist/src/composition/projectTrust/index.d.mts +7 -7
- package/dist/src/composition/projectTrust/index.d.mts.map +1 -1
- package/dist/src/composition/projectTrust/index.mjs +6 -6
- package/dist/src/composition/projectTrust/index.mjs.map +1 -1
- package/dist/src/composition/repository/index.cjs +8 -8
- package/dist/src/composition/repository/index.cjs.map +1 -1
- package/dist/src/composition/repository/index.d.mts +5 -5
- package/dist/src/composition/repository/index.d.mts.map +1 -1
- package/dist/src/composition/repository/index.mjs +10 -10
- package/dist/src/composition/repository/index.mjs.map +1 -1
- package/dist/src/composition/syncService/index.cjs +29 -9
- package/dist/src/composition/syncService/index.cjs.map +1 -1
- package/dist/src/composition/syncService/index.d.mts.map +1 -1
- package/dist/src/composition/syncService/index.mjs +31 -11
- package/dist/src/composition/syncService/index.mjs.map +1 -1
- package/dist/src/composition/syncService/localBuilds.cjs +7 -2
- package/dist/src/composition/syncService/localBuilds.cjs.map +1 -1
- package/dist/src/composition/syncService/localBuilds.mjs +7 -2
- package/dist/src/composition/syncService/localBuilds.mjs.map +1 -1
- package/dist/src/extensions/setupDiagnostics.cjs +3 -3
- package/dist/src/extensions/setupDiagnostics.cjs.map +1 -1
- package/dist/src/extensions/setupDiagnostics.mjs +3 -3
- package/dist/src/extensions/setupDiagnostics.mjs.map +1 -1
- package/dist/utils.mjs +1 -2
- package/docs/server/api-export.md +3 -3
- package/docs/server/api.md +23 -22
- package/docs/server/getting-started.md +7 -7
- package/docs/server/index.md +4 -4
- package/docs/server/ipc.md +7 -11
- package/docs/server/lifecycle.md +17 -17
- package/docs/server/security.md +8 -8
- package/package.json +42 -45
- package/src/prompts/po-author-extension/SKILL.md +1 -1
- package/src/prompts/po-author-extension/references/extension-contract.md +4 -4
- package/dist/bin/doomRunner.cjs.map +0 -1
- package/dist/bin/doomRunner.d.mts.map +0 -1
- package/dist/bin/doomRunner.mjs.map +0 -1
package/docs/server/security.md
CHANGED
|
@@ -9,7 +9,7 @@ trusted owner account
|
|
|
9
9
|
|
|
|
10
10
|
+-- po-server
|
|
11
11
|
+-- DirectHarnessRuntime
|
|
12
|
-
+-- configured extensions and server
|
|
12
|
+
+-- configured extensions and server plugins
|
|
13
13
|
+-- session journal and in-process APIs
|
|
14
14
|
+-- authenticated HTTP/WebSocket listener
|
|
15
15
|
|
|
|
@@ -29,7 +29,7 @@ The design aims to:
|
|
|
29
29
|
- keep the session token out of process arguments and application state sent to clients;
|
|
30
30
|
- authenticate direct HTTP and `/api/ws` protocol access with a random capability;
|
|
31
31
|
- load only the built `poServer` entries the scope's configuration selects, each confined to its package;
|
|
32
|
-
- keep package handlers in process while isolating optional
|
|
32
|
+
- keep package handlers in process while isolating optional package failures; and
|
|
33
33
|
- preserve session history ownership so two runtimes cannot write the same journal concurrently.
|
|
34
34
|
|
|
35
35
|
It does not attempt to:
|
|
@@ -45,7 +45,7 @@ It does not attempt to:
|
|
|
45
45
|
| --------------------------- | ---------------------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
46
46
|
| HTTP and `/api/ws` listener | Loopback by default; token required except health | Owner, root, token holder, and any exposed reverse proxy |
|
|
47
47
|
| Listener token | Read from a file and compared as a bearer capability | Caller creates and protects the file |
|
|
48
|
-
| Server
|
|
48
|
+
| Server plugins | Live composition, entries confined to their package, content URLs | Repository configuration and installed package contents are trusted |
|
|
49
49
|
| Session journal | Explicit history ownership and v4 JSONL storage | Owner and any process able to access the session directory |
|
|
50
50
|
| Package APIs | In-process registration and fixed route mounts | Handlers are trusted executable code |
|
|
51
51
|
| Direct harness | Same-process runtime with configured working directory and environment | Command, configuration, repository, model providers, and dependencies |
|
|
@@ -66,9 +66,9 @@ A token authenticates the caller to the session. It is not a per-operation permi
|
|
|
66
66
|
|
|
67
67
|
## Package trust
|
|
68
68
|
|
|
69
|
-
The server does not compile or discover package code while serving a request. When it admits a scope or starts a session, it composes that scope's configuration, reads the selected packages' `poServer` declarations, confines each built entry to its package, filters ownership and scope, and then imports and
|
|
69
|
+
The server does not compile or discover package code while serving a request. When it admits a scope or starts a session, it composes that scope's configuration, reads the selected packages' `poServer` declarations, confines each built entry to its package, filters ownership and scope, and then imports and installs each eligible server plugin.
|
|
70
70
|
|
|
71
|
-
Required
|
|
71
|
+
Required package failures prevent readiness. Optional failures are reported and isolated. An import that times out or throws is not retried, and a failed entry never selects an alternate directory or legacy module set.
|
|
72
72
|
|
|
73
73
|
Package handlers receive trusted process context, not automatic browser authorization. Validate bodies, bound reads and streams, constrain file paths to the intended scope, and do not return secrets merely because a request arrived with a valid server token.
|
|
74
74
|
|
|
@@ -80,15 +80,15 @@ Before putting the cockpit behind a tunnel, review the web package's pairing, or
|
|
|
80
80
|
|
|
81
81
|
## Data, replay, and diagnostics
|
|
82
82
|
|
|
83
|
-
The session journal contains conversation and tool history
|
|
83
|
+
The session journal contains conversation and tool history in the pi-durable SQLite store. The runtime also keeps the in-progress assistant message and tool output (`live`) and bounded presentation events in process memory. Presentation history is limited to 1,024 events or 8 MiB and reports dropped events; current projections are retained separately. This supports reconnect recovery but is not a durable audit log.
|
|
84
84
|
|
|
85
|
-
Server telemetry records lifecycle and coarse usage events. Its
|
|
85
|
+
Server telemetry records lifecycle and coarse usage events. Its presentation and latency events carry frame types and durations, not message or tool content. This is a telemetry property, not a guarantee that clients, extensions, package APIs, or the harness do not log their own data.
|
|
86
86
|
|
|
87
87
|
## Operating posture
|
|
88
88
|
|
|
89
89
|
1. Create the token under an owner-only directory.
|
|
90
90
|
2. Keep the session journal, installed packages, and the Po home build directory private.
|
|
91
|
-
3. Treat repository configuration, model providers, extensions, and server
|
|
91
|
+
3. Treat repository configuration, model providers, extensions, and server plugins as executable inputs.
|
|
92
92
|
4. Bind direct servers to loopback unless an authenticated TLS boundary is already in place.
|
|
93
93
|
5. Use Po Web's documented controls for browser and remote access.
|
|
94
94
|
6. Rotate the token by replacing the file while the server is stopped.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/po",
|
|
3
|
-
"version": "0.0.0-alpha.
|
|
3
|
+
"version": "0.0.0-alpha.21",
|
|
4
4
|
"description": "Opinionated, composable agent harness for scoped tools, skills, MCP servers, and developer workflows.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-harness",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"directory": "packages/cli/po"
|
|
25
25
|
},
|
|
26
26
|
"bin": {
|
|
27
|
-
"doom-runner": "./dist/bin/doomRunner.mjs",
|
|
28
27
|
"po": "./dist/bin/cli.mjs",
|
|
28
|
+
"po-runner": "./dist/bin/poRunner.mjs",
|
|
29
29
|
"po-server": "./dist/bin/serve.mjs"
|
|
30
30
|
},
|
|
31
31
|
"files": [
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
"import": "./dist/bin/cli.mjs",
|
|
51
51
|
"require": "./dist/bin/cli.cjs"
|
|
52
52
|
},
|
|
53
|
-
"./bin/
|
|
54
|
-
"types": "./dist/bin/
|
|
55
|
-
"import": "./dist/bin/
|
|
56
|
-
"require": "./dist/bin/
|
|
53
|
+
"./bin/poRunner": {
|
|
54
|
+
"types": "./dist/bin/poRunner.d.mts",
|
|
55
|
+
"import": "./dist/bin/poRunner.mjs",
|
|
56
|
+
"require": "./dist/bin/poRunner.cjs"
|
|
57
57
|
},
|
|
58
58
|
"./cli": {
|
|
59
59
|
"types": "./dist/cli.d.mts",
|
|
@@ -212,59 +212,56 @@
|
|
|
212
212
|
"registry": "https://registry.npmjs.org/"
|
|
213
213
|
},
|
|
214
214
|
"dependencies": {
|
|
215
|
-
"@agimon-ai/
|
|
216
|
-
"@agimon-ai/po-autostop": "0.0.0-alpha.
|
|
217
|
-
"@agimon-ai/po-cache": "0.0.0-alpha.
|
|
218
|
-
"@agimon-ai/po-config": "0.0.0-alpha.
|
|
219
|
-
"@agimon-ai/po-core": "0.0.0-alpha.
|
|
220
|
-
"@agimon-ai/po-domain": "0.0.0-alpha.
|
|
221
|
-
"@agimon-ai/po-
|
|
222
|
-
"@agimon-ai/po-
|
|
223
|
-
"@agimon-ai/po-
|
|
224
|
-
"@agimon-ai/po-
|
|
225
|
-
"@agimon-ai/po-
|
|
226
|
-
"@agimon-ai/po-
|
|
227
|
-
"@agimon-ai/po-
|
|
228
|
-
"@agimon-ai/po-
|
|
229
|
-
"@agimon-ai/po-
|
|
230
|
-
"@agimon-ai/po-web-
|
|
231
|
-
"@
|
|
232
|
-
"@
|
|
233
|
-
"@earendil-works/pi-agent-core": "1.
|
|
234
|
-
"@earendil-works/pi-coding-agent": "1.
|
|
235
|
-
"@
|
|
236
|
-
"@earendil-works/pi-server": "1.0.2",
|
|
237
|
-
"@hono/node-server": "2.1.3",
|
|
215
|
+
"@agimon-ai/po-artifact": "0.0.0-alpha.19",
|
|
216
|
+
"@agimon-ai/po-autostop": "0.0.0-alpha.20",
|
|
217
|
+
"@agimon-ai/po-cache": "0.0.0-alpha.20",
|
|
218
|
+
"@agimon-ai/po-config": "0.0.0-alpha.20",
|
|
219
|
+
"@agimon-ai/po-core": "0.0.0-alpha.20",
|
|
220
|
+
"@agimon-ai/po-domain": "0.0.0-alpha.20",
|
|
221
|
+
"@agimon-ai/po-logsink": "0.0.1-alpha.2",
|
|
222
|
+
"@agimon-ai/po-major-mode": "0.0.0-alpha.20",
|
|
223
|
+
"@agimon-ai/po-minor-mode": "0.0.0-alpha.20",
|
|
224
|
+
"@agimon-ai/po-notification": "0.0.0-alpha.20",
|
|
225
|
+
"@agimon-ai/po-profile": "0.0.0-alpha.20",
|
|
226
|
+
"@agimon-ai/po-session": "0.0.0-alpha.20",
|
|
227
|
+
"@agimon-ai/po-skill": "0.0.0-alpha.20",
|
|
228
|
+
"@agimon-ai/po-telemetry": "0.0.0-alpha.20",
|
|
229
|
+
"@agimon-ai/po-ui": "0.0.0-alpha.20",
|
|
230
|
+
"@agimon-ai/po-web-components": "0.0.0-alpha.20",
|
|
231
|
+
"@agimon-ai/po-web-security": "0.0.0-alpha.20",
|
|
232
|
+
"@deepseek-ai/cordis": "4.0.5",
|
|
233
|
+
"@earendil-works/pi-agent-core": "1.3.0",
|
|
234
|
+
"@earendil-works/pi-coding-agent": "1.3.0",
|
|
235
|
+
"@hono/node-server": "2.1.5",
|
|
238
236
|
"@simplewebauthn/server": "^14.0.3",
|
|
239
237
|
"@tailwindcss/vite": "4.3.3",
|
|
240
|
-
"@vitejs/plugin-react": "6.1.
|
|
238
|
+
"@vitejs/plugin-react": "6.1.2",
|
|
241
239
|
"cross-spawn": "7.0.6",
|
|
242
240
|
"gpt-tokenizer": "4.0.0",
|
|
243
|
-
"hono": "4.13.
|
|
241
|
+
"hono": "4.13.8",
|
|
244
242
|
"minimatch": "10.2.6",
|
|
245
|
-
"protobufjs": "8.8.
|
|
246
|
-
"rolldown": "1.2.
|
|
243
|
+
"protobufjs": "8.8.1",
|
|
244
|
+
"rolldown": "1.2.13",
|
|
247
245
|
"tailwindcss": "4.3.3",
|
|
248
|
-
"typebox": "1.3.
|
|
249
|
-
"vite": "8.3.
|
|
246
|
+
"typebox": "1.3.37",
|
|
247
|
+
"vite": "8.3.4",
|
|
250
248
|
"ws": "8.22.0",
|
|
251
249
|
"yaml": "2.9.1"
|
|
252
250
|
},
|
|
253
251
|
"devDependencies": {
|
|
254
|
-
"@agimon-ai/po-runner": "0.0.0-alpha.
|
|
255
|
-
"@agimon-ai/vibe-lint-plugin-
|
|
256
|
-
"@earendil-works/pi-ai": "1.
|
|
257
|
-
"@earendil-works/pi-client": "1.0.2",
|
|
252
|
+
"@agimon-ai/po-runner": "0.0.0-alpha.20",
|
|
253
|
+
"@agimon-ai/vibe-lint-plugin-po-cli": "0.0.0-alpha.20",
|
|
254
|
+
"@earendil-works/pi-ai": "1.3.0",
|
|
258
255
|
"@modelcontextprotocol/ext-apps": "2.0.3",
|
|
259
|
-
"@modelcontextprotocol/server": "2.
|
|
260
|
-
"@playwright/test": "1.
|
|
256
|
+
"@modelcontextprotocol/server": "2.3.1",
|
|
257
|
+
"@playwright/test": "^1.64.0",
|
|
261
258
|
"@types/cross-spawn": "6.0.6",
|
|
262
|
-
"@types/node": "26.6.
|
|
259
|
+
"@types/node": "26.6.5",
|
|
263
260
|
"@types/ws": "8.18.2",
|
|
264
|
-
"@vitest/coverage-v8": "5.0.
|
|
265
|
-
"tsdown": "0.23.
|
|
261
|
+
"@vitest/coverage-v8": "5.0.4",
|
|
262
|
+
"tsdown": "0.23.1",
|
|
266
263
|
"typescript": "7.0.2",
|
|
267
|
-
"vitest": "5.0.
|
|
264
|
+
"vitest": "5.0.4"
|
|
268
265
|
},
|
|
269
266
|
"engines": {
|
|
270
267
|
"node": ">=24"
|
|
@@ -9,7 +9,7 @@ Build the smallest extension that owns one clear capability and follows the host
|
|
|
9
9
|
|
|
10
10
|
## Choose the environment
|
|
11
11
|
|
|
12
|
-
- Inside the Po monorepo, read `AGENTS.md` and `templates/
|
|
12
|
+
- Inside the Po monorepo, read `AGENTS.md` and `templates/po-extension/scaffold.yaml` before writing. Use the canonical `scaffold-po-extension` definition when it fits, then keep only the folders the capability needs.
|
|
13
13
|
- Outside the monorepo, create the equivalent public ESM package manually and depend on published Po foundation packages. Never publish `workspace:*` ranges.
|
|
14
14
|
|
|
15
15
|
Choose the package tier from the capability, not convenience:
|
|
@@ -7,9 +7,9 @@ Use this reference when creating a new extension or checking an existing package
|
|
|
7
7
|
Inside this monorepo:
|
|
8
8
|
|
|
9
9
|
- Choose the package tier before scaffolding.
|
|
10
|
-
- Keep
|
|
10
|
+
- Keep Po-to-Po dependencies as `workspace:*`.
|
|
11
11
|
- Use the repository-pinned published versions for Cordis, Pi, Vibe-Lint, and other foundation packages.
|
|
12
|
-
- Set `sourceTemplate` to `
|
|
12
|
+
- Set `sourceTemplate` to `po-extension` and follow the package's inherited Vibe-Lint rules.
|
|
13
13
|
|
|
14
14
|
Outside this monorepo:
|
|
15
15
|
|
|
@@ -89,7 +89,7 @@ import { createReviewService } from '../../../../../services/review';
|
|
|
89
89
|
export default defineCommand(() => createReviewCommand(createReviewService()));
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
-
Use `defineCommand` for portable commands, `defineTool` for portable tools, `definePiTool` for native Pi capabilities, and the matching typed helper for every other surface. The generated server
|
|
92
|
+
Use `defineCommand` for portable commands, `defineTool` for portable tools, `definePiTool` for native Pi capabilities, and the matching typed helper for every other surface. The generated server plugin and browser plugin group routed declarations by scope. Use an `extra.<target>.ts` escape hatch only when a legacy contribution object cannot be represented without changing behavior.
|
|
93
93
|
|
|
94
94
|
The package build is convention-driven:
|
|
95
95
|
|
|
@@ -104,7 +104,7 @@ Generated `pi.ts`, `server.ts`, and `web.ts` entries live under ignored `generat
|
|
|
104
104
|
|
|
105
105
|
Factories may return a promise. The helper waits for the declaration, mounts service contributions, registers capabilities, and awaits `onStart`. Shutdown aborts the instance signal, waits for startup to settle, awaits `onStop`, releases registrations in reverse order, then awaits `onDispose`. `onStop` runs once the start stage has been reached, including when `onStart` is absent or fails. Registration failures still release acquired handles and call accepted `onDispose`. Cleanup is idempotent and all cleanup stages run even when one fails.
|
|
106
106
|
|
|
107
|
-
Hooks receive one typed context. Factories construct state; `onStart` begins external work. Use `onStop` to stop and drain it, and `onDispose` for final instance resources. Omit unused hooks and let the helper own registration cleanup. Do not manually connect the Cordis host, call another
|
|
107
|
+
Hooks receive one typed context. Factories construct state; `onStart` begins external work. Use `onStop` to stop and drain it, and `onDispose` for final instance resources. Omit unused hooks and let the helper own registration cleanup. Do not manually connect the Cordis host, call another plugin's `apply`, or register a second shutdown wrapper.
|
|
108
108
|
|
|
109
109
|
Use arrays for fixed tools and minor modes. Pi supports typed `PiToolCollection` and `PiMinorModeCollection` with `snapshot()` and `subscribe(listener)` when availability changes while mounted. Helpers own subscriptions, cancel withdrawn tools, detach withdrawn mode owners, and follow optional provider replacement. A new tool declaration with the same name replaces the implementation and aborts old invocations. Removed tools retain an unavailable native wrapper.
|
|
110
110
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"doomRunner.cjs","names":["findRepositoryRoot","consumerPackageEntry","pathToFileURL","existsSync","realpathSync","fileURLToPath"],"sources":["../../src/bin/doomRunner.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/**\n * CLI Entry Point for doom-runner\n *\n * The Runner package is selectable, so this compatibility executable resolves\n * it from the active repository instead of retaining it in Po's dependency\n * closure. The Runner package's own entry only self-invokes when it is argv[1],\n * which it is not once this shim imports it by absolute path.\n */\n\nimport './agentDirectory';\nimport { existsSync, realpathSync } from 'node:fs';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\n\nimport { consumerPackageEntry } from '@agimon-ai/po-core/moduleResolution';\n\nimport { findRepositoryRoot } from '../composition/repository';\n\nconst RUNNER_CLI_EXPORT = '@agimon-ai/po-runner/bin/cli';\n\ninterface RunnerCliModule {\n readonly main?: unknown;\n}\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n let repoRoot: string;\n try {\n repoRoot = findRepositoryRoot(process.cwd());\n } catch (error) {\n throw new Error('doom-runner must be invoked inside a configured repository.', { cause: error });\n }\n const entry = consumerPackageEntry(RUNNER_CLI_EXPORT, repoRoot);\n if (!entry) {\n throw new Error(\n 'Doom Runner is not installed for this repository. Add @agimon-ai/po-runner to .po/modes.yaml and run po sync.',\n );\n }\n const loaded = (await import(pathToFileURL(entry).href)) as RunnerCliModule;\n if (typeof loaded.main !== 'function') {\n throw new Error(`${RUNNER_CLI_EXPORT} does not export a callable main function.`);\n }\n return (loaded.main as (args: readonly string[]) => Promise<number>)(argv);\n}\n\nif (\n process.argv[1] &&\n existsSync(process.argv[1]) &&\n realpathSync(fileURLToPath(import.meta.url)) === realpathSync(process.argv[1])\n) {\n main().then(\n (exitCode) => {\n process.exitCode = exitCode;\n },\n (error: unknown) => {\n const message = error instanceof Error ? error.message : String(error);\n process.stderr.write(`[doom-runner] ${message}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":";;;;;;;;AAmBA,MAAM,oBAAoB;AAM1B,eAAsB,KAAK,OAA0B,QAAQ,KAAK,MAAM,CAAC,GAAoB;CAC3F,IAAI;CACJ,IAAI;EACF,WAAWA,cAAAA,mBAAmB,QAAQ,IAAI,CAAC;CAC7C,SAAS,OAAO;EACd,MAAM,IAAI,MAAM,+DAA+D,EAAE,OAAO,MAAM,CAAC;CACjG;CACA,MAAM,SAAA,GAAQC,oCAAAA,qBAAAA,CAAqB,mBAAmB,QAAQ;CAC9D,IAAI,CAAC,OACH,MAAM,IAAI,MACR,+GACF;CAEF,MAAM,SAAU,MAAM,QAAA,GAAOC,SAAAA,cAAAA,CAAc,KAAK,CAAC,CAAC;CAClD,IAAI,OAAO,OAAO,SAAS,YACzB,MAAM,IAAI,MAAM,GAAG,kBAAkB,2CAA2C;CAElF,OAAQ,OAAO,KAAsD,IAAI;AAC3E;AAEA,IACE,QAAQ,KAAK,OAAA,GACbC,QAAAA,WAAAA,CAAW,QAAQ,KAAK,EAAE,MAAA,GAC1BC,QAAAA,aAAAA,EAAAA,GAAaC,SAAAA,cAAAA,CAAAA,QAAAA,KAAAA,CAAAA,CAAAA,cAAAA,UAAAA,CAAAA,CAAAA,IAA6B,CAAC,OAAA,GAAMD,QAAAA,aAAAA,CAAa,QAAQ,KAAK,EAAE,GAE7E,KAAK,CAAC,CAAC,MACJ,aAAa;CACZ,QAAQ,WAAW;AACrB,IACC,UAAmB;CAClB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;CACrE,QAAQ,OAAO,MAAM,iBAAiB,QAAQ,GAAG;CACjD,QAAQ,WAAW;AACrB,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"doomRunner.d.mts","names":[],"sources":["../../src/bin/doomRunner.ts"],"mappings":";wBAyBsB,KAAK,2BAAkD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"doomRunner.mjs","names":[],"sources":["../../src/bin/doomRunner.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/**\n * CLI Entry Point for doom-runner\n *\n * The Runner package is selectable, so this compatibility executable resolves\n * it from the active repository instead of retaining it in Po's dependency\n * closure. The Runner package's own entry only self-invokes when it is argv[1],\n * which it is not once this shim imports it by absolute path.\n */\n\nimport './agentDirectory';\nimport { existsSync, realpathSync } from 'node:fs';\nimport { fileURLToPath, pathToFileURL } from 'node:url';\n\nimport { consumerPackageEntry } from '@agimon-ai/po-core/moduleResolution';\n\nimport { findRepositoryRoot } from '../composition/repository';\n\nconst RUNNER_CLI_EXPORT = '@agimon-ai/po-runner/bin/cli';\n\ninterface RunnerCliModule {\n readonly main?: unknown;\n}\n\nexport async function main(argv: readonly string[] = process.argv.slice(2)): Promise<number> {\n let repoRoot: string;\n try {\n repoRoot = findRepositoryRoot(process.cwd());\n } catch (error) {\n throw new Error('doom-runner must be invoked inside a configured repository.', { cause: error });\n }\n const entry = consumerPackageEntry(RUNNER_CLI_EXPORT, repoRoot);\n if (!entry) {\n throw new Error(\n 'Doom Runner is not installed for this repository. Add @agimon-ai/po-runner to .po/modes.yaml and run po sync.',\n );\n }\n const loaded = (await import(pathToFileURL(entry).href)) as RunnerCliModule;\n if (typeof loaded.main !== 'function') {\n throw new Error(`${RUNNER_CLI_EXPORT} does not export a callable main function.`);\n }\n return (loaded.main as (args: readonly string[]) => Promise<number>)(argv);\n}\n\nif (\n process.argv[1] &&\n existsSync(process.argv[1]) &&\n realpathSync(fileURLToPath(import.meta.url)) === realpathSync(process.argv[1])\n) {\n main().then(\n (exitCode) => {\n process.exitCode = exitCode;\n },\n (error: unknown) => {\n const message = error instanceof Error ? error.message : String(error);\n process.stderr.write(`[doom-runner] ${message}\\n`);\n process.exitCode = 1;\n },\n );\n}\n"],"mappings":";;;;;;;AAmBA,MAAM,oBAAoB;AAM1B,eAAsB,KAAK,OAA0B,QAAQ,KAAK,MAAM,CAAC,GAAoB;CAC3F,IAAI;CACJ,IAAI;EACF,WAAW,mBAAmB,QAAQ,IAAI,CAAC;CAC7C,SAAS,OAAO;EACd,MAAM,IAAI,MAAM,+DAA+D,EAAE,OAAO,MAAM,CAAC;CACjG;CACA,MAAM,QAAQ,qBAAqB,mBAAmB,QAAQ;CAC9D,IAAI,CAAC,OACH,MAAM,IAAI,MACR,+GACF;CAEF,MAAM,SAAU,MAAM,OAAO,cAAc,KAAK,CAAC,CAAC;CAClD,IAAI,OAAO,OAAO,SAAS,YACzB,MAAM,IAAI,MAAM,GAAG,kBAAkB,2CAA2C;CAElF,OAAQ,OAAO,KAAsD,IAAI;AAC3E;AAEA,IACE,QAAQ,KAAK,MACb,WAAW,QAAQ,KAAK,EAAE,KAC1B,aAAa,cAAc,YAAY,GAAG,CAAC,MAAM,aAAa,QAAQ,KAAK,EAAE,GAE7E,KAAK,CAAC,CAAC,MACJ,aAAa;CACZ,QAAQ,WAAW;AACrB,IACC,UAAmB;CAClB,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;CACrE,QAAQ,OAAO,MAAM,iBAAiB,QAAQ,GAAG;CACjD,QAAQ,WAAW;AACrB,CACF"}
|