@agirails/sdk 4.4.8 → 4.5.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.
Files changed (99) hide show
  1. package/dist/builders/DeliveryProofBuilder.d.ts +224 -13
  2. package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
  3. package/dist/builders/DeliveryProofBuilder.js +247 -13
  4. package/dist/builders/DeliveryProofBuilder.js.map +1 -1
  5. package/dist/cli/agirails.d.ts +85 -1
  6. package/dist/cli/agirails.d.ts.map +1 -1
  7. package/dist/cli/agirails.js +429 -154
  8. package/dist/cli/agirails.js.map +1 -1
  9. package/dist/cli/commands/init.d.ts +54 -0
  10. package/dist/cli/commands/init.d.ts.map +1 -1
  11. package/dist/cli/commands/init.js +193 -1
  12. package/dist/cli/commands/init.js.map +1 -1
  13. package/dist/cli/commands/receipt.d.ts +70 -2
  14. package/dist/cli/commands/receipt.d.ts.map +1 -1
  15. package/dist/cli/commands/receipt.js +218 -3
  16. package/dist/cli/commands/receipt.js.map +1 -1
  17. package/dist/cli/commands/test.d.ts +77 -1
  18. package/dist/cli/commands/test.d.ts.map +1 -1
  19. package/dist/cli/commands/test.js +264 -2
  20. package/dist/cli/commands/test.js.map +1 -1
  21. package/dist/cli/lib/runRequest.d.ts +90 -0
  22. package/dist/cli/lib/runRequest.d.ts.map +1 -1
  23. package/dist/cli/lib/runRequest.js +300 -9
  24. package/dist/cli/lib/runRequest.js.map +1 -1
  25. package/dist/cli/lib/sentinelReflections.d.ts +111 -0
  26. package/dist/cli/lib/sentinelReflections.d.ts.map +1 -0
  27. package/dist/cli/lib/sentinelReflections.js +193 -0
  28. package/dist/cli/lib/sentinelReflections.js.map +1 -0
  29. package/dist/delivery/MockDeliveryChannel.d.ts +208 -0
  30. package/dist/delivery/MockDeliveryChannel.d.ts.map +1 -0
  31. package/dist/delivery/MockDeliveryChannel.js +445 -0
  32. package/dist/delivery/MockDeliveryChannel.js.map +1 -0
  33. package/dist/delivery/RelayDeliveryChannel.d.ts +176 -0
  34. package/dist/delivery/RelayDeliveryChannel.d.ts.map +1 -0
  35. package/dist/delivery/RelayDeliveryChannel.js +377 -0
  36. package/dist/delivery/RelayDeliveryChannel.js.map +1 -0
  37. package/dist/delivery/channel.d.ts +282 -0
  38. package/dist/delivery/channel.d.ts.map +1 -0
  39. package/dist/delivery/channel.js +76 -0
  40. package/dist/delivery/channel.js.map +1 -0
  41. package/dist/delivery/channelLog.d.ts +115 -0
  42. package/dist/delivery/channelLog.d.ts.map +1 -0
  43. package/dist/delivery/channelLog.js +94 -0
  44. package/dist/delivery/channelLog.js.map +1 -0
  45. package/dist/delivery/crypto.d.ts +312 -0
  46. package/dist/delivery/crypto.d.ts.map +1 -0
  47. package/dist/delivery/crypto.js +495 -0
  48. package/dist/delivery/crypto.js.map +1 -0
  49. package/dist/delivery/eip712.d.ts +248 -0
  50. package/dist/delivery/eip712.d.ts.map +1 -0
  51. package/dist/delivery/eip712.js +397 -0
  52. package/dist/delivery/eip712.js.map +1 -0
  53. package/dist/delivery/envelopeBuilder.d.ts +531 -0
  54. package/dist/delivery/envelopeBuilder.d.ts.map +1 -0
  55. package/dist/delivery/envelopeBuilder.js +832 -0
  56. package/dist/delivery/envelopeBuilder.js.map +1 -0
  57. package/dist/delivery/index.d.ts +53 -0
  58. package/dist/delivery/index.d.ts.map +1 -0
  59. package/dist/delivery/index.js +143 -0
  60. package/dist/delivery/index.js.map +1 -0
  61. package/dist/delivery/keys.d.ts +344 -0
  62. package/dist/delivery/keys.d.ts.map +1 -0
  63. package/dist/delivery/keys.js +513 -0
  64. package/dist/delivery/keys.js.map +1 -0
  65. package/dist/delivery/nonce-keys.d.ts +93 -0
  66. package/dist/delivery/nonce-keys.d.ts.map +1 -0
  67. package/dist/delivery/nonce-keys.js +88 -0
  68. package/dist/delivery/nonce-keys.js.map +1 -0
  69. package/dist/delivery/setupBuilder.d.ts +403 -0
  70. package/dist/delivery/setupBuilder.d.ts.map +1 -0
  71. package/dist/delivery/setupBuilder.js +554 -0
  72. package/dist/delivery/setupBuilder.js.map +1 -0
  73. package/dist/delivery/types.d.ts +722 -0
  74. package/dist/delivery/types.d.ts.map +1 -0
  75. package/dist/delivery/types.js +150 -0
  76. package/dist/delivery/types.js.map +1 -0
  77. package/dist/delivery/validate.d.ts +288 -0
  78. package/dist/delivery/validate.d.ts.map +1 -0
  79. package/dist/delivery/validate.js +648 -0
  80. package/dist/delivery/validate.js.map +1 -0
  81. package/dist/level1/Agent.d.ts +130 -0
  82. package/dist/level1/Agent.d.ts.map +1 -1
  83. package/dist/level1/Agent.js +248 -0
  84. package/dist/level1/Agent.js.map +1 -1
  85. package/dist/level1/types/Options.d.ts +62 -0
  86. package/dist/level1/types/Options.d.ts.map +1 -1
  87. package/dist/level1/types/Options.js +22 -0
  88. package/dist/level1/types/Options.js.map +1 -1
  89. package/dist/runtime/MockRuntime.d.ts +32 -0
  90. package/dist/runtime/MockRuntime.d.ts.map +1 -1
  91. package/dist/runtime/MockRuntime.js +44 -0
  92. package/dist/runtime/MockRuntime.js.map +1 -1
  93. package/dist/wallet/aa/BundlerClient.d.ts.map +1 -1
  94. package/dist/wallet/aa/BundlerClient.js +18 -3
  95. package/dist/wallet/aa/BundlerClient.js.map +1 -1
  96. package/dist/wallet/aa/PaymasterClient.d.ts.map +1 -1
  97. package/dist/wallet/aa/PaymasterClient.js +4 -1
  98. package/dist/wallet/aa/PaymasterClient.js.map +1 -1
  99. package/package.json +6 -1
@@ -18,13 +18,39 @@
18
18
  *
19
19
  * @module cli/commands/test
20
20
  */
21
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ var desc = Object.getOwnPropertyDescriptor(m, k);
24
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
25
+ desc = { enumerable: true, get: function() { return m[k]; } };
26
+ }
27
+ Object.defineProperty(o, k2, desc);
28
+ }) : (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ o[k2] = m[k];
31
+ }));
32
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
33
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
34
+ }) : function(o, v) {
35
+ o["default"] = v;
36
+ });
37
+ var __importStar = (this && this.__importStar) || function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
21
44
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.runTest = exports.createTestCommand = void 0;
45
+ exports.offerShareOnX = exports.safeLocalReflection = exports.isSentinelProvider = exports.runTest = exports.createTestCommand = void 0;
23
46
  const commander_1 = require("commander");
24
47
  const output_1 = require("../utils/output");
25
48
  const client_1 = require("../utils/client");
26
49
  const resolveAgent_1 = require("../lib/resolveAgent");
27
50
  const runRequest_1 = require("../lib/runRequest");
51
+ const sentinelReflections_1 = require("../lib/sentinelReflections");
52
+ const receipt_1 = require("./receipt");
53
+ const share_1 = require("../utils/share");
28
54
  // ============================================================================
29
55
  // Command Definition
30
56
  // ============================================================================
@@ -138,7 +164,24 @@ async function runTest(output) {
138
164
  // Sentinel returns { reflection, service, timestamp }; if it's wrapped
139
165
  // in a delivery-proof envelope (`{ type: 'delivery.proof', result: {...} }`),
140
166
  // unwrap once. Fall back to printing the raw payload otherwise.
141
- const reflection = extractReflection(result.payload);
167
+ const channelReflection = extractReflection(result.payload);
168
+ // 4b. Local fallback path. If the channel produced nothing (envelope
169
+ // missing, decrypt failed, wrong shape) AND we know this is the
170
+ // Sentinel provider, render the day's reflection from the vendored
171
+ // local table. The determinism contract means buyers who later
172
+ // retry will see the same quote Sentinel would have streamed.
173
+ //
174
+ // Strictly additive: when `channelReflection` is set, we use it
175
+ // verbatim and never look at the local table. The local path only
176
+ // activates when the channel is dormant — there is no race here.
177
+ const isSentinel = isSentinelProvider(sentinel.address);
178
+ const fallback = channelReflection === undefined && isSentinel ? safeLocalReflection() : undefined;
179
+ const reflection = channelReflection ?? fallback?.text;
180
+ const reflectionSource = channelReflection
181
+ ? 'channel'
182
+ : fallback
183
+ ? 'local-fallback'
184
+ : 'none';
142
185
  output.print('');
143
186
  output.result({
144
187
  txId: result.txId,
@@ -146,9 +189,17 @@ async function runTest(output) {
146
189
  elapsedMs: result.elapsedMs,
147
190
  settled: result.settled,
148
191
  reflection,
192
+ reflectionSource,
149
193
  payload: result.payload,
150
194
  receiptUrl: result.receiptUrl,
151
195
  }, { quietKey: 'reflection' });
196
+ // Caveat indicator — shown only in human mode and only when we filled
197
+ // in the reflection from the local table. JSON consumers learn the same
198
+ // thing via the `reflectionSource` field above, so we don't need to
199
+ // duplicate it through `output.warning` for them.
200
+ if (reflectionSource === 'local-fallback') {
201
+ output.info('Reflection rendered from local cache while channel delivery activates.');
202
+ }
152
203
  // Footer wording is conditional on what actually happened. The
153
204
  // structured JSON output above always reports `settled`, but human-mode
154
205
  // consumers see only the line emitted here — so a settle failure that
@@ -168,13 +219,46 @@ async function runTest(output) {
168
219
  output.blank();
169
220
  output.success(`Settled in ${result.elapsedMs} ms`);
170
221
  }
222
+ // FIX-5: Ceremonial framed receipt (renderReceiptV3) — the wow-path
223
+ // visual artifact for the buyer. Human mode only: JSON / quiet consumers
224
+ // already received their structured payload from `output.result(...)`
225
+ // above. Calling V3 in those modes would emit a duplicate JSON line or
226
+ // a duplicate "$9.90 USDC" line.
227
+ if (output.mode === 'human') {
228
+ output.blank();
229
+ (0, receipt_1.renderReceiptV3)({
230
+ agent: 'your-agent',
231
+ counterparty: 'Sentinel',
232
+ service: 'onboarding',
233
+ amountWei: 10000000n,
234
+ network: 'base-sepolia',
235
+ txId: result.txId,
236
+ timing: { totalMs: result.elapsedMs, escrowLockMs: 0, settlementMs: 0 },
237
+ reflection: reflection ?? undefined,
238
+ receiptUrl: result.receiptUrl,
239
+ requester: sentinel.address,
240
+ }, output);
241
+ }
171
242
  // Receipt URL — the wow artifact. Only present when the buyer-side V2
172
243
  // push succeeded (real on-chain network + signer). Silent when null:
173
244
  // either mock, or the push failed (indexer cron is the backstop).
245
+ //
246
+ // We keep the standalone "Receipt: <url>" line even though the V3 frame
247
+ // above already renders the URL inside its own block: the single-line
248
+ // form is the copy-paste-friendly anchor that downstream tests / scripts
249
+ // grep for (`captured.log.find(l => l.startsWith('Receipt: '))`).
174
250
  if (result.receiptUrl) {
175
251
  output.blank();
176
252
  output.print(`Receipt: ${result.receiptUrl}`);
177
253
  }
254
+ // 5. Tweet offer — the Purple Cow moment. Non-TTY skips silently so
255
+ // CI / piped consumers never block. Failures (browser open, clipboard)
256
+ // degrade gracefully to printing the raw URL.
257
+ await offerShareOnX({
258
+ txId: result.txId,
259
+ receiptUrl: result.receiptUrl,
260
+ settled: result.settled,
261
+ }, output);
178
262
  }
179
263
  exports.runTest = runTest;
180
264
  function extractReflection(payload) {
@@ -192,4 +276,182 @@ function extractReflection(payload) {
192
276
  }
193
277
  return undefined;
194
278
  }
279
+ /**
280
+ * Return the day's local-fallback reflection text + id. Defensively wrapped
281
+ * so any future failure inside `todaysReflection` (corrupted table import,
282
+ * invalid Date) can never abort the `actp test` flow — the buyer still
283
+ * gets their receipt, just without a quote.
284
+ */
285
+ function safeLocalReflection() {
286
+ try {
287
+ const r = (0, sentinelReflections_1.todaysReflection)();
288
+ if (!r || typeof r.text !== 'string' || r.text.length === 0)
289
+ return undefined;
290
+ return { id: r.id, text: r.text };
291
+ }
292
+ catch {
293
+ return undefined;
294
+ }
295
+ }
296
+ exports.safeLocalReflection = safeLocalReflection;
297
+ /**
298
+ * Does `providerAddress` match a known Sentinel deployment? We compare
299
+ * against the resolved Sentinel address for Base Sepolia (env override or
300
+ * constant table), case-insensitively because EIP-55 checksum casing is
301
+ * not stable across components in the pipeline.
302
+ *
303
+ * Defensive: any failure to resolve Sentinel (missing table entry,
304
+ * invalid env var) returns false — the local-fallback path is opt-in
305
+ * only when we are confident the provider is Sentinel. Mis-rendering a
306
+ * Sentinel reflection on someone else's transaction would be worse than
307
+ * silently omitting it.
308
+ */
309
+ function isSentinelProvider(providerAddress) {
310
+ try {
311
+ const sentinel = (0, resolveAgent_1.resolveAgent)('sentinel', 'base-sepolia');
312
+ return sentinel.address.toLowerCase() === providerAddress.toLowerCase();
313
+ }
314
+ catch {
315
+ return false;
316
+ }
317
+ }
318
+ exports.isSentinelProvider = isSentinelProvider;
319
+ /**
320
+ * Default dependency bundle that wires to the real readline / share.ts
321
+ * implementations. Tests override these via the second arg.
322
+ */
323
+ function defaultShareDeps() {
324
+ return {
325
+ prompt: async (question) => {
326
+ const readline = await Promise.resolve().then(() => __importStar(require('readline')));
327
+ const rl = readline.createInterface({
328
+ input: process.stdin,
329
+ output: process.stdout,
330
+ });
331
+ try {
332
+ return await new Promise((resolve) => {
333
+ rl.question(question, resolve);
334
+ });
335
+ }
336
+ finally {
337
+ rl.close();
338
+ }
339
+ },
340
+ openUrl: share_1.openUrl,
341
+ copyToClipboard: share_1.copyToClipboardOSC52,
342
+ isTty: () => Boolean(process.stdout.isTTY),
343
+ };
344
+ }
345
+ /**
346
+ * After a successful test transaction, ask the user whether they want to
347
+ * share it on X (formerly Twitter). The whole flow is fail-soft:
348
+ *
349
+ * - human mode only — json / quiet never see this UX
350
+ * - non-TTY → skip entirely (no blocking prompt in CI)
351
+ * - declined → no browser open, no clipboard touch
352
+ * - accepted → openUrl; if openUrl returns false, fall back to printing
353
+ * the URL and copying it to the clipboard so the user can paste it
354
+ * - 'c' option → copy URL to clipboard only (no browser)
355
+ *
356
+ * The function returns the chosen action so the caller / tests can assert
357
+ * which path was taken without having to scrape console output.
358
+ *
359
+ * Visible only in `human` mode; returns `'skipped'` for json / quiet.
360
+ *
361
+ * @param result - Subset of the runRequest result needed to build the tweet.
362
+ * @param output - Output instance (controls human / json / quiet mode).
363
+ * @param deps - Injected dependencies (defaults to readline + share.ts).
364
+ * @returns The action taken: 'tweet', 'copy', 'declined', 'skipped', or 'failed'.
365
+ */
366
+ async function offerShareOnX(result, output, deps = defaultShareDeps()) {
367
+ // Never prompt in json / quiet — those modes are for scripts.
368
+ if (output.mode !== 'human')
369
+ return 'skipped';
370
+ // Non-TTY skips silently. CI / piped consumers must never block.
371
+ if (!deps.isTty())
372
+ return 'skipped';
373
+ // Build tweet variants. We don't have a settle eth-tx-hash in the
374
+ // RunRequestResult, but the ACTP txId is the canonical reference and
375
+ // round-trips back to the receipt page. When the receipt URL is
376
+ // present, we splice it in — that's the strongest single artifact.
377
+ // Net amount: the runTest amount is fixed at $10, and the fee floor is
378
+ // max($10 * 1%, $0.05) = $0.10, so net = $9.90. We don't recompute it
379
+ // from the result because (a) the result currently doesn't expose the
380
+ // fee breakdown and (b) keeping it stable keeps the tweet template
381
+ // testable.
382
+ const NET_AMOUNT_USD = '9.90';
383
+ let tweetText;
384
+ if (result.receiptUrl) {
385
+ // Testnet template + receipt URL takes precedence over the txId
386
+ // fragment — the receipt URL is the prettier, click-throughable
387
+ // artifact.
388
+ const base = (0, share_1.buildTestnetTweet)(NET_AMOUNT_USD, result.txId);
389
+ tweetText = `${base}\n\nReceipt: ${result.receiptUrl}`;
390
+ }
391
+ else if (result.settled) {
392
+ // Settled but no receipt URL (push failed / not pushed). Use the
393
+ // testnet template with just the txId — basescan link still works.
394
+ tweetText = (0, share_1.buildTestnetTweet)(NET_AMOUNT_USD, result.txId);
395
+ }
396
+ else {
397
+ // Mock or unsettled: use the generic earn template.
398
+ tweetText = (0, share_1.buildMockTweet)(NET_AMOUNT_USD);
399
+ }
400
+ // Twitter's hard limit is 280; URL-encoding can balloon the actual
401
+ // request URL but the displayed tweet text is what counts. If we're
402
+ // over budget, fall back to the mock template which is short.
403
+ if (tweetText.length > 280) {
404
+ tweetText = (0, share_1.buildMockTweet)(NET_AMOUNT_USD);
405
+ }
406
+ const intentUrl = (0, share_1.buildTwitterIntentUrl)(tweetText);
407
+ // Prompt. Y = open browser, c = copy URL, anything else = decline.
408
+ output.blank();
409
+ output.print('Share your first AGIRAILS transaction on X?');
410
+ output.print(' [Y] open in browser [c] copy link only [n] skip');
411
+ let answer;
412
+ try {
413
+ answer = await deps.prompt('Choice (Y/c/n): ');
414
+ }
415
+ catch {
416
+ // Prompt failed (stdin closed mid-flight). Treat as decline.
417
+ return 'declined';
418
+ }
419
+ const trimmed = answer.trim().toLowerCase();
420
+ // Copy-only branch.
421
+ if (trimmed === 'c' || trimmed === 'copy') {
422
+ const copied = deps.copyToClipboard(intentUrl);
423
+ if (copied) {
424
+ output.info('Tweet URL copied to clipboard — paste it anywhere to share.');
425
+ }
426
+ else {
427
+ // OSC 52 unsupported. Print the URL so the user can copy manually.
428
+ output.print('Tweet URL (copy manually):');
429
+ output.print(` ${intentUrl}`);
430
+ }
431
+ return 'copy';
432
+ }
433
+ // Decline branch: any explicit "no" answer.
434
+ if (trimmed === 'n' || trimmed === 'no') {
435
+ return 'declined';
436
+ }
437
+ // Accept branch: empty (Enter), y, yes. Open browser.
438
+ const opened = deps.openUrl(intentUrl);
439
+ if (opened) {
440
+ output.info('Opening X in your browser…');
441
+ return 'tweet';
442
+ }
443
+ // Browser open failed (unsupported platform, spawn error). Fall back
444
+ // to clipboard + visible URL so the user still has a path forward.
445
+ output.warning('Could not open browser automatically.');
446
+ const copied = deps.copyToClipboard(intentUrl);
447
+ if (copied) {
448
+ output.info('Tweet URL copied to clipboard instead — paste it in your browser.');
449
+ }
450
+ else {
451
+ output.print('Open this URL to tweet:');
452
+ output.print(` ${intentUrl}`);
453
+ }
454
+ return 'failed';
455
+ }
456
+ exports.offerShareOnX = offerShareOnX;
195
457
  //# sourceMappingURL=test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;AAEH,yCAAoC;AACpC,4CAAmD;AACnD,4CAA2C;AAC3C,sDAI6B;AAC7B,kDAI2B;AAE3B,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,SAAgB,iBAAiB;IAC/B,OAAO,IAAI,mBAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,6EAA6E,CAAC;SAC1F,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,IAAI,eAAM,CACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAC1D,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iEAAiE;YACjE,iDAAiD;YACjD,IAAI,KAAK,YAAY,8BAAiB,EAAE,CAAC;gBACvC,MAAM,CAAC,WAAW,CAAC;oBACjB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;iBAC1D,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,kEAAkE;YAClE,mEAAmE;YACnE,gEAAgE;YAChE,gEAAgE;YAChE,gEAAgE;YAChE,8CAA8C;YAC9C,IAAI,KAAK,YAAY,iCAAkB,EAAE,CAAC;gBACxC,MAAM,CAAC,WAAW,CAAC;oBACjB,IAAI,EAAE,uBAAuB;oBAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE;wBACP,IAAI,EACF,qEAAqE;4BACrE,2DAA2D;qBAC9D;iBACF,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,KAAK,YAAY,uCAAwB,EAAE,CAAC;gBAC9C,MAAM,CAAC,WAAW,CAAC;oBACjB,IAAI,EAAE,0BAA0B;oBAChC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE;wBACP,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,IAAI,EACF,gBAAgB,KAAK,CAAC,MAAM,iBAAiB,KAAK,CAAC,KAAK,mBAAmB;4BAC3E,+DAA+D;4BAC/D,6EAA6E;qBAChF;iBACF,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,IAAI,KAAK,YAAY,iCAAoB,EAAE,CAAC;gBAC1C,MAAM,CAAC,WAAW,CAAC;oBACjB,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;iBACtF,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;YACD,MAAM,UAAU,GAAG,IAAA,iBAAQ,EAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,WAAW,CAAC;gBACjB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,OAAO,EAAE,UAAU,CAAC,OAAO;aAC5B,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAxED,8CAwEC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;;;;;GAOG;AACH,KAAK,UAAU,OAAO,CAAC,MAAc;IACnC,wEAAwE;IACxE,MAAM,QAAQ,GAAG,IAAA,2BAAY,EAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAE1D,sEAAsE;IACtE,wBAAwB;IACxB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjB,MAAM,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,CAAC,cAAc,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,CAAC,oCAAoC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAEjB,oEAAoE;IACpE,sEAAsE;IACtE,oEAAoE;IACpE,gEAAgE;IAChE,gDAAgD;IAChD,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAU,EAAC;QAC9B,QAAQ,EAAE,QAAQ,CAAC,OAAO;QAC1B,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;YAChC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;KACF,CAAC,CAAC;IAEH,yEAAyE;IACzE,0EAA0E;IAC1E,iFAAiF;IACjF,mEAAmE;IACnE,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACjB,MAAM,CAAC,MAAM,CACX;QACE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU;QACV,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,EACD,EAAE,QAAQ,EAAE,YAAY,EAAE,CAC3B,CAAC;IAEF,+DAA+D;IAC/D,wEAAwE;IACxE,sEAAsE;IACtE,mEAAmE;IACnE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,OAAO,CACZ,iEAAiE,MAAM,CAAC,UAAU,KAAK;YACvF,4EAA4E;YAC5E,8BAA8B,GAAG,MAAM,CAAC,IAAI,GAAG,kCAAkC,CAClF,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,OAAO,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,OAAO,CAAC,cAAc,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,sEAAsE;IACtE,qEAAqE;IACrE,kEAAkE;IAClE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAeQ,0BAAO;AAbhB,SAAS,iBAAiB,CAAC,OAAgB;IACzC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,GAAG,GAAG,OAAkC,CAAC;IAC/C,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,UAAU,CAAC;IAC9D,2DAA2D;IAC3D,wEAAwE;IACxE,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAClF,MAAM,KAAK,GAAG,GAAG,CAAC,MAAiC,CAAC;QACpD,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC,UAAU,CAAC;IACpE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/cli/commands/test.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@
40
40
  * @module cli/lib/runRequest
41
41
  */
42
42
  import { TransactionState } from '../../runtime/types/MockState';
43
+ import { type DeliveryChannel, type DeliveryError, type DeliveryPrivacy } from '../../delivery';
43
44
  export type RequestNetwork = 'mock' | 'testnet' | 'mainnet';
44
45
  export interface RunRequestOptions {
45
46
  /** Provider — checksummed or lowercase Ethereum address. */
@@ -70,6 +71,81 @@ export interface RunRequestOptions {
70
71
  stateDirectory?: string;
71
72
  /** Called for every state transition the requester observes. */
72
73
  onTransition?: (state: TransactionState, txId: string, ts: Date) => void;
74
+ /**
75
+ * Delivery channel for AIP-16 setup POST + envelope subscription.
76
+ *
77
+ * When omitted, runRequest behaves exactly as before — no setup is posted,
78
+ * no envelope subscription runs, and `payload` falls back to the legacy
79
+ * `tx.deliveryProof` parsing path. Tests and pre-AIP-16 deployments are
80
+ * unaffected.
81
+ *
82
+ * When provided AND `expectedKernelAddress` + `expectedChainId` are also
83
+ * supplied, runRequest:
84
+ * 1. signs and POSTs a `DeliverySetupWireV1` between createTransaction
85
+ * and linkEscrow,
86
+ * 2. subscribes to envelopes in parallel with state polling,
87
+ * 3. populates `RunRequestResult.payload` from the decrypted (or parsed)
88
+ * envelope body once one arrives.
89
+ */
90
+ deliveryChannel?: DeliveryChannel;
91
+ /**
92
+ * Trusted ACTP kernel address for EIP-712 setup/envelope binding.
93
+ *
94
+ * Required (alongside `deliveryChannel` + `expectedChainId`) to enable
95
+ * the AIP-16 delivery flow. Used as the EIP-712 `verifyingContract`
96
+ * domain anchor and as the envelope-verifier allowlist anchor.
97
+ */
98
+ expectedKernelAddress?: string;
99
+ /**
100
+ * Trusted EVM chain id for the AIP-16 delivery binding (e.g. 84532 for
101
+ * Base Sepolia, 8453 for Base mainnet).
102
+ *
103
+ * Required (alongside `deliveryChannel` + `expectedKernelAddress`) to
104
+ * enable the AIP-16 delivery flow.
105
+ */
106
+ expectedChainId?: number;
107
+ /**
108
+ * Grace period (in milliseconds) to keep the envelope subscription open
109
+ * AFTER the transaction reaches DELIVERED. Default 30_000 (30s).
110
+ *
111
+ * Settlement is NEVER blocked by the wait — if the envelope arrives
112
+ * before DELIVERED, `payload` is populated and the subscription closes
113
+ * early. If the grace period elapses with no envelope, runRequest
114
+ * proceeds with `payload = undefined` and `deliveryError.code =
115
+ * 'envelope_missing'` set (informational; not fatal).
116
+ */
117
+ envelopeWaitMs?: number;
118
+ /**
119
+ * Privacy posture requested in the buyer setup. Default `"public"`.
120
+ *
121
+ * `"public"`: setup carries `buyerEphemeralPubkey = CANONICAL_EMPTY_BYTES32`;
122
+ * envelope body is plaintext UTF-8 JSON (`public-v1` scheme); no
123
+ * ephemeral keypair is generated.
124
+ *
125
+ * `"encrypted"`: an ephemeral X25519 keypair is generated for this
126
+ * call; the public key is embedded in the signed setup; the private
127
+ * key is held in this closure ONLY (never persisted, never returned)
128
+ * and used to decrypt the envelope body once it arrives.
129
+ */
130
+ deliveryPrivacy?: DeliveryPrivacy;
131
+ /**
132
+ * CoinbaseSmartWallet factory nonce used to derive the buyer's
133
+ * `requesterAddress` from the EOA `signerAddress`. Default `0` (the
134
+ * first wallet per owner).
135
+ *
136
+ * H4 fix (AIP-16 Phase 3 HIGH) — high-level surface. Buyers whose
137
+ * Smart Wallet was deployed at a non-zero factory nonce MUST pass that
138
+ * nonce here so the AIP-16 server-side derivation lands on the correct
139
+ * address. Omitting it (or passing `0`) reproduces the legacy behavior
140
+ * and yields byte-identical signing for the vast majority of callers
141
+ * (auto-wallet deploys at nonce=0).
142
+ *
143
+ * Threaded into {@link DeliverySetupBuilder.build}. Negative or
144
+ * non-integer values are rejected by the builder with
145
+ * `BUILDER_INVALID_SMART_WALLET_NONCE` (surfaces as `setup_post_failed`
146
+ * `deliveryError` here — settlement still proceeds).
147
+ */
148
+ smartWalletNonce?: number;
73
149
  }
74
150
  export declare class QuoteTimeoutError extends Error {
75
151
  readonly txId: string;
@@ -105,6 +181,20 @@ export interface RunRequestResult {
105
181
  * - network is 'mock' (no real chain ⇒ no real receipt to publish)
106
182
  */
107
183
  receiptUrl: string | null;
184
+ /**
185
+ * Structured non-fatal delivery error if any AIP-16 step failed.
186
+ *
187
+ * Set when:
188
+ * - the setup POST timed out or failed (`setup_post_failed`),
189
+ * - the envelope grace period elapsed with no envelope (`envelope_missing`),
190
+ * - envelope decryption / parsing failed (`envelope_decrypt_failed`).
191
+ *
192
+ * NEVER set when the delivery channel was not provided (AIP-16 was off).
193
+ * Settlement is never blocked by these failures — the channel is a
194
+ * convenience layer, not a fund-flow gate. Callers MAY surface this
195
+ * error in CLI output to help users diagnose channel/relay issues.
196
+ */
197
+ deliveryError?: DeliveryError;
108
198
  }
109
199
  /**
110
200
  * Execute a Level 1 negotiated request end-to-end.
@@ -1 +1 @@
1
- {"version":3,"file":"runRequest.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/runRequest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE5D,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,yCAAyC;IACzC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,CAAC;CAC1E;AAED,qBAAa,iBAAkB,SAAQ,KAAK;aACd,IAAI,EAAE,MAAM;aAAkB,SAAS,EAAE,MAAM;gBAA/C,IAAI,EAAE,MAAM,EAAkB,SAAS,EAAE,MAAM;CAQ5E;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,IAAI,EAAE,MAAM;aACZ,SAAS,EAAE,MAAM;aACjB,SAAS,EAAE,gBAAgB;gBAF3B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,gBAAgB;CAQ9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,UAAU,EAAE,gBAAgB,CAAC;IAC7B,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;OAUG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAKD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+OnF"}
1
+ {"version":3,"file":"runRequest.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/runRequest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,aAAa,EAElB,KAAK,eAAe,EAErB,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AA0B5D,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,yCAAyC;IACzC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,KAAK,IAAI,CAAC;IAMzE;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;;;;;;;;;;;;;;OAgBG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;aACd,IAAI,EAAE,MAAM;aAAkB,SAAS,EAAE,MAAM;gBAA/C,IAAI,EAAE,MAAM,EAAkB,SAAS,EAAE,MAAM;CAQ5E;AAED,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,IAAI,EAAE,MAAM;aACZ,SAAS,EAAE,MAAM;aACjB,SAAS,EAAE,gBAAgB;gBAF3B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,gBAAgB;CAQ9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,UAAU,EAAE,gBAAgB,CAAC;IAC7B,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;OAUG;IACH,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAKD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmgBnF"}