@phnx-labs/agents-cli 0.1.0 → 1.12.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 (145) hide show
  1. package/README.md +14 -96
  2. package/dist/commands/exec.d.ts.map +1 -1
  3. package/dist/commands/exec.js +17 -135
  4. package/dist/commands/exec.js.map +1 -1
  5. package/dist/commands/models.d.ts.map +1 -1
  6. package/dist/commands/models.js +3 -30
  7. package/dist/commands/models.js.map +1 -1
  8. package/dist/commands/pull.d.ts.map +1 -1
  9. package/dist/commands/pull.js +3 -37
  10. package/dist/commands/pull.js.map +1 -1
  11. package/dist/commands/sessions.d.ts.map +1 -1
  12. package/dist/commands/sessions.js +0 -100
  13. package/dist/commands/sessions.js.map +1 -1
  14. package/dist/commands/view.d.ts.map +1 -1
  15. package/dist/commands/view.js +2 -42
  16. package/dist/commands/view.js.map +1 -1
  17. package/dist/index.js +8 -37
  18. package/dist/index.js.map +1 -1
  19. package/dist/lib/__tests__/hooks.test.js +2 -2
  20. package/dist/lib/__tests__/hooks.test.js.map +1 -1
  21. package/dist/lib/__tests__/models.test.js +1 -56
  22. package/dist/lib/__tests__/models.test.js.map +1 -1
  23. package/dist/lib/__tests__/usage.test.js +2 -4
  24. package/dist/lib/__tests__/usage.test.js.map +1 -1
  25. package/dist/lib/agents.d.ts.map +1 -1
  26. package/dist/lib/agents.js +2 -10
  27. package/dist/lib/agents.js.map +1 -1
  28. package/dist/lib/exec.d.ts +1 -4
  29. package/dist/lib/exec.d.ts.map +1 -1
  30. package/dist/lib/exec.js +15 -24
  31. package/dist/lib/exec.js.map +1 -1
  32. package/dist/lib/hooks.d.ts.map +1 -1
  33. package/dist/lib/hooks.js +1 -153
  34. package/dist/lib/hooks.js.map +1 -1
  35. package/dist/lib/models.d.ts +10 -18
  36. package/dist/lib/models.d.ts.map +1 -1
  37. package/dist/lib/models.js +12 -380
  38. package/dist/lib/models.js.map +1 -1
  39. package/dist/lib/session/types.d.ts +0 -8
  40. package/dist/lib/session/types.d.ts.map +1 -1
  41. package/dist/lib/shims.d.ts +2 -31
  42. package/dist/lib/shims.d.ts.map +1 -1
  43. package/dist/lib/shims.js +24 -75
  44. package/dist/lib/shims.js.map +1 -1
  45. package/dist/lib/state.d.ts +0 -7
  46. package/dist/lib/state.d.ts.map +1 -1
  47. package/dist/lib/state.js +1 -14
  48. package/dist/lib/state.js.map +1 -1
  49. package/dist/lib/usage.d.ts +0 -16
  50. package/dist/lib/usage.d.ts.map +1 -1
  51. package/dist/lib/usage.js +10 -27
  52. package/dist/lib/usage.js.map +1 -1
  53. package/dist/lib/versions.d.ts +1 -7
  54. package/dist/lib/versions.d.ts.map +1 -1
  55. package/dist/lib/versions.js +8 -30
  56. package/dist/lib/versions.js.map +1 -1
  57. package/package.json +2 -2
  58. package/dist/commands/cloud.d.ts +0 -3
  59. package/dist/commands/cloud.d.ts.map +0 -1
  60. package/dist/commands/cloud.js +0 -322
  61. package/dist/commands/cloud.js.map +0 -1
  62. package/dist/commands/profiles.d.ts +0 -3
  63. package/dist/commands/profiles.d.ts.map +0 -1
  64. package/dist/commands/profiles.js +0 -242
  65. package/dist/commands/profiles.js.map +0 -1
  66. package/dist/commands/secrets.d.ts +0 -3
  67. package/dist/commands/secrets.d.ts.map +0 -1
  68. package/dist/commands/secrets.js +0 -339
  69. package/dist/commands/secrets.js.map +0 -1
  70. package/dist/lib/__tests__/rotate.test.d.ts +0 -2
  71. package/dist/lib/__tests__/rotate.test.d.ts.map +0 -1
  72. package/dist/lib/__tests__/rotate.test.js +0 -80
  73. package/dist/lib/__tests__/rotate.test.js.map +0 -1
  74. package/dist/lib/__tests__/secrets-bundles.test.d.ts +0 -2
  75. package/dist/lib/__tests__/secrets-bundles.test.d.ts.map +0 -1
  76. package/dist/lib/__tests__/secrets-bundles.test.js +0 -104
  77. package/dist/lib/__tests__/secrets-bundles.test.js.map +0 -1
  78. package/dist/lib/__tests__/secrets.test.d.ts +0 -2
  79. package/dist/lib/__tests__/secrets.test.d.ts.map +0 -1
  80. package/dist/lib/__tests__/secrets.test.js +0 -90
  81. package/dist/lib/__tests__/secrets.test.js.map +0 -1
  82. package/dist/lib/__tests__/shims.test.d.ts +0 -2
  83. package/dist/lib/__tests__/shims.test.d.ts.map +0 -1
  84. package/dist/lib/__tests__/shims.test.js +0 -39
  85. package/dist/lib/__tests__/shims.test.js.map +0 -1
  86. package/dist/lib/__tests__/versions.test.d.ts +0 -2
  87. package/dist/lib/__tests__/versions.test.d.ts.map +0 -1
  88. package/dist/lib/__tests__/versions.test.js +0 -63
  89. package/dist/lib/__tests__/versions.test.js.map +0 -1
  90. package/dist/lib/cloud/codex.d.ts +0 -19
  91. package/dist/lib/cloud/codex.d.ts.map +0 -1
  92. package/dist/lib/cloud/codex.js +0 -210
  93. package/dist/lib/cloud/codex.js.map +0 -1
  94. package/dist/lib/cloud/factory.d.ts +0 -26
  95. package/dist/lib/cloud/factory.d.ts.map +0 -1
  96. package/dist/lib/cloud/factory.js +0 -37
  97. package/dist/lib/cloud/factory.js.map +0 -1
  98. package/dist/lib/cloud/registry.d.ts +0 -6
  99. package/dist/lib/cloud/registry.d.ts.map +0 -1
  100. package/dist/lib/cloud/registry.js +0 -56
  101. package/dist/lib/cloud/registry.js.map +0 -1
  102. package/dist/lib/cloud/rush.d.ts +0 -15
  103. package/dist/lib/cloud/rush.d.ts.map +0 -1
  104. package/dist/lib/cloud/rush.js +0 -185
  105. package/dist/lib/cloud/rush.js.map +0 -1
  106. package/dist/lib/cloud/store.d.ts +0 -10
  107. package/dist/lib/cloud/store.d.ts.map +0 -1
  108. package/dist/lib/cloud/store.js +0 -96
  109. package/dist/lib/cloud/store.js.map +0 -1
  110. package/dist/lib/cloud/stream.d.ts +0 -18
  111. package/dist/lib/cloud/stream.d.ts.map +0 -1
  112. package/dist/lib/cloud/stream.js +0 -138
  113. package/dist/lib/cloud/stream.js.map +0 -1
  114. package/dist/lib/cloud/types.d.ts +0 -60
  115. package/dist/lib/cloud/types.d.ts.map +0 -1
  116. package/dist/lib/cloud/types.js +0 -2
  117. package/dist/lib/cloud/types.js.map +0 -1
  118. package/dist/lib/profiles-keychain.d.ts +0 -3
  119. package/dist/lib/profiles-keychain.d.ts.map +0 -1
  120. package/dist/lib/profiles-keychain.js +0 -10
  121. package/dist/lib/profiles-keychain.js.map +0 -1
  122. package/dist/lib/profiles-presets.d.ts +0 -15
  123. package/dist/lib/profiles-presets.d.ts.map +0 -1
  124. package/dist/lib/profiles-presets.js +0 -95
  125. package/dist/lib/profiles-presets.js.map +0 -1
  126. package/dist/lib/profiles.d.ts +0 -35
  127. package/dist/lib/profiles.d.ts.map +0 -1
  128. package/dist/lib/profiles.js +0 -123
  129. package/dist/lib/profiles.js.map +0 -1
  130. package/dist/lib/rotate.d.ts +0 -52
  131. package/dist/lib/rotate.d.ts.map +0 -1
  132. package/dist/lib/rotate.js +0 -87
  133. package/dist/lib/rotate.js.map +0 -1
  134. package/dist/lib/secrets-bundles.d.ts +0 -29
  135. package/dist/lib/secrets-bundles.d.ts.map +0 -1
  136. package/dist/lib/secrets-bundles.js +0 -168
  137. package/dist/lib/secrets-bundles.js.map +0 -1
  138. package/dist/lib/secrets.d.ts +0 -27
  139. package/dist/lib/secrets.d.ts.map +0 -1
  140. package/dist/lib/secrets.js +0 -127
  141. package/dist/lib/secrets.js.map +0 -1
  142. package/dist/lib/session/artifacts.d.ts +0 -5
  143. package/dist/lib/session/artifacts.d.ts.map +0 -1
  144. package/dist/lib/session/artifacts.js +0 -75
  145. package/dist/lib/session/artifacts.js.map +0 -1
@@ -1,322 +0,0 @@
1
- import chalk from 'chalk';
2
- import * as fs from 'fs';
3
- import ora from 'ora';
4
- import { resolveProvider, getAllProviders, getDefaultProviderId } from '../lib/cloud/registry.js';
5
- import { insertTask, updateTaskStatus, getTaskById, listTasks as listStoredTasks } from '../lib/cloud/store.js';
6
- import { renderStream } from '../lib/cloud/stream.js';
7
- function die(msg, code = 1) {
8
- console.error(chalk.red(msg));
9
- process.exit(code);
10
- }
11
- function relTime(iso) {
12
- const secs = Math.floor((Date.now() - new Date(iso).getTime()) / 1000);
13
- if (secs < 10)
14
- return 'just now';
15
- if (secs < 60)
16
- return `${secs}s ago`;
17
- if (secs < 3600)
18
- return `${Math.floor(secs / 60)} minutes ago`;
19
- if (secs < 86400)
20
- return `${Math.floor(secs / 3600)} hours ago`;
21
- return `${Math.floor(secs / 86400)} days ago`;
22
- }
23
- function truncate(s, n) {
24
- if (s.length <= n)
25
- return s;
26
- return s.slice(0, n - 1) + '...';
27
- }
28
- function statusColor(status) {
29
- switch (status) {
30
- case 'queued':
31
- case 'allocating': return chalk.blue;
32
- case 'running': return chalk.yellow;
33
- case 'completed': return chalk.green;
34
- case 'input_required': return chalk.magenta;
35
- case 'failed': return chalk.red;
36
- case 'cancelled': return chalk.gray;
37
- default: return chalk.white;
38
- }
39
- }
40
- function isJsonMode(opts) {
41
- return Boolean(opts.json) || !process.stdout.isTTY;
42
- }
43
- export function registerCloudCommands(program) {
44
- const cloud = program
45
- .command('cloud')
46
- .description('Dispatch and manage cloud agent tasks across providers (Rush Cloud, Codex Cloud, Factory).');
47
- // ── agents cloud run ──────────────────────────────────────────────────
48
- cloud
49
- .command('run [prompt]')
50
- .description('Dispatch a task to a cloud agent.')
51
- .option('--provider <id>', 'Cloud backend: rush, codex, factory')
52
- .option('--agent <name>', 'Agent to run: claude, codex, droid')
53
- .option('--repo <owner/repo>', 'GitHub repository (required for Rush Cloud)')
54
- .option('--branch <name>', 'Target git branch')
55
- .option('-p, --prompt <text>', 'Inline prompt (alternative to positional argument)')
56
- .option('--timeout <duration>', 'Kill after duration (e.g., 30m, 2h)')
57
- .option('--model <model>', 'Model override')
58
- .option('--env <id>', 'Codex Cloud environment ID')
59
- .option('--computer <name>', 'Factory/Droid computer target')
60
- .option('--mode <mode>', 'Execution mode (e.g., plan, edit, full)')
61
- .option('--json', 'Structured JSON output')
62
- .option('--no-follow', 'Dispatch and exit without streaming output')
63
- .addHelpText('after', `
64
- Examples:
65
- # Rush Cloud
66
- agents cloud run "fix the flaky test" --provider rush --repo user/repo
67
- agents cloud run task.md --provider rush --repo org/project --agent codex
68
-
69
- # Codex Cloud
70
- agents cloud run "add auth tests" --provider codex --env env_abc123
71
-
72
- # Default provider (set in ~/.agents/agents.yaml)
73
- agents cloud run "refactor auth module" --repo user/repo
74
- `)
75
- .action(async (positionalPrompt, options) => {
76
- const json = isJsonMode(options);
77
- // Resolve prompt: --prompt flag, positional arg, or file
78
- let prompt = options.prompt || positionalPrompt;
79
- if (!prompt)
80
- die('Prompt is required. Pass it as an argument or with --prompt.');
81
- // If prompt is a file path, read it
82
- if (fs.existsSync(prompt) && fs.statSync(prompt).isFile()) {
83
- prompt = fs.readFileSync(prompt, 'utf-8').trim();
84
- }
85
- const provider = resolveProvider(options.provider);
86
- const dispatchOptions = {
87
- prompt,
88
- agent: options.agent,
89
- repo: options.repo,
90
- branch: options.branch,
91
- timeout: options.timeout,
92
- model: options.model,
93
- providerOptions: {},
94
- };
95
- if (options.env)
96
- dispatchOptions.providerOptions.env = options.env;
97
- if (options.computer)
98
- dispatchOptions.providerOptions.computer = options.computer;
99
- if (options.mode)
100
- dispatchOptions.providerOptions.mode = options.mode;
101
- // Dispatch
102
- const spinner = ora({ text: `Dispatching to ${provider.name}...`, stream: process.stderr }).start();
103
- let task;
104
- try {
105
- task = await provider.dispatch(dispatchOptions);
106
- spinner.succeed(`Task ${task.id} dispatched to ${provider.name}`);
107
- }
108
- catch (err) {
109
- spinner.fail('Dispatch failed');
110
- die(err.message);
111
- }
112
- // Persist locally
113
- insertTask(task);
114
- if (json) {
115
- process.stdout.write(JSON.stringify(task) + '\n');
116
- }
117
- // Stream output unless --no-follow
118
- if (options.follow === false)
119
- return;
120
- try {
121
- const result = await renderStream(provider.stream(task.id), { json });
122
- updateTaskStatus(task.id, result.status, {
123
- summary: result.summary,
124
- prUrl: result.prUrl,
125
- });
126
- }
127
- catch (err) {
128
- // Stream disconnect is OK — task keeps running
129
- process.stderr.write(chalk.dim(`\nStream disconnected. Task ${task.id} continues running.\n`));
130
- process.stderr.write(chalk.dim(`Check status: agents cloud status ${task.id}\n`));
131
- }
132
- });
133
- // ── agents cloud list ─────────────────────────────────────────────────
134
- cloud
135
- .command('list')
136
- .description('List cloud tasks.')
137
- .option('--provider <id>', 'Filter by provider')
138
- .option('--status <status>', 'Filter by status')
139
- .option('--limit <n>', 'Max results', '20')
140
- .option('--refresh', 'Fetch latest status from provider before displaying')
141
- .option('--json', 'JSON output')
142
- .action(async (options) => {
143
- const json = isJsonMode(options);
144
- const providerId = options.provider;
145
- const status = options.status;
146
- const limit = parseInt(options.limit, 10) || 20;
147
- // If --refresh and a specific provider, fetch from remote
148
- if (options.refresh && providerId) {
149
- const provider = resolveProvider(providerId);
150
- try {
151
- const remoteTasks = await provider.list({ status });
152
- for (const t of remoteTasks)
153
- insertTask(t);
154
- }
155
- catch (err) {
156
- process.stderr.write(chalk.yellow(`Could not refresh from ${provider.name}: ${err.message}\n`));
157
- }
158
- }
159
- const tasks = listStoredTasks({ provider: providerId, status, limit });
160
- if (json) {
161
- process.stdout.write(JSON.stringify(tasks, null, 2) + '\n');
162
- return;
163
- }
164
- if (tasks.length === 0) {
165
- console.log(chalk.dim('No cloud tasks found.'));
166
- return;
167
- }
168
- // Table header
169
- const header = [
170
- chalk.dim('ID'.padEnd(14)),
171
- chalk.dim('Provider'.padEnd(10)),
172
- chalk.dim('Status'.padEnd(16)),
173
- chalk.dim('Agent'.padEnd(8)),
174
- chalk.dim('Prompt'.padEnd(40)),
175
- chalk.dim('When'),
176
- ].join(' ');
177
- console.log(header);
178
- console.log(chalk.dim('-'.repeat(100)));
179
- for (const t of tasks) {
180
- const row = [
181
- t.id.slice(0, 12).padEnd(14),
182
- t.provider.padEnd(10),
183
- statusColor(t.status)(t.status.padEnd(16)),
184
- (t.agent ?? '-').padEnd(8),
185
- truncate(t.prompt.replace(/\n/g, ' '), 40).padEnd(40),
186
- chalk.dim(relTime(t.createdAt)),
187
- ].join(' ');
188
- console.log(row);
189
- }
190
- });
191
- // ── agents cloud status ───────────────────────────────────────────────
192
- cloud
193
- .command('status <id>')
194
- .description('Show task detail and latest status.')
195
- .option('--json', 'JSON output')
196
- .action(async (id, options) => {
197
- const json = isJsonMode(options);
198
- // Try local first, then remote
199
- let task = getTaskById(id);
200
- const providerId = task?.provider;
201
- if (providerId) {
202
- try {
203
- const provider = resolveProvider(providerId);
204
- task = await provider.status(id);
205
- insertTask(task);
206
- }
207
- catch {
208
- // Fall back to local cache
209
- }
210
- }
211
- if (!task)
212
- die(`Task ${id} not found.`);
213
- if (json) {
214
- process.stdout.write(JSON.stringify(task, null, 2) + '\n');
215
- return;
216
- }
217
- console.log(`${chalk.bold('Task')} ${task.id}`);
218
- console.log(` ${chalk.dim('Provider:')} ${task.provider}`);
219
- console.log(` ${chalk.dim('Status:')} ${statusColor(task.status)(task.status)}`);
220
- if (task.agent)
221
- console.log(` ${chalk.dim('Agent:')} ${task.agent}`);
222
- if (task.repo)
223
- console.log(` ${chalk.dim('Repo:')} ${task.repo}`);
224
- if (task.branch)
225
- console.log(` ${chalk.dim('Branch:')} ${task.branch}`);
226
- if (task.prUrl)
227
- console.log(` ${chalk.dim('PR:')} ${task.prUrl}`);
228
- console.log(` ${chalk.dim('Prompt:')} ${truncate(task.prompt.replace(/\n/g, ' '), 80)}`);
229
- console.log(` ${chalk.dim('Created:')} ${relTime(task.createdAt)}`);
230
- if (task.summary) {
231
- console.log(` ${chalk.dim('Summary:')} ${truncate(task.summary.replace(/\n/g, ' '), 120)}`);
232
- }
233
- });
234
- // ── agents cloud logs ─────────────────────────────────────────────────
235
- cloud
236
- .command('logs <id>')
237
- .description('Stream live output from a cloud task.')
238
- .option('-f, --follow', 'Follow output (default for running tasks)', true)
239
- .option('--json', 'JSON event stream')
240
- .action(async (id, options) => {
241
- const json = isJsonMode(options);
242
- const task = getTaskById(id);
243
- if (!task)
244
- die(`Task ${id} not found locally. Run 'agents cloud list --refresh' first.`);
245
- const provider = resolveProvider(task.provider);
246
- try {
247
- const result = await renderStream(provider.stream(id), { json });
248
- updateTaskStatus(id, result.status, {
249
- summary: result.summary,
250
- prUrl: result.prUrl,
251
- });
252
- }
253
- catch (err) {
254
- process.stderr.write(chalk.dim(`\nStream ended. ${err.message}\n`));
255
- }
256
- });
257
- // ── agents cloud cancel ───────────────────────────────────────────────
258
- cloud
259
- .command('cancel <id>')
260
- .description('Cancel a running cloud task.')
261
- .action(async (id) => {
262
- const task = getTaskById(id);
263
- if (!task)
264
- die(`Task ${id} not found.`);
265
- const provider = resolveProvider(task.provider);
266
- try {
267
- await provider.cancel(id);
268
- updateTaskStatus(id, 'cancelled');
269
- console.log(chalk.green(`Task ${id} cancelled.`));
270
- }
271
- catch (err) {
272
- die(err.message);
273
- }
274
- });
275
- // ── agents cloud message ──────────────────────────────────────────────
276
- cloud
277
- .command('message <id> <text>')
278
- .description('Send a follow-up message to a finished or needs-review task.')
279
- .action(async (id, text) => {
280
- const task = getTaskById(id);
281
- if (!task)
282
- die(`Task ${id} not found.`);
283
- const provider = resolveProvider(task.provider);
284
- try {
285
- await provider.message(id, text);
286
- updateTaskStatus(id, 'running');
287
- console.log(chalk.green(`Message sent to task ${id}. Agent is continuing.`));
288
- }
289
- catch (err) {
290
- die(err.message);
291
- }
292
- });
293
- // ── agents cloud providers ────────────────────────────────────────────
294
- cloud
295
- .command('providers')
296
- .description('List available cloud providers and their status.')
297
- .option('--json', 'JSON output')
298
- .action((options) => {
299
- const json = isJsonMode(options);
300
- const providers = getAllProviders();
301
- const defaultId = getDefaultProviderId();
302
- if (json) {
303
- const data = providers.map((p) => ({
304
- id: p.id,
305
- name: p.name,
306
- available: p.supports({}),
307
- default: p.id === defaultId,
308
- }));
309
- process.stdout.write(JSON.stringify(data, null, 2) + '\n');
310
- return;
311
- }
312
- console.log(chalk.bold('Cloud Providers\n'));
313
- for (const p of providers) {
314
- const available = p.supports({});
315
- const isDefault = p.id === defaultId;
316
- const status = available ? chalk.green('ready') : chalk.dim('not configured');
317
- const defaultTag = isDefault ? chalk.cyan(' (default)') : '';
318
- console.log(` ${p.id.padEnd(12)} ${p.name.padEnd(20)} ${status}${defaultTag}`);
319
- }
320
- });
321
- }
322
- //# sourceMappingURL=cloud.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/commands/cloud.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerProfilesCommands(program: Command): void;
3
- //# sourceMappingURL=profiles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/commands/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuEzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8L/D"}
@@ -1,242 +0,0 @@
1
- import chalk from 'chalk';
2
- import * as fs from 'fs';
3
- import { listProfiles, readProfile, writeProfile, deleteProfile, profileExists, profileFromPreset, getPresetForProfile, } from '../lib/profiles.js';
4
- import { getPreset, listPresets } from '../lib/profiles-presets.js';
5
- import { hasKeychainToken, keychainItemName, setKeychainToken, deleteKeychainToken, } from '../lib/profiles-keychain.js';
6
- import { isInteractiveTerminal } from './utils.js';
7
- async function promptForSecret(message) {
8
- if (!isInteractiveTerminal()) {
9
- throw new Error('A secret is required but the shell is not interactive. Pipe the key via stdin (--key-stdin).');
10
- }
11
- const { password } = await import('@inquirer/prompts');
12
- return await password({ message, mask: true });
13
- }
14
- function readStdinSync() {
15
- const chunks = [];
16
- const buf = Buffer.alloc(65536);
17
- while (true) {
18
- let bytesRead;
19
- try {
20
- bytesRead = fs.readSync(0, buf, 0, buf.length, null);
21
- }
22
- catch {
23
- break;
24
- }
25
- if (bytesRead === 0)
26
- break;
27
- chunks.push(Buffer.from(buf.subarray(0, bytesRead)));
28
- }
29
- return Buffer.concat(chunks).toString('utf-8').trim();
30
- }
31
- async function ensureProviderToken(provider, signupUrl, fromStdin) {
32
- const item = keychainItemName(provider);
33
- if (hasKeychainToken(item)) {
34
- return;
35
- }
36
- let token;
37
- if (fromStdin) {
38
- token = readStdinSync();
39
- if (!token) {
40
- throw new Error('No key received on stdin.');
41
- }
42
- }
43
- else {
44
- const hint = signupUrl ? ` (get one at ${signupUrl})` : '';
45
- token = await promptForSecret(`Enter API key for ${provider}${hint}`);
46
- }
47
- setKeychainToken(item, token);
48
- console.log(chalk.green(`Stored in keychain: ${item}`));
49
- }
50
- function renderProfileRow(p) {
51
- const host = p.host.version ? `${p.host.agent}@${p.host.version}` : p.host.agent;
52
- const model = p.env.ANTHROPIC_MODEL || p.env.OPENAI_MODEL || p.env.GEMINI_MODEL || '-';
53
- const provider = p.provider || (p.auth?.keychainItem?.split('.')[1]) || '-';
54
- return `${chalk.cyan(p.name.padEnd(16))} ${host.padEnd(14)} ${provider.padEnd(12)} ${chalk.gray(model)}`;
55
- }
56
- export function registerProfilesCommands(program) {
57
- const cmd = program
58
- .command('profiles')
59
- .description('Named bundles of (host CLI, endpoint, model, auth) — run Kimi/DeepSeek/Qwen/etc through Claude Code without a proxy.')
60
- .addHelpText('after', `
61
- A profile pins a host CLI (claude, codex, gemini, ...) to a non-default endpoint
62
- and model, with a keychain-backed API key. Running 'agents run <profile>' spawns
63
- the host CLI with the right env vars — no plaintext tokens, no local proxy.
64
-
65
- Built-in presets (via OpenRouter, one shared key):
66
- kimi Kimi K2.5 (top HumanEval, reasoning — interactive only)
67
- kimi-chat Kimi K2 0905 (non-reasoning, print-safe)
68
- minimax MiniMax M2.5 (top SWE-bench, reasoning)
69
- glm GLM 5 (top Chatbot Arena among open-weight, reasoning)
70
- qwen Qwen3 Coder Next (latest coding Qwen, print-safe)
71
- deepseek DeepSeek Chat V3 (latest non-reasoning chat, print-safe)
72
-
73
- Run 'agents profiles presets' for the full list with pricing and context sizes.
74
-
75
- Typical flow:
76
- agents profiles add kimi # prompts for OpenRouter key, stored in Keychain
77
- agents run kimi "refactor this" # Claude Code UI, Kimi model responses
78
- agents profiles add deepseek # reuses OpenRouter key, no re-prompt
79
-
80
- Managing keys:
81
- agents profiles login openrouter # rotate the key (shared across openrouter profiles)
82
- agents profiles logout openrouter # remove from Keychain
83
-
84
- Custom endpoints — drop a YAML file at ~/.agents/profiles/<name>.yml:
85
- name: local-llama
86
- host: { agent: claude }
87
- env:
88
- ANTHROPIC_BASE_URL: http://localhost:11434
89
- ANTHROPIC_MODEL: llama-3.3-70b
90
- auth:
91
- envVar: ANTHROPIC_AUTH_TOKEN
92
- keychainItem: agents-cli.ollama.token
93
-
94
- Profiles store no secrets — safe to 'agents push' to a shared repo.
95
- `);
96
- cmd
97
- .command('list')
98
- .alias('ls')
99
- .description('List configured profiles')
100
- .action(() => {
101
- const profiles = listProfiles();
102
- if (profiles.length === 0) {
103
- console.log(chalk.gray('No profiles configured.'));
104
- console.log(chalk.gray('Try: agents profiles add kimi'));
105
- console.log(chalk.gray(' agents profiles presets'));
106
- return;
107
- }
108
- console.log(chalk.bold(`${'NAME'.padEnd(16)} ${'HOST'.padEnd(14)} ${'PROVIDER'.padEnd(12)} MODEL`));
109
- for (const p of profiles) {
110
- console.log(renderProfileRow(p));
111
- }
112
- });
113
- cmd
114
- .command('presets')
115
- .description('List built-in presets (OpenRouter + direct providers)')
116
- .action(() => {
117
- const presets = listPresets();
118
- console.log(chalk.bold(`${'NAME'.padEnd(14)} ${'PROVIDER'.padEnd(12)} DESCRIPTION`));
119
- for (const p of presets) {
120
- console.log(`${chalk.cyan(p.name.padEnd(14))} ${p.provider.padEnd(12)} ${chalk.gray(p.description)}`);
121
- }
122
- });
123
- cmd
124
- .command('view <name>')
125
- .alias('show')
126
- .description('Show a profile (env, host, auth source, preset link)')
127
- .action((name) => {
128
- try {
129
- const p = readProfile(name);
130
- console.log(chalk.bold(p.name));
131
- if (p.description)
132
- console.log(chalk.gray(p.description));
133
- console.log();
134
- console.log(chalk.bold('Host:'), p.host.agent + (p.host.version ? `@${p.host.version}` : ''));
135
- if (p.provider)
136
- console.log(chalk.bold('Provider:'), p.provider);
137
- if (p.preset)
138
- console.log(chalk.bold('Preset:'), p.preset);
139
- console.log();
140
- console.log(chalk.bold('Env:'));
141
- for (const [k, v] of Object.entries(p.env)) {
142
- console.log(` ${k}=${v}`);
143
- }
144
- if (p.auth) {
145
- console.log();
146
- console.log(chalk.bold('Auth:'));
147
- const tokenStatus = hasKeychainToken(p.auth.keychainItem) ? chalk.green('stored') : chalk.red('missing');
148
- console.log(` ${p.auth.envVar} <- keychain:${p.auth.keychainItem} (${tokenStatus})`);
149
- }
150
- const preset = getPresetForProfile(p);
151
- if (preset?.signupUrl) {
152
- console.log();
153
- console.log(chalk.gray(`Sign up: ${preset.signupUrl}`));
154
- }
155
- }
156
- catch (err) {
157
- console.error(chalk.red(err.message));
158
- process.exit(1);
159
- }
160
- });
161
- cmd
162
- .command('add <name>')
163
- .description('Add a profile. If <name> matches a built-in preset, the preset is applied. Prompts for API key (once per provider).')
164
- .option('--preset <preset>', 'Use a named preset (defaults to <name> if a preset by that name exists)')
165
- .option('--version <version>', 'Pin the host CLI version (e.g., 2.1.113)')
166
- .option('--key-stdin', 'Read API key from stdin instead of prompting (for scripts/CI)')
167
- .option('--force', 'Overwrite an existing profile with the same name')
168
- .action(async (name, opts) => {
169
- try {
170
- if (profileExists(name) && !opts.force) {
171
- console.error(chalk.red(`Profile '${name}' already exists. Use --force to overwrite.`));
172
- process.exit(1);
173
- }
174
- const presetName = opts.preset || name;
175
- const preset = getPreset(presetName);
176
- if (!preset) {
177
- console.error(chalk.red(`No preset '${presetName}'.`));
178
- console.error(chalk.gray('Available presets: ' + listPresets().map((p) => p.name).join(', ')));
179
- console.error(chalk.gray('Or pass --preset <name> to pick explicitly.'));
180
- process.exit(1);
181
- }
182
- await ensureProviderToken(preset.provider, preset.signupUrl, opts.keyStdin);
183
- const profile = profileFromPreset(name, preset, opts.version);
184
- writeProfile(profile);
185
- console.log(chalk.green(`Profile '${name}' added.`));
186
- console.log(chalk.gray(`Try: agents run ${name} "hello"`));
187
- }
188
- catch (err) {
189
- console.error(chalk.red(err.message));
190
- process.exit(1);
191
- }
192
- });
193
- cmd
194
- .command('remove <name>')
195
- .alias('rm')
196
- .description('Delete a profile (keychain token is kept — use `profiles logout <provider>` to remove)')
197
- .action((name) => {
198
- const existed = deleteProfile(name);
199
- if (!existed) {
200
- console.error(chalk.red(`Profile '${name}' not found.`));
201
- process.exit(1);
202
- }
203
- console.log(chalk.green(`Profile '${name}' removed.`));
204
- });
205
- cmd
206
- .command('login <provider>')
207
- .description('Store or rotate the API key for a provider (e.g., openrouter). Shared across profiles using that provider.')
208
- .option('--key-stdin', 'Read API key from stdin')
209
- .action(async (provider, opts) => {
210
- try {
211
- const item = keychainItemName(provider);
212
- let token;
213
- if (opts.keyStdin) {
214
- token = readStdinSync();
215
- if (!token)
216
- throw new Error('No key received on stdin.');
217
- }
218
- else {
219
- token = await promptForSecret(`Enter API key for ${provider}`);
220
- }
221
- setKeychainToken(item, token);
222
- console.log(chalk.green(`Stored in keychain: ${item}`));
223
- }
224
- catch (err) {
225
- console.error(chalk.red(err.message));
226
- process.exit(1);
227
- }
228
- });
229
- cmd
230
- .command('logout <provider>')
231
- .description('Remove a stored provider key from keychain')
232
- .action((provider) => {
233
- const item = keychainItemName(provider);
234
- const existed = deleteKeychainToken(item);
235
- if (!existed) {
236
- console.error(chalk.yellow(`No keychain item '${item}' to remove.`));
237
- process.exit(1);
238
- }
239
- console.log(chalk.green(`Removed keychain item: ${item}`));
240
- });
241
- }
242
- //# sourceMappingURL=profiles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/commands/profiles.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { Command } from 'commander';
2
- export declare function registerSecretsCommands(program: Command): void;
3
- //# sourceMappingURL=secrets.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/commands/secrets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0EzC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4R9D"}