agent-cards-admin 0.1.0 → 0.2.1
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/bin/agent-cards-admin.js +71 -12
- package/dist/bin/agent-cards-admin.js.map +1 -1
- package/dist/package.json +2 -1
- package/dist/src/commands/cardholders/balance.d.ts +5 -0
- package/dist/src/commands/cardholders/balance.d.ts.map +1 -0
- package/dist/src/commands/cardholders/balance.js +13 -0
- package/dist/src/commands/cardholders/balance.js.map +1 -0
- package/dist/src/commands/cardholders/create.d.ts +4 -0
- package/dist/src/commands/cardholders/create.d.ts.map +1 -0
- package/dist/src/commands/cardholders/create.js +76 -0
- package/dist/src/commands/cardholders/create.js.map +1 -0
- package/dist/src/commands/cardholders/fund.d.ts +6 -0
- package/dist/src/commands/cardholders/fund.d.ts.map +1 -0
- package/dist/src/commands/cardholders/fund.js +20 -0
- package/dist/src/commands/cardholders/fund.js.map +1 -0
- package/dist/src/commands/cardholders/get.d.ts +4 -0
- package/dist/src/commands/cardholders/get.d.ts.map +1 -0
- package/dist/src/commands/cardholders/get.js +46 -0
- package/dist/src/commands/cardholders/get.js.map +1 -0
- package/dist/src/commands/cardholders/list.d.ts +4 -0
- package/dist/src/commands/cardholders/list.d.ts.map +1 -0
- package/dist/src/commands/cardholders/list.js +28 -0
- package/dist/src/commands/cardholders/list.js.map +1 -0
- package/dist/src/commands/cards/close.d.ts +1 -1
- package/dist/src/commands/cards/close.d.ts.map +1 -1
- package/dist/src/commands/cards/close.js +22 -0
- package/dist/src/commands/cards/close.js.map +1 -1
- package/dist/src/commands/cards/create.d.ts.map +1 -1
- package/dist/src/commands/cards/create.js +69 -10
- package/dist/src/commands/cards/create.js.map +1 -1
- package/dist/src/commands/cards/details.d.ts +1 -1
- package/dist/src/commands/cards/details.d.ts.map +1 -1
- package/dist/src/commands/cards/details.js +22 -0
- package/dist/src/commands/cards/details.js.map +1 -1
- package/dist/src/commands/cards/get.d.ts +1 -1
- package/dist/src/commands/cards/get.d.ts.map +1 -1
- package/dist/src/commands/cards/get.js +22 -0
- package/dist/src/commands/cards/get.js.map +1 -1
- package/dist/src/commands/keys/create.d.ts.map +1 -1
- package/dist/src/commands/keys/create.js +5 -1
- package/dist/src/commands/keys/create.js.map +1 -1
- package/dist/src/commands/keys/revoke.d.ts.map +1 -1
- package/dist/src/commands/keys/revoke.js +2 -1
- package/dist/src/commands/keys/revoke.js.map +1 -1
- package/dist/src/commands/keys/rotate.d.ts.map +1 -1
- package/dist/src/commands/keys/rotate.js +6 -1
- package/dist/src/commands/keys/rotate.js.map +1 -1
- package/dist/src/commands/keys/set.d.ts +4 -0
- package/dist/src/commands/keys/set.d.ts.map +1 -0
- package/dist/src/commands/keys/set.js +143 -0
- package/dist/src/commands/keys/set.js.map +1 -0
- package/dist/src/commands/members/add.d.ts.map +1 -1
- package/dist/src/commands/members/add.js +45 -5
- package/dist/src/commands/members/add.js.map +1 -1
- package/dist/src/commands/members/list.d.ts +1 -1
- package/dist/src/commands/members/list.d.ts.map +1 -1
- package/dist/src/commands/members/list.js +22 -0
- package/dist/src/commands/members/list.js.map +1 -1
- package/dist/src/commands/orgs/get.d.ts +1 -1
- package/dist/src/commands/orgs/get.d.ts.map +1 -1
- package/dist/src/commands/orgs/get.js +22 -0
- package/dist/src/commands/orgs/get.js.map +1 -1
- package/dist/src/commands/wallet/balance.d.ts.map +1 -1
- package/dist/src/commands/wallet/balance.js +24 -3
- package/dist/src/commands/wallet/balance.js.map +1 -1
- package/dist/src/commands/wallet/fund.d.ts +4 -0
- package/dist/src/commands/wallet/fund.d.ts.map +1 -0
- package/dist/src/commands/wallet/fund.js +68 -0
- package/dist/src/commands/wallet/fund.js.map +1 -0
- package/dist/src/lib/api.d.ts +1 -1
- package/dist/src/lib/api.d.ts.map +1 -1
- package/dist/src/lib/api.js +51 -8
- package/dist/src/lib/api.js.map +1 -1
- package/dist/src/lib/config.d.ts +20 -0
- package/dist/src/lib/config.d.ts.map +1 -1
- package/dist/src/lib/config.js +60 -1
- package/dist/src/lib/config.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
1
2
|
import Table from 'cli-table3';
|
|
2
3
|
import chalk from 'chalk';
|
|
3
4
|
import ora from 'ora';
|
|
@@ -5,6 +6,27 @@ import { api } from '../../lib/api.js';
|
|
|
5
6
|
import { requireAuth } from '../../lib/config.js';
|
|
6
7
|
export async function listMembers(orgId) {
|
|
7
8
|
requireAuth();
|
|
9
|
+
if (!orgId) {
|
|
10
|
+
const spinner = ora('Loading organizations...').start();
|
|
11
|
+
const { organizations } = await api('/orgs');
|
|
12
|
+
spinner.stop();
|
|
13
|
+
if (organizations.length === 0) {
|
|
14
|
+
console.log(chalk.red('No organizations found. Create one first: agent-cards-admin orgs create'));
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const { selectedOrg } = await inquirer.prompt([
|
|
18
|
+
{
|
|
19
|
+
type: 'list',
|
|
20
|
+
name: 'selectedOrg',
|
|
21
|
+
message: 'Select organization:',
|
|
22
|
+
choices: organizations.map((o) => ({
|
|
23
|
+
name: `${o.name} (${o.billingEmail})`,
|
|
24
|
+
value: o.id,
|
|
25
|
+
})),
|
|
26
|
+
},
|
|
27
|
+
]);
|
|
28
|
+
orgId = selectedOrg;
|
|
29
|
+
}
|
|
8
30
|
const spinner = ora('Fetching members...').start();
|
|
9
31
|
const { members } = await api(`/orgs/${orgId}/members`);
|
|
10
32
|
spinner.stop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/members/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/members/list.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAiBlD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAc;IAC9C,WAAW,EAAE,CAAC;IAEd,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,GAAG,CAAC,0BAA0B,CAAC,CAAC,KAAK,EAAE,CAAC;QACxD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,GAAG,CAA2B,OAAO,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC,CAAC;YAClG,OAAO;QACT,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YAC5C;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,sBAAsB;gBAC/B,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,YAAY,GAAG;oBACrC,KAAK,EAAE,CAAC,CAAC,EAAE;iBACZ,CAAC,CAAC;aACJ;SACF,CAAC,CAAC;QACH,KAAK,GAAG,WAAW,CAAC;IACtB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;IACnD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,CAAwB,SAAS,KAAK,UAAU,CAAC,CAAC;IAC/E,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;QAC9F,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;QACtB,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;QACtC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;KAC1B,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC;YACT,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,IAAI;YACN,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function getOrg(orgId
|
|
1
|
+
export declare function getOrg(orgId?: string): Promise<void>;
|
|
2
2
|
//# sourceMappingURL=get.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/commands/orgs/get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/commands/orgs/get.ts"],"names":[],"mappings":"AAwBA,wBAAsB,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4C1D"}
|
|
@@ -1,9 +1,31 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
1
2
|
import chalk from 'chalk';
|
|
2
3
|
import ora from 'ora';
|
|
3
4
|
import { api } from '../../lib/api.js';
|
|
4
5
|
import { requireAuth } from '../../lib/config.js';
|
|
5
6
|
export async function getOrg(orgId) {
|
|
6
7
|
requireAuth();
|
|
8
|
+
if (!orgId) {
|
|
9
|
+
const spinner = ora('Loading organizations...').start();
|
|
10
|
+
const { organizations } = await api('/orgs');
|
|
11
|
+
spinner.stop();
|
|
12
|
+
if (organizations.length === 0) {
|
|
13
|
+
console.log(chalk.red('No organizations found. Create one first: agent-cards-admin orgs create'));
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const { selectedOrg } = await inquirer.prompt([
|
|
17
|
+
{
|
|
18
|
+
type: 'list',
|
|
19
|
+
name: 'selectedOrg',
|
|
20
|
+
message: 'Select organization:',
|
|
21
|
+
choices: organizations.map((o) => ({
|
|
22
|
+
name: `${o.name} (${o.billingEmail})`,
|
|
23
|
+
value: o.id,
|
|
24
|
+
})),
|
|
25
|
+
},
|
|
26
|
+
]);
|
|
27
|
+
orgId = selectedOrg;
|
|
28
|
+
}
|
|
7
29
|
const spinner = ora('Fetching organization...').start();
|
|
8
30
|
const org = await api(`/orgs/${orgId}`);
|
|
9
31
|
spinner.stop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/orgs/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/orgs/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../../src/commands/wallet/balance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../../../src/commands/wallet/balance.ts"],"names":[],"mappings":"AAYA,wBAAsB,aAAa,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCzE"}
|
|
@@ -1,13 +1,34 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
1
2
|
import chalk from 'chalk';
|
|
2
3
|
import ora from 'ora';
|
|
3
4
|
import { apiKeyApi, getOrPromptApiKey } from '../../lib/api.js';
|
|
4
5
|
export async function walletBalance(opts) {
|
|
5
6
|
const apiKey = await getOrPromptApiKey(opts.key);
|
|
6
|
-
const spinner = ora('Fetching
|
|
7
|
-
const {
|
|
7
|
+
const spinner = ora('Fetching cardholders...').start();
|
|
8
|
+
const { cardholders } = await apiKeyApi(apiKey, '/api/v1/cardholders');
|
|
8
9
|
spinner.stop();
|
|
10
|
+
if (cardholders.length === 0) {
|
|
11
|
+
console.error(chalk.red('No cardholders found. Create one first with: cardholders create'));
|
|
12
|
+
process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
const { cardholderId } = await inquirer.prompt([
|
|
15
|
+
{
|
|
16
|
+
type: 'list',
|
|
17
|
+
name: 'cardholderId',
|
|
18
|
+
message: 'Select cardholder',
|
|
19
|
+
choices: cardholders.map((ch) => ({
|
|
20
|
+
name: `${ch.firstName} ${ch.lastName}${ch.email ? ` (${ch.email})` : ''}`,
|
|
21
|
+
value: ch.id,
|
|
22
|
+
})),
|
|
23
|
+
},
|
|
24
|
+
]);
|
|
25
|
+
const selected = cardholders.find((ch) => ch.id === cardholderId);
|
|
26
|
+
const balanceSpinner = ora('Fetching wallet balance...').start();
|
|
27
|
+
const { balanceCents } = await apiKeyApi(apiKey, `/api/v1/cardholders/${cardholderId}/wallet/balance`);
|
|
28
|
+
balanceSpinner.stop();
|
|
9
29
|
console.log('');
|
|
10
|
-
console.log(` ${chalk.bold('
|
|
30
|
+
console.log(` ${chalk.bold('Cardholder')} ${selected.firstName} ${selected.lastName}`);
|
|
31
|
+
console.log(` ${chalk.bold('Balance')} ${chalk.green(`$${(balanceCents / 100).toFixed(2)}`)}`);
|
|
11
32
|
console.log('');
|
|
12
33
|
}
|
|
13
34
|
//# sourceMappingURL=balance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../../src/commands/wallet/balance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../../src/commands/wallet/balance.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAShE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAsB;IACxD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjD,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IACvD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAgC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACtG,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC,CAAC;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;QAC7C;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,mBAAmB;YAC5B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChC,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzE,KAAK,EAAE,EAAE,CAAC,EAAE;aACb,CAAC,CAAC;SACJ;KACF,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,YAAY,CAAE,CAAC;IAEnE,MAAM,cAAc,GAAG,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;IACjE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,SAAS,CACtC,MAAM,EACN,uBAAuB,YAAY,iBAAiB,CACrD,CAAC;IACF,cAAc,CAAC,IAAI,EAAE,CAAC;IAEtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fund.d.ts","sourceRoot":"","sources":["../../../../src/commands/wallet/fund.ts"],"names":[],"mappings":"AAuBA,wBAAsB,UAAU,CAAC,IAAI,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEtE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import open from 'open';
|
|
5
|
+
import { apiKeyApi, getOrPromptApiKey } from '../../lib/api.js';
|
|
6
|
+
export async function walletFund(opts) {
|
|
7
|
+
const apiKey = await getOrPromptApiKey(opts.key);
|
|
8
|
+
const spinner = ora('Fetching cardholders...').start();
|
|
9
|
+
const { cardholders } = await apiKeyApi(apiKey, '/api/v1/cardholders');
|
|
10
|
+
spinner.stop();
|
|
11
|
+
if (cardholders.length === 0) {
|
|
12
|
+
console.error(chalk.red('No cardholders found. Create one first with: cardholders create'));
|
|
13
|
+
process.exit(1);
|
|
14
|
+
}
|
|
15
|
+
const { cardholderId } = await inquirer.prompt([
|
|
16
|
+
{
|
|
17
|
+
type: 'list',
|
|
18
|
+
name: 'cardholderId',
|
|
19
|
+
message: 'Select cardholder',
|
|
20
|
+
choices: cardholders.map((ch) => ({
|
|
21
|
+
name: `${ch.firstName} ${ch.lastName}${ch.email ? ` (${ch.email})` : ''}`,
|
|
22
|
+
value: ch.id,
|
|
23
|
+
})),
|
|
24
|
+
},
|
|
25
|
+
]);
|
|
26
|
+
const { amountDollars } = await inquirer.prompt([
|
|
27
|
+
{
|
|
28
|
+
type: 'input',
|
|
29
|
+
name: 'amountDollars',
|
|
30
|
+
message: 'Amount in dollars (e.g. 25.00):',
|
|
31
|
+
validate: (v) => {
|
|
32
|
+
const n = parseFloat(v);
|
|
33
|
+
if (isNaN(n) || n <= 0)
|
|
34
|
+
return 'Enter a positive dollar amount';
|
|
35
|
+
return true;
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
]);
|
|
39
|
+
const amountCents = Math.round(parseFloat(amountDollars) * 100);
|
|
40
|
+
const fundSpinner = ora('Creating funding session...').start();
|
|
41
|
+
const result = await apiKeyApi(apiKey, `/api/v1/cardholders/${cardholderId}/wallet/fund`, {
|
|
42
|
+
method: 'POST',
|
|
43
|
+
body: { amountCents },
|
|
44
|
+
});
|
|
45
|
+
fundSpinner.succeed(chalk.green('Funding session created'));
|
|
46
|
+
console.log('');
|
|
47
|
+
console.log(` Opening checkout: ${chalk.cyan(result.checkoutUrl)}`);
|
|
48
|
+
console.log('');
|
|
49
|
+
await open(result.checkoutUrl);
|
|
50
|
+
// Poll for payment completion
|
|
51
|
+
const pollSpinner = ora('Waiting for payment...').start();
|
|
52
|
+
const maxAttempts = 120;
|
|
53
|
+
for (let i = 0; i < maxAttempts; i++) {
|
|
54
|
+
await new Promise((r) => setTimeout(r, 1000));
|
|
55
|
+
const status = await apiKeyApi(apiKey, `/api/v1/cardholders/funding/status/${result.fundingSessionId}`);
|
|
56
|
+
if (status.status === 'succeeded') {
|
|
57
|
+
pollSpinner.succeed(chalk.green(`Payment received — wallet balance: $${((status.walletBalanceCents ?? 0) / 100).toFixed(2)}`));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (status.status === 'failed') {
|
|
61
|
+
pollSpinner.fail(chalk.red('Payment failed'));
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
pollSpinner.fail(chalk.red('Timed out waiting for payment'));
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=fund.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fund.js","sourceRoot":"","sources":["../../../../src/commands/wallet/fund.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/api.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export declare function api<T>(path: string, opts?: FetchOptions): Promise<T>;
|
|
|
19
19
|
*/
|
|
20
20
|
export declare function apiKeyApi<T>(apiKey: string, path: string, opts?: FetchOptions): Promise<T>;
|
|
21
21
|
/**
|
|
22
|
-
* Resolve an API key from: --key flag >
|
|
22
|
+
* Resolve an API key from: --key flag > active stored key > interactive selection > prompt.
|
|
23
23
|
* Saves the key to config for future use.
|
|
24
24
|
*/
|
|
25
25
|
export declare function getOrPromptApiKey(keyFlag?: string): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/lib/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/lib/api.ts"],"names":[],"mappings":"AAcA,KAAK,YAAY,GAAG;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAM3E;AAED;;;GAGG;AACH,wBAAsB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CAiD9E;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CA4CpG;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAoEzE"}
|
package/dist/src/lib/api.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import inquirer from 'inquirer';
|
|
2
|
-
import
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { getApiUrl, getJwt, getStoredKeys, getActiveKey, addStoredKey, setActiveKey, } from './config.js';
|
|
3
4
|
export class ApiError extends Error {
|
|
4
5
|
status;
|
|
5
6
|
body;
|
|
@@ -91,18 +92,51 @@ export async function apiKeyApi(apiKey, path, opts = {}) {
|
|
|
91
92
|
return data;
|
|
92
93
|
}
|
|
93
94
|
/**
|
|
94
|
-
* Resolve an API key from: --key flag >
|
|
95
|
+
* Resolve an API key from: --key flag > active stored key > interactive selection > prompt.
|
|
95
96
|
* Saves the key to config for future use.
|
|
96
97
|
*/
|
|
97
98
|
export async function getOrPromptApiKey(keyFlag) {
|
|
99
|
+
// 1. --key flag takes priority
|
|
98
100
|
if (keyFlag) {
|
|
99
|
-
|
|
101
|
+
const stored = {
|
|
102
|
+
id: `flag-${Date.now()}`,
|
|
103
|
+
key: keyFlag,
|
|
104
|
+
keyPrefix: keyFlag.slice(0, 12) + '...',
|
|
105
|
+
name: 'from --key flag',
|
|
106
|
+
orgId: 'unknown',
|
|
107
|
+
};
|
|
108
|
+
addStoredKey(stored);
|
|
109
|
+
setActiveKey(stored.id);
|
|
100
110
|
return keyFlag;
|
|
101
111
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
112
|
+
// 2. Active key in stored keys
|
|
113
|
+
const active = getActiveKey();
|
|
114
|
+
if (active) {
|
|
115
|
+
return active.key;
|
|
105
116
|
}
|
|
117
|
+
// 3. Multiple stored keys → let user pick
|
|
118
|
+
const storedKeys = getStoredKeys();
|
|
119
|
+
if (storedKeys.length > 0) {
|
|
120
|
+
const choices = storedKeys.map((k) => ({
|
|
121
|
+
name: `${k.keyPrefix} — ${k.name}${k.orgName ? ` (${k.orgName})` : ''}`,
|
|
122
|
+
value: k.id,
|
|
123
|
+
}));
|
|
124
|
+
choices.push({ name: chalk.dim('Enter a different key'), value: '__manual__' });
|
|
125
|
+
const { choice } = await inquirer.prompt([
|
|
126
|
+
{
|
|
127
|
+
type: 'list',
|
|
128
|
+
name: 'choice',
|
|
129
|
+
message: 'Select an API key:',
|
|
130
|
+
choices,
|
|
131
|
+
},
|
|
132
|
+
]);
|
|
133
|
+
if (choice !== '__manual__') {
|
|
134
|
+
setActiveKey(choice);
|
|
135
|
+
const picked = storedKeys.find((k) => k.id === choice);
|
|
136
|
+
return picked.key;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// 4. Fall back to paste prompt
|
|
106
140
|
const { apiKey } = await inquirer.prompt([
|
|
107
141
|
{
|
|
108
142
|
type: 'password',
|
|
@@ -112,7 +146,16 @@ export async function getOrPromptApiKey(keyFlag) {
|
|
|
112
146
|
validate: (v) => v.trim().length > 0 || 'API key is required',
|
|
113
147
|
},
|
|
114
148
|
]);
|
|
115
|
-
|
|
116
|
-
|
|
149
|
+
const key = apiKey.trim();
|
|
150
|
+
const stored = {
|
|
151
|
+
id: `manual-${Date.now()}`,
|
|
152
|
+
key,
|
|
153
|
+
keyPrefix: key.slice(0, 12) + '...',
|
|
154
|
+
name: 'manually entered',
|
|
155
|
+
orgId: 'unknown',
|
|
156
|
+
};
|
|
157
|
+
addStoredKey(stored);
|
|
158
|
+
setActiveKey(stored.id);
|
|
159
|
+
return key;
|
|
117
160
|
}
|
|
118
161
|
//# sourceMappingURL=api.js.map
|
package/dist/src/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/lib/api.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/config.d.ts
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
|
+
export interface StoredKey {
|
|
2
|
+
id: string;
|
|
3
|
+
key: string;
|
|
4
|
+
keyPrefix: string;
|
|
5
|
+
name: string;
|
|
6
|
+
orgId: string;
|
|
7
|
+
orgName?: string;
|
|
8
|
+
}
|
|
1
9
|
interface AdminConfig {
|
|
2
10
|
apiUrl?: string;
|
|
3
11
|
jwt?: string;
|
|
4
12
|
email?: string;
|
|
5
13
|
lastApiKey?: string;
|
|
14
|
+
activeKeyId?: string;
|
|
15
|
+
storedKeys?: StoredKey[];
|
|
6
16
|
}
|
|
7
17
|
export declare function writeConfig(updates: Partial<AdminConfig>): void;
|
|
8
18
|
export declare function getApiUrl(): string;
|
|
@@ -12,6 +22,16 @@ export declare function getEmail(): string | undefined;
|
|
|
12
22
|
export declare function clearAuth(): void;
|
|
13
23
|
export declare function getLastApiKey(): string | undefined;
|
|
14
24
|
export declare function saveLastApiKey(key: string): void;
|
|
25
|
+
/** Return all stored keys, migrating legacy lastApiKey if needed. */
|
|
26
|
+
export declare function getStoredKeys(): StoredKey[];
|
|
27
|
+
/** Upsert a stored key by id. */
|
|
28
|
+
export declare function addStoredKey(key: StoredKey): void;
|
|
29
|
+
/** Set the active key by id, also updating lastApiKey for backward compat. */
|
|
30
|
+
export declare function setActiveKey(keyId: string): void;
|
|
31
|
+
/** Get the currently active stored key. */
|
|
32
|
+
export declare function getActiveKey(): StoredKey | undefined;
|
|
33
|
+
/** Remove a stored key by id. Clears activeKeyId if it matched. */
|
|
34
|
+
export declare function removeStoredKey(keyId: string): void;
|
|
15
35
|
/** Guard: exit with message if not logged in. */
|
|
16
36
|
export declare function requireAuth(): void;
|
|
17
37
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAOA,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B;AAWD,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAI/D;AAED,wBAAgB,SAAS,IAAI,MAAM,CAOlC;AAED,wBAAgB,MAAM,IAAI,MAAM,GAAG,SAAS,CAE3C;AAED,wBAAgB,QAAQ,IAAI,MAAM,GAAG,SAAS,CAE7C;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,IAAI,IAAI,CAKhC;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAElD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,qEAAqE;AACrE,wBAAgB,aAAa,IAAI,SAAS,EAAE,CAkB3C;AAED,iCAAiC;AACjC,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAUjD;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAMhD;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,IAAI,SAAS,GAAG,SAAS,CAKpD;AAED,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAQnD;AAED,iDAAiD;AACjD,wBAAgB,WAAW,IAAI,IAAI,CAKlC"}
|
package/dist/src/lib/config.js
CHANGED
|
@@ -22,7 +22,7 @@ export function getApiUrl() {
|
|
|
22
22
|
const cfg = readConfig();
|
|
23
23
|
return (process.env.ADMIN_API_URL ??
|
|
24
24
|
cfg.apiUrl ??
|
|
25
|
-
'https://
|
|
25
|
+
'https://sandbox.api.agentcard.sh');
|
|
26
26
|
}
|
|
27
27
|
export function getJwt() {
|
|
28
28
|
return readConfig().jwt ?? process.env.AGENT_CARDS_ADMIN_JWT;
|
|
@@ -43,6 +43,65 @@ export function getLastApiKey() {
|
|
|
43
43
|
export function saveLastApiKey(key) {
|
|
44
44
|
writeConfig({ lastApiKey: key });
|
|
45
45
|
}
|
|
46
|
+
/** Return all stored keys, migrating legacy lastApiKey if needed. */
|
|
47
|
+
export function getStoredKeys() {
|
|
48
|
+
const cfg = readConfig();
|
|
49
|
+
if (cfg.storedKeys && cfg.storedKeys.length > 0)
|
|
50
|
+
return cfg.storedKeys;
|
|
51
|
+
// Migrate legacy lastApiKey
|
|
52
|
+
if (cfg.lastApiKey) {
|
|
53
|
+
const legacy = {
|
|
54
|
+
id: 'legacy',
|
|
55
|
+
key: cfg.lastApiKey,
|
|
56
|
+
keyPrefix: cfg.lastApiKey.slice(0, 12) + '...',
|
|
57
|
+
name: 'legacy key',
|
|
58
|
+
orgId: 'unknown',
|
|
59
|
+
};
|
|
60
|
+
writeConfig({ storedKeys: [legacy], activeKeyId: 'legacy' });
|
|
61
|
+
return [legacy];
|
|
62
|
+
}
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
/** Upsert a stored key by id. */
|
|
66
|
+
export function addStoredKey(key) {
|
|
67
|
+
const cfg = readConfig();
|
|
68
|
+
const keys = cfg.storedKeys ?? [];
|
|
69
|
+
const idx = keys.findIndex((k) => k.id === key.id);
|
|
70
|
+
if (idx >= 0) {
|
|
71
|
+
keys[idx] = key;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
keys.push(key);
|
|
75
|
+
}
|
|
76
|
+
writeConfig({ storedKeys: keys });
|
|
77
|
+
}
|
|
78
|
+
/** Set the active key by id, also updating lastApiKey for backward compat. */
|
|
79
|
+
export function setActiveKey(keyId) {
|
|
80
|
+
const keys = getStoredKeys();
|
|
81
|
+
const found = keys.find((k) => k.id === keyId);
|
|
82
|
+
const updates = { activeKeyId: keyId };
|
|
83
|
+
if (found)
|
|
84
|
+
updates.lastApiKey = found.key;
|
|
85
|
+
writeConfig(updates);
|
|
86
|
+
}
|
|
87
|
+
/** Get the currently active stored key. */
|
|
88
|
+
export function getActiveKey() {
|
|
89
|
+
const cfg = readConfig();
|
|
90
|
+
if (!cfg.activeKeyId)
|
|
91
|
+
return undefined;
|
|
92
|
+
const keys = cfg.storedKeys ?? [];
|
|
93
|
+
return keys.find((k) => k.id === cfg.activeKeyId);
|
|
94
|
+
}
|
|
95
|
+
/** Remove a stored key by id. Clears activeKeyId if it matched. */
|
|
96
|
+
export function removeStoredKey(keyId) {
|
|
97
|
+
const cfg = readConfig();
|
|
98
|
+
const keys = (cfg.storedKeys ?? []).filter((k) => k.id !== keyId);
|
|
99
|
+
const updates = { storedKeys: keys };
|
|
100
|
+
if (cfg.activeKeyId === keyId) {
|
|
101
|
+
updates.activeKeyId = undefined;
|
|
102
|
+
}
|
|
103
|
+
writeConfig(updates);
|
|
104
|
+
}
|
|
46
105
|
/** Guard: exit with message if not logged in. */
|
|
47
106
|
export function requireAuth() {
|
|
48
107
|
if (!getJwt()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAa,UAAU,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,yBAAyB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-cards-admin",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Admin CLI for managing B2B organizations, API keys, and members",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"cli-table3": "^0.6.3",
|
|
23
23
|
"commander": "^12.0.0",
|
|
24
24
|
"inquirer": "^9.2.15",
|
|
25
|
+
"open": "^10.1.0",
|
|
25
26
|
"ora": "^8.2.0"
|
|
26
27
|
},
|
|
27
28
|
"devDependencies": {
|