@a5c-ai/agent-mux-cli 5.0.1-staging.04a3db697 → 5.0.1-staging.04ca6ab00d21
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/bootstrap.d.ts +1 -1
- package/dist/commands/adapters.d.ts +2 -6
- package/dist/commands/adapters.d.ts.map +1 -1
- package/dist/commands/adapters.js +2 -129
- package/dist/commands/adapters.js.map +1 -1
- package/dist/commands/agent.d.ts +1 -1
- package/dist/commands/auth.d.ts +2 -6
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +2 -134
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/config.d.ts +2 -6
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +2 -218
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/detect-host.d.ts +2 -5
- package/dist/commands/detect-host.d.ts.map +1 -1
- package/dist/commands/detect-host.js +2 -30
- package/dist/commands/detect-host.js.map +1 -1
- package/dist/commands/doctor.d.ts +1 -1
- package/dist/commands/gateway/index.d.ts +1 -1
- package/dist/commands/hooks.d.ts +1 -1
- package/dist/commands/hooks.js +1 -1
- package/dist/commands/install-helpers.d.ts +3 -22
- package/dist/commands/install-helpers.d.ts.map +1 -1
- package/dist/commands/install-helpers.js +2 -55
- package/dist/commands/install-helpers.js.map +1 -1
- package/dist/commands/install.d.ts +2 -22
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +2 -445
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/launch-bridge-hooks.d.ts +5 -56
- package/dist/commands/launch-bridge-hooks.d.ts.map +1 -1
- package/dist/commands/launch-bridge-hooks.js +4 -224
- package/dist/commands/launch-bridge-hooks.js.map +1 -1
- package/dist/commands/launch-completion-engine.d.ts +4 -4
- package/dist/commands/launch-completion-engine.d.ts.map +1 -1
- package/dist/commands/launch-completion-engine.js +4 -4
- package/dist/commands/launch-completion-engine.js.map +1 -1
- package/dist/commands/launch.d.ts +5 -54
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +4 -910
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -1
- package/dist/commands/models.d.ts +1 -1
- package/dist/commands/models.js +1 -1
- package/dist/commands/plugin.d.ts +1 -1
- package/dist/commands/profiles.d.ts +1 -1
- package/dist/commands/profiles.js +1 -1
- package/dist/commands/remote.d.ts +1 -1
- package/dist/commands/remote.js +1 -1
- package/dist/commands/run.d.ts +1 -1
- package/dist/commands/run.js +1 -1
- package/dist/commands/sessions.d.ts +1 -1
- package/dist/commands/sessions.js +1 -1
- package/dist/commands/skill.d.ts +1 -1
- package/dist/commands/tui.d.ts +1 -1
- package/dist/commands/workspaces.d.ts +1 -1
- package/dist/commands/workspaces.js +1 -1
- package/dist/exit-codes.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/package.json +16 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-host.js","sourceRoot":"","sources":["../../src/commands/detect-host.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"detect-host.js","sourceRoot":"","sources":["../../src/commands/detect-host.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { AgentMuxClient } from '@a5c-ai/agent-mux
|
|
1
|
+
import type { AgentMuxClient } from '@a5c-ai/agent-comm-mux';
|
|
2
2
|
import type { ParsedArgs } from '../parse-args.js';
|
|
3
3
|
export declare function doctorCommand(client: AgentMuxClient, args: ParsedArgs): Promise<number>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentMuxClient } from '@a5c-ai/agent-mux
|
|
1
|
+
import type { AgentMuxClient } from '@a5c-ai/agent-comm-mux';
|
|
2
2
|
import type { ParsedArgs } from '../../parse-args.js';
|
|
3
3
|
import type { FlagDef } from '../../parse-args.js';
|
|
4
4
|
export declare const GATEWAY_FLAGS: Record<string, FlagDef>;
|
package/dist/commands/hooks.d.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* set <id> [--priority N] [--enabled true|false] [--target <t>]
|
|
10
10
|
* handle <hookType> Read JSON payload on stdin, dispatch, emit unified result.
|
|
11
11
|
*/
|
|
12
|
-
import type { AgentMuxClient } from '@a5c-ai/agent-mux
|
|
12
|
+
import type { AgentMuxClient } from '@a5c-ai/agent-comm-mux';
|
|
13
13
|
import type { ParsedArgs } from '../parse-args.js';
|
|
14
14
|
import type { FlagDef } from '../parse-args.js';
|
|
15
15
|
export declare const HOOKS_FLAGS: Record<string, FlagDef>;
|
package/dist/commands/hooks.js
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* set <id> [--priority N] [--enabled true|false] [--target <t>]
|
|
10
10
|
* handle <hookType> Read JSON payload on stdin, dispatch, emit unified result.
|
|
11
11
|
*/
|
|
12
|
-
import { HookConfigManager, HookDispatcher, builtInHooks, getHookCatalog, parseHookPayload, formatHookResult, } from '@a5c-ai/agent-mux
|
|
12
|
+
import { HookConfigManager, HookDispatcher, builtInHooks, getHookCatalog, parseHookPayload, formatHookResult, } from '@a5c-ai/agent-comm-mux';
|
|
13
13
|
import { flagBool, flagStr } from '../parse-args.js';
|
|
14
14
|
import { ExitCode } from '../exit-codes.js';
|
|
15
15
|
import { printError, printJsonError, printJsonOk, printTable, } from '../output.js';
|
|
@@ -1,24 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Split out to keep `install.ts` under the max-file-lines budget.
|
|
2
|
+
* Re-export shim — install helpers now live in @a5c-ai/agent-config-mux.
|
|
4
3
|
*/
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
stdout: string;
|
|
8
|
-
stderr: string;
|
|
9
|
-
}>;
|
|
10
|
-
/**
|
|
11
|
-
* Create a SpawnRunner. When `echo` is true, child output is mirrored to
|
|
12
|
-
* the CLI's stdout/stderr (useful for long-running install commands in
|
|
13
|
-
* human mode). When false (default for JSON/detect), child output is
|
|
14
|
-
* captured silently so it doesn't contaminate structured output.
|
|
15
|
-
*/
|
|
16
|
-
export declare function makeSpawnRunner(echo: boolean): SpawnRunner;
|
|
17
|
-
export declare const defaultSpawnRunner: SpawnRunner;
|
|
18
|
-
export declare const silentSpawnRunner: SpawnRunner;
|
|
19
|
-
/**
|
|
20
|
-
* Temporarily swallow writes to process.stdout/stderr while `fn` runs.
|
|
21
|
-
* Used to suppress per-agent JSON envelopes when `--all --json` aggregates
|
|
22
|
-
* results into a single response.
|
|
23
|
-
*/
|
|
24
|
-
export declare function runSilently<T>(fn: () => Promise<T>): Promise<T>;
|
|
4
|
+
export { makeSpawnRunner, defaultSpawnRunner, silentSpawnRunner, runSilently, } from '@a5c-ai/agent-config-mux';
|
|
5
|
+
export type { SpawnRunner } from '@a5c-ai/agent-config-mux';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/install-helpers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"install-helpers.d.ts","sourceRoot":"","sources":["../../src/commands/install-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAElC,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,58 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Split out to keep `install.ts` under the max-file-lines budget.
|
|
2
|
+
* Re-export shim — install helpers now live in @a5c-ai/agent-config-mux.
|
|
4
3
|
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Create a SpawnRunner. When `echo` is true, child output is mirrored to
|
|
8
|
-
* the CLI's stdout/stderr (useful for long-running install commands in
|
|
9
|
-
* human mode). When false (default for JSON/detect), child output is
|
|
10
|
-
* captured silently so it doesn't contaminate structured output.
|
|
11
|
-
*/
|
|
12
|
-
export function makeSpawnRunner(echo) {
|
|
13
|
-
return (command, args) => new Promise((resolve, reject) => {
|
|
14
|
-
const child = spawn(command, args, {
|
|
15
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
16
|
-
shell: false,
|
|
17
|
-
windowsHide: true,
|
|
18
|
-
});
|
|
19
|
-
let stdout = '';
|
|
20
|
-
let stderr = '';
|
|
21
|
-
child.stdout?.setEncoding('utf8');
|
|
22
|
-
child.stderr?.setEncoding('utf8');
|
|
23
|
-
child.stdout?.on('data', (c) => {
|
|
24
|
-
stdout += c;
|
|
25
|
-
if (echo)
|
|
26
|
-
process.stdout.write(c);
|
|
27
|
-
});
|
|
28
|
-
child.stderr?.on('data', (c) => {
|
|
29
|
-
stderr += c;
|
|
30
|
-
if (echo)
|
|
31
|
-
process.stderr.write(c);
|
|
32
|
-
});
|
|
33
|
-
child.on('error', (err) => reject(err));
|
|
34
|
-
child.on('exit', (code) => resolve({ code: code ?? 1, stdout, stderr }));
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
export const defaultSpawnRunner = makeSpawnRunner(true);
|
|
38
|
-
export const silentSpawnRunner = makeSpawnRunner(false);
|
|
39
|
-
/**
|
|
40
|
-
* Temporarily swallow writes to process.stdout/stderr while `fn` runs.
|
|
41
|
-
* Used to suppress per-agent JSON envelopes when `--all --json` aggregates
|
|
42
|
-
* results into a single response.
|
|
43
|
-
*/
|
|
44
|
-
export async function runSilently(fn) {
|
|
45
|
-
const origOut = process.stdout.write.bind(process.stdout);
|
|
46
|
-
const origErr = process.stderr.write.bind(process.stderr);
|
|
47
|
-
const noop = ((..._a) => true);
|
|
48
|
-
process.stdout.write = noop;
|
|
49
|
-
process.stderr.write = noop;
|
|
50
|
-
try {
|
|
51
|
-
return await fn();
|
|
52
|
-
}
|
|
53
|
-
finally {
|
|
54
|
-
process.stdout.write = origOut;
|
|
55
|
-
process.stderr.write = origErr;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
4
|
+
export { makeSpawnRunner, defaultSpawnRunner, silentSpawnRunner, runSilently, } from '@a5c-ai/agent-config-mux';
|
|
58
5
|
//# sourceMappingURL=install-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-helpers.js","sourceRoot":"","sources":["../../src/commands/install-helpers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"install-helpers.js","sourceRoot":"","sources":["../../src/commands/install-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,GACZ,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,24 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
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
|
|
2
|
+
* Re-export shim — install logic now lives in @a5c-ai/agent-config-mux.
|
|
9
3
|
*/
|
|
10
|
-
|
|
11
|
-
import type { ParsedArgs, FlagDef } from '../parse-args.js';
|
|
12
|
-
import { type SpawnRunner as HelperSpawnRunner } from './install-helpers.js';
|
|
13
|
-
/** Flags recognized by the install/uninstall/update/detect commands. */
|
|
14
|
-
export declare const INSTALL_FLAGS: Record<string, FlagDef>;
|
|
15
|
-
export type SpawnRunner = HelperSpawnRunner;
|
|
16
|
-
export interface InstallCommandDeps {
|
|
17
|
-
/** Back-compat: overrides the adapter's internal Spawner for this run. */
|
|
18
|
-
spawnRunner?: SpawnRunner;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Handle `amux install [<agent>] [--all]`, `amux update [<agent>] [--all]`,
|
|
22
|
-
* `amux detect [<agent>] [--all]`, and `amux uninstall <agent>`.
|
|
23
|
-
*/
|
|
24
|
-
export declare function installCommand(client: AgentMuxClient, args: ParsedArgs, deps?: InstallCommandDeps): Promise<number>;
|
|
4
|
+
export { installCommand, INSTALL_FLAGS, type SpawnRunner, type InstallCommandDeps, } from '@a5c-ai/agent-config-mux';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,cAAc,EACd,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,0BAA0B,CAAC"}
|
package/dist/commands/install.js
CHANGED
|
@@ -1,448 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
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
|
|
2
|
+
* Re-export shim — install logic now lives in @a5c-ai/agent-config-mux.
|
|
9
3
|
*/
|
|
10
|
-
|
|
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
|
-
if (mode === 'detect' && jsonMode) {
|
|
287
|
-
const detectResults = await Promise.all(registered.map(async (info) => {
|
|
288
|
-
const adapter = client.adapters.get(info.agent);
|
|
289
|
-
if (!adapter) {
|
|
290
|
-
return {
|
|
291
|
-
agent: info.agent,
|
|
292
|
-
exitCode: errorCodeToExitCode('UNKNOWN_AGENT'),
|
|
293
|
-
error: `Unknown agent: ${info.agent}`,
|
|
294
|
-
};
|
|
295
|
-
}
|
|
296
|
-
injectSpawner(adapter, spawner);
|
|
297
|
-
try {
|
|
298
|
-
const detected = adapter.detectInstallation
|
|
299
|
-
? await adapter.detectInstallation()
|
|
300
|
-
: { installed: false, notes: 'detectInstallation() not implemented' };
|
|
301
|
-
return {
|
|
302
|
-
agent: info.agent,
|
|
303
|
-
exitCode: ExitCode.SUCCESS,
|
|
304
|
-
installed: detected.installed,
|
|
305
|
-
version: detected.version,
|
|
306
|
-
path: detected.path,
|
|
307
|
-
notes: detected.notes,
|
|
308
|
-
};
|
|
309
|
-
}
|
|
310
|
-
catch (err) {
|
|
311
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
312
|
-
return {
|
|
313
|
-
agent: info.agent,
|
|
314
|
-
exitCode: ExitCode.GENERAL_ERROR,
|
|
315
|
-
error: `Detect failed: ${msg}`,
|
|
316
|
-
};
|
|
317
|
-
}
|
|
318
|
-
}));
|
|
319
|
-
for (const result of detectResults) {
|
|
320
|
-
results.push(result);
|
|
321
|
-
if (result.exitCode !== ExitCode.SUCCESS && overall === ExitCode.SUCCESS) {
|
|
322
|
-
overall = ExitCode.GENERAL_ERROR;
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
printJsonOk({ results });
|
|
326
|
-
return overall;
|
|
327
|
-
}
|
|
328
|
-
for (const info of registered) {
|
|
329
|
-
if (!jsonMode)
|
|
330
|
-
process.stdout.write(`\n=== ${info.agent} ===\n`);
|
|
331
|
-
let code;
|
|
332
|
-
// In JSON mode, silence stdout/stderr while each per-agent handler
|
|
333
|
-
// runs so their envelopes don't contaminate the aggregate JSON
|
|
334
|
-
// response emitted at the end. Exit codes are still captured.
|
|
335
|
-
const run = async () => {
|
|
336
|
-
if (mode === 'install') {
|
|
337
|
-
return installOne(client, info.agent, spawner, opts, jsonMode);
|
|
338
|
-
}
|
|
339
|
-
else if (mode === 'update') {
|
|
340
|
-
return updateOne(client, info.agent, spawner, { dryRun: opts.dryRun }, jsonMode);
|
|
341
|
-
}
|
|
342
|
-
return detectOne(client, info.agent, spawner, jsonMode);
|
|
343
|
-
};
|
|
344
|
-
code = jsonMode ? await runSilently(run) : await run();
|
|
345
|
-
results.push({ agent: info.agent, exitCode: code });
|
|
346
|
-
if (code !== ExitCode.SUCCESS && overall === ExitCode.SUCCESS) {
|
|
347
|
-
overall = ExitCode.GENERAL_ERROR;
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
if (jsonMode)
|
|
351
|
-
printJsonOk({ results });
|
|
352
|
-
return overall;
|
|
353
|
-
}
|
|
354
|
-
// ---------------------------------------------------------------------------
|
|
355
|
-
// uninstall <agent>
|
|
356
|
-
// ---------------------------------------------------------------------------
|
|
357
|
-
async function uninstallOne(client, agent, spawnRunner, jsonMode) {
|
|
358
|
-
const adapter = client.adapters.get(agent);
|
|
359
|
-
if (!adapter) {
|
|
360
|
-
const msg = `Unknown agent: ${agent}`;
|
|
361
|
-
if (jsonMode)
|
|
362
|
-
printJsonError('UNKNOWN_AGENT', msg);
|
|
363
|
-
else
|
|
364
|
-
printError(msg);
|
|
365
|
-
return errorCodeToExitCode('UNKNOWN_AGENT');
|
|
366
|
-
}
|
|
367
|
-
const methods = safeInstallInstructions(client, agent);
|
|
368
|
-
const npmMethod = methods.find((m) => m.type === 'npm');
|
|
369
|
-
const brewMethod = methods.find((m) => m.type === 'brew');
|
|
370
|
-
let cmd = null;
|
|
371
|
-
let argsList = [];
|
|
372
|
-
if (npmMethod) {
|
|
373
|
-
const parts = npmMethod.command.split(/\s+/).filter(Boolean);
|
|
374
|
-
const pkg = parts[parts.length - 1];
|
|
375
|
-
if (pkg) {
|
|
376
|
-
cmd = 'npm';
|
|
377
|
-
argsList = ['uninstall', '-g', pkg];
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
else if (brewMethod) {
|
|
381
|
-
const parts = brewMethod.command.split(/\s+/).filter(Boolean);
|
|
382
|
-
const pkg = parts[parts.length - 1];
|
|
383
|
-
if (pkg) {
|
|
384
|
-
cmd = 'brew';
|
|
385
|
-
argsList = ['uninstall', pkg];
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
if (!cmd) {
|
|
389
|
-
const msg = `No supported uninstall method for agent "${agent}".`;
|
|
390
|
-
if (jsonMode)
|
|
391
|
-
printJsonError('VALIDATION_ERROR', msg);
|
|
392
|
-
else
|
|
393
|
-
printError(msg);
|
|
394
|
-
return ExitCode.GENERAL_ERROR;
|
|
395
|
-
}
|
|
396
|
-
if (!jsonMode) {
|
|
397
|
-
process.stdout.write(`Uninstalling ${agent} via: ${cmd} ${argsList.join(' ')}\n`);
|
|
398
|
-
}
|
|
399
|
-
try {
|
|
400
|
-
const result = await spawnRunner(cmd, argsList);
|
|
401
|
-
if (result.code !== 0) {
|
|
402
|
-
const msg = `Uninstall command exited with code ${result.code}`;
|
|
403
|
-
if (jsonMode)
|
|
404
|
-
printJsonError('INTERNAL', msg);
|
|
405
|
-
else
|
|
406
|
-
printError(msg);
|
|
407
|
-
return ExitCode.GENERAL_ERROR;
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
catch (err) {
|
|
411
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
412
|
-
if (jsonMode)
|
|
413
|
-
printJsonError('INTERNAL', `Uninstall failed: ${msg}`);
|
|
414
|
-
else
|
|
415
|
-
printError(`Uninstall failed: ${msg}`);
|
|
416
|
-
return ExitCode.GENERAL_ERROR;
|
|
417
|
-
}
|
|
418
|
-
if (jsonMode)
|
|
419
|
-
printJsonOk({ agent, uninstalled: true });
|
|
420
|
-
else
|
|
421
|
-
process.stdout.write(`${agent} uninstalled.\n`);
|
|
422
|
-
return ExitCode.SUCCESS;
|
|
423
|
-
}
|
|
424
|
-
// ---------------------------------------------------------------------------
|
|
425
|
-
// Helpers
|
|
426
|
-
// ---------------------------------------------------------------------------
|
|
427
|
-
function safeInstallInstructions(client, agent) {
|
|
428
|
-
try {
|
|
429
|
-
return client.adapters.installInstructions(agent);
|
|
430
|
-
}
|
|
431
|
-
catch {
|
|
432
|
-
return [];
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
/** Adapt a CLI-level SpawnRunner to the adapter-level Spawner interface. */
|
|
436
|
-
function toAdapterSpawner(runner) {
|
|
437
|
-
return (command, args, _opts) => runner(command, args);
|
|
438
|
-
}
|
|
439
|
-
/** Attach a Spawner to a BaseAgentAdapter (duck-typed via setSpawner). */
|
|
440
|
-
function injectSpawner(adapter, spawner) {
|
|
441
|
-
const a = adapter;
|
|
442
|
-
if (typeof a.setSpawner === 'function') {
|
|
443
|
-
a.setSpawner(spawner);
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
// Silence unused imports for AgentMuxError (kept for compatibility).
|
|
447
|
-
void AgentMuxError;
|
|
4
|
+
export { installCommand, INSTALL_FLAGS, } from '@a5c-ai/agent-config-mux';
|
|
448
5
|
//# sourceMappingURL=install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,cAAc,EACd,aAAa,GAGd,MAAM,0BAA0B,CAAC"}
|