@bytespell/amux 0.0.17 → 0.0.20
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/client.d.ts.map +1 -1
- package/dist/client.js +4 -1
- package/dist/client.js.map +1 -1
- package/dist/session.d.ts +20 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +61 -13
- package/dist/session.js.map +1 -1
- package/dist/types.d.ts +3 -64
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -23
- package/dist/types.js.map +1 -1
- package/dist/ws-adapter.d.ts.map +1 -1
- package/dist/ws-adapter.js +2 -0
- package/dist/ws-adapter.js.map +1 -1
- package/package.json +3 -4
- package/src/client.ts +4 -1
- package/src/session.ts +67 -13
- package/src/types.ts +18 -94
- package/src/ws-adapter.ts +2 -0
- package/tsconfig.json +6 -16
- package/tsconfig.tsbuildinfo +1 -0
- package/.claude/settings.local.json +0 -17
- package/CLAUDE.md +0 -104
- package/LICENSE +0 -21
- package/README.md +0 -234
- package/dist/cli.d.ts +0 -14
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -118
- package/dist/cli.js.map +0 -1
- package/dist/message-parser.test.d.ts +0 -2
- package/dist/message-parser.test.d.ts.map +0 -1
- package/dist/message-parser.test.js +0 -188
- package/dist/message-parser.test.js.map +0 -1
- package/dist/server.d.ts +0 -24
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -356
- package/dist/server.js.map +0 -1
- package/dist/session-updates.test.d.ts +0 -2
- package/dist/session-updates.test.d.ts.map +0 -1
- package/dist/session-updates.test.js +0 -223
- package/dist/session-updates.test.js.map +0 -1
package/src/session.ts
CHANGED
|
@@ -2,10 +2,10 @@ import { spawn, execSync, type ChildProcess } from 'child_process';
|
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import { createRequire } from 'module';
|
|
4
4
|
import os from 'os';
|
|
5
|
+
import path from 'path';
|
|
5
6
|
import { Writable, Readable } from 'stream';
|
|
6
7
|
|
|
7
8
|
import * as acp from '@agentclientprotocol/sdk';
|
|
8
|
-
import { npmRunPathEnv } from 'npm-run-path';
|
|
9
9
|
|
|
10
10
|
import { AmuxClient } from './client.js';
|
|
11
11
|
import { TerminalManager } from './terminal.js';
|
|
@@ -36,15 +36,36 @@ function isOnPath(bin: string): boolean {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
39
|
+
* Resolve the absolute path to an ACP wrapper binary.
|
|
40
|
+
* Returns the path if found, null otherwise.
|
|
40
41
|
*/
|
|
41
|
-
function
|
|
42
|
+
function resolveAcpBinary(packageName: string, binName: string): string | null {
|
|
42
43
|
try {
|
|
43
|
-
// Resolve package.json
|
|
44
|
-
require.resolve(`${packageName}/package.json`);
|
|
45
|
-
|
|
44
|
+
// Resolve the package.json to find the package location
|
|
45
|
+
const pkgJsonPath = require.resolve(`${packageName}/package.json`);
|
|
46
|
+
const pkgDir = path.dirname(pkgJsonPath);
|
|
47
|
+
|
|
48
|
+
// Read package.json to find the bin entry
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
50
|
+
const pkgJson = require(pkgJsonPath);
|
|
51
|
+
const bins = pkgJson.bin;
|
|
52
|
+
|
|
53
|
+
if (!bins) return null;
|
|
54
|
+
|
|
55
|
+
// bin can be a string (single binary) or object (multiple binaries)
|
|
56
|
+
let relativeBinPath: string | undefined;
|
|
57
|
+
if (typeof bins === 'string') {
|
|
58
|
+
relativeBinPath = bins;
|
|
59
|
+
} else if (typeof bins === 'object' && bins[binName]) {
|
|
60
|
+
relativeBinPath = bins[binName];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (!relativeBinPath) return null;
|
|
64
|
+
|
|
65
|
+
const absoluteBinPath = path.resolve(pkgDir, relativeBinPath);
|
|
66
|
+
return absoluteBinPath;
|
|
46
67
|
} catch {
|
|
47
|
-
return
|
|
68
|
+
return null;
|
|
48
69
|
}
|
|
49
70
|
}
|
|
50
71
|
|
|
@@ -59,6 +80,8 @@ export interface AgentSessionEvents {
|
|
|
59
80
|
capabilities: acp.AgentCapabilities | null;
|
|
60
81
|
agent: { type: string; name: string };
|
|
61
82
|
availableAgents: Array<{ id: string; name: string }>;
|
|
83
|
+
availableModels?: Array<{ id: string; name: string; provider?: string; supportsThinking?: boolean }>;
|
|
84
|
+
currentModelId?: string;
|
|
62
85
|
};
|
|
63
86
|
update: acp.SessionUpdate;
|
|
64
87
|
turn_start: Record<string, never>;
|
|
@@ -125,6 +148,10 @@ export class AgentSession extends EventEmitter {
|
|
|
125
148
|
private _agentCapabilities: acp.AgentCapabilities | null = null;
|
|
126
149
|
private _changingCwd = false;
|
|
127
150
|
|
|
151
|
+
// Model state (from newSession response)
|
|
152
|
+
private _availableModels: Array<{ id: string; name: string; provider?: string; supportsThinking?: boolean }> = [];
|
|
153
|
+
private _currentModelId: string | null = null;
|
|
154
|
+
|
|
128
155
|
// Components
|
|
129
156
|
private terminalManager: TerminalManager;
|
|
130
157
|
private amuxClient: AmuxClient | null = null;
|
|
@@ -211,6 +238,8 @@ export class AgentSession extends EventEmitter {
|
|
|
211
238
|
get agentCapabilities(): acp.AgentCapabilities | null { return this._agentCapabilities; }
|
|
212
239
|
get isConnected(): boolean { return this.acpConnection !== null; }
|
|
213
240
|
get systemContext(): string | undefined { return this._systemContext; }
|
|
241
|
+
get availableModels(): Array<{ id: string; name: string; provider?: string; supportsThinking?: boolean }> { return this._availableModels; }
|
|
242
|
+
get currentModelId(): string | null { return this._currentModelId; }
|
|
214
243
|
|
|
215
244
|
/**
|
|
216
245
|
* Get current agent info
|
|
@@ -229,7 +258,7 @@ export class AgentSession extends EventEmitter {
|
|
|
229
258
|
return Object.entries(this.agents).map(([id, a]) => ({
|
|
230
259
|
id,
|
|
231
260
|
name: a.name,
|
|
232
|
-
installed: isOnPath(a.cli) &&
|
|
261
|
+
installed: isOnPath(a.cli) && resolveAcpBinary(a.acpPackage, a.acpBin) !== null,
|
|
233
262
|
}));
|
|
234
263
|
}
|
|
235
264
|
|
|
@@ -301,8 +330,9 @@ export class AgentSession extends EventEmitter {
|
|
|
301
330
|
return;
|
|
302
331
|
}
|
|
303
332
|
|
|
304
|
-
//
|
|
305
|
-
|
|
333
|
+
// Resolve the ACP wrapper binary path
|
|
334
|
+
const acpBinPath = resolveAcpBinary(agent.acpPackage, agent.acpBin);
|
|
335
|
+
if (!acpBinPath) {
|
|
306
336
|
console.error(`[amux] ACP wrapper not found: ${agent.acpPackage}`);
|
|
307
337
|
this.emit('error', {
|
|
308
338
|
message: `ACP wrapper "${agent.acpPackage}" not found. This is an amux installation issue.`,
|
|
@@ -313,10 +343,9 @@ export class AgentSession extends EventEmitter {
|
|
|
313
343
|
console.log(`[amux] Spawning ${agent.name} agent in cwd:`, this._cwd);
|
|
314
344
|
this.emit('connecting', {});
|
|
315
345
|
|
|
316
|
-
//
|
|
317
|
-
const newProcess = spawn(
|
|
346
|
+
// Spawn using the resolved absolute path to the ACP binary
|
|
347
|
+
const newProcess = spawn(acpBinPath, [], {
|
|
318
348
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
319
|
-
env: npmRunPathEnv(),
|
|
320
349
|
cwd: this._cwd,
|
|
321
350
|
});
|
|
322
351
|
this.agentProcess = newProcess;
|
|
@@ -391,6 +420,8 @@ export class AgentSession extends EventEmitter {
|
|
|
391
420
|
capabilities: this._agentCapabilities,
|
|
392
421
|
agent: this.getAgentInfo(),
|
|
393
422
|
availableAgents: this.getInstalledAgents(),
|
|
423
|
+
availableModels: this._availableModels.length > 0 ? this._availableModels : undefined,
|
|
424
|
+
currentModelId: this._currentModelId ?? undefined,
|
|
394
425
|
});
|
|
395
426
|
|
|
396
427
|
} catch (err) {
|
|
@@ -444,11 +475,13 @@ export class AgentSession extends EventEmitter {
|
|
|
444
475
|
|
|
445
476
|
if (!loadSucceeded) {
|
|
446
477
|
const sessionResult = await this.createNewSession();
|
|
478
|
+
this.extractModelsFromSession(sessionResult);
|
|
447
479
|
sessionRestore = await this.replayHistoryFromPreviousSession(previousSessionId);
|
|
448
480
|
this.broadcastModeInfo(sessionResult);
|
|
449
481
|
}
|
|
450
482
|
} else {
|
|
451
483
|
const sessionResult = await this.createNewSession();
|
|
484
|
+
this.extractModelsFromSession(sessionResult);
|
|
452
485
|
|
|
453
486
|
if (hasExistingSession && previousSessionId) {
|
|
454
487
|
sessionRestore = await this.replayHistoryFromPreviousSession(previousSessionId);
|
|
@@ -546,6 +579,27 @@ export class AgentSession extends EventEmitter {
|
|
|
546
579
|
}
|
|
547
580
|
}
|
|
548
581
|
|
|
582
|
+
/**
|
|
583
|
+
* Extract and store models from session response
|
|
584
|
+
*/
|
|
585
|
+
private extractModelsFromSession(sessionResult: acp.NewSessionResponse): void {
|
|
586
|
+
if (sessionResult?.models) {
|
|
587
|
+
const { availableModels, currentModelId } = sessionResult.models;
|
|
588
|
+
if (availableModels && Array.isArray(availableModels)) {
|
|
589
|
+
this._availableModels = availableModels.map((m) => ({
|
|
590
|
+
id: m.modelId,
|
|
591
|
+
name: m.name,
|
|
592
|
+
provider: (m as Record<string, unknown>).provider as string | undefined,
|
|
593
|
+
supportsThinking: (m as Record<string, unknown>).supportsThinking as boolean | undefined,
|
|
594
|
+
}));
|
|
595
|
+
console.log(`[amux] Found ${this._availableModels.length} available models`);
|
|
596
|
+
}
|
|
597
|
+
if (currentModelId) {
|
|
598
|
+
this._currentModelId = currentModelId;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
|
|
549
603
|
/**
|
|
550
604
|
* Send a prompt to the agent
|
|
551
605
|
*/
|
package/src/types.ts
CHANGED
|
@@ -1,96 +1,20 @@
|
|
|
1
|
-
import type * as acp from '@agentclientprotocol/sdk';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Agent configuration - maps agent type to binary name
|
|
5
|
-
*/
|
|
6
|
-
export interface AgentConfig {
|
|
7
|
-
name: 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;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Built-in agent registry
|
|
18
|
-
*/
|
|
19
|
-
export const AGENTS: Record<string, AgentConfig> = {
|
|
20
|
-
'claude-code': {
|
|
21
|
-
name: 'Claude Code',
|
|
22
|
-
cli: 'claude',
|
|
23
|
-
acpPackage: '@zed-industries/claude-code-acp',
|
|
24
|
-
acpBin: 'claude-code-acp',
|
|
25
|
-
},
|
|
26
|
-
'codex': {
|
|
27
|
-
name: 'Codex',
|
|
28
|
-
cli: 'codex',
|
|
29
|
-
acpPackage: '@zed-industries/codex-acp',
|
|
30
|
-
acpBin: 'codex-acp',
|
|
31
|
-
},
|
|
32
|
-
'pi': {
|
|
33
|
-
name: 'Pi',
|
|
34
|
-
cli: 'pi',
|
|
35
|
-
acpPackage: 'pi-acp',
|
|
36
|
-
acpBin: 'pi-acp',
|
|
37
|
-
},
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Session metadata for persistence
|
|
42
|
-
*/
|
|
43
|
-
export interface SessionMetadata {
|
|
44
|
-
id: string;
|
|
45
|
-
name: string;
|
|
46
|
-
cwd: string;
|
|
47
|
-
messageCount: number;
|
|
48
|
-
lastModified: number;
|
|
49
|
-
agentType: string;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
1
|
/**
|
|
53
|
-
*
|
|
2
|
+
* Re-export all types from @bytespell/amux-types for backwards compatibility
|
|
54
3
|
*/
|
|
55
|
-
export
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
*/
|
|
73
|
-
export interface SessionRestoreInfo {
|
|
74
|
-
restored: boolean;
|
|
75
|
-
reason?: string;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Configuration for creating an agent session
|
|
80
|
-
*/
|
|
81
|
-
export interface AgentSessionConfig {
|
|
82
|
-
/** Unique identifier for this session instance */
|
|
83
|
-
instanceId: string;
|
|
84
|
-
|
|
85
|
-
/** Optional system context to inject (e.g., from a markdown file) */
|
|
86
|
-
systemContext?: string;
|
|
87
|
-
|
|
88
|
-
/** Optional fixed working directory (overrides user selection) */
|
|
89
|
-
fixedCwd?: string;
|
|
90
|
-
|
|
91
|
-
/** Optional initial agent type (defaults to 'claude-code') */
|
|
92
|
-
agentType?: string;
|
|
93
|
-
|
|
94
|
-
/** Optional state directory override */
|
|
95
|
-
stateDir?: string;
|
|
96
|
-
}
|
|
4
|
+
export type {
|
|
5
|
+
AgentConfig,
|
|
6
|
+
AgentInfo,
|
|
7
|
+
ModelInfo,
|
|
8
|
+
SessionMetadata,
|
|
9
|
+
SessionState,
|
|
10
|
+
StoredEvent,
|
|
11
|
+
SessionRestoreInfo,
|
|
12
|
+
AgentSessionConfig,
|
|
13
|
+
ServerMessage,
|
|
14
|
+
ClientMessage,
|
|
15
|
+
MessageType,
|
|
16
|
+
PermissionOption,
|
|
17
|
+
PermissionRequest,
|
|
18
|
+
} from '@bytespell/amux-types';
|
|
19
|
+
|
|
20
|
+
export { AGENTS } from '@bytespell/amux-types';
|
package/src/ws-adapter.ts
CHANGED
|
@@ -98,6 +98,8 @@ export function createWsAdapter(
|
|
|
98
98
|
capabilities: session.agentCapabilities,
|
|
99
99
|
agent: session.getAgentInfo(),
|
|
100
100
|
availableAgents: session.getAvailableAgents(),
|
|
101
|
+
availableModels: session.availableModels.length > 0 ? session.availableModels : undefined,
|
|
102
|
+
currentModelId: session.currentModelId ?? undefined,
|
|
101
103
|
}));
|
|
102
104
|
|
|
103
105
|
// Send history to hydrate the chat UI
|
package/tsconfig.json
CHANGED
|
@@ -1,22 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
+
"extends": "../../tsconfig.base.json",
|
|
2
3
|
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "NodeNext",
|
|
5
|
-
"moduleResolution": "NodeNext",
|
|
6
|
-
"lib": ["ES2022"],
|
|
7
4
|
"outDir": "dist",
|
|
8
|
-
"rootDir": "src"
|
|
9
|
-
"strict": true,
|
|
10
|
-
"esModuleInterop": true,
|
|
11
|
-
"skipLibCheck": true,
|
|
12
|
-
"forceConsistentCasingInFileNames": true,
|
|
13
|
-
"declaration": true,
|
|
14
|
-
"declarationMap": true,
|
|
15
|
-
"sourceMap": true,
|
|
16
|
-
"noUncheckedIndexedAccess": true,
|
|
17
|
-
"noUnusedLocals": true,
|
|
18
|
-
"noUnusedParameters": true
|
|
5
|
+
"rootDir": "src"
|
|
19
6
|
},
|
|
20
7
|
"include": ["src/**/*"],
|
|
21
|
-
"exclude": ["node_modules", "dist", "src/**/*.test.ts"]
|
|
8
|
+
"exclude": ["node_modules", "dist", "src/**/*.test.ts"],
|
|
9
|
+
"references": [
|
|
10
|
+
{ "path": "../amux-types" }
|
|
11
|
+
]
|
|
22
12
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/@agentclientprotocol/sdk/dist/schema/index.d.ts","../../node_modules/@agentclientprotocol/sdk/dist/schema/types.gen.d.ts","../../node_modules/@agentclientprotocol/sdk/dist/jsonrpc.d.ts","../../node_modules/@agentclientprotocol/sdk/dist/stream.d.ts","../../node_modules/@agentclientprotocol/sdk/dist/acp.d.ts","./src/session-updates.ts","./src/terminal.ts","../amux-types/dist/agents.d.ts","../amux-types/dist/session.d.ts","../amux-types/dist/events.d.ts","../amux-types/dist/index.d.ts","./src/types.ts","./src/client.ts","./src/state.ts","./src/message-parser.ts","./src/session.ts","../../node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/@types/node/web-globals/events.d.ts","../../node_modules/undici-types/header.d.ts","../../node_modules/undici-types/readable.d.ts","../../node_modules/undici-types/file.d.ts","../../node_modules/undici-types/fetch.d.ts","../../node_modules/undici-types/formdata.d.ts","../../node_modules/undici-types/connector.d.ts","../../node_modules/undici-types/client.d.ts","../../node_modules/undici-types/errors.d.ts","../../node_modules/undici-types/dispatcher.d.ts","../../node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/undici-types/global-origin.d.ts","../../node_modules/undici-types/pool-stats.d.ts","../../node_modules/undici-types/pool.d.ts","../../node_modules/undici-types/handlers.d.ts","../../node_modules/undici-types/balanced-pool.d.ts","../../node_modules/undici-types/agent.d.ts","../../node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/undici-types/mock-agent.d.ts","../../node_modules/undici-types/mock-client.d.ts","../../node_modules/undici-types/mock-pool.d.ts","../../node_modules/undici-types/mock-errors.d.ts","../../node_modules/undici-types/proxy-agent.d.ts","../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/undici-types/retry-handler.d.ts","../../node_modules/undici-types/retry-agent.d.ts","../../node_modules/undici-types/api.d.ts","../../node_modules/undici-types/interceptors.d.ts","../../node_modules/undici-types/util.d.ts","../../node_modules/undici-types/cookies.d.ts","../../node_modules/undici-types/patch.d.ts","../../node_modules/undici-types/websocket.d.ts","../../node_modules/undici-types/eventsource.d.ts","../../node_modules/undici-types/filereader.d.ts","../../node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/undici-types/content-type.d.ts","../../node_modules/undici-types/cache.d.ts","../../node_modules/undici-types/index.d.ts","../../node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/@types/node/web-globals/navigator.d.ts","../../node_modules/@types/node/web-globals/storage.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/inspector.generated.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/readline/promises.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/sea.d.ts","../../node_modules/@types/node/sqlite.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@types/ws/index.d.mts","./src/ws-adapter.ts","./src/index.ts","../../node_modules/@types/deep-eql/index.d.ts","../../node_modules/assertion-error/index.d.ts","../../node_modules/@types/chai/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/ws/index.d.ts"],"fileIdsList":[[58,59,60,61,79,127,144,145],[79,127,144,145],[60,79,127,144,145],[79,127,144,145,181,182],[79,124,125,127,144,145],[79,126,127,144,145],[127,144,145],[79,127,132,144,145,162],[79,127,128,133,138,144,145,147,159,170],[79,127,128,129,138,144,145,147],[74,75,76,79,127,144,145],[79,127,130,144,145,171],[79,127,131,132,139,144,145,148],[79,127,132,144,145,159,167],[79,127,133,135,138,144,145,147],[79,126,127,134,144,145],[79,127,135,136,144,145],[79,127,137,138,144,145],[79,126,127,138,144,145],[79,127,138,139,140,144,145,159,170],[79,127,138,139,140,144,145,154,159,162],[79,120,127,135,138,141,144,145,147,159,170],[79,127,138,139,141,142,144,145,147,159,167,170],[79,127,141,143,144,145,159,167,170],[77,78,79,80,81,82,83,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176],[79,127,138,144,145],[79,127,144,145,146,170],[79,127,135,138,144,145,147,159],[79,127,144,145,148],[79,127,144,145,149],[79,126,127,144,145,150],[79,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176],[79,127,144,145,152],[79,127,144,145,153],[79,127,138,144,145,154,155],[79,127,144,145,154,156,171,173],[79,127,139,144,145],[79,127,138,144,145,159,160,162],[79,127,144,145,161,162],[79,127,144,145,159,160],[79,127,144,145,162],[79,127,144,145,163],[79,124,127,144,145,159,164],[79,127,138,144,145,165,166],[79,127,144,145,165,166],[79,127,132,144,145,147,159,167],[79,127,144,145,168],[79,127,144,145,147,169],[79,127,141,144,145,153,170],[79,127,132,144,145,171],[79,127,144,145,159,172],[79,127,144,145,146,173],[79,127,144,145,174],[79,120,127,144,145],[79,120,127,138,140,144,145,150,159,162,170,172,173,175],[79,127,144,145,159,176],[79,127,144,145,185,186,187],[79,127,138,141,143,144,145,147,159,167,170,176,177],[79,92,96,127,144,145,170],[79,92,127,144,145,159,170],[79,87,127,144,145],[79,89,92,127,144,145,167,170],[79,127,144,145,147,167],[79,127,144,145,177],[79,87,127,144,145,177],[79,89,92,127,144,145,147,170],[79,84,85,88,91,127,138,144,145,159,170],[79,92,99,127,144,145],[79,84,90,127,144,145],[79,92,113,114,127,144,145],[79,88,92,127,144,145,162,170,177],[79,113,127,144,145,177],[79,86,87,127,144,145,177],[79,92,127,144,145],[79,86,87,88,89,90,91,92,93,94,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,114,115,116,117,118,119,127,144,145],[79,92,107,127,144,145],[79,92,99,100,127,144,145],[79,90,92,100,101,127,144,145],[79,91,127,144,145],[79,84,87,92,127,144,145],[79,92,96,100,101,127,144,145],[79,96,127,144,145],[79,90,92,95,127,144,145,170],[79,84,89,92,99,127,144,145],[79,127,144,145,159],[79,87,92,113,127,144,145,175,177],[62,65,66,79,127,144,145],[62,65,66,67,79,127,144,145],[62,79,127,144,145],[62,63,64,69,79,127,132,139,144,145],[63,64,69,70,71,72,73,79,127,144,145,179],[62,79,127,144,145,149],[62,64,69,70,71,72,79,127,128,138,144,145,146,148,149,159],[69,79,127,139,144,145,148,149],[62,79,127,128,132,144,145],[68,79,127,144,145],[73,79,127,144,145,178]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b26372f03587939f01aed460310c084c5a4af64f8d84fdaca6e817e4ec2ed83","impliedFormat":99},{"version":"457e09620887639f9cc4562e220cb4fa6148efd3def6bb730a53fcbf6c32009e","impliedFormat":99},{"version":"278c1c10bc136a0baef11111ff6e3d169f3c570acd0915713d664232420d524a","impliedFormat":99},{"version":"5770f07f5bb65fe067e22769a8935ea055dbf8aa90ac6c715b5715ecb12a7686","impliedFormat":99},{"version":"d071adebcf78aa180e0d4d78e4df82d9f369d0680b73081b661164b79106e01b","impliedFormat":99},{"version":"ef676474910e1ea5366f9a391aef6026b7fff89c5018885f7e7fb78ac22ae937","signature":"d48392653b684827ea58e0beacee0bb04c9bf4da3745df85cea037b5ca841bdd","impliedFormat":99},{"version":"06a345c283e7db44e3da183e93dcaeead2ac1d5f6899d805949d1ca795b8d8e3","signature":"e9efd9f3fd0764d546abd5d1c3e2ac320376e52ff2f5f6b346ac4c304c08450f","impliedFormat":99},{"version":"c107e04899784707d0d3012069ee067a03a4a3a063344c4511bde871d0250e1e","impliedFormat":99},{"version":"9b4dbd51b2226a49534d50f241e9440937e0bf106c0f6e36c67067f2ead2338f","impliedFormat":99},{"version":"ef966dbc00876b9ff792577efbdb1a2d2ed57c1d9ed44abd4af924b8dbb28f55","impliedFormat":99},{"version":"dcd3ec66cad92e7d857c2d2ca5d06cc3b28e50d3e7f1b763ed8897806eeab0ad","impliedFormat":99},{"version":"01c46378ae4093f667faecf48218abb74c524bd8830365a29264c5eea8e54efc","signature":"74c13c526aefe1a5e7df0e9ba39f4cd63cd37050745c6484c07c7cabc49d444e","impliedFormat":99},{"version":"7f62c9658a80e74a6798b5205c538e14fa6d6cee26cdab3dd9fb7839a3dd7408","signature":"d840ad571f7e180823f1b8003a564c2b65a358558210b9a1fc98d87129550f00","impliedFormat":99},{"version":"eb6c33a30b7d63f72d48da350f02a1753cdaa90ae869b5849d14f9e792dc21e8","signature":"295aeda76a7a0a46a1e470a88d5d43997732eb6052a626f55a857b7fe6cfc183","impliedFormat":99},{"version":"1991179ed7db518363004d40207ef877c4d46b2578c74e5dd502e2c7eac866ac","signature":"4b50e871b24fae747f2e3bbd63822460183b40456ccf9d84d31dd54eb9185fa1","impliedFormat":99},{"version":"fdc742839d0ef3c13de24f31e57636eba2d6ebcf2cf7fe14f2d952749417bb08","signature":"cace301215fe8cbcfab5e796550cf392109f60c008b0eb2cf5bd1407808a4ea7","impliedFormat":99},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"bb45cd435da536500f1d9692a9b49d0c570b763ccbf00473248b777f5c1f353b","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"83e63d6ccf8ec004a3bb6d58b9bb0104f60e002754b1e968024b320730cc5311","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2bc7425ef40526650d6db7e072c1ff4a51101c3ac2cc4b666623b19496a6e27","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"f27524f4bef4b6519c604bdb23bf4465bddcccbf3f003abb901acbd0d7404d99","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c959a391a75be9789b43c8468f71e3fa06488b4d691d5729dde1416dcd38225b","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"0dba70b3fb0dcd713fda33c2df64fa6751fff6460e536971cee917260fb17882","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"9f663c2f91127ef7024e8ca4b3b4383ff2770e5f826696005de382282794b127","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"316f1486e15cbf7896425f0a16dfe12d447dd57cfb3244b8b119c77df870858f","impliedFormat":99},{"version":"b41a3f0cef84ba37022dc9d313bcb844c94bb77497170984ee2ad884b9f859d1","signature":"8bd76935e56f70f748513a5074cbf6d49f4ff151e4cc9b530ed4fbe9686bd951","impliedFormat":99},{"version":"d3aa4e309eed035be6188c5f6ee2465b647602bdedb1e69e6e673d4e2dd4350f","signature":"48aa11be38d5bc30b8c9b06a26b5954e133468df7758236947be69ca3c332435","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"7a3aa194cfd5919c4da251ef04ea051077e22702638d4edcb9579e9101653519","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ba59c8bbeed2cb75b239bb12041582fa3e8ef32f8d0bd0ec802e38442d3f317","impliedFormat":1}],"root":[63,64,[69,73],179,180],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":199,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9},"referencedMap":[[62,1],[60,2],[58,2],[59,2],[61,3],[183,4],[181,2],[184,2],[124,5],[125,5],[126,6],[79,7],[127,8],[128,9],[129,10],[74,2],[77,11],[75,2],[76,2],[130,12],[131,13],[132,14],[133,15],[134,16],[135,17],[136,17],[137,18],[138,19],[139,20],[140,21],[80,2],[78,2],[141,22],[142,23],[143,24],[177,25],[144,26],[145,2],[146,27],[147,28],[148,29],[149,30],[150,31],[151,32],[152,33],[153,34],[154,35],[155,35],[156,36],[157,2],[158,37],[159,38],[161,39],[160,40],[162,41],[163,42],[164,43],[165,44],[166,45],[167,46],[168,47],[169,48],[170,49],[171,50],[172,51],[173,52],[174,53],[81,2],[82,2],[83,2],[121,54],[122,2],[123,2],[175,55],[176,56],[185,2],[186,2],[188,57],[178,58],[189,58],[182,2],[187,2],[56,2],[57,2],[11,2],[10,2],[2,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[3,2],[20,2],[21,2],[4,2],[22,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[5,2],[30,2],[31,2],[32,2],[33,2],[6,2],[37,2],[34,2],[35,2],[36,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[55,2],[54,2],[1,2],[99,59],[109,60],[98,59],[119,61],[90,62],[89,63],[118,64],[112,65],[117,66],[92,67],[106,68],[91,69],[115,70],[87,71],[86,64],[116,72],[88,73],[93,74],[94,2],[97,74],[84,2],[120,75],[110,76],[101,77],[102,78],[104,79],[100,80],[103,81],[113,64],[95,82],[96,83],[105,84],[85,85],[108,76],[107,74],[111,2],[114,86],[65,2],[67,87],[68,88],[66,89],[70,90],[180,91],[72,92],[63,89],[73,93],[71,94],[64,95],[69,96],[179,97]],"latestChangedDtsFile":"./dist/index.d.ts","version":"5.7.3"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(git config:*)",
|
|
5
|
-
"Bash(gh repo create:*)",
|
|
6
|
-
"Bash(gh org:*)",
|
|
7
|
-
"Bash(gh api:*)",
|
|
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:*)"
|
|
15
|
-
]
|
|
16
|
-
}
|
|
17
|
-
}
|
package/CLAUDE.md
DELETED
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
This file provides guidance to Claude Code when working with this repository.
|
|
4
|
-
|
|
5
|
-
## What is amux?
|
|
6
|
-
|
|
7
|
-
**amux** (Agent Multiplexer) is a library for building agent-powered HTTP servers. Think of it like tmux, but for AI agents over HTTP. It provides:
|
|
8
|
-
|
|
9
|
-
1. **Session management**: Spawn, manage, and multiplex multiple ACP agent sessions
|
|
10
|
-
2. **WebSocket API**: Real-time streaming communication with agents
|
|
11
|
-
3. **State persistence**: Session history, preferences, and replay
|
|
12
|
-
4. **System context injection**: Customize agent behavior with injected knowledge
|
|
13
|
-
|
|
14
|
-
## Project Structure
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
amux/
|
|
18
|
-
├── src/
|
|
19
|
-
│ ├── index.ts # Public API exports
|
|
20
|
-
│ ├── cli.ts # CLI entry point
|
|
21
|
-
│ ├── server.ts # Express + WebSocket server factory
|
|
22
|
-
│ ├── session.ts # AgentSession - core session management
|
|
23
|
-
│ ├── client.ts # AmuxClient - ACP client implementation
|
|
24
|
-
│ ├── terminal.ts # TerminalManager - PTY management
|
|
25
|
-
│ ├── state.ts # StateManager - persistence
|
|
26
|
-
│ ├── session-updates.ts # ACP update normalization
|
|
27
|
-
│ └── types.ts # TypeScript types
|
|
28
|
-
├── package.json
|
|
29
|
-
└── tsconfig.json
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Key Concepts
|
|
33
|
-
|
|
34
|
-
### AgentSession
|
|
35
|
-
|
|
36
|
-
The core class that manages an ACP agent lifecycle:
|
|
37
|
-
- Spawns agent processes (claude-code-acp, codex-acp, pi-acp)
|
|
38
|
-
- Handles ACP protocol communication
|
|
39
|
-
- Manages session state and history
|
|
40
|
-
- Supports system context injection
|
|
41
|
-
|
|
42
|
-
### AmuxClient
|
|
43
|
-
|
|
44
|
-
Implements the ACP Client interface:
|
|
45
|
-
- Filesystem operations (read/write files)
|
|
46
|
-
- Terminal management (spawn commands, get output)
|
|
47
|
-
- Permission request handling
|
|
48
|
-
- Session update broadcasting
|
|
49
|
-
|
|
50
|
-
### Server Factory
|
|
51
|
-
|
|
52
|
-
`createAmuxServer()` provides a batteries-included server:
|
|
53
|
-
- Express app with API routes
|
|
54
|
-
- WebSocket server on `/ws`
|
|
55
|
-
- Automatic agent spawning
|
|
56
|
-
- History replay on reconnect
|
|
57
|
-
|
|
58
|
-
## Build Commands
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
npm run build # Compile TypeScript
|
|
62
|
-
npm run dev # Watch mode
|
|
63
|
-
npm run typecheck # Type check only
|
|
64
|
-
npm run test # Run tests
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## API Design
|
|
68
|
-
|
|
69
|
-
The public API has three levels:
|
|
70
|
-
|
|
71
|
-
1. **High-level**: `createAmuxServer(config)` - Full server in one call
|
|
72
|
-
2. **Mid-level**: `attachAmux(app, server, config)` - Attach to existing Express app
|
|
73
|
-
3. **Low-level**: `AgentSession` class - Full control over session management
|
|
74
|
-
|
|
75
|
-
## State Storage
|
|
76
|
-
|
|
77
|
-
By default, state is stored in `~/.local/state/amux/`:
|
|
78
|
-
- `instance-{id}.json` - Per-instance state (cwd, sessionId, agentType)
|
|
79
|
-
- `session-{id}-history.json` - Session event history for replay
|
|
80
|
-
- `sessions.json` - Session registry with metadata
|
|
81
|
-
|
|
82
|
-
## WebSocket Protocol
|
|
83
|
-
|
|
84
|
-
The WebSocket API on `/ws` uses JSON messages. Key message types:
|
|
85
|
-
|
|
86
|
-
**Client → Server:**
|
|
87
|
-
- `prompt` - Send user message
|
|
88
|
-
- `cancel` - Cancel current operation
|
|
89
|
-
- `permission_response` - Respond to permission request
|
|
90
|
-
- `change_cwd`, `new_session`, `change_agent`, etc.
|
|
91
|
-
|
|
92
|
-
**Server → Client:**
|
|
93
|
-
- `ready` - Connection established
|
|
94
|
-
- `session_update` - Streaming updates from agent
|
|
95
|
-
- `permission_request` - Agent needs permission
|
|
96
|
-
- `history_replay` - Replay events on reconnect
|
|
97
|
-
- `error` - Error occurred
|
|
98
|
-
|
|
99
|
-
## Testing
|
|
100
|
-
|
|
101
|
-
When adding features:
|
|
102
|
-
1. Unit test individual components (StateManager, TerminalManager, etc.)
|
|
103
|
-
2. Integration test the full server with a mock agent
|
|
104
|
-
3. Test WebSocket message handling
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Ashley Hauck
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|