@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,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public types for the corpus library.
|
|
3
|
+
*
|
|
4
|
+
* See spec/2026-04-30-phase-a-umbrella.md §2.2 for the rationale and the
|
|
5
|
+
* narrative description of the read pipeline.
|
|
6
|
+
*/
|
|
7
|
+
// ── Errors ─────────────────────────────────────────────────────────────
|
|
8
|
+
export class CorpusQueryError extends Error {
|
|
9
|
+
cause;
|
|
10
|
+
constructor(message, cause) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.cause = cause;
|
|
13
|
+
this.name = 'CorpusQueryError';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export class ManifestFetchError extends Error {
|
|
17
|
+
manifestCid;
|
|
18
|
+
cause;
|
|
19
|
+
constructor(manifestCid, message, cause) {
|
|
20
|
+
super(`manifest ${manifestCid}: ${message}`);
|
|
21
|
+
this.manifestCid = manifestCid;
|
|
22
|
+
this.cause = cause;
|
|
23
|
+
this.name = 'ManifestFetchError';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export class AcquireError extends Error {
|
|
27
|
+
sha256;
|
|
28
|
+
cause;
|
|
29
|
+
constructor(sha256, message, cause) {
|
|
30
|
+
super(`acquire ${sha256}: ${message}`);
|
|
31
|
+
this.sha256 = sha256;
|
|
32
|
+
this.cause = cause;
|
|
33
|
+
this.name = 'AcquireError';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export class HashMismatchError extends Error {
|
|
37
|
+
sha256Expected;
|
|
38
|
+
sha256Actual;
|
|
39
|
+
source;
|
|
40
|
+
sourceOperator;
|
|
41
|
+
constructor(sha256Expected, sha256Actual, source, sourceOperator) {
|
|
42
|
+
super(`hash mismatch: expected ${sha256Expected}, got ${sha256Actual} from ${source}`);
|
|
43
|
+
this.sha256Expected = sha256Expected;
|
|
44
|
+
this.sha256Actual = sha256Actual;
|
|
45
|
+
this.source = source;
|
|
46
|
+
this.sourceOperator = sourceOperator;
|
|
47
|
+
this.name = 'HashMismatchError';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/corpus/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4EH,0EAA0E;AAE1E,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACI;IAA7C,YAAY,OAAe,EAAkB,KAAe;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,UAAK,GAAL,KAAK,CAAU;QAE1D,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACf;IAAsD;IAAlF,YAA4B,WAAmB,EAAE,OAAe,EAAkB,KAAe;QAC/F,KAAK,CAAC,YAAY,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC;QADnB,gBAAW,GAAX,WAAW,CAAQ;QAAmC,UAAK,GAAL,KAAK,CAAU;QAE/F,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IACT;IAAiD;IAA7E,YAA4B,MAAc,EAAE,OAAe,EAAkB,KAAe;QAC1F,KAAK,CAAC,WAAW,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QADb,WAAM,GAAN,MAAM,CAAQ;QAAmC,UAAK,GAAL,KAAK,CAAU;QAE1F,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAExB;IACA;IACA;IACA;IAJlB,YACkB,cAAsB,EACtB,YAAoB,EACpB,MAAc,EACd,cAAuB;QAEvC,KAAK,CAAC,2BAA2B,cAAc,SAAS,YAAY,SAAS,MAAM,EAAE,CAAC,CAAC;QALvE,mBAAc,GAAd,cAAc,CAAQ;QACtB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,WAAM,GAAN,MAAM,CAAQ;QACd,mBAAc,GAAd,cAAc,CAAS;QAGvC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -12,6 +12,7 @@ import { getAddress, formatEther } from 'viem';
|
|
|
12
12
|
import { viemSendTransactionWithRetry, waitForTransactionReceiptWithRetry } from '../tx-retry.js';
|
|
13
13
|
import { emitEvent } from '../observability/emit-event.js';
|
|
14
14
|
import { displayFleetServiceIndex } from '../earning/fleet-display-index.js';
|
|
15
|
+
import { isOperationalServiceStep } from '../earning/types.js';
|
|
15
16
|
export class BalanceTopupLoop {
|
|
16
17
|
config;
|
|
17
18
|
stopped = false;
|
|
@@ -27,7 +28,7 @@ export class BalanceTopupLoop {
|
|
|
27
28
|
if (!masterAccount)
|
|
28
29
|
return;
|
|
29
30
|
for (const svc of state.services) {
|
|
30
|
-
if (svc.step
|
|
31
|
+
if (!isOperationalServiceStep(svc.step))
|
|
31
32
|
continue;
|
|
32
33
|
if (!svc.agent_address || !svc.safe_address)
|
|
33
34
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance-topup-loop.js","sourceRoot":"","sources":["../../src/daemon/balance-topup-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAG/C,OAAO,EAAE,4BAA4B,EAAE,kCAAkC,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"balance-topup-loop.js","sourceRoot":"","sources":["../../src/daemon/balance-topup-loop.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/creator.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { ExecutionAdapter } from '../adapters/adapter.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { RestorationJob, RequestId } from '../types/index.js';
|
|
3
3
|
import type { Store } from '../store/store.js';
|
|
4
4
|
import type { IntentSource } from '../intents/sources.js';
|
|
5
5
|
export interface ActiveAttempt {
|
|
6
|
-
|
|
6
|
+
restorationJob: RestorationJob;
|
|
7
7
|
attemptNumber: number;
|
|
8
8
|
restorationRequestId: string;
|
|
9
9
|
status: 'pending' | 'resolved';
|
package/dist/daemon/creator.js
CHANGED
|
@@ -40,7 +40,7 @@ export class CreatorLoop {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
for (const candidate of candidates) {
|
|
43
|
-
const state = candidate.
|
|
43
|
+
const state = candidate.restorationJob;
|
|
44
44
|
const failureKey = CreatorLoop.failureCacheKey(state, this.safeAddress);
|
|
45
45
|
const failedAt = this.store.getConfigValue(failureKey);
|
|
46
46
|
if (failedAt) {
|
|
@@ -60,7 +60,7 @@ export class CreatorLoop {
|
|
|
60
60
|
continue;
|
|
61
61
|
const requestId = postResult.requestId;
|
|
62
62
|
this.attempts.set(state.id, {
|
|
63
|
-
|
|
63
|
+
restorationJob: state,
|
|
64
64
|
attemptNumber: postResult.attemptNumber,
|
|
65
65
|
restorationRequestId: requestId,
|
|
66
66
|
status: 'pending',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creator.js","sourceRoot":"","sources":["../../src/daemon/creator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAUrE,MAAM,OAAO,WAAW;IAeH;IACA;IACA;IACA;IAjBX,OAAO,GAAG,KAAK,CAAC;IAChB,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC5C,WAAW,GAAwB,IAAI,CAAC;IACxC,WAAW,CAAgB;IAClB,cAAc,CAAuB;IAE9C,MAAM,CAAU,4BAA4B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAE9D,MAAM,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"creator.js","sourceRoot":"","sources":["../../src/daemon/creator.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/daemon.d.ts
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import type { ExecutionAdapter } from '../adapters/adapter.js';
|
|
2
2
|
import type { Runner } from '../runner/runner.js';
|
|
3
|
+
import { Store } from '../store/store.js';
|
|
4
|
+
import { type ApiServer } from '../api/server.js';
|
|
3
5
|
import type { StatusGatherConfig } from '../api/gather-status.js';
|
|
4
6
|
import type { EthHttpSigner } from '../auth/erc8128.js';
|
|
5
|
-
import { type RegistryConfig } from '../discovery/registry.js';
|
|
6
7
|
import type { X402Config } from '../x402/handler.js';
|
|
8
|
+
import type { Corpus } from '../corpus/index.js';
|
|
7
9
|
import { type RewardClaimLoopConfig } from './reward-claim-loop.js';
|
|
8
10
|
import { type RestorationEngineOptions } from '../restorer/engine/engine.js';
|
|
9
11
|
import { type BalanceTopupLoopConfig } from './balance-topup-loop.js';
|
|
10
|
-
import type
|
|
12
|
+
import { type JinnClaimLoopConfig } from './jinn-claim-loop.js';
|
|
13
|
+
import { type IntentSource } from '../intents/sources.js';
|
|
14
|
+
import type { RestorationJob } from '../types/index.js';
|
|
11
15
|
export interface DaemonConfig {
|
|
12
16
|
adapter: ExecutionAdapter;
|
|
13
17
|
runner: Runner;
|
|
@@ -16,9 +20,23 @@ export interface DaemonConfig {
|
|
|
16
20
|
/** Engine tick interval (ms) for re-driving in-flight intents. Defaults to 5000. */
|
|
17
21
|
pollIntervalMs?: number;
|
|
18
22
|
apiPort?: number;
|
|
23
|
+
/**
|
|
24
|
+
* Bind host for the HTTP API server. Defaults to `127.0.0.1` so the
|
|
25
|
+
* daemon API is unreachable across the network unless operators opt in.
|
|
26
|
+
* Cost-mutating routes additionally require a bearer token.
|
|
27
|
+
*/
|
|
28
|
+
apiBindHost?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Bearer token required on cost-mutating API routes (`POST /artifacts`,
|
|
31
|
+
* `POST /v1/artifacts/acquire`). main.ts generates one at startup
|
|
32
|
+
* (or reads from `DAEMON_API_TOKEN`) and passes it here. When omitted
|
|
33
|
+
* (e.g. unit tests that don't exercise the cost-mutating routes), the
|
|
34
|
+
* Daemon synthesizes a random per-process token so the server still
|
|
35
|
+
* has something to compare against.
|
|
36
|
+
*/
|
|
37
|
+
apiToken?: string;
|
|
19
38
|
peers?: string[];
|
|
20
39
|
signer?: EthHttpSigner;
|
|
21
|
-
registry?: RegistryConfig;
|
|
22
40
|
subgraphUrl?: string;
|
|
23
41
|
/** This node's public HTTP endpoint (for 8004 registration) */
|
|
24
42
|
nodeEndpoint?: string;
|
|
@@ -33,10 +51,48 @@ export interface DaemonConfig {
|
|
|
33
51
|
* Omitted or interval 0 → loop not started.
|
|
34
52
|
*/
|
|
35
53
|
balanceTopup?: BalanceTopupLoopConfig;
|
|
54
|
+
/**
|
|
55
|
+
* Cross-chain JINN claim loop (jinn-mono-7x5). Emits ClaimTicket on L2,
|
|
56
|
+
* waits for finality (canonical) or plants a fixture (mock), and submits
|
|
57
|
+
* the L1 distributor claim. Omitted or interval 0 → loop not started.
|
|
58
|
+
*/
|
|
59
|
+
jinnClaim?: JinnClaimLoopConfig;
|
|
36
60
|
/** Passed to HTTP API for GET /v1/status (fleet + RPC hints). */
|
|
37
61
|
status?: StatusGatherConfig;
|
|
62
|
+
/**
|
|
63
|
+
* Daemon-side Corpus factory. Invoked after the Daemon constructs its
|
|
64
|
+
* Store so the corpus shares the same SQLite handle. When set, the API
|
|
65
|
+
* server exposes `POST /v1/artifacts/acquire` so the MCP subprocess can
|
|
66
|
+
* acquire artifacts without ever holding the agent EOA private key. Built
|
|
67
|
+
* in `main.ts` once `subgraphUrl` is configured. See
|
|
68
|
+
* spec/2026-04-30-phase-a-umbrella.md §4.
|
|
69
|
+
*/
|
|
70
|
+
corpusFactory?: (store: Store) => Corpus;
|
|
71
|
+
/**
|
|
72
|
+
* If provided, the Daemon uses this already-started API server instead of
|
|
73
|
+
* starting its own. Used by the setup-mode flow in main.ts where the API
|
|
74
|
+
* needs to come up before bootstrap completes so the operator dashboard is
|
|
75
|
+
* reachable while the fleet is still bootstrapping (e.g. awaiting funding).
|
|
76
|
+
*
|
|
77
|
+
* The Daemon does NOT close an injected API server — ownership stays with
|
|
78
|
+
* the caller (main.ts's shutdown handler closes it explicitly).
|
|
79
|
+
*/
|
|
80
|
+
apiServer?: ApiServer;
|
|
81
|
+
/**
|
|
82
|
+
* If provided, the Daemon uses this Store instead of constructing a new one
|
|
83
|
+
* from `dbPath`. Used by the setup-mode flow in main.ts where the API
|
|
84
|
+
* server needs the Store before the Daemon is constructed; sharing one
|
|
85
|
+
* Store instance avoids two parallel SQLite connections + schema setups
|
|
86
|
+
* on the same file.
|
|
87
|
+
*
|
|
88
|
+
* When supplied, the Daemon does NOT close the Store on stop() —
|
|
89
|
+
* ownership stays with the caller.
|
|
90
|
+
*/
|
|
91
|
+
store?: Store;
|
|
38
92
|
/** Restoration intent sources polled by CreatorLoop. */
|
|
39
93
|
intentSources?: IntentSource[];
|
|
94
|
+
/** Backwards-compatible static intents; used when intentSources is omitted. */
|
|
95
|
+
desiredStates?: RestorationJob[];
|
|
40
96
|
/**
|
|
41
97
|
* Creator Safe address — used to scope CreatorLoop's SQLite idempotency
|
|
42
98
|
* cache keys per-Safe. Without this, two co-located daemons on the same
|
|
@@ -49,7 +105,13 @@ export interface DaemonConfig {
|
|
|
49
105
|
* evaluator impls; health-check intents with no spec use `legacy-claude` via
|
|
50
106
|
* the registry default.
|
|
51
107
|
*/
|
|
52
|
-
restorationEngine: Omit<RestorationEngineOptions, 'store'
|
|
108
|
+
restorationEngine: Omit<RestorationEngineOptions, 'store' | 'packagingDeps'> & {
|
|
109
|
+
/**
|
|
110
|
+
* Packaging deps minus `store` (Daemon owns the SQLite handle and threads
|
|
111
|
+
* it in at construction time).
|
|
112
|
+
*/
|
|
113
|
+
packagingDeps?: Omit<NonNullable<RestorationEngineOptions['packagingDeps']>, 'store'>;
|
|
114
|
+
};
|
|
53
115
|
}
|
|
54
116
|
export declare class Daemon {
|
|
55
117
|
private readonly config;
|
|
@@ -62,11 +124,14 @@ export declare class Daemon {
|
|
|
62
124
|
private loopPromises;
|
|
63
125
|
private cachedShutdownState;
|
|
64
126
|
private apiServer?;
|
|
127
|
+
private ownsApiServer;
|
|
128
|
+
private ownsStore;
|
|
65
129
|
private peerSync?;
|
|
66
|
-
private registry?;
|
|
67
130
|
private readonly apiPort;
|
|
131
|
+
private readonly apiToken;
|
|
68
132
|
private rewardClaimLoop?;
|
|
69
133
|
private balanceTopupLoop?;
|
|
134
|
+
private jinnClaimLoop?;
|
|
70
135
|
constructor(config: DaemonConfig);
|
|
71
136
|
start(): Promise<void>;
|
|
72
137
|
stop(): Promise<void>;
|
|
@@ -85,15 +150,5 @@ export declare class Daemon {
|
|
|
85
150
|
* fall back to safe defaults with a warning.
|
|
86
151
|
*/
|
|
87
152
|
private _runEngineWatcherLoop;
|
|
88
|
-
/**
|
|
89
|
-
* Register an artifact on the 8004 registry (fire-and-forget).
|
|
90
|
-
* Called after local artifact publish if registry is configured.
|
|
91
|
-
*/
|
|
92
|
-
registerArtifact(artifact: {
|
|
93
|
-
id: string;
|
|
94
|
-
title: string;
|
|
95
|
-
tags: string[];
|
|
96
|
-
outcome: string;
|
|
97
|
-
}): void;
|
|
98
153
|
private backfillFromSubgraph;
|
|
99
154
|
}
|
package/dist/daemon/daemon.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
import { randomBytes } from 'node:crypto';
|
|
1
2
|
import { Store } from '../store/store.js';
|
|
2
3
|
import { CreatorLoop } from './creator.js';
|
|
3
4
|
import { DeliveryWatcherLoop } from './delivery-watcher.js';
|
|
4
5
|
import { startApiServer } from '../api/server.js';
|
|
5
6
|
import { PeerSync } from '../api/peers.js';
|
|
6
|
-
import {
|
|
7
|
-
import { queryArtifacts, queryNodes, getMetadataValue } from '../discovery/subgraph.js';
|
|
7
|
+
import { queryArtifacts, queryNodes, getMetadataValue } from '../erc8004/index.js';
|
|
8
8
|
import { RewardClaimLoop } from './reward-claim-loop.js';
|
|
9
9
|
import { RestorationEngine } from '../restorer/engine/engine.js';
|
|
10
10
|
import { BalanceTopupLoop } from './balance-topup-loop.js';
|
|
11
|
+
import { JinnClaimLoop } from './jinn-claim-loop.js';
|
|
11
12
|
import { emitEvent } from '../observability/emit-event.js';
|
|
13
|
+
import { emitStructured } from '../events/emitter.js';
|
|
14
|
+
import { StaticConfiguredIntentSource } from '../intents/sources.js';
|
|
12
15
|
const DEFAULT_API_PORT = 7331;
|
|
13
16
|
export class Daemon {
|
|
14
17
|
config;
|
|
@@ -21,21 +24,41 @@ export class Daemon {
|
|
|
21
24
|
loopPromises = [];
|
|
22
25
|
cachedShutdownState = null;
|
|
23
26
|
apiServer;
|
|
27
|
+
ownsApiServer = false;
|
|
28
|
+
ownsStore = false;
|
|
24
29
|
peerSync;
|
|
25
|
-
registry;
|
|
26
30
|
apiPort;
|
|
31
|
+
apiToken;
|
|
27
32
|
rewardClaimLoop;
|
|
28
33
|
balanceTopupLoop;
|
|
34
|
+
jinnClaimLoop;
|
|
29
35
|
constructor(config) {
|
|
30
36
|
this.config = config;
|
|
31
|
-
|
|
37
|
+
if (config.store) {
|
|
38
|
+
this.store = config.store;
|
|
39
|
+
this.ownsStore = false;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.store = new Store(config.dbPath);
|
|
43
|
+
this.ownsStore = true;
|
|
44
|
+
}
|
|
32
45
|
this.adapter = config.adapter;
|
|
33
46
|
this.apiPort = config.apiPort ?? parseInt(process.env['JINN_API_PORT'] ?? String(DEFAULT_API_PORT));
|
|
34
|
-
|
|
47
|
+
// When the embedder didn't supply a token (e.g. a unit test that doesn't
|
|
48
|
+
// exercise the cost-mutating routes), fall back to a fresh random token
|
|
49
|
+
// so the API server still has something to compare bearer headers
|
|
50
|
+
// against. Production callers (main.ts) always pass an explicit token.
|
|
51
|
+
this.apiToken = config.apiToken ?? randomBytes(32).toString('hex');
|
|
52
|
+
const intentSources = config.intentSources
|
|
53
|
+
?? (config.desiredStates ? [new StaticConfiguredIntentSource(config.desiredStates)] : []);
|
|
54
|
+
this.creatorLoop = new CreatorLoop(this.adapter, intentSources, this.store, config.creatorSafeAddress);
|
|
35
55
|
this.deliveryWatcherLoop = new DeliveryWatcherLoop(this.adapter, this.store);
|
|
36
56
|
this.restorationEngine = new RestorationEngine({
|
|
37
57
|
...config.restorationEngine,
|
|
38
58
|
store: this.store,
|
|
59
|
+
packagingDeps: config.restorationEngine.packagingDeps
|
|
60
|
+
? { ...config.restorationEngine.packagingDeps, store: this.store }
|
|
61
|
+
: undefined,
|
|
39
62
|
});
|
|
40
63
|
if (config.rewardClaim && config.rewardClaim.intervalMs > 0) {
|
|
41
64
|
this.rewardClaimLoop = new RewardClaimLoop({
|
|
@@ -49,6 +72,12 @@ export class Daemon {
|
|
|
49
72
|
jinnStore: this.store,
|
|
50
73
|
});
|
|
51
74
|
}
|
|
75
|
+
if (config.jinnClaim && config.jinnClaim.intervalMs > 0) {
|
|
76
|
+
this.jinnClaimLoop = new JinnClaimLoop({
|
|
77
|
+
...config.jinnClaim,
|
|
78
|
+
jinnStore: this.store,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
52
81
|
}
|
|
53
82
|
async start() {
|
|
54
83
|
await this.adapter.initialize();
|
|
@@ -56,18 +85,27 @@ export class Daemon {
|
|
|
56
85
|
this.store.setDaemonStartedAt(new Date().toISOString());
|
|
57
86
|
this.cachedShutdownState = 'running';
|
|
58
87
|
emitEvent(this.store, { kind: 'startup', outcome: 'ok', detail: 'Daemon started' }, 'daemon');
|
|
59
|
-
// Start HTTP API server
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
88
|
+
// Start HTTP API server (or adopt the one main.ts started early in
|
|
89
|
+
// setup-mode). When injected, ownership stays with the caller — see
|
|
90
|
+
// DaemonConfig.apiServer.
|
|
91
|
+
const corpus = this.config.corpusFactory
|
|
92
|
+
? this.config.corpusFactory(this.store)
|
|
93
|
+
: undefined;
|
|
94
|
+
if (this.config.apiServer) {
|
|
95
|
+
this.apiServer = this.config.apiServer;
|
|
96
|
+
this.ownsApiServer = false;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
this.apiServer = await startApiServer({
|
|
100
|
+
port: this.apiPort,
|
|
101
|
+
store: this.store,
|
|
102
|
+
apiToken: this.apiToken,
|
|
103
|
+
x402: this.config.x402,
|
|
104
|
+
status: this.config.status,
|
|
105
|
+
bindHost: this.config.apiBindHost,
|
|
106
|
+
corpus,
|
|
107
|
+
});
|
|
108
|
+
this.ownsApiServer = true;
|
|
71
109
|
}
|
|
72
110
|
// Backfill remote artifacts from subgraph if configured
|
|
73
111
|
const subgraphUrl = this.config.subgraphUrl ?? process.env['JINN_SUBGRAPH_URL'];
|
|
@@ -82,6 +120,12 @@ export class Daemon {
|
|
|
82
120
|
outcome: 'failed',
|
|
83
121
|
detail: err instanceof Error ? err.message : String(err),
|
|
84
122
|
}, 'daemon');
|
|
123
|
+
emitStructured({
|
|
124
|
+
kind: 'error',
|
|
125
|
+
message: 'subgraph backfill failed',
|
|
126
|
+
errorCode: 'subgraph_backfill',
|
|
127
|
+
details: { error: err instanceof Error ? err.message : String(err) },
|
|
128
|
+
});
|
|
85
129
|
}
|
|
86
130
|
}
|
|
87
131
|
// Start peer sync if peers configured
|
|
@@ -92,30 +136,112 @@ export class Daemon {
|
|
|
92
136
|
store: this.store,
|
|
93
137
|
signer: this.config.signer,
|
|
94
138
|
});
|
|
95
|
-
this.loopPromises.push(this.peerSync.run().catch(err =>
|
|
139
|
+
this.loopPromises.push(this.peerSync.run().catch(err => {
|
|
140
|
+
console.error('[daemon] peer-sync crashed:', err);
|
|
141
|
+
emitStructured({
|
|
142
|
+
kind: 'error',
|
|
143
|
+
message: 'peer-sync loop crashed',
|
|
144
|
+
errorCode: 'peer_sync_crashed',
|
|
145
|
+
details: { error: err instanceof Error ? err.message : String(err) },
|
|
146
|
+
});
|
|
147
|
+
}));
|
|
96
148
|
}
|
|
97
149
|
const engine = this.restorationEngine;
|
|
98
150
|
await engine.recoverInFlight();
|
|
99
|
-
this.loopPromises.push(this.creatorLoop.run().catch(err =>
|
|
151
|
+
this.loopPromises.push(this.creatorLoop.run().catch(err => {
|
|
152
|
+
console.error('[daemon] creator crashed:', err);
|
|
153
|
+
emitStructured({
|
|
154
|
+
kind: 'error',
|
|
155
|
+
message: 'creator loop crashed',
|
|
156
|
+
errorCode: 'creator_crashed',
|
|
157
|
+
details: { error: err instanceof Error ? err.message : String(err) },
|
|
158
|
+
});
|
|
159
|
+
}), this._runEngineWatcherLoop(engine).catch(err => {
|
|
160
|
+
console.error('[daemon] engine-watcher crashed:', err);
|
|
161
|
+
emitStructured({
|
|
162
|
+
kind: 'error',
|
|
163
|
+
message: 'engine-watcher loop crashed',
|
|
164
|
+
errorCode: 'engine_watcher_crashed',
|
|
165
|
+
details: { error: err instanceof Error ? err.message : String(err) },
|
|
166
|
+
});
|
|
167
|
+
}), engine.runTickLoop(this.config.pollIntervalMs ?? 5000).catch(err => {
|
|
168
|
+
console.error('[daemon] engine-tick crashed:', err);
|
|
169
|
+
emitStructured({
|
|
170
|
+
kind: 'error',
|
|
171
|
+
message: 'engine-tick loop crashed',
|
|
172
|
+
errorCode: 'engine_tick_crashed',
|
|
173
|
+
details: { error: err instanceof Error ? err.message : String(err) },
|
|
174
|
+
});
|
|
175
|
+
}), this.deliveryWatcherLoop.run().catch(err => {
|
|
176
|
+
console.error('[daemon] delivery-watcher crashed:', err);
|
|
177
|
+
emitStructured({
|
|
178
|
+
kind: 'error',
|
|
179
|
+
message: 'delivery-watcher loop crashed',
|
|
180
|
+
errorCode: 'delivery_watcher_crashed',
|
|
181
|
+
details: { error: err instanceof Error ? err.message : String(err) },
|
|
182
|
+
});
|
|
183
|
+
}));
|
|
100
184
|
if (this.rewardClaimLoop) {
|
|
101
|
-
this.loopPromises.push(this.rewardClaimLoop.run().catch(err =>
|
|
185
|
+
this.loopPromises.push(this.rewardClaimLoop.run().catch(err => {
|
|
186
|
+
console.error('[daemon] reward-claim crashed:', err);
|
|
187
|
+
emitStructured({
|
|
188
|
+
kind: 'error',
|
|
189
|
+
message: 'reward-claim loop crashed',
|
|
190
|
+
errorCode: 'reward_claim_crashed',
|
|
191
|
+
details: { error: err instanceof Error ? err.message : String(err) },
|
|
192
|
+
});
|
|
193
|
+
}));
|
|
102
194
|
}
|
|
103
195
|
if (this.balanceTopupLoop) {
|
|
104
|
-
this.loopPromises.push(this.balanceTopupLoop.run().catch(err =>
|
|
196
|
+
this.loopPromises.push(this.balanceTopupLoop.run().catch(err => {
|
|
197
|
+
console.error('[daemon] balance-topup crashed:', err);
|
|
198
|
+
emitStructured({
|
|
199
|
+
kind: 'error',
|
|
200
|
+
message: 'balance-topup loop crashed',
|
|
201
|
+
errorCode: 'balance_topup_crashed',
|
|
202
|
+
details: { error: err instanceof Error ? err.message : String(err) },
|
|
203
|
+
});
|
|
204
|
+
}));
|
|
105
205
|
}
|
|
206
|
+
if (this.jinnClaimLoop) {
|
|
207
|
+
this.loopPromises.push(this.jinnClaimLoop.run().catch(err => {
|
|
208
|
+
console.error('[daemon] jinn-claim crashed:', err);
|
|
209
|
+
emitStructured({
|
|
210
|
+
kind: 'error',
|
|
211
|
+
message: 'jinn-claim loop crashed',
|
|
212
|
+
errorCode: 'jinn_claim_crashed',
|
|
213
|
+
details: { error: err instanceof Error ? err.message : String(err) },
|
|
214
|
+
});
|
|
215
|
+
}));
|
|
216
|
+
}
|
|
217
|
+
emitStructured({ kind: 'system', message: 'daemon loops started' });
|
|
106
218
|
}
|
|
107
219
|
async stop() {
|
|
220
|
+
emitStructured({ kind: 'system', message: 'daemon loops stopping' });
|
|
108
221
|
this.creatorLoop.stop();
|
|
109
222
|
this.engineStopped = true;
|
|
110
223
|
this.restorationEngine.stop();
|
|
111
|
-
await this.restorationEngine.releaseClaimedNotStarted().catch(err =>
|
|
224
|
+
await this.restorationEngine.releaseClaimedNotStarted().catch(err => {
|
|
225
|
+
console.error('[daemon] engine releaseClaimedNotStarted failed (non-fatal):', err);
|
|
226
|
+
emitStructured({
|
|
227
|
+
kind: 'error',
|
|
228
|
+
message: 'engine releaseClaimedNotStarted failed',
|
|
229
|
+
errorCode: 'engine_release_failed',
|
|
230
|
+
details: { error: err instanceof Error ? err.message : String(err) },
|
|
231
|
+
});
|
|
232
|
+
});
|
|
112
233
|
this.deliveryWatcherLoop.stop();
|
|
113
234
|
this.rewardClaimLoop?.stop();
|
|
114
235
|
this.balanceTopupLoop?.stop();
|
|
236
|
+
this.jinnClaimLoop?.stop();
|
|
115
237
|
this.peerSync?.stop();
|
|
116
238
|
// Stop the adapter to unblock any pending async iterators
|
|
117
239
|
await this.adapter.stop();
|
|
118
|
-
|
|
240
|
+
// Only close the API server if we started it. When main.ts injected a
|
|
241
|
+
// pre-started server (setup-mode flow), it owns shutdown.
|
|
242
|
+
if (this.ownsApiServer) {
|
|
243
|
+
await this.apiServer?.close();
|
|
244
|
+
}
|
|
119
245
|
const timeout = this.config.shutdownTimeoutMs ?? 30000;
|
|
120
246
|
await Promise.race([
|
|
121
247
|
Promise.allSettled(this.loopPromises),
|
|
@@ -124,7 +250,11 @@ export class Daemon {
|
|
|
124
250
|
this.store.setShutdownState('clean');
|
|
125
251
|
this.cachedShutdownState = 'clean';
|
|
126
252
|
emitEvent(this.store, { kind: 'shutdown', outcome: 'ok', detail: 'Daemon stopped cleanly' }, 'daemon');
|
|
127
|
-
|
|
253
|
+
// Only close the Store if we own it. When main.ts injected one, the
|
|
254
|
+
// caller's shutdown handler closes it after the Daemon stops.
|
|
255
|
+
if (this.ownsStore) {
|
|
256
|
+
this.store.close();
|
|
257
|
+
}
|
|
128
258
|
}
|
|
129
259
|
getShutdownState() {
|
|
130
260
|
return this.cachedShutdownState;
|
|
@@ -149,9 +279,9 @@ export class Daemon {
|
|
|
149
279
|
break;
|
|
150
280
|
if (!request.requestId)
|
|
151
281
|
continue;
|
|
152
|
-
const specKind = request.
|
|
153
|
-
const windowStartTs = request.
|
|
154
|
-
const windowEndTs = request.
|
|
282
|
+
const specKind = request.restorationJob.spec?.kind ?? undefined;
|
|
283
|
+
const windowStartTs = request.restorationJob.window?.startTs ?? Date.now();
|
|
284
|
+
const windowEndTs = request.restorationJob.window?.endTs ?? (windowStartTs + DEFAULT_WINDOW_MS);
|
|
155
285
|
// Warn on missing provenance — legacy intents may legitimately lack it.
|
|
156
286
|
if (!request.intentCid) {
|
|
157
287
|
console.warn(`[daemon] intent ${request.requestId} missing provenance field intentCid — manifest integrity checks may fail`);
|
|
@@ -169,10 +299,10 @@ export class Daemon {
|
|
|
169
299
|
onchainCreationTx: request.onchainCreationTx ?? request.requestId,
|
|
170
300
|
onchainCreationBlock: request.onchainCreationBlock ?? 0,
|
|
171
301
|
specKind,
|
|
172
|
-
intentType: (request.
|
|
302
|
+
intentType: (request.restorationJob.type ?? 'restoration'),
|
|
173
303
|
windowStartTs,
|
|
174
304
|
windowEndTs,
|
|
175
|
-
|
|
305
|
+
restorationJob: request.restorationJob,
|
|
176
306
|
});
|
|
177
307
|
// Drive the engine state machine for this request.
|
|
178
308
|
// process() advances one transition per call; the engine handles retries
|
|
@@ -204,18 +334,6 @@ export class Daemon {
|
|
|
204
334
|
}
|
|
205
335
|
}
|
|
206
336
|
}
|
|
207
|
-
/**
|
|
208
|
-
* Register an artifact on the 8004 registry (fire-and-forget).
|
|
209
|
-
* Called after local artifact publish if registry is configured.
|
|
210
|
-
*/
|
|
211
|
-
registerArtifact(artifact) {
|
|
212
|
-
if (!this.registry)
|
|
213
|
-
return;
|
|
214
|
-
const endpoint = this.config.nodeEndpoint ?? `http://localhost:${this.config.apiPort ?? DEFAULT_API_PORT}`;
|
|
215
|
-
this.registry.registerArtifact({ ...artifact, endpoint }).catch(err => {
|
|
216
|
-
console.error(`[daemon] 8004 artifact registration failed (non-fatal): ${err instanceof Error ? err.message : err}`);
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
337
|
async backfillFromSubgraph(config) {
|
|
220
338
|
console.log(`[daemon] Backfilling from subgraph: ${config.url}`);
|
|
221
339
|
// Backfill artifacts
|