@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,12 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const WindowSchema: z.ZodObject<{
|
|
3
|
+
startTs: z.ZodNumber;
|
|
4
|
+
endTs: z.ZodNumber;
|
|
5
|
+
}, "strip", z.ZodTypeAny, {
|
|
6
|
+
startTs: number;
|
|
7
|
+
endTs: number;
|
|
8
|
+
}, {
|
|
9
|
+
startTs: number;
|
|
10
|
+
endTs: number;
|
|
11
|
+
}>;
|
|
12
|
+
export type Window = z.infer<typeof WindowSchema>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.js","sourceRoot":"","sources":["../../src/types/window.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;CACxB,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path containment helpers — defence against `..` traversal and
|
|
3
|
+
* absolute-path escapes when joining attacker-influenced relative
|
|
4
|
+
* paths into a daemon-owned base directory.
|
|
5
|
+
*
|
|
6
|
+
* Both Path 1 (plug-ins) and Path 2 (external impls) honour the
|
|
7
|
+
* convention that manifest entries are package-relative paths; this
|
|
8
|
+
* helper enforces that contract at runtime as belt-and-suspenders for
|
|
9
|
+
* the schema regex.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Returns true iff `candidate` resolves to a path strictly inside
|
|
13
|
+
* `baseDir`. Rejects:
|
|
14
|
+
* - dotdot traversal (`./../etc/passwd`)
|
|
15
|
+
* - absolute paths that point outside (`/etc/passwd`)
|
|
16
|
+
* - paths equal to `baseDir` itself (the base is a directory, not a
|
|
17
|
+
* file we'd expect to import)
|
|
18
|
+
*
|
|
19
|
+
* Symlink escapes are NOT resolved here — callers that hand untrusted
|
|
20
|
+
* symlink-bearing trees should additionally `fs.realpath` both sides.
|
|
21
|
+
*/
|
|
22
|
+
export declare function isInsidePackageDir(baseDir: string, candidate: string): boolean;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path containment helpers — defence against `..` traversal and
|
|
3
|
+
* absolute-path escapes when joining attacker-influenced relative
|
|
4
|
+
* paths into a daemon-owned base directory.
|
|
5
|
+
*
|
|
6
|
+
* Both Path 1 (plug-ins) and Path 2 (external impls) honour the
|
|
7
|
+
* convention that manifest entries are package-relative paths; this
|
|
8
|
+
* helper enforces that contract at runtime as belt-and-suspenders for
|
|
9
|
+
* the schema regex.
|
|
10
|
+
*/
|
|
11
|
+
import { isAbsolute, relative, resolve } from 'node:path';
|
|
12
|
+
/**
|
|
13
|
+
* Returns true iff `candidate` resolves to a path strictly inside
|
|
14
|
+
* `baseDir`. Rejects:
|
|
15
|
+
* - dotdot traversal (`./../etc/passwd`)
|
|
16
|
+
* - absolute paths that point outside (`/etc/passwd`)
|
|
17
|
+
* - paths equal to `baseDir` itself (the base is a directory, not a
|
|
18
|
+
* file we'd expect to import)
|
|
19
|
+
*
|
|
20
|
+
* Symlink escapes are NOT resolved here — callers that hand untrusted
|
|
21
|
+
* symlink-bearing trees should additionally `fs.realpath` both sides.
|
|
22
|
+
*/
|
|
23
|
+
export function isInsidePackageDir(baseDir, candidate) {
|
|
24
|
+
const base = resolve(baseDir);
|
|
25
|
+
const cand = resolve(candidate);
|
|
26
|
+
const rel = relative(base, cand);
|
|
27
|
+
return rel !== '' && !rel.startsWith('..') && !isAbsolute(rel);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=path-safety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-safety.js","sourceRoot":"","sources":["../../src/util/path-safety.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,SAAiB;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strip URLs from arbitrary error messages before they hit logs / stdout.
|
|
3
|
+
* RPC endpoints often embed API keys; logging an `Error.message` verbatim leaks them.
|
|
4
|
+
*/
|
|
5
|
+
export function redactRpcUrls(input) {
|
|
6
|
+
const message = input instanceof Error ? input.message : String(input);
|
|
7
|
+
return message.replace(/https?:\/\/[^\s"]+/g, '<rpc-url>');
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=redact-rpc-urls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact-rpc-urls.js","sourceRoot":"","sources":["../../src/util/redact-rpc-urls.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;AAC7D,CAAC"}
|
package/dist/x402/acquire.d.ts
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* x402 artifact acquisition — fetches remote content with payment.
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* Post jinn-mono-vy37.1.2: keys artifacts by sha256 (not IPFS CID). The
|
|
5
|
+
* server returns raw bytes; the consumer hashes them locally to verify
|
|
6
|
+
* integrity against the envelope's `artifact.sha256` field.
|
|
4
7
|
*/
|
|
5
|
-
export
|
|
6
|
-
|
|
8
|
+
export type AcquireWithPaymentResult = {
|
|
9
|
+
ok: true;
|
|
10
|
+
content: Buffer;
|
|
11
|
+
} | {
|
|
12
|
+
ok: false;
|
|
13
|
+
reason: 'not_found' | 'payment_failed' | 'network_error';
|
|
14
|
+
message?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare function buildAcquisitionUrl(endpoint: string, sha256: string): string;
|
|
17
|
+
export declare function acquireArtifactWithPayment(endpoint: string, sha256: string, privateKey: string): Promise<AcquireWithPaymentResult>;
|
package/dist/x402/acquire.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* x402 artifact acquisition — fetches remote content with payment.
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* Post jinn-mono-vy37.1.2: keys artifacts by sha256 (not IPFS CID). The
|
|
5
|
+
* server returns raw bytes; the consumer hashes them locally to verify
|
|
6
|
+
* integrity against the envelope's `artifact.sha256` field.
|
|
4
7
|
*/
|
|
5
|
-
export function buildAcquisitionUrl(endpoint,
|
|
6
|
-
return `${endpoint.replace(/\/$/, '')}/
|
|
8
|
+
export function buildAcquisitionUrl(endpoint, sha256) {
|
|
9
|
+
return `${endpoint.replace(/\/$/, '')}/v1/artifacts/${sha256}/content`;
|
|
7
10
|
}
|
|
8
|
-
export async function acquireArtifactWithPayment(endpoint,
|
|
9
|
-
const url = buildAcquisitionUrl(endpoint,
|
|
11
|
+
export async function acquireArtifactWithPayment(endpoint, sha256, privateKey) {
|
|
12
|
+
const url = buildAcquisitionUrl(endpoint, sha256);
|
|
10
13
|
try {
|
|
11
14
|
const { wrapFetchWithPayment, x402Client } = await import('@x402/fetch');
|
|
12
15
|
const { registerExactEvmScheme } = await import('@x402/evm/exact/client');
|
|
@@ -19,14 +22,28 @@ export async function acquireArtifactWithPayment(endpoint, artifactId, privateKe
|
|
|
19
22
|
registerExactEvmScheme(client, { signer });
|
|
20
23
|
const payFetch = wrapFetchWithPayment(globalThis.fetch, client);
|
|
21
24
|
const response = await payFetch(url);
|
|
22
|
-
if (!response.ok)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
if (!response.ok) {
|
|
26
|
+
// 402 / 403 → payment-related; 404 → missing; everything else → network.
|
|
27
|
+
if (response.status === 404) {
|
|
28
|
+
return { ok: false, reason: 'not_found', message: `HTTP 404 for ${url}` };
|
|
29
|
+
}
|
|
30
|
+
if (response.status === 402 || response.status === 403) {
|
|
31
|
+
return { ok: false, reason: 'payment_failed', message: `HTTP ${response.status} for ${url}` };
|
|
32
|
+
}
|
|
33
|
+
return { ok: false, reason: 'network_error', message: `HTTP ${response.status} for ${url}` };
|
|
34
|
+
}
|
|
35
|
+
const buf = Buffer.from(await response.arrayBuffer());
|
|
36
|
+
return { ok: true, content: buf };
|
|
26
37
|
}
|
|
27
38
|
catch (err) {
|
|
28
|
-
|
|
29
|
-
|
|
39
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
40
|
+
console.error(`[x402] Failed to acquire artifact ${sha256}:`, err);
|
|
41
|
+
// x402-fetch throws on payment-required loops it can't satisfy; we treat
|
|
42
|
+
// those as payment_failed so the caller can surface a structured error.
|
|
43
|
+
if (/payment|x402|insufficient/i.test(message)) {
|
|
44
|
+
return { ok: false, reason: 'payment_failed', message };
|
|
45
|
+
}
|
|
46
|
+
return { ok: false, reason: 'network_error', message };
|
|
30
47
|
}
|
|
31
48
|
}
|
|
32
49
|
//# sourceMappingURL=acquire.js.map
|
package/dist/x402/acquire.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acquire.js","sourceRoot":"","sources":["../../src/x402/acquire.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"acquire.js","sourceRoot":"","sources":["../../src/x402/acquire.ts"],"names":[],"mappings":"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"}
|
package/dist/x402/handler.d.ts
CHANGED
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* x402 payment-gated artifact serving.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* Single route, dynamic per-row price (spec/2026-04-30-phase-a-umbrella.md §5.4):
|
|
5
|
+
* priceUsdc='0' → respond 200 immediately, no payment dance.
|
|
6
|
+
* priceUsdc>'0' → emit 402 with payment requirements built from the row's
|
|
7
|
+
* price; on valid X-PAYMENT, verify + settle via local
|
|
8
|
+
* facilitator, then 200.
|
|
9
|
+
*
|
|
10
|
+
* The route is keyed by sha256, matching the artifact identifier in the signed
|
|
11
|
+
* envelope (post jinn-mono-vy37.1.2 — artifacts no longer have IPFS CIDs).
|
|
5
12
|
*/
|
|
6
13
|
import type { Hono } from 'hono';
|
|
7
14
|
import type { Store } from '../store/store.js';
|
|
8
15
|
export interface X402Config {
|
|
9
16
|
privateKey: string;
|
|
10
17
|
recipientAddress: string;
|
|
11
|
-
|
|
18
|
+
/** Default 'eip155:8453' (Base mainnet). */
|
|
12
19
|
network?: string;
|
|
13
20
|
rpcUrl?: string;
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated price comes from served_artifacts.priceUsdc per row; this
|
|
23
|
+
* field is ignored. Kept on the type for one cycle of caller compat.
|
|
24
|
+
*/
|
|
25
|
+
pricePerArtifact?: string;
|
|
14
26
|
}
|
|
15
27
|
export declare function addX402Routes(app: Hono, store: Store, config: X402Config): void;
|
package/dist/x402/handler.js
CHANGED
|
@@ -1,40 +1,83 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* x402 payment-gated artifact serving.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* Single route, dynamic per-row price (spec/2026-04-30-phase-a-umbrella.md §5.4):
|
|
5
|
+
* priceUsdc='0' → respond 200 immediately, no payment dance.
|
|
6
|
+
* priceUsdc>'0' → emit 402 with payment requirements built from the row's
|
|
7
|
+
* price; on valid X-PAYMENT, verify + settle via local
|
|
8
|
+
* facilitator, then 200.
|
|
9
|
+
*
|
|
10
|
+
* The route is keyed by sha256, matching the artifact identifier in the signed
|
|
11
|
+
* envelope (post jinn-mono-vy37.1.2 — artifacts no longer have IPFS CIDs).
|
|
5
12
|
*/
|
|
6
|
-
import { paymentMiddleware } from '@x402/hono';
|
|
7
|
-
import { x402ResourceServer } from '@x402/core/server';
|
|
8
|
-
import { registerExactEvmScheme } from '@x402/evm/exact/server';
|
|
9
13
|
import { createLocalFacilitatorClient } from './facilitator.js';
|
|
14
|
+
function dollarStringFromUsdc(usdc) {
|
|
15
|
+
// X402 'exact' scheme expects a string like '$0.001' for USDC amounts.
|
|
16
|
+
return `$${usdc}`;
|
|
17
|
+
}
|
|
18
|
+
function mimeForArtifactType(artifactType) {
|
|
19
|
+
if (!artifactType)
|
|
20
|
+
return 'application/octet-stream';
|
|
21
|
+
const t = artifactType.toLowerCase();
|
|
22
|
+
if (t.includes('markdown') || t.includes('.md'))
|
|
23
|
+
return 'text/markdown';
|
|
24
|
+
if (t.includes('tar') || t.includes('gz'))
|
|
25
|
+
return 'application/gzip';
|
|
26
|
+
return 'application/octet-stream';
|
|
27
|
+
}
|
|
10
28
|
export function addX402Routes(app, store, config) {
|
|
11
|
-
const
|
|
29
|
+
const facilitator = createLocalFacilitatorClient({
|
|
12
30
|
privateKey: config.privateKey,
|
|
13
31
|
network: config.network,
|
|
14
32
|
rpcUrl: config.rpcUrl,
|
|
15
33
|
});
|
|
16
34
|
const network = (config.network ?? 'eip155:8453');
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
35
|
+
app.get('/v1/artifacts/:sha256/content', async (c) => {
|
|
36
|
+
const sha256 = c.req.param('sha256');
|
|
37
|
+
if (!sha256)
|
|
38
|
+
return c.json({ error: 'Missing sha256' }, 400);
|
|
39
|
+
const row = store.getServedArtifact(sha256);
|
|
40
|
+
if (!row)
|
|
41
|
+
return c.json({ error: 'Not found' }, 404);
|
|
42
|
+
if (row.priceUsdc === '0') {
|
|
43
|
+
c.header('Content-Type', mimeForArtifactType(row.artifactType));
|
|
44
|
+
c.header('X-Artifact-Type', row.artifactType ?? '');
|
|
45
|
+
return c.body(new Uint8Array(row.content));
|
|
46
|
+
}
|
|
47
|
+
// Paid path
|
|
48
|
+
const accepts = [{
|
|
23
49
|
scheme: 'exact',
|
|
24
50
|
payTo: config.recipientAddress,
|
|
25
|
-
price,
|
|
51
|
+
price: dollarStringFromUsdc(row.priceUsdc),
|
|
26
52
|
network,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
53
|
+
description: `artifact ${sha256.slice(0, 12)}…`,
|
|
54
|
+
}];
|
|
55
|
+
const xPayment = c.req.header('X-Payment');
|
|
56
|
+
if (!xPayment) {
|
|
57
|
+
return c.json({ accepts }, 402);
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
const decoded = JSON.parse(Buffer.from(xPayment, 'base64').toString('utf-8'));
|
|
61
|
+
const requirement = accepts.find((a) => a.scheme === decoded.scheme);
|
|
62
|
+
if (!requirement) {
|
|
63
|
+
return c.json({ error: 'Unsupported payment scheme', accepts }, 402);
|
|
64
|
+
}
|
|
65
|
+
const verification = await facilitator.verify(decoded.payload, requirement);
|
|
66
|
+
if (!verification.isValid) {
|
|
67
|
+
return c.json({ error: verification.invalidReason ?? 'Payment verification failed', accepts }, 402);
|
|
68
|
+
}
|
|
69
|
+
const settlement = await facilitator.settle(decoded.payload, requirement);
|
|
70
|
+
if (!settlement.success) {
|
|
71
|
+
return c.json({ error: settlement.errorReason ?? 'Settlement failed', accepts }, 402);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
76
|
+
return c.json({ error: `Payment validation error: ${msg}`, accepts }, 402);
|
|
77
|
+
}
|
|
78
|
+
c.header('Content-Type', mimeForArtifactType(row.artifactType));
|
|
79
|
+
c.header('X-Artifact-Type', row.artifactType ?? '');
|
|
80
|
+
return c.body(new Uint8Array(row.content));
|
|
38
81
|
});
|
|
39
82
|
}
|
|
40
83
|
//# sourceMappingURL=handler.js.map
|
package/dist/x402/handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/x402/handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/x402/handler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jinn-network/client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3-canary.262e5cda",
|
|
4
4
|
"description": "Jinn protocol client — headless daemon for the restoration training loop",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "yarn@4.13.0",
|
|
7
|
+
"workspaces": [
|
|
8
|
+
"src/dashboard/spa"
|
|
9
|
+
],
|
|
7
10
|
"license": "MIT",
|
|
8
11
|
"repository": {
|
|
9
12
|
"type": "git",
|
|
@@ -15,15 +18,16 @@
|
|
|
15
18
|
},
|
|
16
19
|
"bin": {
|
|
17
20
|
"client": "./dist/bin/jinn.js",
|
|
18
|
-
"jinn": "./dist/bin/jinn.js"
|
|
19
|
-
"jinn-mcp": "./dist/bin/jinn-mcp.js"
|
|
21
|
+
"jinn": "./dist/bin/jinn.js"
|
|
20
22
|
},
|
|
21
23
|
"main": "./dist/index.js",
|
|
22
24
|
"types": "./dist/index.d.ts",
|
|
23
25
|
"files": [
|
|
24
26
|
"dist/",
|
|
25
27
|
"deployments/",
|
|
28
|
+
"plugins/",
|
|
26
29
|
"skills/",
|
|
30
|
+
"templates/",
|
|
27
31
|
"docker-compose.yml",
|
|
28
32
|
"CONTRIBUTING.md",
|
|
29
33
|
"CHANGELOG.md",
|
|
@@ -34,16 +38,21 @@
|
|
|
34
38
|
"access": "public"
|
|
35
39
|
},
|
|
36
40
|
"scripts": {
|
|
41
|
+
"postinstall": "node dist/scripts/fix-node-pty.mjs 2>/dev/null || node scripts/fix-node-pty.mjs 2>/dev/null || true",
|
|
42
|
+
"e2e:full-cycle": "tsx test/e2e/claude-code-learner-full-cycle.ts",
|
|
37
43
|
"jinn": "tsx src/bin/jinn.ts",
|
|
38
44
|
"dev": "yarn build && node dist/bin/jinn.js",
|
|
39
|
-
"build": "tsc && chmod +x dist/bin/jinn.js dist/
|
|
45
|
+
"build": "yarn build:spa && tsc && chmod +x dist/bin/jinn.js && rm -rf dist/dashboard && mkdir -p dist/dashboard && cp -R src/dashboard/spa/dist/. dist/dashboard/ && rm -rf dist/templates && cp -R templates dist/templates && mkdir -p dist/scripts && cp scripts/fix-node-pty.mjs dist/scripts/ && node scripts/write-dist-build-meta.mjs",
|
|
40
46
|
"typecheck": "tsc --noEmit",
|
|
41
47
|
"test": "vitest run",
|
|
42
48
|
"test:watch": "vitest",
|
|
43
49
|
"test:claude-prediction": "yarn build && JINN_TEST_CLAUDE_PREDICTION=1 vitest run test/restorer/impls/claude-mcp-prediction/isolation.test.ts",
|
|
44
50
|
"test:claude-prediction-apy": "yarn build && JINN_TEST_CLAUDE_PREDICTION_APY=1 vitest run test/restorer/impls/claude-mcp-prediction-apy/isolation.test.ts",
|
|
51
|
+
"skill:generate": "tsx scripts/skill-generate.ts",
|
|
52
|
+
"skill:check": "tsx scripts/skill-check.ts",
|
|
45
53
|
"prepublishOnly": "yarn build && yarn test",
|
|
46
54
|
"pack:smoke": "yarn pack -o jinn-client.tgz && node scripts/smoke-test-pack.mjs",
|
|
55
|
+
"release:client": "node scripts/release-client.mjs",
|
|
47
56
|
"release:operator-gate": "yarn staking && yarn e2e",
|
|
48
57
|
"setup:testnet-acceptance-operator": "node scripts/setup-testnet-acceptance-operator-docker.mjs",
|
|
49
58
|
"setup:testnet-acceptance-operator:docker": "node scripts/setup-testnet-acceptance-operator-docker.mjs",
|
|
@@ -52,19 +61,25 @@
|
|
|
52
61
|
"release:testnet-acceptance:docker": "node scripts/testnet-acceptance-docker.mjs",
|
|
53
62
|
"release:testnet-acceptance:host": "node scripts/testnet-acceptance.mjs",
|
|
54
63
|
"status": "tsx scripts/status.ts",
|
|
55
|
-
"e2e": "tsx
|
|
56
|
-
"e2e-
|
|
57
|
-
"e2e-prediction-apy-v0": "tsx
|
|
58
|
-
"e2e:prediction": "cd ../contracts && yarn compile && cd ../client && tsx
|
|
59
|
-
"staking": "tsx
|
|
60
|
-
"stolas": "tsx
|
|
61
|
-
"withdraw": "tsx scripts/withdraw.ts"
|
|
64
|
+
"e2e": "tsx test/e2e/validate.ts",
|
|
65
|
+
"e2e:claude-code-learner": "tsx test/e2e/claude-code-learner-portfolio-v0.ts",
|
|
66
|
+
"e2e-prediction-apy-v0": "tsx test/e2e/prediction-apy-v0.ts",
|
|
67
|
+
"e2e:prediction": "cd ../contracts && yarn compile && cd ../client && tsx test/e2e/prediction-v0.ts",
|
|
68
|
+
"staking": "tsx test/e2e/staking.ts",
|
|
69
|
+
"stolas": "tsx test/e2e/stolas.ts",
|
|
70
|
+
"withdraw": "tsx scripts/withdraw.ts",
|
|
71
|
+
"corpus:e2e": "tsx scripts/corpus-e2e-validate.ts",
|
|
72
|
+
"build:spa": "yarn workspace @jinn-network/operator-spa build",
|
|
73
|
+
"dev:spa": "yarn workspace @jinn-network/operator-spa dev",
|
|
74
|
+
"e2e:spa": "yarn build && playwright test --config=playwright.config.ts test/dashboard/spa.e2e.test.ts"
|
|
62
75
|
},
|
|
63
76
|
"dependencies": {
|
|
64
77
|
"@ethereumjs/wallet": "^10.0.0",
|
|
65
78
|
"@hono/node-server": "^1.19.12",
|
|
66
79
|
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
67
80
|
"@msgpack/msgpack": "^3.0.0",
|
|
81
|
+
"@noble/ed25519": "^3.1.0",
|
|
82
|
+
"@noble/hashes": "^2.2.0",
|
|
68
83
|
"@safe-global/protocol-kit": "^6.1.2",
|
|
69
84
|
"@safe-global/types-kit": "^3.0.0",
|
|
70
85
|
"@scure/bip32": "^1.7.0",
|
|
@@ -74,18 +89,28 @@
|
|
|
74
89
|
"@x402/evm": "^2.9.0",
|
|
75
90
|
"@x402/fetch": "^2.9.0",
|
|
76
91
|
"@x402/hono": "^2.9.0",
|
|
92
|
+
"ajv": "^8.20.0",
|
|
93
|
+
"ajv-formats": "^3.0.1",
|
|
77
94
|
"better-sqlite3": "^11.0.0",
|
|
95
|
+
"bs58": "^6.0.0",
|
|
96
|
+
"canonicalize": "^2.0.0",
|
|
78
97
|
"dotenv": "^17.4.1",
|
|
79
98
|
"hono": "^4.12.10",
|
|
99
|
+
"node-pty": "^1.1.0",
|
|
100
|
+
"semver": "^7.7.4",
|
|
80
101
|
"viem": "^2.0.0",
|
|
102
|
+
"ws": "^8.20.0",
|
|
81
103
|
"zod": "^3.22.0"
|
|
82
104
|
},
|
|
83
105
|
"optionalDependencies": {
|
|
84
106
|
"@coinbase/cdp-sdk": "^1.48.2"
|
|
85
107
|
},
|
|
86
108
|
"devDependencies": {
|
|
109
|
+
"@playwright/test": "^1.59.1",
|
|
87
110
|
"@types/better-sqlite3": "^7.6.0",
|
|
88
111
|
"@types/node": "^20.0.0",
|
|
112
|
+
"@types/semver": "^7.7.1",
|
|
113
|
+
"@types/ws": "^8.18.1",
|
|
89
114
|
"tsx": "^4.0.0",
|
|
90
115
|
"typescript": "^5.5.0",
|
|
91
116
|
"vitest": "^2.0.0"
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "claude-code-learner",
|
|
3
|
+
"description": "Jinn default learning restorer — runs intent restorations through a seven-phase pipeline (Orient → Strategize → Plan → Execute → Debrief → Improve → Memory consolidation) and self-improves between runs by mutating implStateDir.",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Jinn Network",
|
|
7
|
+
"url": "https://github.com/Jinn-Network/mono"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# claude-code-learner plugin (generic / Codex loader)
|
|
2
|
+
|
|
3
|
+
This plugin provides the Jinn default learning restorer for any agent harness that supports skills + subagents + hooks.
|
|
4
|
+
|
|
5
|
+
## Tool name mapping
|
|
6
|
+
|
|
7
|
+
> Names below are best-effort guidance; harness tool surfaces evolve. The canonical contract is the **capability** described in the Generic column — confirm against your harness's docs before wiring.
|
|
8
|
+
|
|
9
|
+
The skills and agents in this plugin use Claude Code tool names by default. On other harnesses, substitute equivalents:
|
|
10
|
+
|
|
11
|
+
| Claude Code | Codex | Pi.dev | Generic |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| `Skill` | `skill` | (extension load) | "load named instructions into current session" |
|
|
14
|
+
| `Agent` | `agent` | (subprocess) | "spawn fresh-context subagent with role + inputs" |
|
|
15
|
+
| `Bash` | `shell` | `bash` | shell tool |
|
|
16
|
+
| `Read`/`Write`/`Edit` | `file_read`/`file_write` | `fs` tools | filesystem |
|
|
17
|
+
| `Glob`/`Grep` | `glob`/`grep` | `fs` search | "filesystem search by pattern / content" |
|
|
18
|
+
| `Monitor` (wait) | (bespoke) | (built-in) | "block until duration/deadline/condition" |
|
|
19
|
+
|
|
20
|
+
## Entry point
|
|
21
|
+
|
|
22
|
+
Invoke the `coordinator` skill at the start of a Jinn restoration session.
|
|
23
|
+
|
|
24
|
+
## Components
|
|
25
|
+
|
|
26
|
+
See `CLAUDE.md` for the same component listing — both loaders cover the same plugin contents; this file just notes the cross-harness tool mapping.
|
|
27
|
+
|
|
28
|
+
## Spec
|
|
29
|
+
|
|
30
|
+
`docs/superpowers/specs/2026-04-23-default-learning-restorer-design.md` v1.1.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# claude-code-learner plugin (Claude Code loader)
|
|
2
|
+
|
|
3
|
+
This plugin provides the Jinn default learning restorer.
|
|
4
|
+
|
|
5
|
+
## Entry point
|
|
6
|
+
|
|
7
|
+
When a Jinn restoration session starts, invoke the `coordinator` skill via the Skill tool. It will sequence the seven-phase pipeline.
|
|
8
|
+
|
|
9
|
+
## Components
|
|
10
|
+
|
|
11
|
+
**Skills:**
|
|
12
|
+
- `coordinator` — entry point; sequences phases
|
|
13
|
+
- `orient`, `strategize`, `plan`, `execute`, `debrief`, `improve`, `memory-consolidation` — one per phase; each launches its specialized subagent
|
|
14
|
+
|
|
15
|
+
**Agents (subagents the phase skills spawn via the Agent tool):**
|
|
16
|
+
- `explorer` — info gatherer (used by orient and debrief)
|
|
17
|
+
- `strategist`, `planner`, `step-worker`, `analyst`, `promoter`, `consolidator` — one per specialized phase role
|
|
18
|
+
|
|
19
|
+
**Hooks:**
|
|
20
|
+
- `hooks/session-start` — runs once at session start; ensures `implStateDir` is a git repo and sets `claude-code-learner` author identity
|
|
21
|
+
|
|
22
|
+
## Conventions
|
|
23
|
+
|
|
24
|
+
- All durable self-modification lives in `implStateDir/**` (git-backed).
|
|
25
|
+
- Episode artifacts live under `workingDir/**`; the engine harvests `workingDir` per the kind's output contract once the coordinator returns. (Harvest is the daemon's responsibility — see `walkArtifacts` in `client/src/restorer/engine/packaging.ts`.)
|
|
26
|
+
- Subagents are one level deep only — agents do not spawn further agents.
|
|
27
|
+
- Strategize-frozen success criteria + timing posture must not change during the run.
|
|
28
|
+
|
|
29
|
+
## Spec
|
|
30
|
+
|
|
31
|
+
`docs/superpowers/specs/2026-04-23-default-learning-restorer-design.md` v1.1.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# claude-code-learner — agent harness plugin
|
|
2
|
+
|
|
3
|
+
A drop-in plugin for any agent harness that supports skills + subagents + hooks. Implements the Jinn default learning restorer end-to-end: 8 skills sequencing 7 specialized subagents through Orient → Strategize → Plan → Execute → Debrief → Improve → Memory consolidation.
|
|
4
|
+
|
|
5
|
+
## What it provides
|
|
6
|
+
|
|
7
|
+
- **8 skills** — `coordinator` (entry point) plus one per phase. Skills are thin: their job is to launch the right specialized subagent and collect results.
|
|
8
|
+
- **7 agents** — `explorer`, `strategist`, `planner`, `step-worker`, `analyst`, `promoter`, `consolidator`. These are the specialized subagents the phase skills launch in fresh contexts.
|
|
9
|
+
- **1 hook** — `hooks/session-start` initializes `implStateDir` as a git repo and sets author identity.
|
|
10
|
+
- **1 validator** — `validate-plugin.mjs` checks structure + frontmatter.
|
|
11
|
+
|
|
12
|
+
## Installing
|
|
13
|
+
|
|
14
|
+
The plugin ships inside the `@jinn-network/client` npm package under `node_modules/@jinn-network/client/plugins/claude-code-learner/`. Per harness:
|
|
15
|
+
|
|
16
|
+
**Claude Code (local development — recommended for first install):**
|
|
17
|
+
|
|
18
|
+
Use `--plugin-dir` to load the plugin for a single session without installing into Claude Code's marketplace cache:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# From a project where @jinn-network/client is a dependency:
|
|
22
|
+
PLUGIN_PATH=$(npm root)/@jinn-network/client/plugins/claude-code-learner
|
|
23
|
+
|
|
24
|
+
# Or if you installed @jinn-network/client globally:
|
|
25
|
+
PLUGIN_PATH="$(npm root -g)/@jinn-network/client/plugins/claude-code-learner"
|
|
26
|
+
|
|
27
|
+
# Validate the plugin manifest before first use:
|
|
28
|
+
claude plugin validate "$PLUGIN_PATH"
|
|
29
|
+
|
|
30
|
+
# Then for any session where you want claude-code-learner available:
|
|
31
|
+
claude --plugin-dir "$PLUGIN_PATH" [other args]
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
For a permanent install via the Claude Code marketplace, use `claude plugin install <plugin>@<marketplace>` once a marketplace listing is published. Until then, `--plugin-dir` is the supported path.
|
|
35
|
+
|
|
36
|
+
**Codex / Pi.dev / other harnesses:** consult your harness's documentation for how to point it at a local plugin directory. The plugin layout (`.claude-plugin/plugin.json` + `skills/` + `agents/` + `hooks/` + `hooks/hooks.json`) is Claude-Code-shaped; harnesses with a different convention may need an adapter.
|
|
37
|
+
|
|
38
|
+
## What the harness must provide
|
|
39
|
+
|
|
40
|
+
These are the runtime primitives the plugin assumes the harness exposes (Claude Code names; substitute equivalents on other harnesses):
|
|
41
|
+
|
|
42
|
+
- `Skill` — load a named skill into the current session
|
|
43
|
+
- `Agent` — spawn a fresh-context subagent with a role name and inputs
|
|
44
|
+
- `Bash` — for git commands and other shell calls
|
|
45
|
+
- `Read`, `Write`, `Edit`, `Glob`, `Grep` — filesystem
|
|
46
|
+
- A wait primitive — block until duration / deadline / condition (Claude Code: `Monitor`)
|
|
47
|
+
|
|
48
|
+
If the harness lacks `Skill`, `Agent`, `Bash`, or filesystem read/write/edit, the plugin will not run. The wait primitive gates time-anchored plans only — the plugin can run for `early-return` postures without it.
|
|
49
|
+
|
|
50
|
+
## What this plugin does NOT contain
|
|
51
|
+
|
|
52
|
+
- The Jinn daemon-side `RestorerImpl` shim (separate plan).
|
|
53
|
+
- Kind-specific tools (HL MCP, Polymarket, etc.) — those come from the daemon's MCP setup.
|
|
54
|
+
- `buildRestorerImpls` registration — separate plan wires the shim.
|
|
55
|
+
|
|
56
|
+
## Spec
|
|
57
|
+
|
|
58
|
+
`docs/superpowers/specs/2026-04-23-default-learning-restorer-design.md` v1.1.
|