@jinn-network/client 0.1.2 → 0.1.3-canary.262e5cda
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/CHANGELOG.md +20 -0
- package/CONTRIBUTING.md +8 -2
- package/README.md +38 -14
- package/deployments/deployment-jinn-mvi-l1-sepolia-fast.json +36 -0
- package/deployments/deployment-jinn-mvi-l1-sepolia.json +36 -0
- package/deployments/deployment-jinn-mvi-l2-baseSepolia.json +12 -0
- package/deployments/deployment-phase1b-mech-baseSepolia-fast.json +3 -3
- package/deployments/deployment-stolas-l2-baseSepolia-fast.json +1 -1
- package/dist/adapters/adapter.d.ts +2 -2
- package/dist/adapters/claim-registry/client.d.ts +9 -0
- package/dist/adapters/claim-registry/client.js +22 -2
- package/dist/adapters/claim-registry/client.js.map +1 -1
- package/dist/adapters/local/adapter.d.ts +2 -2
- package/dist/adapters/local/adapter.js +8 -8
- package/dist/adapters/local/adapter.js.map +1 -1
- package/dist/adapters/mech/adapter.d.ts +3 -4
- package/dist/adapters/mech/adapter.js +86 -50
- package/dist/adapters/mech/adapter.js.map +1 -1
- package/dist/adapters/mech/contracts.d.ts +6 -4
- package/dist/adapters/mech/contracts.js +118 -14
- package/dist/adapters/mech/contracts.js.map +1 -1
- package/dist/adapters/mech/ipfs.d.ts +61 -6
- package/dist/adapters/mech/ipfs.js +159 -26
- package/dist/adapters/mech/ipfs.js.map +1 -1
- package/dist/adapters/mech/safe-revert.d.ts +39 -0
- package/dist/adapters/mech/safe-revert.js +130 -0
- package/dist/adapters/mech/safe-revert.js.map +1 -0
- package/dist/adapters/mech/safe.js +47 -21
- package/dist/adapters/mech/safe.js.map +1 -1
- package/dist/adapters/mech/types.d.ts +8 -0
- package/dist/adapters/mech/types.js.map +1 -1
- package/dist/agent/agent-ws.d.ts +55 -0
- package/dist/agent/agent-ws.js +288 -0
- package/dist/agent/agent-ws.js.map +1 -0
- package/dist/agent/auto-mode-detect.d.ts +6 -0
- package/dist/agent/auto-mode-detect.js +44 -0
- package/dist/agent/auto-mode-detect.js.map +1 -0
- package/dist/agent/operator-claude.d.ts +22 -0
- package/dist/agent/operator-claude.js +130 -0
- package/dist/agent/operator-claude.js.map +1 -0
- package/dist/api/admin-endpoint.d.ts +12 -0
- package/dist/api/admin-endpoint.js +71 -0
- package/dist/api/admin-endpoint.js.map +1 -0
- package/dist/api/bootstrap-endpoint.d.ts +16 -0
- package/dist/api/bootstrap-endpoint.js +78 -0
- package/dist/api/bootstrap-endpoint.js.map +1 -0
- package/dist/api/events-endpoint.d.ts +9 -0
- package/dist/api/events-endpoint.js +46 -0
- package/dist/api/events-endpoint.js.map +1 -0
- package/dist/api/fleet-build.d.ts +1 -1
- package/dist/api/fleet-build.js +17 -8
- package/dist/api/fleet-build.js.map +1 -1
- package/dist/api/gather-status.js +5 -1
- package/dist/api/gather-status.js.map +1 -1
- package/dist/api/handshake.d.ts +17 -0
- package/dist/api/handshake.js +28 -0
- package/dist/api/handshake.js.map +1 -0
- package/dist/api/peers.js +20 -5
- package/dist/api/peers.js.map +1 -1
- package/dist/api/portfolio-v0-build.d.ts +6 -0
- package/dist/api/portfolio-v0-build.js +6 -1
- package/dist/api/portfolio-v0-build.js.map +1 -1
- package/dist/api/rewards-build.js +3 -8
- package/dist/api/rewards-build.js.map +1 -1
- package/dist/api/server.d.ts +54 -0
- package/dist/api/server.js +239 -13
- package/dist/api/server.js.map +1 -1
- package/dist/api/setup-endpoints.d.ts +34 -0
- package/dist/api/setup-endpoints.js +188 -0
- package/dist/api/setup-endpoints.js.map +1 -0
- package/dist/api/status-build.d.ts +9 -1
- package/dist/api/status-build.js +44 -9
- package/dist/api/status-build.js.map +1 -1
- package/dist/api/status-rollup-build.d.ts +46 -1
- package/dist/api/status-rollup-build.js +168 -5
- package/dist/api/status-rollup-build.js.map +1 -1
- package/dist/api/ui-token.d.ts +5 -0
- package/dist/api/ui-token.js +36 -0
- package/dist/api/ui-token.js.map +1 -0
- package/dist/build-info.d.ts +32 -0
- package/dist/build-info.js +69 -0
- package/dist/build-info.js.map +1 -0
- package/dist/build-info.json +6 -0
- package/dist/build-meta.json +1 -1
- package/dist/cli/command.d.ts +9 -0
- package/dist/cli/commands/balance.d.ts +7 -0
- package/dist/cli/commands/balance.js +38 -32
- package/dist/cli/commands/balance.js.map +1 -1
- package/dist/cli/commands/bootstrap.d.ts +13 -1
- package/dist/cli/commands/bootstrap.js +150 -132
- package/dist/cli/commands/bootstrap.js.map +1 -1
- package/dist/cli/commands/claim-rewards.js +14 -2
- package/dist/cli/commands/claim-rewards.js.map +1 -1
- package/dist/cli/commands/conformance.d.ts +12 -0
- package/dist/cli/commands/conformance.js +140 -0
- package/dist/cli/commands/conformance.js.map +1 -0
- package/dist/cli/commands/create.d.ts +36 -0
- package/dist/cli/commands/create.js +374 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +34 -1
- package/dist/cli/commands/doctor.js +136 -121
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/fleet-scale.d.ts +19 -1
- package/dist/cli/commands/fleet-scale.js +379 -361
- package/dist/cli/commands/fleet-scale.js.map +1 -1
- package/dist/cli/commands/fleet.d.ts +7 -0
- package/dist/cli/commands/fleet.js +39 -33
- package/dist/cli/commands/fleet.js.map +1 -1
- package/dist/cli/commands/fund-requirements.d.ts +14 -1
- package/dist/cli/commands/fund-requirements.js +183 -174
- package/dist/cli/commands/fund-requirements.js.map +1 -1
- package/dist/cli/commands/history.d.ts +10 -1
- package/dist/cli/commands/history.js +66 -57
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/impls.d.ts +18 -0
- package/dist/cli/commands/impls.js +208 -0
- package/dist/cli/commands/impls.js.map +1 -0
- package/dist/cli/commands/init.js +4 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/intents.js +13 -9
- package/dist/cli/commands/intents.js.map +1 -1
- package/dist/cli/commands/logs.d.ts +6 -1
- package/dist/cli/commands/logs.js +77 -70
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/migrate-agent-id.d.ts +26 -0
- package/dist/cli/commands/migrate-agent-id.js +165 -0
- package/dist/cli/commands/migrate-agent-id.js.map +1 -0
- package/dist/cli/commands/plug-ins.d.ts +34 -0
- package/dist/cli/commands/plug-ins.js +282 -0
- package/dist/cli/commands/plug-ins.js.map +1 -0
- package/dist/cli/commands/plugin-install.d.ts +10 -0
- package/dist/cli/commands/plugin-install.js +226 -14
- package/dist/cli/commands/plugin-install.js.map +1 -1
- package/dist/cli/commands/rewards.d.ts +7 -0
- package/dist/cli/commands/rewards.js +46 -40
- package/dist/cli/commands/rewards.js.map +1 -1
- package/dist/cli/commands/run.d.ts +14 -1
- package/dist/cli/commands/run.js +232 -90
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/status.d.ts +10 -0
- package/dist/cli/commands/status.js +97 -34
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/submit-intent.js +33 -6
- package/dist/cli/commands/submit-intent.js.map +1 -1
- package/dist/cli/commands/ui.js +45 -0
- package/dist/cli/commands/ui.js.map +1 -0
- package/dist/cli/commands/update.d.ts +5 -0
- package/dist/cli/commands/update.js +102 -97
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/version.js +3 -1
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/commands/withdraw.d.ts +21 -1
- package/dist/cli/commands/withdraw.js +175 -159
- package/dist/cli/commands/withdraw.js.map +1 -1
- package/dist/cli/execution-context.d.ts +1 -1
- package/dist/cli/execution-context.js +2 -1
- package/dist/cli/execution-context.js.map +1 -1
- package/dist/cli/help.js +7 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.js +18 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/intent-registry-access.d.ts +33 -1
- package/dist/cli/intent-registry-access.js +40 -2
- package/dist/cli/intent-registry-access.js.map +1 -1
- package/dist/cli/open-browser.d.ts +1 -0
- package/dist/cli/open-browser.js +18 -0
- package/dist/cli/open-browser.js.map +1 -0
- package/dist/cli/password.d.ts +3 -3
- package/dist/cli/password.js +5 -5
- package/dist/cli/password.js.map +1 -1
- package/dist/config.d.ts +883 -11
- package/dist/config.js +435 -4
- package/dist/config.js.map +1 -1
- package/dist/conformance/checks/artifacts.d.ts +37 -0
- package/dist/conformance/checks/artifacts.js +110 -0
- package/dist/conformance/checks/artifacts.js.map +1 -0
- package/dist/conformance/checks/envelope-schema.d.ts +17 -0
- package/dist/conformance/checks/envelope-schema.js +36 -0
- package/dist/conformance/checks/envelope-schema.js.map +1 -0
- package/dist/conformance/checks/hash-signature.d.ts +26 -0
- package/dist/conformance/checks/hash-signature.js +70 -0
- package/dist/conformance/checks/hash-signature.js.map +1 -0
- package/dist/conformance/checks/payload.d.ts +19 -0
- package/dist/conformance/checks/payload.js +52 -0
- package/dist/conformance/checks/payload.js.map +1 -0
- package/dist/conformance/checks/secret-scrub.d.ts +33 -0
- package/dist/conformance/checks/secret-scrub.js +118 -0
- package/dist/conformance/checks/secret-scrub.js.map +1 -0
- package/dist/conformance/checks/source-runtime.d.ts +43 -0
- package/dist/conformance/checks/source-runtime.js +68 -0
- package/dist/conformance/checks/source-runtime.js.map +1 -0
- package/dist/conformance/checks/source-static.d.ts +61 -0
- package/dist/conformance/checks/source-static.js +311 -0
- package/dist/conformance/checks/source-static.js.map +1 -0
- package/dist/conformance/checks/trajectory-chain.d.ts +18 -0
- package/dist/conformance/checks/trajectory-chain.js +51 -0
- package/dist/conformance/checks/trajectory-chain.js.map +1 -0
- package/dist/conformance/checks/trajectory-profile.d.ts +17 -0
- package/dist/conformance/checks/trajectory-profile.js +51 -0
- package/dist/conformance/checks/trajectory-profile.js.map +1 -0
- package/dist/conformance/checks/trajectory-schema.d.ts +20 -0
- package/dist/conformance/checks/trajectory-schema.js +40 -0
- package/dist/conformance/checks/trajectory-schema.js.map +1 -0
- package/dist/conformance/checks/verdict.d.ts +44 -0
- package/dist/conformance/checks/verdict.js +122 -0
- package/dist/conformance/checks/verdict.js.map +1 -0
- package/dist/conformance/harness.d.ts +32 -0
- package/dist/conformance/harness.js +228 -0
- package/dist/conformance/harness.js.map +1 -0
- package/dist/conformance/types.d.ts +88 -0
- package/dist/conformance/types.js +31 -0
- package/dist/conformance/types.js.map +1 -0
- package/dist/corpus/acquire.d.ts +37 -0
- package/dist/corpus/acquire.js +155 -0
- package/dist/corpus/acquire.js.map +1 -0
- package/dist/corpus/cache.d.ts +14 -0
- package/dist/corpus/cache.js +18 -0
- package/dist/corpus/cache.js.map +1 -0
- package/dist/corpus/fetch.d.ts +9 -0
- package/dist/corpus/fetch.js +24 -0
- package/dist/corpus/fetch.js.map +1 -0
- package/dist/corpus/index.d.ts +16 -0
- package/dist/corpus/index.js +78 -0
- package/dist/corpus/index.js.map +1 -0
- package/dist/corpus/query.d.ts +17 -0
- package/dist/corpus/query.js +108 -0
- package/dist/corpus/query.js.map +1 -0
- package/dist/corpus/route-resolver.d.ts +16 -0
- package/dist/corpus/route-resolver.js +20 -0
- package/dist/corpus/route-resolver.js.map +1 -0
- package/dist/corpus/types.d.ts +107 -0
- package/dist/corpus/types.js +50 -0
- package/dist/corpus/types.js.map +1 -0
- package/dist/daemon/balance-topup-loop.js +2 -1
- package/dist/daemon/balance-topup-loop.js.map +1 -1
- package/dist/daemon/creator.d.ts +2 -2
- package/dist/daemon/creator.js +2 -2
- package/dist/daemon/creator.js.map +1 -1
- package/dist/daemon/daemon.d.ts +70 -15
- package/dist/daemon/daemon.js +159 -41
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/delivery-watcher.js +31 -1
- package/dist/daemon/delivery-watcher.js.map +1 -1
- package/dist/daemon/jinn-claim-loop-canonical.d.ts +207 -0
- package/dist/daemon/jinn-claim-loop-canonical.js +296 -0
- package/dist/daemon/jinn-claim-loop-canonical.js.map +1 -0
- package/dist/daemon/jinn-claim-loop-mock.d.ts +61 -0
- package/dist/daemon/jinn-claim-loop-mock.js +122 -0
- package/dist/daemon/jinn-claim-loop-mock.js.map +1 -0
- package/dist/daemon/jinn-claim-loop.d.ts +123 -0
- package/dist/daemon/jinn-claim-loop.js +256 -0
- package/dist/daemon/jinn-claim-loop.js.map +1 -0
- package/dist/daemon/reward-claim-loop.d.ts +2 -0
- package/dist/daemon/reward-claim-loop.js +32 -27
- package/dist/daemon/reward-claim-loop.js.map +1 -1
- package/dist/dashboard/assets/index-Bxlk5qpa.js +68 -0
- package/dist/dashboard/assets/index-DQ3u_vP5.css +32 -0
- package/dist/dashboard/index.html +18 -74
- package/dist/earning/agent-wallet-binding.d.ts +133 -0
- package/dist/earning/agent-wallet-binding.js +202 -0
- package/dist/earning/agent-wallet-binding.js.map +1 -0
- package/dist/earning/bootstrap.d.ts +64 -0
- package/dist/earning/bootstrap.js +325 -32
- package/dist/earning/bootstrap.js.map +1 -1
- package/dist/earning/contracts.d.ts +323 -0
- package/dist/earning/contracts.js +276 -0
- package/dist/earning/contracts.js.map +1 -1
- package/dist/earning/funding-plan.d.ts +90 -0
- package/dist/earning/funding-plan.js +203 -0
- package/dist/earning/funding-plan.js.map +1 -0
- package/dist/earning/migrate-agent-id.d.ts +130 -0
- package/dist/earning/migrate-agent-id.js +257 -0
- package/dist/earning/migrate-agent-id.js.map +1 -0
- package/dist/earning/orphan-sweep.d.ts +14 -0
- package/dist/earning/orphan-sweep.js +63 -2
- package/dist/earning/orphan-sweep.js.map +1 -1
- package/dist/earning/reconcile.d.ts +2 -0
- package/dist/earning/reconcile.js +30 -0
- package/dist/earning/reconcile.js.map +1 -1
- package/dist/earning/stolas-claim.d.ts +86 -6
- package/dist/earning/stolas-claim.js +123 -9
- package/dist/earning/stolas-claim.js.map +1 -1
- package/dist/earning/store.d.ts +39 -0
- package/dist/earning/store.js +72 -1
- package/dist/earning/store.js.map +1 -1
- package/dist/earning/testnet-setup-migration.d.ts +32 -0
- package/dist/earning/testnet-setup-migration.js +214 -0
- package/dist/earning/testnet-setup-migration.js.map +1 -0
- package/dist/earning/types.d.ts +53 -9
- package/dist/earning/types.js +51 -2
- package/dist/earning/types.js.map +1 -1
- package/dist/earning/viem-clients.d.ts +20 -0
- package/dist/earning/viem-clients.js +32 -1
- package/dist/earning/viem-clients.js.map +1 -1
- package/dist/erc8004/abis.d.ts +381 -0
- package/dist/erc8004/abis.js +238 -0
- package/dist/erc8004/abis.js.map +1 -0
- package/dist/erc8004/addresses.d.ts +40 -0
- package/dist/erc8004/addresses.js +64 -0
- package/dist/erc8004/addresses.js.map +1 -0
- package/dist/erc8004/identity.d.ts +202 -0
- package/dist/erc8004/identity.js +305 -0
- package/dist/erc8004/identity.js.map +1 -0
- package/dist/erc8004/index.d.ts +13 -0
- package/dist/erc8004/index.js +20 -0
- package/dist/erc8004/index.js.map +1 -0
- package/dist/erc8004/reputation.d.ts +349 -0
- package/dist/erc8004/reputation.js +464 -0
- package/dist/erc8004/reputation.js.map +1 -0
- package/dist/erc8004/subgraph.d.ts +46 -0
- package/dist/erc8004/subgraph.js +37 -0
- package/dist/erc8004/subgraph.js.map +1 -0
- package/dist/erc8004/validation.d.ts +145 -0
- package/dist/erc8004/validation.js +219 -0
- package/dist/erc8004/validation.js.map +1 -0
- package/dist/errors/persisted-bootstrap-error.d.ts +4 -0
- package/dist/errors/persisted-bootstrap-error.js +50 -0
- package/dist/errors/persisted-bootstrap-error.js.map +1 -0
- package/dist/events/emitter.d.ts +12 -0
- package/dist/events/emitter.js +23 -0
- package/dist/events/emitter.js.map +1 -0
- package/dist/events/ring-buffer.d.ts +25 -0
- package/dist/events/ring-buffer.js +46 -0
- package/dist/events/ring-buffer.js.map +1 -0
- package/dist/events/types.d.ts +42 -0
- package/dist/events/types.js +28 -0
- package/dist/events/types.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/intents/kinds/index.d.ts +10 -0
- package/dist/intents/kinds/index.js +7 -0
- package/dist/intents/kinds/index.js.map +1 -1
- package/dist/intents/kinds/learner-loop-test.d.ts +2 -0
- package/dist/intents/kinds/learner-loop-test.js +39 -0
- package/dist/intents/kinds/learner-loop-test.js.map +1 -0
- package/dist/intents/kinds/prediction-apy-v0.js +5 -1
- package/dist/intents/kinds/prediction-apy-v0.js.map +1 -1
- package/dist/intents/kinds/prediction-v0.js +5 -0
- package/dist/intents/kinds/prediction-v0.js.map +1 -1
- package/dist/intents/kinds/spec-kind.d.ts +18 -1
- package/dist/intents/posting-service.d.ts +3 -5
- package/dist/intents/posting-service.js +16 -50
- package/dist/intents/posting-service.js.map +1 -1
- package/dist/intents/prediction-apy-v0-auto.d.ts +12 -2
- package/dist/intents/prediction-apy-v0-auto.js +27 -2
- package/dist/intents/prediction-apy-v0-auto.js.map +1 -1
- package/dist/intents/prediction-v0-auto.d.ts +14 -4
- package/dist/intents/prediction-v0-auto.js +29 -5
- package/dist/intents/prediction-v0-auto.js.map +1 -1
- package/dist/intents/signing.d.ts +13 -0
- package/dist/intents/signing.js +27 -0
- package/dist/intents/signing.js.map +1 -0
- package/dist/intents/sources.d.ts +12 -5
- package/dist/intents/sources.js +11 -11
- package/dist/intents/sources.js.map +1 -1
- package/dist/main.d.ts +5 -2
- package/dist/main.js +792 -66
- package/dist/main.js.map +1 -1
- package/dist/mcp/acquire-artifact.d.ts +39 -0
- package/dist/mcp/acquire-artifact.js +163 -0
- package/dist/mcp/acquire-artifact.js.map +1 -0
- package/dist/mcp/operator-server.d.ts +20 -3
- package/dist/mcp/operator-server.js +500 -25
- package/dist/mcp/operator-server.js.map +1 -1
- package/dist/mcp/search-artifacts.d.ts +31 -0
- package/dist/mcp/search-artifacts.js +40 -0
- package/dist/mcp/search-artifacts.js.map +1 -0
- package/dist/mcp/server.js +103 -58
- package/dist/mcp/server.js.map +1 -1
- package/dist/observability/emit-event.d.ts +1 -1
- package/dist/observability/emit-event.js.map +1 -1
- package/dist/operator-errors.js +4 -5
- package/dist/operator-errors.js.map +1 -1
- package/dist/preflight/claude-auth.d.ts +11 -11
- package/dist/preflight/claude-auth.js +18 -32
- package/dist/preflight/claude-auth.js.map +1 -1
- package/dist/restorer/capability/index.d.ts +82 -0
- package/dist/restorer/capability/index.js +12 -0
- package/dist/restorer/capability/index.js.map +1 -0
- package/dist/restorer/capability/scoped-rpc.d.ts +12 -0
- package/dist/restorer/capability/scoped-rpc.js +34 -0
- package/dist/restorer/capability/scoped-rpc.js.map +1 -0
- package/dist/restorer/capability/scoped-secrets.d.ts +8 -0
- package/dist/restorer/capability/scoped-secrets.js +10 -0
- package/dist/restorer/capability/scoped-secrets.js.map +1 -0
- package/dist/restorer/capability/scoped-signer.d.ts +46 -0
- package/dist/restorer/capability/scoped-signer.js +73 -0
- package/dist/restorer/capability/scoped-signer.js.map +1 -0
- package/dist/restorer/engine/canonical-json.d.ts +0 -17
- package/dist/restorer/engine/canonical-json.js +56 -49
- package/dist/restorer/engine/canonical-json.js.map +1 -1
- package/dist/restorer/engine/claim.js +8 -1
- package/dist/restorer/engine/claim.js.map +1 -1
- package/dist/restorer/engine/delivery.d.ts +2 -0
- package/dist/restorer/engine/delivery.js +2 -2
- package/dist/restorer/engine/delivery.js.map +1 -1
- package/dist/restorer/engine/engine.d.ts +143 -26
- package/dist/restorer/engine/engine.js +485 -104
- package/dist/restorer/engine/engine.js.map +1 -1
- package/dist/restorer/engine/envelope-assembly.d.ts +65 -0
- package/dist/restorer/engine/envelope-assembly.js +60 -0
- package/dist/restorer/engine/envelope-assembly.js.map +1 -0
- package/dist/restorer/engine/packaging.d.ts +30 -30
- package/dist/restorer/engine/packaging.js +73 -47
- package/dist/restorer/engine/packaging.js.map +1 -1
- package/dist/restorer/engine/persistence.d.ts +7 -7
- package/dist/restorer/engine/persistence.js +4 -4
- package/dist/restorer/engine/persistence.js.map +1 -1
- package/dist/restorer/engine/registry.d.ts +24 -13
- package/dist/restorer/engine/registry.js +16 -13
- package/dist/restorer/engine/registry.js.map +1 -1
- package/dist/restorer/engine/validate-manifest.d.ts +23 -0
- package/dist/restorer/engine/validate-manifest.js +49 -0
- package/dist/restorer/engine/validate-manifest.js.map +1 -0
- package/dist/restorer/engine/verification-stub.d.ts +18 -0
- package/dist/restorer/engine/verification-stub.js +18 -0
- package/dist/restorer/engine/verification-stub.js.map +1 -0
- package/dist/restorer/external-impls/index.d.ts +3 -0
- package/dist/restorer/external-impls/index.js +2 -0
- package/dist/restorer/external-impls/index.js.map +1 -0
- package/dist/restorer/external-impls/loader.d.ts +49 -0
- package/dist/restorer/external-impls/loader.js +138 -0
- package/dist/restorer/external-impls/loader.js.map +1 -0
- package/dist/restorer/external-impls/package-hash.d.ts +26 -0
- package/dist/restorer/external-impls/package-hash.js +102 -0
- package/dist/restorer/external-impls/package-hash.js.map +1 -0
- package/dist/restorer/external-impls/types.d.ts +42 -0
- package/dist/restorer/external-impls/types.js +10 -0
- package/dist/restorer/external-impls/types.js.map +1 -0
- package/dist/restorer/impls/claude-code-learner/adapters/claude-code.d.ts +38 -0
- package/dist/restorer/impls/claude-code-learner/adapters/claude-code.js +200 -0
- package/dist/restorer/impls/claude-code-learner/adapters/claude-code.js.map +1 -0
- package/dist/restorer/impls/claude-code-learner/harvest.d.ts +19 -0
- package/dist/restorer/impls/claude-code-learner/harvest.js +146 -0
- package/dist/restorer/impls/claude-code-learner/harvest.js.map +1 -0
- package/dist/restorer/impls/claude-code-learner/index.d.ts +15 -0
- package/dist/restorer/impls/claude-code-learner/index.js +14 -0
- package/dist/restorer/impls/claude-code-learner/index.js.map +1 -0
- package/dist/restorer/impls/claude-code-learner/mcp-config.d.ts +48 -0
- package/dist/restorer/impls/claude-code-learner/mcp-config.js +52 -0
- package/dist/restorer/impls/claude-code-learner/mcp-config.js.map +1 -0
- package/dist/restorer/impls/claude-code-learner/plugin-path.d.ts +14 -0
- package/dist/restorer/impls/claude-code-learner/plugin-path.js +30 -0
- package/dist/restorer/impls/claude-code-learner/plugin-path.js.map +1 -0
- package/dist/restorer/impls/claude-code-learner/restorer.d.ts +38 -0
- package/dist/restorer/impls/claude-code-learner/restorer.js +73 -0
- package/dist/restorer/impls/claude-code-learner/restorer.js.map +1 -0
- package/dist/restorer/impls/claude-code-learner/test-utils/fake-plugin-outputs.d.ts +19 -0
- package/dist/restorer/impls/claude-code-learner/test-utils/fake-plugin-outputs.js +111 -0
- package/dist/restorer/impls/claude-code-learner/test-utils/fake-plugin-outputs.js.map +1 -0
- package/dist/restorer/impls/claude-code-learner/test-utils/noop-adapter.d.ts +22 -0
- package/dist/restorer/impls/claude-code-learner/test-utils/noop-adapter.js +35 -0
- package/dist/restorer/impls/claude-code-learner/test-utils/noop-adapter.js.map +1 -0
- package/dist/restorer/impls/claude-code-learner/test-utils/synthetic-session.d.ts +20 -0
- package/dist/restorer/impls/claude-code-learner/test-utils/synthetic-session.js +34 -0
- package/dist/restorer/impls/claude-code-learner/test-utils/synthetic-session.js.map +1 -0
- package/dist/restorer/impls/claude-code-learner/types.d.ts +99 -0
- package/dist/restorer/impls/claude-code-learner/types.js +2 -0
- package/dist/restorer/impls/claude-code-learner/types.js.map +1 -0
- package/dist/restorer/impls/claude-code-learner/wrapper.d.ts +49 -0
- package/dist/restorer/impls/claude-code-learner/wrapper.js +144 -0
- package/dist/restorer/impls/claude-code-learner/wrapper.js.map +1 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.d.ts +2 -2
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.js +2 -2
- package/dist/restorer/impls/claude-mcp-hyperliquid/index.js.map +1 -1
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.d.ts +7 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js +38 -0
- package/dist/restorer/impls/claude-mcp-hyperliquid/session-orchestrator.js.map +1 -1
- package/dist/restorer/impls/claude-mcp-prediction/index.d.ts +2 -2
- package/dist/restorer/impls/claude-mcp-prediction/index.js +12 -2
- package/dist/restorer/impls/claude-mcp-prediction/index.js.map +1 -1
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.d.ts +9 -2
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js +9 -125
- package/dist/restorer/impls/claude-mcp-prediction/session-orchestrator.js.map +1 -1
- package/dist/restorer/impls/claude-mcp-prediction-apy/index.d.ts +2 -2
- package/dist/restorer/impls/claude-mcp-prediction-apy/index.js +9 -2
- package/dist/restorer/impls/claude-mcp-prediction-apy/index.js.map +1 -1
- package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.d.ts +10 -0
- package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js +10 -119
- package/dist/restorer/impls/claude-mcp-prediction-apy/session-orchestrator.js.map +1 -1
- package/dist/restorer/impls/claude-mcp-shared/single-session-orchestrator.d.ts +84 -0
- package/dist/restorer/impls/claude-mcp-shared/single-session-orchestrator.js +206 -0
- package/dist/restorer/impls/claude-mcp-shared/single-session-orchestrator.js.map +1 -0
- package/dist/restorer/impls/evaluation-context.d.ts +11 -4
- package/dist/restorer/impls/evaluation-context.js +9 -2
- package/dist/restorer/impls/evaluation-context.js.map +1 -1
- package/dist/restorer/impls/index.d.ts +46 -1
- package/dist/restorer/impls/index.js +38 -0
- package/dist/restorer/impls/index.js.map +1 -1
- package/dist/restorer/impls/legacy-claude/index.d.ts +13 -1
- package/dist/restorer/impls/legacy-claude/index.js +2 -0
- package/dist/restorer/impls/legacy-claude/index.js.map +1 -1
- package/dist/restorer/impls/portfolio-v0-evaluator/index.d.ts +4 -4
- package/dist/restorer/impls/portfolio-v0-evaluator/index.js +184 -55
- package/dist/restorer/impls/portfolio-v0-evaluator/index.js.map +1 -1
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.d.ts +1 -1
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.js +8 -1
- package/dist/restorer/impls/prediction-apy-v0-baseline/index.js.map +1 -1
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.d.ts +3 -3
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js +153 -15
- package/dist/restorer/impls/prediction-apy-v0-evaluator/index.js.map +1 -1
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.d.ts +14 -5
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js +16 -23
- package/dist/restorer/impls/prediction-apy-v0-evaluator/parse-submission.js.map +1 -1
- package/dist/restorer/impls/prediction-v0-baseline/index.d.ts +1 -1
- package/dist/restorer/impls/prediction-v0-baseline/index.js +16 -7
- package/dist/restorer/impls/prediction-v0-baseline/index.js.map +1 -1
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.d.ts +5 -3
- package/dist/restorer/impls/prediction-v0-evaluator/checks/integrity.js.map +1 -1
- package/dist/restorer/impls/prediction-v0-evaluator/index.d.ts +2 -2
- package/dist/restorer/impls/prediction-v0-evaluator/index.js +175 -67
- package/dist/restorer/impls/prediction-v0-evaluator/index.js.map +1 -1
- package/dist/restorer/manifest/index.d.ts +3 -0
- package/dist/restorer/manifest/index.js +3 -0
- package/dist/restorer/manifest/index.js.map +1 -0
- package/dist/restorer/manifest/load.d.ts +7 -0
- package/dist/restorer/manifest/load.js +49 -0
- package/dist/restorer/manifest/load.js.map +1 -0
- package/dist/restorer/manifest/types.d.ts +75 -0
- package/dist/restorer/manifest/types.js +8 -0
- package/dist/restorer/manifest/types.js.map +1 -0
- package/dist/restorer/manifest/verify.d.ts +15 -0
- package/dist/restorer/manifest/verify.js +53 -0
- package/dist/restorer/manifest/verify.js.map +1 -0
- package/dist/restorer/plug-ins/index.d.ts +14 -0
- package/dist/restorer/plug-ins/index.js +11 -0
- package/dist/restorer/plug-ins/index.js.map +1 -0
- package/dist/restorer/plug-ins/loader.d.ts +27 -0
- package/dist/restorer/plug-ins/loader.js +101 -0
- package/dist/restorer/plug-ins/loader.js.map +1 -0
- package/dist/restorer/plug-ins/manifest.d.ts +7 -0
- package/dist/restorer/plug-ins/manifest.js +97 -0
- package/dist/restorer/plug-ins/manifest.js.map +1 -0
- package/dist/restorer/plug-ins/registry.d.ts +24 -0
- package/dist/restorer/plug-ins/registry.js +17 -0
- package/dist/restorer/plug-ins/registry.js.map +1 -0
- package/dist/restorer/plug-ins/serialise.d.ts +29 -0
- package/dist/restorer/plug-ins/serialise.js +29 -0
- package/dist/restorer/plug-ins/serialise.js.map +1 -0
- package/dist/restorer/plug-ins/types.d.ts +77 -0
- package/dist/restorer/plug-ins/types.js +10 -0
- package/dist/restorer/plug-ins/types.js.map +1 -0
- package/dist/restorer/types.d.ts +66 -11
- package/dist/restorer/types.js.map +1 -1
- package/dist/runner/claude.d.ts +3 -3
- package/dist/runner/claude.js +57 -21
- package/dist/runner/claude.js.map +1 -1
- package/dist/runner/runner.d.ts +29 -2
- package/dist/runner/simple.d.ts +2 -2
- package/dist/runner/simple.js +2 -2
- package/dist/runner/simple.js.map +1 -1
- package/dist/scripts/fix-node-pty.mjs +62 -0
- package/dist/setup-mode.d.ts +34 -0
- package/dist/setup-mode.js +49 -0
- package/dist/setup-mode.js.map +1 -0
- package/dist/store/store.d.ts +79 -3
- package/dist/store/store.js +189 -6
- package/dist/store/store.js.map +1 -1
- package/dist/templates/plug-in/hook/README.md.tmpl +24 -0
- package/dist/templates/plug-in/hook/gitignore.tmpl +3 -0
- package/dist/templates/plug-in/hook/hooks/event.sh.tmpl +15 -0
- package/dist/templates/plug-in/hook/jinn-plugin.json.tmpl +16 -0
- package/dist/templates/plug-in/hook/package.json.tmpl +14 -0
- package/dist/templates/plug-in/hook/test/manifest.test.ts.tmpl +21 -0
- package/dist/templates/plug-in/mcp-tool/README.md.tmpl +26 -0
- package/dist/templates/plug-in/mcp-tool/gitignore.tmpl +4 -0
- package/dist/templates/plug-in/mcp-tool/jinn-plugin.json.tmpl +16 -0
- package/dist/templates/plug-in/mcp-tool/package.json.tmpl +19 -0
- package/dist/templates/plug-in/mcp-tool/src/server.ts.tmpl +17 -0
- package/dist/templates/plug-in/mcp-tool/test/server.test.ts.tmpl +18 -0
- package/dist/templates/plug-in/memory-backend/README.md.tmpl +33 -0
- package/dist/templates/plug-in/memory-backend/gitignore.tmpl +4 -0
- package/dist/templates/plug-in/memory-backend/jinn-plugin.json.tmpl +16 -0
- package/dist/templates/plug-in/memory-backend/package.json.tmpl +19 -0
- package/dist/templates/plug-in/memory-backend/src/server.ts.tmpl +23 -0
- package/dist/templates/plug-in/memory-backend/test/server.test.ts.tmpl +17 -0
- package/dist/templates/plug-in/phase-agent-override/README.md.tmpl +30 -0
- package/dist/templates/plug-in/phase-agent-override/agents/agent.md.tmpl +26 -0
- package/dist/templates/plug-in/phase-agent-override/gitignore.tmpl +3 -0
- package/dist/templates/plug-in/phase-agent-override/jinn-plugin.json.tmpl +17 -0
- package/dist/templates/plug-in/phase-agent-override/package.json.tmpl +14 -0
- package/dist/templates/plug-in/phase-agent-override/test/manifest.test.ts.tmpl +24 -0
- package/dist/templates/plug-in/skill-bundle/.claude-plugin/plugin.json.tmpl +5 -0
- package/dist/templates/plug-in/skill-bundle/README.md.tmpl +28 -0
- package/dist/templates/plug-in/skill-bundle/gitignore.tmpl +3 -0
- package/dist/templates/plug-in/skill-bundle/jinn-plugin.json.tmpl +15 -0
- package/dist/templates/plug-in/skill-bundle/package.json.tmpl +14 -0
- package/dist/templates/plug-in/skill-bundle/skills/example/SKILL.md.tmpl +14 -0
- package/dist/templates/plug-in/skill-bundle/test/manifest.test.ts.tmpl +21 -0
- package/dist/templates/plug-in/topic-explorer/README.md.tmpl +24 -0
- package/dist/templates/plug-in/topic-explorer/agents/explorer.md.tmpl +26 -0
- package/dist/templates/plug-in/topic-explorer/gitignore.tmpl +3 -0
- package/dist/templates/plug-in/topic-explorer/jinn-plugin.json.tmpl +17 -0
- package/dist/templates/plug-in/topic-explorer/package.json.tmpl +14 -0
- package/dist/templates/plug-in/topic-explorer/test/manifest.test.ts.tmpl +22 -0
- package/dist/templates/restorer/alternative-harness/README.md.tmpl +44 -0
- package/dist/templates/restorer/alternative-harness/gitignore.tmpl +3 -0
- package/dist/templates/restorer/alternative-harness/jinn.manifest.json.tmpl +22 -0
- package/dist/templates/restorer/alternative-harness/package.json.tmpl +26 -0
- package/dist/templates/restorer/alternative-harness/src/coordinator.ts.tmpl +50 -0
- package/dist/templates/restorer/alternative-harness/src/harness.ts.tmpl +31 -0
- package/dist/templates/restorer/alternative-harness/src/index.ts.tmpl +44 -0
- package/dist/templates/restorer/alternative-harness/src/mock-harness.ts.tmpl +41 -0
- package/dist/templates/restorer/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
- package/dist/templates/restorer/alternative-harness/src/phases/execute.ts.tmpl +33 -0
- package/dist/templates/restorer/alternative-harness/src/phases/improve.ts.tmpl +31 -0
- package/dist/templates/restorer/alternative-harness/src/phases/memory.ts.tmpl +31 -0
- package/dist/templates/restorer/alternative-harness/src/phases/orient.ts.tmpl +21 -0
- package/dist/templates/restorer/alternative-harness/src/phases/plan.ts.tmpl +25 -0
- package/dist/templates/restorer/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
- package/dist/templates/restorer/alternative-harness/test/coordinator.test.ts.tmpl +52 -0
- package/dist/templates/restorer/alternative-harness/test/unit.test.ts.tmpl +54 -0
- package/dist/templates/restorer/alternative-harness/tsconfig.json.tmpl +16 -0
- package/dist/templates/restorer/evaluator/README.md.tmpl +36 -0
- package/dist/templates/restorer/evaluator/gitignore.tmpl +3 -0
- package/dist/templates/restorer/evaluator/jinn.manifest.json.tmpl +22 -0
- package/dist/templates/restorer/evaluator/package.json.tmpl +26 -0
- package/dist/templates/restorer/evaluator/src/index.ts.tmpl +35 -0
- package/dist/templates/restorer/evaluator/test/unit.test.ts.tmpl +48 -0
- package/dist/templates/restorer/evaluator/tsconfig.json.tmpl +16 -0
- package/dist/templates/restorer/forecaster/README.md.tmpl +25 -0
- package/dist/templates/restorer/forecaster/gitignore.tmpl +5 -0
- package/dist/templates/restorer/forecaster/jinn.manifest.json.tmpl +22 -0
- package/dist/templates/restorer/forecaster/package.json.tmpl +26 -0
- package/dist/templates/restorer/forecaster/src/index.ts.tmpl +33 -0
- package/dist/templates/restorer/forecaster/test/unit.test.ts.tmpl +41 -0
- package/dist/templates/restorer/forecaster/tsconfig.json.tmpl +16 -0
- package/dist/trajectory/collector.d.ts +49 -0
- package/dist/trajectory/collector.js +86 -0
- package/dist/trajectory/collector.js.map +1 -0
- package/dist/trajectory/emit.d.ts +27 -0
- package/dist/trajectory/emit.js +40 -0
- package/dist/trajectory/emit.js.map +1 -0
- package/dist/trajectory/hash-chain.d.ts +18 -0
- package/dist/trajectory/hash-chain.js +23 -0
- package/dist/trajectory/hash-chain.js.map +1 -0
- package/dist/trajectory/index.d.ts +22 -0
- package/dist/trajectory/index.js +23 -0
- package/dist/trajectory/index.js.map +1 -0
- package/dist/trajectory/schema.d.ts +14 -14
- package/dist/trajectory/secret-scrub.d.ts +32 -0
- package/dist/trajectory/secret-scrub.js +51 -0
- package/dist/trajectory/secret-scrub.js.map +1 -0
- package/dist/trajectory/span-profile.d.ts +27 -0
- package/dist/trajectory/span-profile.js +51 -0
- package/dist/trajectory/span-profile.js.map +1 -0
- package/dist/trajectory/wrappers/http.d.ts +37 -0
- package/dist/trajectory/wrappers/http.js +85 -0
- package/dist/trajectory/wrappers/http.js.map +1 -0
- package/dist/trajectory/wrappers/mcp.d.ts +17 -0
- package/dist/trajectory/wrappers/mcp.js +58 -0
- package/dist/trajectory/wrappers/mcp.js.map +1 -0
- package/dist/trajectory/wrappers/subprocess.d.ts +32 -0
- package/dist/trajectory/wrappers/subprocess.js +70 -0
- package/dist/trajectory/wrappers/subprocess.js.map +1 -0
- package/dist/tx-retry.js +23 -9
- package/dist/tx-retry.js.map +1 -1
- package/dist/types/desired-state.d.ts +211 -21
- package/dist/types/desired-state.js +26 -15
- package/dist/types/desired-state.js.map +1 -1
- package/dist/types/envelope.d.ts +1473 -0
- package/dist/types/envelope.js +114 -0
- package/dist/types/envelope.js.map +1 -0
- package/dist/types/index.d.ts +4 -4
- package/dist/types/index.js +4 -4
- package/dist/types/index.js.map +1 -1
- package/dist/types/intent.d.ts +276 -0
- package/dist/types/intent.js +74 -0
- package/dist/types/intent.js.map +1 -0
- package/dist/types/payloads/index.d.ts +11 -0
- package/dist/types/payloads/index.js +46 -0
- package/dist/types/payloads/index.js.map +1 -0
- package/dist/types/payloads/portfolio-v0.d.ts +481 -0
- package/dist/types/payloads/portfolio-v0.js +94 -0
- package/dist/types/payloads/portfolio-v0.js.map +1 -0
- package/dist/types/payloads/prediction-apy-v0.d.ts +231 -0
- package/dist/types/payloads/prediction-apy-v0.js +63 -0
- package/dist/types/payloads/prediction-apy-v0.js.map +1 -0
- package/dist/types/payloads/prediction-v0.d.ts +262 -0
- package/dist/types/payloads/prediction-v0.js +73 -0
- package/dist/types/payloads/prediction-v0.js.map +1 -0
- package/dist/types/portfolio.d.ts +23 -685
- package/dist/types/portfolio.js +16 -106
- package/dist/types/portfolio.js.map +1 -1
- package/dist/types/prediction-apy.d.ts +9 -344
- package/dist/types/prediction-apy.js +9 -65
- package/dist/types/prediction-apy.js.map +1 -1
- package/dist/types/prediction.d.ts +25 -396
- package/dist/types/prediction.js +5 -79
- package/dist/types/prediction.js.map +1 -1
- package/dist/types/window.d.ts +12 -0
- package/dist/types/window.js +6 -0
- package/dist/types/window.js.map +1 -0
- package/dist/util/path-safety.d.ts +22 -0
- package/dist/util/path-safety.js +29 -0
- package/dist/util/path-safety.js.map +1 -0
- package/dist/util/redact-rpc-urls.d.ts +5 -0
- package/dist/util/redact-rpc-urls.js +9 -0
- package/dist/util/redact-rpc-urls.js.map +1 -0
- package/dist/x402/acquire.d.ts +14 -3
- package/dist/x402/acquire.js +28 -11
- package/dist/x402/acquire.js.map +1 -1
- package/dist/x402/handler.d.ts +15 -3
- package/dist/x402/handler.js +67 -24
- package/dist/x402/handler.js.map +1 -1
- package/package.json +36 -11
- package/plugins/claude-code-learner/.claude-plugin/plugin.json +9 -0
- package/plugins/claude-code-learner/AGENTS.md +30 -0
- package/plugins/claude-code-learner/CLAUDE.md +31 -0
- package/plugins/claude-code-learner/README.md +58 -0
- package/plugins/claude-code-learner/agents/analyst.md +69 -0
- package/plugins/claude-code-learner/agents/consolidator.md +95 -0
- package/plugins/claude-code-learner/agents/explorer.md +54 -0
- package/plugins/claude-code-learner/agents/planner.md +88 -0
- package/plugins/claude-code-learner/agents/promoter.md +114 -0
- package/plugins/claude-code-learner/agents/step-worker.md +48 -0
- package/plugins/claude-code-learner/agents/strategist.md +86 -0
- package/plugins/claude-code-learner/hooks/hooks.json +16 -0
- package/plugins/claude-code-learner/hooks/session-start +49 -0
- package/plugins/claude-code-learner/skills/coordinator/SKILL.md +131 -0
- package/plugins/claude-code-learner/skills/debrief/SKILL.md +71 -0
- package/plugins/claude-code-learner/skills/execute/SKILL.md +91 -0
- package/plugins/claude-code-learner/skills/improve/SKILL.md +57 -0
- package/plugins/claude-code-learner/skills/memory-consolidation/SKILL.md +57 -0
- package/plugins/claude-code-learner/skills/orient/SKILL.md +82 -0
- package/plugins/claude-code-learner/skills/plan/SKILL.md +54 -0
- package/plugins/claude-code-learner/skills/strategize/SKILL.md +63 -0
- package/skills/jinn-operator/SKILL.md +84 -35
- package/templates/plug-in/hook/README.md.tmpl +24 -0
- package/templates/plug-in/hook/gitignore.tmpl +3 -0
- package/templates/plug-in/hook/hooks/event.sh.tmpl +15 -0
- package/templates/plug-in/hook/jinn-plugin.json.tmpl +16 -0
- package/templates/plug-in/hook/package.json.tmpl +14 -0
- package/templates/plug-in/hook/test/manifest.test.ts.tmpl +21 -0
- package/templates/plug-in/mcp-tool/README.md.tmpl +26 -0
- package/templates/plug-in/mcp-tool/gitignore.tmpl +4 -0
- package/templates/plug-in/mcp-tool/jinn-plugin.json.tmpl +16 -0
- package/templates/plug-in/mcp-tool/package.json.tmpl +19 -0
- package/templates/plug-in/mcp-tool/src/server.ts.tmpl +17 -0
- package/templates/plug-in/mcp-tool/test/server.test.ts.tmpl +18 -0
- package/templates/plug-in/memory-backend/README.md.tmpl +33 -0
- package/templates/plug-in/memory-backend/gitignore.tmpl +4 -0
- package/templates/plug-in/memory-backend/jinn-plugin.json.tmpl +16 -0
- package/templates/plug-in/memory-backend/package.json.tmpl +19 -0
- package/templates/plug-in/memory-backend/src/server.ts.tmpl +23 -0
- package/templates/plug-in/memory-backend/test/server.test.ts.tmpl +17 -0
- package/templates/plug-in/phase-agent-override/README.md.tmpl +30 -0
- package/templates/plug-in/phase-agent-override/agents/agent.md.tmpl +26 -0
- package/templates/plug-in/phase-agent-override/gitignore.tmpl +3 -0
- package/templates/plug-in/phase-agent-override/jinn-plugin.json.tmpl +17 -0
- package/templates/plug-in/phase-agent-override/package.json.tmpl +14 -0
- package/templates/plug-in/phase-agent-override/test/manifest.test.ts.tmpl +24 -0
- package/templates/plug-in/skill-bundle/.claude-plugin/plugin.json.tmpl +5 -0
- package/templates/plug-in/skill-bundle/README.md.tmpl +28 -0
- package/templates/plug-in/skill-bundle/gitignore.tmpl +3 -0
- package/templates/plug-in/skill-bundle/jinn-plugin.json.tmpl +15 -0
- package/templates/plug-in/skill-bundle/package.json.tmpl +14 -0
- package/templates/plug-in/skill-bundle/skills/example/SKILL.md.tmpl +14 -0
- package/templates/plug-in/skill-bundle/test/manifest.test.ts.tmpl +21 -0
- package/templates/plug-in/topic-explorer/README.md.tmpl +24 -0
- package/templates/plug-in/topic-explorer/agents/explorer.md.tmpl +26 -0
- package/templates/plug-in/topic-explorer/gitignore.tmpl +3 -0
- package/templates/plug-in/topic-explorer/jinn-plugin.json.tmpl +17 -0
- package/templates/plug-in/topic-explorer/package.json.tmpl +14 -0
- package/templates/plug-in/topic-explorer/test/manifest.test.ts.tmpl +22 -0
- package/templates/restorer/alternative-harness/README.md.tmpl +44 -0
- package/templates/restorer/alternative-harness/gitignore.tmpl +3 -0
- package/templates/restorer/alternative-harness/jinn.manifest.json.tmpl +22 -0
- package/templates/restorer/alternative-harness/package.json.tmpl +26 -0
- package/templates/restorer/alternative-harness/src/coordinator.ts.tmpl +50 -0
- package/templates/restorer/alternative-harness/src/harness.ts.tmpl +31 -0
- package/templates/restorer/alternative-harness/src/index.ts.tmpl +44 -0
- package/templates/restorer/alternative-harness/src/mock-harness.ts.tmpl +41 -0
- package/templates/restorer/alternative-harness/src/phases/debrief.ts.tmpl +28 -0
- package/templates/restorer/alternative-harness/src/phases/execute.ts.tmpl +33 -0
- package/templates/restorer/alternative-harness/src/phases/improve.ts.tmpl +31 -0
- package/templates/restorer/alternative-harness/src/phases/memory.ts.tmpl +31 -0
- package/templates/restorer/alternative-harness/src/phases/orient.ts.tmpl +21 -0
- package/templates/restorer/alternative-harness/src/phases/plan.ts.tmpl +25 -0
- package/templates/restorer/alternative-harness/src/phases/strategize.ts.tmpl +29 -0
- package/templates/restorer/alternative-harness/test/coordinator.test.ts.tmpl +52 -0
- package/templates/restorer/alternative-harness/test/unit.test.ts.tmpl +54 -0
- package/templates/restorer/alternative-harness/tsconfig.json.tmpl +16 -0
- package/templates/restorer/evaluator/README.md.tmpl +36 -0
- package/templates/restorer/evaluator/gitignore.tmpl +3 -0
- package/templates/restorer/evaluator/jinn.manifest.json.tmpl +22 -0
- package/templates/restorer/evaluator/package.json.tmpl +26 -0
- package/templates/restorer/evaluator/src/index.ts.tmpl +35 -0
- package/templates/restorer/evaluator/test/unit.test.ts.tmpl +48 -0
- package/templates/restorer/evaluator/tsconfig.json.tmpl +16 -0
- package/templates/restorer/forecaster/README.md.tmpl +25 -0
- package/templates/restorer/forecaster/gitignore.tmpl +5 -0
- package/templates/restorer/forecaster/jinn.manifest.json.tmpl +22 -0
- package/templates/restorer/forecaster/package.json.tmpl +26 -0
- package/templates/restorer/forecaster/src/index.ts.tmpl +33 -0
- package/templates/restorer/forecaster/test/unit.test.ts.tmpl +41 -0
- package/templates/restorer/forecaster/tsconfig.json.tmpl +16 -0
- package/dist/bin/jinn-mcp.d.ts +0 -2
- package/dist/bin/jinn-mcp.js +0 -10
- package/dist/bin/jinn-mcp.js.map +0 -1
- package/dist/cli/commands/quickstart.js +0 -330
- package/dist/cli/commands/quickstart.js.map +0 -1
- package/dist/discovery/registry.d.ts +0 -97
- package/dist/discovery/registry.js +0 -177
- package/dist/discovery/registry.js.map +0 -1
- package/dist/discovery/subgraph.d.ts +0 -37
- package/dist/discovery/subgraph.js +0 -87
- package/dist/discovery/subgraph.js.map +0 -1
- package/dist/restorer/engine/manifest-assembly.d.ts +0 -67
- package/dist/restorer/engine/manifest-assembly.js +0 -79
- package/dist/restorer/engine/manifest-assembly.js.map +0 -1
- /package/dist/cli/commands/{quickstart.d.ts → ui.d.ts} +0 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coordinator
|
|
3
|
+
description: Use when running a Jinn restoration intent end-to-end. Sequences the seven-phase pipeline (Orient → Strategize → Plan → Execute → Debrief → Improve → Memory consolidation) by loading each phase's skill in order.
|
|
4
|
+
allowed-tools: Bash, Read, Write, Skill
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Coordinator — claude-code-learner entry point
|
|
8
|
+
|
|
9
|
+
You are running one Jinn restoration intent end-to-end. This skill is the entry point. Each phase's skill is loaded into your session in turn; each phase skill does its own thin orchestration — meaning each phase skill's job is to launch a specialized subagent via the Agent tool and collect its output, not to do the deep reasoning itself.
|
|
10
|
+
|
|
11
|
+
## Inputs (from the daemon)
|
|
12
|
+
|
|
13
|
+
- `intent` — `{ id, description, kind, window: { startTs, endTs }, spec, eligibility? }`
|
|
14
|
+
- `workingDir` — ephemeral; the engine harvests for delivery when you return
|
|
15
|
+
- `implStateDir` — operator-private durable self; persists across runs
|
|
16
|
+
- `msUntilEndTs` — function returning remaining time in the window
|
|
17
|
+
- An abort signal that fires at `window.endTs`
|
|
18
|
+
|
|
19
|
+
## Boot
|
|
20
|
+
|
|
21
|
+
The session-start hook (`hooks/session-start`) has already run with `IMPL_STATE_DIR` set, so:
|
|
22
|
+
- `implStateDir` is a git repo
|
|
23
|
+
- The claude-code-learner git author identity is configured
|
|
24
|
+
- HEAD sha is the implStateDir state at run start
|
|
25
|
+
|
|
26
|
+
Capture it for the constitution span:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
IMPL_STATE_DIR_SHA=$(git -C "$IMPL_STATE_DIR" rev-parse HEAD)
|
|
30
|
+
SKILL_BUNDLE_CID=$(find "${CLAUDE_PLUGIN_ROOT:-$PLUGIN_ROOT}" -type f \( -name '*.md' -o -name '*.sh' -o -name '*.mjs' \) | sort | xargs sha256sum | sha256sum | cut -d' ' -f1)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The plugin root is provided by Claude Code as `${CLAUDE_PLUGIN_ROOT}`. Other harnesses may set `$PLUGIN_ROOT` from their session-start hook (the claude-code-learner hook does both for portability — sets and exports `PLUGIN_ROOT`). If neither is set, hash the loaded skills from their loaded paths.
|
|
34
|
+
|
|
35
|
+
Write `workingDir/.coordinator/boot.json` (downstream phases — particularly Strategize — read it for the constitution span). The shape is:
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"implStateDirShaAtStart": "<git HEAD sha of implStateDir at run start>",
|
|
40
|
+
"skillBundleCid": "sha256:<plugin bundle digest>",
|
|
41
|
+
"intentId": "<intent.id>",
|
|
42
|
+
"windowEndTs": <window.endTs as milliseconds since epoch>
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
The daemon hands you `intent`, `workingDir`, and `implStateDir` as session inputs (not POSIX env vars). Bind them to the variables this section uses, then write the file:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Bind session inputs into shell variables (substitute your harness's
|
|
50
|
+
# mechanism — e.g., values pulled from the initial prompt context or a
|
|
51
|
+
# harness-provided JSON input):
|
|
52
|
+
WORKING_DIR="<workingDir from session inputs>"
|
|
53
|
+
INTENT_ID="<intent.id from session inputs>"
|
|
54
|
+
WINDOW_END_TS="<intent.window.endTs from session inputs>"
|
|
55
|
+
|
|
56
|
+
mkdir -p "$WORKING_DIR/.coordinator"
|
|
57
|
+
cat > "$WORKING_DIR/.coordinator/boot.json" <<EOF
|
|
58
|
+
{
|
|
59
|
+
"implStateDirShaAtStart": "$IMPL_STATE_DIR_SHA",
|
|
60
|
+
"skillBundleCid": "sha256:$SKILL_BUNDLE_CID",
|
|
61
|
+
"intentId": "$INTENT_ID",
|
|
62
|
+
"windowEndTs": $WINDOW_END_TS
|
|
63
|
+
}
|
|
64
|
+
EOF
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`windowEndTs` is the intent window's end timestamp in milliseconds since epoch.
|
|
68
|
+
|
|
69
|
+
## Pipeline
|
|
70
|
+
|
|
71
|
+
*Phase-range hint:* if the env var `JINN_CLAUDE_CODE_LEARNER_PHASE_RANGE` is set, run only the corresponding subset:
|
|
72
|
+
- `all` (or unset) — run all seven phases.
|
|
73
|
+
- `pre-execute` — run only phases 1–3 (Orient, Strategize, Plan), then return. The daemon-side wrapper will run Execute itself and invoke the coordinator again with `post-execute`.
|
|
74
|
+
- `post-execute` — run only phases 5–7 (Debrief, Improve, Memory consolidation). The daemon-side wrapper has already populated `workingDir/.execute/` from a kind-specific specialist before invoking this pass.
|
|
75
|
+
|
|
76
|
+
This protocol exists so the daemon's first-match wrapper can wrap kind-specific specialist Execute paths in the learning envelope without the specialist needing to know about the wrapper.
|
|
77
|
+
|
|
78
|
+
For each phase below, in order:
|
|
79
|
+
|
|
80
|
+
1. Load the phase skill via the `Skill` tool. Skills are namespaced by plugin: invoke as `claude-code-learner:<phase-name>` (e.g., `Skill claude-code-learner:orient`).
|
|
81
|
+
2. The skill loads into your session; follow its instructions. It will typically launch one or more specialized subagents via the Agent tool, collect their outputs, and write artifacts under `workingDir/.<phase>/`.
|
|
82
|
+
3. Append a JSONL entry to `workingDir/.coordinator/log.jsonl` after each phase: `{ ts, phase, status, summary }`.
|
|
83
|
+
|
|
84
|
+
Phases in order (full skill names shown):
|
|
85
|
+
|
|
86
|
+
1. `claude-code-learner:orient` — gather intent + world-state + history
|
|
87
|
+
2. `claude-code-learner:strategize` — pick approach, freeze success criteria + timing posture
|
|
88
|
+
3. `claude-code-learner:plan` — concrete steps, optionally time-anchored
|
|
89
|
+
4. `claude-code-learner:execute` — walk plan, spawn step-workers, decide stuck
|
|
90
|
+
5. `claude-code-learner:debrief` — post-execution analysis
|
|
91
|
+
6. `claude-code-learner:improve` — mutate `implStateDir`, commit
|
|
92
|
+
7. `claude-code-learner:memory-consolidation` — curate, separate commit
|
|
93
|
+
|
|
94
|
+
## Plug-in slot registry
|
|
95
|
+
|
|
96
|
+
If `workingDir/.coordinator/slots.json` exists, the daemon has supplied a Path 1 plug-in registry (see spec/2026-04-30-plug-in-surface.md §4). Phase skills consult their relevant slot category as they run; the coordinator itself only needs to surface the `hooks` slot.
|
|
97
|
+
|
|
98
|
+
## Plug-in hooks
|
|
99
|
+
|
|
100
|
+
Read `workingDir/.coordinator/slots.json` (if present). For each `hooks[]` entry, retain it for invocation:
|
|
101
|
+
|
|
102
|
+
- `session-start` hooks run **once** before the first phase. The bundled `hooks/session-start` shell hook already ran during boot — these are *additional* hooks the plug-in author registered.
|
|
103
|
+
- `pre-phase` / `post-phase` hooks run before / after each phase. If `slot.phase` is set, only run for that phase.
|
|
104
|
+
- `session-end` hooks run after `memory-consolidation` (the last phase), regardless of failure.
|
|
105
|
+
|
|
106
|
+
Invoke each hook via `Bash`: `bash <packageRoot>/<entry>` with environment variables set:
|
|
107
|
+
|
|
108
|
+
- `JINN_INTENT_ID`, `JINN_INTENT_KIND`
|
|
109
|
+
- `JINN_PHASE` (for `pre-phase` / `post-phase` only)
|
|
110
|
+
- `JINN_WORKING_DIR`, `JINN_IMPL_STATE_DIR`
|
|
111
|
+
|
|
112
|
+
Failures in hooks log a warning to `workingDir/.errors/hooks.log` but do not abort the session. The coordinator's failure handling continues unchanged.
|
|
113
|
+
|
|
114
|
+
## Constitution span
|
|
115
|
+
|
|
116
|
+
After Strategize, read `workingDir/.strategize/constitution.json` and emit its fields as attributes on a `jinn.state_transition` span. If your harness exposes an OTel tracer, do this; otherwise the file itself is the constitution record (Debrief reads it from there).
|
|
117
|
+
|
|
118
|
+
## Returning
|
|
119
|
+
|
|
120
|
+
When the pipeline finishes — whether all seven phases completed cleanly, an abort signal fired, or a phase reported failure — return. The Jinn daemon's walkArtifacts packaging handles delivery. Never modify anything outside `implStateDir/**` or `workingDir/**`.
|
|
121
|
+
|
|
122
|
+
## Failure handling
|
|
123
|
+
|
|
124
|
+
- Within Execute: that skill judges `continue / retry-step / replan / abort` per its own rules.
|
|
125
|
+
- Execute reporting `abort` is not a coordinator-level abort — continue to Debrief / Improve / Memory consolidation as normal so partial work is analyzed and curated. The Execute skill writes `workingDir/.errors/execute.json` itself.
|
|
126
|
+
- Other phases: if a phase reports a hard problem, write `workingDir/.errors/<phase>.json` and abort the pipeline. Still invoke `memory-consolidation` so partial work gets curated.
|
|
127
|
+
- Abort signal fired (window expired): stop the current phase cleanly, write `workingDir/.errors/abort.json`, invoke `memory-consolidation`, return.
|
|
128
|
+
|
|
129
|
+
## Cross-reference
|
|
130
|
+
|
|
131
|
+
Spec: `docs/superpowers/specs/2026-04-23-default-learning-restorer-design.md` v1.1, sections §2, §10.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debrief
|
|
3
|
+
description: Use when the coordinator reaches the Debrief phase. Optionally launch explorer subagents for cross-operator / outcome reads, then launch one analyst subagent with all evidence to produce the analysis Improve consumes.
|
|
4
|
+
allowed-tools: Bash, Read, Write, Agent
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Debrief skill
|
|
8
|
+
|
|
9
|
+
Mirrors Orient — gather + sense-make in hindsight. You may launch explorers (for cross-operator reads or fresh world-state probes) and always launch the analyst.
|
|
10
|
+
|
|
11
|
+
## Inputs
|
|
12
|
+
|
|
13
|
+
- All `workingDir/.<prior-phase>/` outputs through Execute
|
|
14
|
+
- Strategy + constitution from `workingDir/.strategize/`
|
|
15
|
+
- Plan from `workingDir/.plan/`
|
|
16
|
+
- `implStateDir/runs/` for own history
|
|
17
|
+
- The intent
|
|
18
|
+
|
|
19
|
+
## Optional: launch explorers
|
|
20
|
+
|
|
21
|
+
If the operator's policy enables cross-operator reads or fresh-world-state probes, spawn `explorer` subagents in parallel for each post-execution topic:
|
|
22
|
+
|
|
23
|
+
- `outcome-probe` — re-pull venue / market / on-chain state to see post-execution outcome
|
|
24
|
+
- `cross-operator-comparison` — knowledge-tree query for similar runs by other operators (only if policy allows)
|
|
25
|
+
|
|
26
|
+
Same Agent-tool spawn pattern as Orient. Outputs land under `workingDir/.debrief/<topic>.json`.
|
|
27
|
+
|
|
28
|
+
## Plug-in topic explorers
|
|
29
|
+
|
|
30
|
+
In addition to the topics above, consult `workingDir/.coordinator/slots.json` (if present). For each entry in `topicExplorers` matching `slot.phase === "debrief"` AND (`slot.scope` absent OR `intent.spec.kind` ∈ `slot.scope.matchKinds`), treat it as an additional topic to gather. Topic name is `slot.topic`; explorer agent is at `<entry.packageRoot>/<entry.slot.entry>`. Inputs match the bundled explorer (topic, intent, scope, workingDir, implStateDir, outputPath = `workingDir/.debrief/<topic>.json`, msUntilEndTs). Topic-name collisions: a plug-in's explorer replaces the bundled fan-out for that topic; surface a one-line note in the analyst's input bundle.
|
|
31
|
+
|
|
32
|
+
## Consult slot registry
|
|
33
|
+
|
|
34
|
+
Before spawning the bundled analyst, check `workingDir/.coordinator/slots.json` (if present) for a `phase-agent-override` entry where `slot.phase === "debrief"` AND `slot.agent === "analyst"` AND (`slot.scope` absent OR `intent.spec.kind` ∈ `slot.scope.matchKinds`). If a match exists, spawn the agent at `<entry.packageRoot>/<entry.slot.entry>` with the same inputs as the bundled analyst. Otherwise proceed with the bundled `analyst` agent.
|
|
35
|
+
|
|
36
|
+
## Launch the analyst
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Use the Agent tool to spawn a fresh-context subagent with role `analyst`.
|
|
40
|
+
Pass it inputs:
|
|
41
|
+
intent = <copy of intent>
|
|
42
|
+
strategyPath = workingDir/.strategize/strategy.json
|
|
43
|
+
constitutionPath = workingDir/.strategize/constitution.json
|
|
44
|
+
planPath = workingDir/.plan/plan.json
|
|
45
|
+
executeSummaryPath = workingDir/.execute/summary.json
|
|
46
|
+
executeLogPath = workingDir/.execute/log.jsonl
|
|
47
|
+
orientSummaryPath = workingDir/.orient/summary.json
|
|
48
|
+
debriefExplorerPaths = [workingDir/.debrief/<topic>.json, ...]
|
|
49
|
+
ownHistoryPath = implStateDir/runs/index.json (or null)
|
|
50
|
+
workingDir = <path>
|
|
51
|
+
implStateDir = <path, read-only>
|
|
52
|
+
outputPath = workingDir/.debrief/analysis.json
|
|
53
|
+
msUntilEndTs = <current value>
|
|
54
|
+
The subagent loads its `analyst` role and writes analysis.json. Return its summary.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## After it returns
|
|
58
|
+
|
|
59
|
+
Verify `workingDir/.debrief/analysis.json` exists. If not, write `workingDir/.errors/debrief.json` and abort.
|
|
60
|
+
|
|
61
|
+
Return to the coordinator: a one-paragraph plain-English summary plus the path to `analysis.json`.
|
|
62
|
+
|
|
63
|
+
## Boundaries
|
|
64
|
+
|
|
65
|
+
- Do not change success criteria — frozen in Strategize
|
|
66
|
+
- Do not modify `implStateDir` — Improve does that
|
|
67
|
+
- Do not invent recommendations — every recommendation must be grounded in the evidence
|
|
68
|
+
|
|
69
|
+
## Cross-reference
|
|
70
|
+
|
|
71
|
+
Spec: §4.5.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: execute
|
|
3
|
+
description: Use when the coordinator reaches the Execute phase. Walk the plan, launch one step-worker subagent per work step, honor wait steps, decide at runtime when stuck.
|
|
4
|
+
allowed-tools: Bash, Read, Write, Edit, Glob, Grep, Agent, Skill
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Execute skill
|
|
8
|
+
|
|
9
|
+
Walk the plan and drive it. Workers are spawned by you (the coordinator session via this skill); they do not nest further.
|
|
10
|
+
|
|
11
|
+
## Inputs
|
|
12
|
+
|
|
13
|
+
- `workingDir/.plan/plan.json` — the steps
|
|
14
|
+
- `workingDir/.strategize/strategy.json` — success criteria + timing posture
|
|
15
|
+
- `workingDir/.orient/summary.json` — grounding
|
|
16
|
+
- The intent + window + remaining time budget
|
|
17
|
+
|
|
18
|
+
## Consult slot registry
|
|
19
|
+
|
|
20
|
+
Before spawning the bundled `step-worker`, check `workingDir/.coordinator/slots.json` (if present) for a `phase-agent-override` entry where `slot.phase === "execute"` AND `slot.agent === "step-worker"` AND (`slot.scope` absent OR `intent.spec.kind` ∈ `slot.scope.matchKinds`). If a match exists, each step-worker spawn in the loop below uses the override agent at `<entry.packageRoot>/<entry.slot.entry>` instead of the bundled `step-worker`. Inputs are unchanged. See spec/2026-04-30-plug-in-surface.md §4 for slot routing rules.
|
|
21
|
+
|
|
22
|
+
## Walk the plan
|
|
23
|
+
|
|
24
|
+
For each step in order, respecting `concurrency` markings:
|
|
25
|
+
|
|
26
|
+
### Work steps
|
|
27
|
+
|
|
28
|
+
Spawn a `step-worker` subagent via the Agent tool:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Use the Agent tool to spawn a fresh-context subagent with role `step-worker`.
|
|
32
|
+
Pass it inputs:
|
|
33
|
+
stepSpec = <the entire step object from plan.json>
|
|
34
|
+
intent = <copy of intent>
|
|
35
|
+
workingDir = <path>
|
|
36
|
+
implStateDir = <path, read-only>
|
|
37
|
+
msUntilEndTs = <current value>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
For parallel-batch steps (steps sharing a `concurrency: parallel-batch-X` label), spawn the whole batch concurrently if your harness supports it; wait for all to return before advancing.
|
|
41
|
+
|
|
42
|
+
After a worker returns:
|
|
43
|
+
- The worker's self-reported `status` and `blockers` are evidence; the authoritative verdict is your re-check of the step's `successSignal` against actual outputs on disk.
|
|
44
|
+
- Check `successSignal` — did the step succeed?
|
|
45
|
+
- If yes: append to `workingDir/.execute/log.jsonl` (carrying the worker's `status` and `blockers` into the log entry) and advance.
|
|
46
|
+
- If no: see "When stuck."
|
|
47
|
+
|
|
48
|
+
### Wait steps
|
|
49
|
+
|
|
50
|
+
Use the harness's wait primitive (per spec §8 harness-adapter contract). Plan-emitted wait steps may include any combination of `durationMs`, `untilTs`, and `condition`; treat absent and explicit `null` identically as "not set." When multiple wakers are set, wake on the first to fire (per spec §5: `wait` wakes when any of duration / deadline / condition fires). The abort signal from the daemon (`window.endTs`) always overrides any wait.
|
|
51
|
+
|
|
52
|
+
### When stuck
|
|
53
|
+
|
|
54
|
+
When a step fails its success signal or a worker returns without expected outputs, judge:
|
|
55
|
+
|
|
56
|
+
- **Continue** — accept partial; advance.
|
|
57
|
+
- **Retry-step** — spawn a fresh worker for the same step. Cap at 2 retries unless step `abortCondition` says otherwise.
|
|
58
|
+
- **Replan** — archive the current plan and re-invoke the plan skill, then continue Execute on the new plan. Concretely: rename `workingDir/.plan/plan.json` to `workingDir/.plan/plan-v<N>.json` where N is the next unused integer (start at 1), then load `Skill claude-code-learner:plan` again. The plan skill writes a fresh `plan.json` based on what's now in `workingDir/` (including the archived prior plans, the execute log up to the failure, and a new `workingDir/.plan/replan-context.json` you write with `{ failedStepId, blockers, partialOutputs[] }`). Continue Execute on the new `plan.json`.
|
|
59
|
+
- **Abort** — write `workingDir/.errors/execute.json` with failure context; exit Execute. Coordinator continues to Debrief / Improve / Memory consolidation so partial work is harvested.
|
|
60
|
+
|
|
61
|
+
Explain your judgment in `workingDir/.execute/log.jsonl`.
|
|
62
|
+
|
|
63
|
+
## Outputs
|
|
64
|
+
|
|
65
|
+
Throughout the phase:
|
|
66
|
+
- `workingDir/.execute/log.jsonl` — one entry per step boundary: `{ ts, stepId, decision, summary, retryCount, workerStatus, workerBlockers }`. `workerStatus` and `workerBlockers` come directly from the step-worker's return shape so Debrief sees both the worker's self-assessment and Execute's verdict.
|
|
67
|
+
- Per-step outputs as the plan declared
|
|
68
|
+
|
|
69
|
+
At end:
|
|
70
|
+
- `workingDir/.execute/summary.json`:
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"stepsCompleted": ["step-1", "step-2"],
|
|
74
|
+
"stepsFailed": [],
|
|
75
|
+
"decisions": ["continue", "retry-step", "continue"],
|
|
76
|
+
"elapsedMs": 0,
|
|
77
|
+
"returnReason": "all-steps-completed | early-return | hold-and-revise-window-end | continuous-observation-window-end | abort"
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Boundaries
|
|
82
|
+
|
|
83
|
+
- Do not invoke Strategize — strategy is frozen
|
|
84
|
+
- Do not write to `implStateDir` — Improve does that
|
|
85
|
+
- Do not run Debrief / Improve / Memory consolidation — coordinator does that next
|
|
86
|
+
- Do not call wait for arbitrarily long with no plan justification
|
|
87
|
+
- Do not spawn agents that themselves spawn agents (your workers are one level deep)
|
|
88
|
+
|
|
89
|
+
## Cross-reference
|
|
90
|
+
|
|
91
|
+
Spec: §4.4, §5.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: improve
|
|
3
|
+
description: Use when the coordinator reaches the Improve phase. Launch one promoter subagent with the analysis; commit each accepted mutation to implStateDir as a separate git commit; emit promotion records.
|
|
4
|
+
allowed-tools: Bash, Read, Write, Edit, Agent
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Improve skill
|
|
8
|
+
|
|
9
|
+
Launch the promoter; commit its mutations. Changes take effect NEXT run.
|
|
10
|
+
|
|
11
|
+
## Inputs
|
|
12
|
+
|
|
13
|
+
- `workingDir/.debrief/analysis.json`
|
|
14
|
+
- `implStateDir/policy.json` if present (operator policy on what Improve may touch)
|
|
15
|
+
- `implStateDir/` (current durable self)
|
|
16
|
+
|
|
17
|
+
## Consult slot registry
|
|
18
|
+
|
|
19
|
+
Before spawning the bundled promoter, check `workingDir/.coordinator/slots.json` (if present) for a `phase-agent-override` entry where `slot.phase === "improve"` AND `slot.agent === "promoter"` AND (`slot.scope` absent OR `intent.spec.kind` ∈ `slot.scope.matchKinds`). If a match exists, spawn the agent at `<entry.packageRoot>/<entry.slot.entry>` with the same inputs as the bundled promoter. Otherwise proceed with the bundled `promoter` agent.
|
|
20
|
+
|
|
21
|
+
## Launch the promoter
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Use the Agent tool to spawn a fresh-context subagent with role `promoter`.
|
|
25
|
+
Pass it inputs:
|
|
26
|
+
analysisPath = workingDir/.debrief/analysis.json
|
|
27
|
+
policyPath = implStateDir/policy.json (or null)
|
|
28
|
+
implStateDir = <path, read-write for the promoter>
|
|
29
|
+
workingDir = <path>
|
|
30
|
+
outputDir = workingDir/.improve/
|
|
31
|
+
msUntilEndTs = <current value>
|
|
32
|
+
The promoter writes mutations directly into implStateDir, commits each as
|
|
33
|
+
a separate git commit (the session-start hook configured the author
|
|
34
|
+
identity already), and writes one promotion_record per mutation under
|
|
35
|
+
workingDir/.improve/promotions/.
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## After it returns
|
|
39
|
+
|
|
40
|
+
Read `workingDir/.improve/summary.json`. Verify:
|
|
41
|
+
- `implStateDirShaAfter` matches `git -C <implStateDir> rev-parse HEAD`
|
|
42
|
+
- One `promotion_record` per accepted change
|
|
43
|
+
- Operator-access requests under `workingDir/.operator-requests/` if any
|
|
44
|
+
|
|
45
|
+
If anything is inconsistent, write `workingDir/.errors/improve.json` and abort.
|
|
46
|
+
|
|
47
|
+
Return to the coordinator: a one-paragraph summary of what changed (or didn't) and why.
|
|
48
|
+
|
|
49
|
+
## Boundaries
|
|
50
|
+
|
|
51
|
+
- Do not pre-judge what to mutate — that's the promoter's reasoning
|
|
52
|
+
- Do not commit yourself — the promoter commits as it goes
|
|
53
|
+
- Do not modify anything outside `workingDir/.improve/` from this skill
|
|
54
|
+
|
|
55
|
+
## Cross-reference
|
|
56
|
+
|
|
57
|
+
Spec: §4.6, §6.2, §6.4, §7.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: memory-consolidation
|
|
3
|
+
description: Use when the coordinator reaches the Memory consolidation phase. Launch one consolidator subagent that curates implStateDir (prune unused, revert regressions) and workingDir (set public/private boundary); commits durable curation as one separate commit.
|
|
4
|
+
allowed-tools: Bash, Read, Write, Edit, Agent
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Memory consolidation skill
|
|
8
|
+
|
|
9
|
+
Launch the consolidator; verify outputs.
|
|
10
|
+
|
|
11
|
+
## Inputs
|
|
12
|
+
|
|
13
|
+
- `workingDir/.debrief/analysis.json` (trend signals, regression flags)
|
|
14
|
+
- `workingDir/.improve/summary.json` + `promotions/` (Improve's mutations)
|
|
15
|
+
- `implStateDir/` and `workingDir/` (full)
|
|
16
|
+
- `implStateDir/policy.json` (retention rules, size caps)
|
|
17
|
+
|
|
18
|
+
## Consult slot registry
|
|
19
|
+
|
|
20
|
+
Before spawning the bundled consolidator, check `workingDir/.coordinator/slots.json` (if present) for a `phase-agent-override` entry where `slot.phase === "memory-consolidation"` AND `slot.agent === "consolidator"` AND (`slot.scope` absent OR `intent.spec.kind` ∈ `slot.scope.matchKinds`). If a match exists, spawn the agent at `<entry.packageRoot>/<entry.slot.entry>` with the same inputs as the bundled consolidator. Otherwise proceed with the bundled `consolidator` agent.
|
|
21
|
+
|
|
22
|
+
## Plug-in memory backends
|
|
23
|
+
|
|
24
|
+
Also consult `slots.json.memoryBackends`. Each entry exposes MCP tools `embed(text)`, `query(vector, k)`, and `prune(maxAgeDays)` under the namespace `memory-<plugInName>` (per `client/src/restorer/impls/claude-code-learner/mcp-config.ts`). During curation, if a backend is the policy match for this kind (consult `implStateDir/policy.json`'s `memoryBackend.default` or `memoryBackend.perKind[kind]`), call `mcp__memory-<plugInName>__embed` to index relevant artifacts and `mcp__memory-<plugInName>__query` to retrieve analogous prior cases. Multiple backends can coexist; each is a distinct MCP namespace. If no `memoryBackends` entries are present, fall back to the bundled file-based curation (the existing behaviour).
|
|
25
|
+
|
|
26
|
+
## Launch the consolidator
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Use the Agent tool to spawn a fresh-context subagent with role `consolidator`.
|
|
30
|
+
Pass it inputs:
|
|
31
|
+
analysisPath = workingDir/.debrief/analysis.json
|
|
32
|
+
improveSummaryPath = workingDir/.improve/summary.json
|
|
33
|
+
improvePromotionsDir = workingDir/.improve/promotions/
|
|
34
|
+
policyPath = implStateDir/policy.json (or null)
|
|
35
|
+
implStateDir = <path, read-write>
|
|
36
|
+
workingDir = <path, read-write>
|
|
37
|
+
outputPath = workingDir/.memory-consolidation/consolidation_record.json
|
|
38
|
+
msUntilEndTs = <current value>
|
|
39
|
+
The consolidator does both workstreams (durable + ephemeral), writes a
|
|
40
|
+
single git commit on implStateDir for the durable curation, and produces
|
|
41
|
+
the consolidation_record.
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## After it returns
|
|
45
|
+
|
|
46
|
+
Verify the consolidation_record exists. If the consolidator made a commit, `implStateDirShaAfter` must match `git -C <implStateDir> rev-parse HEAD`. If no commit was made (empty curation set), `implStateDirShaAfter` must equal `implStateDirShaBefore` and HEAD remains at that sha.
|
|
47
|
+
|
|
48
|
+
Return to the coordinator: a one-paragraph summary.
|
|
49
|
+
|
|
50
|
+
## Boundaries
|
|
51
|
+
|
|
52
|
+
- Do not promote new content — Improve already did
|
|
53
|
+
- Do not modify success criteria, plan, or analysis
|
|
54
|
+
|
|
55
|
+
## Cross-reference
|
|
56
|
+
|
|
57
|
+
Spec: §4.7, §6.1.
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: orient
|
|
3
|
+
description: Use when the coordinator reaches the Orient phase. Decide what topics to gather; launch one explorer subagent per topic; collate findings into a summary Strategize will consume.
|
|
4
|
+
allowed-tools: Bash, Read, Write, Agent
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Orient skill
|
|
8
|
+
|
|
9
|
+
You are coordinating the Orient phase. Your only jobs are: decide what topics need gathering for this intent, launch an `explorer` subagent for each topic, and collate their results.
|
|
10
|
+
|
|
11
|
+
## Inputs
|
|
12
|
+
|
|
13
|
+
- The intent and paths from the coordinator session
|
|
14
|
+
- `workingDir` — write findings here
|
|
15
|
+
- `implStateDir` — read-only in this phase
|
|
16
|
+
|
|
17
|
+
## Decide what topics to gather
|
|
18
|
+
|
|
19
|
+
Choose from these typical categories; add or omit based on the intent:
|
|
20
|
+
|
|
21
|
+
1. **intent-parse** — what's the goal, kind, window, spec, eligibility? Always include.
|
|
22
|
+
2. **world-state** — for kinds with a venue (portfolio.v0, prediction.v0, etc.), pull current relevant state. Include if the kind has a venue.
|
|
23
|
+
3. **own-history** — list prior runs of this kind by this operator. Include if `implStateDir/runs/index.json` exists or the harness exposes a knowledge-tree query.
|
|
24
|
+
4. **others-history** — recent runs of this kind by other operators. Include only if `implStateDir/policy.json` sets `allowCrossOperatorReads: true` AND the harness exposes the query tool.
|
|
25
|
+
|
|
26
|
+
## Plug-in topic explorers
|
|
27
|
+
|
|
28
|
+
In addition to the bundled topic categories above, consult `workingDir/.coordinator/slots.json` (if present). For each entry in `topicExplorers` matching `slot.phase === "orient"` AND (`slot.scope` absent OR `intent.spec.kind` ∈ `slot.scope.matchKinds`):
|
|
29
|
+
|
|
30
|
+
- Treat it as an additional topic to gather. Topic name is `slot.topic`.
|
|
31
|
+
- Spawn an explorer subagent (same shape as the bundled explorer, but with the explorer-role file at `<entry.packageRoot>/<entry.slot.entry>` instead of the bundled `explorer` role).
|
|
32
|
+
- Inputs to the explorer are unchanged (topic, intent, scope, workingDir, implStateDir, outputPath = `workingDir/.orient/<topic>.json`, msUntilEndTs).
|
|
33
|
+
- Include the topic's results in the collation (`workingDir/.orient/summary.json`'s `topics[]` array).
|
|
34
|
+
|
|
35
|
+
Topic-name collisions: if a plug-in declares a topic that matches a bundled name (`intent-parse`, `world-state`, `own-history`, `others-history`), the plug-in's explorer replaces the bundled fan-out for that topic. Surface a one-line note in `summary.json.flags`. See spec/2026-04-30-plug-in-surface.md §4.
|
|
36
|
+
|
|
37
|
+
## Launch explorers
|
|
38
|
+
|
|
39
|
+
For each topic chosen, spawn an `explorer` subagent via the Agent tool:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
Use the Agent tool to spawn a fresh-context subagent with role `explorer`.
|
|
43
|
+
Pass it inputs:
|
|
44
|
+
topic = <topic name, e.g. "world-state">
|
|
45
|
+
intent = <copy of intent>
|
|
46
|
+
scope = <topic-specific scope; explorer's role definition explains what it expects>
|
|
47
|
+
workingDir = <path>
|
|
48
|
+
implStateDir = <path, read-only>
|
|
49
|
+
outputPath = workingDir/.orient/<topic>.json
|
|
50
|
+
msUntilEndTs = <current value>
|
|
51
|
+
The subagent will load its `explorer` role definition, gather, write findings, return a summary.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Spawn explorers in parallel if your harness supports it; otherwise spawn sequentially. The explorers themselves do not spawn further agents (no nesting).
|
|
55
|
+
|
|
56
|
+
## Collate
|
|
57
|
+
|
|
58
|
+
After all explorers return, read each `workingDir/.orient/<topic>.json` and write `workingDir/.orient/summary.json`:
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"intent": { "id": "...", "kind": "...", "window": { "startTs": 0, "endTs": 0 } },
|
|
63
|
+
"topics": [
|
|
64
|
+
{ "topic": "intent-parse", "artifact": "workingDir/.orient/intent-parse.json", "summary": "...", "flags": [] },
|
|
65
|
+
{ "topic": "world-state", "artifact": "workingDir/.orient/world-state.json", "summary": "...", "flags": ["stale"] }
|
|
66
|
+
],
|
|
67
|
+
"openQuestions": ["string — anything Strategize needs to know was uncertain or unavailable"]
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Return to the coordinator: a one-paragraph summary and the path to `summary.json`.
|
|
72
|
+
|
|
73
|
+
## Boundaries
|
|
74
|
+
|
|
75
|
+
- Do not pick an approach — Strategize's job
|
|
76
|
+
- Do not write a plan — Plan's job
|
|
77
|
+
- Do not execute work — Execute's job
|
|
78
|
+
- Do not modify `implStateDir`
|
|
79
|
+
|
|
80
|
+
## Cross-reference
|
|
81
|
+
|
|
82
|
+
Spec: §4.1.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan
|
|
3
|
+
description: Use when the coordinator reaches the Plan phase. Launch one planner subagent with the strategy; receive the plan; persist it under workingDir/.plan/.
|
|
4
|
+
allowed-tools: Bash, Read, Write, Agent
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Plan skill
|
|
8
|
+
|
|
9
|
+
Launch the planner; persist its output.
|
|
10
|
+
|
|
11
|
+
## Inputs
|
|
12
|
+
|
|
13
|
+
- `workingDir/.strategize/strategy.json`
|
|
14
|
+
- `workingDir/.orient/summary.json` for grounding
|
|
15
|
+
- `implStateDir/plans/<kind>/` if any prior promoted plan templates
|
|
16
|
+
- The intent
|
|
17
|
+
- On replan: `workingDir/.plan/replan-context.json` (failure context written by Execute) and any prior `workingDir/.plan/plan-v<N>.json` archives. Read these to ground the new plan in what just failed.
|
|
18
|
+
|
|
19
|
+
## Consult slot registry
|
|
20
|
+
|
|
21
|
+
Before spawning the bundled planner, check `workingDir/.coordinator/slots.json` (if present) for a `phase-agent-override` entry where `slot.phase === "plan"` AND `slot.agent === "planner"` AND (`slot.scope` absent OR `intent.spec.kind` ∈ `slot.scope.matchKinds`). If a match exists, spawn the agent at `<entry.packageRoot>/<entry.slot.entry>` with the same inputs as the bundled planner. Otherwise proceed with the bundled `planner` agent. See spec/2026-04-30-plug-in-surface.md §4 for slot routing rules.
|
|
22
|
+
|
|
23
|
+
## Launch the planner
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Use the Agent tool to spawn a fresh-context subagent with role `planner`.
|
|
27
|
+
Pass it inputs:
|
|
28
|
+
intent = <copy of intent>
|
|
29
|
+
strategyPath = workingDir/.strategize/strategy.json
|
|
30
|
+
orientSummaryPath = workingDir/.orient/summary.json
|
|
31
|
+
priorPlanTemplatesPath = implStateDir/plans/<kind>/ (or null)
|
|
32
|
+
replanContextPath = workingDir/.plan/replan-context.json (or null on first plan)
|
|
33
|
+
priorPlanArchives = [workingDir/.plan/plan-v1.json, ...] (or empty on first plan)
|
|
34
|
+
workingDir = <path>
|
|
35
|
+
implStateDir = <path, read-only>
|
|
36
|
+
outputPath = workingDir/.plan/plan.json
|
|
37
|
+
msUntilEndTs = <current value>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## After it returns
|
|
41
|
+
|
|
42
|
+
Verify `workingDir/.plan/plan.json` exists. If not, write `workingDir/.errors/plan.json` and abort.
|
|
43
|
+
|
|
44
|
+
Return to the coordinator: a one-line summary ("plan with N steps, M parallel batches, K wait checkpoints") and the path to `plan.json`.
|
|
45
|
+
|
|
46
|
+
## Boundaries
|
|
47
|
+
|
|
48
|
+
- Do not change success criteria or timing posture — frozen in Strategize
|
|
49
|
+
- Do not execute — Execute does that
|
|
50
|
+
- Do not modify `implStateDir`
|
|
51
|
+
|
|
52
|
+
## Cross-reference
|
|
53
|
+
|
|
54
|
+
Spec: §4.3, §5.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: strategize
|
|
3
|
+
description: Use when the coordinator reaches the Strategize phase. Launch one strategist subagent with the Orient summary; receive a strategy + constitution; persist them under workingDir/.strategize/.
|
|
4
|
+
allowed-tools: Bash, Read, Write, Agent
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Strategize skill
|
|
8
|
+
|
|
9
|
+
Launch the strategist; persist its outputs.
|
|
10
|
+
|
|
11
|
+
## Inputs
|
|
12
|
+
|
|
13
|
+
- `workingDir/.orient/summary.json` (and per-topic files for context)
|
|
14
|
+
- `implStateDir/strategies/<kind>/` if any prior promoted strategies exist
|
|
15
|
+
- The intent
|
|
16
|
+
|
|
17
|
+
## Consult slot registry
|
|
18
|
+
|
|
19
|
+
Before spawning the bundled strategist, check whether an installed Path 1 plug-in declares a `phase-agent-override` for this phase + agent + intent kind. Read `workingDir/.coordinator/slots.json` if present. If absent, no overrides — proceed with the bundled `strategist` agent.
|
|
20
|
+
|
|
21
|
+
When present, look in `phaseAgentOverrides` for an entry where `slot.phase === "strategize"` AND `slot.agent === "strategist"` AND (`slot.scope` is absent OR `intent.spec.kind` is in `slot.scope.matchKinds`). The first match wins (the registry already enforces last-installed-wins on collisions; see spec/2026-04-30-plug-in-surface.md §8 open question 8).
|
|
22
|
+
|
|
23
|
+
If a match exists, the agent file to spawn is at `<entry.packageRoot>/<entry.slot.entry>` — substitute that path for the bundled `claude-code-learner:strategist` reference in the next step. The override agent receives the same inputs as the bundled strategist (intent, orientSummaryPath, priorStrategiesPath, outputDir, skillBundleCid, implStateDirShaAtStart, msUntilEndTs).
|
|
24
|
+
|
|
25
|
+
If no match, proceed with the bundled strategist as before.
|
|
26
|
+
|
|
27
|
+
## Launch the strategist
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Use the Agent tool to spawn a fresh-context subagent with role `strategist`.
|
|
31
|
+
Pass it inputs:
|
|
32
|
+
intent = <copy of intent>
|
|
33
|
+
orientSummaryPath = workingDir/.orient/summary.json
|
|
34
|
+
priorStrategiesPath = implStateDir/strategies/<kind>/ (or null if absent)
|
|
35
|
+
workingDir = <path>
|
|
36
|
+
implStateDir = <path, read-only>
|
|
37
|
+
outputDir = workingDir/.strategize/
|
|
38
|
+
skillBundleCid = <from coordinator boot>
|
|
39
|
+
implStateDirShaAtStart = <from coordinator boot>
|
|
40
|
+
msUntilEndTs = <current value>
|
|
41
|
+
The subagent loads its `strategist` role, does the divergent/convergent
|
|
42
|
+
selection, and writes strategy.json + constitution.json. Return its summary.
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## After it returns
|
|
46
|
+
|
|
47
|
+
Verify both files exist:
|
|
48
|
+
- `workingDir/.strategize/strategy.json`
|
|
49
|
+
- `workingDir/.strategize/constitution.json`
|
|
50
|
+
|
|
51
|
+
If either is missing, write `workingDir/.errors/strategize.json` with the failure context and abort.
|
|
52
|
+
|
|
53
|
+
Return to the coordinator: a one-paragraph summary of the chosen approach + success criteria + timing posture, plus paths to both files.
|
|
54
|
+
|
|
55
|
+
## Boundaries
|
|
56
|
+
|
|
57
|
+
- Do not generate the strategy yourself — that's the strategist agent's job in fresh context
|
|
58
|
+
- Do not modify `implStateDir`
|
|
59
|
+
- Never run a second strategist after the first has committed (no re-strategizing mid-run)
|
|
60
|
+
|
|
61
|
+
## Cross-reference
|
|
62
|
+
|
|
63
|
+
Spec: §4.2, §10.
|