agent-cards 0.5.9 → 0.5.11
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/assets/banner.txt +39 -0
- package/dist/bin/agent-cards.js +39 -5
- package/dist/bin/agent-cards.js.map +1 -1
- package/dist/src/commands/balance.js +3 -3
- package/dist/src/commands/balance.js.map +1 -1
- package/dist/src/commands/cards/details.d.ts.map +1 -1
- package/dist/src/commands/cards/details.js +12 -13
- package/dist/src/commands/cards/details.js.map +1 -1
- package/dist/src/commands/cards/list.d.ts.map +1 -1
- package/dist/src/commands/cards/list.js +6 -5
- package/dist/src/commands/cards/list.js.map +1 -1
- package/dist/src/commands/cards/transactions.d.ts.map +1 -1
- package/dist/src/commands/cards/transactions.js +10 -9
- package/dist/src/commands/cards/transactions.js.map +1 -1
- package/dist/src/commands/login.d.ts +2 -2
- package/dist/src/commands/login.d.ts.map +1 -1
- package/dist/src/commands/login.js +3 -3
- package/dist/src/commands/login.js.map +1 -1
- package/dist/src/commands/plan.d.ts +4 -0
- package/dist/src/commands/plan.d.ts.map +1 -0
- package/dist/src/commands/plan.js +97 -0
- package/dist/src/commands/plan.js.map +1 -0
- package/dist/src/commands/setup-mcp.d.ts +1 -1
- package/dist/src/commands/setup-mcp.d.ts.map +1 -1
- package/dist/src/commands/setup-mcp.js +2 -2
- package/dist/src/commands/setup-mcp.js.map +1 -1
- package/dist/src/commands/signup.d.ts +3 -1
- package/dist/src/commands/signup.d.ts.map +1 -1
- package/dist/src/commands/signup.js +7 -3
- package/dist/src/commands/signup.js.map +1 -1
- package/dist/src/lib/help.d.ts +3 -0
- package/dist/src/lib/help.d.ts.map +1 -0
- package/dist/src/lib/help.js +104 -0
- package/dist/src/lib/help.js.map +1 -0
- package/dist/src/lib/ui.d.ts +37 -0
- package/dist/src/lib/ui.d.ts.map +1 -0
- package/dist/src/lib/ui.js +187 -0
- package/dist/src/lib/ui.js.map +1 -0
- package/dist/src/lib/welcome.d.ts +2 -0
- package/dist/src/lib/welcome.d.ts.map +1 -0
- package/dist/src/lib/welcome.js +44 -0
- package/dist/src/lib/welcome.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
~▇▆▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▆▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇l
|
|
8
|
+
.▆▆▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▆▂▀
|
|
9
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▆▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▆▃▂▂▂▁\
|
|
10
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▅▃▂▂▂▁▁▁~
|
|
11
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▆▃▂▂▂▁▁▁▁▁▁~
|
|
12
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▆▇▇▇▇▇▇▇▇▇▇▇▇▆▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▆▇▇▇▇▇▇▇▆▅▂▂▂▂▁▁▁▁▁▄▄▄_
|
|
13
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇░ ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,.:▃▂▂▂▂▁▁▁▁▁▁▄▄▄▄▄_
|
|
14
|
+
>▇▇▇▇▇▆▇▇▇▇▇▇▇▇▇░ ▂▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ ▌▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇>:▄▂▂▁▁▁▁▁▄▄▄▄▄▄▀▀_
|
|
15
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇░ ▂▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ ▌▇▇▇▇▇▇▇▇▇▇▇▇▆▃▂<:▀▁▁▁▁▁▄▄▄▄▄▀▀▀▀▀_
|
|
16
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇░ ▂▇▇▇▇▇▇▇▇▆▇▇▇▇▇▇ ▌▇▇▇▇▇▇▇▇▇▆▅▂▂▂▂=:▀▁▁▄▄▄▄▄▀▀▀▀▀▀▐▐_
|
|
17
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇░ ▂▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ ▌▇▇▇▆▇▇▇▆▃▂▂▂▁▁▁=:▀▄▄▄▄▄▀▀▀▀▀▐▐▐▐▐_
|
|
18
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇░ ▂▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ ▌▇▇▇▇▆▅▂▂▂▁▁▁▁▁▁=:▐▄▄▀▀▀▀▀▀▐▐▐▐▐▌▌\
|
|
19
|
+
>▇▇▇▇▇▇▇▆▇▇▇▇▇▇▇░ ▂▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ ▌▇▇▅▂▂▂▂▁▁▁▁▁▄▄▄=:▐▀▀▀▀▀▐▐▐▐▐▐▌▌▌▌\
|
|
20
|
+
>▇▇▇▇▇▇▇▆▇▇▇▇▇▇▇░ ▂▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ ▌▃▂▂▂▁▁▁▁▁▁▄▄▄▄▄=,▌▀▀▀▐▐▐▐▐▌▌▌▌▌▌░\
|
|
21
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇░ ,▌▐▐▐▐▐▐▌▌▌▌▌░░░░\
|
|
22
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇░ ▂▇▇▆▇▇▇▇▇▇▇▇▆▃▂▂▂▁▁▁▁▁▁▄▄▄▄▄▀▀▀▀▀+,░▐▐▐▌▌▌▌▌▌░░░░░▒\
|
|
23
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▆░ ▂▇▇▇▇▇▇▇▇▆▅▂▂▂▂▁▁▁▁▁▄▄▄▄▄▄▀▀▀▀▀▐▐+,░▌▌▌▌▌▌░░░░░░▒▒▒/
|
|
24
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇░ ▂▇▇▇▇▇▇▆▃▂▂▂▁▁▁▁▁▁▄▄▄▄▄▀▀▀▀▀▀▐▐▐▐+,░▌▌▌▌░░░░░▒▒▒▒▒▒/
|
|
25
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇░ ▂▇▇▇▆▅▂▂▂▁▁▁▁▁▁▄▄▄▄▄▀▀▀▀▀▀▐▐▐▐▐▌▌-,▒▌░░░░░▒▒▒▒▒▒▓▓▓/
|
|
26
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇░ ▂▇▆▂▂▂▂▁▁▁▁▁▁▄▄▄▄▄▀▀▀▀▀▀▐▐▐▐▐▌▌▌▌-,▒░░░░▒▒▒▒▒▒▓▓▓▓▓/
|
|
27
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇░ ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,.,▓░▒▒▒▒▒▒▓▓▓▓▓▓██/
|
|
28
|
+
>▇▇▇▇▇▇▇▇▇▇▇▇▇▇▅▃▂▂▂▁▁▁▁▁▁▄▄▄▄▄▀▀▀▀▀▐▐▐▐▐▐▌▌▌▌▌░░░░░░▒▒▒▒▒▓▓▓▓▓▓█████|
|
|
29
|
+
>▇▇▇▇▇▇▇▇▇▇▇▆▃▂▂▂▁▁▁▁▁▁▄▄▄▄▄▀▀▀▀▀▀▐▐▐▐▐▌▌▌▌▌▌░░░░░▒▒▒▒▒▒▓▓▓▓▓▓█████@@|
|
|
30
|
+
>▇▇▇▇▇▇▇▇▇▅▂▂▂▂▁▁▁▁▁▄▄▄▄▄▄▀▀▀▀▀▐▐▐▐▐▐▌▌▌▌▌░░░░░░▒▒▒▒▒▓▓▓▓▓▓▓█████@@@@|
|
|
31
|
+
>▇▇▇▇▇▇▆▃▂▂▂▂▁▁▁▁▁▄▄▄▄▄▀▀▀▀▀▀▐▐▐▐▐▌▌▌▌▌▌░░░░░▒▒▒▒▒▒▓▓▓▓▓▓█████@@@@@@#l
|
|
32
|
+
,▆▇▇▆▅▂▂▂▂▁▁▁▁▁▄▄▄▄▄▀▀▀▀▀▀▐▐▐▐▐▐▌▌▌▌▌░░░░░▒▒▒▒▒▒▓▓▓▓▓▓██████@@@@@###*
|
|
33
|
+
+▂▂▂▂▁▁▁▁▁▁▄▄▄▄▄▀▀▀▀▀▀▐▐▐▐▐▌▌▌▌▌▌░░░░░▒▒▒▒▒▒▓▓▓▓▓██████@@@@@#####:
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
package/dist/bin/agent-cards.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { readFileSync } from 'fs';
|
|
2
|
+
import { readFileSync, existsSync } from 'fs';
|
|
3
3
|
import { fileURLToPath } from 'url';
|
|
4
4
|
import { dirname, resolve } from 'path';
|
|
5
5
|
import { Command } from 'commander';
|
|
@@ -18,19 +18,25 @@ import { showSettings, settingsNotifications, settingsAuthorization } from '../s
|
|
|
18
18
|
import { paymentMethodSetup } from '../src/commands/payment-methods/setup.js';
|
|
19
19
|
import { paymentMethodRemove } from '../src/commands/payment-methods/remove.js';
|
|
20
20
|
import { installExtension, updateExtension } from '../src/commands/extension.js';
|
|
21
|
+
import { planStatus, planUpgrade, planCancel } from '../src/commands/plan.js';
|
|
22
|
+
import { configureHelpForProgram } from '../src/lib/help.js';
|
|
21
23
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
22
|
-
|
|
24
|
+
// In dev (tsx bin/agent-cards.ts) __dirname is packages/cli/bin → one level up.
|
|
25
|
+
// In prod (dist/bin/agent-cards.js) __dirname is packages/cli/dist/bin → two levels up.
|
|
26
|
+
const pkgPath = resolve(__dirname, '..', 'package.json');
|
|
27
|
+
const pkg = JSON.parse(readFileSync(existsSync(pkgPath) ? pkgPath : resolve(__dirname, '..', '..', 'package.json'), 'utf8'));
|
|
23
28
|
const program = new Command();
|
|
24
29
|
program
|
|
25
30
|
.name('agent-cards')
|
|
26
31
|
.description('Terminal-first virtual debit card service')
|
|
27
32
|
.version(pkg.version);
|
|
33
|
+
configureHelpForProgram(program, pkg.version);
|
|
28
34
|
program
|
|
29
35
|
.command('signup')
|
|
30
36
|
.description('Sign up or sign in via magic link')
|
|
31
37
|
.action(async () => {
|
|
32
38
|
try {
|
|
33
|
-
await signup();
|
|
39
|
+
await signup(pkg.version);
|
|
34
40
|
}
|
|
35
41
|
catch (err) {
|
|
36
42
|
console.error(`Error: ${err.message}`);
|
|
@@ -42,7 +48,7 @@ program
|
|
|
42
48
|
.description('Log in via magic link (same as signup)')
|
|
43
49
|
.action(async () => {
|
|
44
50
|
try {
|
|
45
|
-
await login();
|
|
51
|
+
await login(pkg.version);
|
|
46
52
|
}
|
|
47
53
|
catch (err) {
|
|
48
54
|
console.error(`Error: ${err.message}`);
|
|
@@ -156,7 +162,7 @@ program
|
|
|
156
162
|
.description('Configure the AgentCard MCP server in Claude Code')
|
|
157
163
|
.action(async () => {
|
|
158
164
|
try {
|
|
159
|
-
await setupMcp();
|
|
165
|
+
await setupMcp(pkg.version);
|
|
160
166
|
}
|
|
161
167
|
catch (err) {
|
|
162
168
|
console.error(`Error: ${err.message}`);
|
|
@@ -230,6 +236,34 @@ paymentMethodCmd
|
|
|
230
236
|
process.exit(1);
|
|
231
237
|
}
|
|
232
238
|
});
|
|
239
|
+
const planCmd = program.command('plan').description('View and manage your subscription plan');
|
|
240
|
+
planCmd.action(async () => {
|
|
241
|
+
try {
|
|
242
|
+
await planStatus();
|
|
243
|
+
}
|
|
244
|
+
catch (err) {
|
|
245
|
+
console.error(`Error: ${err.message}`);
|
|
246
|
+
process.exit(1);
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
planCmd.command('upgrade').description('Upgrade to the Basic plan ($15/mo)').action(async () => {
|
|
250
|
+
try {
|
|
251
|
+
await planUpgrade();
|
|
252
|
+
}
|
|
253
|
+
catch (err) {
|
|
254
|
+
console.error(`Error: ${err.message}`);
|
|
255
|
+
process.exit(1);
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
planCmd.command('cancel').description('Cancel your subscription').action(async () => {
|
|
259
|
+
try {
|
|
260
|
+
await planCancel();
|
|
261
|
+
}
|
|
262
|
+
catch (err) {
|
|
263
|
+
console.error(`Error: ${err.message}`);
|
|
264
|
+
process.exit(1);
|
|
265
|
+
}
|
|
266
|
+
});
|
|
233
267
|
const extensionCmd = program.command('extension').description('Install the AgentCard Pay Chrome extension');
|
|
234
268
|
extensionCmd
|
|
235
269
|
.command('install')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-cards.js","sourceRoot":"","sources":["../../bin/agent-cards.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-cards.js","sourceRoot":"","sources":["../../bin/agent-cards.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
1
|
import ora from 'ora';
|
|
2
|
+
import { colors, printBox } from '../lib/ui.js';
|
|
3
3
|
import { api } from '../lib/api.js';
|
|
4
4
|
export async function balance(cardId) {
|
|
5
5
|
const spinner = ora('Fetching balance...').start();
|
|
6
6
|
const result = await api(`/cards/${cardId}/balance`);
|
|
7
7
|
spinner.stop();
|
|
8
8
|
const dollars = (result.balanceCents / 100).toFixed(2);
|
|
9
|
-
const suffix = result.cached ?
|
|
10
|
-
|
|
9
|
+
const suffix = result.cached ? colors.muted(' (cached)') : '';
|
|
10
|
+
printBox([`${colors.money('$' + dollars)}${suffix}`], { title: 'Card Balance' });
|
|
11
11
|
}
|
|
12
12
|
//# sourceMappingURL=balance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/commands/balance.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../src/commands/balance.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAc;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,GAAG,CAA6C,UAAU,MAAM,UAAU,CAAC,CAAC;IACjG,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../../../src/commands/cards/details.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"details.d.ts","sourceRoot":"","sources":["../../../../src/commands/cards/details.ts"],"names":[],"mappings":"AAuCA,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC/D"}
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
1
|
import inquirer from 'inquirer';
|
|
2
|
+
import { colors, printBox } from '../../lib/ui.js';
|
|
3
3
|
import { api } from '../../lib/api.js';
|
|
4
4
|
function printCardDetails(card) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
console.log('');
|
|
14
|
-
console.log(chalk.red.bold('⚠ Keep this PAN/CVV confidential'));
|
|
5
|
+
const statusStr = card.status === 'OPEN' ? colors.success('OPEN') : card.status === 'IN_USE' ? colors.warning('IN_USE') : colors.error(card.status);
|
|
6
|
+
printBox([
|
|
7
|
+
`${colors.label('PAN')} ${colors.brand(card.pan)}`,
|
|
8
|
+
`${colors.label('CVV')} ${colors.brand(card.cvv)}`,
|
|
9
|
+
`${colors.label('Expiry')} ${card.expiry}`,
|
|
10
|
+
`${colors.label('Balance')} ${colors.money('$' + (card.balanceCents / 100).toFixed(2))}`,
|
|
11
|
+
`${colors.label('Status')} ${statusStr}`,
|
|
12
|
+
], { title: 'Card Details' });
|
|
13
|
+
console.log(colors.error(' \u26a0 Keep this PAN/CVV confidential'));
|
|
15
14
|
}
|
|
16
15
|
export async function cardDetails(cardId) {
|
|
17
16
|
const res = await api(`/cards/${cardId}/details`, { headers: { 'X-Approval-Channel': 'inline_cli' } });
|
|
18
17
|
if (res._status === 202 && res.approvalId) {
|
|
19
18
|
console.log('');
|
|
20
|
-
console.log(
|
|
19
|
+
console.log(colors.warning(res.message || 'Approval required to view card details.'));
|
|
21
20
|
console.log('');
|
|
22
21
|
const { approve } = await inquirer.prompt([
|
|
23
22
|
{
|
|
@@ -30,7 +29,7 @@ export async function cardDetails(cardId) {
|
|
|
30
29
|
const decision = approve ? 'approved' : 'denied';
|
|
31
30
|
await api(`/approvals/${res.approvalId}/resolve`, { method: 'POST', body: { decision }, headers: { 'X-Approval-Channel': 'inline_cli' } });
|
|
32
31
|
if (!approve) {
|
|
33
|
-
console.log(
|
|
32
|
+
console.log(colors.muted('Request denied.'));
|
|
34
33
|
return;
|
|
35
34
|
}
|
|
36
35
|
const card = await api(`/cards/${cardId}/details/approved?approvalId=${res.approvalId}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../../../src/commands/cards/details.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"details.js","sourceRoot":"","sources":["../../../../src/commands/cards/details.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/cards/list.ts"],"names":[],"mappings":"AAcA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/cards/list.ts"],"names":[],"mappings":"AAcA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CA8B/C"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import Table from 'cli-table3';
|
|
2
|
-
import
|
|
2
|
+
import { colors, printSection, printBox } from '../../lib/ui.js';
|
|
3
3
|
import { api } from '../../lib/api.js';
|
|
4
4
|
export async function listCards() {
|
|
5
5
|
const cards = (await api('/cards')).cards;
|
|
6
6
|
if (cards.length === 0) {
|
|
7
|
-
|
|
7
|
+
printBox(['No cards yet.', '', colors.muted('Run: agent-cards cards create --amount <dollars>')]);
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
|
+
printSection('Your Cards');
|
|
10
11
|
const table = new Table({
|
|
11
12
|
head: ['ID (short)', 'Last4', 'Expiry', 'Balance', 'Limit', 'Status'],
|
|
12
13
|
style: { head: ['cyan'] },
|
|
@@ -14,13 +15,13 @@ export async function listCards() {
|
|
|
14
15
|
for (const card of cards) {
|
|
15
16
|
const balance = `$${(card.balanceCents / 100).toFixed(2)}`;
|
|
16
17
|
const limit = `$${(card.spendLimitCents / 100).toFixed(2)}`;
|
|
17
|
-
const statusColor = card.status === 'OPEN' ?
|
|
18
|
+
const statusColor = card.status === 'OPEN' ? colors.success : card.status === 'IN_USE' ? colors.warning : colors.error;
|
|
18
19
|
table.push([
|
|
19
20
|
card.id.slice(0, 8) + '…',
|
|
20
21
|
'•••• ' + card.last4,
|
|
21
22
|
card.expiry,
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
colors.money(balance),
|
|
24
|
+
colors.muted(limit),
|
|
24
25
|
statusColor(card.status),
|
|
25
26
|
]);
|
|
26
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/cards/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/cards/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAYvC,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAoB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAE7D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,CAAC,eAAe,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC,CAAC;QAClG,OAAO;IACT,CAAC;IAED,YAAY,CAAC,YAAY,CAAC,CAAC;IAE3B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;QACrE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;KAC1B,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACvH,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG;YACzB,OAAO,GAAG,IAAI,CAAC,KAAK;YACpB,IAAI,CAAC,MAAM;YACX,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;YACrB,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACnB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../../src/commands/cards/transactions.ts"],"names":[],"mappings":"AAgCA,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../../src/commands/cards/transactions.ts"],"names":[],"mappings":"AAgCA,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACvC,OAAO,CAAC,IAAI,CAAC,CAgCf"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import Table from 'cli-table3';
|
|
2
|
-
import
|
|
2
|
+
import { colors, printSection, printBox } from '../../lib/ui.js';
|
|
3
3
|
import { api } from '../../lib/api.js';
|
|
4
4
|
function statusColor(status) {
|
|
5
5
|
switch (status) {
|
|
6
6
|
case 'SETTLED':
|
|
7
7
|
case 'COMPLETED':
|
|
8
|
-
return
|
|
8
|
+
return colors.success(status);
|
|
9
9
|
case 'PENDING':
|
|
10
|
-
return
|
|
10
|
+
return colors.warning(status);
|
|
11
11
|
case 'DECLINED':
|
|
12
12
|
case 'REVERSED':
|
|
13
13
|
case 'FAILED':
|
|
14
|
-
return
|
|
14
|
+
return colors.error(status);
|
|
15
15
|
default:
|
|
16
|
-
return
|
|
16
|
+
return colors.muted(status);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
export async function cardTransactions(cardId, opts) {
|
|
@@ -22,9 +22,10 @@ export async function cardTransactions(cardId, opts) {
|
|
|
22
22
|
path += `&status=${opts.status}`;
|
|
23
23
|
const { transactions } = await api(path);
|
|
24
24
|
if (transactions.length === 0) {
|
|
25
|
-
|
|
25
|
+
printBox(['No transactions found.', '', colors.muted('Transactions will appear here after card usage.')]);
|
|
26
26
|
return;
|
|
27
27
|
}
|
|
28
|
+
printSection('Transactions');
|
|
28
29
|
const table = new Table({
|
|
29
30
|
head: ['Date', 'Merchant', 'Amount', 'Status', 'Source'],
|
|
30
31
|
style: { head: ['cyan'] },
|
|
@@ -34,10 +35,10 @@ export async function cardTransactions(cardId, opts) {
|
|
|
34
35
|
const amount = `$${(tx.amountCents / 100).toFixed(2)}`;
|
|
35
36
|
table.push([
|
|
36
37
|
date,
|
|
37
|
-
tx.merchant ||
|
|
38
|
-
|
|
38
|
+
tx.merchant || colors.muted('—'),
|
|
39
|
+
colors.money(amount),
|
|
39
40
|
statusColor(tx.status),
|
|
40
|
-
tx.source ||
|
|
41
|
+
tx.source || colors.muted('—'),
|
|
41
42
|
]);
|
|
42
43
|
}
|
|
43
44
|
console.log(table.toString());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../../../src/commands/cards/transactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../../../src/commands/cards/transactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAcvC,SAAS,WAAW,CAAC,MAAc;IACjC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B;YACE,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,IAAwC;IAExC,IAAI,IAAI,GAAG,UAAU,MAAM,uBAAuB,IAAI,CAAC,KAAK,EAAE,CAAC;IAC/D,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,IAAI,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC;IAElD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,GAAG,CAAkC,IAAI,CAAC,CAAC;IAE1E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,QAAQ,CAAC,CAAC,wBAAwB,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC,CAAC;QAC1G,OAAO;IACT,CAAC;IAED,YAAY,CAAC,cAAc,CAAC,CAAC;IAE7B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;QACxD,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;KAC1B,CAAC,CAAC;IAEH,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI;YACJ,EAAE,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;YACpB,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC;YACtB,EAAE,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
/** Login uses the same magic-link flow as signup. */
|
|
2
|
-
export declare function login(): Promise<void>;
|
|
1
|
+
/** Login uses the same magic-link flow as signup, without the welcome screen. */
|
|
2
|
+
export declare function login(version: string): Promise<void>;
|
|
3
3
|
//# sourceMappingURL=login.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/login.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/commands/login.ts"],"names":[],"mappings":"AAEA,iFAAiF;AACjF,wBAAsB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { signup } from './signup.js';
|
|
2
|
-
/** Login uses the same magic-link flow as signup. */
|
|
3
|
-
export async function login() {
|
|
4
|
-
await signup();
|
|
2
|
+
/** Login uses the same magic-link flow as signup, without the welcome screen. */
|
|
3
|
+
export async function login(version) {
|
|
4
|
+
await signup(version, { showWelcome: false });
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=login.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,OAAe;IACzC,MAAM,MAAM,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/commands/plan.ts"],"names":[],"mappings":"AAeA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAuChD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA0CjD;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBhD"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import ora from 'ora';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import open from 'open';
|
|
4
|
+
import { api } from '../lib/api.js';
|
|
5
|
+
import { poll } from '../lib/poll.js';
|
|
6
|
+
export async function planStatus() {
|
|
7
|
+
const spinner = ora('Fetching plan...').start();
|
|
8
|
+
const res = await api('/subscriptions/status');
|
|
9
|
+
spinner.stop();
|
|
10
|
+
const planName = res.plan === 'basic' ? 'Basic ($15/mo)' : 'Free';
|
|
11
|
+
console.log();
|
|
12
|
+
console.log(chalk.bold(' Plan'));
|
|
13
|
+
console.log(chalk.dim(' ─────────────────────────────'));
|
|
14
|
+
console.log(` Current plan: ${chalk.bold(planName)}`);
|
|
15
|
+
if (res.plan === 'free') {
|
|
16
|
+
console.log(` Cards/month: ${chalk.dim('5')}`);
|
|
17
|
+
console.log(` Max per card: ${chalk.dim('$50.00')}`);
|
|
18
|
+
console.log();
|
|
19
|
+
console.log(chalk.dim(' Upgrade to Basic for 15 cards/month and $500/card.'));
|
|
20
|
+
console.log(chalk.dim(' Run: agent-cards plan upgrade'));
|
|
21
|
+
}
|
|
22
|
+
else if (res.subscription) {
|
|
23
|
+
console.log(` Cards/month: ${chalk.dim('15')}`);
|
|
24
|
+
console.log(` Max per card: ${chalk.dim('$500.00')}`);
|
|
25
|
+
const statusLabel = res.subscription.status === 'past_due'
|
|
26
|
+
? chalk.yellow(res.subscription.status)
|
|
27
|
+
: chalk.dim(res.subscription.status);
|
|
28
|
+
console.log(` Status: ${statusLabel}`);
|
|
29
|
+
const periodEnd = new Date(res.subscription.currentPeriodEnd);
|
|
30
|
+
console.log(` Renews: ${chalk.dim(periodEnd.toLocaleDateString())}`);
|
|
31
|
+
if (res.subscription.status === 'past_due') {
|
|
32
|
+
console.log();
|
|
33
|
+
console.log(chalk.yellow(' Payment failed. Please update your payment method:'));
|
|
34
|
+
console.log(chalk.yellow(' Run: agent-cards payment-method setup'));
|
|
35
|
+
}
|
|
36
|
+
if (res.subscription.cancelAtPeriodEnd) {
|
|
37
|
+
console.log();
|
|
38
|
+
console.log(chalk.yellow(' Cancels at end of billing period.'));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
console.log();
|
|
42
|
+
}
|
|
43
|
+
export async function planUpgrade() {
|
|
44
|
+
// Check current status first
|
|
45
|
+
const statusSpinner = ora('Checking current plan...').start();
|
|
46
|
+
const status = await api('/subscriptions/status');
|
|
47
|
+
if (status.plan === 'basic') {
|
|
48
|
+
statusSpinner.succeed('You are already on the Basic plan.');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
statusSpinner.text = 'Creating checkout session...';
|
|
52
|
+
let checkoutUrl;
|
|
53
|
+
try {
|
|
54
|
+
const res = await api('/subscriptions/checkout', {
|
|
55
|
+
method: 'POST',
|
|
56
|
+
});
|
|
57
|
+
checkoutUrl = res.checkoutUrl;
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
statusSpinner.stop();
|
|
61
|
+
throw err;
|
|
62
|
+
}
|
|
63
|
+
statusSpinner.succeed('Checkout session ready');
|
|
64
|
+
console.log(chalk.cyan('\nOpening upgrade checkout page...'));
|
|
65
|
+
console.log(chalk.dim(`URL: ${checkoutUrl}\n`));
|
|
66
|
+
await open(checkoutUrl);
|
|
67
|
+
const pollSpinner = ora('Waiting for subscription to activate...').start();
|
|
68
|
+
await poll(async () => {
|
|
69
|
+
const res = await api('/subscriptions/status');
|
|
70
|
+
if (res.plan === 'basic')
|
|
71
|
+
return true;
|
|
72
|
+
return null;
|
|
73
|
+
}, { timeoutMs: 600_000 });
|
|
74
|
+
pollSpinner.succeed(chalk.green('Upgraded to Basic!'));
|
|
75
|
+
console.log('You now have 15 cards/month and up to $500 per card.');
|
|
76
|
+
}
|
|
77
|
+
export async function planCancel() {
|
|
78
|
+
const spinner = ora('Cancelling subscription...').start();
|
|
79
|
+
try {
|
|
80
|
+
const status = await api('/subscriptions/status');
|
|
81
|
+
if (status.plan === 'free') {
|
|
82
|
+
spinner.succeed('You are on the Free plan — nothing to cancel.');
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
await api('/subscriptions/cancel', {
|
|
86
|
+
method: 'POST',
|
|
87
|
+
});
|
|
88
|
+
spinner.succeed('Subscription cancelled.');
|
|
89
|
+
console.log('Your Basic plan remains active until the end of the current billing period.');
|
|
90
|
+
console.log('After that, you will be downgraded to the Free plan (5 cards/month, $50/card).');
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
spinner.stop();
|
|
94
|
+
throw err;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../src/commands/plan.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAWtC,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEhD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAqB,uBAAuB,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC;IAElE,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAExD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC5D,CAAC;SAAM,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,UAAU;YACxD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;YACvC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,GAAG,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,6BAA6B;IAC7B,MAAM,aAAa,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAqB,uBAAuB,CAAC,CAAC;IAEtE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,aAAa,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,aAAa,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAEpD,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAA0B,yBAAyB,EAAE;YACxE,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QACH,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IAChC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,aAAa,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,aAAa,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,WAAW,IAAI,CAAC,CAAC,CAAC;IAEhD,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;IAExB,MAAM,WAAW,GAAG,GAAG,CAAC,yCAAyC,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3E,MAAM,IAAI,CACR,KAAK,IAAI,EAAE;QACT,MAAM,GAAG,GAAG,MAAM,GAAG,CAAqB,uBAAuB,CAAC,CAAC;QACnE,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC,EACD,EAAE,SAAS,EAAE,OAAO,EAAE,CACvB,CAAC;IAEF,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAqB,uBAAuB,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;QAED,MAAM,GAAG,CAAwC,uBAAuB,EAAE;YACxE,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAChG,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function setupMcp(): Promise<void>;
|
|
1
|
+
export declare function setupMcp(version: string): Promise<void>;
|
|
2
2
|
//# sourceMappingURL=setup-mcp.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-mcp.d.ts","sourceRoot":"","sources":["../../../src/commands/setup-mcp.ts"],"names":[],"mappings":"AAiBA,wBAAsB,QAAQ,
|
|
1
|
+
{"version":3,"file":"setup-mcp.d.ts","sourceRoot":"","sources":["../../../src/commands/setup-mcp.ts"],"names":[],"mappings":"AAiBA,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqD7D"}
|
|
@@ -12,7 +12,7 @@ function isJwtExpired(jwt) {
|
|
|
12
12
|
return false;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
export async function setupMcp() {
|
|
15
|
+
export async function setupMcp(version) {
|
|
16
16
|
// Check that claude CLI is installed first (before signup)
|
|
17
17
|
try {
|
|
18
18
|
execSync('claude --version', { stdio: 'ignore' });
|
|
@@ -31,7 +31,7 @@ export async function setupMcp() {
|
|
|
31
31
|
else {
|
|
32
32
|
console.log(chalk.yellow('Your session has expired.') + ' Let\'s sign you in again.\n');
|
|
33
33
|
}
|
|
34
|
-
await signup();
|
|
34
|
+
await signup(version);
|
|
35
35
|
jwt = getJwt();
|
|
36
36
|
if (!jwt) {
|
|
37
37
|
console.error(chalk.red('Signup failed. Please try again.'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../../src/commands/setup-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CACxB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CACpD,CAAC;QACF,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ;
|
|
1
|
+
{"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../../src/commands/setup-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../../src/commands/signup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signup.d.ts","sourceRoot":"","sources":["../../../src/commands/signup.ts"],"names":[],"mappings":"AAkBA,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB7F"}
|
|
@@ -4,6 +4,7 @@ import chalk from 'chalk';
|
|
|
4
4
|
import { api } from '../lib/api.js';
|
|
5
5
|
import { writeConfig, clearAuth, getJwt } from '../lib/config.js';
|
|
6
6
|
import { poll } from '../lib/poll.js';
|
|
7
|
+
import { printWelcome } from '../lib/welcome.js';
|
|
7
8
|
async function getCurrentUserEmail() {
|
|
8
9
|
if (!getJwt())
|
|
9
10
|
return null;
|
|
@@ -15,7 +16,8 @@ async function getCurrentUserEmail() {
|
|
|
15
16
|
return null;
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
|
-
export async function signup() {
|
|
19
|
+
export async function signup(version, opts) {
|
|
20
|
+
const showWelcome = opts?.showWelcome ?? true;
|
|
19
21
|
const currentEmail = await getCurrentUserEmail();
|
|
20
22
|
if (currentEmail) {
|
|
21
23
|
const { logoutFirst } = await inquirer.prompt([
|
|
@@ -32,9 +34,9 @@ export async function signup() {
|
|
|
32
34
|
}
|
|
33
35
|
clearAuth();
|
|
34
36
|
}
|
|
35
|
-
await loginWithEmail();
|
|
37
|
+
await loginWithEmail(version, showWelcome);
|
|
36
38
|
}
|
|
37
|
-
async function loginWithEmail() {
|
|
39
|
+
async function loginWithEmail(version, showWelcome = true) {
|
|
38
40
|
const { email } = await inquirer.prompt([
|
|
39
41
|
{
|
|
40
42
|
type: 'input',
|
|
@@ -62,5 +64,7 @@ async function loginWithEmail() {
|
|
|
62
64
|
writeConfig({ email: result.email ?? email, jwt: result.jwt });
|
|
63
65
|
spinner.succeed(chalk.green(`Signed in as ${chalk.bold(email)}`));
|
|
64
66
|
console.log(chalk.dim('Credentials saved to ~/.agent-cards/config.json'));
|
|
67
|
+
if (showWelcome)
|
|
68
|
+
await printWelcome(version);
|
|
65
69
|
}
|
|
66
70
|
//# sourceMappingURL=signup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signup.js","sourceRoot":"","sources":["../../../src/commands/signup.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"signup.js","sourceRoot":"","sources":["../../../src/commands/signup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/lib/help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAQ,MAAM,WAAW,CAAC;AAiE/C,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAkD/E"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { colors, printBoxedSection, printHowItWorks } from './ui.js';
|
|
2
|
+
function padEnd(str, len) {
|
|
3
|
+
return str + ' '.repeat(Math.max(0, len - str.length));
|
|
4
|
+
}
|
|
5
|
+
const COMMAND_GROUPS = [
|
|
6
|
+
{
|
|
7
|
+
title: 'Auth',
|
|
8
|
+
commands: [
|
|
9
|
+
{ name: 'signup', description: 'Sign up or sign in via magic link' },
|
|
10
|
+
{ name: 'login', description: 'Log in via magic link (same as signup)' },
|
|
11
|
+
{ name: 'logout', description: 'Log out and clear stored credentials' },
|
|
12
|
+
{ name: 'whoami', description: 'Show the currently logged-in user email' },
|
|
13
|
+
],
|
|
14
|
+
examples: ['agent-cards signup', 'agent-cards whoami'],
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
title: 'Cards',
|
|
18
|
+
commands: [
|
|
19
|
+
{ name: 'cards create --amount <dollars>', description: 'Fund and issue a new virtual card' },
|
|
20
|
+
{ name: 'cards list', description: 'List all cards' },
|
|
21
|
+
{ name: 'cards details <id>', description: 'Show decrypted PAN / CVV / expiry' },
|
|
22
|
+
{ name: 'cards transactions <id>', description: 'Show transaction history' },
|
|
23
|
+
{ name: 'balance <id>', description: 'Quick balance check' },
|
|
24
|
+
],
|
|
25
|
+
examples: ['agent-cards cards create --amount 50', 'agent-cards cards list'],
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
title: 'Payments',
|
|
29
|
+
commands: [
|
|
30
|
+
{ name: 'payment-method setup', description: 'Save a payment method' },
|
|
31
|
+
{ name: 'payment-method remove', description: 'Remove a saved payment method' },
|
|
32
|
+
],
|
|
33
|
+
examples: ['agent-cards payment-method setup'],
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
title: 'Plan',
|
|
37
|
+
commands: [
|
|
38
|
+
{ name: 'plan', description: 'View your current subscription plan' },
|
|
39
|
+
{ name: 'plan upgrade', description: 'Upgrade to Basic ($15/mo)' },
|
|
40
|
+
{ name: 'plan cancel', description: 'Cancel your subscription' },
|
|
41
|
+
],
|
|
42
|
+
examples: ['agent-cards plan', 'agent-cards plan upgrade'],
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
title: 'Tools',
|
|
46
|
+
commands: [
|
|
47
|
+
{ name: 'setup-mcp', description: 'Configure MCP server in Claude Code' },
|
|
48
|
+
{ name: 'extension install', description: 'Install Chrome extension' },
|
|
49
|
+
{ name: 'extension update', description: 'Update Chrome extension' },
|
|
50
|
+
{ name: 'settings', description: 'Manage notification preferences' },
|
|
51
|
+
],
|
|
52
|
+
examples: ['agent-cards setup-mcp'],
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
title: 'Support',
|
|
56
|
+
commands: [
|
|
57
|
+
{ name: 'support', description: 'Start a live support conversation' },
|
|
58
|
+
],
|
|
59
|
+
examples: ['agent-cards support --resume conv_123'],
|
|
60
|
+
},
|
|
61
|
+
];
|
|
62
|
+
export function configureHelpForProgram(program, version) {
|
|
63
|
+
// Override Commander's help to print our custom UI directly
|
|
64
|
+
program.configureHelp({
|
|
65
|
+
formatHelp(_cmd, _helper) {
|
|
66
|
+
console.log('');
|
|
67
|
+
console.log(` ${colors.label('AgentCard')} ${colors.muted(`v${version}`)} ${colors.muted('Virtual debit cards for AI agents')}`);
|
|
68
|
+
// Usage section
|
|
69
|
+
printBoxedSection('Usage', [
|
|
70
|
+
'agent-cards <command> [OPTIONS]',
|
|
71
|
+
'agent-cards <resource> <tool> [OPTIONS]',
|
|
72
|
+
]);
|
|
73
|
+
// Command groups
|
|
74
|
+
const allNames = COMMAND_GROUPS.flatMap(g => g.commands.map(c => c.name));
|
|
75
|
+
const maxLen = Math.max(...allNames.map(n => n.length));
|
|
76
|
+
for (const group of COMMAND_GROUPS) {
|
|
77
|
+
const lines = [];
|
|
78
|
+
for (const cmd of group.commands) {
|
|
79
|
+
lines.push(`${colors.flag(padEnd(cmd.name, maxLen))} ${colors.muted(cmd.description)}`);
|
|
80
|
+
}
|
|
81
|
+
if (group.examples && group.examples.length > 0) {
|
|
82
|
+
lines.push('');
|
|
83
|
+
for (const ex of group.examples) {
|
|
84
|
+
lines.push(colors.muted(`$ ${ex}`));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
printBoxedSection(group.title, lines);
|
|
88
|
+
}
|
|
89
|
+
// How it works
|
|
90
|
+
printHowItWorks();
|
|
91
|
+
// Options section
|
|
92
|
+
printBoxedSection('Options', [
|
|
93
|
+
`${colors.flag(padEnd('--version, -V', maxLen))} ${colors.muted('Show version number')}`,
|
|
94
|
+
`${colors.flag(padEnd('--help, -h', maxLen))} ${colors.muted('Show this help message')}`,
|
|
95
|
+
]);
|
|
96
|
+
console.log('');
|
|
97
|
+
console.log(` ${colors.url('https://agentcard.sh')}`);
|
|
98
|
+
console.log('');
|
|
99
|
+
// Return empty — we already printed everything
|
|
100
|
+
return '';
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=help.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/lib/help.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare const colors: {
|
|
2
|
+
brand: import("chalk").ChalkInstance;
|
|
3
|
+
accent: import("chalk").ChalkInstance;
|
|
4
|
+
muted: import("chalk").ChalkInstance;
|
|
5
|
+
success: import("chalk").ChalkInstance;
|
|
6
|
+
warning: import("chalk").ChalkInstance;
|
|
7
|
+
error: import("chalk").ChalkInstance;
|
|
8
|
+
money: import("chalk").ChalkInstance;
|
|
9
|
+
heading: import("chalk").ChalkInstance;
|
|
10
|
+
label: import("chalk").ChalkInstance;
|
|
11
|
+
flag: import("chalk").ChalkInstance;
|
|
12
|
+
url: import("chalk").ChalkInstance;
|
|
13
|
+
};
|
|
14
|
+
export declare function stripAnsi(str: string): string;
|
|
15
|
+
export declare function printBannerSync(): void;
|
|
16
|
+
export declare function printBanner(): Promise<void>;
|
|
17
|
+
export declare function printBoxedSection(title: string, content: string[]): void;
|
|
18
|
+
export declare function printHeader(version: string): Promise<void>;
|
|
19
|
+
export declare function printBox(content: string[], options?: {
|
|
20
|
+
padding?: number;
|
|
21
|
+
title?: string;
|
|
22
|
+
borderColor?: (s: string) => string;
|
|
23
|
+
}): void;
|
|
24
|
+
export declare function printDivider(width?: number): void;
|
|
25
|
+
export declare function printSection(title: string): void;
|
|
26
|
+
export interface CommandGroup {
|
|
27
|
+
title: string;
|
|
28
|
+
commands: Array<{
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
}>;
|
|
32
|
+
examples?: string[];
|
|
33
|
+
}
|
|
34
|
+
export declare function printCommandTable(groups: CommandGroup[]): void;
|
|
35
|
+
export declare function printHowItWorks(): void;
|
|
36
|
+
export declare function printKeyValue(pairs: [string, string][]): void;
|
|
37
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../src/lib/ui.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM;;;;;;;;;;;;CAYlB,CAAC;AAIF,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAgCD,wBAAgB,eAAe,IAAI,IAAI,CAOtC;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBjD;AAID,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CA6BxE;AAID,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhE;AAID,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE,GAClF,IAAI,CA+BN;AAED,wBAAgB,YAAY,CAAC,KAAK,SAAK,GAAG,IAAI,CAE7C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMhD;AAID,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAkB9D;AAID,wBAAgB,eAAe,IAAI,IAAI,CAatC;AAID,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,CAQ7D"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { readFileSync } from 'fs';
|
|
3
|
+
import { dirname, resolve } from 'path';
|
|
4
|
+
import { fileURLToPath } from 'url';
|
|
5
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
6
|
+
// ── Brand color palette ─────────────────────────────────────
|
|
7
|
+
export const colors = {
|
|
8
|
+
brand: chalk.white,
|
|
9
|
+
accent: chalk.bold.white,
|
|
10
|
+
muted: chalk.dim,
|
|
11
|
+
success: chalk.white,
|
|
12
|
+
warning: chalk.bold.white,
|
|
13
|
+
error: chalk.bold.white,
|
|
14
|
+
money: chalk.bold.white,
|
|
15
|
+
heading: chalk.bold.white,
|
|
16
|
+
label: chalk.bold.white,
|
|
17
|
+
flag: chalk.bold.white,
|
|
18
|
+
url: chalk.underline.dim,
|
|
19
|
+
};
|
|
20
|
+
// ── Utility ─────────────────────────────────────────────────
|
|
21
|
+
export function stripAnsi(str) {
|
|
22
|
+
return str.replace(/\x1B\[[0-9;]*m/g, '');
|
|
23
|
+
}
|
|
24
|
+
function getTerminalWidth() {
|
|
25
|
+
return process.stdout.columns || 80;
|
|
26
|
+
}
|
|
27
|
+
// ── ASCII art banner ────────────────────────────────────────
|
|
28
|
+
function loadBannerArt() {
|
|
29
|
+
try {
|
|
30
|
+
// Works from both src/lib/ (dev) and dist/lib/ (prod)
|
|
31
|
+
const candidates = [
|
|
32
|
+
resolve(__dirname, '..', '..', 'assets', 'banner.txt'),
|
|
33
|
+
resolve(__dirname, '..', '..', '..', 'assets', 'banner.txt'),
|
|
34
|
+
];
|
|
35
|
+
for (const p of candidates) {
|
|
36
|
+
try {
|
|
37
|
+
const content = readFileSync(p, 'utf8');
|
|
38
|
+
const lines = content.split('\n').filter(l => l.trim().length > 0);
|
|
39
|
+
// Strip common leading whitespace to left-align
|
|
40
|
+
const minIndent = Math.min(...lines.filter(l => l.trim()).map(l => l.match(/^( *)/)[1].length));
|
|
41
|
+
return minIndent > 0 ? lines.map(l => l.slice(minIndent)) : lines;
|
|
42
|
+
}
|
|
43
|
+
catch { }
|
|
44
|
+
}
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export function printBannerSync() {
|
|
52
|
+
const lines = loadBannerArt();
|
|
53
|
+
if (lines.length === 0)
|
|
54
|
+
return;
|
|
55
|
+
console.log('');
|
|
56
|
+
for (const line of lines) {
|
|
57
|
+
console.log(chalk.white(line));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export async function printBanner() {
|
|
61
|
+
const lines = loadBannerArt();
|
|
62
|
+
if (lines.length === 0)
|
|
63
|
+
return;
|
|
64
|
+
console.log('');
|
|
65
|
+
if (!process.stdout.isTTY) {
|
|
66
|
+
for (const line of lines) {
|
|
67
|
+
console.log(chalk.white(line));
|
|
68
|
+
}
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// Animate: reveal line by line
|
|
72
|
+
for (const line of lines) {
|
|
73
|
+
process.stdout.write(chalk.white(line) + '\n');
|
|
74
|
+
await new Promise(r => setTimeout(r, 20));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// ── Boxed section (Ramp-style) ──────────────────────────────
|
|
78
|
+
export function printBoxedSection(title, content) {
|
|
79
|
+
const width = Math.min(getTerminalWidth() - 2, 80);
|
|
80
|
+
const border = chalk.white;
|
|
81
|
+
// Measure max content width (strip ANSI) for right-padding
|
|
82
|
+
const maxContentWidth = Math.max(...content.map((l) => stripAnsi(l).length), width - 4);
|
|
83
|
+
// Top border with title
|
|
84
|
+
const titleStr = ` ${chalk.bold.white(title)} `;
|
|
85
|
+
const titleLen = stripAnsi(titleStr).length;
|
|
86
|
+
const preLen = 2;
|
|
87
|
+
const postLen = Math.max(0, width - preLen - titleLen - 1);
|
|
88
|
+
console.log('');
|
|
89
|
+
console.log(border('┌' + '─'.repeat(preLen - 1)) + titleStr + border('─'.repeat(postLen) + '┐'));
|
|
90
|
+
// Content lines with left + right border
|
|
91
|
+
for (const line of content) {
|
|
92
|
+
const visibleLen = stripAnsi(line).length;
|
|
93
|
+
const rightPad = ' '.repeat(Math.max(0, maxContentWidth - visibleLen));
|
|
94
|
+
console.log(border('│') + ' ' + line + rightPad + ' ' + border('│'));
|
|
95
|
+
}
|
|
96
|
+
// Bottom border
|
|
97
|
+
console.log(border('└' + '─'.repeat(width - 2) + '┘'));
|
|
98
|
+
}
|
|
99
|
+
// ── Print header (banner + version) ─────────────────────────
|
|
100
|
+
export async function printHeader(version) {
|
|
101
|
+
await printBanner();
|
|
102
|
+
console.log('');
|
|
103
|
+
console.log(` ${colors.label('AgentCard')} ${colors.muted(`v${version}`)} ${colors.muted('Virtual debit cards for AI agents')}`);
|
|
104
|
+
console.log('');
|
|
105
|
+
}
|
|
106
|
+
// ── Smaller box for data display ────────────────────────────
|
|
107
|
+
export function printBox(content, options) {
|
|
108
|
+
const pad = options?.padding ?? 1;
|
|
109
|
+
const color = options?.borderColor ?? colors.muted;
|
|
110
|
+
const innerWidth = Math.max(...content.map((line) => stripAnsi(line).length), options?.title ? stripAnsi(options.title).length + 2 : 0) + pad * 2;
|
|
111
|
+
const padStr = ' '.repeat(pad);
|
|
112
|
+
// Top border with optional title
|
|
113
|
+
if (options?.title) {
|
|
114
|
+
const titleStr = ` ${chalk.bold(options.title)} `;
|
|
115
|
+
const titleLen = stripAnsi(titleStr).length;
|
|
116
|
+
const preLen = 2;
|
|
117
|
+
const postLen = Math.max(0, innerWidth + 2 - preLen - titleLen);
|
|
118
|
+
console.log(color('─'.repeat(preLen)) + titleStr + color('─'.repeat(postLen)));
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
console.log(color('┌' + '─'.repeat(innerWidth) + '┐'));
|
|
122
|
+
}
|
|
123
|
+
// Content lines
|
|
124
|
+
for (const line of content) {
|
|
125
|
+
const visibleLen = stripAnsi(line).length;
|
|
126
|
+
const rightPad = ' '.repeat(Math.max(0, innerWidth - pad - visibleLen));
|
|
127
|
+
console.log(`${color('│')}${padStr}${line}${rightPad}${color('│')}`);
|
|
128
|
+
}
|
|
129
|
+
// Bottom border
|
|
130
|
+
console.log(color('└' + '─'.repeat(innerWidth) + '┘'));
|
|
131
|
+
}
|
|
132
|
+
export function printDivider(width = 40) {
|
|
133
|
+
console.log(colors.muted('─'.repeat(width)));
|
|
134
|
+
}
|
|
135
|
+
export function printSection(title) {
|
|
136
|
+
console.log('');
|
|
137
|
+
const titleStr = colors.heading(title);
|
|
138
|
+
const titleLen = stripAnsi(titleStr).length;
|
|
139
|
+
const lineLen = Math.max(0, 40 - titleLen);
|
|
140
|
+
console.log(` ${titleStr} ${colors.muted('─'.repeat(lineLen))}`);
|
|
141
|
+
}
|
|
142
|
+
function padEnd(str, len) {
|
|
143
|
+
return str + ' '.repeat(Math.max(0, len - str.length));
|
|
144
|
+
}
|
|
145
|
+
export function printCommandTable(groups) {
|
|
146
|
+
const allNames = groups.flatMap((g) => g.commands.map((c) => c.name));
|
|
147
|
+
const maxLen = Math.max(...allNames.map((n) => n.length));
|
|
148
|
+
for (const group of groups) {
|
|
149
|
+
// Each group is a boxed section
|
|
150
|
+
const lines = [];
|
|
151
|
+
for (const cmd of group.commands) {
|
|
152
|
+
lines.push(`${colors.flag(padEnd(cmd.name, maxLen))} ${colors.muted(cmd.description)}`);
|
|
153
|
+
}
|
|
154
|
+
if (group.examples && group.examples.length > 0) {
|
|
155
|
+
lines.push('');
|
|
156
|
+
for (const ex of group.examples) {
|
|
157
|
+
lines.push(colors.muted(`$ ${ex}`));
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
printBoxedSection(group.title, lines);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// ── How it works ────────────────────────────────────────────
|
|
164
|
+
export function printHowItWorks() {
|
|
165
|
+
printBoxedSection('How it works', [
|
|
166
|
+
'',
|
|
167
|
+
` ${colors.label('1.')} Sign up ${colors.flag('agent-cards signup')}`,
|
|
168
|
+
` ${colors.label('2.')} Add a payment method ${colors.flag('agent-cards payment-method setup')}`,
|
|
169
|
+
` ${colors.label('3.')} Create a virtual card ${colors.flag('agent-cards cards create --amount 50')}`,
|
|
170
|
+
` ${colors.label('4.')} Give it to your agent ${colors.flag('agent-cards setup-mcp')}`,
|
|
171
|
+
'',
|
|
172
|
+
` Your card is ${colors.label('not charged')} up front. We place a ${colors.label('hold')} for the amount.`,
|
|
173
|
+
` You are only charged when the card is actually used.`,
|
|
174
|
+
' Unused cards release the hold and expire after 7 days.',
|
|
175
|
+
'',
|
|
176
|
+
]);
|
|
177
|
+
}
|
|
178
|
+
// ── Key-value display ───────────────────────────────────────
|
|
179
|
+
export function printKeyValue(pairs) {
|
|
180
|
+
const maxKeyLen = Math.max(...pairs.map(([key]) => stripAnsi(key).length));
|
|
181
|
+
for (const [key, value] of pairs) {
|
|
182
|
+
const keyLen = stripAnsi(key).length;
|
|
183
|
+
const padding = ' '.repeat(Math.max(0, maxKeyLen - keyLen));
|
|
184
|
+
console.log(` ${colors.label(key)}${padding} ${value}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=ui.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/lib/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../../src/lib/welcome.ts"],"names":[],"mappings":"AAqCA,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { printHeader, printCommandTable, printHowItWorks, colors } from './ui.js';
|
|
2
|
+
const groups = [
|
|
3
|
+
{
|
|
4
|
+
title: 'Cards',
|
|
5
|
+
commands: [
|
|
6
|
+
{ name: 'cards create --amount <dollars>', description: 'Issue a one-time virtual Visa card' },
|
|
7
|
+
{ name: 'cards list', description: 'View all your cards' },
|
|
8
|
+
{ name: 'cards details <id>', description: 'Show full PAN, CVV, and expiry' },
|
|
9
|
+
{ name: 'balance <id>', description: 'Quick balance check' },
|
|
10
|
+
],
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
title: 'Payments',
|
|
14
|
+
commands: [
|
|
15
|
+
{ name: 'payment-method setup', description: 'Save a payment method for card creation' },
|
|
16
|
+
{ name: 'payment-method remove', description: 'Remove a saved payment method' },
|
|
17
|
+
],
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
title: 'Integrations',
|
|
21
|
+
commands: [
|
|
22
|
+
{ name: 'setup-mcp', description: 'Configure the AgentCard MCP server in Claude Code' },
|
|
23
|
+
{ name: 'extension install', description: 'Install the Chrome extension for web payments' },
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
title: 'Account',
|
|
28
|
+
commands: [
|
|
29
|
+
{ name: 'whoami', description: 'Show your current login email' },
|
|
30
|
+
{ name: 'settings', description: 'Manage notification preferences' },
|
|
31
|
+
{ name: 'support', description: 'Chat with the team' },
|
|
32
|
+
{ name: 'logout', description: 'Log out and clear credentials' },
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
export async function printWelcome(version) {
|
|
37
|
+
await printHeader(version);
|
|
38
|
+
printHowItWorks();
|
|
39
|
+
printCommandTable(groups);
|
|
40
|
+
console.log();
|
|
41
|
+
console.log(` ${colors.label('Get started:')} ${colors.brand('agent-cards cards create --amount 10')}`);
|
|
42
|
+
console.log();
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=welcome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../../src/lib/welcome.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAErG,MAAM,MAAM,GAAmB;IAC7B;QACE,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,iCAAiC,EAAE,WAAW,EAAE,oCAAoC,EAAE;YAC9F,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE;YAC1D,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,gCAAgC,EAAE;YAC7E,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,qBAAqB,EAAE;SAC7D;KACF;IACD;QACE,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,yCAAyC,EAAE;YACxF,EAAE,IAAI,EAAE,uBAAuB,EAAE,WAAW,EAAE,+BAA+B,EAAE;SAChF;KACF;IACD;QACE,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,mDAAmD,EAAE;YACvF,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,+CAA+C,EAAE;SAC5F;KACF;IACD;QACE,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;YAChE,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,iCAAiC,EAAE;YACpE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,EAAE;YACtD,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,+BAA+B,EAAE;SACjE;KACF;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAe;IAChD,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3B,eAAe,EAAE,CAAC;IAClB,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE1B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAC;IACzG,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-cards",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.11",
|
|
4
4
|
"description": "CLI for managing virtual debit cards for AI agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"agent-cards": "dist/bin/agent-cards.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
|
-
"dist"
|
|
10
|
+
"dist",
|
|
11
|
+
"assets"
|
|
11
12
|
],
|
|
12
13
|
"engines": {
|
|
13
14
|
"node": ">=18"
|