@absol-labs/agent 0.9.0 → 0.10.0

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.
Files changed (216) hide show
  1. package/README.md +77 -3
  2. package/dist/cli/amounts.d.ts +26 -0
  3. package/dist/cli/amounts.d.ts.map +1 -0
  4. package/dist/cli/amounts.js +71 -0
  5. package/dist/cli/amounts.js.map +1 -0
  6. package/dist/cli/args.d.ts +32 -0
  7. package/dist/cli/args.d.ts.map +1 -0
  8. package/dist/cli/args.js +119 -0
  9. package/dist/cli/args.js.map +1 -0
  10. package/dist/cli/attesters.d.ts +51 -0
  11. package/dist/cli/attesters.d.ts.map +1 -0
  12. package/dist/cli/attesters.js +58 -0
  13. package/dist/cli/attesters.js.map +1 -0
  14. package/dist/cli/bin.d.ts +3 -0
  15. package/dist/cli/bin.d.ts.map +1 -0
  16. package/dist/cli/bin.js +5 -0
  17. package/dist/cli/bin.js.map +1 -0
  18. package/dist/cli/commands/claim.d.ts +13 -0
  19. package/dist/cli/commands/claim.d.ts.map +1 -0
  20. package/dist/cli/commands/claim.js +86 -0
  21. package/dist/cli/commands/claim.js.map +1 -0
  22. package/dist/cli/commands/close.d.ts +3 -0
  23. package/dist/cli/commands/close.d.ts.map +1 -0
  24. package/dist/cli/commands/close.js +43 -0
  25. package/dist/cli/commands/close.js.map +1 -0
  26. package/dist/cli/commands/discover.d.ts +3 -0
  27. package/dist/cli/commands/discover.d.ts.map +1 -0
  28. package/dist/cli/commands/discover.js +183 -0
  29. package/dist/cli/commands/discover.js.map +1 -0
  30. package/dist/cli/commands/invoke.d.ts +3 -0
  31. package/dist/cli/commands/invoke.d.ts.map +1 -0
  32. package/dist/cli/commands/invoke.js +141 -0
  33. package/dist/cli/commands/invoke.js.map +1 -0
  34. package/dist/cli/commands/mcp.d.ts +3 -0
  35. package/dist/cli/commands/mcp.d.ts.map +1 -0
  36. package/dist/cli/commands/mcp.js +113 -0
  37. package/dist/cli/commands/mcp.js.map +1 -0
  38. package/dist/cli/commands/open.d.ts +3 -0
  39. package/dist/cli/commands/open.d.ts.map +1 -0
  40. package/dist/cli/commands/open.js +279 -0
  41. package/dist/cli/commands/open.js.map +1 -0
  42. package/dist/cli/commands/reclaim-unverified.d.ts +3 -0
  43. package/dist/cli/commands/reclaim-unverified.d.ts.map +1 -0
  44. package/dist/cli/commands/reclaim-unverified.js +164 -0
  45. package/dist/cli/commands/reclaim-unverified.js.map +1 -0
  46. package/dist/cli/commands/reclaim.d.ts +33 -0
  47. package/dist/cli/commands/reclaim.d.ts.map +1 -0
  48. package/dist/cli/commands/reclaim.js +297 -0
  49. package/dist/cli/commands/reclaim.js.map +1 -0
  50. package/dist/cli/commands/status.d.ts +3 -0
  51. package/dist/cli/commands/status.d.ts.map +1 -0
  52. package/dist/cli/commands/status.js +43 -0
  53. package/dist/cli/commands/status.js.map +1 -0
  54. package/dist/cli/commands/streams.d.ts +3 -0
  55. package/dist/cli/commands/streams.d.ts.map +1 -0
  56. package/dist/cli/commands/streams.js +257 -0
  57. package/dist/cli/commands/streams.js.map +1 -0
  58. package/dist/cli/commands/watch.d.ts +3 -0
  59. package/dist/cli/commands/watch.d.ts.map +1 -0
  60. package/dist/cli/commands/watch.js +55 -0
  61. package/dist/cli/commands/watch.js.map +1 -0
  62. package/dist/cli/config.d.ts +61 -0
  63. package/dist/cli/config.d.ts.map +1 -0
  64. package/dist/cli/config.js +140 -0
  65. package/dist/cli/config.js.map +1 -0
  66. package/dist/cli/context.d.ts +29 -0
  67. package/dist/cli/context.d.ts.map +1 -0
  68. package/dist/cli/context.js +2 -0
  69. package/dist/cli/context.js.map +1 -0
  70. package/dist/cli/deps.d.ts +145 -0
  71. package/dist/cli/deps.d.ts.map +1 -0
  72. package/dist/cli/deps.js +227 -0
  73. package/dist/cli/deps.js.map +1 -0
  74. package/dist/cli/descriptor.d.ts +61 -0
  75. package/dist/cli/descriptor.d.ts.map +1 -0
  76. package/dist/cli/descriptor.js +78 -0
  77. package/dist/cli/descriptor.js.map +1 -0
  78. package/dist/cli/errors.d.ts +48 -0
  79. package/dist/cli/errors.d.ts.map +1 -0
  80. package/dist/cli/errors.js +129 -0
  81. package/dist/cli/errors.js.map +1 -0
  82. package/dist/cli/escape-hatch.d.ts +50 -0
  83. package/dist/cli/escape-hatch.d.ts.map +1 -0
  84. package/dist/cli/escape-hatch.js +45 -0
  85. package/dist/cli/escape-hatch.js.map +1 -0
  86. package/dist/cli/index.d.ts +8 -0
  87. package/dist/cli/index.d.ts.map +1 -0
  88. package/dist/cli/index.js +7 -0
  89. package/dist/cli/index.js.map +1 -0
  90. package/dist/cli/listings.d.ts +15 -0
  91. package/dist/cli/listings.d.ts.map +1 -0
  92. package/dist/cli/listings.js +56 -0
  93. package/dist/cli/listings.js.map +1 -0
  94. package/dist/cli/mandate.d.ts +66 -0
  95. package/dist/cli/mandate.d.ts.map +1 -0
  96. package/dist/cli/mandate.js +61 -0
  97. package/dist/cli/mandate.js.map +1 -0
  98. package/dist/cli/output.d.ts +33 -0
  99. package/dist/cli/output.d.ts.map +1 -0
  100. package/dist/cli/output.js +34 -0
  101. package/dist/cli/output.js.map +1 -0
  102. package/dist/cli/preflight.d.ts +38 -0
  103. package/dist/cli/preflight.d.ts.map +1 -0
  104. package/dist/cli/preflight.js +72 -0
  105. package/dist/cli/preflight.js.map +1 -0
  106. package/dist/cli/progress.d.ts +36 -0
  107. package/dist/cli/progress.d.ts.map +1 -0
  108. package/dist/cli/progress.js +40 -0
  109. package/dist/cli/progress.js.map +1 -0
  110. package/dist/cli/run.d.ts +25 -0
  111. package/dist/cli/run.d.ts.map +1 -0
  112. package/dist/cli/run.js +173 -0
  113. package/dist/cli/run.js.map +1 -0
  114. package/dist/cli/scan-range.d.ts +55 -0
  115. package/dist/cli/scan-range.d.ts.map +1 -0
  116. package/dist/cli/scan-range.js +57 -0
  117. package/dist/cli/scan-range.js.map +1 -0
  118. package/dist/cli/status.d.ts +90 -0
  119. package/dist/cli/status.d.ts.map +1 -0
  120. package/dist/cli/status.js +252 -0
  121. package/dist/cli/status.js.map +1 -0
  122. package/dist/cli/timeout.d.ts +30 -0
  123. package/dist/cli/timeout.d.ts.map +1 -0
  124. package/dist/cli/timeout.js +55 -0
  125. package/dist/cli/timeout.js.map +1 -0
  126. package/dist/cli/version.d.ts +12 -0
  127. package/dist/cli/version.d.ts.map +1 -0
  128. package/dist/cli/version.js +22 -0
  129. package/dist/cli/version.js.map +1 -0
  130. package/dist/cli/wallet.d.ts +95 -0
  131. package/dist/cli/wallet.d.ts.map +1 -0
  132. package/dist/cli/wallet.js +169 -0
  133. package/dist/cli/wallet.js.map +1 -0
  134. package/dist/frameworks/agentkit.d.ts.map +1 -1
  135. package/dist/frameworks/agentkit.js +8 -4
  136. package/dist/frameworks/agentkit.js.map +1 -1
  137. package/dist/frameworks/crewai.d.ts +10 -0
  138. package/dist/frameworks/crewai.d.ts.map +1 -1
  139. package/dist/frameworks/crewai.js +12 -2
  140. package/dist/frameworks/crewai.js.map +1 -1
  141. package/dist/frameworks/eliza.d.ts.map +1 -1
  142. package/dist/frameworks/eliza.js +14 -3
  143. package/dist/frameworks/eliza.js.map +1 -1
  144. package/dist/frameworks/langchain.d.ts.map +1 -1
  145. package/dist/frameworks/langchain.js +14 -3
  146. package/dist/frameworks/langchain.js.map +1 -1
  147. package/dist/gateway/server-entry.d.ts +1 -0
  148. package/dist/gateway/server-entry.js +1 -0
  149. package/dist/gateway/server-entry.js.map +1 -1
  150. package/dist/index.d.ts +1 -1
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js +1 -1
  153. package/dist/index.js.map +1 -1
  154. package/dist/mcp/http-server.d.ts +1 -0
  155. package/dist/mcp/http-server.js +1 -0
  156. package/dist/mcp/http-server.js.map +1 -1
  157. package/dist/mcp/server.d.ts.map +1 -1
  158. package/dist/mcp/server.js +46 -6
  159. package/dist/mcp/server.js.map +1 -1
  160. package/dist/mcp/stdio.d.ts +1 -0
  161. package/dist/mcp/stdio.js +1 -0
  162. package/dist/mcp/stdio.js.map +1 -1
  163. package/dist/sdk/client.d.ts +44 -3
  164. package/dist/sdk/client.d.ts.map +1 -1
  165. package/dist/sdk/client.js +38 -3
  166. package/dist/sdk/client.js.map +1 -1
  167. package/docs/agent-layer.md +2 -1
  168. package/docs/cli.md +569 -0
  169. package/docs/crewai.md +6 -2
  170. package/docs/eliza.md +6 -1
  171. package/docs/mcp-hosted.md +3 -2
  172. package/docs/quickstart.md +18 -5
  173. package/package.json +17 -5
  174. package/src/cli/amounts.ts +102 -0
  175. package/src/cli/args.ts +150 -0
  176. package/src/cli/attesters.ts +86 -0
  177. package/src/cli/bin.ts +5 -0
  178. package/src/cli/commands/claim.ts +100 -0
  179. package/src/cli/commands/close.ts +53 -0
  180. package/src/cli/commands/discover.ts +228 -0
  181. package/src/cli/commands/invoke.ts +177 -0
  182. package/src/cli/commands/mcp.ts +135 -0
  183. package/src/cli/commands/open.ts +331 -0
  184. package/src/cli/commands/reclaim-unverified.ts +206 -0
  185. package/src/cli/commands/reclaim.ts +360 -0
  186. package/src/cli/commands/status.ts +56 -0
  187. package/src/cli/commands/streams.ts +344 -0
  188. package/src/cli/commands/watch.ts +70 -0
  189. package/src/cli/config.ts +208 -0
  190. package/src/cli/context.ts +30 -0
  191. package/src/cli/deps.ts +437 -0
  192. package/src/cli/descriptor.ts +133 -0
  193. package/src/cli/errors.ts +162 -0
  194. package/src/cli/escape-hatch.ts +92 -0
  195. package/src/cli/index.ts +27 -0
  196. package/src/cli/listings.ts +77 -0
  197. package/src/cli/mandate.ts +126 -0
  198. package/src/cli/output.ts +63 -0
  199. package/src/cli/preflight.ts +88 -0
  200. package/src/cli/progress.ts +75 -0
  201. package/src/cli/run.ts +209 -0
  202. package/src/cli/scan-range.ts +76 -0
  203. package/src/cli/status.ts +381 -0
  204. package/src/cli/timeout.ts +64 -0
  205. package/src/cli/version.ts +21 -0
  206. package/src/cli/wallet.ts +241 -0
  207. package/src/frameworks/agentkit.ts +8 -3
  208. package/src/frameworks/crewai.ts +13 -2
  209. package/src/frameworks/eliza.ts +14 -3
  210. package/src/frameworks/langchain.ts +14 -3
  211. package/src/gateway/server-entry.ts +1 -0
  212. package/src/index.ts +2 -0
  213. package/src/mcp/http-server.ts +1 -0
  214. package/src/mcp/server.ts +51 -6
  215. package/src/mcp/stdio.ts +1 -0
  216. package/src/sdk/client.ts +71 -4
@@ -1,4 +1,4 @@
1
- import { StreamProofClient, type HireComputeResult, type StreamProofClientConfig, type StreamProofStream } from "@absol-labs/sdk";
1
+ import { StreamProofClient, type HireComputeResult, type StreamProofClientConfig, type StreamProofStream, type StreamV2 } from "@absol-labs/sdk";
2
2
  import { type MandateDecision, type SignedSpendMandate } from "../mandates/mandate.js";
3
3
  export interface OpenVerifiedStreamInput {
4
4
  readonly operator: `0x${string}`;
@@ -11,8 +11,17 @@ export interface OpenVerifiedStreamInput {
11
11
  readonly nowSeconds: number;
12
12
  readonly revokedMandateIds?: Iterable<`0x${string}`>;
13
13
  }
14
+ /**
15
+ * A stream as read from the configured escrow. Checkpoint escrows (V2) and the
16
+ * legacy per-attestation escrow (V1) expose incompatible tuples, so the view
17
+ * carries whichever one the client is pointed at. Narrow with
18
+ * {@link isCheckpointStream} before touching version-specific fields.
19
+ */
20
+ export type StreamStatusStream = StreamProofStream | StreamV2;
21
+ /** True when the stream came from a checkpoint-settled (V2) escrow. */
22
+ export declare function isCheckpointStream(stream: StreamStatusStream): stream is StreamV2;
14
23
  export interface StreamStatusView {
15
- readonly stream: StreamProofStream;
24
+ readonly stream: StreamStatusStream;
16
25
  readonly claimable: bigint;
17
26
  readonly reclaimable: bigint;
18
27
  }
@@ -42,11 +51,20 @@ export interface AgentSdkClient {
42
51
  readonly maxDurationSeconds: number;
43
52
  }): Promise<HireComputeResult>;
44
53
  getStream(streamId: `0x${string}`): Promise<StreamProofStream>;
54
+ getStreamV2(streamId: `0x${string}`): Promise<StreamV2>;
45
55
  claimable(streamId: `0x${string}`): Promise<bigint>;
46
56
  reclaimable(streamId: `0x${string}`): Promise<bigint>;
47
57
  claim(streamId: `0x${string}`): Promise<StreamProofTransactionResult>;
48
58
  close(streamId: `0x${string}`): Promise<StreamProofTransactionResult>;
49
59
  reclaim(streamId: `0x${string}`): Promise<StreamProofTransactionResult>;
60
+ /**
61
+ * The BUYER's no-proof escape hatch. Every other buyer path to the money
62
+ * (`reclaim` -> `reclaimWithProof`) needs a Merkle proof fetched from the
63
+ * oracle, so it is only as available as the oracle is. `reclaimUnverified`
64
+ * takes no proof, no quorum and no guardian — it is the path that exists
65
+ * precisely for the case where that dependency has failed.
66
+ */
67
+ reclaimUnverified(streamId: `0x${string}`): Promise<StreamProofTransactionResult>;
50
68
  }
51
69
  export type AgentSdkClientFactory = (config: StreamProofClientConfig) => AgentSdkClient;
52
70
  export interface VerifiedStreamAgentOpener {
@@ -58,16 +76,39 @@ export declare class MandateDeniedError extends Error {
58
76
  }
59
77
  export declare class VerifiedStreamAgentClient implements VerifiedStreamAgentOpener {
60
78
  private readonly sdkClient;
79
+ /**
80
+ * Whether the configured escrow is checkpoint-settled. Set once from config:
81
+ * the SDK throws rather than guessing if the wrong decoder is used, so this
82
+ * has to be decided here instead of discovered by trial.
83
+ */
84
+ private readonly checkpointSettled;
61
85
  constructor(config: StreamProofClientConfig, options?: {
62
86
  readonly createSdkClient?: AgentSdkClientFactory;
63
87
  });
88
+ private readStream;
64
89
  openVerifiedStream(input: OpenVerifiedStreamInput): Promise<HireComputeResult>;
65
90
  getStreamStatus(streamId: `0x${string}`): Promise<StreamStatusView>;
66
91
  claimStream(input: MandateAuthorizedStreamActionInput): Promise<StreamProofTransactionResult>;
67
92
  closeStream(input: MandateAuthorizedStreamActionInput): Promise<StreamProofTransactionResult>;
68
93
  reclaimStream(input: ReclaimAuthorizedStreamInput): Promise<ReclaimVerifiedStreamResult>;
69
94
  /**
70
- * Authorizes a BUYER-RECOVERY action (close / reclaim). These only return
95
+ * Buyer-only escape hatch: reclaim WITHOUT a checkpoint proof, available only
96
+ * once `block.timestamp >= expiresAt + escapeGraceSeconds` on the escrow.
97
+ *
98
+ * Authorized exactly like `close` / `reclaim` — on the mandate owner's
99
+ * signature alone (see {@link authorizeBuyerRecovery}) — because it only
100
+ * returns the buyer's own unspent escrow. It is a SEPARATE method rather than
101
+ * an option on {@link reclaimStream} because it is not an alternative route to
102
+ * the same outcome: `reclaimUnverified` pays the buyer
103
+ * `deposit - claimedCumulative` and permanently forfeits every operator
104
+ * voucher that was earned but not yet redeemed on-chain.
105
+ *
106
+ * Takes no `closeFirst`: the escrow gates this path on `expiresAt`, never on
107
+ * `closedAt`, so closing first would buy nothing but a second gas fee.
108
+ */
109
+ reclaimUnverifiedStream(input: MandateAuthorizedStreamActionInput): Promise<StreamProofTransactionResult>;
110
+ /**
111
+ * Authorizes a BUYER-RECOVERY action (close / reclaim / reclaimUnverified). These only return
71
112
  * unspent funds to the buyer or stop payment, so they are authorized on
72
113
  * mandate-owner signature ALONE — never gated by expiry, revocation, or caps,
73
114
  * which would otherwise let a lapsed mandate strand the buyer's own funds.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
1
  import { StreamProofClient, } from "@absol-labs/sdk";
2
2
  import { checkMandate, verifyMandateOwnerSignature, } from "../mandates/mandate.js";
3
+ /** True when the stream came from a checkpoint-settled (V2) escrow. */
4
+ export function isCheckpointStream(stream) {
5
+ return "settledCumulative" in stream;
6
+ }
3
7
  export class MandateDeniedError extends Error {
4
8
  reason;
5
9
  constructor(reason) {
@@ -10,8 +14,20 @@ export class MandateDeniedError extends Error {
10
14
  }
11
15
  export class VerifiedStreamAgentClient {
12
16
  sdkClient;
17
+ /**
18
+ * Whether the configured escrow is checkpoint-settled. Set once from config:
19
+ * the SDK throws rather than guessing if the wrong decoder is used, so this
20
+ * has to be decided here instead of discovered by trial.
21
+ */
22
+ checkpointSettled;
13
23
  constructor(config, options = {}) {
14
24
  this.sdkClient = (options.createSdkClient ?? defaultSdkClientFactory)(config);
25
+ this.checkpointSettled = config.escrowV2 !== undefined;
26
+ }
27
+ async readStream(streamId) {
28
+ return this.checkpointSettled
29
+ ? await this.sdkClient.getStreamV2(streamId)
30
+ : await this.sdkClient.getStream(streamId);
15
31
  }
16
32
  async openVerifiedStream(input) {
17
33
  const decision = await checkMandate(input.signedMandate, toHireRequest(input), input.spentSoFarUsdc, {
@@ -33,7 +49,7 @@ export class VerifiedStreamAgentClient {
33
49
  }
34
50
  async getStreamStatus(streamId) {
35
51
  const [stream, claimable, reclaimable] = await Promise.all([
36
- this.sdkClient.getStream(streamId),
52
+ this.readStream(streamId),
37
53
  this.sdkClient.claimable(streamId),
38
54
  this.sdkClient.reclaimable(streamId),
39
55
  ]);
@@ -56,7 +72,26 @@ export class VerifiedStreamAgentClient {
56
72
  return { closeResult, reclaimResult };
57
73
  }
58
74
  /**
59
- * Authorizes a BUYER-RECOVERY action (close / reclaim). These only return
75
+ * Buyer-only escape hatch: reclaim WITHOUT a checkpoint proof, available only
76
+ * once `block.timestamp >= expiresAt + escapeGraceSeconds` on the escrow.
77
+ *
78
+ * Authorized exactly like `close` / `reclaim` — on the mandate owner's
79
+ * signature alone (see {@link authorizeBuyerRecovery}) — because it only
80
+ * returns the buyer's own unspent escrow. It is a SEPARATE method rather than
81
+ * an option on {@link reclaimStream} because it is not an alternative route to
82
+ * the same outcome: `reclaimUnverified` pays the buyer
83
+ * `deposit - claimedCumulative` and permanently forfeits every operator
84
+ * voucher that was earned but not yet redeemed on-chain.
85
+ *
86
+ * Takes no `closeFirst`: the escrow gates this path on `expiresAt`, never on
87
+ * `closedAt`, so closing first would buy nothing but a second gas fee.
88
+ */
89
+ async reclaimUnverifiedStream(input) {
90
+ await this.authorizeBuyerRecovery(input);
91
+ return await this.sdkClient.reclaimUnverified(input.streamId);
92
+ }
93
+ /**
94
+ * Authorizes a BUYER-RECOVERY action (close / reclaim / reclaimUnverified). These only return
60
95
  * unspent funds to the buyer or stop payment, so they are authorized on
61
96
  * mandate-owner signature ALONE — never gated by expiry, revocation, or caps,
62
97
  * which would otherwise let a lapsed mandate strand the buyer's own funds.
@@ -68,7 +103,7 @@ export class VerifiedStreamAgentClient {
68
103
  }
69
104
  }
70
105
  async authorizeExistingStreamAction(input) {
71
- const stream = await this.sdkClient.getStream(input.streamId);
106
+ const stream = await this.readStream(input.streamId);
72
107
  const decision = await checkMandate(input.signedMandate, {
73
108
  operator: stream.operator,
74
109
  budgetUsdc: 0n,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/sdk/client.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,8 @@ Every fund-moving tool is gated by a spend mandate, with JSON-serializable manda
32
32
  payloads and env-driven settlement config. The server also keeps a local stream
33
33
  registry so agents can list and reclaim the streams they opened. (`src/mcp/`)
34
34
 
35
- The server runs locally over stdio (`pnpm mcp:stdio`) or as a hosted,
35
+ The server runs locally over stdio (the published `metrik-mcp` executable, or
36
+ `pnpm mcp:stdio` in-repo) or as a hosted,
36
37
  multi-tenant, per-caller-authenticated endpoint over Streamable HTTP
37
38
  (`pnpm mcp:http`) — see [docs/mcp-hosted.md](./mcp-hosted.md).
38
39