@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,464 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ERC-8004 ReputationRegistry surface.
|
|
3
|
+
*
|
|
4
|
+
* Wraps the deployed canonical ReputationRegistry (vanity 0x8004…) for
|
|
5
|
+
* Jinn's evaluator-delivery feedback flow.
|
|
6
|
+
*
|
|
7
|
+
* Per DR §4.3 (`docs/superpowers/specs/2026-04-27-erc-8004-entity-model-design.md`):
|
|
8
|
+
*
|
|
9
|
+
* At evaluator-delivery settlement, the evaluator calls
|
|
10
|
+
* `giveFeedback(restorerAgentId, ...)` with a body naming the specific
|
|
11
|
+
* manifest CID / `evidenceHash` the verdict pertains to. Reputation
|
|
12
|
+
* accrues to the operator's `agentId`; the body anchors which execution
|
|
13
|
+
* the feedback is about.
|
|
14
|
+
*
|
|
15
|
+
* Canonical body convention (this module enforces it):
|
|
16
|
+
*
|
|
17
|
+
* - `feedbackURI = "manifest:<cid>"` — names the manifest being evaluated.
|
|
18
|
+
* - `feedbackHash = manifestHash` — bytes32 binds to a specific execution.
|
|
19
|
+
*
|
|
20
|
+
* The on-chain function signature uses `value: int128 / valueDecimals: uint8`
|
|
21
|
+
* (a signed fixed-point), not `score: uint8`. We expose a numeric-friendly
|
|
22
|
+
* `score` parameter on the higher-level surface and forward it as `value` here.
|
|
23
|
+
*
|
|
24
|
+
* Self-feedback guard: the contract reverts on self-feedback (caller cannot
|
|
25
|
+
* be the agent owner / approved / operator). For Jinn's typical deployment
|
|
26
|
+
* the evaluator is a different operator from the restorer, so this is a no-op;
|
|
27
|
+
* but in single-operator dev/test setups the same Safe may evaluate its own
|
|
28
|
+
* restoration. Callers are expected to catch the revert and log gracefully —
|
|
29
|
+
* the evaluator's `claimDelivery` is the authoritative settlement, so a failed
|
|
30
|
+
* `giveFeedback` is non-fatal.
|
|
31
|
+
*
|
|
32
|
+
* Two layers live here:
|
|
33
|
+
*
|
|
34
|
+
* 1. `ReputationRegistryClient` — the typed wire-level wrapper.
|
|
35
|
+
* 2. `submitEvaluatorFeedback` + `mapVerdictToScore` — the engine-side
|
|
36
|
+
* hook that maps an evaluator's verdict to a score and submits feedback.
|
|
37
|
+
*
|
|
38
|
+
* ── Restorer-agentId resolution ─────────────────────────────────────────────
|
|
39
|
+
*
|
|
40
|
+
* Resolving the restorer's `agentId` from the evaluator's perspective is
|
|
41
|
+
* deferred to `resolveAgentIdForManifest` in `./identity.js`. The hook here
|
|
42
|
+
* takes `restorerAgentId` as a direct input. The two natural resolution paths:
|
|
43
|
+
*
|
|
44
|
+
* (b) subgraph query: `Operator { agentId } where executions_some: { manifestHash: <evidenceHash> }`
|
|
45
|
+
* (c) on-chain scan of `IdentityRegistry.Registered` events for the
|
|
46
|
+
* restorer's Safe (`getAgentByWallet` is not exposed on-chain).
|
|
47
|
+
*
|
|
48
|
+
* Subgraph (b) is the cheapest and aligns with the rest of the discovery
|
|
49
|
+
* surface; (c) is the fallback when the subgraph is unavailable.
|
|
50
|
+
*
|
|
51
|
+
* ── Score-mapping policy ─────────────────────────────────────────────────────
|
|
52
|
+
*
|
|
53
|
+
* The portfolio.v0 evaluator emits a `verdict ∈ {PASS, FAIL, INDETERMINATE,
|
|
54
|
+
* REJECTED}` plus a numeric Calmar score (string). The reputation registry
|
|
55
|
+
* takes a signed fixed-point. The mapping policy below is intentionally
|
|
56
|
+
* conservative:
|
|
57
|
+
*
|
|
58
|
+
* - PASS → score = 100, scoreDecimals = 2 (= 1.00) → submit feedback.
|
|
59
|
+
* - FAIL → score = 0, scoreDecimals = 2 (= 0.00) → submit feedback.
|
|
60
|
+
* - REJECTED → no feedback. The restorer was not eligible to attempt
|
|
61
|
+
* this intent (e.g. minClosedTrades unmet); a 0-score
|
|
62
|
+
* feedback would unfairly tarnish their reputation for a
|
|
63
|
+
* structural mismatch, not a quality failure.
|
|
64
|
+
* - INDETERMINATE → no feedback. The evaluator could not rederive
|
|
65
|
+
* (HL unreachable, post-snapshot funding accrual not
|
|
66
|
+
* settled). Not a verdict on the restorer.
|
|
67
|
+
*
|
|
68
|
+
* If the impl emits a numeric score in `[0, 1]` separate from verdict, the
|
|
69
|
+
* caller should pre-multiply it by 100 and pass `scoreDecimals=2`.
|
|
70
|
+
*
|
|
71
|
+
* Address constants (cross-checked against `subgraph/networks.json` and
|
|
72
|
+
* `client/src/earning/contracts.ts` IdentityRegistry entries):
|
|
73
|
+
*
|
|
74
|
+
* Base mainnet 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63
|
|
75
|
+
* Base Sepolia 0x8004B663056A597Dffe9eCcC1965A193B7388713
|
|
76
|
+
* Ethereum 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63
|
|
77
|
+
* Sepolia 0x8004B663056A597Dffe9eCcC1965A193B7388713
|
|
78
|
+
*/
|
|
79
|
+
import { encodeFunctionData, } from 'viem';
|
|
80
|
+
import { executeSafeTransaction } from '../adapters/mech/safe.js';
|
|
81
|
+
import { waitForTransactionReceiptWithRetry } from '../tx-retry.js';
|
|
82
|
+
import { REPUTATION_REGISTRY_ABI } from './abis.js';
|
|
83
|
+
import { REPUTATION_REGISTRY_ADDRESSES, getReputationRegistryAddress, } from './addresses.js';
|
|
84
|
+
// Re-exports so callers that imported these directly from the reputation
|
|
85
|
+
// module continue to work without touching `./abis.js` / `./addresses.js`.
|
|
86
|
+
export { REPUTATION_REGISTRY_ABI, REPUTATION_REGISTRY_ADDRESSES, getReputationRegistryAddress, };
|
|
87
|
+
// ── Helpers ─────────────────────────────────────────────────────────────────
|
|
88
|
+
const ZERO_HASH = '0x0000000000000000000000000000000000000000000000000000000000000000';
|
|
89
|
+
function toInt128(value) {
|
|
90
|
+
const v = typeof value === 'bigint' ? value : BigInt(Math.trunc(value));
|
|
91
|
+
// `int128` range: [-2^127, 2^127-1]. The contract additionally bounds
|
|
92
|
+
// |value| <= 1e38 (well inside int128). We don't enforce 1e38 here — the
|
|
93
|
+
// contract reverts on overflow with "value too large" and the caller can
|
|
94
|
+
// handle that uniformly with other reverts.
|
|
95
|
+
return v;
|
|
96
|
+
}
|
|
97
|
+
// ── ReputationRegistryClient ────────────────────────────────────────────────
|
|
98
|
+
export class ReputationRegistryClient {
|
|
99
|
+
publicClient;
|
|
100
|
+
walletClient;
|
|
101
|
+
contractAddress;
|
|
102
|
+
safeAddress;
|
|
103
|
+
constructor(config) {
|
|
104
|
+
this.publicClient = config.publicClient;
|
|
105
|
+
this.walletClient = config.walletClient;
|
|
106
|
+
this.contractAddress = config.reputationRegistryAddress;
|
|
107
|
+
this.safeAddress = config.safeAddress;
|
|
108
|
+
}
|
|
109
|
+
// ── Write paths ──────────────────────────────────────────────────────────
|
|
110
|
+
/**
|
|
111
|
+
* Submit feedback on a restorer's agent NFT. The body identifies the
|
|
112
|
+
* manifest being evaluated via `feedbackURI = "manifest:<cid>"` and
|
|
113
|
+
* `feedbackHash = manifestHash` (the evidenceHash committed in
|
|
114
|
+
* `claimDelivery`).
|
|
115
|
+
*
|
|
116
|
+
* Reverts (caught upstream and logged):
|
|
117
|
+
* - "Self-feedback not allowed" — caller is owner/approved/operator of agentId.
|
|
118
|
+
* - "ERC721NonexistentToken" — agentId does not exist.
|
|
119
|
+
* - "value too large" — |score| > 1e38.
|
|
120
|
+
* - "too many decimals" — scoreDecimals > 18.
|
|
121
|
+
*/
|
|
122
|
+
async giveFeedback(args) {
|
|
123
|
+
if (!this.walletClient) {
|
|
124
|
+
throw new Error('giveFeedback: walletClient required for write operations');
|
|
125
|
+
}
|
|
126
|
+
const value = toInt128(args.score);
|
|
127
|
+
const calldata = encodeFunctionData({
|
|
128
|
+
abi: REPUTATION_REGISTRY_ABI,
|
|
129
|
+
functionName: 'giveFeedback',
|
|
130
|
+
args: [
|
|
131
|
+
args.restorerAgentId,
|
|
132
|
+
value,
|
|
133
|
+
args.scoreDecimals,
|
|
134
|
+
args.tag1 ?? '',
|
|
135
|
+
args.tag2 ?? '',
|
|
136
|
+
args.endpoint ?? '',
|
|
137
|
+
args.manifestRef,
|
|
138
|
+
args.manifestHash,
|
|
139
|
+
],
|
|
140
|
+
});
|
|
141
|
+
return this.sendWrite(calldata);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Operator-facing: respond to a feedback on your own agent NFT.
|
|
145
|
+
* `msg.sender` becomes the responder; any address may call (the contract
|
|
146
|
+
* does not gate by ownership — multiple parties can append responses).
|
|
147
|
+
*/
|
|
148
|
+
async respondToFeedback(args) {
|
|
149
|
+
if (!this.walletClient) {
|
|
150
|
+
throw new Error('respondToFeedback: walletClient required for write operations');
|
|
151
|
+
}
|
|
152
|
+
const calldata = encodeFunctionData({
|
|
153
|
+
abi: REPUTATION_REGISTRY_ABI,
|
|
154
|
+
functionName: 'appendResponse',
|
|
155
|
+
args: [
|
|
156
|
+
args.feedbackId.agentId,
|
|
157
|
+
args.feedbackId.client,
|
|
158
|
+
args.feedbackId.feedbackIndex,
|
|
159
|
+
args.responseURI,
|
|
160
|
+
args.responseHash,
|
|
161
|
+
],
|
|
162
|
+
});
|
|
163
|
+
return this.sendWrite(calldata);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Revoke previously-given feedback. The contract only allows the original
|
|
167
|
+
* caller (`msg.sender` on the original `giveFeedback`) to revoke; mirrored
|
|
168
|
+
* here by the routing decision in `sendWrite` (Safe vs EOA).
|
|
169
|
+
*/
|
|
170
|
+
async revokeFeedback(args) {
|
|
171
|
+
if (!this.walletClient) {
|
|
172
|
+
throw new Error('revokeFeedback: walletClient required for write operations');
|
|
173
|
+
}
|
|
174
|
+
const calldata = encodeFunctionData({
|
|
175
|
+
abi: REPUTATION_REGISTRY_ABI,
|
|
176
|
+
functionName: 'revokeFeedback',
|
|
177
|
+
args: [args.agentId, args.feedbackIndex],
|
|
178
|
+
});
|
|
179
|
+
return this.sendWrite(calldata);
|
|
180
|
+
}
|
|
181
|
+
// ── Read paths ───────────────────────────────────────────────────────────
|
|
182
|
+
async readFeedback(args) {
|
|
183
|
+
try {
|
|
184
|
+
const result = (await this.publicClient.readContract({
|
|
185
|
+
address: this.contractAddress,
|
|
186
|
+
abi: REPUTATION_REGISTRY_ABI,
|
|
187
|
+
functionName: 'readFeedback',
|
|
188
|
+
args: [args.agentId, args.clientAddress, args.feedbackIndex],
|
|
189
|
+
}));
|
|
190
|
+
const [value, valueDecimals, tag1, tag2, isRevoked] = result;
|
|
191
|
+
return {
|
|
192
|
+
agentId: args.agentId,
|
|
193
|
+
client: args.clientAddress,
|
|
194
|
+
feedbackIndex: args.feedbackIndex,
|
|
195
|
+
score: value,
|
|
196
|
+
scoreDecimals: valueDecimals,
|
|
197
|
+
tag1: tag1 || undefined,
|
|
198
|
+
tag2: tag2 || undefined,
|
|
199
|
+
revoked: isRevoked,
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
catch (err) {
|
|
203
|
+
// The contract reverts with "index out of bounds" / "index must be > 0"
|
|
204
|
+
// when the row does not exist; surface as null rather than throwing.
|
|
205
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
206
|
+
if (msg.includes('out of bounds') || msg.includes('index must be > 0')) {
|
|
207
|
+
return null;
|
|
208
|
+
}
|
|
209
|
+
throw err;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Read all feedback for an agentId. By default, queries every known client
|
|
214
|
+
* (the contract walks `_clients[agentId]` when `clientAddresses=[]` is
|
|
215
|
+
* passed — confirmed in the .sol, line ~268). Pass an explicit
|
|
216
|
+
* `clientAddresses` filter to narrow.
|
|
217
|
+
*/
|
|
218
|
+
async readAllFeedback(agentId, opts = {}) {
|
|
219
|
+
const result = (await this.publicClient.readContract({
|
|
220
|
+
address: this.contractAddress,
|
|
221
|
+
abi: REPUTATION_REGISTRY_ABI,
|
|
222
|
+
functionName: 'readAllFeedback',
|
|
223
|
+
args: [
|
|
224
|
+
agentId,
|
|
225
|
+
opts.clientAddresses ?? [],
|
|
226
|
+
opts.tag1Filter ?? '',
|
|
227
|
+
opts.tag2Filter ?? '',
|
|
228
|
+
opts.includeRevoked ?? false,
|
|
229
|
+
],
|
|
230
|
+
}));
|
|
231
|
+
const [clients, feedbackIndexes, values, valueDecimals, tag1s, tag2s, revokedStatuses] = result;
|
|
232
|
+
const records = [];
|
|
233
|
+
for (let i = 0; i < clients.length; i++) {
|
|
234
|
+
records.push({
|
|
235
|
+
agentId,
|
|
236
|
+
client: clients[i],
|
|
237
|
+
feedbackIndex: feedbackIndexes[i],
|
|
238
|
+
score: values[i],
|
|
239
|
+
scoreDecimals: valueDecimals[i],
|
|
240
|
+
tag1: tag1s[i] || undefined,
|
|
241
|
+
tag2: tag2s[i] || undefined,
|
|
242
|
+
revoked: revokedStatuses[i],
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
return records;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Compute a summary across the supplied client addresses (or fail loudly —
|
|
249
|
+
* the on-chain `getSummary` reverts when called with an empty list, by
|
|
250
|
+
* design, to force callers to be explicit about which feedback sources
|
|
251
|
+
* they trust).
|
|
252
|
+
*
|
|
253
|
+
* Pass the result of `getClients(agentId)` to get a "summary across all
|
|
254
|
+
* known clients" — Jinn's typical surface.
|
|
255
|
+
*/
|
|
256
|
+
async getSummary(agentId, opts) {
|
|
257
|
+
if (opts.clientAddresses.length === 0) {
|
|
258
|
+
throw new Error('getSummary: clientAddresses must be non-empty (contract reverts otherwise)');
|
|
259
|
+
}
|
|
260
|
+
const result = (await this.publicClient.readContract({
|
|
261
|
+
address: this.contractAddress,
|
|
262
|
+
abi: REPUTATION_REGISTRY_ABI,
|
|
263
|
+
functionName: 'getSummary',
|
|
264
|
+
args: [agentId, opts.clientAddresses, opts.tag1Filter ?? '', opts.tag2Filter ?? ''],
|
|
265
|
+
}));
|
|
266
|
+
const [count, summaryValue, summaryValueDecimals] = result;
|
|
267
|
+
return { count, summaryValue, summaryValueDecimals };
|
|
268
|
+
}
|
|
269
|
+
/** All addresses that have ever submitted feedback for this agentId. */
|
|
270
|
+
async getClients(agentId) {
|
|
271
|
+
const result = (await this.publicClient.readContract({
|
|
272
|
+
address: this.contractAddress,
|
|
273
|
+
abi: REPUTATION_REGISTRY_ABI,
|
|
274
|
+
functionName: 'getClients',
|
|
275
|
+
args: [agentId],
|
|
276
|
+
}));
|
|
277
|
+
return [...result];
|
|
278
|
+
}
|
|
279
|
+
/** Latest feedback index this client has submitted for `agentId`, or 0. */
|
|
280
|
+
async getLastIndex(agentId, clientAddress) {
|
|
281
|
+
const result = (await this.publicClient.readContract({
|
|
282
|
+
address: this.contractAddress,
|
|
283
|
+
abi: REPUTATION_REGISTRY_ABI,
|
|
284
|
+
functionName: 'getLastIndex',
|
|
285
|
+
args: [agentId, clientAddress],
|
|
286
|
+
}));
|
|
287
|
+
// result is uint64; widening to bigint is safe.
|
|
288
|
+
return result;
|
|
289
|
+
}
|
|
290
|
+
// ── Internal ─────────────────────────────────────────────────────────────
|
|
291
|
+
/**
|
|
292
|
+
* Send a write tx, routing through the Safe when configured.
|
|
293
|
+
*
|
|
294
|
+
* Mirrors `ClaimRegistryClient` and `mech/contracts.ts`: production calls
|
|
295
|
+
* route through the Safe so `msg.sender` is the operator's canonical
|
|
296
|
+
* identity (matching the OLAS staking + 8004 IdentityRegistry agent NFT
|
|
297
|
+
* binding). Tests and one-off scripts can omit `safeAddress` and write
|
|
298
|
+
* directly from the EOA.
|
|
299
|
+
*
|
|
300
|
+
* `_unused` is reserved for value-bearing writes if any are added later;
|
|
301
|
+
* none of the Reputation surfaces are payable, so we always send 0.
|
|
302
|
+
*/
|
|
303
|
+
async sendWrite(calldata) {
|
|
304
|
+
const walletClient = this.walletClient;
|
|
305
|
+
if (this.safeAddress) {
|
|
306
|
+
return executeSafeTransaction(this.publicClient, walletClient, {
|
|
307
|
+
safeAddress: this.safeAddress,
|
|
308
|
+
to: this.contractAddress,
|
|
309
|
+
value: 0n,
|
|
310
|
+
data: calldata,
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
const account = walletClient.account;
|
|
314
|
+
if (!account) {
|
|
315
|
+
throw new Error('sendWrite: walletClient has no account (and no safeAddress configured)');
|
|
316
|
+
}
|
|
317
|
+
// Direct EOA path — used by tests and ad-hoc scripts. Production wires
|
|
318
|
+
// safeAddress so this branch is rarely hit on real chains.
|
|
319
|
+
const txHash = await walletClient.sendTransaction({
|
|
320
|
+
account,
|
|
321
|
+
to: this.contractAddress,
|
|
322
|
+
data: calldata,
|
|
323
|
+
value: 0n,
|
|
324
|
+
// viem requires the chain to be specified; we resolve it from the
|
|
325
|
+
// public client's configured chain to avoid double-config drift.
|
|
326
|
+
chain: walletClient.chain ?? null,
|
|
327
|
+
});
|
|
328
|
+
await waitForTransactionReceiptWithRetry(this.publicClient, txHash);
|
|
329
|
+
return txHash;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
// Re-export ZERO_HASH for callers that need a sentinel filehash. Marked
|
|
333
|
+
// `as const` is unnecessary — the type is already a literal Hex.
|
|
334
|
+
export { ZERO_HASH };
|
|
335
|
+
/**
|
|
336
|
+
* Pure function: map a verdict to (score, scoreDecimals). Returns `null` for
|
|
337
|
+
* verdicts that should not produce on-chain feedback (REJECTED, INDETERMINATE)
|
|
338
|
+
* — see policy comment at the top of the module.
|
|
339
|
+
*
|
|
340
|
+
* Exported so tests pin the policy directly.
|
|
341
|
+
*/
|
|
342
|
+
export function mapVerdictToScore(verdict) {
|
|
343
|
+
switch (verdict) {
|
|
344
|
+
case 'PASS':
|
|
345
|
+
// 1.00 — full pass.
|
|
346
|
+
return { score: 100, scoreDecimals: 2 };
|
|
347
|
+
case 'FAIL':
|
|
348
|
+
// 0.00 — quality failure; tarnishes the operator's reputation.
|
|
349
|
+
return { score: 0, scoreDecimals: 2 };
|
|
350
|
+
case 'REJECTED':
|
|
351
|
+
case 'INDETERMINATE':
|
|
352
|
+
// No feedback — see top-of-module policy comment.
|
|
353
|
+
return null;
|
|
354
|
+
default: {
|
|
355
|
+
// Defensive: unrecognised verdict → no feedback. Future verdicts that
|
|
356
|
+
// should emit feedback need an explicit case here; defaulting to "no
|
|
357
|
+
// feedback" is the safe path so we never silently apply a wrong score.
|
|
358
|
+
const exhaustive = verdict;
|
|
359
|
+
void exhaustive;
|
|
360
|
+
return null;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Submit feedback on the restorer's agent NFT. The body is the canonical
|
|
366
|
+
* `manifest:<cid>` URI + `evidenceHash` — the subgraph parses these to
|
|
367
|
+
* synthesize an `Execution` row joined to the operator.
|
|
368
|
+
*
|
|
369
|
+
* Errors are caught and returned as `{ kind: 'failed', ... }` — callers
|
|
370
|
+
* (the engine's deliver path) should log the outcome but never let it
|
|
371
|
+
* propagate. The on-chain `claimDelivery` already settled.
|
|
372
|
+
*
|
|
373
|
+
* Self-feedback (caller is owner/approved/operator of `restorerAgentId`)
|
|
374
|
+
* reverts on chain with a known string; we surface that as a graceful
|
|
375
|
+
* `{ kind: 'skipped', reason: 'self-feedback' }`.
|
|
376
|
+
*/
|
|
377
|
+
export async function submitEvaluatorFeedback(args) {
|
|
378
|
+
const { registry, ref, verdict } = args;
|
|
379
|
+
const log = args.log ?? defaultLog;
|
|
380
|
+
const mapped = mapVerdictToScore(verdict.verdict);
|
|
381
|
+
if (!mapped) {
|
|
382
|
+
log({
|
|
383
|
+
level: 'info',
|
|
384
|
+
msg: `[reputation] skipping giveFeedback for verdict=${verdict.verdict} (policy: no on-chain feedback)`,
|
|
385
|
+
data: { restorerAgentId: ref.restorerAgentId.toString(), verdict: verdict.verdict },
|
|
386
|
+
});
|
|
387
|
+
return { kind: 'skipped', reason: 'verdict-not-eligible' };
|
|
388
|
+
}
|
|
389
|
+
const giveArgs = {
|
|
390
|
+
restorerAgentId: ref.restorerAgentId,
|
|
391
|
+
score: mapped.score,
|
|
392
|
+
scoreDecimals: mapped.scoreDecimals,
|
|
393
|
+
manifestRef: `manifest:${ref.restorerManifestCid}`,
|
|
394
|
+
manifestHash: ref.restorerEvidenceHash,
|
|
395
|
+
...(verdict.kind ? { tag1: verdict.kind } : {}),
|
|
396
|
+
...(verdict.tag2 ? { tag2: verdict.tag2 } : {}),
|
|
397
|
+
};
|
|
398
|
+
try {
|
|
399
|
+
const txHash = await registry.giveFeedback(giveArgs);
|
|
400
|
+
log({
|
|
401
|
+
level: 'info',
|
|
402
|
+
msg: '[reputation] giveFeedback submitted',
|
|
403
|
+
data: {
|
|
404
|
+
restorerAgentId: ref.restorerAgentId.toString(),
|
|
405
|
+
verdict: verdict.verdict,
|
|
406
|
+
score: mapped.score,
|
|
407
|
+
scoreDecimals: mapped.scoreDecimals,
|
|
408
|
+
manifestCid: ref.restorerManifestCid,
|
|
409
|
+
txHash,
|
|
410
|
+
},
|
|
411
|
+
});
|
|
412
|
+
return { kind: 'submitted', txHash };
|
|
413
|
+
}
|
|
414
|
+
catch (err) {
|
|
415
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
416
|
+
// Self-feedback guard: contract reverts with "Self-feedback not allowed"
|
|
417
|
+
// when the evaluator EOA/Safe is the owner/approved/operator of the
|
|
418
|
+
// restorer's agentId. This is structurally possible in single-operator
|
|
419
|
+
// dev setups; treat as a graceful skip.
|
|
420
|
+
if (msg.includes('Self-feedback not allowed')) {
|
|
421
|
+
log({
|
|
422
|
+
level: 'warn',
|
|
423
|
+
msg: '[reputation] giveFeedback skipped: evaluator is the restorer (self-feedback guard)',
|
|
424
|
+
data: { restorerAgentId: ref.restorerAgentId.toString() },
|
|
425
|
+
});
|
|
426
|
+
return { kind: 'skipped', reason: 'self-feedback' };
|
|
427
|
+
}
|
|
428
|
+
// Agent doesn't exist on chain. The contract reverts with the canonical
|
|
429
|
+
// ERC-721 error; surface as a graceful skip — the restorer hasn't yet
|
|
430
|
+
// minted (or we're querying the wrong chain).
|
|
431
|
+
if (msg.includes('ERC721NonexistentToken') || msg.includes('nonexistent')) {
|
|
432
|
+
log({
|
|
433
|
+
level: 'warn',
|
|
434
|
+
msg: '[reputation] giveFeedback skipped: restorer agentId not minted',
|
|
435
|
+
data: { restorerAgentId: ref.restorerAgentId.toString() },
|
|
436
|
+
});
|
|
437
|
+
return { kind: 'skipped', reason: 'agent-not-found' };
|
|
438
|
+
}
|
|
439
|
+
// Anything else: log warn (NOT error — the evaluator's claimDelivery
|
|
440
|
+
// already landed), surface as `failed` for tests/observability.
|
|
441
|
+
log({
|
|
442
|
+
level: 'warn',
|
|
443
|
+
msg: '[reputation] giveFeedback failed (non-fatal); claimDelivery already authoritative',
|
|
444
|
+
data: {
|
|
445
|
+
restorerAgentId: ref.restorerAgentId.toString(),
|
|
446
|
+
error: msg,
|
|
447
|
+
},
|
|
448
|
+
});
|
|
449
|
+
return { kind: 'failed', error: msg };
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
// ── Local helpers ───────────────────────────────────────────────────────────
|
|
453
|
+
function defaultLog(entry) {
|
|
454
|
+
if (entry.level === 'error') {
|
|
455
|
+
console.error(entry.msg, entry.data ?? '');
|
|
456
|
+
}
|
|
457
|
+
else if (entry.level === 'warn') {
|
|
458
|
+
console.warn(entry.msg, entry.data ?? '');
|
|
459
|
+
}
|
|
460
|
+
else {
|
|
461
|
+
console.log(entry.msg, entry.data ?? '');
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
//# sourceMappingURL=reputation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reputation.js","sourceRoot":"","sources":["../../src/erc8004/reputation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subgraph client — stub.
|
|
3
|
+
*
|
|
4
|
+
* The real Jinn-specific subgraph (operator-rooted ERC-8004, synthesized
|
|
5
|
+
* `Operator`/`Execution` entities) is rebuilt under bead `jinn-mono-fud` per
|
|
6
|
+
* docs/superpowers/specs/2026-04-27-erc-8004-entity-model-design.md. The
|
|
7
|
+
* previous V1 schema (`Intent`, `ExecutionEnvelope`, `SourceBundle`,
|
|
8
|
+
* `Artifact`, `KnowledgeTree`, etc.) was a category error against the deployed
|
|
9
|
+
* `0x8004…` registries — see the design record §2.
|
|
10
|
+
*
|
|
11
|
+
* This stub keeps the surface that `daemon.ts` calls during peer-discovery /
|
|
12
|
+
* remote-artifact backfill so the daemon compiles and runs without ERC-8004
|
|
13
|
+
* registration. All queries return empty results until the new subgraph
|
|
14
|
+
* lands. No new ABIs are introduced here.
|
|
15
|
+
*/
|
|
16
|
+
export interface SubgraphConfig {
|
|
17
|
+
url: string;
|
|
18
|
+
}
|
|
19
|
+
export interface SubgraphResult {
|
|
20
|
+
id: string;
|
|
21
|
+
agentURI: string;
|
|
22
|
+
owner: string;
|
|
23
|
+
metadata: Array<{
|
|
24
|
+
key: string;
|
|
25
|
+
value: string;
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Parse a metadata value from a SubgraphResult by key. Retained for
|
|
30
|
+
* backward compatibility with daemon.ts.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getMetadataValue(result: SubgraphResult, key: string): string | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* Stubbed artifact discovery query. Returns no rows until the rebuilt
|
|
35
|
+
* Jinn subgraph (jinn-mono-fud) ships.
|
|
36
|
+
*/
|
|
37
|
+
export declare function queryArtifacts(_config: SubgraphConfig, _filters?: {
|
|
38
|
+
outcome?: string;
|
|
39
|
+
owner?: string;
|
|
40
|
+
limit?: number;
|
|
41
|
+
}): Promise<SubgraphResult[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Stubbed peer-node discovery query. Returns no rows until the rebuilt
|
|
44
|
+
* Jinn subgraph (jinn-mono-fud) ships.
|
|
45
|
+
*/
|
|
46
|
+
export declare function queryNodes(_config: SubgraphConfig, _limit?: number): Promise<SubgraphResult[]>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subgraph client — stub.
|
|
3
|
+
*
|
|
4
|
+
* The real Jinn-specific subgraph (operator-rooted ERC-8004, synthesized
|
|
5
|
+
* `Operator`/`Execution` entities) is rebuilt under bead `jinn-mono-fud` per
|
|
6
|
+
* docs/superpowers/specs/2026-04-27-erc-8004-entity-model-design.md. The
|
|
7
|
+
* previous V1 schema (`Intent`, `ExecutionEnvelope`, `SourceBundle`,
|
|
8
|
+
* `Artifact`, `KnowledgeTree`, etc.) was a category error against the deployed
|
|
9
|
+
* `0x8004…` registries — see the design record §2.
|
|
10
|
+
*
|
|
11
|
+
* This stub keeps the surface that `daemon.ts` calls during peer-discovery /
|
|
12
|
+
* remote-artifact backfill so the daemon compiles and runs without ERC-8004
|
|
13
|
+
* registration. All queries return empty results until the new subgraph
|
|
14
|
+
* lands. No new ABIs are introduced here.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Parse a metadata value from a SubgraphResult by key. Retained for
|
|
18
|
+
* backward compatibility with daemon.ts.
|
|
19
|
+
*/
|
|
20
|
+
export function getMetadataValue(result, key) {
|
|
21
|
+
return result.metadata.find((m) => m.key === key)?.value;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Stubbed artifact discovery query. Returns no rows until the rebuilt
|
|
25
|
+
* Jinn subgraph (jinn-mono-fud) ships.
|
|
26
|
+
*/
|
|
27
|
+
export async function queryArtifacts(_config, _filters) {
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Stubbed peer-node discovery query. Returns no rows until the rebuilt
|
|
32
|
+
* Jinn subgraph (jinn-mono-fud) ships.
|
|
33
|
+
*/
|
|
34
|
+
export async function queryNodes(_config, _limit) {
|
|
35
|
+
return [];
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=subgraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../src/erc8004/subgraph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAaH;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAsB,EAAE,GAAW;IAClE,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAuB,EACvB,QAA+D;IAE/D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAuB,EACvB,MAAe;IAEf,OAAO,EAAE,CAAC;AACZ,CAAC"}
|