@a5c-ai/agent-config-mux 5.0.1-staging.7495ef6c9fa0

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/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # @a5c-ai/agent-config-mux
2
+
3
+ Agent config mux — install, auth, host detection, and adapter configuration for the agent-mux ecosystem.
4
+
5
+ Extracted from `@a5c-ai/agent-mux-cli` as part of the agent-mux decomposition (#211).
@@ -0,0 +1,8 @@
1
+ /**
2
+ * `amux adapters` subcommands.
3
+ *
4
+ * @see docs/10-cli-reference.md Section 8
5
+ */
6
+ import type { AgentMuxClient } from '@a5c-ai/agent-comm-mux';
7
+ import type { ParsedArgs } from './cli-helpers.js';
8
+ export declare function adaptersCommand(client: AgentMuxClient, args: ParsedArgs): Promise<number>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.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,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAwC/F"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * `amux adapters` subcommands.
3
+ *
4
+ * @see docs/10-cli-reference.md Section 8
5
+ */
6
+ import { AgentMuxError } from '@a5c-ai/agent-comm-mux';
7
+ import { flagBool, flagStr } from './cli-helpers.js';
8
+ import { ExitCode, errorCodeToExitCode } from './cli-helpers.js';
9
+ import { printTable, printKeyValue, printJsonOk, printJsonError, printError, } from './cli-helpers.js';
10
+ export async function adaptersCommand(client, args) {
11
+ const sub = args.subcommand;
12
+ const jsonMode = flagBool(args.flags, 'json') === true;
13
+ if (!sub || sub === 'list') {
14
+ return adaptersList(client, jsonMode);
15
+ }
16
+ if (sub === 'detect') {
17
+ const agent = args.positionals[0] ?? flagStr(args.flags, 'agent');
18
+ if (!agent) {
19
+ if (jsonMode) {
20
+ printJsonError('VALIDATION_ERROR', 'Missing required argument: <agent>');
21
+ }
22
+ else {
23
+ printError('Missing required argument: <agent>');
24
+ }
25
+ return ExitCode.USAGE_ERROR;
26
+ }
27
+ return adaptersDetect(client, agent, jsonMode);
28
+ }
29
+ if (sub === 'info') {
30
+ const agent = args.positionals[0] ?? flagStr(args.flags, 'agent');
31
+ if (!agent) {
32
+ if (jsonMode) {
33
+ printJsonError('VALIDATION_ERROR', 'Missing required argument: <agent>');
34
+ }
35
+ else {
36
+ printError('Missing required argument: <agent>');
37
+ }
38
+ return ExitCode.USAGE_ERROR;
39
+ }
40
+ return adaptersInfo(client, agent, jsonMode);
41
+ }
42
+ if (jsonMode) {
43
+ printJsonError('VALIDATION_ERROR', `Unknown subcommand: adapters ${sub}`);
44
+ }
45
+ else {
46
+ printError(`Unknown subcommand: adapters ${sub}`);
47
+ }
48
+ return ExitCode.USAGE_ERROR;
49
+ }
50
+ async function adaptersList(client, jsonMode) {
51
+ try {
52
+ const adapters = client.adapters.list();
53
+ if (jsonMode) {
54
+ printJsonOk(adapters);
55
+ return ExitCode.SUCCESS;
56
+ }
57
+ const rows = adapters.map((a) => [
58
+ a.agent,
59
+ a.displayName ?? a.agent,
60
+ a.source ?? 'built-in',
61
+ ]);
62
+ printTable(['Agent', 'Display Name', 'Source'], rows);
63
+ return ExitCode.SUCCESS;
64
+ }
65
+ catch (err) {
66
+ return handleError(err, jsonMode);
67
+ }
68
+ }
69
+ async function adaptersDetect(client, agent, jsonMode) {
70
+ try {
71
+ const info = await client.adapters.detect(agent);
72
+ if (jsonMode) {
73
+ printJsonOk(info);
74
+ return ExitCode.SUCCESS;
75
+ }
76
+ if (!info) {
77
+ printKeyValue([
78
+ ['Agent:', agent],
79
+ ['Installed:', 'no'],
80
+ ]);
81
+ return ExitCode.SUCCESS;
82
+ }
83
+ printKeyValue([
84
+ ['Agent:', info.agent],
85
+ ['Installed:', info.installed ? 'yes' : 'no'],
86
+ ['Path:', info.cliPath ?? '--'],
87
+ ['Version:', info.version ?? '--'],
88
+ ]);
89
+ return ExitCode.SUCCESS;
90
+ }
91
+ catch (err) {
92
+ return handleError(err, jsonMode);
93
+ }
94
+ }
95
+ async function adaptersInfo(client, agent, jsonMode) {
96
+ try {
97
+ const caps = client.adapters.capabilities(agent);
98
+ if (jsonMode) {
99
+ printJsonOk(caps);
100
+ return ExitCode.SUCCESS;
101
+ }
102
+ const entries = [];
103
+ for (const [key, value] of Object.entries(caps)) {
104
+ entries.push([`${key}:`, String(value)]);
105
+ }
106
+ printKeyValue(entries);
107
+ return ExitCode.SUCCESS;
108
+ }
109
+ catch (err) {
110
+ return handleError(err, jsonMode);
111
+ }
112
+ }
113
+ function handleError(err, jsonMode) {
114
+ if (err instanceof AgentMuxError) {
115
+ if (jsonMode) {
116
+ printJsonError(err.code, err.message, err.recoverable);
117
+ }
118
+ else {
119
+ printError(err.message);
120
+ }
121
+ return errorCodeToExitCode(err.code);
122
+ }
123
+ const message = err instanceof Error ? err.message : String(err);
124
+ if (jsonMode) {
125
+ printJsonError('INTERNAL', message);
126
+ }
127
+ else {
128
+ printError(message);
129
+ }
130
+ return ExitCode.GENERAL_ERROR;
131
+ }
132
+ //# sourceMappingURL=adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * `amux auth` subcommands.
3
+ *
4
+ * @see docs/10-cli-reference.md Section 18
5
+ */
6
+ import type { AgentMuxClient } from '@a5c-ai/agent-comm-mux';
7
+ import type { ParsedArgs } from './cli-helpers.js';
8
+ export declare function authCommand(client: AgentMuxClient, args: ParsedArgs): Promise<number>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.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,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAqC3F"}
package/dist/auth.js ADDED
@@ -0,0 +1,137 @@
1
+ /**
2
+ * `amux auth` subcommands.
3
+ *
4
+ * @see docs/10-cli-reference.md Section 18
5
+ */
6
+ import { AgentMuxError } from '@a5c-ai/agent-comm-mux';
7
+ import { flagBool, flagStr } from './cli-helpers.js';
8
+ import { ExitCode, errorCodeToExitCode } from './cli-helpers.js';
9
+ import { printTable, printKeyValue, printJsonOk, printJsonError, printError, toPlain, } from './cli-helpers.js';
10
+ export async function authCommand(client, args) {
11
+ const sub = args.subcommand;
12
+ const jsonMode = flagBool(args.flags, 'json') === true;
13
+ if (sub === 'check') {
14
+ const agent = args.positionals[0] ?? flagStr(args.flags, 'agent');
15
+ return authCheck(client, agent, jsonMode);
16
+ }
17
+ if (sub === 'setup') {
18
+ const agent = args.positionals[0] ?? flagStr(args.flags, 'agent');
19
+ if (!agent) {
20
+ if (jsonMode) {
21
+ printJsonError('VALIDATION_ERROR', 'Missing required argument: <agent>');
22
+ }
23
+ else {
24
+ printError('Missing required argument: <agent>');
25
+ }
26
+ return ExitCode.USAGE_ERROR;
27
+ }
28
+ return authSetup(client, agent, jsonMode);
29
+ }
30
+ if (!sub) {
31
+ if (jsonMode) {
32
+ printJsonError('VALIDATION_ERROR', 'Missing subcommand. Available: check, setup');
33
+ }
34
+ else {
35
+ printError('Missing subcommand. Available: check, setup');
36
+ }
37
+ return ExitCode.USAGE_ERROR;
38
+ }
39
+ if (jsonMode) {
40
+ printJsonError('VALIDATION_ERROR', `Unknown subcommand: auth ${sub}`);
41
+ }
42
+ else {
43
+ printError(`Unknown subcommand: auth ${sub}`);
44
+ }
45
+ return ExitCode.USAGE_ERROR;
46
+ }
47
+ async function authCheck(client, agent, jsonMode) {
48
+ try {
49
+ if (agent) {
50
+ const state = await client.auth.check(agent);
51
+ if (jsonMode) {
52
+ printJsonOk(state);
53
+ return ExitCode.SUCCESS;
54
+ }
55
+ const s = toPlain(state);
56
+ printKeyValue([
57
+ ['Agent:', agent],
58
+ ['Status:', String(s['status'] ?? '--')],
59
+ ['Method:', String(s['method'] ?? '--')],
60
+ ['Identity:', String(s['identity'] ?? '--')],
61
+ ]);
62
+ return ExitCode.SUCCESS;
63
+ }
64
+ // Check all agents
65
+ const allStates = await client.auth.checkAll();
66
+ if (jsonMode) {
67
+ printJsonOk(allStates);
68
+ return ExitCode.SUCCESS;
69
+ }
70
+ const entries = Object.entries(allStates);
71
+ const rows = entries.map(([name, state]) => {
72
+ const s = toPlain(state);
73
+ return [
74
+ name,
75
+ String(s['status'] ?? '--'),
76
+ String(s['method'] ?? '--'),
77
+ String(s['identity'] ?? '--'),
78
+ ];
79
+ });
80
+ printTable(['Agent', 'Status', 'Method', 'Identity'], rows);
81
+ return ExitCode.SUCCESS;
82
+ }
83
+ catch (err) {
84
+ return handleError(err, jsonMode);
85
+ }
86
+ }
87
+ async function authSetup(client, agent, jsonMode) {
88
+ try {
89
+ const guidance = await client.auth.getSetupGuidance(agent);
90
+ if (jsonMode) {
91
+ printJsonOk(guidance);
92
+ return ExitCode.SUCCESS;
93
+ }
94
+ const g = toPlain(guidance);
95
+ process.stdout.write(`Authentication setup for ${agent}\n\n`);
96
+ if (g['steps'] && Array.isArray(g['steps'])) {
97
+ const steps = g['steps'];
98
+ for (let i = 0; i < steps.length; i++) {
99
+ const step = steps[i];
100
+ process.stdout.write(`${i + 1}. ${step['description'] ?? step['instruction'] ?? String(step)}\n`);
101
+ }
102
+ }
103
+ if (g['envVars'] && Array.isArray(g['envVars'])) {
104
+ process.stdout.write('\nEnvironment variables:\n');
105
+ for (const v of g['envVars']) {
106
+ process.stdout.write(` ${v}\n`);
107
+ }
108
+ }
109
+ if (g['docsUrl']) {
110
+ process.stdout.write(`\nDocumentation: ${g['docsUrl']}\n`);
111
+ }
112
+ return ExitCode.SUCCESS;
113
+ }
114
+ catch (err) {
115
+ return handleError(err, jsonMode);
116
+ }
117
+ }
118
+ function handleError(err, jsonMode) {
119
+ if (err instanceof AgentMuxError) {
120
+ if (jsonMode) {
121
+ printJsonError(err.code, err.message, err.recoverable);
122
+ }
123
+ else {
124
+ printError(err.message);
125
+ }
126
+ return errorCodeToExitCode(err.code);
127
+ }
128
+ const message = err instanceof Error ? err.message : String(err);
129
+ if (jsonMode) {
130
+ printJsonError('INTERNAL', message);
131
+ }
132
+ else {
133
+ printError(message);
134
+ }
135
+ return ExitCode.GENERAL_ERROR;
136
+ }
137
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Lightweight CLI helper utilities extracted from agent-mux-cli.
3
+ *
4
+ * These are self-contained copies of the flag-parsing helpers, exit codes,
5
+ * and output helpers that the config module needs, avoiding a circular
6
+ * dependency back to the CLI package.
7
+ */
8
+ import type { ErrorCode } from '@a5c-ai/agent-comm-mux';
9
+ /** Parsed CLI arguments. */
10
+ export interface ParsedArgs {
11
+ /** The command (e.g., 'run', 'adapters'). */
12
+ command: string | undefined;
13
+ /** The subcommand (e.g., 'list', 'show'). */
14
+ subcommand: string | undefined;
15
+ /** Remaining positional arguments after command/subcommand. */
16
+ positionals: string[];
17
+ /** Named flags. Boolean flags are true/false. String/number flags are strings. */
18
+ flags: Record<string, string | boolean | string[]>;
19
+ }
20
+ /** Known flag definition for the parser. */
21
+ export interface FlagDef {
22
+ /** Short alias (single character). */
23
+ short?: string;
24
+ /** Flag type. */
25
+ type: 'boolean' | 'string' | 'number';
26
+ /** Whether the flag can be specified multiple times. */
27
+ repeatable?: boolean;
28
+ }
29
+ /** CLI exit code constants. */
30
+ export declare const ExitCode: {
31
+ readonly SUCCESS: 0;
32
+ readonly GENERAL_ERROR: 1;
33
+ readonly USAGE_ERROR: 2;
34
+ readonly AGENT_NOT_FOUND: 3;
35
+ readonly AGENT_NOT_INSTALLED: 4;
36
+ readonly AUTH_ERROR: 5;
37
+ readonly CAPABILITY_ERROR: 6;
38
+ readonly CONFIG_ERROR: 7;
39
+ readonly SESSION_NOT_FOUND: 8;
40
+ readonly PROFILE_NOT_FOUND: 9;
41
+ readonly PLUGIN_ERROR: 10;
42
+ readonly TIMEOUT: 11;
43
+ readonly AGENT_CRASHED: 12;
44
+ readonly ABORTED: 13;
45
+ readonly RATE_LIMITED: 14;
46
+ readonly CONTEXT_EXCEEDED: 15;
47
+ };
48
+ export type ExitCodeValue = (typeof ExitCode)[keyof typeof ExitCode];
49
+ /**
50
+ * Map an ErrorCode to an exit code.
51
+ */
52
+ export declare function errorCodeToExitCode(code: ErrorCode): ExitCodeValue;
53
+ /**
54
+ * Get a flag value as a string, or undefined.
55
+ */
56
+ export declare function flagStr(flags: Record<string, string | boolean | string[]>, name: string): string | undefined;
57
+ /**
58
+ * Get a flag value as a boolean.
59
+ */
60
+ export declare function flagBool(flags: Record<string, string | boolean | string[]>, name: string): boolean | undefined;
61
+ export declare function setColorEnabled(enabled: boolean): void;
62
+ /**
63
+ * Print a table in human-readable format.
64
+ */
65
+ export declare function printTable(headers: string[], rows: string[][]): void;
66
+ /**
67
+ * Print key-value pairs in human-readable format.
68
+ */
69
+ export declare function printKeyValue(pairs: [string, string][]): void;
70
+ /**
71
+ * Convert a typed object into a plain Record<string, unknown>.
72
+ */
73
+ export declare function toPlain<T>(value: T): Record<string, unknown>;
74
+ /**
75
+ * Print JSON output.
76
+ */
77
+ export declare function printJson(data: unknown): void;
78
+ /**
79
+ * Print a JSON-wrapped success response.
80
+ */
81
+ export declare function printJsonOk(data: unknown): void;
82
+ /**
83
+ * Print a JSON-wrapped error response.
84
+ */
85
+ export declare function printJsonError(code: string, message: string, recoverable?: boolean): void;
86
+ /**
87
+ * Print an error message to stderr.
88
+ */
89
+ export declare function printError(message: string): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-helpers.d.ts","sourceRoot":"","sources":["../src/cli-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD,4BAA4B;AAC5B,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B,6CAA6C;IAC7C,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B,+DAA+D;IAC/D,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;CACpD;AAED,4CAA4C;AAC5C,MAAM,WAAW,OAAO;IACtB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iBAAiB;IACjB,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAEtC,wDAAwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAMD,+BAA+B;AAC/B,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;CAiBX,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAErE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAqClE;AAMD;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK5G;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAM9G;AASD,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEtD;AAmBD;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CA6BpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,CAU7D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE5D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,IAAI,CAEhG;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD"}
@@ -0,0 +1,194 @@
1
+ /**
2
+ * Lightweight CLI helper utilities extracted from agent-mux-cli.
3
+ *
4
+ * These are self-contained copies of the flag-parsing helpers, exit codes,
5
+ * and output helpers that the config module needs, avoiding a circular
6
+ * dependency back to the CLI package.
7
+ */
8
+ // ---------------------------------------------------------------------------
9
+ // Exit codes
10
+ // ---------------------------------------------------------------------------
11
+ /** CLI exit code constants. */
12
+ export const ExitCode = {
13
+ SUCCESS: 0,
14
+ GENERAL_ERROR: 1,
15
+ USAGE_ERROR: 2,
16
+ AGENT_NOT_FOUND: 3,
17
+ AGENT_NOT_INSTALLED: 4,
18
+ AUTH_ERROR: 5,
19
+ CAPABILITY_ERROR: 6,
20
+ CONFIG_ERROR: 7,
21
+ SESSION_NOT_FOUND: 8,
22
+ PROFILE_NOT_FOUND: 9,
23
+ PLUGIN_ERROR: 10,
24
+ TIMEOUT: 11,
25
+ AGENT_CRASHED: 12,
26
+ ABORTED: 13,
27
+ RATE_LIMITED: 14,
28
+ CONTEXT_EXCEEDED: 15,
29
+ };
30
+ /**
31
+ * Map an ErrorCode to an exit code.
32
+ */
33
+ export function errorCodeToExitCode(code) {
34
+ switch (code) {
35
+ case 'VALIDATION_ERROR':
36
+ return ExitCode.USAGE_ERROR;
37
+ case 'AGENT_NOT_FOUND':
38
+ case 'UNKNOWN_AGENT':
39
+ return ExitCode.AGENT_NOT_FOUND;
40
+ case 'AGENT_NOT_INSTALLED':
41
+ return ExitCode.AGENT_NOT_INSTALLED;
42
+ case 'AUTH_ERROR':
43
+ return ExitCode.AUTH_ERROR;
44
+ case 'CAPABILITY_ERROR':
45
+ return ExitCode.CAPABILITY_ERROR;
46
+ case 'CONFIG_ERROR':
47
+ case 'CONFIG_LOCK_ERROR':
48
+ return ExitCode.CONFIG_ERROR;
49
+ case 'SESSION_NOT_FOUND':
50
+ return ExitCode.SESSION_NOT_FOUND;
51
+ case 'PROFILE_NOT_FOUND':
52
+ return ExitCode.PROFILE_NOT_FOUND;
53
+ case 'PLUGIN_ERROR':
54
+ return ExitCode.PLUGIN_ERROR;
55
+ case 'TIMEOUT':
56
+ case 'INACTIVITY_TIMEOUT':
57
+ return ExitCode.TIMEOUT;
58
+ case 'AGENT_CRASH':
59
+ return ExitCode.AGENT_CRASHED;
60
+ case 'ABORTED':
61
+ return ExitCode.ABORTED;
62
+ case 'RATE_LIMITED':
63
+ return ExitCode.RATE_LIMITED;
64
+ case 'CONTEXT_EXCEEDED':
65
+ return ExitCode.CONTEXT_EXCEEDED;
66
+ // General error: SPAWN_ERROR, INTERNAL, PARSE_ERROR, and everything else
67
+ default:
68
+ return ExitCode.GENERAL_ERROR;
69
+ }
70
+ }
71
+ // ---------------------------------------------------------------------------
72
+ // Flag helpers
73
+ // ---------------------------------------------------------------------------
74
+ /**
75
+ * Get a flag value as a string, or undefined.
76
+ */
77
+ export function flagStr(flags, name) {
78
+ const val = flags[name];
79
+ if (typeof val === 'string')
80
+ return val;
81
+ if (Array.isArray(val) && val.length > 0)
82
+ return val[val.length - 1];
83
+ return undefined;
84
+ }
85
+ /**
86
+ * Get a flag value as a boolean.
87
+ */
88
+ export function flagBool(flags, name) {
89
+ const val = flags[name];
90
+ if (typeof val === 'boolean')
91
+ return val;
92
+ if (val === 'true')
93
+ return true;
94
+ if (val === 'false')
95
+ return false;
96
+ return undefined;
97
+ }
98
+ // ---------------------------------------------------------------------------
99
+ // Output helpers
100
+ // ---------------------------------------------------------------------------
101
+ /** Whether color output is enabled. */
102
+ let colorEnabled;
103
+ export function setColorEnabled(enabled) {
104
+ colorEnabled = enabled;
105
+ }
106
+ function isColorEnabled() {
107
+ if (colorEnabled !== undefined)
108
+ return colorEnabled;
109
+ if (process.env['NO_COLOR'])
110
+ return false;
111
+ if (!process.stdout.isTTY)
112
+ return false;
113
+ return true;
114
+ }
115
+ // ANSI codes
116
+ const RESET = '\x1b[0m';
117
+ const BOLD = '\x1b[1m';
118
+ const DIM = '\x1b[2m';
119
+ const RED = '\x1b[31m';
120
+ function c(code, text) {
121
+ return isColorEnabled() ? `${code}${text}${RESET}` : text;
122
+ }
123
+ /**
124
+ * Print a table in human-readable format.
125
+ */
126
+ export function printTable(headers, rows) {
127
+ if (rows.length === 0) {
128
+ process.stdout.write('(no results)\n');
129
+ return;
130
+ }
131
+ // Calculate column widths
132
+ const widths = headers.map((h, i) => {
133
+ let max = h.length;
134
+ for (const row of rows) {
135
+ const cell = row[i] ?? '';
136
+ if (cell.length > max)
137
+ max = cell.length;
138
+ }
139
+ return max;
140
+ });
141
+ // Print header
142
+ const headerLine = headers.map((h, i) => h.padEnd(widths[i])).join(' ');
143
+ process.stdout.write(c(BOLD, headerLine) + '\n');
144
+ // Print separator
145
+ const sep = widths.map((w) => '-'.repeat(w)).join(' ');
146
+ process.stdout.write(c(DIM, sep) + '\n');
147
+ // Print rows
148
+ for (const row of rows) {
149
+ const line = row.map((cell, i) => (cell ?? '').padEnd(widths[i])).join(' ');
150
+ process.stdout.write(line + '\n');
151
+ }
152
+ }
153
+ /**
154
+ * Print key-value pairs in human-readable format.
155
+ */
156
+ export function printKeyValue(pairs) {
157
+ if (pairs.length === 0)
158
+ return;
159
+ const maxKeyLen = Math.max(...pairs.map(([k]) => k.length));
160
+ for (const [key, value] of pairs) {
161
+ process.stdout.write(`${c(BOLD, key.padEnd(maxKeyLen))} ${value}\n`);
162
+ }
163
+ }
164
+ /**
165
+ * Convert a typed object into a plain Record<string, unknown>.
166
+ */
167
+ export function toPlain(value) {
168
+ return JSON.parse(JSON.stringify(value));
169
+ }
170
+ /**
171
+ * Print JSON output.
172
+ */
173
+ export function printJson(data) {
174
+ process.stdout.write(JSON.stringify(data, null, 2) + '\n');
175
+ }
176
+ /**
177
+ * Print a JSON-wrapped success response.
178
+ */
179
+ export function printJsonOk(data) {
180
+ printJson({ ok: true, data });
181
+ }
182
+ /**
183
+ * Print a JSON-wrapped error response.
184
+ */
185
+ export function printJsonError(code, message, recoverable = false) {
186
+ printJson({ ok: false, error: { code, message, recoverable } });
187
+ }
188
+ /**
189
+ * Print an error message to stderr.
190
+ */
191
+ export function printError(message) {
192
+ process.stderr.write(c(RED, 'Error: ') + message + '\n');
193
+ }
194
+ //# sourceMappingURL=cli-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-helpers.js","sourceRoot":"","sources":["../src/cli-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * `amux config` subcommands.
3
+ *
4
+ * @see docs/10-cli-reference.md Section 16
5
+ */
6
+ import type { AgentMuxClient } from '@a5c-ai/agent-comm-mux';
7
+ import type { ParsedArgs } from './cli-helpers.js';
8
+ export declare function configCommand(client: AgentMuxClient, args: ParsedArgs): Promise<number>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.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,CA+E7F"}