@a5c-ai/agent-mux-cli 0.2.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 (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +28 -0
  3. package/dist/bootstrap.d.ts +14 -0
  4. package/dist/bootstrap.d.ts.map +1 -0
  5. package/dist/bootstrap.js +41 -0
  6. package/dist/bootstrap.js.map +1 -0
  7. package/dist/commands/adapters.d.ts +9 -0
  8. package/dist/commands/adapters.d.ts.map +1 -0
  9. package/dist/commands/adapters.js +132 -0
  10. package/dist/commands/adapters.js.map +1 -0
  11. package/dist/commands/auth.d.ts +9 -0
  12. package/dist/commands/auth.d.ts.map +1 -0
  13. package/dist/commands/auth.js +137 -0
  14. package/dist/commands/auth.js.map +1 -0
  15. package/dist/commands/config.d.ts +9 -0
  16. package/dist/commands/config.d.ts.map +1 -0
  17. package/dist/commands/config.js +221 -0
  18. package/dist/commands/config.js.map +1 -0
  19. package/dist/commands/detect-host.d.ts +8 -0
  20. package/dist/commands/detect-host.d.ts.map +1 -0
  21. package/dist/commands/detect-host.js +33 -0
  22. package/dist/commands/detect-host.js.map +1 -0
  23. package/dist/commands/doctor.d.ts +4 -0
  24. package/dist/commands/doctor.d.ts.map +1 -0
  25. package/dist/commands/doctor.js +120 -0
  26. package/dist/commands/doctor.js.map +1 -0
  27. package/dist/commands/help.d.ts +14 -0
  28. package/dist/commands/help.d.ts.map +1 -0
  29. package/dist/commands/help.js +346 -0
  30. package/dist/commands/help.js.map +1 -0
  31. package/dist/commands/hooks.d.ts +17 -0
  32. package/dist/commands/hooks.d.ts.map +1 -0
  33. package/dist/commands/hooks.js +219 -0
  34. package/dist/commands/hooks.js.map +1 -0
  35. package/dist/commands/install-helpers.d.ts +25 -0
  36. package/dist/commands/install-helpers.d.ts.map +1 -0
  37. package/dist/commands/install-helpers.js +58 -0
  38. package/dist/commands/install-helpers.js.map +1 -0
  39. package/dist/commands/install.d.ts +25 -0
  40. package/dist/commands/install.d.ts.map +1 -0
  41. package/dist/commands/install.js +406 -0
  42. package/dist/commands/install.js.map +1 -0
  43. package/dist/commands/models.d.ts +9 -0
  44. package/dist/commands/models.d.ts.map +1 -0
  45. package/dist/commands/models.js +153 -0
  46. package/dist/commands/models.js.map +1 -0
  47. package/dist/commands/plugins.d.ts +9 -0
  48. package/dist/commands/plugins.d.ts.map +1 -0
  49. package/dist/commands/plugins.js +180 -0
  50. package/dist/commands/plugins.js.map +1 -0
  51. package/dist/commands/profiles.d.ts +9 -0
  52. package/dist/commands/profiles.d.ts.map +1 -0
  53. package/dist/commands/profiles.js +206 -0
  54. package/dist/commands/profiles.js.map +1 -0
  55. package/dist/commands/remote.d.ts +31 -0
  56. package/dist/commands/remote.d.ts.map +1 -0
  57. package/dist/commands/remote.js +204 -0
  58. package/dist/commands/remote.js.map +1 -0
  59. package/dist/commands/run.d.ts +28 -0
  60. package/dist/commands/run.d.ts.map +1 -0
  61. package/dist/commands/run.js +293 -0
  62. package/dist/commands/run.js.map +1 -0
  63. package/dist/commands/sessions.d.ts +9 -0
  64. package/dist/commands/sessions.d.ts.map +1 -0
  65. package/dist/commands/sessions.js +225 -0
  66. package/dist/commands/sessions.js.map +1 -0
  67. package/dist/exit-codes.d.ts +33 -0
  68. package/dist/exit-codes.d.ts.map +1 -0
  69. package/dist/exit-codes.js +68 -0
  70. package/dist/exit-codes.js.map +1 -0
  71. package/dist/index.d.ts +23 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +188 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/output.d.ts +56 -0
  76. package/dist/output.d.ts.map +1 -0
  77. package/dist/output.js +129 -0
  78. package/dist/output.js.map +1 -0
  79. package/dist/parse-args.d.ts +58 -0
  80. package/dist/parse-args.d.ts.map +1 -0
  81. package/dist/parse-args.js +257 -0
  82. package/dist/parse-args.js.map +1 -0
  83. package/package.json +57 -0
@@ -0,0 +1,406 @@
1
+ /**
2
+ * `amux install <agent>`, `amux update <agent>`, `amux detect <agent>`,
3
+ * and `amux uninstall <agent>` commands.
4
+ *
5
+ * Dispatches to the adapter's per-agent install/update/detect methods,
6
+ * so each harness may override behavior.
7
+ *
8
+ * @see docs/10-cli-reference.md
9
+ */
10
+ import { AgentMuxError } from '@a5c-ai/agent-mux-core';
11
+ import { flagBool, flagStr } from '../parse-args.js';
12
+ import { ExitCode, errorCodeToExitCode } from '../exit-codes.js';
13
+ import { printJsonOk, printJsonError, printError, printKeyValue, } from '../output.js';
14
+ import { defaultSpawnRunner, silentSpawnRunner, runSilently, } from './install-helpers.js';
15
+ /** Flags recognized by the install/uninstall/update/detect commands. */
16
+ export const INSTALL_FLAGS = {
17
+ 'all': { type: 'boolean' },
18
+ 'force': { type: 'boolean' },
19
+ 'dry-run': { type: 'boolean' },
20
+ 'pkg-version': { type: 'string' },
21
+ };
22
+ /**
23
+ * Handle `amux install [<agent>] [--all]`, `amux update [<agent>] [--all]`,
24
+ * `amux detect [<agent>] [--all]`, and `amux uninstall <agent>`.
25
+ */
26
+ export async function installCommand(client, args, deps = {}) {
27
+ const jsonMode = flagBool(args.flags, 'json') === true;
28
+ const all = flagBool(args.flags, 'all') === true;
29
+ const force = flagBool(args.flags, 'force') === true;
30
+ const dryRun = flagBool(args.flags, 'dry-run') === true;
31
+ const versionFlag = flagStr(args.flags, 'pkg-version');
32
+ const mode = args.command === 'uninstall' ? 'uninstall'
33
+ : args.command === 'update' ? 'update'
34
+ : args.command === 'detect' ? 'detect'
35
+ : 'install';
36
+ // In JSON mode, or for `detect` (a read-only query), suppress child
37
+ // process output so it never contaminates structured output or piped JSON.
38
+ const suppressChildOutput = jsonMode || mode === 'detect';
39
+ const spawnRunner = deps.spawnRunner
40
+ ?? (suppressChildOutput ? silentSpawnRunner : defaultSpawnRunner);
41
+ const adapterSpawner = toAdapterSpawner(spawnRunner);
42
+ if ((mode === 'install' || mode === 'update' || mode === 'detect') && all) {
43
+ return handleAll(client, mode, adapterSpawner, { force, dryRun }, jsonMode);
44
+ }
45
+ const agent = args.positionals[0];
46
+ if (!agent) {
47
+ const msg = mode === 'install'
48
+ ? 'Usage: amux install <agent> | amux install --all'
49
+ : mode === 'update'
50
+ ? 'Usage: amux update <agent> | amux update --all'
51
+ : mode === 'detect'
52
+ ? 'Usage: amux detect <agent> | amux detect --all'
53
+ : 'Usage: amux uninstall <agent>';
54
+ if (jsonMode)
55
+ printJsonError('VALIDATION_ERROR', msg);
56
+ else
57
+ printError(msg);
58
+ return ExitCode.USAGE_ERROR;
59
+ }
60
+ switch (mode) {
61
+ case 'install':
62
+ return installOne(client, agent, adapterSpawner, { force, dryRun, ...(versionFlag !== undefined ? { version: versionFlag } : {}) }, jsonMode);
63
+ case 'update':
64
+ return updateOne(client, agent, adapterSpawner, { dryRun }, jsonMode);
65
+ case 'detect':
66
+ return detectOne(client, agent, adapterSpawner, jsonMode);
67
+ case 'uninstall':
68
+ return uninstallOne(client, agent, spawnRunner, jsonMode);
69
+ }
70
+ }
71
+ // ---------------------------------------------------------------------------
72
+ // install <agent>
73
+ // ---------------------------------------------------------------------------
74
+ async function installOne(client, agent, spawner, opts, jsonMode) {
75
+ const adapter = client.adapters.get(agent);
76
+ if (!adapter) {
77
+ if (opts.dryRun) {
78
+ if (jsonMode)
79
+ printJsonOk({ agent, dryRun: true, installed: false, reason: 'unknown-agent' });
80
+ else
81
+ process.stdout.write(`[dry-run] Unknown agent "${agent}" — no install method available.\n`);
82
+ return ExitCode.SUCCESS;
83
+ }
84
+ const msg = `Unknown agent: ${agent}`;
85
+ if (jsonMode)
86
+ printJsonError('UNKNOWN_AGENT', msg);
87
+ else
88
+ printError(msg);
89
+ return errorCodeToExitCode('UNKNOWN_AGENT');
90
+ }
91
+ injectSpawner(adapter, spawner);
92
+ if (!adapter.install) {
93
+ const msg = `Agent "${agent}" does not support install().`;
94
+ if (jsonMode)
95
+ printJsonError('VALIDATION_ERROR', msg);
96
+ else
97
+ printError(msg);
98
+ return ExitCode.GENERAL_ERROR;
99
+ }
100
+ let result;
101
+ try {
102
+ result = await adapter.install({
103
+ force: opts.force,
104
+ dryRun: opts.dryRun,
105
+ ...(opts.version !== undefined ? { version: opts.version } : {}),
106
+ });
107
+ }
108
+ catch (err) {
109
+ const msg = err instanceof Error ? err.message : String(err);
110
+ if (jsonMode)
111
+ printJsonError('INTERNAL', `Install failed: ${msg}`);
112
+ else
113
+ printError(`Install failed: ${msg}`);
114
+ return ExitCode.GENERAL_ERROR;
115
+ }
116
+ // Render result.
117
+ if (jsonMode) {
118
+ printJsonOk({
119
+ agent,
120
+ installed: result.ok,
121
+ method: result.method,
122
+ command: result.command,
123
+ dryRun: opts.dryRun || undefined,
124
+ version: result.installedVersion,
125
+ message: result.message,
126
+ });
127
+ }
128
+ else {
129
+ if (result.method === 'already-installed') {
130
+ process.stdout.write(`${agent} is already installed${result.installedVersion ? ` (${result.installedVersion})` : ''}.\n`);
131
+ process.stdout.write(`Use --force to reinstall.\n`);
132
+ }
133
+ else if (opts.dryRun) {
134
+ process.stdout.write(`[dry-run] Would install ${agent} via: ${result.command}\n`);
135
+ }
136
+ else if (result.method === 'manual') {
137
+ process.stdout.write(`${result.message ?? `Install ${agent} manually: ${result.command}`}\n`);
138
+ }
139
+ else {
140
+ if (result.command)
141
+ process.stdout.write(`Installing ${agent} via: ${result.command}\n`);
142
+ printKeyValue([
143
+ ['Agent:', agent],
144
+ ['Method:', result.method],
145
+ ['Installed:', result.ok ? 'yes' : 'no'],
146
+ ['Version:', result.installedVersion ?? '--'],
147
+ ]);
148
+ if (result.stderr && !result.ok)
149
+ process.stderr.write(result.stderr);
150
+ }
151
+ }
152
+ // Manual install is "not an error" — surface as success.
153
+ if (result.method === 'manual')
154
+ return ExitCode.SUCCESS;
155
+ if (result.method === 'already-installed')
156
+ return ExitCode.SUCCESS;
157
+ return result.ok ? ExitCode.SUCCESS : ExitCode.GENERAL_ERROR;
158
+ }
159
+ // ---------------------------------------------------------------------------
160
+ // update <agent>
161
+ // ---------------------------------------------------------------------------
162
+ async function updateOne(client, agent, spawner, opts, jsonMode) {
163
+ const adapter = client.adapters.get(agent);
164
+ if (!adapter) {
165
+ const msg = `Unknown agent: ${agent}`;
166
+ if (jsonMode)
167
+ printJsonError('UNKNOWN_AGENT', msg);
168
+ else
169
+ printError(msg);
170
+ return errorCodeToExitCode('UNKNOWN_AGENT');
171
+ }
172
+ injectSpawner(adapter, spawner);
173
+ if (!adapter.update) {
174
+ const msg = `Agent "${agent}" does not support update().`;
175
+ if (jsonMode)
176
+ printJsonError('VALIDATION_ERROR', msg);
177
+ else
178
+ printError(msg);
179
+ return ExitCode.GENERAL_ERROR;
180
+ }
181
+ let result;
182
+ try {
183
+ result = await adapter.update({ dryRun: opts.dryRun });
184
+ }
185
+ catch (err) {
186
+ const msg = err instanceof Error ? err.message : String(err);
187
+ if (jsonMode)
188
+ printJsonError('INTERNAL', `Update failed: ${msg}`);
189
+ else
190
+ printError(`Update failed: ${msg}`);
191
+ return ExitCode.GENERAL_ERROR;
192
+ }
193
+ if (jsonMode) {
194
+ printJsonOk({
195
+ agent,
196
+ updated: result.ok,
197
+ method: result.method,
198
+ command: result.command,
199
+ dryRun: opts.dryRun || undefined,
200
+ version: result.installedVersion,
201
+ message: result.message,
202
+ });
203
+ }
204
+ else {
205
+ if (opts.dryRun) {
206
+ process.stdout.write(`[dry-run] Would update ${agent} via: ${result.command}\n`);
207
+ }
208
+ else if (result.method === 'manual') {
209
+ process.stdout.write(`${result.message ?? `Update ${agent} manually.`}\n`);
210
+ }
211
+ else {
212
+ if (result.command)
213
+ process.stdout.write(`Updating ${agent} via: ${result.command}\n`);
214
+ printKeyValue([
215
+ ['Agent:', agent],
216
+ ['Method:', result.method],
217
+ ['Updated:', result.ok ? 'yes' : 'no'],
218
+ ['Version:', result.installedVersion ?? '--'],
219
+ ]);
220
+ if (result.stderr && !result.ok)
221
+ process.stderr.write(result.stderr);
222
+ }
223
+ }
224
+ if (result.method === 'manual')
225
+ return ExitCode.SUCCESS;
226
+ return result.ok ? ExitCode.SUCCESS : ExitCode.GENERAL_ERROR;
227
+ }
228
+ // ---------------------------------------------------------------------------
229
+ // detect <agent>
230
+ // ---------------------------------------------------------------------------
231
+ async function detectOne(client, agent, spawner, jsonMode) {
232
+ const adapter = client.adapters.get(agent);
233
+ if (!adapter) {
234
+ const msg = `Unknown agent: ${agent}`;
235
+ if (jsonMode)
236
+ printJsonError('UNKNOWN_AGENT', msg);
237
+ else
238
+ printError(msg);
239
+ return errorCodeToExitCode('UNKNOWN_AGENT');
240
+ }
241
+ injectSpawner(adapter, spawner);
242
+ let result;
243
+ try {
244
+ if (!adapter.detectInstallation) {
245
+ result = { installed: false, notes: 'detectInstallation() not implemented' };
246
+ }
247
+ else {
248
+ result = await adapter.detectInstallation();
249
+ }
250
+ }
251
+ catch (err) {
252
+ const msg = err instanceof Error ? err.message : String(err);
253
+ if (jsonMode)
254
+ printJsonError('INTERNAL', `Detect failed: ${msg}`);
255
+ else
256
+ printError(`Detect failed: ${msg}`);
257
+ return ExitCode.GENERAL_ERROR;
258
+ }
259
+ if (jsonMode) {
260
+ printJsonOk({
261
+ agent,
262
+ installed: result.installed,
263
+ version: result.version,
264
+ path: result.path,
265
+ notes: result.notes,
266
+ });
267
+ }
268
+ else {
269
+ printKeyValue([
270
+ ['Agent:', agent],
271
+ ['Installed:', result.installed ? 'yes' : 'no'],
272
+ ['Version:', result.version ?? '--'],
273
+ ['Path:', result.path ?? '--'],
274
+ ['Notes:', result.notes ?? '--'],
275
+ ]);
276
+ }
277
+ return ExitCode.SUCCESS;
278
+ }
279
+ // ---------------------------------------------------------------------------
280
+ // --all dispatch
281
+ // ---------------------------------------------------------------------------
282
+ async function handleAll(client, mode, spawner, opts, jsonMode) {
283
+ const registered = client.adapters.list();
284
+ const results = [];
285
+ let overall = ExitCode.SUCCESS;
286
+ for (const info of registered) {
287
+ if (!jsonMode)
288
+ process.stdout.write(`\n=== ${info.agent} ===\n`);
289
+ let code;
290
+ // In JSON mode, silence stdout/stderr while each per-agent handler
291
+ // runs so their envelopes don't contaminate the aggregate JSON
292
+ // response emitted at the end. Exit codes are still captured.
293
+ const run = async () => {
294
+ if (mode === 'install') {
295
+ return installOne(client, info.agent, spawner, opts, jsonMode);
296
+ }
297
+ else if (mode === 'update') {
298
+ return updateOne(client, info.agent, spawner, { dryRun: opts.dryRun }, jsonMode);
299
+ }
300
+ return detectOne(client, info.agent, spawner, jsonMode);
301
+ };
302
+ code = jsonMode ? await runSilently(run) : await run();
303
+ results.push({ agent: info.agent, exitCode: code });
304
+ if (code !== ExitCode.SUCCESS && overall === ExitCode.SUCCESS) {
305
+ overall = ExitCode.GENERAL_ERROR;
306
+ }
307
+ }
308
+ if (jsonMode)
309
+ printJsonOk({ results });
310
+ return overall;
311
+ }
312
+ // ---------------------------------------------------------------------------
313
+ // uninstall <agent>
314
+ // ---------------------------------------------------------------------------
315
+ async function uninstallOne(client, agent, spawnRunner, jsonMode) {
316
+ const adapter = client.adapters.get(agent);
317
+ if (!adapter) {
318
+ const msg = `Unknown agent: ${agent}`;
319
+ if (jsonMode)
320
+ printJsonError('UNKNOWN_AGENT', msg);
321
+ else
322
+ printError(msg);
323
+ return errorCodeToExitCode('UNKNOWN_AGENT');
324
+ }
325
+ const methods = safeInstallInstructions(client, agent);
326
+ const npmMethod = methods.find((m) => m.type === 'npm');
327
+ const brewMethod = methods.find((m) => m.type === 'brew');
328
+ let cmd = null;
329
+ let argsList = [];
330
+ if (npmMethod) {
331
+ const parts = npmMethod.command.split(/\s+/).filter(Boolean);
332
+ const pkg = parts[parts.length - 1];
333
+ if (pkg) {
334
+ cmd = 'npm';
335
+ argsList = ['uninstall', '-g', pkg];
336
+ }
337
+ }
338
+ else if (brewMethod) {
339
+ const parts = brewMethod.command.split(/\s+/).filter(Boolean);
340
+ const pkg = parts[parts.length - 1];
341
+ if (pkg) {
342
+ cmd = 'brew';
343
+ argsList = ['uninstall', pkg];
344
+ }
345
+ }
346
+ if (!cmd) {
347
+ const msg = `No supported uninstall method for agent "${agent}".`;
348
+ if (jsonMode)
349
+ printJsonError('VALIDATION_ERROR', msg);
350
+ else
351
+ printError(msg);
352
+ return ExitCode.GENERAL_ERROR;
353
+ }
354
+ if (!jsonMode) {
355
+ process.stdout.write(`Uninstalling ${agent} via: ${cmd} ${argsList.join(' ')}\n`);
356
+ }
357
+ try {
358
+ const result = await spawnRunner(cmd, argsList);
359
+ if (result.code !== 0) {
360
+ const msg = `Uninstall command exited with code ${result.code}`;
361
+ if (jsonMode)
362
+ printJsonError('INTERNAL', msg);
363
+ else
364
+ printError(msg);
365
+ return ExitCode.GENERAL_ERROR;
366
+ }
367
+ }
368
+ catch (err) {
369
+ const msg = err instanceof Error ? err.message : String(err);
370
+ if (jsonMode)
371
+ printJsonError('INTERNAL', `Uninstall failed: ${msg}`);
372
+ else
373
+ printError(`Uninstall failed: ${msg}`);
374
+ return ExitCode.GENERAL_ERROR;
375
+ }
376
+ if (jsonMode)
377
+ printJsonOk({ agent, uninstalled: true });
378
+ else
379
+ process.stdout.write(`${agent} uninstalled.\n`);
380
+ return ExitCode.SUCCESS;
381
+ }
382
+ // ---------------------------------------------------------------------------
383
+ // Helpers
384
+ // ---------------------------------------------------------------------------
385
+ function safeInstallInstructions(client, agent) {
386
+ try {
387
+ return client.adapters.installInstructions(agent);
388
+ }
389
+ catch {
390
+ return [];
391
+ }
392
+ }
393
+ /** Adapt a CLI-level SpawnRunner to the adapter-level Spawner interface. */
394
+ function toAdapterSpawner(runner) {
395
+ return (command, args, _opts) => runner(command, args);
396
+ }
397
+ /** Attach a Spawner to a BaseAgentAdapter (duck-typed via setSpawner). */
398
+ function injectSpawner(adapter, spawner) {
399
+ const a = adapter;
400
+ if (typeof a.setSpawner === 'function') {
401
+ a.setSpawner(spawner);
402
+ }
403
+ }
404
+ // Silence unused imports for AgentMuxError (kept for compatibility).
405
+ void AgentMuxError;
406
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `amux models` subcommands.
3
+ *
4
+ * @see docs/10-cli-reference.md Section 10
5
+ */
6
+ import type { AgentMuxClient } from '@a5c-ai/agent-mux-core';
7
+ import type { ParsedArgs } from '../parse-args.js';
8
+ export declare function modelsCommand(client: AgentMuxClient, args: ParsedArgs): Promise<number>;
9
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAOnD,wBAAsB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA2D7F"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * `amux models` subcommands.
3
+ *
4
+ * @see docs/10-cli-reference.md Section 10
5
+ */
6
+ import { AgentMuxError } from '@a5c-ai/agent-mux-core';
7
+ import { flagBool, flagStr } from '../parse-args.js';
8
+ import { ExitCode, errorCodeToExitCode } from '../exit-codes.js';
9
+ import { printTable, printJsonOk, printJsonError, printError, printJson, toPlain, } from '../output.js';
10
+ export async function modelsCommand(client, args) {
11
+ const sub = args.subcommand;
12
+ const jsonMode = flagBool(args.flags, 'json') === true;
13
+ if (sub === 'list') {
14
+ const agent = args.positionals[0] ?? flagStr(args.flags, 'agent');
15
+ if (!agent) {
16
+ if (jsonMode) {
17
+ printJsonError('VALIDATION_ERROR', 'Missing required argument: <agent>');
18
+ }
19
+ else {
20
+ printError('Missing required argument: <agent>');
21
+ }
22
+ return ExitCode.USAGE_ERROR;
23
+ }
24
+ return modelsList(client, agent, jsonMode);
25
+ }
26
+ if (sub === 'info' || sub === 'get') {
27
+ const agent = args.positionals[0] ?? flagStr(args.flags, 'agent');
28
+ const modelId = args.positionals[1];
29
+ if (!agent || !modelId) {
30
+ if (jsonMode) {
31
+ printJsonError('VALIDATION_ERROR', 'Usage: amux models info <agent> <model>');
32
+ }
33
+ else {
34
+ printError('Usage: amux models info <agent> <model>');
35
+ }
36
+ return ExitCode.USAGE_ERROR;
37
+ }
38
+ return modelsInfo(client, agent, modelId, jsonMode);
39
+ }
40
+ if (sub === 'refresh') {
41
+ const agent = args.positionals[0] ?? flagStr(args.flags, 'agent');
42
+ if (!agent) {
43
+ if (jsonMode) {
44
+ printJsonError('VALIDATION_ERROR', 'Missing required argument: <agent>');
45
+ }
46
+ else {
47
+ printError('Missing required argument: <agent>');
48
+ }
49
+ return ExitCode.USAGE_ERROR;
50
+ }
51
+ return modelsRefresh(client, agent, jsonMode);
52
+ }
53
+ if (!sub) {
54
+ if (jsonMode) {
55
+ printJsonError('VALIDATION_ERROR', 'Missing subcommand. Available: list, info, refresh');
56
+ }
57
+ else {
58
+ printError('Missing subcommand. Available: list, info, refresh');
59
+ }
60
+ return ExitCode.USAGE_ERROR;
61
+ }
62
+ if (jsonMode) {
63
+ printJsonError('VALIDATION_ERROR', `Unknown subcommand: models ${sub}`);
64
+ }
65
+ else {
66
+ printError(`Unknown subcommand: models ${sub}`);
67
+ }
68
+ return ExitCode.USAGE_ERROR;
69
+ }
70
+ async function modelsList(client, agent, jsonMode) {
71
+ try {
72
+ const models = client.models.models(agent);
73
+ if (jsonMode) {
74
+ printJsonOk(models);
75
+ return ExitCode.SUCCESS;
76
+ }
77
+ const rows = models.map((model) => {
78
+ const m = toPlain(model);
79
+ return [
80
+ String(m['id'] ?? m['modelId'] ?? '--'),
81
+ String(m['displayName'] ?? m['name'] ?? '--'),
82
+ String(m['contextWindow'] ?? '--'),
83
+ String(m['maxOutputTokens'] ?? '--'),
84
+ m['supportsThinking'] ? 'yes' : 'no',
85
+ m['supportsStreaming'] ? 'yes' : 'no',
86
+ ];
87
+ });
88
+ printTable(['Model ID', 'Display Name', 'Context', 'Max Output', 'Thinking', 'Streaming'], rows);
89
+ return ExitCode.SUCCESS;
90
+ }
91
+ catch (err) {
92
+ return handleError(err, jsonMode);
93
+ }
94
+ }
95
+ async function modelsInfo(client, agent, modelId, jsonMode) {
96
+ try {
97
+ const model = client.models.model(agent, modelId);
98
+ if (!model) {
99
+ if (jsonMode) {
100
+ printJsonError('AGENT_NOT_FOUND', `Model "${modelId}" not found for agent "${agent}"`);
101
+ }
102
+ else {
103
+ printError(`Model "${modelId}" not found for agent "${agent}"`);
104
+ }
105
+ return ExitCode.GENERAL_ERROR;
106
+ }
107
+ if (jsonMode) {
108
+ printJsonOk(model);
109
+ }
110
+ else {
111
+ printJson(model);
112
+ }
113
+ return ExitCode.SUCCESS;
114
+ }
115
+ catch (err) {
116
+ return handleError(err, jsonMode);
117
+ }
118
+ }
119
+ async function modelsRefresh(client, agent, jsonMode) {
120
+ try {
121
+ await client.models.refresh(agent);
122
+ if (jsonMode) {
123
+ printJsonOk({ refreshed: agent });
124
+ }
125
+ else {
126
+ process.stdout.write(`Model list refreshed for ${agent}.\n`);
127
+ }
128
+ return ExitCode.SUCCESS;
129
+ }
130
+ catch (err) {
131
+ return handleError(err, jsonMode);
132
+ }
133
+ }
134
+ function handleError(err, jsonMode) {
135
+ if (err instanceof AgentMuxError) {
136
+ if (jsonMode) {
137
+ printJsonError(err.code, err.message, err.recoverable);
138
+ }
139
+ else {
140
+ printError(err.message);
141
+ }
142
+ return errorCodeToExitCode(err.code);
143
+ }
144
+ const message = err instanceof Error ? err.message : String(err);
145
+ if (jsonMode) {
146
+ printJsonError('INTERNAL', message);
147
+ }
148
+ else {
149
+ printError(message);
150
+ }
151
+ return ExitCode.GENERAL_ERROR;
152
+ }
153
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/commands/models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `amux plugins` subcommands.
3
+ *
4
+ * @see docs/10-cli-reference.md Section 11
5
+ */
6
+ import type { AgentMuxClient } from '@a5c-ai/agent-mux-core';
7
+ import type { ParsedArgs } from '../parse-args.js';
8
+ export declare function pluginsCommand(client: AgentMuxClient, args: ParsedArgs): Promise<number>;
9
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAOnD,wBAAsB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA4D9F"}