@a5c-ai/agent-launch-mux 5.0.1-staging.016f0b0e8119

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-launch-mux
2
+
3
+ Agent launch mux — spawn/lifecycle orchestration, PTY bridge, signal handling, and completion engine 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,63 @@
1
+ /**
2
+ * Bridge hook emulation for non-interactive mode.
3
+ *
4
+ * When --bridge-hooks is set, emulates lifecycle hooks by invoking
5
+ * hooks-mux, which reads the harness's hook configuration (settings.json,
6
+ * hooks.json, etc.), resolves ALL registered handlers from ALL installed
7
+ * plugins, and executes them through the proper chain.
8
+ */
9
+ export interface BridgeHookContext {
10
+ harness: string;
11
+ cwd: string;
12
+ env: Record<string, string>;
13
+ sessionId?: string;
14
+ runsDir?: string;
15
+ verbose?: boolean;
16
+ }
17
+ export interface SessionStartResult {
18
+ runId?: string;
19
+ emulated: boolean;
20
+ }
21
+ export interface StopResult {
22
+ shouldContinue: boolean;
23
+ resumeId?: string;
24
+ emulated: boolean;
25
+ }
26
+ export declare class BridgeHookEmulator {
27
+ private readonly ctx;
28
+ private readonly babysitterBin;
29
+ private readonly hooksMuxBin;
30
+ private readonly adapter;
31
+ private runId;
32
+ constructor(ctx: BridgeHookContext);
33
+ /**
34
+ * Invoke a hook event through hooks-mux with explicit handler commands.
35
+ *
36
+ * The bridge emulator passes handler commands directly via --handler flags,
37
+ * since there's no harness runtime to read the hook config from. The
38
+ * handlers are the same scripts that the plugin.json defines for each event.
39
+ *
40
+ * Falls back to direct babysitter CLI if hooks-mux is not available.
41
+ */
42
+ private invokeHookEvent;
43
+ /**
44
+ * Emulate the session-start lifecycle hook.
45
+ *
46
+ * Invokes hooks-mux with the SessionStart event, which reads the
47
+ * harness's hook configuration and runs all registered session-start
48
+ * handlers from all installed plugins.
49
+ */
50
+ emulateSessionStart(): Promise<SessionStartResult>;
51
+ /**
52
+ * Emulate the stop lifecycle hook.
53
+ *
54
+ * Invokes hooks-mux with the Stop event, then queries run status.
55
+ */
56
+ emulateStop(runId?: string): Promise<StopResult>;
57
+ /**
58
+ * Emulate the session-end lifecycle hook.
59
+ */
60
+ emulateSessionEnd(): Promise<void>;
61
+ /** Return the current run ID, if one was created during session-start. */
62
+ getRunId(): string | undefined;
63
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-hooks.d.ts","sourceRoot":"","sources":["../src/bridge-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AA6ED,qBAAa,kBAAkB;IAMjB,OAAO,CAAC,QAAQ,CAAC,GAAG;IALhC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,KAAK,CAAqB;gBAEL,GAAG,EAAE,iBAAiB;IAMnD;;;;;;;;OAQG;YACW,eAAe;IAiD7B;;;;;;OAMG;IACG,mBAAmB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAiCxD;;;;OAIG;IACG,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA6EtD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBxC,0EAA0E;IAC1E,QAAQ,IAAI,MAAM,GAAG,SAAS;CAG/B"}
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Bridge hook emulation for non-interactive mode.
3
+ *
4
+ * When --bridge-hooks is set, emulates lifecycle hooks by invoking
5
+ * hooks-mux, which reads the harness's hook configuration (settings.json,
6
+ * hooks.json, etc.), resolves ALL registered handlers from ALL installed
7
+ * plugins, and executes them through the proper chain.
8
+ */
9
+ import { getHookSupport } from '@a5c-ai/agent-catalog';
10
+ // ---------------------------------------------------------------------------
11
+ // Internal helpers
12
+ // ---------------------------------------------------------------------------
13
+ function resolveBabysitterBin(env) {
14
+ return env['BABYSITTER_BIN'] || 'babysitter';
15
+ }
16
+ function resolveHooksMuxBin(env) {
17
+ return env['HOOKS_MUX_BIN'] || 'a5c-hooks-mux';
18
+ }
19
+ /** Map harness name to the hooks-mux adapter name. */
20
+ function harnessToAdapter(harness) {
21
+ const map = {
22
+ 'claude-code': 'claude',
23
+ 'claude': 'claude',
24
+ 'codex': 'codex',
25
+ 'pi': 'pi',
26
+ 'gemini-cli': 'gemini',
27
+ 'gemini': 'gemini',
28
+ 'hermes': 'hermes',
29
+ 'copilot-cli': 'copilot',
30
+ 'opencode': 'opencode',
31
+ 'cursor-cli': 'cursor',
32
+ };
33
+ return map[harness] ?? harness;
34
+ }
35
+ async function execCommand(bin, args, options) {
36
+ const { execFileSync } = await import('node:child_process');
37
+ const mergedEnv = { ...process.env, ...options.env };
38
+ if (options.verbose) {
39
+ console.error(`[bridge-hooks] exec: ${bin} ${args.join(' ')}`);
40
+ }
41
+ const result = execFileSync(bin, args, {
42
+ cwd: options.cwd,
43
+ env: mergedEnv,
44
+ encoding: 'utf-8',
45
+ timeout: 30_000,
46
+ stdio: [options.stdin ? 'pipe' : 'ignore', 'pipe', 'pipe'],
47
+ input: options.stdin,
48
+ shell: process.platform === 'win32',
49
+ });
50
+ return result;
51
+ }
52
+ async function getHookSupportLevel(harness, hookName) {
53
+ const support = getHookSupport(harness, 'nonInteractive');
54
+ return support?.[hookName];
55
+ }
56
+ function parseJsonOutput(output) {
57
+ try {
58
+ return JSON.parse(output.trim());
59
+ }
60
+ catch {
61
+ return null;
62
+ }
63
+ }
64
+ // ---------------------------------------------------------------------------
65
+ // BridgeHookEmulator
66
+ // ---------------------------------------------------------------------------
67
+ export class BridgeHookEmulator {
68
+ ctx;
69
+ babysitterBin;
70
+ hooksMuxBin;
71
+ adapter;
72
+ runId;
73
+ constructor(ctx) {
74
+ this.ctx = ctx;
75
+ this.babysitterBin = resolveBabysitterBin(ctx.env);
76
+ this.hooksMuxBin = resolveHooksMuxBin(ctx.env);
77
+ this.adapter = harnessToAdapter(ctx.harness);
78
+ }
79
+ /**
80
+ * Invoke a hook event through hooks-mux with explicit handler commands.
81
+ *
82
+ * The bridge emulator passes handler commands directly via --handler flags,
83
+ * since there's no harness runtime to read the hook config from. The
84
+ * handlers are the same scripts that the plugin.json defines for each event.
85
+ *
86
+ * Falls back to direct babysitter CLI if hooks-mux is not available.
87
+ */
88
+ async invokeHookEvent(nativeEvent) {
89
+ const hookType = nativeEvent === 'SessionStart' ? 'session-start'
90
+ : nativeEvent === 'Stop' ? 'stop'
91
+ : nativeEvent === 'SessionEnd' ? 'session-end'
92
+ : nativeEvent.toLowerCase().replace(/([A-Z])/g, '-$1').replace(/^-/, '');
93
+ // Build the babysitter hook:run command that the hook script would call
94
+ const babysitterCmd = [
95
+ this.babysitterBin,
96
+ 'hook:run',
97
+ '--hook-type', hookType,
98
+ '--harness', this.ctx.harness,
99
+ '--json',
100
+ ];
101
+ if (this.ctx.runsDir) {
102
+ babysitterCmd.push('--runs-dir', this.ctx.runsDir);
103
+ }
104
+ const handlerCommand = babysitterCmd.join(' ');
105
+ try {
106
+ const args = [
107
+ 'invoke',
108
+ '--adapter', this.adapter,
109
+ '--native-event', nativeEvent,
110
+ '--handler', `${handlerCommand}:babysitter-${hookType}`,
111
+ '--json',
112
+ ];
113
+ return await execCommand(this.hooksMuxBin, args, {
114
+ cwd: this.ctx.cwd,
115
+ env: this.ctx.env,
116
+ verbose: this.ctx.verbose,
117
+ stdin: JSON.stringify({ event: nativeEvent }),
118
+ });
119
+ }
120
+ catch (err) {
121
+ if (this.ctx.verbose) {
122
+ const msg = err instanceof Error ? err.message : String(err);
123
+ console.error(`[bridge-hooks] hooks-mux invoke failed (${nativeEvent}), falling back to babysitter: ${msg}`);
124
+ }
125
+ // Fallback: direct babysitter hook:run
126
+ return await execCommand(this.babysitterBin, babysitterCmd.slice(1), {
127
+ cwd: this.ctx.cwd,
128
+ env: this.ctx.env,
129
+ verbose: this.ctx.verbose,
130
+ });
131
+ }
132
+ }
133
+ /**
134
+ * Emulate the session-start lifecycle hook.
135
+ *
136
+ * Invokes hooks-mux with the SessionStart event, which reads the
137
+ * harness's hook configuration and runs all registered session-start
138
+ * handlers from all installed plugins.
139
+ */
140
+ async emulateSessionStart() {
141
+ const level = await getHookSupportLevel(this.ctx.harness, 'sessionStart');
142
+ if (level === 'native') {
143
+ return { emulated: false };
144
+ }
145
+ if (level === 'unsupported' || level === 'emulated' || level === undefined) {
146
+ try {
147
+ const output = await this.invokeHookEvent('SessionStart');
148
+ const result = parseJsonOutput(output);
149
+ if (result?.runId) {
150
+ this.runId = result.runId;
151
+ }
152
+ if (this.ctx.verbose) {
153
+ console.error(`[bridge-hooks] session-start emulated, runId=${this.runId ?? 'none'}`);
154
+ }
155
+ return { runId: this.runId, emulated: true };
156
+ }
157
+ catch (err) {
158
+ if (this.ctx.verbose) {
159
+ const msg = err instanceof Error ? err.message : String(err);
160
+ console.error(`[bridge-hooks] session-start emulation failed: ${msg}`);
161
+ }
162
+ return { emulated: true };
163
+ }
164
+ }
165
+ return { emulated: false };
166
+ }
167
+ /**
168
+ * Emulate the stop lifecycle hook.
169
+ *
170
+ * Invokes hooks-mux with the Stop event, then queries run status.
171
+ */
172
+ async emulateStop(runId) {
173
+ const effectiveRunId = runId ?? this.runId;
174
+ const level = await getHookSupportLevel(this.ctx.harness, 'stop');
175
+ if (level === 'native') {
176
+ return { shouldContinue: false, emulated: false };
177
+ }
178
+ if (!effectiveRunId) {
179
+ if (this.ctx.verbose) {
180
+ console.error('[bridge-hooks] stop: no runId available, cannot check run state');
181
+ }
182
+ return { shouldContinue: false, emulated: true };
183
+ }
184
+ if (level === 'unsupported' || level === 'emulated' || level === undefined) {
185
+ try {
186
+ // Invoke the Stop hook through hooks-mux (all plugins)
187
+ try {
188
+ await this.invokeHookEvent('Stop');
189
+ }
190
+ catch {
191
+ // stop hook may fail if no active run — continue to status check
192
+ }
193
+ // Query run status to decide whether to continue
194
+ const runDir = this.ctx.runsDir
195
+ ? `${this.ctx.runsDir}/${effectiveRunId}`
196
+ : effectiveRunId;
197
+ const statusOutput = await execCommand(this.babysitterBin, ['run:status', runDir, '--json'], {
198
+ cwd: this.ctx.cwd,
199
+ env: this.ctx.env,
200
+ verbose: this.ctx.verbose,
201
+ });
202
+ const status = parseJsonOutput(statusOutput);
203
+ if (!status) {
204
+ if (this.ctx.verbose) {
205
+ console.error('[bridge-hooks] stop: failed to parse run:status output');
206
+ }
207
+ return { shouldContinue: false, emulated: true };
208
+ }
209
+ const isCompleted = status.state === 'completed';
210
+ const hasPending = (status.pendingEffectsSummary?.totalPending ?? 0) > 0;
211
+ const needsMore = status.needsMoreIterations === true;
212
+ const shouldContinue = !isCompleted && (hasPending || needsMore);
213
+ if (this.ctx.verbose) {
214
+ console.error(`[bridge-hooks] stop: state=${status.state}, pending=${hasPending}, ` +
215
+ `needsMore=${needsMore}, shouldContinue=${shouldContinue}`);
216
+ }
217
+ return {
218
+ shouldContinue,
219
+ resumeId: shouldContinue ? this.ctx.sessionId : undefined,
220
+ emulated: true,
221
+ };
222
+ }
223
+ catch (err) {
224
+ if (this.ctx.verbose) {
225
+ const msg = err instanceof Error ? err.message : String(err);
226
+ console.error(`[bridge-hooks] stop emulation failed: ${msg}`);
227
+ }
228
+ return { shouldContinue: false, emulated: true };
229
+ }
230
+ }
231
+ return { shouldContinue: false, emulated: false };
232
+ }
233
+ /**
234
+ * Emulate the session-end lifecycle hook.
235
+ */
236
+ async emulateSessionEnd() {
237
+ const level = await getHookSupportLevel(this.ctx.harness, 'sessionEnd');
238
+ if (level === 'native') {
239
+ return;
240
+ }
241
+ if (level === 'unsupported' || level === 'emulated' || level === undefined) {
242
+ try {
243
+ await this.invokeHookEvent('SessionEnd');
244
+ if (this.ctx.verbose) {
245
+ console.error('[bridge-hooks] session-end emulated');
246
+ }
247
+ }
248
+ catch (err) {
249
+ if (this.ctx.verbose) {
250
+ const msg = err instanceof Error ? err.message : String(err);
251
+ console.error(`[bridge-hooks] session-end emulation failed: ${msg}`);
252
+ }
253
+ }
254
+ }
255
+ }
256
+ /** Return the current run ID, if one was created during session-start. */
257
+ getRunId() {
258
+ return this.runId;
259
+ }
260
+ }
261
+ //# sourceMappingURL=bridge-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-hooks.js","sourceRoot":"","sources":["../src/bridge-hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
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 launch module needs, avoiding a circular
6
+ * dependency back to the CLI package.
7
+ */
8
+ export type { ParsedArgs, FlagDef } from './types.js';
9
+ /** CLI exit code constants. */
10
+ export declare const ExitCode: {
11
+ readonly SUCCESS: 0;
12
+ readonly GENERAL_ERROR: 1;
13
+ readonly USAGE_ERROR: 2;
14
+ readonly AGENT_NOT_FOUND: 3;
15
+ readonly AGENT_NOT_INSTALLED: 4;
16
+ readonly AUTH_ERROR: 5;
17
+ readonly CAPABILITY_ERROR: 6;
18
+ readonly CONFIG_ERROR: 7;
19
+ readonly SESSION_NOT_FOUND: 8;
20
+ readonly PROFILE_NOT_FOUND: 9;
21
+ readonly PLUGIN_ERROR: 10;
22
+ readonly TIMEOUT: 11;
23
+ readonly AGENT_CRASHED: 12;
24
+ readonly ABORTED: 13;
25
+ readonly RATE_LIMITED: 14;
26
+ readonly CONTEXT_EXCEEDED: 15;
27
+ };
28
+ export type ExitCodeValue = (typeof ExitCode)[keyof typeof ExitCode];
29
+ /**
30
+ * Get a flag value as a string, or undefined.
31
+ */
32
+ export declare function flagStr(flags: Record<string, string | boolean | string[]>, name: string): string | undefined;
33
+ /**
34
+ * Get a flag value as a number, or undefined.
35
+ */
36
+ export declare function flagNum(flags: Record<string, string | boolean | string[]>, name: string): number | undefined;
37
+ /**
38
+ * Get a flag value as a boolean.
39
+ */
40
+ export declare function flagBool(flags: Record<string, string | boolean | string[]>, name: string): boolean | undefined;
41
+ /**
42
+ * Get a flag value as a string array (for repeatable flags).
43
+ */
44
+ export declare function flagArr(flags: Record<string, string | boolean | string[]>, name: string): string[];
45
+ /**
46
+ * Print a JSON-wrapped error response to stdout.
47
+ */
48
+ export declare function printJsonError(code: string, message: string, recoverable?: boolean): void;
49
+ /**
50
+ * Print an error message to stderr.
51
+ */
52
+ 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;AAGH,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAMtD,+BAA+B;AAC/B,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;CAiBX,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAC;AAMrE;;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,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAM5G;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;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKlG;AAMD;;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,95 @@
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 launch 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
+ // Flag helpers
32
+ // ---------------------------------------------------------------------------
33
+ /**
34
+ * Get a flag value as a string, or undefined.
35
+ */
36
+ export function flagStr(flags, name) {
37
+ const val = flags[name];
38
+ if (typeof val === 'string')
39
+ return val;
40
+ if (Array.isArray(val) && val.length > 0)
41
+ return val[val.length - 1];
42
+ return undefined;
43
+ }
44
+ /**
45
+ * Get a flag value as a number, or undefined.
46
+ */
47
+ export function flagNum(flags, name) {
48
+ const s = flagStr(flags, name);
49
+ if (s === undefined)
50
+ return undefined;
51
+ const n = Number(s);
52
+ if (Number.isNaN(n))
53
+ return undefined;
54
+ return n;
55
+ }
56
+ /**
57
+ * Get a flag value as a boolean.
58
+ */
59
+ export function flagBool(flags, name) {
60
+ const val = flags[name];
61
+ if (typeof val === 'boolean')
62
+ return val;
63
+ if (val === 'true')
64
+ return true;
65
+ if (val === 'false')
66
+ return false;
67
+ return undefined;
68
+ }
69
+ /**
70
+ * Get a flag value as a string array (for repeatable flags).
71
+ */
72
+ export function flagArr(flags, name) {
73
+ const val = flags[name];
74
+ if (Array.isArray(val))
75
+ return val;
76
+ if (typeof val === 'string')
77
+ return [val];
78
+ return [];
79
+ }
80
+ // ---------------------------------------------------------------------------
81
+ // Output helpers
82
+ // ---------------------------------------------------------------------------
83
+ /**
84
+ * Print a JSON-wrapped error response to stdout.
85
+ */
86
+ export function printJsonError(code, message, recoverable = false) {
87
+ process.stdout.write(JSON.stringify({ ok: false, error: { code, message, recoverable } }, null, 2) + '\n');
88
+ }
89
+ /**
90
+ * Print an error message to stderr.
91
+ */
92
+ export function printError(message) {
93
+ process.stderr.write('Error: ' + message + '\n');
94
+ }
95
+ //# 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,7 @@
1
+ /**
2
+ * Backward-compatibility re-exports.
3
+ *
4
+ * The completion engine implementations now live in @a5c-ai/transport-mux.
5
+ * This module re-exports them so existing import paths continue to work.
6
+ */
7
+ export { createOpenAICompletionEngine, createGoogleCompletionEngine, createAnthropicCompletionEngine } from '@a5c-ai/transport-mux';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion-engine.d.ts","sourceRoot":"","sources":["../src/completion-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Backward-compatibility re-exports.
3
+ *
4
+ * The completion engine implementations now live in @a5c-ai/transport-mux.
5
+ * This module re-exports them so existing import paths continue to work.
6
+ */
7
+ export { createOpenAICompletionEngine, createGoogleCompletionEngine, createAnthropicCompletionEngine } from '@a5c-ai/transport-mux';
8
+ //# sourceMappingURL=completion-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion-engine.js","sourceRoot":"","sources":["../src/completion-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @a5c-ai/agent-launch-mux
3
+ *
4
+ * Launch orchestration for agent-mux: plan resolution, proxy setup,
5
+ * harness spawning, bridge hooks, and completion engines.
6
+ */
7
+ export { launchCommand, resolveLaunchPlan, LAUNCH_FLAGS, } from './launch.js';
8
+ export type { LaunchPlanInput, ProxyPlan, LaunchPlan, } from './launch.js';
9
+ export { BridgeHookEmulator, } from './bridge-hooks.js';
10
+ export type { BridgeHookContext, SessionStartResult, StopResult, } from './bridge-hooks.js';
11
+ export { createOpenAICompletionEngine, createGoogleCompletionEngine, } from './completion-engine.js';
12
+ export { ExitCode, flagStr, flagNum, flagBool, flagArr, printError, printJsonError, } from './cli-helpers.js';
13
+ export type { ExitCodeValue, } from './cli-helpers.js';
14
+ export type { FlagDef, ParsedArgs, SessionArgs, } from './types.js';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,eAAe,EACf,SAAS,EACT,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACV,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,aAAa,GACd,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,OAAO,EACP,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @a5c-ai/agent-launch-mux
3
+ *
4
+ * Launch orchestration for agent-mux: plan resolution, proxy setup,
5
+ * harness spawning, bridge hooks, and completion engines.
6
+ */
7
+ // Core launch command and plan resolution
8
+ export { launchCommand, resolveLaunchPlan, LAUNCH_FLAGS, } from './launch.js';
9
+ // Bridge hook emulation
10
+ export { BridgeHookEmulator, } from './bridge-hooks.js';
11
+ // Completion engine re-exports
12
+ export { createOpenAICompletionEngine, createGoogleCompletionEngine, } from './completion-engine.js';
13
+ // CLI helpers (exit codes, flag utilities)
14
+ export { ExitCode, flagStr, flagNum, flagBool, flagArr, printError, printJsonError, } from './cli-helpers.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0CAA0C;AAC1C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,aAAa,CAAC;AASrB,wBAAwB;AACxB,OAAO,EACL,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAQ3B,+BAA+B;AAC/B,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,2CAA2C;AAC3C,OAAO,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACV,cAAc,GACf,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * `amux launch` command implementation.
3
+ *
4
+ * Resolves a launch plan for a given harness+provider combination,
5
+ * optionally starts the transport-mux runtime, then exec-forks the harness with
6
+ * stdin/stdout passthrough and proper signal forwarding.
7
+ */
8
+ import type { AgentMuxClient } from '@a5c-ai/agent-comm-mux';
9
+ import type { TransportId } from '@a5c-ai/agent-comm-mux';
10
+ import type { ParsedArgs, FlagDef } from './cli-helpers.js';
11
+ /** Launch-specific flag definitions (global flags like model/json/debug are excluded). */
12
+ export declare const LAUNCH_FLAGS: Record<string, FlagDef>;
13
+ export interface LaunchPlanInput {
14
+ harness: string;
15
+ provider?: string;
16
+ model?: string;
17
+ transport?: string;
18
+ apiKey?: string;
19
+ apiBase?: string;
20
+ region?: string;
21
+ project?: string;
22
+ resourceGroup?: string;
23
+ endpointName?: string;
24
+ authCommand?: string;
25
+ profile?: string;
26
+ proxyMode: 'always' | 'if-needed' | 'never';
27
+ proxyPort?: number;
28
+ adapter?: {
29
+ translateProvider?(config: Record<string, unknown>): any;
30
+ };
31
+ providerArgs?: Record<string, unknown>;
32
+ }
33
+ export interface ProxyPlan {
34
+ targetProvider: string;
35
+ targetModel: string;
36
+ exposedTransport: TransportId;
37
+ port: number;
38
+ apiBase?: string;
39
+ apiKey?: string;
40
+ project?: string;
41
+ location?: string;
42
+ useVertexAi?: boolean;
43
+ }
44
+ export interface LaunchPlan {
45
+ harness: string;
46
+ provider: string;
47
+ transport: string;
48
+ model: string;
49
+ proxyNeeded: boolean;
50
+ proxyReason: string;
51
+ proxy?: ProxyPlan;
52
+ command: string;
53
+ args: string[];
54
+ env: Record<string, string>;
55
+ }
56
+ export declare function resolveLaunchPlan(input: LaunchPlanInput): LaunchPlan;
57
+ export declare function launchCommand(client: AgentMuxClient, args: ParsedArgs): Promise<number>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../src/launch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAM7D,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAUtE,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAM5D,0FAA0F;AAC1F,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAgChD,CAAC;AAMF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,CAAA;KAAE,CAAC;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,WAAW,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAiBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,UAAU,CAyEpE;AA4dD,wBAAsB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA0kC7F"}