agentcard 0.0.22 → 0.0.24

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 (39) hide show
  1. package/dist/src/commands/3ds.d.ts +1 -0
  2. package/dist/src/commands/3ds.js +45 -0
  3. package/dist/src/commands/3ds.js.map +1 -0
  4. package/dist/src/commands/setup.js +43 -6
  5. package/dist/src/commands/setup.js.map +1 -1
  6. package/dist/src/commands/signup.js +1 -1
  7. package/dist/src/commands/signup.js.map +1 -1
  8. package/dist/src/commands/wallet/balance.d.ts +1 -0
  9. package/dist/src/commands/wallet/balance.js +19 -0
  10. package/dist/src/commands/wallet/balance.js.map +1 -0
  11. package/dist/src/commands/wallet/fetch.d.ts +8 -0
  12. package/dist/src/commands/wallet/fetch.js +147 -0
  13. package/dist/src/commands/wallet/fetch.js.map +1 -0
  14. package/dist/src/commands/wallet/info.d.ts +1 -0
  15. package/dist/src/commands/wallet/info.js +29 -0
  16. package/dist/src/commands/wallet/info.js.map +1 -0
  17. package/dist/src/commands/wallet/send.d.ts +6 -0
  18. package/dist/src/commands/wallet/send.js +80 -0
  19. package/dist/src/commands/wallet/send.js.map +1 -0
  20. package/dist/src/commands/whoami.js +12 -0
  21. package/dist/src/commands/whoami.js.map +1 -1
  22. package/dist/src/index.js +38 -1
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/lib/api.d.ts +7 -0
  25. package/dist/src/lib/api.js +28 -2
  26. package/dist/src/lib/api.js.map +1 -1
  27. package/dist/src/lib/policy-intent.d.ts +13 -0
  28. package/dist/src/lib/policy-intent.js +95 -0
  29. package/dist/src/lib/policy-intent.js.map +1 -0
  30. package/dist/src/lib/privy.d.ts +19 -0
  31. package/dist/src/lib/privy.js +214 -0
  32. package/dist/src/lib/privy.js.map +1 -0
  33. package/dist/src/lib/smart-wallet.d.ts +13 -0
  34. package/dist/src/lib/smart-wallet.js +90 -0
  35. package/dist/src/lib/smart-wallet.js.map +1 -0
  36. package/dist/src/lib/usdc.d.ts +11088 -0
  37. package/dist/src/lib/usdc.js +42 -0
  38. package/dist/src/lib/usdc.js.map +1 -0
  39. package/package.json +7 -2
@@ -0,0 +1 @@
1
+ export declare function threeDS(): Promise<void>;
@@ -0,0 +1,45 @@
1
+ import chalk from "chalk";
2
+ import ora from "ora";
3
+ import { get } from "../lib/api.js";
4
+ function formatAge(receivedAt) {
5
+ const timestamp = new Date(receivedAt).getTime();
6
+ if (!Number.isFinite(timestamp))
7
+ return "";
8
+ const seconds = Math.max(0, Math.floor((Date.now() - timestamp) / 1000));
9
+ if (seconds < 10)
10
+ return "just now";
11
+ if (seconds < 60)
12
+ return `${seconds}s ago`;
13
+ const minutes = Math.floor(seconds / 60);
14
+ return `${minutes}m ago`;
15
+ }
16
+ export async function threeDS() {
17
+ const spinner = ora("Fetching recent 3DS codes...").start();
18
+ let res;
19
+ try {
20
+ res = await get("/api/3ds-codes");
21
+ }
22
+ catch (err) {
23
+ spinner.fail(`Failed to fetch 3DS codes: ${err instanceof Error ? err.message : "Unknown error"}`);
24
+ process.exit(1);
25
+ }
26
+ spinner.stop();
27
+ const codes = res.codes ?? [];
28
+ console.log("");
29
+ console.log(chalk.bold(" Recent 3DS codes"));
30
+ console.log(chalk.dim(" ───────────────────────"));
31
+ if (codes.length === 0) {
32
+ console.log(chalk.yellow(" No recent 3DS codes."));
33
+ console.log("");
34
+ console.log(chalk.dim(" Make sure checkout requested a 3DS challenge. Codes usually appear here within a few seconds."));
35
+ return;
36
+ }
37
+ for (const item of codes) {
38
+ const amount = `USD ${item.amount.toFixed(2)}`;
39
+ const age = formatAge(item.receivedAt);
40
+ console.log(` ${chalk.white(item.code)} ${chalk.green(amount.padEnd(10))} ${chalk.dim(age)}`);
41
+ }
42
+ console.log("");
43
+ console.log(chalk.dim(" No match? Re-run `agentcard 3ds` after checkout sends the challenge."));
44
+ }
45
+ //# sourceMappingURL=3ds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3ds.js","sourceRoot":"","sources":["../../../src/commands/3ds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAapC,SAAS,SAAS,CAAC,UAAkB;IACnC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IACzE,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,UAAU,CAAC;IACpC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAC;IAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,OAAO,GAAG,OAAO,OAAO,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO;IAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE5D,IAAI,GAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,GAAG,CAAuB,gBAAgB,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACrF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAEpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,iGAAiG,CAClG,CACF,CAAC;QACF,OAAO;IACT,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CACpF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,wEAAwE,CACzE,CACF,CAAC;AACJ,CAAC"}
@@ -3,9 +3,25 @@ import open from "open";
3
3
  import ora from "ora";
4
4
  import inquirer from "inquirer";
5
5
  import { del, get, patch, post } from "../lib/api.js";
6
+ import { ensureDelegated } from "../lib/smart-wallet.js";
6
7
  const POLL_INTERVAL = 2000;
7
8
  const PM_TIMEOUT = 5 * 60 * 1000;
8
9
  const E164 = /^\+[1-9]\d{1,14}$/;
10
+ async function provisionWallet() {
11
+ const spinner = ora("Setting up wallet on Base...").start();
12
+ try {
13
+ const res = await post("/api/wallet/setup");
14
+ // 7702-delegate immediately so x402's sign-only flow has 1271 code at the
15
+ // address (the merchant's facilitator submits, never our wallet, so this
16
+ // is the only chance we get to put code there). Idempotent — short-circuits
17
+ // if already delegated.
18
+ await ensureDelegated();
19
+ spinner.succeed(chalk.green(`Wallet ready: ${res.address}`));
20
+ }
21
+ catch (err) {
22
+ spinner.warn(`Couldn't set up wallet: ${err instanceof Error ? err.message : "Unknown error"}. Re-run \`agentcard setup\` to retry.`);
23
+ }
24
+ }
9
25
  async function provisionAgentEmail() {
10
26
  const spinner = ora("Provisioning agent email...").start();
11
27
  try {
@@ -17,8 +33,8 @@ async function provisionAgentEmail() {
17
33
  }
18
34
  }
19
35
  function renderStatus(me) {
20
- const line = (label, value, masked = false) => {
21
- const v = value ? (masked ? chalk.dim(value) : value) : chalk.yellow("(missing)");
36
+ const line = (label, value) => {
37
+ const v = value ? value : chalk.yellow("(missing)");
22
38
  return ` ${chalk.bold(label.padEnd(14))} ${v}`;
23
39
  };
24
40
  const pm = me.paymentMethod;
@@ -32,6 +48,7 @@ function renderStatus(me) {
32
48
  console.log(line("Phone:", me.phoneNumber));
33
49
  console.log(line("Payment:", pmStr));
34
50
  console.log(line("Agent email:", me.agentEmail));
51
+ console.log(line("Base wallet:", me.walletAddress));
35
52
  console.log(" " + "─".repeat(44) + "\n");
36
53
  }
37
54
  async function promptIfMissing(fieldLabel, current, validator, interactive) {
@@ -110,13 +127,15 @@ export async function setup(opts) {
110
127
  !!me.lastName &&
111
128
  !!me.phoneNumber &&
112
129
  !!me.paymentMethod &&
113
- !!me.agentEmail;
130
+ !!me.agentEmail &&
131
+ !!me.walletAddress;
114
132
  if (fullyConfigured && noFlagsGiven && !opts.reset) {
115
133
  console.log(chalk.green(`You're all set. Spend limit: $${(me.spendLimitCents / 100).toFixed(2)}.`));
116
- console.log(chalk.dim("Run `agentcard request new --amount <dollars>` to issue a card, `agentcard limit --amount <dollars>` to change your limit, or `agentcard setup --reset` to clear your profile."));
134
+ printHints({ includeReset: true });
117
135
  return;
118
136
  }
119
- // Collect first name, last name, phone (only if missing or overridden by flag)
137
+ // Profile fields are for our records and agent email provisioning. Stripe
138
+ // cardholders use AgentCard's issuing identity for checkout details.
120
139
  const first = (opts.firstName ?? "").trim() ||
121
140
  (await promptIfMissing("First name", me.firstName, (v) => v.trim().length > 0 || "Required", interactive));
122
141
  const last = (opts.lastName ?? "").trim() ||
@@ -135,6 +154,10 @@ export async function setup(opts) {
135
154
  console.error(chalk.red(`Missing required fields. Run interactively, or pass: ${missingNow.join(" ")}`));
136
155
  process.exit(1);
137
156
  }
157
+ if (!E164.test(phone)) {
158
+ console.error(chalk.red("Phone must include the country code with a + prefix, e.g. +14155551234"));
159
+ process.exit(1);
160
+ }
138
161
  if (first !== me.firstName || last !== me.lastName || phone !== me.phoneNumber) {
139
162
  const saving = ora("Saving profile...").start();
140
163
  try {
@@ -159,8 +182,22 @@ export async function setup(opts) {
159
182
  console.log(chalk.bold("\nAgent email"));
160
183
  await provisionAgentEmail();
161
184
  }
185
+ console.log(chalk.bold("\nWallet"));
186
+ await provisionWallet();
162
187
  console.log("");
163
188
  console.log(chalk.green(`Setup complete. Spend limit: $${(me.spendLimitCents / 100).toFixed(2)}.`));
164
- console.log(chalk.dim("Run `agentcard limit --amount <dollars>` to change it, or `agentcard request new --amount <dollars>` to issue a card."));
189
+ printHints({ includeReset: false });
190
+ }
191
+ function printHints(opts) {
192
+ const lines = [
193
+ "Issue a single-use card: agentcard request new --amount <dollars>",
194
+ "Pay an x402 endpoint: agentcard wallet fetch <url>",
195
+ "Update your spend limit: agentcard limit --amount <dollars>",
196
+ ];
197
+ if (opts.includeReset) {
198
+ lines.push("Reset your profile: agentcard setup --reset");
199
+ }
200
+ for (const l of lines)
201
+ console.log(chalk.dim(` ${l}`));
165
202
  }
166
203
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/commands/setup.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ const API_URL = process.env.AGENTCARD_API_URL || "https://agentcard.ai";
8
8
  const POLL_INTERVAL = 2000;
9
9
  const TIMEOUT = 5 * 60 * 1000;
10
10
  function formatTerms(appUrl) {
11
- return `By using AgentCard you acknowledge this is a beta service governed by our terms: ${appUrl}/terms.`;
11
+ return `AgentCard provides virtual cards designed for use by AI agents. By using AgentCard, you acknowledge that this is a beta service governed by the following terms: ${appUrl}/terms.`;
12
12
  }
13
13
  export async function signup(opts) {
14
14
  console.log(chalk.dim(formatTerms(API_URL)));
@@ -1 +1 @@
1
- {"version":3,"file":"signup.js","sourceRoot":"","sources":["../../../src/commands/signup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signup.js","sourceRoot":"","sources":["../../../src/commands/signup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function walletBalance(): Promise<void>;
@@ -0,0 +1,19 @@
1
+ import chalk from "chalk";
2
+ import { get } from "../../lib/api.js";
3
+ import { formatUsdc, getUsdcBalance } from "../../lib/usdc.js";
4
+ export async function walletBalance() {
5
+ try {
6
+ const me = await get("/api/me");
7
+ if (!me.walletAddress) {
8
+ console.error(chalk.red("Wallet not provisioned. Run `agentcard setup` first."));
9
+ process.exit(1);
10
+ }
11
+ const bal = await getUsdcBalance(me.walletAddress);
12
+ console.log(formatUsdc(bal));
13
+ }
14
+ catch (err) {
15
+ console.error(chalk.red(`Couldn't load wallet balance: ${err instanceof Error ? err.message : String(err)}`));
16
+ process.exit(1);
17
+ }
18
+ }
19
+ //# sourceMappingURL=balance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../../src/commands/wallet/balance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAM/D,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,GAAG,CAAK,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAClE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,EAAE,CAAC,aAA8B,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACpF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface FetchOpts {
2
+ method?: string;
3
+ header?: string[];
4
+ data?: string;
5
+ maxCost?: string;
6
+ }
7
+ export declare function walletFetch(url: string, opts: FetchOpts): Promise<void>;
8
+ export {};
@@ -0,0 +1,147 @@
1
+ import chalk from "chalk";
2
+ import { x402Client, x402HTTPClient, wrapFetchWithPayment, } from "@x402/fetch";
3
+ import { ExactEvmScheme } from "@x402/evm/exact/client";
4
+ import { ensureWalletReady } from "../../lib/privy.js";
5
+ import { getX402Signer } from "../../lib/smart-wallet.js";
6
+ import { parseUsdc } from "../../lib/usdc.js";
7
+ import { post, ApiError } from "../../lib/api.js";
8
+ // Backend tracking is best-effort — never let a logging failure poison the
9
+ // user's actual fetch result.
10
+ async function track(payload) {
11
+ try {
12
+ await post("/api/wallet/track", payload);
13
+ }
14
+ catch (err) {
15
+ if (process.env.AGENTCARD_DEBUG) {
16
+ console.error(chalk.dim(`[track] failed: ${err instanceof Error ? err.message : String(err)}`));
17
+ }
18
+ }
19
+ }
20
+ // `agentcard wallet fetch <url> [--method GET] [--header K:V] [--data BODY] [--max-cost <usdc>]`
21
+ //
22
+ // Wraps native fetch with x402 payment handling. If the endpoint returns 402
23
+ // with x402 payment requirements, this auto-pays via the user's wallet
24
+ // (sponsored gas, USDC on Base) and retries. The body of the final response
25
+ // is printed to stdout.
26
+ export async function walletFetch(url, opts) {
27
+ if (!url) {
28
+ console.error(chalk.red("Usage: agentcard wallet fetch <url>"));
29
+ process.exit(1);
30
+ }
31
+ await ensureWalletReady();
32
+ const maxCostAtomic = opts.maxCost ? parseUsdc(opts.maxCost) : null;
33
+ const headers = {};
34
+ for (const h of opts.header ?? []) {
35
+ const idx = h.indexOf(":");
36
+ if (idx <= 0) {
37
+ console.error(chalk.red(`Invalid header: ${h} (expected "Key: Value")`));
38
+ process.exit(1);
39
+ }
40
+ headers[h.slice(0, idx).trim()] = h.slice(idx + 1).trim();
41
+ }
42
+ const init = {
43
+ method: opts.method ?? "GET",
44
+ headers,
45
+ };
46
+ if (opts.data)
47
+ init.body = opts.data;
48
+ // Populated by the onAfterPaymentCreation hook below when a payment is
49
+ // signed. Null when the endpoint didn't require payment. Held in an object
50
+ // so TS doesn't narrow the closure assignment to `never`.
51
+ const captured = { req: null };
52
+ try {
53
+ const signer = await getX402Signer();
54
+ const client = new x402Client();
55
+ client.register("eip155:8453", new ExactEvmScheme(signer));
56
+ client.onAfterPaymentCreation(async (ctx) => {
57
+ captured.req = ctx.selectedRequirements;
58
+ });
59
+ // Hard ceiling on per-request payment, enforced before signing. If every
60
+ // requirement exceeds the cap the policy returns empty and the wrapped
61
+ // fetch throws — caught below and surfaced as `fetch failed: ...`.
62
+ if (maxCostAtomic !== null) {
63
+ const cap = maxCostAtomic;
64
+ client.registerPolicy((_v, reqs) => reqs.filter((r) => BigInt(r.amount) <= cap));
65
+ }
66
+ const fetchWithPay = wrapFetchWithPayment(globalThis.fetch, client);
67
+ const res = await fetchWithPay(url, init);
68
+ const body = await res.text();
69
+ // Decode payment receipt from response header, if present. The server
70
+ // only sets x-payment-response when settlement actually ran, so a missing
71
+ // header means "no payment was required" — not an error.
72
+ let settle = null;
73
+ if (res.headers.get("x-payment-response")) {
74
+ try {
75
+ const s = new x402HTTPClient(client).getPaymentSettleResponse((n) => res.headers.get(n));
76
+ settle = {
77
+ transaction: s.transaction ?? null,
78
+ payer: s.payer ?? null,
79
+ errorReason: s.errorReason ?? null,
80
+ errorMessage: s.errorMessage ?? null,
81
+ };
82
+ }
83
+ catch {
84
+ // ignore decode failure; tracking is best-effort
85
+ }
86
+ }
87
+ await track({
88
+ url,
89
+ success: res.ok && (settle ? !settle.errorReason : true),
90
+ httpStatus: res.status,
91
+ payment: captured.req
92
+ ? {
93
+ network: captured.req.network,
94
+ asset: captured.req.asset,
95
+ amountAtomic: captured.req.amount,
96
+ payTo: captured.req.payTo,
97
+ }
98
+ : null,
99
+ settle,
100
+ });
101
+ if (!res.ok)
102
+ console.error(chalk.red(`HTTP ${res.status}`));
103
+ if (settle?.errorReason) {
104
+ console.error(chalk.red(`payment settlement failed: ${settle.errorReason}` +
105
+ (settle.errorMessage ? ` — ${settle.errorMessage}` : "")));
106
+ }
107
+ process.stdout.write(body);
108
+ if (!res.ok || settle?.errorReason)
109
+ process.exit(2);
110
+ }
111
+ catch (err) {
112
+ const message = err instanceof Error ? err.message : String(err);
113
+ await track({
114
+ url,
115
+ success: false,
116
+ httpStatus: 0,
117
+ payment: captured.req
118
+ ? {
119
+ network: captured.req.network,
120
+ asset: captured.req.asset,
121
+ amountAtomic: captured.req.amount,
122
+ payTo: captured.req.payTo,
123
+ }
124
+ : null,
125
+ settle: {
126
+ transaction: null,
127
+ payer: null,
128
+ errorReason: "client_error",
129
+ errorMessage: message,
130
+ },
131
+ });
132
+ console.error(chalk.red(`fetch failed: ${message}`));
133
+ if (err instanceof ApiError && err.body && typeof err.body === "object") {
134
+ const b = err.body;
135
+ if (typeof b.spendLimitCents === "number" &&
136
+ typeof b.spentCents === "number" &&
137
+ typeof b.requestedCents === "number") {
138
+ const fmt = (c) => `$${(c / 100).toFixed(2)}`;
139
+ console.error(chalk.dim(` limit: ${fmt(b.spendLimitCents)}, ` +
140
+ `spent: ${fmt(b.spentCents)}, ` +
141
+ `this request: ${fmt(b.requestedCents)}`));
142
+ }
143
+ }
144
+ process.exit(1);
145
+ }
146
+ }
147
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../../src/commands/wallet/fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function walletInfo(): Promise<void>;
@@ -0,0 +1,29 @@
1
+ import chalk from "chalk";
2
+ import ora from "ora";
3
+ import { get } from "../../lib/api.js";
4
+ import { formatUsdc, getUsdcBalance } from "../../lib/usdc.js";
5
+ export async function walletInfo() {
6
+ const spinner = ora("Loading wallet…").start();
7
+ try {
8
+ const me = await get("/api/me");
9
+ if (!me.walletAddress) {
10
+ spinner.fail("Wallet not provisioned. Run `agentcard setup` first.");
11
+ process.exit(1);
12
+ }
13
+ const address = me.walletAddress;
14
+ const balance = await getUsdcBalance(address);
15
+ spinner.stop();
16
+ console.log(chalk.bold("\n Wallet"));
17
+ console.log(" " + "─".repeat(44));
18
+ console.log(` ${chalk.bold("Address:".padEnd(14))} ${address}`);
19
+ console.log(` ${chalk.bold("USDC:".padEnd(14))} ${formatUsdc(balance)}`);
20
+ console.log(` ${chalk.bold("Network:".padEnd(14))} Base`);
21
+ console.log(" " + "─".repeat(44));
22
+ console.log(chalk.dim(`\n Fund it: send USDC on Base to ${address}\n https://basescan.org/address/${address}\n`));
23
+ }
24
+ catch (err) {
25
+ spinner.fail(`Couldn't load wallet: ${err instanceof Error ? err.message : String(err)}`);
26
+ process.exit(1);
27
+ }
28
+ }
29
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../src/commands/wallet/info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAM/D,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,GAAG,CAAK,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,EAAE,CAAC,aAA8B,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CACP,qCAAqC,OAAO,oCAAoC,OAAO,IAAI,CAC5F,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CACV,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC5E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface SendOpts {
2
+ to?: string;
3
+ amount?: string;
4
+ }
5
+ export declare function walletSend(opts: SendOpts): Promise<void>;
6
+ export {};
@@ -0,0 +1,80 @@
1
+ import chalk from "chalk";
2
+ import ora from "ora";
3
+ import { isAddress } from "viem";
4
+ import { ensureWalletReady } from "../../lib/privy.js";
5
+ import { getSmartWalletClient } from "../../lib/smart-wallet.js";
6
+ import { withPreparedUserOps, } from "../../lib/policy-intent.js";
7
+ import { USDC_BASE, encodeUsdcTransfer, parseUsdc } from "../../lib/usdc.js";
8
+ export async function walletSend(opts) {
9
+ const to = opts.to?.trim();
10
+ const amount = opts.amount?.trim();
11
+ if (!to || !amount) {
12
+ console.error(chalk.red("Both --to <address> and --amount <usdc> are required"));
13
+ process.exit(1);
14
+ }
15
+ if (!isAddress(to)) {
16
+ console.error(chalk.red(`Invalid recipient: ${to}`));
17
+ process.exit(1);
18
+ }
19
+ let atomic;
20
+ try {
21
+ atomic = parseUsdc(amount);
22
+ }
23
+ catch {
24
+ console.error(chalk.red(`Invalid amount: ${amount}`));
25
+ process.exit(1);
26
+ }
27
+ if (atomic <= 0n) {
28
+ console.error(chalk.red("Amount must be positive"));
29
+ process.exit(1);
30
+ }
31
+ await ensureWalletReady();
32
+ // Manually orchestrate prepare → sign → send so we can register the prepared
33
+ // userOp before the signing step. The backend at /api/wallet/rpc rejects
34
+ // secp256k1_sign without an intent; the registry binds expected hash → userOp
35
+ // so when the smart wallet client asks our LocalAccount to sign, we pass the
36
+ // userOp through for policy-check + spend-limit enforcement.
37
+ const sendSpinner = ora(`Sending ${amount} USDC to ${to}…`).start();
38
+ try {
39
+ const client = await getSmartWalletClient();
40
+ const data = encodeUsdcTransfer(to, atomic);
41
+ const prepared = await client.prepareCalls({
42
+ calls: [{ to: USDC_BASE, value: 0n, data }],
43
+ });
44
+ // prepareCalls returns one of:
45
+ // - "user-operation-v070" — single userOp (post-bootstrap)
46
+ // - "array" — bootstrap path with [authorization, user-operation-v070]
47
+ // For the array case we still register every userOp inside; the
48
+ // authorization step uses signAuthorization (not signMessage) and is
49
+ // handled by the policy's eth_sign7702Authorization branch directly.
50
+ const registeredOps = prepared.type === "user-operation-v070"
51
+ ? [prepared.data]
52
+ : prepared.type === "array"
53
+ ? prepared.data
54
+ .filter((item) => item.type === "user-operation-v070")
55
+ .map((item) => item.data)
56
+ : (() => {
57
+ throw new Error(`unsupported prepared call type: ${prepared.type}`);
58
+ })();
59
+ const signedAndSent = await withPreparedUserOps(registeredOps, async () => {
60
+ const signed = await client.signPreparedCalls(prepared);
61
+ return client.sendPreparedCalls(signed);
62
+ });
63
+ const result = await client.waitForCallsStatus({ id: signedAndSent.id });
64
+ sendSpinner.stop();
65
+ if (result.status !== "success") {
66
+ console.error(chalk.red(`Send failed (status: ${result.status})`));
67
+ process.exit(1);
68
+ }
69
+ const txHash = result.receipts?.[0]?.transactionHash;
70
+ console.log(chalk.green(`✓ Sent ${amount} USDC to ${to}`));
71
+ if (txHash) {
72
+ console.log(chalk.dim(` https://basescan.org/tx/${txHash}`));
73
+ }
74
+ }
75
+ catch (err) {
76
+ sendSpinner.fail(`Send failed: ${err instanceof Error ? err.message : String(err)}`);
77
+ process.exit(1);
78
+ }
79
+ }
80
+ //# sourceMappingURL=send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../../src/commands/wallet/send.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import chalk from "chalk";
2
2
  import { get } from "../lib/api.js";
3
3
  import { getConfig } from "../lib/config.js";
4
+ import { formatUsdc, getUsdcBalance } from "../lib/usdc.js";
4
5
  export async function whoami() {
5
6
  const config = getConfig();
6
7
  if (!config.token) {
@@ -13,6 +14,17 @@ export async function whoami() {
13
14
  if (result.agentEmail) {
14
15
  console.log(` ${chalk.bold("Agent email:")} ${result.agentEmail}`);
15
16
  }
17
+ if (result.walletAddress) {
18
+ let balance = "(unknown)";
19
+ try {
20
+ const bal = await getUsdcBalance(result.walletAddress);
21
+ balance = `${formatUsdc(bal)} USDC`;
22
+ }
23
+ catch {
24
+ /* RPC unavailable — fall through with placeholder */
25
+ }
26
+ console.log(` ${chalk.bold("Wallet:")} ${result.walletAddress} (Base, ${balance})`);
27
+ }
16
28
  }
17
29
  catch {
18
30
  console.error(chalk.red("Failed to verify session. Try `agentcard signup` again."));
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAO7C,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAa,SAAS,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAC;IACtF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/commands/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQ5D,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAa,SAAS,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,OAAO,GAAG,WAAW,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,aAA8B,CAAC,CAAC;gBACxE,OAAO,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,qDAAqD;YACvD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,MAAM,CAAC,aAAa,WAAW,OAAO,GAAG,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAC;IACtF,CAAC;AACH,CAAC"}