agentaos 0.2.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +61 -50
  2. package/dist/cli/commands/admin.command.d.ts +5 -0
  3. package/dist/cli/commands/admin.command.d.ts.map +1 -1
  4. package/dist/cli/commands/admin.command.js +50 -2
  5. package/dist/cli/commands/admin.command.js.map +1 -1
  6. package/dist/cli/commands/init.command.d.ts.map +1 -1
  7. package/dist/cli/commands/init.command.js +101 -292
  8. package/dist/cli/commands/init.command.js.map +1 -1
  9. package/dist/cli/commands/login.command.d.ts.map +1 -1
  10. package/dist/cli/commands/login.command.js +60 -54
  11. package/dist/cli/commands/login.command.js.map +1 -1
  12. package/dist/cli/commands/pay.command.d.ts +3 -0
  13. package/dist/cli/commands/pay.command.d.ts.map +1 -0
  14. package/dist/cli/commands/pay.command.js +186 -0
  15. package/dist/cli/commands/pay.command.js.map +1 -0
  16. package/dist/cli/commands/status.command.d.ts.map +1 -1
  17. package/dist/cli/commands/status.command.js +231 -56
  18. package/dist/cli/commands/status.command.js.map +1 -1
  19. package/dist/cli/index.d.ts.map +1 -1
  20. package/dist/cli/index.js +51 -20
  21. package/dist/cli/index.js.map +1 -1
  22. package/dist/cli/output.d.ts +9 -0
  23. package/dist/cli/output.d.ts.map +1 -0
  24. package/dist/cli/output.js +35 -0
  25. package/dist/cli/output.js.map +1 -0
  26. package/dist/lib/ensure-session.d.ts +16 -0
  27. package/dist/lib/ensure-session.d.ts.map +1 -0
  28. package/dist/lib/ensure-session.js +53 -0
  29. package/dist/lib/ensure-session.js.map +1 -0
  30. package/dist/mcp/index.d.ts.map +1 -1
  31. package/dist/mcp/index.js +8 -0
  32. package/dist/mcp/index.js.map +1 -1
  33. package/dist/mcp/tools/pay-create-checkout.d.ts +3 -0
  34. package/dist/mcp/tools/pay-create-checkout.d.ts.map +1 -0
  35. package/dist/mcp/tools/pay-create-checkout.js +61 -0
  36. package/dist/mcp/tools/pay-create-checkout.js.map +1 -0
  37. package/dist/mcp/tools/pay-get-checkout.d.ts +3 -0
  38. package/dist/mcp/tools/pay-get-checkout.d.ts.map +1 -0
  39. package/dist/mcp/tools/pay-get-checkout.js +30 -0
  40. package/dist/mcp/tools/pay-get-checkout.js.map +1 -0
  41. package/dist/mcp/tools/pay-list-checkouts.d.ts +3 -0
  42. package/dist/mcp/tools/pay-list-checkouts.d.ts.map +1 -0
  43. package/dist/mcp/tools/pay-list-checkouts.js +51 -0
  44. package/dist/mcp/tools/pay-list-checkouts.js.map +1 -0
  45. package/dist/mcp/tools/pay-utils.d.ts +15 -0
  46. package/dist/mcp/tools/pay-utils.d.ts.map +1 -0
  47. package/dist/mcp/tools/pay-utils.js +24 -0
  48. package/dist/mcp/tools/pay-utils.js.map +1 -0
  49. package/package.json +5 -4
@@ -1,174 +1,80 @@
1
1
  import { existsSync } from 'node:fs';
2
- import { createInterface } from 'node:readline';
3
- import { input, password, select } from '@inquirer/prompts';
4
2
  import chalk from 'chalk';
5
3
  import { Command } from 'commander';
6
- import ora from 'ora';
7
- import { createClientFromConfig, getDefaultSignerName, getSignerConfigPath, listSigners, loadSignerConfig, saveSignerConfig, setDefaultSigner, validateSignerName, } from '../../lib/config.js';
8
- import { getSession, isKeychainAvailable, storeUserShare } from '../../lib/keychain.js';
9
- import { BRAND_BANNER, brand, brandBold, brandDot, dim, failMark, hint, promptTheme, section, success, successMark, } from '../theme.js';
4
+ import { createClientFromConfig, getSignerConfigPath, saveSignerConfig, setDefaultSigner, validateSignerName, } from '../../lib/config.js';
5
+ import { ensureSession } from '../../lib/ensure-session.js';
6
+ import { storeUserShare } from '../../lib/keychain.js';
7
+ import { isJsonMode } from '../output.js';
8
+ import { brand, dim, failMark, successMark } from '../theme.js';
10
9
  // ---------------------------------------------------------------------------
11
- // Visual helpers
12
- // ---------------------------------------------------------------------------
13
- // biome-ignore lint/suspicious/noControlCharactersInRegex: ANSI escape stripping is intentional
14
- const ANSI_RE = /\u001B\[[0-9;]*m/g;
15
- function pad(str, width) {
16
- const visible = str.replace(ANSI_RE, '');
17
- return str + ' '.repeat(Math.max(0, width - visible.length));
18
- }
19
- function fmtAddr(address) {
20
- if (!address || address.length < 10)
21
- return dim('—');
22
- return dim(`${address.slice(0, 6)}…${address.slice(-4)}`);
23
- }
24
- function walletCard(name, address, extra) {
25
- console.log('');
26
- console.log(` ${brand('●')} ${brandBold(name)}`);
27
- console.log(` ${dim(address)}`);
28
- if (extra)
29
- console.log(` ${dim(extra)}`);
30
- }
31
- function step(icon, text) {
32
- console.log(` ${icon} ${text}`);
33
- }
34
- // ---------------------------------------------------------------------------
35
- // Command
10
+ // agenta sub init --create --name <name>
11
+ // agenta sub init --import --name <name> --api-key <key> --api-secret <secret>
36
12
  // ---------------------------------------------------------------------------
37
13
  export const initCommand = new Command('init')
38
- .description('Set up your AgentaOS wallet')
39
- .action(async () => {
40
- console.log(BRAND_BANNER);
14
+ .description('Create or import a sub-account')
15
+ .requiredOption('--name <name>', 'Sub-account name')
16
+ .option('--create', 'Create a new sub-account')
17
+ .option('--import', 'Import an existing sub-account')
18
+ .option('--server <url>', 'Server URL')
19
+ .option('--api-key <key>', 'API key (for --import)')
20
+ .option('--api-secret <secret>', 'API secret base64 (for --import)')
21
+ .option('--storage <type>', 'Recovery key storage: keychain or file', 'keychain')
22
+ .action(async (opts) => {
41
23
  try {
42
- const existing = listSigners();
43
- const defaultName = getDefaultSignerName();
44
- const choices = [
45
- {
46
- name: 'Create a new wallet',
47
- value: 'create',
48
- description: 'Get started takes about 10 seconds',
49
- },
50
- {
51
- name: 'I already have a wallet',
52
- value: 'import',
53
- description: 'Connect using an API Key and API Secret',
54
- },
55
- ];
56
- if (existing.length > 1) {
57
- choices.push({
58
- name: 'Switch active wallet',
59
- value: 'switch',
60
- description: `Current: ${defaultName ?? 'none'}`,
61
- });
24
+ // Validate name
25
+ const nameErr = validateSignerName(opts.name);
26
+ if (nameErr)
27
+ throw new Error(nameErr);
28
+ if (existsSync(getSignerConfigPath(opts.name)))
29
+ throw new Error(`"${opts.name}" already exists.`);
30
+ if (!opts.create && !opts.import) {
31
+ throw new Error('Specify --create or --import. Run agenta sub init --help for usage.');
32
+ }
33
+ if (opts.storage && opts.storage !== 'keychain' && opts.storage !== 'file') {
34
+ throw new Error(`Invalid --storage "${opts.storage}". Use "keychain" or "file".`);
35
+ }
36
+ const storage = (opts.storage ?? 'keychain');
37
+ if (opts.create) {
38
+ await handleCreate(opts.name, opts.server, storage);
62
39
  }
63
- const choice = await select({
64
- message: 'What would you like to do?',
65
- choices,
66
- loop: false,
67
- theme: promptTheme,
68
- });
69
- switch (choice) {
70
- case 'create':
71
- await handleCreate();
72
- break;
73
- case 'import':
74
- await handleImport();
75
- break;
76
- case 'switch':
77
- await handleSwitch();
78
- break;
40
+ else if (opts.import) {
41
+ if (!opts.apiKey)
42
+ throw new Error('--api-key is required for --import');
43
+ if (!opts.apiSecret)
44
+ throw new Error('--api-secret is required for --import');
45
+ await handleImport(opts.name, opts.apiKey, opts.apiSecret, opts.server, storage);
79
46
  }
80
47
  }
81
48
  catch (error) {
82
- if (error instanceof Error && error.name === 'ExitPromptError') {
83
- console.log(dim('\n Cancelled.\n'));
84
- return;
85
- }
86
49
  const message = error instanceof Error ? error.message : 'Unknown error';
87
- console.error(`\n ${failMark(message)}\n`);
50
+ if (isJsonMode()) {
51
+ console.error(JSON.stringify({ error: message }));
52
+ }
53
+ else {
54
+ console.error(`\n ${failMark(message)}\n`);
55
+ }
88
56
  process.exitCode = 1;
89
57
  }
90
58
  });
91
59
  // ---------------------------------------------------------------------------
92
60
  // Create
93
61
  // ---------------------------------------------------------------------------
94
- async function handleCreate() {
95
- // ── 0. Require login ─────────────────────────────────────────────────
96
- const token = await getSession();
97
- if (!token) {
98
- console.log('');
99
- console.log(` ${failMark(`Not logged in. Run ${chalk.bold('agenta login')} first.`)}`);
100
- console.log('');
101
- process.exitCode = 1;
102
- return;
103
- }
104
- // ── 1. Basics ─────────────────────────────────────────────────────────
105
- section('Basics');
106
- const name = await input({
107
- message: 'Wallet name',
108
- theme: promptTheme,
109
- validate: (v) => {
110
- const err = validateSignerName(v);
111
- if (err)
112
- return err;
113
- if (existsSync(getSignerConfigPath(v)))
114
- return `"${v}" already exists. Pick a different name.`;
115
- return true;
116
- },
117
- });
118
- const serverUrl = process.env.AGENTA_SERVER ?? 'https://api.agentaos.ai';
119
- // ── 2. Security ───────────────────────────────────────────────────────
120
- section('Security');
121
- hint('Your recovery key lets you manage policies and sign without the server.');
122
- const keychainOk = await isKeychainAvailable();
123
- let storage = 'file';
124
- if (keychainOk) {
125
- console.log('');
126
- storage = await select({
127
- message: 'Recovery key storage',
128
- choices: [
129
- {
130
- name: 'System keychain (recommended)',
131
- value: 'keychain',
132
- description: 'Encrypted by your OS, Touch ID protected',
133
- },
134
- {
135
- name: 'Local file',
136
- value: 'file',
137
- description: `Saved in ${getSignerConfigPath(name).replace(/\.json$/, '.user-share')}`,
138
- },
139
- ],
140
- loop: false,
141
- theme: promptTheme,
142
- });
143
- }
144
- else {
145
- hint('System keychain not available — recovery key will be saved as a local file.');
146
- }
147
- // ── 3. Generate ───────────────────────────────────────────────────────
148
- section('Creating wallet');
149
- hint('Running distributed key generation — this takes a few seconds.');
150
- console.log('');
151
- const spinner = ora({ text: 'Generating wallet…', indent: 2 }).start();
152
- const url = `${serverUrl.replace(/\/+$/, '')}/api/v1/signers`;
153
- const response = await fetch(url, {
62
+ async function handleCreate(name, serverOverride, storage = 'keychain') {
63
+ const session = await ensureSession();
64
+ if (!session.ok)
65
+ throw new Error('Not logged in. Run agenta login first.');
66
+ const serverUrl = serverOverride || session.serverUrl;
67
+ const response = await fetch(`${serverUrl.replace(/\/+$/, '')}/api/v1/signers`, {
154
68
  method: 'POST',
155
- headers: {
156
- 'Content-Type': 'application/json',
157
- Authorization: `Bearer ${token}`,
158
- },
69
+ headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${session.token}` },
159
70
  body: JSON.stringify({ name }),
160
71
  signal: AbortSignal.timeout(120_000),
161
72
  });
162
73
  if (!response.ok) {
163
74
  const text = await response.text();
164
- spinner.fail('Failed');
165
75
  throw new Error(`Server returned ${response.status}: ${text}`);
166
76
  }
167
77
  const result = (await response.json());
168
- spinner.succeed('Wallet created');
169
- // ── Save everything ───────────────────────────────────────────────────
170
- // Store user share FIRST — if this fails, we haven't written config yet.
171
- // Once config is saved, the signer is "registered" locally.
172
78
  await storeUserShare(name, result.userShare, storage);
173
79
  const config = {
174
80
  version: 1,
@@ -182,101 +88,34 @@ async function handleCreate() {
182
88
  };
183
89
  saveSignerConfig(name, config);
184
90
  setDefaultSigner(name);
185
- // ── Summary ───────────────────────────────────────────────────────────
186
- walletCard(name, result.ethAddress, `API key: ${result.apiKey.slice(0, 16)}…`);
187
- console.log('');
188
- step(successMark(storage === 'keychain' ? 'Recovery key → system keychain' : 'Recovery key → local file'), '');
189
- step(successMark('Set as active wallet'), '');
190
- console.log('');
191
- console.log(` ${dim(`Config: ${getSignerConfigPath(name)}`)}`);
192
- console.log('');
193
- console.log(` ${success('Done!')} Run ${chalk.bold('agenta status')} to see your wallets.`);
194
- console.log(` Run ${chalk.bold('agenta admin policies')} to manage policies.`);
195
- console.log('');
196
- }
197
- // ---------------------------------------------------------------------------
198
- // Secret input — hidden with live character counter
199
- // ---------------------------------------------------------------------------
200
- function readSecret(label) {
201
- return new Promise((resolve) => {
202
- const rl = createInterface({ input: process.stdin, terminal: false });
203
- // Mute stdin echo so the huge base64 blob never renders
204
- if (process.stdin.isTTY)
205
- process.stdin.setRawMode(true);
206
- process.stdout.write(` ${chalk.bold('?')} ${chalk.bold(label)}: `);
207
- let buf = '';
208
- const onData = (key) => {
209
- const ch = key.toString();
210
- // Enter
211
- if (ch === '\r' || ch === '\n') {
212
- if (process.stdin.isTTY)
213
- process.stdin.setRawMode(false);
214
- process.stdin.removeListener('data', onData);
215
- rl.close();
216
- // Clear the counter line and move to next line
217
- process.stdout.write('\r\x1b[K');
218
- process.stdout.write(` ${chalk.bold('?')} ${chalk.bold(label)}: ${chalk.dim(`[${buf.length.toLocaleString()} chars]`)}\n`);
219
- resolve(buf);
220
- return;
221
- }
222
- // Ctrl+C
223
- if (ch === '\x03') {
224
- if (process.stdin.isTTY)
225
- process.stdin.setRawMode(false);
226
- rl.close();
227
- process.exit(1);
228
- }
229
- // Backspace
230
- if (ch === '\x7f' || ch === '\b') {
231
- buf = buf.slice(0, -1);
232
- }
233
- else {
234
- buf += ch;
235
- }
236
- // Rewrite the prompt with live char count
237
- process.stdout.write('\r\x1b[K');
238
- process.stdout.write(` ${chalk.bold('?')} ${chalk.bold(label)}: ${chalk.dim(`[${buf.length.toLocaleString()} chars]`)}`);
239
- };
240
- process.stdin.on('data', onData);
241
- process.stdin.resume();
242
- });
91
+ const out = {
92
+ name,
93
+ address: result.ethAddress || null,
94
+ signerId: result.signerId || null,
95
+ apiKey: result.apiKey || null,
96
+ configPath: getSignerConfigPath(name),
97
+ };
98
+ if (isJsonMode()) {
99
+ console.log(JSON.stringify(out));
100
+ }
101
+ else {
102
+ console.log(`\n ${successMark('Sub-account created')}`);
103
+ console.log(` ${chalk.bold('Name:')} ${name}`);
104
+ console.log(` ${chalk.bold('Address:')} ${brand(result.ethAddress)}`);
105
+ console.log(` ${chalk.bold('ID:')} ${dim(result.signerId)}`);
106
+ console.log(` ${chalk.bold('API Key:')} ${dim(result.apiKey)}`);
107
+ console.log(` ${chalk.bold('Config:')} ${dim(getSignerConfigPath(name))}\n`);
108
+ }
243
109
  }
244
110
  // ---------------------------------------------------------------------------
245
111
  // Import
246
112
  // ---------------------------------------------------------------------------
247
- async function handleImport() {
248
- // ── 1. Basics ─────────────────────────────────────────────────────────
249
- section('Basics');
250
- const name = await input({
251
- message: 'Wallet name',
252
- theme: promptTheme,
253
- validate: (v) => {
254
- const err = validateSignerName(v);
255
- if (err)
256
- return err;
257
- if (existsSync(getSignerConfigPath(v)))
258
- return `"${v}" already exists. Pick a different name.`;
259
- return true;
260
- },
261
- });
262
- const serverUrl = process.env.AGENTA_SERVER ?? 'https://api.agentaos.ai';
263
- // ── 2. Credentials ───────────────────────────────────────────────────
264
- section('Credentials');
265
- hint('Find your API Key and API Secret in AgentaOS.');
266
- console.log('');
267
- const apiKey = await input({
268
- message: 'API Key',
269
- theme: promptTheme,
270
- validate: (v) => (v.trim() ? true : 'API Key is required.'),
271
- });
272
- console.log('');
273
- const apiSecret = await readSecret('API Secret');
274
- if (!apiSecret)
275
- throw new Error('API Secret is required.');
276
- console.log(` ${chalk.green('✓')} Received ${apiSecret.length.toLocaleString()} chars ${chalk.dim(`(${apiSecret.slice(0, 8)}…${apiSecret.slice(-4)})`)}`);
277
- // ── 3. Connect ────────────────────────────────────────────────────────
278
- section('Connecting');
279
- const spinner = ora({ text: 'Verifying with server…', indent: 2 }).start();
113
+ async function handleImport(name, apiKey, apiSecret, serverOverride, storage = 'keychain') {
114
+ const { getSessionServerUrl } = await import('../../lib/keychain.js');
115
+ const serverUrl = serverOverride ||
116
+ (await getSessionServerUrl()) ||
117
+ process.env.AGENTA_SERVER ||
118
+ 'https://api.agentaos.ai';
280
119
  let signerId;
281
120
  let ethAddress = '';
282
121
  try {
@@ -286,15 +125,19 @@ async function handleImport() {
286
125
  if (s) {
287
126
  signerId = s.id;
288
127
  ethAddress = s.ethAddress;
289
- spinner.succeed('Connected');
290
- }
291
- else {
292
- spinner.warn('Connected — no wallet found for this API key');
293
128
  }
294
129
  }
295
- catch {
296
- spinner.warn('Server unreachable config saved, you can connect later');
130
+ catch (err) {
131
+ const msg = err instanceof Error ? err.message : '';
132
+ if (msg.includes('401') ||
133
+ msg.includes('403') ||
134
+ msg.includes('nauthorized') ||
135
+ msg.includes('orbidden')) {
136
+ throw new Error('Invalid API key or secret');
137
+ }
138
+ // Server unreachable — save config anyway
297
139
  }
140
+ await storeUserShare(name, apiSecret, storage);
298
141
  const config = {
299
142
  version: 1,
300
143
  serverUrl,
@@ -307,58 +150,24 @@ async function handleImport() {
307
150
  };
308
151
  saveSignerConfig(name, config);
309
152
  setDefaultSigner(name);
310
- if (ethAddress) {
311
- walletCard(name, ethAddress);
153
+ const out = {
154
+ name,
155
+ address: ethAddress || null,
156
+ signerId: signerId || null,
157
+ apiKey: apiKey || null,
158
+ configPath: getSignerConfigPath(name),
159
+ };
160
+ if (isJsonMode()) {
161
+ console.log(JSON.stringify(out));
312
162
  }
313
- console.log('');
314
- step(successMark('Config saved'), '');
315
- step(successMark('Set as active wallet'), '');
316
- console.log('');
317
- console.log(` ${dim(`Config: ${getSignerConfigPath(name)}`)}`);
318
- console.log('');
319
- console.log(` ${success('Done!')} Run ${chalk.bold('agenta status')} to see your wallets.`);
320
- console.log('');
321
- }
322
- // ---------------------------------------------------------------------------
323
- // Switch
324
- // ---------------------------------------------------------------------------
325
- async function handleSwitch() {
326
- const current = listSigners();
327
- if (current.length === 0) {
328
- console.log(chalk.yellow('\n No wallets found. Create one first.\n'));
329
- return;
163
+ else {
164
+ console.log(`\n ${successMark('Config saved')}`);
165
+ console.log(` ${chalk.bold('Name:')} ${name}`);
166
+ if (ethAddress)
167
+ console.log(` ${chalk.bold('Address:')} ${brand(ethAddress)}`);
168
+ if (signerId)
169
+ console.log(` ${chalk.bold('ID:')} ${dim(signerId)}`);
170
+ console.log(` ${chalk.bold('Config:')} ${dim(getSignerConfigPath(name))}\n`);
330
171
  }
331
- const defaultName = getDefaultSignerName();
332
- const nw = Math.max(4, ...current.map((n) => n.length)) + 3;
333
- const choices = current.map((name) => {
334
- const isCurrent = name === defaultName;
335
- let addr = '';
336
- try {
337
- const config = loadSignerConfig(name);
338
- if (config.ethAddress)
339
- addr = fmtAddr(config.ethAddress);
340
- }
341
- catch {
342
- // ignore
343
- }
344
- const dot = brandDot(isCurrent);
345
- const label = isCurrent ? brandBold(name) : name;
346
- const tag = isCurrent ? dim(' (current)') : '';
347
- return {
348
- name: `${dot} ${pad(label, nw)} ${addr}${tag}`,
349
- value: name,
350
- };
351
- });
352
- const selected = await select({
353
- message: 'Switch to',
354
- choices,
355
- default: defaultName ?? undefined,
356
- loop: false,
357
- theme: promptTheme,
358
- });
359
- setDefaultSigner(selected);
360
- console.log('');
361
- step(successMark(`${chalk.bold(selected)} is now active`), '');
362
- console.log('');
363
172
  }
364
173
  //# sourceMappingURL=init.command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.command.js","sourceRoot":"","sources":["../../../src/cli/commands/init.command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2CpC,eAAO,MAAM,YAAY,SAqFtB,CAAC;AAMJ,eAAO,MAAM,aAAa,SAmCvB,CAAC"}
1
+ {"version":3,"file":"login.command.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiDpC,eAAO,MAAM,YAAY,SAqGtB,CAAC;AAMJ,eAAO,MAAM,aAAa,SAkCvB,CAAC"}