@absol-labs/agent 0.12.0-rc.2 → 0.12.0-rc.3

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 (46) hide show
  1. package/dist/cli/commands/claim.d.ts +9 -0
  2. package/dist/cli/commands/claim.d.ts.map +1 -1
  3. package/dist/cli/commands/claim.js +12 -1
  4. package/dist/cli/commands/claim.js.map +1 -1
  5. package/dist/cli/commands/refund.d.ts +2 -0
  6. package/dist/cli/commands/refund.d.ts.map +1 -1
  7. package/dist/cli/commands/refund.js +126 -8
  8. package/dist/cli/commands/refund.js.map +1 -1
  9. package/dist/cli/status.d.ts +6 -0
  10. package/dist/cli/status.d.ts.map +1 -1
  11. package/dist/cli/status.js +25 -6
  12. package/dist/cli/status.js.map +1 -1
  13. package/dist/gateway/x402-opener-mode.d.ts.map +1 -1
  14. package/dist/gateway/x402-opener-mode.js +104 -7
  15. package/dist/gateway/x402-opener-mode.js.map +1 -1
  16. package/dist/x402-opener/block-floors.d.ts +35 -0
  17. package/dist/x402-opener/block-floors.d.ts.map +1 -0
  18. package/dist/x402-opener/block-floors.js +72 -0
  19. package/dist/x402-opener/block-floors.js.map +1 -0
  20. package/dist/x402-opener/facilitator-server.d.ts.map +1 -1
  21. package/dist/x402-opener/facilitator-server.js +7 -0
  22. package/dist/x402-opener/facilitator-server.js.map +1 -1
  23. package/dist/x402-opener/index.d.ts +1 -0
  24. package/dist/x402-opener/index.d.ts.map +1 -1
  25. package/dist/x402-opener/index.js +1 -0
  26. package/dist/x402-opener/index.js.map +1 -1
  27. package/dist/x402-opener/refund-relay.d.ts +62 -1
  28. package/dist/x402-opener/refund-relay.d.ts.map +1 -1
  29. package/dist/x402-opener/refund-relay.js +387 -208
  30. package/dist/x402-opener/refund-relay.js.map +1 -1
  31. package/dist/x402-opener/scheme.d.ts +8 -0
  32. package/dist/x402-opener/scheme.d.ts.map +1 -1
  33. package/dist/x402-opener/scheme.js +14 -0
  34. package/dist/x402-opener/scheme.js.map +1 -1
  35. package/docs/cli.md +23 -2
  36. package/docs/x402.md +83 -26
  37. package/package.json +2 -2
  38. package/src/cli/commands/claim.ts +17 -1
  39. package/src/cli/commands/refund.ts +149 -8
  40. package/src/cli/status.ts +28 -7
  41. package/src/gateway/x402-opener-mode.ts +131 -6
  42. package/src/x402-opener/block-floors.ts +78 -0
  43. package/src/x402-opener/facilitator-server.ts +7 -0
  44. package/src/x402-opener/index.ts +1 -0
  45. package/src/x402-opener/refund-relay.ts +486 -217
  46. package/src/x402-opener/scheme.ts +38 -0
@@ -1,4 +1,5 @@
1
1
  import { type Account, type Address, type Chain, type Hex, type PublicClient, type Transport, type WalletClient } from "viem";
2
+ import { StreamBlockFloors } from "./block-floors.js";
2
3
  import { RelayerQueue } from "./relayer-queue.js";
3
4
  import { type OpenerKind } from "./terms.js";
4
5
  /**
@@ -168,7 +169,27 @@ export interface OpenerRefundRelayConfig {
168
169
  * `escrow.generation` for (chain, escrow), else `v2`.
169
170
  */
170
171
  readonly escrowGeneration?: string;
172
+ /**
173
+ * Per-stream block floors shared with the opener scheme: the block of every
174
+ * mined settlement (and of every close/reclaim this relay mines). The relay
175
+ * never answers about a stream from a block below its floor, so a lagging
176
+ * RPC node cannot make a just-opened stream look unknown or a just-closed
177
+ * one look active. Default: a private instance (this relay's own txs only).
178
+ */
179
+ readonly streamFloors?: StreamBlockFloors;
180
+ /**
181
+ * How long one request may wait for the RPC to reach a stream's floor
182
+ * block, ms, before answering `503 chain-lagging` (never a wrong `404`).
183
+ * Default {@link DEFAULT_REFUND_LAG_TOLERANCE_MS}.
184
+ */
185
+ readonly lagToleranceMs?: number;
186
+ /** Poll interval while waiting for the RPC to catch up, ms. Default 1000. */
187
+ readonly lagPollMs?: number;
188
+ /** Injectable sleep, for tests. */
189
+ readonly sleep?: (ms: number) => Promise<void>;
171
190
  }
191
+ /** Default bound on waiting for a lagging RPC inside one relay request. */
192
+ export declare const DEFAULT_REFUND_LAG_TOLERANCE_MS = 8000;
172
193
  /** Default reuse window for a stream's status and oracle proof. */
173
194
  export declare const DEFAULT_REFUND_READ_CACHE_SECONDS = 5;
174
195
  /** HTTP-shaped outcome of one relay call. `body` is JSON-safe. */
@@ -206,6 +227,10 @@ export declare class OpenerRefundRelay implements RefundRelayHandler {
206
227
  private readonly cacheMs;
207
228
  private readonly logger;
208
229
  private readonly statusCache;
230
+ private readonly floors;
231
+ private readonly lagToleranceMs;
232
+ private readonly lagPollMs;
233
+ private readonly sleep;
209
234
  private readonly proofCache;
210
235
  constructor(config: OpenerRefundRelayConfig);
211
236
  /**
@@ -216,6 +241,7 @@ export declare class OpenerRefundRelay implements RefundRelayHandler {
216
241
  init(): Promise<void>;
217
242
  status(rawStreamId: string): Promise<RefundRelayResponse>;
218
243
  private computeStatus;
244
+ private describeStatus;
219
245
  close(rawStreamId: string, body: unknown): Promise<RefundRelayResponse>;
220
246
  reclaim(rawStreamId: string): Promise<RefundRelayResponse>;
221
247
  reclaimUnverified(rawStreamId: string, body: unknown): Promise<RefundRelayResponse>;
@@ -226,6 +252,33 @@ export declare class OpenerRefundRelay implements RefundRelayHandler {
226
252
  private log;
227
253
  private logged;
228
254
  private unavailable;
255
+ /**
256
+ * The RPC has not reached the block of a transaction this facilitator saw
257
+ * mined for the stream. NEVER a `404` (the stream exists) and never a stale
258
+ * answer: a retryable `503`.
259
+ */
260
+ private lagging;
261
+ /** Poll budget of one answer (snapshot waits + pinned-read retries). */
262
+ private maxLagPolls;
263
+ /**
264
+ * A view of the chain at a block >= `floor`: waits (bounded) while the RPC's
265
+ * `latest` is below it, then throws {@link ChainLagging}.
266
+ */
267
+ private snapshot;
268
+ /**
269
+ * Resolves a stream on a view that is at or above its floor. A miss for a
270
+ * stream with no known floor is confirmed once more, a poll interval later,
271
+ * before it is answered as `404`, so a node that lags the one which mined the stream
272
+ * (or a facilitator restarted since the settlement) cannot turn a real
273
+ * stream into "not found".
274
+ */
275
+ private resolveFresh;
276
+ /**
277
+ * `readContract` pinned to the view's block. A node behind that block
278
+ * answers with an error rather than old state; such errors are retried
279
+ * within the view's poll budget. Contract reverts are never retried.
280
+ */
281
+ private read;
229
282
  /** When the no-proof escape hatch opens for this stream, per generation. */
230
283
  private escapeHatchAt;
231
284
  private grace;
@@ -247,7 +300,6 @@ export declare class OpenerRefundRelay implements RefundRelayHandler {
247
300
  private resolve;
248
301
  /** Off-chain check of a payer-signed opener action. `undefined` = valid. */
249
302
  private verifyPayerSignature;
250
- private chainNow;
251
303
  private readNonce;
252
304
  /** An upfront opener's immutable terms (`price`, `upfrontAmount`). */
253
305
  private readUpfrontTerms;
@@ -262,5 +314,14 @@ export declare class OpenerRefundRelay implements RefundRelayHandler {
262
314
  private fetchProof;
263
315
  private loadProof;
264
316
  }
317
+ /**
318
+ * What the stream is doing now, as a payer means it: `closed` (on-chain
319
+ * Closed), `expired` (on-chain still Active, but past `expiresAt`, so it
320
+ * accrues nothing more and needs no close), or `active` (running).
321
+ */
322
+ export declare function streamState(stream: {
323
+ readonly status: number;
324
+ readonly expiresAt: bigint;
325
+ }, now: bigint): "active" | "expired" | "closed";
265
326
  export {};
266
327
  //# sourceMappingURL=refund-relay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refund-relay.d.ts","sourceRoot":"","sources":["../../src/x402-opener/refund-relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refund-relay.d.ts","sourceRoot":"","sources":["../../src/x402-opener/refund-relay.ts"],"names":[],"mappings":"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"}