@absol-labs/agent 0.11.0 → 0.12.0-rc.2
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/README.md +43 -51
- package/dist/capability/invocation-capability.d.ts +2 -2
- package/dist/capability/probe-capability.d.ts +225 -0
- package/dist/capability/probe-capability.d.ts.map +1 -0
- package/dist/capability/probe-capability.js +248 -0
- package/dist/capability/probe-capability.js.map +1 -0
- package/dist/cli/args.d.ts +11 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +23 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/claim.d.ts +32 -0
- package/dist/cli/commands/claim.d.ts.map +1 -1
- package/dist/cli/commands/claim.js +116 -28
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/close.d.ts.map +1 -1
- package/dist/cli/commands/close.js +35 -3
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/invoke.d.ts +2 -0
- package/dist/cli/commands/invoke.d.ts.map +1 -1
- package/dist/cli/commands/invoke.js +2 -2
- package/dist/cli/commands/invoke.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +15 -2
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/open.d.ts.map +1 -1
- package/dist/cli/commands/open.js +58 -4
- package/dist/cli/commands/open.js.map +1 -1
- package/dist/cli/commands/pay.d.ts +34 -0
- package/dist/cli/commands/pay.d.ts.map +1 -0
- package/dist/cli/commands/pay.js +479 -0
- package/dist/cli/commands/pay.js.map +1 -0
- package/dist/cli/commands/reclaim-unverified.d.ts.map +1 -1
- package/dist/cli/commands/reclaim-unverified.js +3 -2
- package/dist/cli/commands/reclaim-unverified.js.map +1 -1
- package/dist/cli/commands/reclaim.d.ts +23 -2
- package/dist/cli/commands/reclaim.d.ts.map +1 -1
- package/dist/cli/commands/reclaim.js +204 -20
- package/dist/cli/commands/reclaim.js.map +1 -1
- package/dist/cli/commands/refund.d.ts +31 -0
- package/dist/cli/commands/refund.d.ts.map +1 -0
- package/dist/cli/commands/refund.js +397 -0
- package/dist/cli/commands/refund.js.map +1 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +21 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/streams.js +8 -12
- package/dist/cli/commands/streams.js.map +1 -1
- package/dist/cli/commands/watch.d.ts.map +1 -1
- package/dist/cli/commands/watch.js +4 -1
- package/dist/cli/commands/watch.js.map +1 -1
- package/dist/cli/config.d.ts +44 -26
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +88 -38
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/context.d.ts +19 -0
- package/dist/cli/context.d.ts.map +1 -1
- package/dist/cli/deps.d.ts +53 -0
- package/dist/cli/deps.d.ts.map +1 -1
- package/dist/cli/deps.js +51 -1
- package/dist/cli/deps.js.map +1 -1
- package/dist/cli/errors.d.ts.map +1 -1
- package/dist/cli/errors.js +21 -1
- package/dist/cli/errors.js.map +1 -1
- package/dist/cli/escape-hatch.d.ts +6 -4
- package/dist/cli/escape-hatch.d.ts.map +1 -1
- package/dist/cli/escape-hatch.js +6 -2
- package/dist/cli/escape-hatch.js.map +1 -1
- package/dist/cli/listings.d.ts +18 -0
- package/dist/cli/listings.d.ts.map +1 -1
- package/dist/cli/listings.js +22 -12
- package/dist/cli/listings.js.map +1 -1
- package/dist/cli/preflight.d.ts +20 -14
- package/dist/cli/preflight.d.ts.map +1 -1
- package/dist/cli/preflight.js +34 -20
- package/dist/cli/preflight.js.map +1 -1
- package/dist/cli/privy.d.ts.map +1 -1
- package/dist/cli/privy.js +4 -2
- package/dist/cli/privy.js.map +1 -1
- package/dist/cli/progress.d.ts +13 -1
- package/dist/cli/progress.d.ts.map +1 -1
- package/dist/cli/progress.js +7 -1
- package/dist/cli/progress.js.map +1 -1
- package/dist/cli/reclaimability.d.ts +82 -0
- package/dist/cli/reclaimability.d.ts.map +1 -0
- package/dist/cli/reclaimability.js +80 -0
- package/dist/cli/reclaimability.js.map +1 -0
- package/dist/cli/run.d.ts +2 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +62 -21
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/scan-range.d.ts +2 -2
- package/dist/cli/scan-range.js +2 -2
- package/dist/cli/status.d.ts +106 -1
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +325 -44
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/wallet.d.ts +2 -2
- package/dist/cli/wallet.d.ts.map +1 -1
- package/dist/cli/wallet.js +29 -5
- package/dist/cli/wallet.js.map +1 -1
- package/dist/discovery/rate-band.d.ts +74 -0
- package/dist/discovery/rate-band.d.ts.map +1 -0
- package/dist/discovery/rate-band.js +114 -0
- package/dist/discovery/rate-band.js.map +1 -0
- package/dist/escrow-generation.d.ts +81 -0
- package/dist/escrow-generation.d.ts.map +1 -0
- package/dist/escrow-generation.js +76 -0
- package/dist/escrow-generation.js.map +1 -0
- package/dist/frameworks/agentkit.d.ts +8 -4
- package/dist/frameworks/agentkit.d.ts.map +1 -1
- package/dist/frameworks/agentkit.js +27 -10
- package/dist/frameworks/agentkit.js.map +1 -1
- package/dist/frameworks/eliza.d.ts +3 -3
- package/dist/frameworks/eliza.d.ts.map +1 -1
- package/dist/frameworks/eliza.js +15 -6
- package/dist/frameworks/eliza.js.map +1 -1
- package/dist/frameworks/langchain.d.ts.map +1 -1
- package/dist/frameworks/langchain.js +8 -0
- package/dist/frameworks/langchain.js.map +1 -1
- package/dist/gateway/caller-auth-gateway.d.ts +83 -31
- package/dist/gateway/caller-auth-gateway.d.ts.map +1 -1
- package/dist/gateway/caller-auth-gateway.js +180 -27
- package/dist/gateway/caller-auth-gateway.js.map +1 -1
- package/dist/gateway/http-server.d.ts +128 -44
- package/dist/gateway/http-server.d.ts.map +1 -1
- package/dist/gateway/http-server.js +506 -155
- package/dist/gateway/http-server.js.map +1 -1
- package/dist/gateway/probe-auth.d.ts +112 -0
- package/dist/gateway/probe-auth.d.ts.map +1 -0
- package/dist/gateway/probe-auth.js +127 -0
- package/dist/gateway/probe-auth.js.map +1 -0
- package/dist/gateway/signed-rate-bounds.d.ts +51 -0
- package/dist/gateway/signed-rate-bounds.d.ts.map +1 -0
- package/dist/gateway/signed-rate-bounds.js +94 -0
- package/dist/gateway/signed-rate-bounds.js.map +1 -0
- package/dist/gateway/x402-opener-mode.d.ts +252 -0
- package/dist/gateway/x402-opener-mode.d.ts.map +1 -0
- package/dist/gateway/x402-opener-mode.js +772 -0
- package/dist/gateway/x402-opener-mode.js.map +1 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -5
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +64 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +247 -37
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/x402-tools.d.ts +109 -0
- package/dist/mcp/x402-tools.d.ts.map +1 -0
- package/dist/mcp/x402-tools.js +554 -0
- package/dist/mcp/x402-tools.js.map +1 -0
- package/dist/network.d.ts +119 -0
- package/dist/network.d.ts.map +1 -0
- package/dist/network.js +199 -0
- package/dist/network.js.map +1 -0
- package/dist/sdk/client.d.ts +13 -0
- package/dist/sdk/client.d.ts.map +1 -1
- package/dist/sdk/client.js +15 -0
- package/dist/sdk/client.js.map +1 -1
- package/dist/sdk/invoke.d.ts +4 -0
- package/dist/sdk/invoke.d.ts.map +1 -1
- package/dist/sdk/invoke.js +2 -5
- package/dist/sdk/invoke.js.map +1 -1
- package/dist/wallet/autonomous-wallet-broker.d.ts +3 -0
- package/dist/wallet/autonomous-wallet-broker.d.ts.map +1 -1
- package/dist/wallet/autonomous-wallet-broker.js +27 -23
- package/dist/wallet/autonomous-wallet-broker.js.map +1 -1
- package/dist/wallet/autonomous-wallet-protocol.d.ts +8 -2
- package/dist/wallet/autonomous-wallet-protocol.d.ts.map +1 -1
- package/dist/wallet/autonomous-wallet-protocol.js +9 -2
- package/dist/wallet/autonomous-wallet-protocol.js.map +1 -1
- package/dist/wallet/autonomous-wallet.d.ts.map +1 -1
- package/dist/wallet/autonomous-wallet.js +3 -2
- package/dist/wallet/autonomous-wallet.js.map +1 -1
- package/dist/wallet/broker-escrows.d.ts +222 -0
- package/dist/wallet/broker-escrows.d.ts.map +1 -0
- package/dist/wallet/broker-escrows.js +36 -0
- package/dist/wallet/broker-escrows.js.map +1 -0
- package/dist/wallet/lifecycle.d.ts +21 -5
- package/dist/wallet/lifecycle.d.ts.map +1 -1
- package/dist/wallet/lifecycle.js +32 -12
- package/dist/wallet/lifecycle.js.map +1 -1
- package/dist/wallet/privy-broker-server.d.ts.map +1 -1
- package/dist/wallet/privy-broker-server.js +31 -26
- package/dist/wallet/privy-broker-server.js.map +1 -1
- package/dist/wallet/privy-session-broker.d.ts +14 -5
- package/dist/wallet/privy-session-broker.d.ts.map +1 -1
- package/dist/wallet/privy-session-broker.js +29 -17
- package/dist/wallet/privy-session-broker.js.map +1 -1
- package/dist/wallet/privy-session-provider.d.ts +3 -1
- package/dist/wallet/privy-session-provider.d.ts.map +1 -1
- package/dist/wallet/privy-session-provider.js +5 -3
- package/dist/wallet/privy-session-provider.js.map +1 -1
- package/dist/wallet/provider.d.ts.map +1 -1
- package/dist/wallet/provider.js +15 -8
- package/dist/wallet/provider.js.map +1 -1
- package/dist/x402/facilitator.d.ts +3 -30
- package/dist/x402/facilitator.d.ts.map +1 -1
- package/dist/x402/facilitator.js +0 -27
- package/dist/x402/facilitator.js.map +1 -1
- package/dist/x402-buyer/guarded-fetch.d.ts +51 -0
- package/dist/x402-buyer/guarded-fetch.d.ts.map +1 -0
- package/dist/x402-buyer/guarded-fetch.js +147 -0
- package/dist/x402-buyer/guarded-fetch.js.map +1 -0
- package/dist/x402-buyer/index.d.ts +10 -0
- package/dist/x402-buyer/index.d.ts.map +1 -0
- package/dist/x402-buyer/index.js +10 -0
- package/dist/x402-buyer/index.js.map +1 -0
- package/dist/x402-buyer/pay.d.ts +157 -0
- package/dist/x402-buyer/pay.d.ts.map +1 -0
- package/dist/x402-buyer/pay.js +366 -0
- package/dist/x402-buyer/pay.js.map +1 -0
- package/dist/x402-opener/abi.d.ts +684 -0
- package/dist/x402-opener/abi.d.ts.map +1 -0
- package/dist/x402-opener/abi.js +880 -0
- package/dist/x402-opener/abi.js.map +1 -0
- package/dist/x402-opener/facilitator-entry.d.ts +3 -0
- package/dist/x402-opener/facilitator-entry.d.ts.map +1 -0
- package/dist/x402-opener/facilitator-entry.js +40 -0
- package/dist/x402-opener/facilitator-entry.js.map +1 -0
- package/dist/x402-opener/facilitator-server.d.ts +209 -0
- package/dist/x402-opener/facilitator-server.d.ts.map +1 -0
- package/dist/x402-opener/facilitator-server.js +762 -0
- package/dist/x402-opener/facilitator-server.js.map +1 -0
- package/dist/x402-opener/index.d.ts +14 -0
- package/dist/x402-opener/index.d.ts.map +1 -0
- package/dist/x402-opener/index.js +14 -0
- package/dist/x402-opener/index.js.map +1 -0
- package/dist/x402-opener/listing-resolver.d.ts +55 -0
- package/dist/x402-opener/listing-resolver.d.ts.map +1 -0
- package/dist/x402-opener/listing-resolver.js +125 -0
- package/dist/x402-opener/listing-resolver.js.map +1 -0
- package/dist/x402-opener/refund-relay.d.ts +266 -0
- package/dist/x402-opener/refund-relay.d.ts.map +1 -0
- package/dist/x402-opener/refund-relay.js +1341 -0
- package/dist/x402-opener/refund-relay.js.map +1 -0
- package/dist/x402-opener/relayer-queue.d.ts +14 -0
- package/dist/x402-opener/relayer-queue.d.ts.map +1 -0
- package/dist/x402-opener/relayer-queue.js +18 -0
- package/dist/x402-opener/relayer-queue.js.map +1 -0
- package/dist/x402-opener/scheme.d.ts +296 -0
- package/dist/x402-opener/scheme.d.ts.map +1 -0
- package/dist/x402-opener/scheme.js +1035 -0
- package/dist/x402-opener/scheme.js.map +1 -0
- package/dist/x402-opener/terms.d.ts +165 -0
- package/dist/x402-opener/terms.d.ts.map +1 -0
- package/dist/x402-opener/terms.js +304 -0
- package/dist/x402-opener/terms.js.map +1 -0
- package/dist/zktls/reclaim.d.ts +2 -2
- package/dist/zktls/t2-delivery-proof.d.ts +6 -6
- package/docs/agent-layer.md +3 -2
- package/docs/autonomous-privy-wallet.md +188 -0
- package/docs/cli.md +265 -34
- package/docs/langchain.md +5 -0
- package/docs/mcp-reference.md +91 -5
- package/docs/probe-capability.md +191 -0
- package/docs/quickstart.md +39 -4
- package/docs/threat-model.md +20 -0
- package/docs/x402.md +766 -593
- package/package.json +19 -17
- package/src/capability/probe-capability.ts +355 -0
- package/src/cli/args.ts +29 -0
- package/src/cli/commands/claim.ts +168 -33
- package/src/cli/commands/close.ts +36 -3
- package/src/cli/commands/invoke.ts +5 -2
- package/src/cli/commands/mcp.ts +18 -2
- package/src/cli/commands/open.ts +75 -4
- package/src/cli/commands/pay.ts +584 -0
- package/src/cli/commands/reclaim-unverified.ts +8 -2
- package/src/cli/commands/reclaim.ts +277 -19
- package/src/cli/commands/refund.ts +475 -0
- package/src/cli/commands/status.ts +28 -2
- package/src/cli/commands/streams.ts +10 -14
- package/src/cli/commands/watch.ts +11 -1
- package/src/cli/config.ts +139 -52
- package/src/cli/context.ts +16 -0
- package/src/cli/deps.ts +111 -1
- package/src/cli/errors.ts +24 -1
- package/src/cli/escape-hatch.ts +19 -5
- package/src/cli/listings.ts +43 -10
- package/src/cli/preflight.ts +36 -21
- package/src/cli/privy.ts +4 -2
- package/src/cli/progress.ts +21 -2
- package/src/cli/reclaimability.ts +154 -0
- package/src/cli/run.ts +77 -21
- package/src/cli/scan-range.ts +2 -2
- package/src/cli/status.ts +454 -44
- package/src/cli/wallet.ts +45 -8
- package/src/discovery/rate-band.ts +172 -0
- package/src/escrow-generation.ts +135 -0
- package/src/frameworks/agentkit.ts +45 -11
- package/src/frameworks/eliza.ts +27 -5
- package/src/frameworks/langchain.ts +14 -0
- package/src/gateway/caller-auth-gateway.ts +320 -68
- package/src/gateway/http-server.ts +717 -220
- package/src/gateway/probe-auth.ts +191 -0
- package/src/gateway/signed-rate-bounds.ts +164 -0
- package/src/gateway/x402-opener-mode.ts +1171 -0
- package/src/index.ts +82 -19
- package/src/mcp/server.ts +351 -42
- package/src/mcp/x402-tools.ts +785 -0
- package/src/network.ts +302 -0
- package/src/sdk/client.ts +25 -0
- package/src/sdk/invoke.ts +6 -5
- package/src/wallet/autonomous-wallet-broker.ts +46 -20
- package/src/wallet/autonomous-wallet-protocol.ts +11 -2
- package/src/wallet/autonomous-wallet.ts +4 -2
- package/src/wallet/broker-escrows.ts +66 -0
- package/src/wallet/lifecycle.ts +53 -18
- package/src/wallet/privy-broker-server.ts +35 -25
- package/src/wallet/privy-session-broker.ts +58 -25
- package/src/wallet/privy-session-provider.ts +7 -3
- package/src/wallet/provider.ts +20 -15
- package/src/x402/facilitator.ts +3 -43
- package/src/x402-buyer/guarded-fetch.ts +213 -0
- package/src/x402-buyer/index.ts +9 -0
- package/src/x402-buyer/pay.ts +555 -0
- package/src/x402-opener/abi.ts +881 -0
- package/src/x402-opener/facilitator-entry.ts +48 -0
- package/src/x402-opener/facilitator-server.ts +1114 -0
- package/src/x402-opener/index.ts +13 -0
- package/src/x402-opener/listing-resolver.ts +202 -0
- package/src/x402-opener/refund-relay.ts +1873 -0
- package/src/x402-opener/relayer-queue.ts +18 -0
- package/src/x402-opener/scheme.ts +1551 -0
- package/src/x402-opener/terms.ts +453 -0
- package/dist/gateway/x402-mode.d.ts +0 -123
- package/dist/gateway/x402-mode.d.ts.map +0 -1
- package/dist/gateway/x402-mode.js +0 -212
- package/dist/gateway/x402-mode.js.map +0 -1
- package/dist/x402/delivery-oracle.d.ts +0 -108
- package/dist/x402/delivery-oracle.d.ts.map +0 -1
- package/dist/x402/delivery-oracle.js +0 -174
- package/dist/x402/delivery-oracle.js.map +0 -1
- package/dist/x402/facilitator-server-entry.d.ts +0 -3
- package/dist/x402/facilitator-server-entry.d.ts.map +0 -1
- package/dist/x402/facilitator-server-entry.js +0 -27
- package/dist/x402/facilitator-server-entry.js.map +0 -1
- package/dist/x402/facilitator-server.d.ts +0 -73
- package/dist/x402/facilitator-server.d.ts.map +0 -1
- package/dist/x402/facilitator-server.js +0 -305
- package/dist/x402/facilitator-server.js.map +0 -1
- package/dist/x402/payment-requirements.d.ts +0 -106
- package/dist/x402/payment-requirements.d.ts.map +0 -1
- package/dist/x402/payment-requirements.js +0 -138
- package/dist/x402/payment-requirements.js.map +0 -1
- package/dist/x402/relayer.d.ts +0 -41
- package/dist/x402/relayer.d.ts.map +0 -1
- package/dist/x402/relayer.js +0 -64
- package/dist/x402/relayer.js.map +0 -1
- package/dist/x402/resource-index.d.ts +0 -75
- package/dist/x402/resource-index.d.ts.map +0 -1
- package/dist/x402/resource-index.js +0 -126
- package/dist/x402/resource-index.js.map +0 -1
- package/dist/x402/verified-delivery-facilitator.d.ts +0 -285
- package/dist/x402/verified-delivery-facilitator.d.ts.map +0 -1
- package/dist/x402/verified-delivery-facilitator.js +0 -423
- package/dist/x402/verified-delivery-facilitator.js.map +0 -1
- package/src/gateway/x402-mode.ts +0 -350
- package/src/x402/delivery-oracle.ts +0 -285
- package/src/x402/facilitator-server-entry.ts +0 -35
- package/src/x402/facilitator-server.ts +0 -445
- package/src/x402/payment-requirements.ts +0 -231
- package/src/x402/relayer.ts +0 -122
- package/src/x402/resource-index.ts +0 -228
- package/src/x402/verified-delivery-facilitator.ts +0 -744
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe-capability.js","sourceRoot":"","sources":["../../src/capability/probe-capability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EACL,UAAU,EACV,SAAS,EACT,KAAK,EACL,uBAAuB,GAIxB,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,wBAAwB,CAAC,CAAC;AACjE,MAAM,aAAa,GAAG,CAAC;KACpB,MAAM,EAAE;KACR,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAChE,qBAAqB,CACtB,CAAC;AACJ,MAAM,eAAe,GAAG,CAAC;KACtB,MAAM,EAAE;KACR,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EACjE,6BAA6B,CAC9B,CAAC;AAEJ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C;;;;OAIG;IACH,UAAU,EAAE,aAAa;IACzB;;;OAGG;IACH,MAAM,EAAE,aAAa;IACrB,yDAAyD;IACzD,MAAM,EAAE,gBAAgB;IACxB,wEAAwE;IACxE,QAAQ,EAAE,aAAa;IACvB,oCAAoC;IACpC,KAAK,EAAE,aAAa;IACpB,kEAAkE;IAClE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,2BAA2B,GAAG,qBAAqB,CAAC,MAAM,CAAC;IACtE,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAC;AAaH;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,yBAAkC,CAAC;AAC5E,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAY,CAAC;AAEzD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,eAAe,EAAE;QACf,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;QAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;KACnC;CACO,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAAC;AAEvD,+DAA+D;AAC/D,MAAM,CAAC,MAAM,4BAA4B,GAAG,2BAA2B,CAAC;AAExE;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CAAC;AAEzD,MAAM,UAAU,iCAAiC,CAC/C,MAAkC;IAElC,OAAO;QACL,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,iBAAiB,EAAE,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC;KAC/C,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,sBAAsB,CAAC,UAA2B;IACzD,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACvD,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAiB;QACpC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAe;QAChC,KAAK,EAAE,MAAM,CAAC,KAAY;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,UAA2B,EAC3B,MAAkC;IAElC,OAAO;QACL,MAAM,EAAE,iCAAiC,CAAC,MAAM,CAAC;QACjD,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,iBAA0B;QACvC,OAAO,EAAE,sBAAsB,CAAC,UAAU,CAAC;KAC5C,CAAC;AACJ,CAAC;AAQD,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAA2B,EAC3B,MAAkC,EAClC,OAA8B;IAE9B,MAAM,SAAS,GAAG,6BAA6B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,UAA2B,EAC3B,MAAkC,EAClC,SAAc;IAEd,MAAM,SAAS,GAAG,6BAA6B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACpE,OAAO,uBAAuB,CAAC,EAAE,GAAG,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,kBAAkB;IAChC,OAAO,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAS,CAAC;AACvD,CAAC;AAED,MAAM,OAAO,iCAAkC,SAAQ,KAAK;IAC1D,YAAY,OAAe,EAAE,OAAsC;QACjE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,mCAAmC,CAAC;IAClD,CAAC;CACF;AAED,sFAAsF;AACtF,MAAM,UAAU,2BAA2B,CACzC,MAA6B;IAE7B,MAAM,MAAM,GAAG,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACzD,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,2BAA2B,CACzC,WAAmB;IAEnB,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,iCAAiC,CACzC,0CAA0C,EAC1C,EAAE,KAAK,EAAE,CACV,CAAC;IACJ,CAAC;IAED,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,iCAAiC,CACzC,wCAAwC,EACxC,EAAE,KAAK,EAAE,CACV,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,2BAA2B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,iCAAiC,CACzC,mCAAmC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAC1D,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAgBD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAmC;IAMnC,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,oCAAoC,CAAC;IACvE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,UAAU,GAAoB;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;QAC3C,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,kBAAkB,CAAC,EAAE;QAC9C,MAAM,EAAE,UAAU,GAAG,GAAG;KACzB,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,mBAAmB,CACzC,UAAU,EACV,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,OAAO,CAChB,CAAC;IACF,MAAM,MAAM,GAA0B,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,CAAC;IACnE,OAAO;QACL,UAAU,EAAE,4BAA4B;QACxC,WAAW,EAAE,2BAA2B,CAAC,MAAM,CAAC;QAChD,UAAU,EAAE,MAAM;KACnB,CAAC;AACJ,CAAC"}
|
package/dist/cli/args.d.ts
CHANGED
|
@@ -23,6 +23,17 @@ export declare function stringFlag(args: ParsedArgs, name: string): string | und
|
|
|
23
23
|
export declare function stringFlags(args: ParsedArgs, name: string): string[];
|
|
24
24
|
export declare function requiredStringFlag(args: ParsedArgs, name: string): string;
|
|
25
25
|
export declare function booleanFlag(args: ParsedArgs, name: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Commands whose `--json` may ALSO carry a value: a JSON request body, as in
|
|
28
|
+
* curl's `--json '<body>'`. For them a bare `--json` (or `--json=true`) still
|
|
29
|
+
* selects JSON output, and the two can be combined
|
|
30
|
+
* (`--json '{"a":1}' --json`). Every other command keeps `--json` boolean.
|
|
31
|
+
*/
|
|
32
|
+
export declare const JSON_BODY_COMMANDS: ReadonlySet<string>;
|
|
33
|
+
/** Whether `--json` OUTPUT was requested (see {@link JSON_BODY_COMMANDS}). */
|
|
34
|
+
export declare function jsonOutputRequested(args: ParsedArgs): boolean;
|
|
35
|
+
/** The `--json <body>` value(s) of a JSON-body command, if any. */
|
|
36
|
+
export declare function jsonBodyFlag(args: ParsedArgs): string | undefined;
|
|
26
37
|
export declare function integerFlag(args: ParsedArgs, name: string): number | undefined;
|
|
27
38
|
/**
|
|
28
39
|
* Rejects flags the command does not understand. A silently ignored `--budgt`
|
package/dist/cli/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;CACpE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAiD7D;AAQD,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ7E;AAED,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQpE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CASnE;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAOpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,IAAI,CAWN"}
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;CACpE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAiD7D;AAQD,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ7E;AAED,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAQpE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMzE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CASnE;AAED;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAoB,CAAC;AAExE,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAM7D;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CASjE;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CAOpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,IAAI,CAWN"}
|
package/dist/cli/args.js
CHANGED
|
@@ -94,6 +94,29 @@ export function booleanFlag(args, name) {
|
|
|
94
94
|
return false;
|
|
95
95
|
throw usageError(`--${name} takes no value (got "${value}")`);
|
|
96
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Commands whose `--json` may ALSO carry a value: a JSON request body, as in
|
|
99
|
+
* curl's `--json '<body>'`. For them a bare `--json` (or `--json=true`) still
|
|
100
|
+
* selects JSON output, and the two can be combined
|
|
101
|
+
* (`--json '{"a":1}' --json`). Every other command keeps `--json` boolean.
|
|
102
|
+
*/
|
|
103
|
+
export const JSON_BODY_COMMANDS = new Set(["pay"]);
|
|
104
|
+
/** Whether `--json` OUTPUT was requested (see {@link JSON_BODY_COMMANDS}). */
|
|
105
|
+
export function jsonOutputRequested(args) {
|
|
106
|
+
if (args.command === null || !JSON_BODY_COMMANDS.has(args.command)) {
|
|
107
|
+
return booleanFlag(args, "json");
|
|
108
|
+
}
|
|
109
|
+
const values = args.flags.get("json") ?? [];
|
|
110
|
+
return values.some((value) => value === true || value === "true");
|
|
111
|
+
}
|
|
112
|
+
/** The `--json <body>` value(s) of a JSON-body command, if any. */
|
|
113
|
+
export function jsonBodyFlag(args) {
|
|
114
|
+
const values = (args.flags.get("json") ?? []).filter((value) => typeof value === "string" && value !== "true" && value !== "false");
|
|
115
|
+
if (values.length > 1) {
|
|
116
|
+
throw usageError("--json <body> may be given only once");
|
|
117
|
+
}
|
|
118
|
+
return values[0];
|
|
119
|
+
}
|
|
97
120
|
export function integerFlag(args, name) {
|
|
98
121
|
const raw = stringFlag(args, name);
|
|
99
122
|
if (raw === undefined)
|
package/dist/cli/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import { CliError } from "../errors.js";
|
|
1
2
|
import type { CommandSpec } from "../context.js";
|
|
3
|
+
import type { CliReadClient } from "../deps.js";
|
|
4
|
+
import type { StreamV2 } from "@absol-labs/sdk";
|
|
2
5
|
/**
|
|
3
6
|
* The seller's side of the loop.
|
|
4
7
|
*
|
|
@@ -10,4 +13,33 @@ import type { CommandSpec } from "../context.js";
|
|
|
10
13
|
* learn a fact that was already available.
|
|
11
14
|
*/
|
|
12
15
|
export declare const claimCommand: CommandSpec;
|
|
16
|
+
/**
|
|
17
|
+
* Which claim, if any, `metrik claim` would send. Reads only, so it is
|
|
18
|
+
* testable (and checkable against a live stream) without a key.
|
|
19
|
+
*
|
|
20
|
+
* - `claimWithProof` pays `min(proofCumulative, deposit) − claimed` against ANY
|
|
21
|
+
* retained checkpoint root.
|
|
22
|
+
* - `claimProven` (StreamEscrowV3) pays `min(provenCumulative, deposit) −
|
|
23
|
+
* claimed` with NO proof: the high-water was itself proven against a signed
|
|
24
|
+
* root when it was recorded. It is the only way to collect proven value whose
|
|
25
|
+
* root has rotated out of the retained set, or that a later root regressed.
|
|
26
|
+
*
|
|
27
|
+
* Both are asked of the escrow (`claimableFor` at each cumulative; the escrow
|
|
28
|
+
* pays a claim with exactly that math), and the larger is chosen. A proof
|
|
29
|
+
* claim wins a tie, because it also raises the proven high-water. Nothing is
|
|
30
|
+
* chosen when both pay zero, so no gas is spent to learn `NothingToClaim`.
|
|
31
|
+
*/
|
|
32
|
+
export type ClaimPlan = {
|
|
33
|
+
readonly kind: "claimWithProof" | "claimProven";
|
|
34
|
+
/** What the operator receives, net of the protocol fee. */
|
|
35
|
+
readonly claimable: bigint;
|
|
36
|
+
/** The current proof's cumulative; `null` when no proof was available. */
|
|
37
|
+
readonly verifiedCumulative: bigint | null;
|
|
38
|
+
/** V3 proven high-water; `null` on V2 or when unreadable. */
|
|
39
|
+
readonly provenCumulative: bigint | null;
|
|
40
|
+
} | {
|
|
41
|
+
readonly kind: "nothing";
|
|
42
|
+
readonly error: CliError;
|
|
43
|
+
};
|
|
44
|
+
export declare function planClaim(read: CliReadClient, streamId: `0x${string}`, stream: Pick<StreamV2, "claimedCumulative">, escrowGeneration: string): Promise<ClaimPlan>;
|
|
13
45
|
//# sourceMappingURL=claim.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/claim.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claim.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/claim.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAA6B,MAAM,cAAc,CAAC;AASnE,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,WAyG1B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,SAAS,GACjB;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,aAAa,CAAC;IAChD,2DAA2D;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,6DAA6D;IAC7D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE3D,wBAAsB,SAAS,CAC7B,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,KAAK,MAAM,EAAE,EACvB,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAC3C,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,SAAS,CAAC,CA8FpB"}
|
|
@@ -5,6 +5,7 @@ import { signClaimMandate } from "../mandate.js";
|
|
|
5
5
|
import { assertCanPayGas } from "../preflight.js";
|
|
6
6
|
import { writeClientOptions } from "../deps.js";
|
|
7
7
|
import { isPolicyEnforced, PRIVATE_KEY_ENV, resolveCliWallet, } from "../wallet.js";
|
|
8
|
+
import { escrowGenerationFor } from "../../escrow-generation.js";
|
|
8
9
|
/**
|
|
9
10
|
* The seller's side of the loop.
|
|
10
11
|
*
|
|
@@ -43,7 +44,7 @@ export const claimCommand = {
|
|
|
43
44
|
}
|
|
44
45
|
const read = deps.createReadClient(config);
|
|
45
46
|
await assertTestnetRpc(config, () => read.getChainId());
|
|
46
|
-
await assertCanPayGas(read, account.address);
|
|
47
|
+
await assertCanPayGas(read, account.address, config.network);
|
|
47
48
|
const stream = await read.getStreamV2(streamId);
|
|
48
49
|
if (stream.operator.toLowerCase() !== account.address.toLowerCase()) {
|
|
49
50
|
throw new CliError(`wallet ${account.address} is not the operator of this stream`, {
|
|
@@ -51,30 +52,11 @@ export const claimCommand = {
|
|
|
51
52
|
hint: `only ${stream.operator} can claim it — the escrow enforces this, so no other wallet can. Set ${PRIVATE_KEY_ENV} to the operator's key. (The buyer's side of this stream is \`metrik reclaim ${streamId}\`.)`,
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
let cumulativeAmount;
|
|
58
|
-
try {
|
|
59
|
-
cumulativeAmount = (await read.checkpointProof(streamId))
|
|
60
|
-
.cumulativeAmount;
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
throw new CliError("no checkpoint covers this stream yet, so there is nothing provable to claim", {
|
|
64
|
-
exitCode: 4,
|
|
65
|
-
hint: `the oracle publishes roughly every 15-22s and pays only for intervals that verified; ${describeError(error)}`,
|
|
66
|
-
cause: error,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
const claimable = await read.claimableForV2(streamId, cumulativeAmount);
|
|
70
|
-
if (claimable === 0n) {
|
|
71
|
-
throw new CliError("this stream has nothing claimable right now", {
|
|
72
|
-
exitCode: 4,
|
|
73
|
-
hint: `everything checkpointed so far has already been claimed. See where it stands: metrik status ${streamId}`,
|
|
74
|
-
});
|
|
75
|
-
}
|
|
55
|
+
const plan = await planClaim(read, streamId, stream, escrowGenerationFor(config.chainId, config.escrow));
|
|
56
|
+
if (plan.kind === "nothing")
|
|
57
|
+
throw plan.error;
|
|
76
58
|
const write = deps.createWriteClient(config, account, writeClientOptions(wallet));
|
|
77
|
-
const
|
|
59
|
+
const action = {
|
|
78
60
|
streamId,
|
|
79
61
|
// `null` for a policy-enforced wallet — see `../spend-policy.ts`.
|
|
80
62
|
signedMandate: isPolicyEnforced(wallet)
|
|
@@ -82,21 +64,127 @@ export const claimCommand = {
|
|
|
82
64
|
: await signClaimMandate(account, config.chainId),
|
|
83
65
|
spentSoFarUsdc: 0n,
|
|
84
66
|
nowSeconds: deps.nowSeconds(),
|
|
85
|
-
}
|
|
67
|
+
};
|
|
68
|
+
let result;
|
|
69
|
+
if (plan.kind === "claimWithProof") {
|
|
70
|
+
result = await write.claimStream(action);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
if (write.claimProvenStream === undefined) {
|
|
74
|
+
throw new CliError("this write client cannot send claimProven, which is the only way to collect this stream's proven value", {
|
|
75
|
+
exitCode: 3,
|
|
76
|
+
hint: "no current checkpoint proof pays it, so a proof claim would revert NothingToClaim",
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
result = await write.claimProvenStream(action);
|
|
80
|
+
}
|
|
86
81
|
out.result({
|
|
87
82
|
streamId,
|
|
88
83
|
txHash: result.txHash,
|
|
89
84
|
operator: stream.operator,
|
|
90
|
-
claimed: claimable,
|
|
91
|
-
|
|
85
|
+
claimed: plan.claimable,
|
|
86
|
+
method: plan.kind,
|
|
87
|
+
verifiedCumulative: plan.verifiedCumulative,
|
|
88
|
+
provenCumulative: plan.provenCumulative,
|
|
92
89
|
});
|
|
93
90
|
out.print("Claimed.");
|
|
94
91
|
out.table([
|
|
95
92
|
["streamId", streamId],
|
|
96
93
|
["tx", result.txHash],
|
|
97
94
|
["operator", stream.operator],
|
|
98
|
-
["claimed", `${formatUsdc(claimable)} (net of protocol fee)`],
|
|
95
|
+
["claimed", `${formatUsdc(plan.claimable)} (net of protocol fee)`],
|
|
96
|
+
[
|
|
97
|
+
"via",
|
|
98
|
+
plan.kind === "claimWithProof"
|
|
99
|
+
? "claimWithProof (the oracle's current checkpoint proof)"
|
|
100
|
+
: `claimProven (the on-chain proven high-water, ${formatUsdc(plan.provenCumulative ?? 0n)} gross — no current checkpoint proof pays more)`,
|
|
101
|
+
],
|
|
99
102
|
]);
|
|
100
103
|
},
|
|
101
104
|
};
|
|
105
|
+
export async function planClaim(read, streamId, stream, escrowGeneration) {
|
|
106
|
+
let verifiedCumulative = null;
|
|
107
|
+
let proofError = null;
|
|
108
|
+
try {
|
|
109
|
+
verifiedCumulative = (await read.checkpointProof(streamId))
|
|
110
|
+
.cumulativeAmount;
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
proofError = error;
|
|
114
|
+
}
|
|
115
|
+
let provenCumulative = null;
|
|
116
|
+
let provenError = null;
|
|
117
|
+
if (escrowGeneration === "v3") {
|
|
118
|
+
if (read.provenCumulativeOf === undefined) {
|
|
119
|
+
provenError = "this read client cannot read provenCumulativeOf";
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
try {
|
|
123
|
+
provenCumulative = await read.provenCumulativeOf(streamId);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
provenError = describeError(error);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const [proofClaimable, provenClaimable] = await Promise.all([
|
|
131
|
+
verifiedCumulative === null
|
|
132
|
+
? 0n
|
|
133
|
+
: read.claimableForV2(streamId, verifiedCumulative),
|
|
134
|
+
// `claimProven` pays at the high-water, so it is worth asking only when
|
|
135
|
+
// the high-water is above what has already been claimed.
|
|
136
|
+
provenCumulative === null || provenCumulative <= stream.claimedCumulative
|
|
137
|
+
? 0n
|
|
138
|
+
: read.claimableForV2(streamId, provenCumulative),
|
|
139
|
+
]);
|
|
140
|
+
if (proofClaimable > 0n && proofClaimable >= provenClaimable) {
|
|
141
|
+
return {
|
|
142
|
+
kind: "claimWithProof",
|
|
143
|
+
claimable: proofClaimable,
|
|
144
|
+
verifiedCumulative,
|
|
145
|
+
provenCumulative,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
if (provenClaimable > 0n) {
|
|
149
|
+
return {
|
|
150
|
+
kind: "claimProven",
|
|
151
|
+
claimable: provenClaimable,
|
|
152
|
+
verifiedCumulative,
|
|
153
|
+
provenCumulative,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
if (provenCumulative !== null && provenCumulative > 0n) {
|
|
157
|
+
return {
|
|
158
|
+
kind: "nothing",
|
|
159
|
+
error: new CliError("this stream has nothing to claim", {
|
|
160
|
+
exitCode: 4,
|
|
161
|
+
hint: `everything proven on-chain for it (${formatUsdc(provenCumulative)} gross) has already been claimed${verifiedCumulative === null
|
|
162
|
+
? ", and the latest checkpoint no longer contains it"
|
|
163
|
+
: ""}. See where it stands: metrik status ${streamId}`,
|
|
164
|
+
}),
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
if (verifiedCumulative === null) {
|
|
168
|
+
// Accrual lives in the oracle's checkpoint proof (and, on V3, the proven
|
|
169
|
+
// high-water), never in the stream tuple. Saying so is better than paying
|
|
170
|
+
// gas for a `NothingToClaim()` revert.
|
|
171
|
+
return {
|
|
172
|
+
kind: "nothing",
|
|
173
|
+
error: new CliError("no checkpoint covers this stream yet, so there is nothing provable to claim", {
|
|
174
|
+
exitCode: 4,
|
|
175
|
+
hint: `the oracle publishes roughly every 15-22s and pays only for intervals that verified; ${describeError(proofError)}${provenError === null
|
|
176
|
+
? ""
|
|
177
|
+
: `; the on-chain proven high-water could not be read either (${provenError})`}`,
|
|
178
|
+
cause: proofError,
|
|
179
|
+
}),
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
return {
|
|
183
|
+
kind: "nothing",
|
|
184
|
+
error: new CliError("this stream has nothing claimable right now", {
|
|
185
|
+
exitCode: 4,
|
|
186
|
+
hint: `everything checkpointed so far has already been claimed. See where it stands: metrik status ${streamId}`,
|
|
187
|
+
}),
|
|
188
|
+
};
|
|
189
|
+
}
|
|
102
190
|
//# sourceMappingURL=claim.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../../../src/cli/commands/claim.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAGtB;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,yDAAyD;IAClE,KAAK,EAAE,yBAAyB;IAChC,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,IAAI;IACX,KAAK,CAAC,GAAG,CAAC,OAAuB;QAC/B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,UAAU,CAAC,oCAAoC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;YACzC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,kEAAkE;YAClE,kEAAkE;YAClE,qEAAqE;YACrE,oEAAoE;YACpE,qDAAqD;YACrD,GAAG,CAAC,IAAI,CACN,qJAAqJ,CACtJ,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"claim.js","sourceRoot":"","sources":["../../../src/cli/commands/claim.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/close.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"close.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/close.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,YAAY,EAAE,WA6F1B,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assertTestnetRpc, parseBytes32 } from "../config.js";
|
|
2
|
-
import { usageError } from "../errors.js";
|
|
2
|
+
import { CliError, usageError } from "../errors.js";
|
|
3
3
|
import { signRecoveryMandate } from "../mandate.js";
|
|
4
4
|
import { assertCanPayGas } from "../preflight.js";
|
|
5
5
|
import { writeClientOptions } from "../deps.js";
|
|
@@ -24,7 +24,27 @@ export const closeCommand = {
|
|
|
24
24
|
const { account } = wallet;
|
|
25
25
|
const read = deps.createReadClient(config);
|
|
26
26
|
await assertTestnetRpc(config, () => read.getChainId());
|
|
27
|
-
|
|
27
|
+
// An x402 opener stream is closed through the opener, by its PAYER. Say so
|
|
28
|
+
// up front: the escrow would answer anyone else with NotBuyer, and the SDK
|
|
29
|
+
// refuses a non-payer before anything is sent.
|
|
30
|
+
const stream = await read.getStreamV2(streamId).catch(() => null);
|
|
31
|
+
const opener = stream?.opener ?? null;
|
|
32
|
+
if (opener !== null && stream !== null) {
|
|
33
|
+
out.note(`x402 stream: closing through the opener ${opener}; only its payer ${stream.payer} may close it.`);
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
await assertCanPayGas(read, account.address, config.network);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (opener !== null && error instanceof CliError) {
|
|
40
|
+
throw new CliError(error.message, {
|
|
41
|
+
exitCode: error.exitCode,
|
|
42
|
+
hint: `${error.hint ?? ""} This stream was bought over x402: a payer with no gas can close it through the seller's refund relay instead — \`metrik refund ${streamId} --refund-url <url> --close\`.`.trim(),
|
|
43
|
+
cause: error,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
28
48
|
// A policy-enforced wallet signs no mandate of its own: this is a
|
|
29
49
|
// buyer-recovery action, the escrow gates it on the buyer address and the
|
|
30
50
|
// broker gates it again on `stream.buyer == wallet`. A locally self-signed
|
|
@@ -40,11 +60,23 @@ export const closeCommand = {
|
|
|
40
60
|
spentSoFarUsdc: 0n,
|
|
41
61
|
nowSeconds: deps.nowSeconds(),
|
|
42
62
|
});
|
|
43
|
-
out.result({
|
|
63
|
+
out.result({
|
|
64
|
+
streamId,
|
|
65
|
+
txHash: result.txHash,
|
|
66
|
+
closed: true,
|
|
67
|
+
opener,
|
|
68
|
+
payer: stream?.payer ?? null,
|
|
69
|
+
});
|
|
44
70
|
out.print("Stream closed.");
|
|
45
71
|
out.table([
|
|
46
72
|
["streamId", streamId],
|
|
47
73
|
["tx", result.txHash],
|
|
74
|
+
...(opener === null
|
|
75
|
+
? []
|
|
76
|
+
: [
|
|
77
|
+
["via opener", opener],
|
|
78
|
+
["payer", stream?.payer ?? "-"],
|
|
79
|
+
]),
|
|
48
80
|
]);
|
|
49
81
|
out.print("");
|
|
50
82
|
out.print(`Nothing pushes money back. Reclaim what was never earned: metrik reclaim ${streamId}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/cli/commands/close.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"close.js","sourceRoot":"","sources":["../../../src/cli/commands/close.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,mEAAmE;IAC5E,KAAK,EAAE,yBAAyB;IAChC,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,IAAI;IACX,KAAK,CAAC,GAAG,CAAC,OAAuB;QAC/B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACvC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,UAAU,CAAC,oCAAoC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAEzD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;YACzC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,2EAA2E;QAC3E,2EAA2E;QAC3E,+CAA+C;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC;QACtC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACvC,GAAG,CAAC,IAAI,CACN,2CAA2C,MAAM,oBAAoB,MAAM,CAAC,KAAK,gBAAgB,CAClG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBACjD,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE;oBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,mIAAmI,QAAQ,gCAAgC,CAAC,IAAI,EAAE;oBAC3M,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,kEAAkE;QAClE,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,4BAA4B;QAC5B,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC;YAC5C,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAClC,MAAM,EACN,OAAO,EACP,kBAAkB,CAAC,MAAM,CAAC,CAC3B,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC;YACrC,QAAQ;YACR,aAAa;YACb,cAAc,EAAE,EAAE;YAClB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;SAC9B,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC;YACT,QAAQ;YACR,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,IAAI;YACZ,MAAM;YACN,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI;SAC7B,CAAC,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC5B,GAAG,CAAC,KAAK,CAAC;YACR,CAAC,UAAU,EAAE,QAAQ,CAAC;YACtB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,GAAG,CAAC,MAAM,KAAK,IAAI;gBACjB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAE;oBACC,CAAC,YAAY,EAAE,MAAM,CAAC;oBACtB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,CAAC;iBACtB,CAAC;SACjB,CAAC,CAAC;QACH,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACd,GAAG,CAAC,KAAK,CACP,6EAA6E,QAAQ,EAAE,CACxF,CAAC;QACF,GAAG,CAAC,KAAK,CACP,0IAA0I,CAC3I,CAAC;QACF,GAAG,CAAC,KAAK,CACP,uGAAuG,CACxG,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { CommandSpec } from "../context.js";
|
|
2
2
|
export declare const invokeCommand: CommandSpec;
|
|
3
|
+
export declare function parseHeaders(raw: readonly string[]): Record<string, string>;
|
|
4
|
+
export declare function hasHeader(headers: Record<string, string>, name: string): boolean;
|
|
3
5
|
//# sourceMappingURL=invoke.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/invoke.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,aAAa,EAAE,WAkH3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/invoke.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,aAAa,EAAE,WAkH3B,CAAC;AA6BF,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAY3E;AAED,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,IAAI,EAAE,MAAM,GACX,OAAO,CAIT"}
|
|
@@ -123,7 +123,7 @@ function explainInvokeFailure(error, signer) {
|
|
|
123
123
|
}
|
|
124
124
|
return error;
|
|
125
125
|
}
|
|
126
|
-
function parseHeaders(raw) {
|
|
126
|
+
export function parseHeaders(raw) {
|
|
127
127
|
const headers = {};
|
|
128
128
|
for (const entry of raw) {
|
|
129
129
|
const separator = entry.indexOf(":");
|
|
@@ -136,7 +136,7 @@ function parseHeaders(raw) {
|
|
|
136
136
|
}
|
|
137
137
|
return headers;
|
|
138
138
|
}
|
|
139
|
-
function hasHeader(headers, name) {
|
|
139
|
+
export function hasHeader(headers, name) {
|
|
140
140
|
return Object.keys(headers).some((key) => key.toLowerCase() === name.toLowerCase());
|
|
141
141
|
}
|
|
142
142
|
//# sourceMappingURL=invoke.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/cli/commands/invoke.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/cli/commands/invoke.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AAkCjE,eAAO,MAAM,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AAkCjE,eAAO,MAAM,UAAU,EAAE,WAwExB,CAAC"}
|
package/dist/cli/commands/mcp.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { booleanFlag, stringFlag } from "../args.js";
|
|
2
2
|
import { packageVersion } from "../version.js";
|
|
3
|
-
import { CDP_ENV_VARS, PRIVATE_KEY_ENV } from "../wallet.js";
|
|
3
|
+
import { CDP_ENV_VARS, PRIVATE_KEY_ENV, PRIVY_ENV_VARS } from "../wallet.js";
|
|
4
4
|
/** The published executable an MCP host starts. Declared in `package.json#bin`. */
|
|
5
5
|
const MCP_BIN = "metrik-mcp";
|
|
6
6
|
const PACKAGE_NAME = "@absol-labs/agent";
|
|
@@ -72,6 +72,14 @@ export const mcpCommand = {
|
|
|
72
72
|
},
|
|
73
73
|
},
|
|
74
74
|
};
|
|
75
|
+
// Honesty about the one wallet source this block cannot carry. The CLI
|
|
76
|
+
// resolves a Privy wallet (step 3), but the MCP server's own resolver,
|
|
77
|
+
// `parseAgentWalletEnv()`, reads a raw key or CDP and nothing else — there
|
|
78
|
+
// is no Privy path from the environment there. Printing Privy variables
|
|
79
|
+
// into a config the server would ignore is the failure this says out loud.
|
|
80
|
+
if (PRIVY_ENV_VARS.some((variable) => (env[variable] ?? "").length > 0)) {
|
|
81
|
+
out.note(`note: this environment configures a Privy wallet, which the CLI can use but \`${MCP_BIN}\` cannot — its wallet resolver reads ${PRIVATE_KEY_ENV} or the CDP variables only. The block below therefore carries a key placeholder; give the MCP server a raw key or a CDP account.`);
|
|
82
|
+
}
|
|
75
83
|
out.result(document);
|
|
76
84
|
out.print(`Paste this into your MCP client's config (Claude Desktop: claude_desktop_config.json), then replace every <…> placeholder:`);
|
|
77
85
|
out.print("");
|
|
@@ -85,6 +93,11 @@ export const mcpCommand = {
|
|
|
85
93
|
* Wallet variables, shaped to match how the environment running this command is
|
|
86
94
|
* already configured — CDP if that is what is set, a raw key otherwise.
|
|
87
95
|
*
|
|
96
|
+
* Privy is deliberately absent: `parseAgentWalletEnv()`, which is what the MCP
|
|
97
|
+
* server resolves its wallet with, has no Privy branch. A Privy block here
|
|
98
|
+
* would print a config that cannot start the server. The command says so on
|
|
99
|
+
* stderr instead.
|
|
100
|
+
*
|
|
88
101
|
* Values are ALWAYS placeholders. `metrik` prints derived addresses and never
|
|
89
102
|
* echoes a credential, and a config block is the single most likely thing to be
|
|
90
103
|
* pasted into a chat window or an issue.
|
|
@@ -96,7 +109,7 @@ function walletEnv(env) {
|
|
|
96
109
|
return Object.fromEntries(CDP_ENV_VARS.map((variable) => [variable, `<your ${variable}>`]));
|
|
97
110
|
}
|
|
98
111
|
return {
|
|
99
|
-
[PRIVATE_KEY_ENV]: "<0x… a funded
|
|
112
|
+
[PRIVATE_KEY_ENV]: "<0x… a funded testnet key>",
|
|
100
113
|
};
|
|
101
114
|
}
|
|
102
115
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/open.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/open.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjE,eAAO,MAAM,WAAW,EAAE,WAuUzB,CAAC"}
|