@bytespell/amux 0.0.12 → 0.0.13

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 CHANGED
@@ -1,8 +1,19 @@
1
1
  # amux
2
2
 
3
- **Agent Multiplexer** - EventEmitter-based agent session management.
3
+ **ACP Multiplexer** - the session layer for ACP agents.
4
4
 
5
- Manage ACP agent sessions (Claude Code, Codex, Pi) with a simple event-driven interface. Transport-agnostic core with an optional WebSocket adapter.
5
+ The [ACP TypeScript SDK](https://github.com/agentclientprotocol/typescript-sdk) does the hard work of getting the protocol right - json-rpc transport, type definitions, connection lifecycle. But there's a gap between "I can send messages to an agent" and "I can manage agent sessions in my app".
6
+
7
+ amux fills that gap. Think tmux for agents - spawn sessions, detach, reattach later, pick up where you left off.
8
+
9
+ Everything the SDK doesn't do:
10
+ - Spawn and manage agent processes (the SDK gives you a connection, not a process)
11
+ - Persist session state to disk (detach and reattach later)
12
+ - Replay history on reconnect (your UI picks up where it left off)
13
+ - Handle permission requests with pluggable strategies
14
+ - Switch between agents (Claude Code, Codex, Pi) without changing your code
15
+
16
+ Transport-agnostic core with an optional WebSocket adapter.
6
17
 
7
18
  ## Installation
8
19
 
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=message-parser.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-parser.test.d.ts","sourceRoot":"","sources":["../src/message-parser.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,188 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { parseMessageToContentBlocks } from './message-parser.js';
3
+ describe('parseMessageToContentBlocks', () => {
4
+ const workingDir = '/home/user/project';
5
+ describe('plain text messages', () => {
6
+ it('returns single text block for plain text', () => {
7
+ const result = parseMessageToContentBlocks('hello world', workingDir);
8
+ expect(result).toEqual([{ type: 'text', text: 'hello world' }]);
9
+ });
10
+ it('returns single text block for empty message', () => {
11
+ const result = parseMessageToContentBlocks('', workingDir);
12
+ expect(result).toEqual([{ type: 'text', text: '' }]);
13
+ });
14
+ it('returns single text block for whitespace-only message', () => {
15
+ const result = parseMessageToContentBlocks(' ', workingDir);
16
+ expect(result).toEqual([{ type: 'text', text: ' ' }]);
17
+ });
18
+ it('preserves multi-line text', () => {
19
+ const result = parseMessageToContentBlocks('line one\nline two', workingDir);
20
+ expect(result).toEqual([{ type: 'text', text: 'line one\nline two' }]);
21
+ });
22
+ });
23
+ describe('single @mentions', () => {
24
+ it('parses single @mention as resource_link', () => {
25
+ const result = parseMessageToContentBlocks('@src/foo.ts', workingDir);
26
+ expect(result).toEqual([
27
+ {
28
+ type: 'resource_link',
29
+ uri: 'file:///home/user/project/src/foo.ts',
30
+ name: 'src/foo.ts',
31
+ },
32
+ ]);
33
+ });
34
+ it('parses relative path with ./', () => {
35
+ const result = parseMessageToContentBlocks('@./local.ts', workingDir);
36
+ expect(result).toEqual([
37
+ {
38
+ type: 'resource_link',
39
+ uri: 'file:///home/user/project/local.ts',
40
+ name: './local.ts',
41
+ },
42
+ ]);
43
+ });
44
+ it('parses relative path with ../', () => {
45
+ const result = parseMessageToContentBlocks('@../parent/file.ts', workingDir);
46
+ expect(result).toEqual([
47
+ {
48
+ type: 'resource_link',
49
+ uri: 'file:///home/user/parent/file.ts',
50
+ name: '../parent/file.ts',
51
+ },
52
+ ]);
53
+ });
54
+ it('handles file with dashes in name', () => {
55
+ const result = parseMessageToContentBlocks('@src/my-file.ts', workingDir);
56
+ expect(result).toEqual([
57
+ {
58
+ type: 'resource_link',
59
+ uri: 'file:///home/user/project/src/my-file.ts',
60
+ name: 'src/my-file.ts',
61
+ },
62
+ ]);
63
+ });
64
+ it('handles deeply nested paths', () => {
65
+ const result = parseMessageToContentBlocks('@src/a/b/c/d.ts', workingDir);
66
+ expect(result).toEqual([
67
+ {
68
+ type: 'resource_link',
69
+ uri: 'file:///home/user/project/src/a/b/c/d.ts',
70
+ name: 'src/a/b/c/d.ts',
71
+ },
72
+ ]);
73
+ });
74
+ });
75
+ describe('mixed text and @mentions', () => {
76
+ it('parses text before and after mention', () => {
77
+ const result = parseMessageToContentBlocks('check @src/foo.ts for bugs', workingDir);
78
+ expect(result).toEqual([
79
+ { type: 'text', text: 'check ' },
80
+ {
81
+ type: 'resource_link',
82
+ uri: 'file:///home/user/project/src/foo.ts',
83
+ name: 'src/foo.ts',
84
+ },
85
+ { type: 'text', text: ' for bugs' },
86
+ ]);
87
+ });
88
+ it('parses text only before mention', () => {
89
+ const result = parseMessageToContentBlocks('look at @src/foo.ts', workingDir);
90
+ expect(result).toEqual([
91
+ { type: 'text', text: 'look at ' },
92
+ {
93
+ type: 'resource_link',
94
+ uri: 'file:///home/user/project/src/foo.ts',
95
+ name: 'src/foo.ts',
96
+ },
97
+ ]);
98
+ });
99
+ it('parses text only after mention', () => {
100
+ const result = parseMessageToContentBlocks('@src/foo.ts has a bug', workingDir);
101
+ expect(result).toEqual([
102
+ {
103
+ type: 'resource_link',
104
+ uri: 'file:///home/user/project/src/foo.ts',
105
+ name: 'src/foo.ts',
106
+ },
107
+ { type: 'text', text: ' has a bug' },
108
+ ]);
109
+ });
110
+ });
111
+ describe('multiple @mentions', () => {
112
+ it('parses multiple mentions with text between', () => {
113
+ const result = parseMessageToContentBlocks('@src/a.ts and @src/b.ts', workingDir);
114
+ expect(result).toEqual([
115
+ {
116
+ type: 'resource_link',
117
+ uri: 'file:///home/user/project/src/a.ts',
118
+ name: 'src/a.ts',
119
+ },
120
+ { type: 'text', text: ' and ' },
121
+ {
122
+ type: 'resource_link',
123
+ uri: 'file:///home/user/project/src/b.ts',
124
+ name: 'src/b.ts',
125
+ },
126
+ ]);
127
+ });
128
+ it('parses consecutive mentions without text between', () => {
129
+ const result = parseMessageToContentBlocks('@a.ts @b.ts', workingDir);
130
+ // The space between becomes whitespace-only and gets skipped
131
+ expect(result).toEqual([
132
+ {
133
+ type: 'resource_link',
134
+ uri: 'file:///home/user/project/a.ts',
135
+ name: 'a.ts',
136
+ },
137
+ {
138
+ type: 'resource_link',
139
+ uri: 'file:///home/user/project/b.ts',
140
+ name: 'b.ts',
141
+ },
142
+ ]);
143
+ });
144
+ });
145
+ describe('edge cases', () => {
146
+ it('handles email-like patterns (should not match)', () => {
147
+ // Email addresses should be matched by regex, which may not be desired
148
+ // This test documents current behavior
149
+ const result = parseMessageToContentBlocks('email user@example.com', workingDir);
150
+ // The regex matches @example.com as a mention
151
+ expect(result[0]).toEqual({ type: 'text', text: 'email user' });
152
+ expect(result[1]).toHaveProperty('type', 'resource_link');
153
+ });
154
+ it('handles @ at end of string without path', () => {
155
+ const result = parseMessageToContentBlocks('just an @', workingDir);
156
+ expect(result).toEqual([{ type: 'text', text: 'just an @' }]);
157
+ });
158
+ it('handles multiple @ signs', () => {
159
+ const result = parseMessageToContentBlocks('@@foo.ts', workingDir);
160
+ // First @ doesn't match (followed by @), second @ matches
161
+ expect(result).toHaveLength(2);
162
+ expect(result[0]).toEqual({ type: 'text', text: '@' });
163
+ });
164
+ });
165
+ describe('working directory resolution', () => {
166
+ it('uses provided working directory for absolute path resolution', () => {
167
+ const result = parseMessageToContentBlocks('@file.ts', '/custom/dir');
168
+ expect(result).toEqual([
169
+ {
170
+ type: 'resource_link',
171
+ uri: 'file:///custom/dir/file.ts',
172
+ name: 'file.ts',
173
+ },
174
+ ]);
175
+ });
176
+ it('resolves relative paths correctly from working directory', () => {
177
+ const result = parseMessageToContentBlocks('@../sibling/file.ts', '/home/user/project');
178
+ expect(result).toEqual([
179
+ {
180
+ type: 'resource_link',
181
+ uri: 'file:///home/user/sibling/file.ts',
182
+ name: '../sibling/file.ts',
183
+ },
184
+ ]);
185
+ });
186
+ });
187
+ });
188
+ //# sourceMappingURL=message-parser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-parser.test.js","sourceRoot":"","sources":["../src/message-parser.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-updates.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-updates.test.d.ts","sourceRoot":"","sources":["../src/session-updates.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,223 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { isToolCallUpdate, isToolCallUpdateMessage, normalizeSessionUpdate, } from './session-updates.js';
3
+ describe('isToolCallUpdate', () => {
4
+ it('returns true for tool_call updates', () => {
5
+ const update = {
6
+ sessionUpdate: 'tool_call',
7
+ id: 'test',
8
+ title: 'Test',
9
+ status: 'pending',
10
+ };
11
+ expect(isToolCallUpdate(update)).toBe(true);
12
+ });
13
+ it('returns false for other update types', () => {
14
+ const update = {
15
+ sessionUpdate: 'agent_message_chunk',
16
+ content: { type: 'text', text: 'hello' },
17
+ };
18
+ expect(isToolCallUpdate(update)).toBe(false);
19
+ });
20
+ });
21
+ describe('isToolCallUpdateMessage', () => {
22
+ it('returns true for tool_call_update updates', () => {
23
+ const update = {
24
+ sessionUpdate: 'tool_call_update',
25
+ id: 'test',
26
+ };
27
+ expect(isToolCallUpdateMessage(update)).toBe(true);
28
+ });
29
+ it('returns false for other update types', () => {
30
+ const update = {
31
+ sessionUpdate: 'tool_call',
32
+ id: 'test',
33
+ title: 'Test',
34
+ status: 'pending',
35
+ };
36
+ expect(isToolCallUpdateMessage(update)).toBe(false);
37
+ });
38
+ });
39
+ describe('normalizeSessionUpdate', () => {
40
+ it('passes through non-tool updates unchanged', () => {
41
+ const update = {
42
+ sessionUpdate: 'agent_message_chunk',
43
+ content: { type: 'text', text: 'hello' },
44
+ };
45
+ const result = normalizeSessionUpdate(update);
46
+ expect(result).toEqual(update);
47
+ });
48
+ it('passes through turn_start unchanged', () => {
49
+ const update = {
50
+ sessionUpdate: 'turn_start',
51
+ };
52
+ const result = normalizeSessionUpdate(update);
53
+ expect(result).toEqual(update);
54
+ });
55
+ it('passes through turn_end unchanged', () => {
56
+ const update = {
57
+ sessionUpdate: 'turn_end',
58
+ };
59
+ const result = normalizeSessionUpdate(update);
60
+ expect(result).toEqual(update);
61
+ });
62
+ it('passes through tool_call without content unchanged', () => {
63
+ const update = {
64
+ sessionUpdate: 'tool_call',
65
+ id: 'test',
66
+ title: 'Test Tool',
67
+ status: 'pending',
68
+ };
69
+ const result = normalizeSessionUpdate(update);
70
+ expect(result).toEqual(update);
71
+ });
72
+ it('passes through tool_call with non-diff content unchanged', () => {
73
+ const update = {
74
+ sessionUpdate: 'tool_call',
75
+ id: 'test',
76
+ title: 'Test Tool',
77
+ status: 'pending',
78
+ content: [{ type: 'text', text: 'some output' }],
79
+ };
80
+ const result = normalizeSessionUpdate(update);
81
+ expect(result).toEqual(update);
82
+ });
83
+ it('normalizes tool_call with diff content', () => {
84
+ const update = {
85
+ sessionUpdate: 'tool_call',
86
+ id: 'test',
87
+ title: 'Edit File',
88
+ status: 'completed',
89
+ content: [
90
+ {
91
+ type: 'diff',
92
+ oldText: 'old content',
93
+ newText: 'new content',
94
+ path: '/path/to/file.ts',
95
+ },
96
+ ],
97
+ };
98
+ const result = normalizeSessionUpdate(update);
99
+ // Should have same structure but with normalized diff
100
+ expect(result.sessionUpdate).toBe('tool_call');
101
+ expect(result.content).toHaveLength(1);
102
+ const diffContent = result.content[0];
103
+ expect(diffContent.type).toBe('diff');
104
+ // The newText should now contain unified diff format
105
+ const normalizedDiff = diffContent;
106
+ expect(normalizedDiff.newText).toContain('Index: /path/to/file.ts');
107
+ expect(normalizedDiff.newText).toContain('---');
108
+ expect(normalizedDiff.newText).toContain('+++');
109
+ expect(normalizedDiff.newText).toContain('-old content');
110
+ expect(normalizedDiff.newText).toContain('+new content');
111
+ expect(normalizedDiff.oldText).toBe('');
112
+ expect(normalizedDiff.path).toBe('/path/to/file.ts');
113
+ });
114
+ it('normalizes tool_call_update with diff content', () => {
115
+ const update = {
116
+ sessionUpdate: 'tool_call_update',
117
+ id: 'test',
118
+ content: [
119
+ {
120
+ type: 'diff',
121
+ oldText: 'line1\nline2',
122
+ newText: 'line1\nmodified',
123
+ path: 'test.ts',
124
+ },
125
+ ],
126
+ };
127
+ const result = normalizeSessionUpdate(update);
128
+ const diffContent = result.content[0];
129
+ expect(diffContent.newText).toContain('-line1');
130
+ expect(diffContent.newText).toContain('-line2');
131
+ expect(diffContent.newText).toContain('+line1');
132
+ expect(diffContent.newText).toContain('+modified');
133
+ });
134
+ it('handles empty oldText (new file creation)', () => {
135
+ const update = {
136
+ sessionUpdate: 'tool_call',
137
+ id: 'test',
138
+ title: 'Write File',
139
+ status: 'completed',
140
+ content: [
141
+ {
142
+ type: 'diff',
143
+ oldText: '',
144
+ newText: 'new file content',
145
+ path: 'new-file.ts',
146
+ },
147
+ ],
148
+ };
149
+ const result = normalizeSessionUpdate(update);
150
+ const diffContent = result.content[0];
151
+ expect(diffContent.newText).toContain('@@ -0,0 +1,1 @@');
152
+ expect(diffContent.newText).toContain('+new file content');
153
+ // No removed lines in the diff body (lines starting with - followed by content, not headers)
154
+ const lines = diffContent.newText.split('\n');
155
+ const removedLines = lines.filter(l => l.startsWith('-') && !l.startsWith('---'));
156
+ expect(removedLines).toHaveLength(0);
157
+ });
158
+ it('handles multi-line diffs', () => {
159
+ const update = {
160
+ sessionUpdate: 'tool_call',
161
+ id: 'test',
162
+ title: 'Edit File',
163
+ status: 'completed',
164
+ content: [
165
+ {
166
+ type: 'diff',
167
+ oldText: 'line1\nline2\nline3',
168
+ newText: 'line1\nmodified\nline3\nline4',
169
+ path: 'file.ts',
170
+ },
171
+ ],
172
+ };
173
+ const result = normalizeSessionUpdate(update);
174
+ const diffContent = result.content[0];
175
+ // Should have correct line counts in header
176
+ expect(diffContent.newText).toContain('@@ -1,3 +1,4 @@');
177
+ });
178
+ it('uses "file" as default path when path is missing', () => {
179
+ const update = {
180
+ sessionUpdate: 'tool_call',
181
+ id: 'test',
182
+ title: 'Edit',
183
+ status: 'completed',
184
+ content: [
185
+ {
186
+ type: 'diff',
187
+ oldText: 'old',
188
+ newText: 'new',
189
+ // path intentionally omitted
190
+ },
191
+ ],
192
+ };
193
+ const result = normalizeSessionUpdate(update);
194
+ const diffContent = result.content[0];
195
+ expect(diffContent.newText).toContain('Index: file');
196
+ expect(diffContent.path).toBe('file');
197
+ });
198
+ it('preserves mixed content types in tool_call', () => {
199
+ const update = {
200
+ sessionUpdate: 'tool_call',
201
+ id: 'test',
202
+ title: 'Complex Tool',
203
+ status: 'completed',
204
+ content: [
205
+ { type: 'text', text: 'Before diff' },
206
+ {
207
+ type: 'diff',
208
+ oldText: 'old',
209
+ newText: 'new',
210
+ path: 'file.ts',
211
+ },
212
+ { type: 'text', text: 'After diff' },
213
+ ],
214
+ };
215
+ const result = normalizeSessionUpdate(update);
216
+ const content = result.content;
217
+ expect(content).toHaveLength(3);
218
+ expect(content[0]).toEqual({ type: 'text', text: 'Before diff' });
219
+ expect(content[1]?.type).toBe('diff');
220
+ expect(content[2]).toEqual({ type: 'text', text: 'After diff' });
221
+ });
222
+ });
223
+ //# sourceMappingURL=session-updates.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-updates.test.js","sourceRoot":"","sources":["../src/session-updates.test.ts"],"names":[],"mappings":"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"}
package/dist/session.d.ts CHANGED
@@ -78,6 +78,7 @@ export declare class AgentSession extends EventEmitter {
78
78
  private agentProcess;
79
79
  private acpConnection;
80
80
  private _agentCapabilities;
81
+ private _changingCwd;
81
82
  private terminalManager;
82
83
  private amuxClient;
83
84
  private stateManager;
@@ -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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAMhD,OAAO,KAAK,EACV,kBAAkB,EAElB,kBAAkB,EAClB,eAAe,EAChB,MAAM,YAAY,CAAC;AAKpB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,cAAc,CAAC,EAAE,kBAAkB,CAAC;QACpC,YAAY,EAAE,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC3C,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QACtC,eAAe,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACtD,CAAC;IACF,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,kBAAkB,EAAE;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC;QACxB,OAAO,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAC;KACjC,CAAC;IACF,eAAe,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,eAAe,EAAE;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC9C,gBAAgB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,cAAc,EAAE;QACd,iBAAiB,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,OAAO,EAAE,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC3D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CACnC;AAcD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,YAAa,SAAQ,YAAY;IAE5C,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAC,CAAS;IAGhC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,kBAAkB,CAAsC;IAChE,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,YAAY,CAAe;IAGnC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,MAAM,CAA8B;gBAEhC,MAAM,EAAE,kBAAkB;IAuB7B,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC9C,KAAK,EAAE,CAAC,EACR,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC1B,OAAO;IAID,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC5C,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAC9C,IAAI;IAIE,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC9C,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAC9C,IAAI;IAIP;;OAEG;IACH,OAAO,CAAC,UAAU;IAKlB;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB,IAAI,GAAG,IAAI,MAAM,CAAsB;IACvC,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAA4B;IAC1D,IAAI,SAAS,IAAI,MAAM,CAA4B;IACnD,IAAI,iBAAiB,IAAI,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAoC;IACzF,IAAI,WAAW,IAAI,OAAO,CAAwC;IAClE,IAAI,aAAa,IAAI,MAAM,GAAG,SAAS,CAAgC;IAEvE;;OAEG;IACH,YAAY,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAO9C;;OAEG;IACH,kBAAkB,IAAI,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAIzD;;OAEG;IACH,OAAO,CAAC,SAAS;IAQjB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAwGjC;;OAEG;YACW,iBAAiB;IAwD/B;;OAEG;YACW,mBAAmB;IAkBjC;;OAEG;YACW,gCAAgC;IAwB9C;;OAEG;YACW,gBAAgB;IAoB9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAmC/D;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9D;;OAEG;IACH,YAAY,IAAI,eAAe,EAAE;IAQjC;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IAIxB;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuDrD;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B/C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBjC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW5C;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9C;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQhC;;OAEG;IACH,QAAQ,IAAI,IAAI;CAIjB"}
package/dist/session.js CHANGED
@@ -49,6 +49,7 @@ export class AgentSession extends EventEmitter {
49
49
  agentProcess = null;
50
50
  acpConnection = null;
51
51
  _agentCapabilities = null;
52
+ _changingCwd = false;
52
53
  // Components
53
54
  terminalManager;
54
55
  amuxClient = null;
@@ -475,11 +476,27 @@ export class AgentSession extends EventEmitter {
475
476
  if (this.fixedCwd) {
476
477
  throw new Error('Working directory is fixed for this session');
477
478
  }
478
- this._cwd = newPath;
479
- this._sessionId = null;
480
- this.saveState();
481
- await this.killAgent();
482
- await this.spawnAgent();
479
+ // Prevent concurrent cwd changes
480
+ if (this._changingCwd) {
481
+ console.log('[amux] changeCwd already in progress, ignoring');
482
+ return;
483
+ }
484
+ // Same path, nothing to do
485
+ if (newPath === this._cwd) {
486
+ console.log('[amux] changeCwd same path, ignoring');
487
+ return;
488
+ }
489
+ this._changingCwd = true;
490
+ try {
491
+ this._cwd = newPath;
492
+ this._sessionId = null;
493
+ this.saveState();
494
+ await this.killAgent();
495
+ await this.spawnAgent();
496
+ }
497
+ finally {
498
+ this._changingCwd = false;
499
+ }
483
500
  }
484
501
  /**
485
502
  * Create a new session
@@ -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":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAOlE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,eAAe,GAAG,KAAK,CAAC;AAmC9B;;GAEG;AACH,SAAS,WAAW,CAAI,OAAmB,EAAE,EAAU,EAAE,SAAiB;IACxE,OAAO,OAAO,CAAC,IAAI,CAAC;QAClB,OAAO;QACP,IAAI,OAAO,CAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC3B,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,SAAS,oBAAoB,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAChF;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAY;IAC5C,gBAAgB;IACR,IAAI,CAAS;IACb,UAAU,CAAgB;IAC1B,UAAU,CAAS;IACnB,cAAc,CAAU;IAEhC,sBAAsB;IACd,YAAY,GAAwB,IAAI,CAAC;IACzC,aAAa,GAAoC,IAAI,CAAC;IACtD,kBAAkB,GAAiC,IAAI,CAAC;IACxD,YAAY,GAAG,KAAK,CAAC;IAE7B,aAAa;IACL,eAAe,CAAkB;IACjC,UAAU,GAAsB,IAAI,CAAC;IACrC,YAAY,CAAe;IAEnC,SAAS;IACD,UAAU,CAAS;IACnB,QAAQ,CAAS;IACjB,QAAQ,CAAU;IAClB,MAAM,CAA8B;IAE5C,YAAY,MAA0B;QACpC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;QAE7B,uBAAuB;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtD,uBAAuB;QACvB,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,SAAS,IAAI,IAAI,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS,IAAI,aAAa,CAAC;QAEhF,0CAA0C;QAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,kCAAkC;IACzB,IAAI,CACX,KAAQ,EACR,IAA2B;QAE3B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAEQ,EAAE,CACT,KAAQ,EACR,QAA+C;QAE/C,OAAO,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAEQ,IAAI,CACX,KAAQ,EACR,QAA+C;QAE/C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,MAAyB;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,KAAgC;QACrD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,+BAA+B;IAC/B,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,IAAI,SAAS,KAAoB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,IAAI,SAAS,KAAa,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACnD,IAAI,iBAAiB,KAAmC,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACzF,IAAI,WAAW,KAAc,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC;IAClE,IAAI,aAAa,KAAyB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;IAEvE;;OAEG;IACH,YAAY;QACV,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,IAAI,SAAS;SACtD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACK,SAAS;QACf,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE;YAC3C,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,SAAS,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,WAAmB;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACvF,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3B,IAAI,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAC5B,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;gBACnB,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAChD,CAAC;YACD,WAAW,IAAI,KAAK,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,0BAA0B,WAAW,GAAG,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,uBAAuB,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE;YACrC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;YACvB,GAAG,EAAE,IAAI,CAAC,IAAI;SACf,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QAE/B,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC7C,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC7B,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,0BAA0B,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACzE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACrC,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,YAAY,MAAM,EAAE,CAAC,CAAC;YACnE,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;gBACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAM,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,MAAO,CAAC,CAAC;QAElD,mCAAmC;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/D,0CAA0C;YAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACpD,IAAI,CAAC,UAAU,CAAE,KAAK,CAAC,MAA2B,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAC/C,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;oBAC9B,SAAS,EAAE,KAAK,CAAC,SAAmB;oBACpC,QAAQ,EAAE,KAAK,CAAC,QAAoC;oBACpD,OAAO,EAAE,KAAK,CAAC,OAAiC;iBACjD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAW,EAAE,MAAM,CAAC,CAAC;QAElF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,WAAW,CAClC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;gBAC5B,eAAe,EAAE,GAAG,CAAC,gBAAgB;gBACrC,kBAAkB,EAAE;oBAClB,EAAE,EAAE;wBACF,YAAY,EAAE,IAAI;wBAClB,aAAa,EAAE,IAAI;qBACpB;oBACD,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC,EACF,eAAe,EACf,sBAAsB,CACvB,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,wCAAwC,UAAU,CAAC,eAAe,GAAG,CAAC,CAAC;YACnF,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,iBAAiB,IAAI,IAAI,CAAC;YAE/D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;YAElF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,GAAG,EAAE,IAAI,CAAC,IAAI;gBACd,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,cAAc;gBACd,YAAY,EAAE,IAAI,CAAC,kBAAkB;gBACrC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE;gBAC1B,eAAe,EAAE,IAAI,CAAC,kBAAkB,EAAE;aAC3C,CAAC,CAAC;QAEL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;YACzD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,+BAAgC,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzF,UAAU,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;gBACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAC7B,YAA+C;QAE/C,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAE1C,MAAM,cAAc,GAAG,YAAY,EAAE,WAAW,KAAK,IAAI,CAAC;QAC1D,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC;QAE1C,IAAI,cAAc,GAAmC,SAAS,CAAC;QAE/D,IAAI,IAAI,CAAC,UAAU,IAAI,cAAc,EAAE,CAAC;YACtC,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,WAAW,CACf,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;oBAC7B,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,GAAG,EAAE,IAAI,CAAC,IAAI;oBACd,UAAU,EAAE,EAAE;iBACf,CAAC,EACF,eAAe,EACf,cAAc,CACf,CAAC;gBAEF,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACvD,cAAc,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBACpC,aAAa,GAAG,IAAI,CAAC;gBAErB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;YAAC,OAAO,OAAO,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,+BAAgC,OAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3E,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpD,cAAc,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;gBAChF,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAEpD,IAAI,kBAAkB,IAAI,iBAAiB,EAAE,CAAC;gBAC5C,cAAc,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,IAAI,cAAc,EAAE,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC7D,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB;QAC/B,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE5E,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAG,qBAAqB,IAAI,CAAC,cAAc,6FAA6F,CAAC;QAE5J,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC9B,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;aAChD,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gCAAgC,CAC5C,iBAAgC;QAEhC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC;QACxE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;QAC/E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,iBAAiB;YACjB,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,OAAO,CAAC,MAAM;SAC3B,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,YAAY,OAAO,CAAC,MAAM,gCAAgC;SACnE,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,WAAW,CACrC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EACjE,eAAe,EACf,sBAAsB,CACvB,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,aAAqC;QAC7D,IAAI,aAAa,EAAE,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,aAAa,EAAE,qBAAqB;gBACpC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa;aACjD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAE7D,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE/B,8BAA8B;QAC9B,IAAI,CAAC,UAAU,CAAE;YACf,aAAa,EAAE,oBAAoB;YACnC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;SACzC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,4CAA4C;YAC5C,MAAM,OAAO,GAAG,2BAA2B,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC7C,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAChE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAmB,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC5E,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,SAAiB,EAAE,QAAgB;QACrD,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,YAAY;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxB,GAAG,CAAC;YACJ,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU;SACpC,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE,WAAW,KAAK,IAAI,CAAC;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,KAAK,SAAS,CAAC;QAErF,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC;YACH,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,WAAW,CACf,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;oBAC7B,SAAS;oBACT,GAAG,EAAE,IAAI,CAAC,IAAI;oBACd,UAAU,EAAE,EAAE;iBACf,CAAC,EACF,eAAe,EACf,cAAc,CACf,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,CACf,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC;oBACxC,SAAS;oBACT,GAAG,EAAE,IAAI,CAAC,IAAI;oBACd,UAAU,EAAE,EAAE;iBACf,CAAC,EACF,eAAe,EACf,gBAAgB,CACjB,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;YAEjB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAE9D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACzD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;oBAC1B,iBAAiB,EAAE,SAAS;oBAC5B,MAAM,EAAE,OAAO;oBACf,UAAU,EAAE,OAAO,CAAC,MAAM;iBAC3B,CAAC,CAAC;YACL,CAAC;QAEH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;YACvD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QAED,iCAAiC;QACjC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;YAEjB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YACxD,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAEtC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;YACtC,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC;YAChD,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;YAEjB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;CACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bytespell/amux",
3
- "version": "0.0.12",
4
- "description": "Agent Multiplexer - EventEmitter-based agent session management",
3
+ "version": "0.0.13",
4
+ "description": "ACP Multiplexer - the session layer for ACP agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -0,0 +1,207 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { parseMessageToContentBlocks } from './message-parser.js';
3
+
4
+ describe('parseMessageToContentBlocks', () => {
5
+ const workingDir = '/home/user/project';
6
+
7
+ describe('plain text messages', () => {
8
+ it('returns single text block for plain text', () => {
9
+ const result = parseMessageToContentBlocks('hello world', workingDir);
10
+ expect(result).toEqual([{ type: 'text', text: 'hello world' }]);
11
+ });
12
+
13
+ it('returns single text block for empty message', () => {
14
+ const result = parseMessageToContentBlocks('', workingDir);
15
+ expect(result).toEqual([{ type: 'text', text: '' }]);
16
+ });
17
+
18
+ it('returns single text block for whitespace-only message', () => {
19
+ const result = parseMessageToContentBlocks(' ', workingDir);
20
+ expect(result).toEqual([{ type: 'text', text: ' ' }]);
21
+ });
22
+
23
+ it('preserves multi-line text', () => {
24
+ const result = parseMessageToContentBlocks('line one\nline two', workingDir);
25
+ expect(result).toEqual([{ type: 'text', text: 'line one\nline two' }]);
26
+ });
27
+ });
28
+
29
+ describe('single @mentions', () => {
30
+ it('parses single @mention as resource_link', () => {
31
+ const result = parseMessageToContentBlocks('@src/foo.ts', workingDir);
32
+ expect(result).toEqual([
33
+ {
34
+ type: 'resource_link',
35
+ uri: 'file:///home/user/project/src/foo.ts',
36
+ name: 'src/foo.ts',
37
+ },
38
+ ]);
39
+ });
40
+
41
+ it('parses relative path with ./', () => {
42
+ const result = parseMessageToContentBlocks('@./local.ts', workingDir);
43
+ expect(result).toEqual([
44
+ {
45
+ type: 'resource_link',
46
+ uri: 'file:///home/user/project/local.ts',
47
+ name: './local.ts',
48
+ },
49
+ ]);
50
+ });
51
+
52
+ it('parses relative path with ../', () => {
53
+ const result = parseMessageToContentBlocks('@../parent/file.ts', workingDir);
54
+ expect(result).toEqual([
55
+ {
56
+ type: 'resource_link',
57
+ uri: 'file:///home/user/parent/file.ts',
58
+ name: '../parent/file.ts',
59
+ },
60
+ ]);
61
+ });
62
+
63
+ it('handles file with dashes in name', () => {
64
+ const result = parseMessageToContentBlocks('@src/my-file.ts', workingDir);
65
+ expect(result).toEqual([
66
+ {
67
+ type: 'resource_link',
68
+ uri: 'file:///home/user/project/src/my-file.ts',
69
+ name: 'src/my-file.ts',
70
+ },
71
+ ]);
72
+ });
73
+
74
+ it('handles deeply nested paths', () => {
75
+ const result = parseMessageToContentBlocks('@src/a/b/c/d.ts', workingDir);
76
+ expect(result).toEqual([
77
+ {
78
+ type: 'resource_link',
79
+ uri: 'file:///home/user/project/src/a/b/c/d.ts',
80
+ name: 'src/a/b/c/d.ts',
81
+ },
82
+ ]);
83
+ });
84
+ });
85
+
86
+ describe('mixed text and @mentions', () => {
87
+ it('parses text before and after mention', () => {
88
+ const result = parseMessageToContentBlocks('check @src/foo.ts for bugs', workingDir);
89
+ expect(result).toEqual([
90
+ { type: 'text', text: 'check ' },
91
+ {
92
+ type: 'resource_link',
93
+ uri: 'file:///home/user/project/src/foo.ts',
94
+ name: 'src/foo.ts',
95
+ },
96
+ { type: 'text', text: ' for bugs' },
97
+ ]);
98
+ });
99
+
100
+ it('parses text only before mention', () => {
101
+ const result = parseMessageToContentBlocks('look at @src/foo.ts', workingDir);
102
+ expect(result).toEqual([
103
+ { type: 'text', text: 'look at ' },
104
+ {
105
+ type: 'resource_link',
106
+ uri: 'file:///home/user/project/src/foo.ts',
107
+ name: 'src/foo.ts',
108
+ },
109
+ ]);
110
+ });
111
+
112
+ it('parses text only after mention', () => {
113
+ const result = parseMessageToContentBlocks('@src/foo.ts has a bug', workingDir);
114
+ expect(result).toEqual([
115
+ {
116
+ type: 'resource_link',
117
+ uri: 'file:///home/user/project/src/foo.ts',
118
+ name: 'src/foo.ts',
119
+ },
120
+ { type: 'text', text: ' has a bug' },
121
+ ]);
122
+ });
123
+ });
124
+
125
+ describe('multiple @mentions', () => {
126
+ it('parses multiple mentions with text between', () => {
127
+ const result = parseMessageToContentBlocks('@src/a.ts and @src/b.ts', workingDir);
128
+ expect(result).toEqual([
129
+ {
130
+ type: 'resource_link',
131
+ uri: 'file:///home/user/project/src/a.ts',
132
+ name: 'src/a.ts',
133
+ },
134
+ { type: 'text', text: ' and ' },
135
+ {
136
+ type: 'resource_link',
137
+ uri: 'file:///home/user/project/src/b.ts',
138
+ name: 'src/b.ts',
139
+ },
140
+ ]);
141
+ });
142
+
143
+ it('parses consecutive mentions without text between', () => {
144
+ const result = parseMessageToContentBlocks('@a.ts @b.ts', workingDir);
145
+ // The space between becomes whitespace-only and gets skipped
146
+ expect(result).toEqual([
147
+ {
148
+ type: 'resource_link',
149
+ uri: 'file:///home/user/project/a.ts',
150
+ name: 'a.ts',
151
+ },
152
+ {
153
+ type: 'resource_link',
154
+ uri: 'file:///home/user/project/b.ts',
155
+ name: 'b.ts',
156
+ },
157
+ ]);
158
+ });
159
+ });
160
+
161
+ describe('edge cases', () => {
162
+ it('handles email-like patterns (should not match)', () => {
163
+ // Email addresses should be matched by regex, which may not be desired
164
+ // This test documents current behavior
165
+ const result = parseMessageToContentBlocks('email user@example.com', workingDir);
166
+ // The regex matches @example.com as a mention
167
+ expect(result[0]).toEqual({ type: 'text', text: 'email user' });
168
+ expect(result[1]).toHaveProperty('type', 'resource_link');
169
+ });
170
+
171
+ it('handles @ at end of string without path', () => {
172
+ const result = parseMessageToContentBlocks('just an @', workingDir);
173
+ expect(result).toEqual([{ type: 'text', text: 'just an @' }]);
174
+ });
175
+
176
+ it('handles multiple @ signs', () => {
177
+ const result = parseMessageToContentBlocks('@@foo.ts', workingDir);
178
+ // First @ doesn't match (followed by @), second @ matches
179
+ expect(result).toHaveLength(2);
180
+ expect(result[0]).toEqual({ type: 'text', text: '@' });
181
+ });
182
+ });
183
+
184
+ describe('working directory resolution', () => {
185
+ it('uses provided working directory for absolute path resolution', () => {
186
+ const result = parseMessageToContentBlocks('@file.ts', '/custom/dir');
187
+ expect(result).toEqual([
188
+ {
189
+ type: 'resource_link',
190
+ uri: 'file:///custom/dir/file.ts',
191
+ name: 'file.ts',
192
+ },
193
+ ]);
194
+ });
195
+
196
+ it('resolves relative paths correctly from working directory', () => {
197
+ const result = parseMessageToContentBlocks('@../sibling/file.ts', '/home/user/project');
198
+ expect(result).toEqual([
199
+ {
200
+ type: 'resource_link',
201
+ uri: 'file:///home/user/sibling/file.ts',
202
+ name: '../sibling/file.ts',
203
+ },
204
+ ]);
205
+ });
206
+ });
207
+ });
@@ -0,0 +1,265 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import {
3
+ isToolCallUpdate,
4
+ isToolCallUpdateMessage,
5
+ normalizeSessionUpdate,
6
+ } from './session-updates.js';
7
+ import type * as acp from '@agentclientprotocol/sdk';
8
+
9
+ describe('isToolCallUpdate', () => {
10
+ it('returns true for tool_call updates', () => {
11
+ const update = {
12
+ sessionUpdate: 'tool_call',
13
+ id: 'test',
14
+ title: 'Test',
15
+ status: 'pending',
16
+ } as acp.SessionUpdate;
17
+ expect(isToolCallUpdate(update)).toBe(true);
18
+ });
19
+
20
+ it('returns false for other update types', () => {
21
+ const update = {
22
+ sessionUpdate: 'agent_message_chunk',
23
+ content: { type: 'text', text: 'hello' },
24
+ } as acp.SessionUpdate;
25
+ expect(isToolCallUpdate(update)).toBe(false);
26
+ });
27
+ });
28
+
29
+ describe('isToolCallUpdateMessage', () => {
30
+ it('returns true for tool_call_update updates', () => {
31
+ const update = {
32
+ sessionUpdate: 'tool_call_update',
33
+ id: 'test',
34
+ } as acp.SessionUpdate;
35
+ expect(isToolCallUpdateMessage(update)).toBe(true);
36
+ });
37
+
38
+ it('returns false for other update types', () => {
39
+ const update = {
40
+ sessionUpdate: 'tool_call',
41
+ id: 'test',
42
+ title: 'Test',
43
+ status: 'pending',
44
+ } as acp.SessionUpdate;
45
+ expect(isToolCallUpdateMessage(update)).toBe(false);
46
+ });
47
+ });
48
+
49
+ describe('normalizeSessionUpdate', () => {
50
+ it('passes through non-tool updates unchanged', () => {
51
+ const update: acp.SessionUpdate = {
52
+ sessionUpdate: 'agent_message_chunk',
53
+ content: { type: 'text', text: 'hello' },
54
+ };
55
+ const result = normalizeSessionUpdate(update);
56
+ expect(result).toEqual(update);
57
+ });
58
+
59
+ it('passes through turn_start unchanged', () => {
60
+ const update: acp.SessionUpdate = {
61
+ sessionUpdate: 'turn_start',
62
+ };
63
+ const result = normalizeSessionUpdate(update);
64
+ expect(result).toEqual(update);
65
+ });
66
+
67
+ it('passes through turn_end unchanged', () => {
68
+ const update: acp.SessionUpdate = {
69
+ sessionUpdate: 'turn_end',
70
+ };
71
+ const result = normalizeSessionUpdate(update);
72
+ expect(result).toEqual(update);
73
+ });
74
+
75
+ it('passes through tool_call without content unchanged', () => {
76
+ const update = {
77
+ sessionUpdate: 'tool_call',
78
+ id: 'test',
79
+ title: 'Test Tool',
80
+ status: 'pending',
81
+ } as acp.SessionUpdate;
82
+ const result = normalizeSessionUpdate(update);
83
+ expect(result).toEqual(update);
84
+ });
85
+
86
+ it('passes through tool_call with non-diff content unchanged', () => {
87
+ const update = {
88
+ sessionUpdate: 'tool_call',
89
+ id: 'test',
90
+ title: 'Test Tool',
91
+ status: 'pending',
92
+ content: [{ type: 'text', text: 'some output' }],
93
+ } as acp.SessionUpdate;
94
+ const result = normalizeSessionUpdate(update);
95
+ expect(result).toEqual(update);
96
+ });
97
+
98
+ it('normalizes tool_call with diff content', () => {
99
+ const update = {
100
+ sessionUpdate: 'tool_call',
101
+ id: 'test',
102
+ title: 'Edit File',
103
+ status: 'completed',
104
+ content: [
105
+ {
106
+ type: 'diff',
107
+ oldText: 'old content',
108
+ newText: 'new content',
109
+ path: '/path/to/file.ts',
110
+ },
111
+ ],
112
+ } as acp.SessionUpdate;
113
+
114
+ const result = normalizeSessionUpdate(update);
115
+
116
+ // Should have same structure but with normalized diff
117
+ expect(result.sessionUpdate).toBe('tool_call');
118
+ expect((result as { content?: acp.ToolCallContent[] }).content).toHaveLength(1);
119
+
120
+ const diffContent = (result as { content: acp.ToolCallContent[] }).content[0];
121
+ expect(diffContent.type).toBe('diff');
122
+
123
+ // The newText should now contain unified diff format
124
+ const normalizedDiff = diffContent as { newText: string; oldText: string; path: string };
125
+ expect(normalizedDiff.newText).toContain('Index: /path/to/file.ts');
126
+ expect(normalizedDiff.newText).toContain('---');
127
+ expect(normalizedDiff.newText).toContain('+++');
128
+ expect(normalizedDiff.newText).toContain('-old content');
129
+ expect(normalizedDiff.newText).toContain('+new content');
130
+ expect(normalizedDiff.oldText).toBe('');
131
+ expect(normalizedDiff.path).toBe('/path/to/file.ts');
132
+ });
133
+
134
+ it('normalizes tool_call_update with diff content', () => {
135
+ const update = {
136
+ sessionUpdate: 'tool_call_update',
137
+ id: 'test',
138
+ content: [
139
+ {
140
+ type: 'diff',
141
+ oldText: 'line1\nline2',
142
+ newText: 'line1\nmodified',
143
+ path: 'test.ts',
144
+ },
145
+ ],
146
+ } as acp.SessionUpdate;
147
+
148
+ const result = normalizeSessionUpdate(update);
149
+ const diffContent = (result as { content: acp.ToolCallContent[] }).content[0] as {
150
+ newText: string;
151
+ };
152
+
153
+ expect(diffContent.newText).toContain('-line1');
154
+ expect(diffContent.newText).toContain('-line2');
155
+ expect(diffContent.newText).toContain('+line1');
156
+ expect(diffContent.newText).toContain('+modified');
157
+ });
158
+
159
+ it('handles empty oldText (new file creation)', () => {
160
+ const update = {
161
+ sessionUpdate: 'tool_call',
162
+ id: 'test',
163
+ title: 'Write File',
164
+ status: 'completed',
165
+ content: [
166
+ {
167
+ type: 'diff',
168
+ oldText: '',
169
+ newText: 'new file content',
170
+ path: 'new-file.ts',
171
+ },
172
+ ],
173
+ } as acp.SessionUpdate;
174
+
175
+ const result = normalizeSessionUpdate(update);
176
+ const diffContent = (result as { content: acp.ToolCallContent[] }).content[0] as {
177
+ newText: string;
178
+ };
179
+
180
+ expect(diffContent.newText).toContain('@@ -0,0 +1,1 @@');
181
+ expect(diffContent.newText).toContain('+new file content');
182
+ // No removed lines in the diff body (lines starting with - followed by content, not headers)
183
+ const lines = diffContent.newText.split('\n');
184
+ const removedLines = lines.filter(l => l.startsWith('-') && !l.startsWith('---'));
185
+ expect(removedLines).toHaveLength(0);
186
+ });
187
+
188
+ it('handles multi-line diffs', () => {
189
+ const update = {
190
+ sessionUpdate: 'tool_call',
191
+ id: 'test',
192
+ title: 'Edit File',
193
+ status: 'completed',
194
+ content: [
195
+ {
196
+ type: 'diff',
197
+ oldText: 'line1\nline2\nline3',
198
+ newText: 'line1\nmodified\nline3\nline4',
199
+ path: 'file.ts',
200
+ },
201
+ ],
202
+ } as acp.SessionUpdate;
203
+
204
+ const result = normalizeSessionUpdate(update);
205
+ const diffContent = (result as { content: acp.ToolCallContent[] }).content[0] as {
206
+ newText: string;
207
+ };
208
+
209
+ // Should have correct line counts in header
210
+ expect(diffContent.newText).toContain('@@ -1,3 +1,4 @@');
211
+ });
212
+
213
+ it('uses "file" as default path when path is missing', () => {
214
+ const update = {
215
+ sessionUpdate: 'tool_call',
216
+ id: 'test',
217
+ title: 'Edit',
218
+ status: 'completed',
219
+ content: [
220
+ {
221
+ type: 'diff',
222
+ oldText: 'old',
223
+ newText: 'new',
224
+ // path intentionally omitted
225
+ },
226
+ ],
227
+ } as acp.SessionUpdate;
228
+
229
+ const result = normalizeSessionUpdate(update);
230
+ const diffContent = (result as { content: acp.ToolCallContent[] }).content[0] as {
231
+ newText: string;
232
+ path: string;
233
+ };
234
+
235
+ expect(diffContent.newText).toContain('Index: file');
236
+ expect(diffContent.path).toBe('file');
237
+ });
238
+
239
+ it('preserves mixed content types in tool_call', () => {
240
+ const update = {
241
+ sessionUpdate: 'tool_call',
242
+ id: 'test',
243
+ title: 'Complex Tool',
244
+ status: 'completed',
245
+ content: [
246
+ { type: 'text', text: 'Before diff' },
247
+ {
248
+ type: 'diff',
249
+ oldText: 'old',
250
+ newText: 'new',
251
+ path: 'file.ts',
252
+ },
253
+ { type: 'text', text: 'After diff' },
254
+ ],
255
+ } as acp.SessionUpdate;
256
+
257
+ const result = normalizeSessionUpdate(update);
258
+ const content = (result as { content: acp.ToolCallContent[] }).content;
259
+
260
+ expect(content).toHaveLength(3);
261
+ expect(content[0]).toEqual({ type: 'text', text: 'Before diff' });
262
+ expect(content[1]?.type).toBe('diff');
263
+ expect(content[2]).toEqual({ type: 'text', text: 'After diff' });
264
+ });
265
+ });
package/src/session.ts CHANGED
@@ -96,6 +96,7 @@ export class AgentSession extends EventEmitter {
96
96
  private agentProcess: ChildProcess | null = null;
97
97
  private acpConnection: acp.ClientSideConnection | null = null;
98
98
  private _agentCapabilities: acp.AgentCapabilities | null = null;
99
+ private _changingCwd = false;
99
100
 
100
101
  // Components
101
102
  private terminalManager: TerminalManager;
@@ -617,12 +618,29 @@ export class AgentSession extends EventEmitter {
617
618
  throw new Error('Working directory is fixed for this session');
618
619
  }
619
620
 
620
- this._cwd = newPath;
621
- this._sessionId = null;
622
- this.saveState();
621
+ // Prevent concurrent cwd changes
622
+ if (this._changingCwd) {
623
+ console.log('[amux] changeCwd already in progress, ignoring');
624
+ return;
625
+ }
626
+
627
+ // Same path, nothing to do
628
+ if (newPath === this._cwd) {
629
+ console.log('[amux] changeCwd same path, ignoring');
630
+ return;
631
+ }
632
+
633
+ this._changingCwd = true;
634
+ try {
635
+ this._cwd = newPath;
636
+ this._sessionId = null;
637
+ this.saveState();
623
638
 
624
- await this.killAgent();
625
- await this.spawnAgent();
639
+ await this.killAgent();
640
+ await this.spawnAgent();
641
+ } finally {
642
+ this._changingCwd = false;
643
+ }
626
644
  }
627
645
 
628
646
  /**
package/tsconfig.json CHANGED
@@ -18,5 +18,5 @@
18
18
  "noUnusedParameters": true
19
19
  },
20
20
  "include": ["src/**/*"],
21
- "exclude": ["node_modules", "dist"]
21
+ "exclude": ["node_modules", "dist", "src/**/*.test.ts"]
22
22
  }
@@ -0,0 +1,7 @@
1
+ import { defineConfig } from 'vitest/config';
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ include: ['src/**/*.test.ts'],
6
+ },
7
+ });