@bytespell/amux 0.0.13 → 0.0.17

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.
@@ -5,7 +5,13 @@
5
5
  "Bash(gh repo create:*)",
6
6
  "Bash(gh org:*)",
7
7
  "Bash(gh api:*)",
8
- "Bash(npm publish:*)"
8
+ "Bash(npm publish:*)",
9
+ "Bash(npm run typecheck:*)",
10
+ "Bash(npm run build)",
11
+ "Bash(npm test:*)",
12
+ "Bash(npm link)",
13
+ "Bash(npm install:*)",
14
+ "Bash(npm version:*)"
9
15
  ]
10
16
  }
11
17
  }
package/README.md CHANGED
@@ -21,14 +21,21 @@ Transport-agnostic core with an optional WebSocket adapter.
21
21
  npm install @bytespell/amux
22
22
  ```
23
23
 
24
- You'll also need at least one ACP agent:
24
+ You'll also need at least one ACP agent installed and available on your PATH:
25
25
 
26
26
  ```bash
27
- npm install @zed-industries/claude-code-acp # Claude Code
28
- npm install @zed-industries/codex-acp # Codex
29
- npm install pi-acp # Pi
27
+ # Claude Code
28
+ npm install -g @anthropics/claude-code
29
+
30
+ # Codex
31
+ npm install -g @openai/codex
32
+
33
+ # Pi
34
+ npm install -g @mariozechner/pi-coding-agent
30
35
  ```
31
36
 
37
+ amux automatically detects which agents are installed by checking your PATH.
38
+
32
39
  ## Quick Start
33
40
 
34
41
  ### With WebSocket Adapter
@@ -43,7 +50,6 @@ const wss = new WebSocketServer({ server, path: '/ws' });
43
50
 
44
51
  const session = new AgentSession({
45
52
  instanceId: process.env.INSTANCE_ID ?? 'default',
46
- basePath: process.cwd(),
47
53
  systemContext: 'You are a helpful assistant...',
48
54
  });
49
55
 
@@ -63,7 +69,6 @@ import { AgentSession } from '@bytespell/amux';
63
69
 
64
70
  const session = new AgentSession({
65
71
  instanceId: 'my-instance',
66
- basePath: process.cwd(),
67
72
  });
68
73
 
69
74
  // Subscribe to events
@@ -101,7 +106,6 @@ Core class for managing an ACP agent session. Extends `EventEmitter`.
101
106
  ```typescript
102
107
  const session = new AgentSession({
103
108
  instanceId: string; // Unique ID for state isolation
104
- basePath: string; // Path to node_modules with agent binaries
105
109
  systemContext?: string; // Injected context for the agent
106
110
  fixedCwd?: string; // Lock working directory
107
111
  agentType?: string; // 'claude-code' | 'codex' | 'pi'
@@ -121,9 +125,25 @@ await session.changeCwd(path) // Change working directory
121
125
  await session.changeAgent(type) // Switch agent type
122
126
  session.listSessions() // List available sessions
123
127
  session.loadHistory() // Get current session history
128
+ session.getAvailableAgents() // All agents with installed status
129
+ session.getInstalledAgents() // Only agents ready to use
124
130
  session.shutdown() // Cleanup and stop
125
131
  ```
126
132
 
133
+ #### Agent Discovery
134
+
135
+ amux bundles ACP wrappers for supported agents. Use `getInstalledAgents()` to find which agents are ready to use (base CLI on PATH + ACP wrapper bundled):
136
+
137
+ ```typescript
138
+ const agents = session.getInstalledAgents();
139
+ // [{ id: 'claude-code', name: 'Claude Code' }, ...]
140
+
141
+ const allAgents = session.getAvailableAgents();
142
+ // [{ id: 'claude-code', name: 'Claude Code', installed: true }, ...]
143
+ ```
144
+
145
+ The `ready` event also includes `availableAgents` (same as `getInstalledAgents()`).
146
+
127
147
  #### Events
128
148
 
129
149
  ```typescript
@@ -187,7 +207,6 @@ Inject context to customize agent behavior:
187
207
  ```typescript
188
208
  const session = new AgentSession({
189
209
  instanceId: 'docs-helper',
190
- basePath: __dirname,
191
210
  systemContext: `
192
211
  # Documentation Assistant
193
212
 
package/dist/index.d.ts CHANGED
@@ -11,7 +11,6 @@
11
11
  *
12
12
  * const session = new AgentSession({
13
13
  * instanceId: 'my-instance',
14
- * basePath: __dirname,
15
14
  * systemContext: 'You are a helpful assistant...',
16
15
  * });
17
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACb,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAGlE,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACb,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAGlE,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -11,7 +11,6 @@
11
11
  *
12
12
  * const session = new AgentSession({
13
13
  * instanceId: 'my-instance',
14
- * basePath: __dirname,
15
14
  * systemContext: 'You are a helpful assistant...',
16
15
  * });
17
16
  *
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,0BAA0B;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,6CAA6C;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACb,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,4BAA4B;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAYlE,2BAA2B;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,0BAA0B;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,6CAA6C;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,2BAA2B;AAC3B,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACb,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,4BAA4B;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAYlE,2BAA2B;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC"}
package/dist/session.d.ts CHANGED
@@ -60,7 +60,6 @@ export interface AgentSessionEvents {
60
60
  * ```typescript
61
61
  * const session = new AgentSession({
62
62
  * instanceId: 'my-instance',
63
- * basePath: __dirname,
64
63
  * });
65
64
  *
66
65
  * session.on('ready', (data) => console.log('Ready:', data));
@@ -83,9 +82,10 @@ export declare class AgentSession extends EventEmitter {
83
82
  private amuxClient;
84
83
  private stateManager;
85
84
  private instanceId;
86
- private basePath;
87
85
  private fixedCwd?;
88
86
  private agents;
87
+ private _isShutdown;
88
+ private _boundShutdown;
89
89
  constructor(config: AgentSessionConfig);
90
90
  emit<K extends keyof AgentSessionEvents>(event: K, data: AgentSessionEvents[K]): boolean;
91
91
  on<K extends keyof AgentSessionEvents>(event: K, listener: (data: AgentSessionEvents[K]) => void): this;
@@ -112,11 +112,19 @@ export declare class AgentSession extends EventEmitter {
112
112
  name: string;
113
113
  };
114
114
  /**
115
- * Get available agents list
115
+ * Get available agents list (checks if base CLI is on PATH and ACP wrapper is bundled)
116
116
  */
117
117
  getAvailableAgents(): Array<{
118
118
  id: string;
119
119
  name: string;
120
+ installed: boolean;
121
+ }>;
122
+ /**
123
+ * Get only installed agents
124
+ */
125
+ getInstalledAgents(): Array<{
126
+ id: string;
127
+ name: string;
120
128
  }>;
121
129
  /**
122
130
  * Save current state to disk
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/session.js CHANGED
@@ -1,15 +1,43 @@
1
- import { spawn } from 'child_process';
1
+ import { spawn, execSync } from 'child_process';
2
2
  import { EventEmitter } from 'events';
3
+ import { createRequire } from 'module';
3
4
  import os from 'os';
4
- import path from 'path';
5
5
  import { Writable, Readable } from 'stream';
6
6
  import * as acp from '@agentclientprotocol/sdk';
7
+ import { npmRunPathEnv } from 'npm-run-path';
7
8
  import { AmuxClient } from './client.js';
8
9
  import { TerminalManager } from './terminal.js';
9
10
  import { StateManager } from './state.js';
10
11
  import { parseMessageToContentBlocks } from './message-parser.js';
11
12
  import { AGENTS as DEFAULT_AGENTS } from './types.js';
13
+ const require = createRequire(import.meta.url);
12
14
  const INIT_TIMEOUT_MS = 90000;
15
+ /**
16
+ * Check if a binary is available on PATH
17
+ */
18
+ function isOnPath(bin) {
19
+ try {
20
+ const cmd = process.platform === 'win32' ? 'where' : 'which';
21
+ execSync(`${cmd} ${bin}`, { stdio: 'ignore' });
22
+ return true;
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ }
28
+ /**
29
+ * Check if an ACP wrapper package is installed (resolvable from amux)
30
+ */
31
+ function isAcpWrapperInstalled(packageName) {
32
+ try {
33
+ // Resolve package.json since ACP wrappers may not have a main export
34
+ require.resolve(`${packageName}/package.json`);
35
+ return true;
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
13
41
  /**
14
42
  * Helper to wrap promises with timeout
15
43
  */
@@ -29,7 +57,6 @@ function withTimeout(promise, ms, operation) {
29
57
  * ```typescript
30
58
  * const session = new AgentSession({
31
59
  * instanceId: 'my-instance',
32
- * basePath: __dirname,
33
60
  * });
34
61
  *
35
62
  * session.on('ready', (data) => console.log('Ready:', data));
@@ -56,13 +83,14 @@ export class AgentSession extends EventEmitter {
56
83
  stateManager;
57
84
  // Config
58
85
  instanceId;
59
- basePath;
60
86
  fixedCwd;
61
87
  agents;
88
+ // Cleanup state
89
+ _isShutdown = false;
90
+ _boundShutdown;
62
91
  constructor(config) {
63
92
  super();
64
93
  this.instanceId = config.instanceId;
65
- this.basePath = config.basePath;
66
94
  this.fixedCwd = config.fixedCwd;
67
95
  this._systemContext = config.systemContext;
68
96
  this.agents = DEFAULT_AGENTS;
@@ -75,6 +103,11 @@ export class AgentSession extends EventEmitter {
75
103
  this._agentType = config.agentType ?? persistedState.agentType ?? 'claude-code';
76
104
  // Create terminal manager with cwd getter
77
105
  this.terminalManager = new TerminalManager(() => this._cwd);
106
+ // Register cleanup handlers for process exit
107
+ this._boundShutdown = () => this.shutdown();
108
+ process.on('SIGTERM', this._boundShutdown);
109
+ process.on('SIGINT', this._boundShutdown);
110
+ process.on('exit', this._boundShutdown);
78
111
  }
79
112
  // Type-safe event emitter methods
80
113
  emit(event, data) {
@@ -117,10 +150,22 @@ export class AgentSession extends EventEmitter {
117
150
  };
118
151
  }
119
152
  /**
120
- * Get available agents list
153
+ * Get available agents list (checks if base CLI is on PATH and ACP wrapper is bundled)
121
154
  */
122
155
  getAvailableAgents() {
123
- return Object.entries(this.agents).map(([id, a]) => ({ id, name: a.name }));
156
+ return Object.entries(this.agents).map(([id, a]) => ({
157
+ id,
158
+ name: a.name,
159
+ installed: isOnPath(a.cli) && isAcpWrapperInstalled(a.acpPackage),
160
+ }));
161
+ }
162
+ /**
163
+ * Get only installed agents
164
+ */
165
+ getInstalledAgents() {
166
+ return this.getAvailableAgents()
167
+ .filter((a) => a.installed)
168
+ .map(({ id, name }) => ({ id, name }));
124
169
  }
125
170
  /**
126
171
  * Save current state to disk
@@ -168,12 +213,28 @@ export class AgentSession extends EventEmitter {
168
213
  this.emit('error', { message: `Unknown agent type: ${this._agentType}` });
169
214
  return;
170
215
  }
216
+ // Check if base CLI is installed
217
+ if (!isOnPath(agent.cli)) {
218
+ console.error(`[amux] Agent CLI not found on PATH: ${agent.cli}`);
219
+ this.emit('error', {
220
+ message: `Agent "${agent.cli}" not found. Install it globally or add it to your PATH.`,
221
+ });
222
+ return;
223
+ }
224
+ // Check if ACP wrapper package is installed
225
+ if (!isAcpWrapperInstalled(agent.acpPackage)) {
226
+ console.error(`[amux] ACP wrapper not found: ${agent.acpPackage}`);
227
+ this.emit('error', {
228
+ message: `ACP wrapper "${agent.acpPackage}" not found. This is an amux installation issue.`,
229
+ });
230
+ return;
231
+ }
171
232
  console.log(`[amux] Spawning ${agent.name} agent in cwd:`, this._cwd);
172
233
  this.emit('connecting', {});
173
- const agentBin = path.join(this.basePath, 'node_modules', '.bin', agent.bin);
174
- const newProcess = spawn(agentBin, [], {
234
+ // Use npm-run-path to find binaries in node_modules/.bin
235
+ const newProcess = spawn(agent.acpBin, [], {
175
236
  stdio: ['pipe', 'pipe', 'pipe'],
176
- env: { ...process.env },
237
+ env: npmRunPathEnv(),
177
238
  cwd: this._cwd,
178
239
  });
179
240
  this.agentProcess = newProcess;
@@ -235,7 +296,7 @@ export class AgentSession extends EventEmitter {
235
296
  sessionRestore,
236
297
  capabilities: this._agentCapabilities,
237
298
  agent: this.getAgentInfo(),
238
- availableAgents: this.getAvailableAgents(),
299
+ availableAgents: this.getInstalledAgents(),
239
300
  });
240
301
  }
241
302
  catch (err) {
@@ -573,6 +634,13 @@ export class AgentSession extends EventEmitter {
573
634
  * Shutdown (cleanup all resources)
574
635
  */
575
636
  shutdown() {
637
+ if (this._isShutdown)
638
+ return;
639
+ this._isShutdown = true;
640
+ // Remove signal handlers to avoid memory leaks
641
+ process.off('SIGTERM', this._boundShutdown);
642
+ process.off('SIGINT', this._boundShutdown);
643
+ process.off('exit', this._boundShutdown);
576
644
  this.terminalManager.killAll();
577
645
  this.agentProcess?.kill();
578
646
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -4,7 +4,12 @@ import type * as acp from '@agentclientprotocol/sdk';
4
4
  */
5
5
  export interface AgentConfig {
6
6
  name: string;
7
- bin: string;
7
+ /** The base CLI binary name (for checking if installed) */
8
+ cli: string;
9
+ /** The npm package name for the ACP wrapper */
10
+ acpPackage: string;
11
+ /** The binary name for the ACP wrapper (in node_modules/.bin) */
12
+ acpBin: string;
8
13
  }
9
14
  /**
10
15
  * Built-in agent registry
@@ -50,8 +55,6 @@ export interface SessionRestoreInfo {
50
55
  export interface AgentSessionConfig {
51
56
  /** Unique identifier for this session instance */
52
57
  instanceId: string;
53
- /** Base path for resolving agent binaries (node_modules/.bin) */
54
- basePath: string;
55
58
  /** Optional system context to inject (e.g., from a markdown file) */
56
59
  systemContext?: string;
57
60
  /** Optional fixed working directory (overrides user selection) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAa9C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IAEnB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;IAEjB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAmB9C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IAEnB,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
package/dist/types.js CHANGED
@@ -4,15 +4,21 @@
4
4
  export const AGENTS = {
5
5
  'claude-code': {
6
6
  name: 'Claude Code',
7
- bin: 'claude-code-acp',
7
+ cli: 'claude',
8
+ acpPackage: '@zed-industries/claude-code-acp',
9
+ acpBin: 'claude-code-acp',
8
10
  },
9
11
  'codex': {
10
12
  name: 'Codex',
11
- bin: 'codex-acp',
13
+ cli: 'codex',
14
+ acpPackage: '@zed-industries/codex-acp',
15
+ acpBin: 'codex-acp',
12
16
  },
13
17
  'pi': {
14
18
  name: 'Pi',
15
- bin: 'pi-acp',
19
+ cli: 'pi',
20
+ acpPackage: 'pi-acp',
21
+ acpBin: 'pi-acp',
16
22
  },
17
23
  };
18
24
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAgC;IACjD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,iBAAiB;KACvB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,WAAW;KACjB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,QAAQ;KACd;CACF,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAgC;IACjD,aAAa,EAAE;QACb,IAAI,EAAE,aAAa;QACnB,GAAG,EAAE,QAAQ;QACb,UAAU,EAAE,iCAAiC;QAC7C,MAAM,EAAE,iBAAiB;KAC1B;IACD,OAAO,EAAE;QACP,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,OAAO;QACZ,UAAU,EAAE,2BAA2B;QACvC,MAAM,EAAE,WAAW;KACpB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,GAAG,EAAE,IAAI;QACT,UAAU,EAAE,QAAQ;QACpB,MAAM,EAAE,QAAQ;KACjB;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bytespell/amux",
3
- "version": "0.0.13",
3
+ "version": "0.0.17",
4
4
  "description": "ACP Multiplexer - the session layer for ACP agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -32,6 +32,10 @@
32
32
  "license": "MIT",
33
33
  "dependencies": {
34
34
  "@agentclientprotocol/sdk": "^0.13.0",
35
+ "@zed-industries/claude-code-acp": "^0.13.0",
36
+ "@zed-industries/codex-acp": "^0.9.0",
37
+ "npm-run-path": "^6.0.0",
38
+ "pi-acp": "^0.0.14",
35
39
  "ws": "^8.19.0"
36
40
  },
37
41
  "devDependencies": {
@@ -39,21 +43,5 @@
39
43
  "@types/ws": "^8.18.1",
40
44
  "typescript": "~5.7.0",
41
45
  "vitest": "^3.1.3"
42
- },
43
- "peerDependencies": {
44
- "@zed-industries/claude-code-acp": ">=0.13.0",
45
- "@zed-industries/codex-acp": ">=0.9.0",
46
- "pi-acp": ">=0.0.14"
47
- },
48
- "peerDependenciesMeta": {
49
- "@zed-industries/claude-code-acp": {
50
- "optional": true
51
- },
52
- "@zed-industries/codex-acp": {
53
- "optional": true
54
- },
55
- "pi-acp": {
56
- "optional": true
57
- }
58
46
  }
59
47
  }
package/src/index.ts CHANGED
@@ -11,7 +11,6 @@
11
11
  *
12
12
  * const session = new AgentSession({
13
13
  * instanceId: 'my-instance',
14
- * basePath: __dirname,
15
14
  * systemContext: 'You are a helpful assistant...',
16
15
  * });
17
16
  *
package/src/session.ts CHANGED
@@ -1,10 +1,11 @@
1
- import { spawn, type ChildProcess } from 'child_process';
1
+ import { spawn, execSync, type ChildProcess } from 'child_process';
2
2
  import { EventEmitter } from 'events';
3
+ import { createRequire } from 'module';
3
4
  import os from 'os';
4
- import path from 'path';
5
5
  import { Writable, Readable } from 'stream';
6
6
 
7
7
  import * as acp from '@agentclientprotocol/sdk';
8
+ import { npmRunPathEnv } from 'npm-run-path';
8
9
 
9
10
  import { AmuxClient } from './client.js';
10
11
  import { TerminalManager } from './terminal.js';
@@ -18,8 +19,35 @@ import type {
18
19
  } from './types.js';
19
20
  import { AGENTS as DEFAULT_AGENTS } from './types.js';
20
21
 
22
+ const require = createRequire(import.meta.url);
21
23
  const INIT_TIMEOUT_MS = 90000;
22
24
 
25
+ /**
26
+ * Check if a binary is available on PATH
27
+ */
28
+ function isOnPath(bin: string): boolean {
29
+ try {
30
+ const cmd = process.platform === 'win32' ? 'where' : 'which';
31
+ execSync(`${cmd} ${bin}`, { stdio: 'ignore' });
32
+ return true;
33
+ } catch {
34
+ return false;
35
+ }
36
+ }
37
+
38
+ /**
39
+ * Check if an ACP wrapper package is installed (resolvable from amux)
40
+ */
41
+ function isAcpWrapperInstalled(packageName: string): boolean {
42
+ try {
43
+ // Resolve package.json since ACP wrappers may not have a main export
44
+ require.resolve(`${packageName}/package.json`);
45
+ return true;
46
+ } catch {
47
+ return false;
48
+ }
49
+ }
50
+
23
51
  /**
24
52
  * Events emitted by AgentSession
25
53
  */
@@ -75,7 +103,6 @@ function withTimeout<T>(promise: Promise<T>, ms: number, operation: string): Pro
75
103
  * ```typescript
76
104
  * const session = new AgentSession({
77
105
  * instanceId: 'my-instance',
78
- * basePath: __dirname,
79
106
  * });
80
107
  *
81
108
  * session.on('ready', (data) => console.log('Ready:', data));
@@ -105,15 +132,17 @@ export class AgentSession extends EventEmitter {
105
132
 
106
133
  // Config
107
134
  private instanceId: string;
108
- private basePath: string;
109
135
  private fixedCwd?: string;
110
136
  private agents: Record<string, AgentConfig>;
111
137
 
138
+ // Cleanup state
139
+ private _isShutdown = false;
140
+ private _boundShutdown: () => void;
141
+
112
142
  constructor(config: AgentSessionConfig) {
113
143
  super();
114
144
 
115
145
  this.instanceId = config.instanceId;
116
- this.basePath = config.basePath;
117
146
  this.fixedCwd = config.fixedCwd;
118
147
  this._systemContext = config.systemContext;
119
148
  this.agents = DEFAULT_AGENTS;
@@ -129,6 +158,12 @@ export class AgentSession extends EventEmitter {
129
158
 
130
159
  // Create terminal manager with cwd getter
131
160
  this.terminalManager = new TerminalManager(() => this._cwd);
161
+
162
+ // Register cleanup handlers for process exit
163
+ this._boundShutdown = () => this.shutdown();
164
+ process.on('SIGTERM', this._boundShutdown);
165
+ process.on('SIGINT', this._boundShutdown);
166
+ process.on('exit', this._boundShutdown);
132
167
  }
133
168
 
134
169
  // Type-safe event emitter methods
@@ -188,10 +223,23 @@ export class AgentSession extends EventEmitter {
188
223
  }
189
224
 
190
225
  /**
191
- * Get available agents list
226
+ * Get available agents list (checks if base CLI is on PATH and ACP wrapper is bundled)
192
227
  */
193
- getAvailableAgents(): Array<{ id: string; name: string }> {
194
- return Object.entries(this.agents).map(([id, a]) => ({ id, name: a.name }));
228
+ getAvailableAgents(): Array<{ id: string; name: string; installed: boolean }> {
229
+ return Object.entries(this.agents).map(([id, a]) => ({
230
+ id,
231
+ name: a.name,
232
+ installed: isOnPath(a.cli) && isAcpWrapperInstalled(a.acpPackage),
233
+ }));
234
+ }
235
+
236
+ /**
237
+ * Get only installed agents
238
+ */
239
+ getInstalledAgents(): Array<{ id: string; name: string }> {
240
+ return this.getAvailableAgents()
241
+ .filter((a) => a.installed)
242
+ .map(({ id, name }) => ({ id, name }));
195
243
  }
196
244
 
197
245
  /**
@@ -244,13 +292,31 @@ export class AgentSession extends EventEmitter {
244
292
  return;
245
293
  }
246
294
 
295
+ // Check if base CLI is installed
296
+ if (!isOnPath(agent.cli)) {
297
+ console.error(`[amux] Agent CLI not found on PATH: ${agent.cli}`);
298
+ this.emit('error', {
299
+ message: `Agent "${agent.cli}" not found. Install it globally or add it to your PATH.`,
300
+ });
301
+ return;
302
+ }
303
+
304
+ // Check if ACP wrapper package is installed
305
+ if (!isAcpWrapperInstalled(agent.acpPackage)) {
306
+ console.error(`[amux] ACP wrapper not found: ${agent.acpPackage}`);
307
+ this.emit('error', {
308
+ message: `ACP wrapper "${agent.acpPackage}" not found. This is an amux installation issue.`,
309
+ });
310
+ return;
311
+ }
312
+
247
313
  console.log(`[amux] Spawning ${agent.name} agent in cwd:`, this._cwd);
248
314
  this.emit('connecting', {});
249
315
 
250
- const agentBin = path.join(this.basePath, 'node_modules', '.bin', agent.bin);
251
- const newProcess = spawn(agentBin, [], {
316
+ // Use npm-run-path to find binaries in node_modules/.bin
317
+ const newProcess = spawn(agent.acpBin, [], {
252
318
  stdio: ['pipe', 'pipe', 'pipe'],
253
- env: { ...process.env },
319
+ env: npmRunPathEnv(),
254
320
  cwd: this._cwd,
255
321
  });
256
322
  this.agentProcess = newProcess;
@@ -324,7 +390,7 @@ export class AgentSession extends EventEmitter {
324
390
  sessionRestore,
325
391
  capabilities: this._agentCapabilities,
326
392
  agent: this.getAgentInfo(),
327
- availableAgents: this.getAvailableAgents(),
393
+ availableAgents: this.getInstalledAgents(),
328
394
  });
329
395
 
330
396
  } catch (err) {
@@ -731,6 +797,14 @@ export class AgentSession extends EventEmitter {
731
797
  * Shutdown (cleanup all resources)
732
798
  */
733
799
  shutdown(): void {
800
+ if (this._isShutdown) return;
801
+ this._isShutdown = true;
802
+
803
+ // Remove signal handlers to avoid memory leaks
804
+ process.off('SIGTERM', this._boundShutdown);
805
+ process.off('SIGINT', this._boundShutdown);
806
+ process.off('exit', this._boundShutdown);
807
+
734
808
  this.terminalManager.killAll();
735
809
  this.agentProcess?.kill();
736
810
  }
package/src/types.ts CHANGED
@@ -5,7 +5,12 @@ import type * as acp from '@agentclientprotocol/sdk';
5
5
  */
6
6
  export interface AgentConfig {
7
7
  name: string;
8
- bin: string;
8
+ /** The base CLI binary name (for checking if installed) */
9
+ cli: string;
10
+ /** The npm package name for the ACP wrapper */
11
+ acpPackage: string;
12
+ /** The binary name for the ACP wrapper (in node_modules/.bin) */
13
+ acpBin: string;
9
14
  }
10
15
 
11
16
  /**
@@ -14,15 +19,21 @@ export interface AgentConfig {
14
19
  export const AGENTS: Record<string, AgentConfig> = {
15
20
  'claude-code': {
16
21
  name: 'Claude Code',
17
- bin: 'claude-code-acp',
22
+ cli: 'claude',
23
+ acpPackage: '@zed-industries/claude-code-acp',
24
+ acpBin: 'claude-code-acp',
18
25
  },
19
26
  'codex': {
20
27
  name: 'Codex',
21
- bin: 'codex-acp',
28
+ cli: 'codex',
29
+ acpPackage: '@zed-industries/codex-acp',
30
+ acpBin: 'codex-acp',
22
31
  },
23
32
  'pi': {
24
33
  name: 'Pi',
25
- bin: 'pi-acp',
34
+ cli: 'pi',
35
+ acpPackage: 'pi-acp',
36
+ acpBin: 'pi-acp',
26
37
  },
27
38
  };
28
39
 
@@ -71,9 +82,6 @@ export interface AgentSessionConfig {
71
82
  /** Unique identifier for this session instance */
72
83
  instanceId: string;
73
84
 
74
- /** Base path for resolving agent binaries (node_modules/.bin) */
75
- basePath: string;
76
-
77
85
  /** Optional system context to inject (e.g., from a markdown file) */
78
86
  systemContext?: string;
79
87