agentcard 0.0.10 → 0.0.12

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.
@@ -1,8 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import { program } from "../src/index.js";
3
+ import { checkForUpdate } from "../src/lib/update-check.js";
3
4
  process.on("SIGINT", () => {
4
5
  console.log("\nAborted.");
5
6
  process.exit(0);
6
7
  });
8
+ checkForUpdate();
7
9
  program.parse();
8
- //# sourceMappingURL=apk.js.map
10
+ //# sourceMappingURL=agentcard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentcard.js","sourceRoot":"","sources":["../../bin/agentcard.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,cAAc,EAAE,CAAC;AACjB,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import chalk from "chalk";
2
+ import inquirer from "inquirer";
2
3
  import open from "open";
3
4
  import ora from "ora";
4
5
  import { get, post } from "../../lib/api.js";
@@ -9,6 +10,47 @@ const TIMEOUT = 10 * 60 * 1000;
9
10
  function formatDollars(cents) {
10
11
  return `$${(cents / 100).toFixed(2)}`;
11
12
  }
13
+ async function requestCustomCard(amountCents) {
14
+ let cents = amountCents;
15
+ if (!cents) {
16
+ const { amount: rawAmount } = await inquirer.prompt([
17
+ {
18
+ type: "input",
19
+ name: "amount",
20
+ message: "Enter amount in dollars (e.g. 75):",
21
+ validate: (v) => {
22
+ const n = parseFloat(v);
23
+ if (isNaN(n) || n <= 0)
24
+ return "Enter a valid dollar amount";
25
+ if (!Number.isInteger(n))
26
+ return "Amount must be a whole dollar value (no cents)";
27
+ if (n < 20)
28
+ return "Minimum amount is $20";
29
+ if (n > 200)
30
+ return "Maximum amount is $200";
31
+ return true;
32
+ },
33
+ },
34
+ ]);
35
+ cents = Math.round(parseFloat(rawAmount) * 100);
36
+ }
37
+ console.log("");
38
+ console.log(chalk.yellow("Note: Most cards are delivered quickly. During high demand, it may take up to 72 hours."));
39
+ console.log("");
40
+ const spinner = ora("Creating checkout session...").start();
41
+ try {
42
+ const res = await post("/api/cards/request", { amountCents: cents });
43
+ spinner.stop();
44
+ console.log("");
45
+ console.log(chalk.green(`Complete payment to request your ${formatDollars(cents)} card:`));
46
+ console.log("");
47
+ console.log(` ${res.url}`);
48
+ console.log("");
49
+ }
50
+ catch (err) {
51
+ spinner.fail(`Failed to submit request: ${err instanceof Error ? err.message : "Unknown error"}`);
52
+ }
53
+ }
12
54
  async function getAvailableDenominations() {
13
55
  const res = await get("/api/cards/denominations");
14
56
  return res.denominations;
@@ -21,10 +63,6 @@ function printAvailable(denominations) {
21
63
  }
22
64
  export async function createCard(amount) {
23
65
  const denominations = await getAvailableDenominations();
24
- if (denominations.length === 0) {
25
- console.error(chalk.red("No cards available right now. Check back later."));
26
- process.exit(1);
27
- }
28
66
  let dollars;
29
67
  if (amount) {
30
68
  dollars = parseInt(amount, 10);
@@ -32,11 +70,18 @@ export async function createCard(amount) {
32
70
  console.error(chalk.red("Amount must be a positive integer (in dollars)."));
33
71
  process.exit(1);
34
72
  }
35
- const match = denominations.find((d) => d.amountCents === dollars * 100);
36
- if (!match) {
37
- console.error(chalk.red(`No $${dollars} cards available.`));
38
- printAvailable(denominations);
39
- process.exit(1);
73
+ if (denominations.length > 0) {
74
+ const match = denominations.find((d) => d.amountCents === dollars * 100);
75
+ if (!match) {
76
+ console.error(chalk.red(`No $${dollars} cards available.`));
77
+ printAvailable(denominations);
78
+ process.exit(1);
79
+ }
80
+ }
81
+ else {
82
+ // No cards available — offer to request
83
+ await requestCustomCard(dollars * 100);
84
+ return;
40
85
  }
41
86
  }
42
87
  else {
@@ -44,6 +89,16 @@ export async function createCard(amount) {
44
89
  name: formatDollars(d.amountCents),
45
90
  value: d.amountCents / 100,
46
91
  }));
92
+ // Add custom request option
93
+ choices.push({
94
+ name: "Request custom amount",
95
+ value: -1,
96
+ });
97
+ if (denominations.length === 0) {
98
+ console.log(chalk.dim("No cards available right now."));
99
+ await requestCustomCard();
100
+ return;
101
+ }
47
102
  const answers = await prompt([
48
103
  {
49
104
  type: "list",
@@ -53,6 +108,10 @@ export async function createCard(amount) {
53
108
  },
54
109
  ]);
55
110
  dollars = Number(answers.dollars);
111
+ if (dollars === -1) {
112
+ await requestCustomCard();
113
+ return;
114
+ }
56
115
  }
57
116
  const spinner = ora("Creating checkout session...").start();
58
117
  let purchase;
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/cards/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../src/commands/cards/create.ts"],"names":[],"mappings":"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"}
@@ -2,27 +2,42 @@ import chalk from "chalk";
2
2
  import { get } from "../../lib/api.js";
3
3
  export async function listCards() {
4
4
  let cards;
5
+ let requests = [];
5
6
  try {
6
7
  const res = await get("/api/cards");
7
8
  cards = res.cards;
9
+ requests = res.requests ?? [];
8
10
  }
9
11
  catch (err) {
10
12
  console.error(chalk.red(`Failed to fetch cards: ${err instanceof Error ? err.message : "Unknown error"}`));
11
13
  process.exit(1);
12
14
  }
13
- if (cards.length === 0) {
15
+ if (cards.length === 0 && requests.length === 0) {
14
16
  console.log(chalk.yellow('No cards yet. Run `agentcard cards create` to get started.'));
15
17
  return;
16
18
  }
17
- const idWidth = Math.max(4, ...cards.map((c) => c.id.length)) + 2;
18
- const header = `${"ID".padEnd(idWidth)} ${"Last 4".padEnd(8)} ${"Amount".padEnd(10)} Purchased`;
19
- console.log(chalk.bold(header));
20
- console.log("-".repeat(header.length));
21
- for (const card of cards) {
22
- const amount = `$${(card.amountCents / 100).toFixed(2)}`;
23
- const date = card.purchasedAt ? new Date(card.purchasedAt).toLocaleDateString() : "-";
24
- console.log(`${card.id.padEnd(idWidth)} ${card.last4.padEnd(8)} ${amount.padEnd(10)} ${date}`);
19
+ if (cards.length > 0) {
20
+ const idWidth = Math.max(4, ...cards.map((c) => c.id.length)) + 2;
21
+ const header = `${"ID".padEnd(idWidth)} ${"Last 4".padEnd(8)} ${"Amount".padEnd(10)} Purchased`;
22
+ console.log(chalk.bold(header));
23
+ console.log("-".repeat(header.length));
24
+ for (const card of cards) {
25
+ const amount = `$${(card.amountCents / 100).toFixed(2)}`;
26
+ const date = card.purchasedAt ? new Date(card.purchasedAt).toLocaleDateString() : "-";
27
+ console.log(`${card.id.padEnd(idWidth)} ${card.last4.padEnd(8)} ${amount.padEnd(10)} ${date}`);
28
+ }
29
+ console.log(chalk.dim(`\nRun \`agentcard cards details <id>\` to view full card details.`));
30
+ }
31
+ if (requests.length > 0) {
32
+ console.log("");
33
+ console.log(chalk.bold("Pending Requests"));
34
+ console.log("-".repeat(40));
35
+ for (const req of requests) {
36
+ const amount = `$${(req.amountCents / 100).toFixed(2)}`;
37
+ const date = new Date(req.createdAt).toLocaleDateString();
38
+ const status = req.status === "paid" ? chalk.green("paid") : chalk.yellow(req.status);
39
+ console.log(` ${amount.padEnd(10)} ${status.padEnd(20)} ${date}`);
40
+ }
25
41
  }
26
- console.log(chalk.dim(`\nRun \`agentcard cards details <id>\` to view full card details.`));
27
42
  }
28
43
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/cards/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AASvC,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAoB,YAAY,CAAC,CAAC;QACvD,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACjF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,4DAA4D,CAC7D,CACF,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;IAChG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAEtF,OAAO,CAAC,GAAG,CACT,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAC/E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/cards/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function checkForUpdate(): void;
@@ -0,0 +1,52 @@
1
+ import { execSync } from "node:child_process";
2
+ import { readFileSync } from "node:fs";
3
+ import { fileURLToPath } from "node:url";
4
+ import { resolve, dirname } from "node:path";
5
+ import chalk from "chalk";
6
+ import semver from "semver";
7
+ function getLocalVersion() {
8
+ let dir = dirname(fileURLToPath(import.meta.url));
9
+ while (dir !== dirname(dir)) {
10
+ const pkgPath = resolve(dir, "package.json");
11
+ try {
12
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
13
+ if (pkg.name === "agentcard")
14
+ return pkg.version;
15
+ }
16
+ catch { }
17
+ dir = dirname(dir);
18
+ }
19
+ throw new Error("Could not find agentcard package.json");
20
+ }
21
+ function getLatestVersion() {
22
+ try {
23
+ const result = execSync("npm view agentcard version", {
24
+ encoding: "utf-8",
25
+ timeout: 5000,
26
+ stdio: ["pipe", "pipe", "pipe"],
27
+ });
28
+ return result.trim();
29
+ }
30
+ catch {
31
+ return null;
32
+ }
33
+ }
34
+ export function checkForUpdate() {
35
+ const local = getLocalVersion();
36
+ const latest = getLatestVersion();
37
+ if (!latest || !semver.gt(latest, local))
38
+ return;
39
+ console.log(chalk.yellow(`Updating agentcard ${local} → ${latest}...`));
40
+ try {
41
+ execSync(`npm install -g agentcard@${latest}`, {
42
+ stdio: ["pipe", "pipe", "pipe"],
43
+ timeout: 60000,
44
+ });
45
+ console.log(chalk.green(`Updated to ${latest}!\n`));
46
+ }
47
+ catch {
48
+ console.error(chalk.yellow(`Update available: ${local} → ${latest}. Run: npm install -g agentcard`));
49
+ console.log("");
50
+ }
51
+ }
52
+ //# sourceMappingURL=update-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../../src/lib/update-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,SAAS,eAAe;IACtB,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,OAAO,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,GAAG,CAAC,OAAO,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,4BAA4B,EAAE;YACpD,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAElC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO;IAEjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,KAAK,MAAM,MAAM,KAAK,CAAC,CAAC,CAAC;IACxE,IAAI,CAAC;QACH,QAAQ,CAAC,4BAA4B,MAAM,EAAE,EAAE;YAC7C,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,MAAM,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,KAAK,MAAM,MAAM,iCAAiC,CAAC,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "agentcard",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "description": "CLI for managing prepaid virtual Visa cards for AI agents",
5
5
  "type": "module",
6
6
  "bin": {
7
- "agentcard": "./dist/bin/apk.js"
7
+ "agentcard": "./dist/bin/agentcard.js"
8
8
  },
9
9
  "files": [
10
10
  "dist"
@@ -14,10 +14,12 @@
14
14
  "commander": "^13.1.0",
15
15
  "inquirer": "^12.4.2",
16
16
  "open": "^10.1.0",
17
- "ora": "^8.2.0"
17
+ "ora": "^8.2.0",
18
+ "semver": "^7.7.4"
18
19
  },
19
20
  "devDependencies": {
20
21
  "@types/node": "^22.0.0",
22
+ "@types/semver": "^7.7.1",
21
23
  "typescript": "^5.7.0"
22
24
  },
23
25
  "scripts": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"apk.js","sourceRoot":"","sources":["../../bin/apk.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC"}
File without changes