agentcard 0.0.20 → 0.0.21
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.
- package/dist/src/commands/cards/details.d.ts +2 -0
- package/dist/src/commands/cards/details.js +6 -0
- package/dist/src/commands/cards/details.js.map +1 -1
- package/dist/src/commands/cards/list.js +1 -1
- package/dist/src/commands/cards/list.js.map +1 -1
- package/dist/src/commands/limit.d.ts +3 -0
- package/dist/src/commands/limit.js +50 -0
- package/dist/src/commands/limit.js.map +1 -0
- package/dist/src/commands/mail/get.d.ts +1 -0
- package/dist/src/commands/mail/get.js +28 -0
- package/dist/src/commands/mail/get.js.map +1 -0
- package/dist/src/commands/mail/info.d.ts +1 -0
- package/dist/src/commands/mail/info.js +17 -0
- package/dist/src/commands/mail/info.js.map +1 -0
- package/dist/src/commands/mail/list.d.ts +4 -0
- package/dist/src/commands/mail/list.js +34 -0
- package/dist/src/commands/mail/list.js.map +1 -0
- package/dist/src/commands/mail/send.d.ts +8 -0
- package/dist/src/commands/mail/send.js +59 -0
- package/dist/src/commands/mail/send.js.map +1 -0
- package/dist/src/commands/request/get.d.ts +1 -0
- package/dist/src/commands/request/get.js +104 -0
- package/dist/src/commands/request/get.js.map +1 -0
- package/dist/src/commands/request/new.d.ts +1 -0
- package/dist/src/commands/request/new.js +82 -0
- package/dist/src/commands/request/new.js.map +1 -0
- package/dist/src/commands/setup.d.ts +8 -0
- package/dist/src/commands/setup.js +166 -0
- package/dist/src/commands/setup.js.map +1 -0
- package/dist/src/commands/signup.js +26 -17
- package/dist/src/commands/signup.js.map +1 -1
- package/dist/src/commands/whoami.js +5 -2
- package/dist/src/commands/whoami.js.map +1 -1
- package/dist/src/index.js +100 -36
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/api.d.ts +2 -0
- package/dist/src/lib/api.js +6 -0
- package/dist/src/lib/api.js.map +1 -1
- package/dist/src/lib/track-command.d.ts +8 -0
- package/dist/src/lib/track-command.js +54 -0
- package/dist/src/lib/track-command.js.map +1 -0
- package/dist/src/lib/update-check.js +21 -2
- package/dist/src/lib/update-check.js.map +1 -1
- package/package.json +1 -1
- package/dist/src/commands/cards/create.d.ts +0 -1
- package/dist/src/commands/cards/create.js +0 -110
- package/dist/src/commands/cards/create.js.map +0 -1
- package/dist/src/commands/cards/refund.d.ts +0 -1
- package/dist/src/commands/cards/refund.js +0 -100
- package/dist/src/commands/cards/refund.js.map +0 -1
- package/dist/src/commands/track/purchase.d.ts +0 -8
- package/dist/src/commands/track/purchase.js +0 -25
- package/dist/src/commands/track/purchase.js.map +0 -1
|
@@ -4,6 +4,8 @@ export interface CardDetails {
|
|
|
4
4
|
expiryMonth: number;
|
|
5
5
|
expiryYear: number;
|
|
6
6
|
amountCents: number;
|
|
7
|
+
zip?: string;
|
|
8
|
+
cardholderName?: string | null;
|
|
7
9
|
}
|
|
8
10
|
export declare function printCardDetails(card: CardDetails): void;
|
|
9
11
|
export declare function cardDetails(id: string): Promise<void>;
|
|
@@ -5,9 +5,15 @@ export function printCardDetails(card) {
|
|
|
5
5
|
console.log("");
|
|
6
6
|
console.log(chalk.bold(" Card Details"));
|
|
7
7
|
console.log(chalk.dim(" ────────────────────────────"));
|
|
8
|
+
if (card.cardholderName) {
|
|
9
|
+
console.log(` Name: ${chalk.white(card.cardholderName)}`);
|
|
10
|
+
}
|
|
8
11
|
console.log(` Number: ${chalk.white(card.pan)}`);
|
|
9
12
|
console.log(` CVV: ${chalk.white(card.cvv)}`);
|
|
10
13
|
console.log(` Expiry: ${chalk.white(expiry)}`);
|
|
14
|
+
if (card.zip) {
|
|
15
|
+
console.log(` ZIP: ${chalk.white(card.zip)}`);
|
|
16
|
+
}
|
|
11
17
|
console.log(` Amount: ${chalk.green(`$${(card.amountCents / 100).toFixed(2)}`)}`);
|
|
12
18
|
console.log(chalk.dim(" ────────────────────────────"));
|
|
13
19
|
console.log("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../../../src/commands/cards/details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../../../src/commands/cards/details.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAYvC,MAAM,UAAU,gBAAgB,CAAC,IAAiB;IAChD,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;IAEjF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;IACzD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAU;IAC1C,IAAI,IAAiB,CAAC;IACtB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAc,cAAc,EAAE,UAAU,CAAC,CAAC;IAC5D,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,eAAe,EAAE,CACxF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -13,7 +13,7 @@ export async function listCards() {
|
|
|
13
13
|
process.exit(1);
|
|
14
14
|
}
|
|
15
15
|
if (cards.length === 0 && requests.length === 0) {
|
|
16
|
-
console.log(chalk.yellow('No cards yet. Run `agentcard
|
|
16
|
+
console.log(chalk.yellow('No cards yet. Run `agentcard request new --amount <dollars>` to issue one.'));
|
|
17
17
|
return;
|
|
18
18
|
}
|
|
19
19
|
if (cards.length > 0) {
|
|
@@ -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;AAmBvC,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,KAAa,CAAC;IAClB,IAAI,QAAQ,GAAkB,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAA8C,YAAY,CAAC,CAAC;QACjF,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QAClB,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;IAChC,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,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CACV,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/cards/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import ora from "ora";
|
|
3
|
+
import { get, post } from "../lib/api.js";
|
|
4
|
+
function formatDollars(cents) {
|
|
5
|
+
return `$${(cents / 100).toFixed(2)}`;
|
|
6
|
+
}
|
|
7
|
+
function printLimit(res) {
|
|
8
|
+
console.log("");
|
|
9
|
+
console.log(chalk.bold(" Spend Limit"));
|
|
10
|
+
console.log(chalk.dim(" ────────────────────────────"));
|
|
11
|
+
console.log(` Limit: ${chalk.white(formatDollars(res.spendLimitCents))}`);
|
|
12
|
+
console.log(` Spent: ${chalk.white(formatDollars(res.spentCents))}`);
|
|
13
|
+
console.log(` Remaining: ${chalk.green(formatDollars(res.remainingCents))}`);
|
|
14
|
+
console.log(chalk.dim(" ────────────────────────────"));
|
|
15
|
+
console.log("");
|
|
16
|
+
}
|
|
17
|
+
export async function limit(opts) {
|
|
18
|
+
if (opts.amount === undefined) {
|
|
19
|
+
const spinner = ora("Fetching spend limit...").start();
|
|
20
|
+
let res;
|
|
21
|
+
try {
|
|
22
|
+
res = await get("/api/limits");
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
spinner.fail(`Failed to fetch limit: ${err instanceof Error ? err.message : "Unknown error"}`);
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
spinner.stop();
|
|
29
|
+
printLimit(res);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const dollars = Number(opts.amount);
|
|
33
|
+
if (!Number.isFinite(dollars) || dollars <= 0) {
|
|
34
|
+
console.error(chalk.red("Amount must be a positive number of dollars."));
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
const amountCents = Math.round(dollars * 100);
|
|
38
|
+
const spinner = ora(`Updating limit to ${formatDollars(amountCents)}...`).start();
|
|
39
|
+
let res;
|
|
40
|
+
try {
|
|
41
|
+
res = await post("/api/limits", { amountCents });
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
spinner.fail(`Failed to update limit: ${err instanceof Error ? err.message : "Unknown error"}`);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
spinner.succeed(chalk.green(`Spend limit updated to ${formatDollars(res.spendLimitCents)}.`));
|
|
48
|
+
printLimit(res);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limit.js","sourceRoot":"","sources":["../../../src/commands/limit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function mailGet(threadId: string): Promise<void>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { get } from "../../lib/api.js";
|
|
3
|
+
export async function mailGet(threadId) {
|
|
4
|
+
let thread;
|
|
5
|
+
try {
|
|
6
|
+
thread = await get(`/api/mail/threads/${threadId}`);
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
console.error(chalk.red(`Failed to fetch thread: ${err instanceof Error ? err.message : "Unknown error"}`));
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
console.log("");
|
|
13
|
+
console.log(chalk.bold(thread.subject || "(no subject)"));
|
|
14
|
+
console.log(chalk.dim(`Thread: ${thread.threadId}`));
|
|
15
|
+
console.log("");
|
|
16
|
+
for (const msg of thread.messages) {
|
|
17
|
+
const date = new Date(msg.timestamp).toLocaleString();
|
|
18
|
+
console.log(chalk.bold(`From: ${msg.from}`));
|
|
19
|
+
console.log(chalk.dim(`To: ${msg.to.join(", ")}`));
|
|
20
|
+
console.log(chalk.dim(`Date: ${date}`));
|
|
21
|
+
console.log("");
|
|
22
|
+
console.log(msg.extractedText || msg.text || chalk.dim("(no text content)"));
|
|
23
|
+
console.log(chalk.dim("\u2500".repeat(60)));
|
|
24
|
+
console.log("");
|
|
25
|
+
}
|
|
26
|
+
console.log(chalk.dim(`Reply: agentcard mail reply ${thread.threadId} --body "your reply"`));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/mail/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAmBvC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,QAAgB;IAC5C,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,GAAG,CAAS,qBAAqB,QAAQ,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAClF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,MAAM,CAAC,QAAQ,sBAAsB,CAAC,CAAC,CAAC;AAC/F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function mailInfo(): Promise<void>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { get } from "../../lib/api.js";
|
|
3
|
+
export async function mailInfo() {
|
|
4
|
+
let res;
|
|
5
|
+
try {
|
|
6
|
+
res = await get("/api/mail");
|
|
7
|
+
}
|
|
8
|
+
catch (err) {
|
|
9
|
+
console.error(chalk.red(`Failed to fetch mailbox details: ${err instanceof Error ? err.message : "Unknown error"}`));
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
console.log("");
|
|
13
|
+
console.log(` ${chalk.bold("Email:")} ${res.address}`);
|
|
14
|
+
console.log(` ${chalk.bold("Created:")} ${new Date(res.createdAt).toLocaleDateString()}`);
|
|
15
|
+
console.log("");
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"info.js","sourceRoot":"","sources":["../../../../src/commands/mail/info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AASvC,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,IAAI,GAAgB,CAAC;IACrB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,GAAG,CAAc,WAAW,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,oCAAoC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAC3F,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { get } from "../../lib/api.js";
|
|
3
|
+
export async function mailList(opts) {
|
|
4
|
+
const limit = opts.limit ? parseInt(opts.limit, 10) : 20;
|
|
5
|
+
const params = new URLSearchParams({ limit: String(limit) });
|
|
6
|
+
if (opts.includeSent)
|
|
7
|
+
params.set("includeSent", "true");
|
|
8
|
+
let res;
|
|
9
|
+
try {
|
|
10
|
+
res = await get(`/api/mail/threads?${params}`);
|
|
11
|
+
}
|
|
12
|
+
catch (err) {
|
|
13
|
+
console.error(chalk.red(`Failed to list threads: ${err instanceof Error ? err.message : "Unknown error"}`));
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
if (res.threads.length === 0) {
|
|
17
|
+
console.log(chalk.yellow("No messages yet."));
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
console.log(chalk.bold(`Inbox (${res.count} threads)\n`));
|
|
21
|
+
for (const thread of res.threads) {
|
|
22
|
+
const subject = thread.subject || "(no subject)";
|
|
23
|
+
const sender = thread.senders?.[0] || "unknown";
|
|
24
|
+
const date = new Date(thread.timestamp).toLocaleString();
|
|
25
|
+
const count = thread.messageCount > 1 ? chalk.dim(` (${thread.messageCount})`) : "";
|
|
26
|
+
const unread = thread.labels?.includes("unread") ? chalk.blue("●") : " ";
|
|
27
|
+
const truncSubject = subject.length > 50 ? subject.slice(0, 47) + "..." : subject;
|
|
28
|
+
console.log(` ${unread} ${chalk.bold(truncSubject)}${count}`);
|
|
29
|
+
console.log(` ${chalk.dim(sender)} · ${chalk.dim(date)} · ${chalk.dim(thread.threadId)}`);
|
|
30
|
+
}
|
|
31
|
+
console.log("");
|
|
32
|
+
console.log(chalk.dim("Run `agentcard mail get <thread-id>` to view a thread."));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/mail/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAkBvC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAA+C;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAExD,IAAI,GAAiB,CAAC;IACtB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,GAAG,CAAe,qBAAqB,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAClF,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC;IAE1D,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QAChD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAEzE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;QAElF,OAAO,CAAC,GAAG,CACT,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,CAClD,CAAC;QACF,OAAO,CAAC,GAAG,CACT,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAChF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import inquirer from "inquirer";
|
|
3
|
+
import ora from "ora";
|
|
4
|
+
import { post } from "../../lib/api.js";
|
|
5
|
+
export async function mailSend(opts) {
|
|
6
|
+
let { to, subject, body } = opts;
|
|
7
|
+
if (!to) {
|
|
8
|
+
const answers = await inquirer.prompt([
|
|
9
|
+
{ type: "input", name: "to", message: "To:", validate: (v) => v.includes("@") || "Enter a valid email address" },
|
|
10
|
+
]);
|
|
11
|
+
to = answers.to;
|
|
12
|
+
}
|
|
13
|
+
if (!subject) {
|
|
14
|
+
const answers = await inquirer.prompt([
|
|
15
|
+
{ type: "input", name: "subject", message: "Subject:" },
|
|
16
|
+
]);
|
|
17
|
+
subject = answers.subject;
|
|
18
|
+
}
|
|
19
|
+
if (!body) {
|
|
20
|
+
const answers = await inquirer.prompt([
|
|
21
|
+
{ type: "input", name: "body", message: "Body:", validate: (v) => v.trim().length > 0 || "Body cannot be empty" },
|
|
22
|
+
]);
|
|
23
|
+
body = answers.body;
|
|
24
|
+
}
|
|
25
|
+
await sendMail({ to, subject, text: body });
|
|
26
|
+
}
|
|
27
|
+
export async function mailReply(threadId, opts) {
|
|
28
|
+
let { body } = opts;
|
|
29
|
+
if (!body) {
|
|
30
|
+
const answers = await inquirer.prompt([
|
|
31
|
+
{ type: "input", name: "body", message: "Reply:", validate: (v) => v.trim().length > 0 || "Reply cannot be empty" },
|
|
32
|
+
]);
|
|
33
|
+
body = answers.body;
|
|
34
|
+
}
|
|
35
|
+
await sendMail({ text: body, threadId });
|
|
36
|
+
}
|
|
37
|
+
async function sendMail(params) {
|
|
38
|
+
const isReply = !!params.threadId;
|
|
39
|
+
const spinner = ora(isReply ? "Sending reply..." : "Sending...").start();
|
|
40
|
+
try {
|
|
41
|
+
const path = isReply
|
|
42
|
+
? `/api/mail/threads/${params.threadId}`
|
|
43
|
+
: "/api/mail";
|
|
44
|
+
const body = isReply
|
|
45
|
+
? { text: params.text }
|
|
46
|
+
: { to: params.to, subject: params.subject, text: params.text };
|
|
47
|
+
const res = await post(path, body);
|
|
48
|
+
spinner.succeed(isReply ? "Reply sent!" : "Sent!");
|
|
49
|
+
if (!isReply) {
|
|
50
|
+
console.log(chalk.dim(` Thread: ${res.threadId}`));
|
|
51
|
+
console.log(chalk.dim(` Run \`agentcard mail get ${res.threadId}\` to view.`));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
spinner.fail(`Failed to send: ${err instanceof Error ? err.message : "Unknown error"}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=send.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../../src/commands/mail/send.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function requestGet(id?: string): Promise<void>;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import ora from "ora";
|
|
3
|
+
import { get } from "../../lib/api.js";
|
|
4
|
+
import { printCardDetails } from "../cards/details.js";
|
|
5
|
+
function formatDollars(cents) {
|
|
6
|
+
return `$${(cents / 100).toFixed(2)}`;
|
|
7
|
+
}
|
|
8
|
+
function colorStatus(status) {
|
|
9
|
+
switch (status) {
|
|
10
|
+
case "issued":
|
|
11
|
+
return chalk.green(status);
|
|
12
|
+
case "pending":
|
|
13
|
+
case "charged":
|
|
14
|
+
return chalk.yellow(status);
|
|
15
|
+
case "expired":
|
|
16
|
+
return chalk.dim(status);
|
|
17
|
+
case "failed":
|
|
18
|
+
return chalk.red(status);
|
|
19
|
+
default:
|
|
20
|
+
return status;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function printRequestMeta(req) {
|
|
24
|
+
console.log("");
|
|
25
|
+
console.log(chalk.bold(" Request"));
|
|
26
|
+
console.log(chalk.dim(" ────────────────────────────"));
|
|
27
|
+
console.log(` ID: ${chalk.white(req.id)}`);
|
|
28
|
+
console.log(` Amount: ${chalk.white(formatDollars(req.amountCents))}`);
|
|
29
|
+
console.log(` Status: ${colorStatus(req.status)}`);
|
|
30
|
+
console.log(` Created: ${chalk.white(new Date(req.createdAt).toLocaleString())}`);
|
|
31
|
+
console.log(` Expires: ${chalk.white(new Date(req.expiresAt).toLocaleString())}`);
|
|
32
|
+
if (req.issuedAt) {
|
|
33
|
+
console.log(` Issued: ${chalk.white(new Date(req.issuedAt).toLocaleString())}`);
|
|
34
|
+
}
|
|
35
|
+
if (req.last4) {
|
|
36
|
+
console.log(` Last 4: ${chalk.white(req.last4)}`);
|
|
37
|
+
}
|
|
38
|
+
console.log(chalk.dim(" ────────────────────────────"));
|
|
39
|
+
}
|
|
40
|
+
export async function requestGet(id) {
|
|
41
|
+
if (id) {
|
|
42
|
+
const spinner = ora(`Fetching request ${id}...`).start();
|
|
43
|
+
let req;
|
|
44
|
+
try {
|
|
45
|
+
req = await get(`/api/spend-requests/${id}`);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
spinner.fail(`Failed to fetch request: ${err instanceof Error ? err.message : "Unknown error"}`);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
spinner.stop();
|
|
52
|
+
printRequestMeta(req);
|
|
53
|
+
if (req.status === "issued" &&
|
|
54
|
+
req.pan &&
|
|
55
|
+
req.cvv &&
|
|
56
|
+
req.expiryMonth !== undefined &&
|
|
57
|
+
req.expiryYear !== undefined) {
|
|
58
|
+
printCardDetails({
|
|
59
|
+
pan: req.pan,
|
|
60
|
+
cvv: req.cvv,
|
|
61
|
+
expiryMonth: req.expiryMonth,
|
|
62
|
+
expiryYear: req.expiryYear,
|
|
63
|
+
amountCents: req.amountCents,
|
|
64
|
+
zip: req.zip,
|
|
65
|
+
cardholderName: req.cardholderName,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
console.log("");
|
|
70
|
+
}
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const spinner = ora("Fetching requests...").start();
|
|
74
|
+
let res;
|
|
75
|
+
try {
|
|
76
|
+
res = await get("/api/spend-requests");
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
spinner.fail(`Failed to fetch requests: ${err instanceof Error ? err.message : "Unknown error"}`);
|
|
80
|
+
process.exit(1);
|
|
81
|
+
}
|
|
82
|
+
spinner.stop();
|
|
83
|
+
const requests = res.requests ?? [];
|
|
84
|
+
if (requests.length === 0) {
|
|
85
|
+
console.log(chalk.yellow("No card requests yet. Run `agentcard request new --amount <dollars>` to issue one."));
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const idWidth = Math.max(2, ...requests.map((r) => r.id.length)) + 2;
|
|
89
|
+
const header = `${"ID".padEnd(idWidth)} ${"Amount".padEnd(10)} ${"Status".padEnd(10)} ${"Created".padEnd(22)} Expires`;
|
|
90
|
+
console.log(chalk.bold(header));
|
|
91
|
+
console.log("-".repeat(header.length));
|
|
92
|
+
for (const r of requests) {
|
|
93
|
+
const amount = formatDollars(r.amountCents);
|
|
94
|
+
const created = new Date(r.createdAt).toLocaleString();
|
|
95
|
+
const expires = new Date(r.expiresAt).toLocaleString();
|
|
96
|
+
const status = colorStatus(r.status);
|
|
97
|
+
// chalk colors add invisible chars; pad on the raw status width.
|
|
98
|
+
const rawStatus = r.status;
|
|
99
|
+
const statusPadded = status + " ".repeat(Math.max(0, 10 - rawStatus.length));
|
|
100
|
+
console.log(`${r.id.padEnd(idWidth)} ${amount.padEnd(10)} ${statusPadded} ${created.padEnd(22)} ${expires}`);
|
|
101
|
+
}
|
|
102
|
+
console.log(chalk.dim("\nRun `agentcard request get <id>` to view a single request's details."));
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=get.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/request/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function requestNew(amount?: string): Promise<void>;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import inquirer from "inquirer";
|
|
3
|
+
import ora from "ora";
|
|
4
|
+
import { post } from "../../lib/api.js";
|
|
5
|
+
import { printCardDetails } from "../cards/details.js";
|
|
6
|
+
const MAX_DOLLARS = 75;
|
|
7
|
+
function formatDollars(cents) {
|
|
8
|
+
return `$${(cents / 100).toFixed(2)}`;
|
|
9
|
+
}
|
|
10
|
+
export async function requestNew(amount) {
|
|
11
|
+
let raw = amount?.trim();
|
|
12
|
+
if (!raw) {
|
|
13
|
+
if (process.stdin.isTTY !== true) {
|
|
14
|
+
console.error(chalk.red("Amount is required. Pass `--amount <dollars>`."));
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const { value } = await inquirer.prompt([
|
|
18
|
+
{
|
|
19
|
+
type: "input",
|
|
20
|
+
name: "value",
|
|
21
|
+
message: `Amount (dollars, max $${MAX_DOLLARS}):`,
|
|
22
|
+
validate: (v) => {
|
|
23
|
+
const t = v.trim();
|
|
24
|
+
if (!/^\d+$/.test(t))
|
|
25
|
+
return "Enter a positive integer";
|
|
26
|
+
const n = Number(t);
|
|
27
|
+
if (n <= 0)
|
|
28
|
+
return "Must be > 0";
|
|
29
|
+
if (n > MAX_DOLLARS)
|
|
30
|
+
return `Max $${MAX_DOLLARS} per card during beta`;
|
|
31
|
+
return true;
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
]);
|
|
35
|
+
raw = value.trim();
|
|
36
|
+
}
|
|
37
|
+
if (!/^\d+$/.test(raw)) {
|
|
38
|
+
console.error(chalk.red("Amount must be a positive integer number of dollars."));
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
const dollars = Number(raw);
|
|
42
|
+
if (!Number.isFinite(dollars) || dollars <= 0) {
|
|
43
|
+
console.error(chalk.red("Amount must be a positive integer number of dollars."));
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
if (dollars > MAX_DOLLARS) {
|
|
47
|
+
console.error(chalk.red(`Amount is capped at $${MAX_DOLLARS} per card during beta.`));
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
const amountCents = dollars * 100;
|
|
51
|
+
const spinner = ora(`Requesting a ${formatDollars(amountCents)} single-use card...`).start();
|
|
52
|
+
let res;
|
|
53
|
+
try {
|
|
54
|
+
res = await post("/api/spend-requests", {
|
|
55
|
+
amountCents,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
spinner.fail(`Failed to issue card: ${err instanceof Error ? err.message : "Unknown error"}`);
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
spinner.succeed(chalk.green("Card issued."));
|
|
63
|
+
const expiresLocal = new Date(res.expiresAt).toLocaleString();
|
|
64
|
+
console.log("");
|
|
65
|
+
console.log(chalk.bold(" Request"));
|
|
66
|
+
console.log(chalk.dim(" ────────────────────────────"));
|
|
67
|
+
console.log(` ID: ${chalk.white(res.id)}`);
|
|
68
|
+
console.log(` Amount: ${chalk.green(formatDollars(res.amountCents))}`);
|
|
69
|
+
console.log(` Expires: ${chalk.white(expiresLocal)}`);
|
|
70
|
+
console.log(chalk.dim(" ────────────────────────────"));
|
|
71
|
+
printCardDetails({
|
|
72
|
+
pan: res.pan,
|
|
73
|
+
cvv: res.cvv,
|
|
74
|
+
expiryMonth: res.expiryMonth,
|
|
75
|
+
expiryYear: res.expiryYear,
|
|
76
|
+
amountCents: res.amountCents,
|
|
77
|
+
zip: res.zip,
|
|
78
|
+
cardholderName: res.cardholderName,
|
|
79
|
+
});
|
|
80
|
+
console.log(chalk.dim("We placed a hold on your payment method for this amount; it will only be charged if the card is used. Unused holds release within 7 days."));
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=new.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../../src/commands/request/new.ts"],"names":[],"mappings":"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"}
|