@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,24 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
|
|
5
|
+
describe('{{packageName}} manifest', () => {
|
|
6
|
+
it('jinn-plugin.json declares a phase-agent-override slot', () => {
|
|
7
|
+
const manifest = JSON.parse(
|
|
8
|
+
readFileSync(join(__dirname, '..', 'jinn-plugin.json'), 'utf8'),
|
|
9
|
+
);
|
|
10
|
+
expect(manifest.name).toBe('{{packageName}}');
|
|
11
|
+
expect(manifest.slots).toHaveLength(1);
|
|
12
|
+
expect(manifest.slots[0].type).toBe('phase-agent-override');
|
|
13
|
+
expect(manifest.slots[0].phase).toBe('{{phase}}');
|
|
14
|
+
expect(manifest.slots[0].agent).toBe('{{agent}}');
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('declared agent file exists', () => {
|
|
18
|
+
const manifest = JSON.parse(
|
|
19
|
+
readFileSync(join(__dirname, '..', 'jinn-plugin.json'), 'utf8'),
|
|
20
|
+
);
|
|
21
|
+
const entry = manifest.slots[0].entry;
|
|
22
|
+
expect(existsSync(join(__dirname, '..', entry))).toBe(true);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# {{packageName}}
|
|
2
|
+
|
|
3
|
+
Path 1 Jinn plug-in. Bundles additional Claude Code skills into the
|
|
4
|
+
claude-code-learner harness.
|
|
5
|
+
|
|
6
|
+
## Install (operator)
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
yarn add {{packageName}}
|
|
10
|
+
jinn plug-ins add {{packageName}} --entry $(node -p "require.resolve('{{packageName}}/package.json').replace(/\/package\.json$/, '')")
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The daemon adds this package root to Claude Code's `--plugin-dir` list
|
|
14
|
+
at session-start. Skills under `skills/` become discoverable by phase
|
|
15
|
+
agents via the `Skill` tool.
|
|
16
|
+
|
|
17
|
+
## Develop
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
yarn install
|
|
21
|
+
yarn test
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Add or replace skills under `skills/<name>/SKILL.md`.
|
|
25
|
+
|
|
26
|
+
## Spec
|
|
27
|
+
|
|
28
|
+
`spec/2026-04-30-plug-in-surface.md` §4. Slot type: `skill-bundle`.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0.0",
|
|
3
|
+
"name": "{{packageName}}",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"description": "Skill bundle: extra skills loadable by claude-code-learner.",
|
|
6
|
+
"compatibility": {
|
|
7
|
+
"claudeCodeLearner": ">=0.1.0"
|
|
8
|
+
},
|
|
9
|
+
"slots": [
|
|
10
|
+
{
|
|
11
|
+
"type": "skill-bundle",
|
|
12
|
+
"skillsDir": "skills"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{packageName}}",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Jinn Path 1 plug-in: skill bundle.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"files": ["skills/", ".claude-plugin/", "jinn-plugin.json", "README.md"],
|
|
7
|
+
"scripts": {
|
|
8
|
+
"test": "vitest run"
|
|
9
|
+
},
|
|
10
|
+
"devDependencies": {
|
|
11
|
+
"typescript": "^5.4.0",
|
|
12
|
+
"vitest": "^2.1.9"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: example
|
|
3
|
+
description: Stub skill shipped with {{packageName}}. Replace with your actual skill content.
|
|
4
|
+
allowed-tools: Read, Write
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# {{packageName}} — example skill
|
|
8
|
+
|
|
9
|
+
This is a placeholder skill. Replace with the technique / playbook / tool
|
|
10
|
+
your skill bundle wants to surface to phase agents.
|
|
11
|
+
|
|
12
|
+
When the daemon loads this plug-in, Claude Code adds the package root to
|
|
13
|
+
its `--plugin-dir` list, and skills under `skills/` become available via
|
|
14
|
+
the `Skill` tool.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
|
|
5
|
+
describe('{{packageName}} skill-bundle plug-in', () => {
|
|
6
|
+
it('declares a skill-bundle slot', () => {
|
|
7
|
+
const manifest = JSON.parse(
|
|
8
|
+
readFileSync(join(__dirname, '..', 'jinn-plugin.json'), 'utf8'),
|
|
9
|
+
);
|
|
10
|
+
expect(manifest.name).toBe('{{packageName}}');
|
|
11
|
+
expect(manifest.slots[0].type).toBe('skill-bundle');
|
|
12
|
+
expect(manifest.slots[0].skillsDir).toBe('skills');
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('skills directory + Claude Code plugin manifest exist', () => {
|
|
16
|
+
expect(existsSync(join(__dirname, '..', 'skills'))).toBe(true);
|
|
17
|
+
expect(
|
|
18
|
+
existsSync(join(__dirname, '..', '.claude-plugin', 'plugin.json')),
|
|
19
|
+
).toBe(true);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# {{packageName}}
|
|
2
|
+
|
|
3
|
+
Path 1 Jinn plug-in. Adds the topic `{{topic}}` to the bundled
|
|
4
|
+
claude-code-learner `{{phase}}` phase fan-out.
|
|
5
|
+
|
|
6
|
+
## Install (operator)
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
yarn add {{packageName}}
|
|
10
|
+
jinn plug-ins add {{packageName}} --entry $(node -p "require.resolve('{{packageName}}/package.json').replace(/\/package\.json$/, '')")
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Develop
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
yarn install
|
|
17
|
+
yarn test
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Edit `agents/{{topic}}-explorer.md` to define the gathering behaviour.
|
|
21
|
+
|
|
22
|
+
## Spec
|
|
23
|
+
|
|
24
|
+
`spec/2026-04-30-plug-in-surface.md` §4. Slot type: `topic-explorer`.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: {{topic}}-explorer
|
|
3
|
+
description: Topic explorer for "{{topic}}" — runs during the {{phase}} phase, gathers findings, writes them under workingDir/.{{phase}}/{{topic}}.json.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# {{topic}}-explorer
|
|
7
|
+
|
|
8
|
+
Topic-explorer subagent. Add your gathering logic below — the {{phase}}
|
|
9
|
+
skill spawns one of these per registered topic and merges the results
|
|
10
|
+
into the phase summary.
|
|
11
|
+
|
|
12
|
+
## Inputs
|
|
13
|
+
|
|
14
|
+
- `topic` — `"{{topic}}"`
|
|
15
|
+
- `intent` — copy of the intent body
|
|
16
|
+
- `scope` — topic-specific scope (you choose what to expect)
|
|
17
|
+
- `workingDir` — write your findings under `workingDir/.{{phase}}/{{topic}}.json`
|
|
18
|
+
- `implStateDir` — read-only
|
|
19
|
+
- `outputPath` — equals `workingDir/.{{phase}}/{{topic}}.json`
|
|
20
|
+
- `msUntilEndTs` — remaining time
|
|
21
|
+
|
|
22
|
+
## Output
|
|
23
|
+
|
|
24
|
+
Write a JSON file at `outputPath` shaped however the consumer skill
|
|
25
|
+
expects. The bundled fan-out summary aggregator will include it under
|
|
26
|
+
`topics[]` keyed on `topic`.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0.0",
|
|
3
|
+
"name": "{{packageName}}",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"description": "Topic explorer: {{topic}} during {{phase}}.",
|
|
6
|
+
"compatibility": {
|
|
7
|
+
"claudeCodeLearner": ">=0.1.0"
|
|
8
|
+
},
|
|
9
|
+
"slots": [
|
|
10
|
+
{
|
|
11
|
+
"type": "topic-explorer",
|
|
12
|
+
"phase": "{{phase}}",
|
|
13
|
+
"topic": "{{topic}}",
|
|
14
|
+
"entry": "agents/{{topic}}-explorer.md"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{packageName}}",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Jinn Path 1 plug-in: topic explorer for {{phase}}/{{topic}}.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"files": ["agents/", "jinn-plugin.json", "README.md"],
|
|
7
|
+
"scripts": {
|
|
8
|
+
"test": "vitest run"
|
|
9
|
+
},
|
|
10
|
+
"devDependencies": {
|
|
11
|
+
"typescript": "^5.4.0",
|
|
12
|
+
"vitest": "^2.1.9"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
|
|
5
|
+
describe('{{packageName}} manifest', () => {
|
|
6
|
+
it('jinn-plugin.json declares a topic-explorer slot', () => {
|
|
7
|
+
const manifest = JSON.parse(
|
|
8
|
+
readFileSync(join(__dirname, '..', 'jinn-plugin.json'), 'utf8'),
|
|
9
|
+
);
|
|
10
|
+
expect(manifest.name).toBe('{{packageName}}');
|
|
11
|
+
expect(manifest.slots[0].type).toBe('topic-explorer');
|
|
12
|
+
expect(manifest.slots[0].phase).toBe('{{phase}}');
|
|
13
|
+
expect(manifest.slots[0].topic).toBe('{{topic}}');
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('declared explorer agent exists', () => {
|
|
17
|
+
const manifest = JSON.parse(
|
|
18
|
+
readFileSync(join(__dirname, '..', 'jinn-plugin.json'), 'utf8'),
|
|
19
|
+
);
|
|
20
|
+
expect(existsSync(join(__dirname, '..', manifest.slots[0].entry))).toBe(true);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# {{packageName}}
|
|
2
|
+
|
|
3
|
+
Jinn external restorer for `{{kindString}}` running the **seven-phase
|
|
4
|
+
learning pipeline** (Orient -> Strategize -> Plan -> Execute -> Debrief
|
|
5
|
+
-> Improve -> Memory) against a non-Claude-Code harness.
|
|
6
|
+
|
|
7
|
+
This package owns the phase orchestration; the harness is a swappable
|
|
8
|
+
runtime. Tests use a deterministic in-process mock harness; production
|
|
9
|
+
builders swap `createMockHarness` for a real harness (Pi.dev, Codex,
|
|
10
|
+
Gemini CLI, custom).
|
|
11
|
+
|
|
12
|
+
## Quickstart
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
yarn install
|
|
16
|
+
yarn test
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Plugging in your real harness
|
|
20
|
+
|
|
21
|
+
Implement the `HarnessAdapter` interface (see `src/harness.ts`):
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
import type { HarnessAdapter } from '{{packageName}}';
|
|
25
|
+
|
|
26
|
+
export const myHarness: HarnessAdapter = {
|
|
27
|
+
name: 'my-harness',
|
|
28
|
+
async promptForJson({ systemPrompt, userPrompt, budgetMs, abort }) {
|
|
29
|
+
// Spawn / call your harness; parse its JSON response; return.
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Then construct the restorer with your factory:
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
import createRestorer from '{{packageName}}';
|
|
38
|
+
const impl = createRestorer(env, { harnessFactory: () => myHarness });
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Spec
|
|
42
|
+
|
|
43
|
+
- `spec/2026-04-30-plug-in-surface.md` §3.3.3 (alternative-harness pattern).
|
|
44
|
+
- `docs/superpowers/specs/2026-04-23-default-learning-restorer-design.md` §2 (phase pipeline definition).
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "1.0.0",
|
|
3
|
+
"name": "{{packageName}}",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"description": "Alternative-harness restorer for {{kindString}}.",
|
|
6
|
+
"supportedKinds": ["{{kindString}}>=1.0.0"],
|
|
7
|
+
"entry": "./dist/index.js",
|
|
8
|
+
"package": {
|
|
9
|
+
"cid": "bafy-PLACEHOLDER",
|
|
10
|
+
"hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
|
|
11
|
+
},
|
|
12
|
+
"capabilities": {
|
|
13
|
+
"rpc": [
|
|
14
|
+
{ "chainId": {{networkChainId}}, "methods": ["eth_call", "eth_blockNumber"] }
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"signature": {
|
|
18
|
+
"alg": "ed25519",
|
|
19
|
+
"publicKey": "PLACEHOLDER",
|
|
20
|
+
"sig": "PLACEHOLDER"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{packageName}}",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Jinn external restorer running the seven-phase learning pipeline against a non-Claude-Code harness. {{kindString}} only.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": ["dist/", "jinn.manifest.json", "README.md"],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"build": "tsc -p tsconfig.json",
|
|
16
|
+
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
17
|
+
"test": "vitest run"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"@jinn-network/restorer-sdk": "^1.0.0"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"typescript": "^5.4.0",
|
|
24
|
+
"vitest": "^2.1.9"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
RestorationContext,
|
|
3
|
+
RestorationOutput,
|
|
4
|
+
} from '@jinn-network/restorer-sdk';
|
|
5
|
+
import type { HarnessAdapter } from './harness.js';
|
|
6
|
+
import { runOrient } from './phases/orient.js';
|
|
7
|
+
import { runStrategize } from './phases/strategize.js';
|
|
8
|
+
import { runPlan } from './phases/plan.js';
|
|
9
|
+
import { runExecute } from './phases/execute.js';
|
|
10
|
+
import { runDebrief } from './phases/debrief.js';
|
|
11
|
+
import { runImprove } from './phases/improve.js';
|
|
12
|
+
import { runMemory } from './phases/memory.js';
|
|
13
|
+
|
|
14
|
+
export interface CoordinatorArgs {
|
|
15
|
+
ctx: RestorationContext;
|
|
16
|
+
harness: HarnessAdapter;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Sequence the seven phases (orient, strategize, plan, execute,
|
|
21
|
+
* debrief, improve, memory). Mirrors `spec/2026-04-30-plug-in-surface.md`
|
|
22
|
+
* §3.3.3 and `docs/superpowers/specs/2026-04-23-default-learning-restorer-design.md` §2.
|
|
23
|
+
*/
|
|
24
|
+
export async function runCoordinator({
|
|
25
|
+
ctx,
|
|
26
|
+
harness,
|
|
27
|
+
}: CoordinatorArgs): Promise<RestorationOutput> {
|
|
28
|
+
const orient = await runOrient({ ctx, harness });
|
|
29
|
+
const strategy = await runStrategize({ ctx, harness, orient });
|
|
30
|
+
const plan = await runPlan({ ctx, harness, strategy, orient });
|
|
31
|
+
const execute = await runExecute({ ctx, harness, plan, strategy });
|
|
32
|
+
const debrief = await runDebrief({ ctx, harness, execute, strategy });
|
|
33
|
+
await runImprove({ ctx, harness, debrief });
|
|
34
|
+
await runMemory({ ctx, harness, debrief });
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
venueRef: { name: harness.name },
|
|
38
|
+
gating: {
|
|
39
|
+
timingPosture: strategy.timingPosture,
|
|
40
|
+
executeReturnReason: execute.returnReason,
|
|
41
|
+
debriefVerdict: debrief.successCriteriaMet,
|
|
42
|
+
},
|
|
43
|
+
informational: {
|
|
44
|
+
strategyApproach: strategy.approach,
|
|
45
|
+
planSteps: plan.steps.length,
|
|
46
|
+
stepsCompleted: execute.stepsCompleted.length,
|
|
47
|
+
stepsFailed: execute.stepsFailed.length,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// HarnessAdapter contract — the impl talks to the harness through this
|
|
2
|
+
// interface. The package owns this type; it does NOT depend on
|
|
3
|
+
// `claude-code-learner/types.ts` (which is internal to that package).
|
|
4
|
+
//
|
|
5
|
+
// Production builders implement this around their own runtime
|
|
6
|
+
// (Pi.dev, Codex CLI, Gemini CLI, custom subprocess, etc.).
|
|
7
|
+
|
|
8
|
+
export interface HarnessPromptArgs {
|
|
9
|
+
promptId: string;
|
|
10
|
+
systemPrompt: string;
|
|
11
|
+
userPrompt: string;
|
|
12
|
+
/** Per-phase budget in ms. Caller honours abort. */
|
|
13
|
+
budgetMs: number;
|
|
14
|
+
abort: AbortSignal;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface HarnessAdapter {
|
|
18
|
+
readonly name: string;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Send a prompt to the harness's underlying agent runtime; receive a
|
|
22
|
+
* structured JSON result. Used by every phase.
|
|
23
|
+
*/
|
|
24
|
+
promptForJson<T>(args: HarnessPromptArgs): Promise<T>;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Optional: signal that a phase has finished, for harnesses that
|
|
28
|
+
* persist conversation state across calls (e.g. Pi.dev's session model).
|
|
29
|
+
*/
|
|
30
|
+
closePhase?(phaseId: string): Promise<void>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
RestorerImpl,
|
|
3
|
+
ExternalRestorerEnv,
|
|
4
|
+
RestorationContext,
|
|
5
|
+
RestorationOutput,
|
|
6
|
+
} from '@jinn-network/restorer-sdk';
|
|
7
|
+
import type { HarnessAdapter } from './harness.js';
|
|
8
|
+
import { runCoordinator } from './coordinator.js';
|
|
9
|
+
import { createMockHarness } from './mock-harness.js';
|
|
10
|
+
|
|
11
|
+
export interface AlternativeHarnessConfig {
|
|
12
|
+
/** The harness to drive. Defaults to the deterministic mock for tests. */
|
|
13
|
+
harnessFactory?: (env: ExternalRestorerEnv) => HarnessAdapter;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default function createRestorer(
|
|
17
|
+
env: ExternalRestorerEnv,
|
|
18
|
+
config: AlternativeHarnessConfig = {},
|
|
19
|
+
): RestorerImpl {
|
|
20
|
+
const factory = config.harnessFactory ?? createMockHarness;
|
|
21
|
+
const harness = factory(env);
|
|
22
|
+
return {
|
|
23
|
+
name: env.implName,
|
|
24
|
+
version: env.implVersion,
|
|
25
|
+
supports({ kind, type }) {
|
|
26
|
+
return kind === '{{kindString}}' && type !== 'evaluation';
|
|
27
|
+
},
|
|
28
|
+
async isReady() {
|
|
29
|
+
return env.stub
|
|
30
|
+
? { ready: false, reason: 'stub mode' }
|
|
31
|
+
: { ready: true };
|
|
32
|
+
},
|
|
33
|
+
async run(ctx: RestorationContext): Promise<RestorationOutput> {
|
|
34
|
+
env.log({
|
|
35
|
+
level: 'info',
|
|
36
|
+
msg: 'alternative-harness.start',
|
|
37
|
+
data: { intentId: ctx.intent.id },
|
|
38
|
+
});
|
|
39
|
+
return runCoordinator({ ctx, harness });
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export type { HarnessAdapter, HarnessPromptArgs } from './harness.js';
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ExternalRestorerEnv } from '@jinn-network/restorer-sdk';
|
|
2
|
+
import type { HarnessAdapter, HarnessPromptArgs } from './harness.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Deterministic in-process mock harness. Returns canned per-phase
|
|
6
|
+
* shapes so tests run offline. Real builders replace this with a
|
|
7
|
+
* subprocess wrapper around their actual harness (Pi.dev, Codex, etc.).
|
|
8
|
+
*/
|
|
9
|
+
export function createMockHarness(_env: ExternalRestorerEnv): HarnessAdapter {
|
|
10
|
+
return {
|
|
11
|
+
name: 'mock-harness',
|
|
12
|
+
async promptForJson<T>({ promptId }: HarnessPromptArgs): Promise<T> {
|
|
13
|
+
switch (promptId) {
|
|
14
|
+
case 'orient':
|
|
15
|
+
return { topics: [{ name: 'intent-parse', summary: 'parsed' }] } as T;
|
|
16
|
+
case 'strategize':
|
|
17
|
+
return {
|
|
18
|
+
approach: 'mock approach',
|
|
19
|
+
successCriteria: 'always succeed',
|
|
20
|
+
timingPosture: 'early-return',
|
|
21
|
+
} as T;
|
|
22
|
+
case 'plan':
|
|
23
|
+
return { steps: [{ id: 's1', description: 'do the thing' }] } as T;
|
|
24
|
+
case 'execute':
|
|
25
|
+
return {
|
|
26
|
+
stepsCompleted: ['s1'],
|
|
27
|
+
stepsFailed: [],
|
|
28
|
+
returnReason: 'all-steps-completed',
|
|
29
|
+
} as T;
|
|
30
|
+
case 'debrief':
|
|
31
|
+
return { successCriteriaMet: 'yes', rationale: 'mock rationale' } as T;
|
|
32
|
+
case 'improve':
|
|
33
|
+
return { mutations: [] } as T;
|
|
34
|
+
case 'memory':
|
|
35
|
+
return { kept: 0, pruned: 0 } as T;
|
|
36
|
+
default:
|
|
37
|
+
throw new Error(`mock-harness: unknown promptId ${promptId}`);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { RestorationContext } from '@jinn-network/restorer-sdk';
|
|
2
|
+
import type { HarnessAdapter } from '../harness.js';
|
|
3
|
+
import type { ExecuteResult } from './execute.js';
|
|
4
|
+
import type { StrategyResult } from './strategize.js';
|
|
5
|
+
|
|
6
|
+
export type DebriefVerdict = 'yes' | 'no' | 'partial';
|
|
7
|
+
|
|
8
|
+
export interface DebriefResult {
|
|
9
|
+
successCriteriaMet: DebriefVerdict;
|
|
10
|
+
rationale: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export async function runDebrief(args: {
|
|
14
|
+
ctx: RestorationContext;
|
|
15
|
+
harness: HarnessAdapter;
|
|
16
|
+
execute: ExecuteResult;
|
|
17
|
+
strategy: StrategyResult;
|
|
18
|
+
}): Promise<DebriefResult> {
|
|
19
|
+
const { ctx, harness, execute, strategy } = args;
|
|
20
|
+
return harness.promptForJson<DebriefResult>({
|
|
21
|
+
promptId: 'debrief',
|
|
22
|
+
systemPrompt:
|
|
23
|
+
'Decide whether the frozen success criteria were met. Be honest.',
|
|
24
|
+
userPrompt: JSON.stringify({ intent: ctx.intent, strategy, execute }),
|
|
25
|
+
budgetMs: Math.min(ctx.msUntilEndTs(), 15_000),
|
|
26
|
+
abort: ctx.abort,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { RestorationContext } from '@jinn-network/restorer-sdk';
|
|
2
|
+
import type { HarnessAdapter } from '../harness.js';
|
|
3
|
+
import type { PlanResult } from './plan.js';
|
|
4
|
+
import type { StrategyResult } from './strategize.js';
|
|
5
|
+
|
|
6
|
+
export type ExecuteReturnReason =
|
|
7
|
+
| 'all-steps-completed'
|
|
8
|
+
| 'time-budget-exhausted'
|
|
9
|
+
| 'aborted';
|
|
10
|
+
|
|
11
|
+
export interface ExecuteResult {
|
|
12
|
+
stepsCompleted: ReadonlyArray<string>;
|
|
13
|
+
stepsFailed: ReadonlyArray<string>;
|
|
14
|
+
returnReason: ExecuteReturnReason;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export async function runExecute(args: {
|
|
18
|
+
ctx: RestorationContext;
|
|
19
|
+
harness: HarnessAdapter;
|
|
20
|
+
plan: PlanResult;
|
|
21
|
+
strategy: StrategyResult;
|
|
22
|
+
}): Promise<ExecuteResult> {
|
|
23
|
+
const { ctx, harness, plan, strategy } = args;
|
|
24
|
+
return harness.promptForJson<ExecuteResult>({
|
|
25
|
+
promptId: 'execute',
|
|
26
|
+
systemPrompt:
|
|
27
|
+
'Carry out the planned steps. Return early when success criteria are met.',
|
|
28
|
+
userPrompt: JSON.stringify({ intent: ctx.intent, plan, strategy }),
|
|
29
|
+
// Execute gets the largest budget — leave some room for debrief.
|
|
30
|
+
budgetMs: Math.min(ctx.msUntilEndTs(), 90_000),
|
|
31
|
+
abort: ctx.abort,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { RestorationContext } from '@jinn-network/restorer-sdk';
|
|
2
|
+
import type { HarnessAdapter } from '../harness.js';
|
|
3
|
+
import type { DebriefResult } from './debrief.js';
|
|
4
|
+
|
|
5
|
+
export interface ImproveResult {
|
|
6
|
+
mutations: ReadonlyArray<{ path: string; description: string }>;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Mutates impl-state under `ctx.implStateDir` based on what debrief
|
|
11
|
+
* surfaced. The example returns empty mutations; real impls write
|
|
12
|
+
* playbooks, calibration tables, or skill snippets.
|
|
13
|
+
*/
|
|
14
|
+
export async function runImprove(args: {
|
|
15
|
+
ctx: RestorationContext;
|
|
16
|
+
harness: HarnessAdapter;
|
|
17
|
+
debrief: DebriefResult;
|
|
18
|
+
}): Promise<ImproveResult> {
|
|
19
|
+
const { ctx, harness, debrief } = args;
|
|
20
|
+
return harness.promptForJson<ImproveResult>({
|
|
21
|
+
promptId: 'improve',
|
|
22
|
+
systemPrompt:
|
|
23
|
+
'Propose minimal mutations to impl-state that would help the next attempt.',
|
|
24
|
+
userPrompt: JSON.stringify({
|
|
25
|
+
implStateDir: ctx.implStateDir,
|
|
26
|
+
debrief,
|
|
27
|
+
}),
|
|
28
|
+
budgetMs: Math.min(ctx.msUntilEndTs(), 10_000),
|
|
29
|
+
abort: ctx.abort,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { RestorationContext } from '@jinn-network/restorer-sdk';
|
|
2
|
+
import type { HarnessAdapter } from '../harness.js';
|
|
3
|
+
import type { DebriefResult } from './debrief.js';
|
|
4
|
+
|
|
5
|
+
export interface MemoryResult {
|
|
6
|
+
kept: number;
|
|
7
|
+
pruned: number;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Garbage-collects long-term memory. The example returns
|
|
12
|
+
* `{ kept: 0, pruned: 0 }`; real impls trim stale records under
|
|
13
|
+
* `ctx.implStateDir`.
|
|
14
|
+
*/
|
|
15
|
+
export async function runMemory(args: {
|
|
16
|
+
ctx: RestorationContext;
|
|
17
|
+
harness: HarnessAdapter;
|
|
18
|
+
debrief: DebriefResult;
|
|
19
|
+
}): Promise<MemoryResult> {
|
|
20
|
+
const { ctx, harness, debrief } = args;
|
|
21
|
+
return harness.promptForJson<MemoryResult>({
|
|
22
|
+
promptId: 'memory',
|
|
23
|
+
systemPrompt: 'Decide which memory items to keep vs prune.',
|
|
24
|
+
userPrompt: JSON.stringify({
|
|
25
|
+
implStateDir: ctx.implStateDir,
|
|
26
|
+
debrief,
|
|
27
|
+
}),
|
|
28
|
+
budgetMs: Math.min(ctx.msUntilEndTs(), 10_000),
|
|
29
|
+
abort: ctx.abort,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { RestorationContext } from '@jinn-network/restorer-sdk';
|
|
2
|
+
import type { HarnessAdapter } from '../harness.js';
|
|
3
|
+
|
|
4
|
+
export interface OrientResult {
|
|
5
|
+
topics: ReadonlyArray<{ name: string; summary: string }>;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export async function runOrient(args: {
|
|
9
|
+
ctx: RestorationContext;
|
|
10
|
+
harness: HarnessAdapter;
|
|
11
|
+
}): Promise<OrientResult> {
|
|
12
|
+
const { ctx, harness } = args;
|
|
13
|
+
return harness.promptForJson<OrientResult>({
|
|
14
|
+
promptId: 'orient',
|
|
15
|
+
systemPrompt:
|
|
16
|
+
'You are an info-gathering subagent for a Jinn restoration intent.',
|
|
17
|
+
userPrompt: JSON.stringify({ intent: ctx.intent }),
|
|
18
|
+
budgetMs: Math.min(ctx.msUntilEndTs(), 30_000),
|
|
19
|
+
abort: ctx.abort,
|
|
20
|
+
});
|
|
21
|
+
}
|