@defai.digital/ax-cli 3.8.35 → 3.8.37

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.
Files changed (53) hide show
  1. package/README.md +17 -1
  2. package/dist/agent/execution/tool-executor.js +18 -2
  3. package/dist/agent/execution/tool-executor.js.map +1 -1
  4. package/dist/agent/streaming/stream-handler.js +23 -5
  5. package/dist/agent/streaming/stream-handler.js.map +1 -1
  6. package/dist/agent/subagent-orchestrator.js +23 -0
  7. package/dist/agent/subagent-orchestrator.js.map +1 -1
  8. package/dist/analyzers/code-smells/detectors/feature-envy-detector.js +8 -5
  9. package/dist/analyzers/code-smells/detectors/feature-envy-detector.js.map +1 -1
  10. package/dist/analyzers/git/hotspot-detector.js +5 -2
  11. package/dist/analyzers/git/hotspot-detector.js.map +1 -1
  12. package/dist/checkpoint/storage.js +8 -5
  13. package/dist/checkpoint/storage.js.map +1 -1
  14. package/dist/commands/memory.js +5 -2
  15. package/dist/commands/memory.js.map +1 -1
  16. package/dist/commands/status.js +6 -2
  17. package/dist/commands/status.js.map +1 -1
  18. package/dist/commands/vscode.js +4 -0
  19. package/dist/commands/vscode.js.map +1 -1
  20. package/dist/hooks/hook-runner.js +2 -1
  21. package/dist/hooks/hook-runner.js.map +1 -1
  22. package/dist/index.js +11 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/ipc/index.d.ts +9 -0
  25. package/dist/ipc/index.js +10 -0
  26. package/dist/ipc/index.js.map +1 -0
  27. package/dist/ipc/vscode-client.d.ts +177 -0
  28. package/dist/ipc/vscode-client.js +421 -0
  29. package/dist/ipc/vscode-client.js.map +1 -0
  30. package/dist/permissions/permission-manager.js +2 -1
  31. package/dist/permissions/permission-manager.js.map +1 -1
  32. package/dist/planner/types.d.ts +8 -8
  33. package/dist/tools/bash.js +6 -0
  34. package/dist/tools/bash.js.map +1 -1
  35. package/dist/tools/text-editor.js +24 -1
  36. package/dist/tools/text-editor.js.map +1 -1
  37. package/dist/ui/components/chat-interface.js +41 -35
  38. package/dist/ui/components/chat-interface.js.map +1 -1
  39. package/dist/ui/hooks/use-enhanced-input.js +17 -44
  40. package/dist/ui/hooks/use-enhanced-input.js.map +1 -1
  41. package/dist/ui/hooks/use-input-handler.d.ts +3 -1
  42. package/dist/ui/hooks/use-input-handler.js +17 -19
  43. package/dist/ui/hooks/use-input-handler.js.map +1 -1
  44. package/dist/utils/confirmation-service.d.ts +5 -0
  45. package/dist/utils/confirmation-service.js +26 -0
  46. package/dist/utils/confirmation-service.js.map +1 -1
  47. package/dist/utils/paste-utils.js +5 -1
  48. package/dist/utils/paste-utils.js.map +1 -1
  49. package/dist/utils/settings-manager.js +3 -2
  50. package/dist/utils/settings-manager.js.map +1 -1
  51. package/node_modules/@ax-cli/schemas/package.json +2 -2
  52. package/package.json +3 -1
  53. package/packages/schemas/package.json +2 -2
@@ -0,0 +1,421 @@
1
+ /**
2
+ * VS Code IPC Client
3
+ *
4
+ * WebSocket client that connects to the VS Code extension's IPC server.
5
+ * Enables the CLI to:
6
+ * - Show diff previews in VS Code before file modifications
7
+ * - Display task completion summaries in VS Code
8
+ * - Update status in VS Code status bar
9
+ *
10
+ * Falls back gracefully if extension is not running.
11
+ */
12
+ import { EventEmitter } from 'events';
13
+ import WebSocket from 'ws';
14
+ import * as fs from 'fs';
15
+ import * as path from 'path';
16
+ import * as os from 'os';
17
+ const IPC_PORT_FILE = path.join(os.homedir(), '.ax-cli', 'vscode-ipc.json');
18
+ const CONNECTION_TIMEOUT = 5000; // 5 seconds to connect
19
+ const REQUEST_TIMEOUT = 120000; // 2 minutes for approval (user may need time to review)
20
+ export class VSCodeIPCClient extends EventEmitter {
21
+ ws = null;
22
+ port = 0;
23
+ connected = false;
24
+ connecting = false;
25
+ pendingRequests = new Map();
26
+ requestCounter = 0;
27
+ constructor() {
28
+ super();
29
+ }
30
+ /**
31
+ * Attempt to connect to VS Code extension IPC server
32
+ * Returns true if connected, false if extension not available
33
+ */
34
+ async connect() {
35
+ if (this.connected)
36
+ return true;
37
+ if (this.connecting)
38
+ return false;
39
+ this.connecting = true;
40
+ try {
41
+ // Read port file
42
+ const portInfo = this.readPortFile();
43
+ if (!portInfo) {
44
+ this.connecting = false;
45
+ return false;
46
+ }
47
+ this.port = portInfo.port;
48
+ // Connect to WebSocket server
49
+ return await this.establishConnection();
50
+ }
51
+ catch {
52
+ // Silently fail - CLI works standalone without VS Code extension
53
+ this.connecting = false;
54
+ return false;
55
+ }
56
+ }
57
+ /**
58
+ * Establish WebSocket connection
59
+ */
60
+ establishConnection() {
61
+ return new Promise((resolve) => {
62
+ // BUG FIX: Track if we've already resolved to prevent race conditions
63
+ // between timeout firing and 'open' event handler
64
+ let resolved = false;
65
+ const safeResolve = (success) => {
66
+ if (resolved)
67
+ return;
68
+ resolved = true;
69
+ clearTimeout(timeout);
70
+ this.connecting = false;
71
+ if (success) {
72
+ this.connected = true;
73
+ this.emit('connected');
74
+ }
75
+ resolve(success);
76
+ };
77
+ const timeout = setTimeout(() => {
78
+ if (this.ws) {
79
+ this.ws.close();
80
+ }
81
+ safeResolve(false);
82
+ }, CONNECTION_TIMEOUT);
83
+ try {
84
+ this.ws = new WebSocket(`ws://127.0.0.1:${this.port}`);
85
+ this.ws.on('open', () => {
86
+ safeResolve(true);
87
+ });
88
+ this.ws.on('message', (data) => {
89
+ try {
90
+ const response = JSON.parse(data.toString());
91
+ this.handleResponse(response);
92
+ }
93
+ catch {
94
+ // Silently ignore parse errors - malformed responses shouldn't crash CLI
95
+ }
96
+ });
97
+ this.ws.on('close', () => {
98
+ clearTimeout(timeout);
99
+ this.handleDisconnect();
100
+ safeResolve(false);
101
+ });
102
+ this.ws.on('error', () => {
103
+ safeResolve(false);
104
+ });
105
+ }
106
+ catch (error) {
107
+ safeResolve(false);
108
+ }
109
+ });
110
+ }
111
+ /**
112
+ * Handle disconnection
113
+ */
114
+ handleDisconnect() {
115
+ const wasConnected = this.connected;
116
+ this.connected = false;
117
+ this.ws = null;
118
+ // Reject all pending requests
119
+ for (const [, pending] of this.pendingRequests) {
120
+ clearTimeout(pending.timeout);
121
+ pending.reject(new Error('Connection closed'));
122
+ }
123
+ this.pendingRequests.clear();
124
+ if (wasConnected) {
125
+ // Don't log to console - would interfere with TUI
126
+ this.emit('disconnected');
127
+ }
128
+ }
129
+ /**
130
+ * Handle incoming response
131
+ */
132
+ handleResponse(response) {
133
+ const pending = this.pendingRequests.get(response.requestId);
134
+ if (pending) {
135
+ clearTimeout(pending.timeout);
136
+ this.pendingRequests.delete(response.requestId);
137
+ pending.resolve(response);
138
+ }
139
+ }
140
+ /**
141
+ * Send diff preview and wait for approval
142
+ * Returns true if approved, false if rejected or timeout
143
+ */
144
+ async requestDiffApproval(payload) {
145
+ if (!this.connected) {
146
+ // Not connected to VS Code, auto-approve (CLI standalone mode)
147
+ return true;
148
+ }
149
+ try {
150
+ const response = await this.sendRequest({
151
+ type: 'diff_preview',
152
+ payload,
153
+ requestId: this.generateRequestId()
154
+ });
155
+ return response.type === 'approved';
156
+ }
157
+ catch {
158
+ // On error, fall back to auto-approve to not block the user
159
+ return true;
160
+ }
161
+ }
162
+ /**
163
+ * Send task completion summary
164
+ */
165
+ async sendTaskComplete(payload) {
166
+ if (!this.connected)
167
+ return;
168
+ try {
169
+ await this.sendRequest({
170
+ type: 'task_complete',
171
+ payload,
172
+ requestId: this.generateRequestId()
173
+ });
174
+ }
175
+ catch {
176
+ // Task complete is fire-and-forget, don't throw
177
+ }
178
+ }
179
+ /**
180
+ * Send status update
181
+ */
182
+ sendStatusUpdate(status) {
183
+ if (!this.connected || !this.ws)
184
+ return;
185
+ const message = {
186
+ type: 'status_update',
187
+ payload: { status },
188
+ requestId: this.generateRequestId()
189
+ };
190
+ try {
191
+ this.ws.send(JSON.stringify(message));
192
+ }
193
+ catch {
194
+ // Status updates are fire-and-forget, silently ignore failures
195
+ }
196
+ }
197
+ /**
198
+ * Send streaming chunk to VS Code extension
199
+ * Used for real-time streaming in the chat panel
200
+ */
201
+ sendStreamChunk(payload) {
202
+ if (!this.connected || !this.ws)
203
+ return;
204
+ const message = {
205
+ type: 'stream_chunk',
206
+ payload,
207
+ requestId: this.generateRequestId()
208
+ };
209
+ try {
210
+ this.ws.send(JSON.stringify(message));
211
+ }
212
+ catch {
213
+ // Stream chunks are fire-and-forget, silently ignore failures
214
+ }
215
+ }
216
+ /**
217
+ * Create a streaming session and return a helper for sending chunks
218
+ */
219
+ createStreamSession() {
220
+ const sessionId = `stream-${Date.now()}-${Math.random().toString(36).slice(2)}`;
221
+ return new StreamSession(this, sessionId);
222
+ }
223
+ /**
224
+ * Send request and wait for response
225
+ */
226
+ sendRequest(message) {
227
+ return new Promise((resolve, reject) => {
228
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
229
+ reject(new Error('Not connected'));
230
+ return;
231
+ }
232
+ const timeout = setTimeout(() => {
233
+ this.pendingRequests.delete(message.requestId);
234
+ // On timeout, auto-approve to not block forever
235
+ resolve({ type: 'approved', requestId: message.requestId });
236
+ }, REQUEST_TIMEOUT);
237
+ this.pendingRequests.set(message.requestId, { resolve, reject, timeout });
238
+ try {
239
+ this.ws.send(JSON.stringify(message));
240
+ }
241
+ catch {
242
+ // Send failed - clean up and reject
243
+ clearTimeout(timeout);
244
+ this.pendingRequests.delete(message.requestId);
245
+ reject(new Error('Failed to send message'));
246
+ }
247
+ });
248
+ }
249
+ /**
250
+ * Generate unique request ID
251
+ */
252
+ generateRequestId() {
253
+ return `req-${Date.now()}-${++this.requestCounter}`;
254
+ }
255
+ /**
256
+ * Read port file to find server port
257
+ */
258
+ readPortFile() {
259
+ try {
260
+ if (!fs.existsSync(IPC_PORT_FILE)) {
261
+ return null;
262
+ }
263
+ const content = fs.readFileSync(IPC_PORT_FILE, 'utf-8');
264
+ const portInfo = JSON.parse(content);
265
+ // Check if the port file is stale (more than 1 hour old)
266
+ const started = new Date(portInfo.started);
267
+ const startedTime = started.getTime();
268
+ // If date is invalid (NaN) or stale, reject the port file
269
+ if (isNaN(startedTime)) {
270
+ // Corrupted date string in port file
271
+ return null;
272
+ }
273
+ const age = Date.now() - startedTime;
274
+ if (age > 60 * 60 * 1000) {
275
+ // Stale port file, extension may have crashed
276
+ return null;
277
+ }
278
+ return portInfo;
279
+ }
280
+ catch {
281
+ // Silently fail - port file may not exist or be corrupted
282
+ return null;
283
+ }
284
+ }
285
+ /**
286
+ * Check if connected to VS Code extension
287
+ */
288
+ isConnected() {
289
+ return this.connected;
290
+ }
291
+ /**
292
+ * Disconnect from server
293
+ */
294
+ disconnect() {
295
+ if (this.ws) {
296
+ // BUG FIX: Remove all listeners before closing to prevent memory leak
297
+ this.ws.removeAllListeners('open');
298
+ this.ws.removeAllListeners('message');
299
+ this.ws.removeAllListeners('close');
300
+ this.ws.removeAllListeners('error');
301
+ this.ws.close();
302
+ this.ws = null;
303
+ }
304
+ this.connected = false;
305
+ this.connecting = false;
306
+ // Clear pending request timeouts to prevent memory leaks
307
+ for (const [, pending] of this.pendingRequests) {
308
+ clearTimeout(pending.timeout);
309
+ }
310
+ this.pendingRequests.clear();
311
+ }
312
+ /**
313
+ * Ping server to check connection
314
+ */
315
+ async ping() {
316
+ if (!this.connected)
317
+ return false;
318
+ try {
319
+ const response = await this.sendRequest({
320
+ type: 'ping',
321
+ payload: null,
322
+ requestId: this.generateRequestId()
323
+ });
324
+ return response.type === 'pong';
325
+ }
326
+ catch {
327
+ return false;
328
+ }
329
+ }
330
+ }
331
+ /**
332
+ * Helper class for sending streaming chunks with a consistent session ID
333
+ */
334
+ export class StreamSession {
335
+ client;
336
+ sessionId;
337
+ constructor(client, sessionId) {
338
+ this.client = client;
339
+ this.sessionId = sessionId;
340
+ }
341
+ /**
342
+ * Send thinking/reasoning content
343
+ */
344
+ sendThinking(content) {
345
+ this.client.sendStreamChunk({
346
+ sessionId: this.sessionId,
347
+ type: 'thinking',
348
+ content
349
+ });
350
+ }
351
+ /**
352
+ * Send response content
353
+ */
354
+ sendContent(content) {
355
+ this.client.sendStreamChunk({
356
+ sessionId: this.sessionId,
357
+ type: 'content',
358
+ content
359
+ });
360
+ }
361
+ /**
362
+ * Send tool call notification
363
+ */
364
+ sendToolCall(id, name, args) {
365
+ this.client.sendStreamChunk({
366
+ sessionId: this.sessionId,
367
+ type: 'tool_call',
368
+ toolCall: { id, name, arguments: args }
369
+ });
370
+ }
371
+ /**
372
+ * Send tool result
373
+ */
374
+ sendToolResult(id, result, isError = false) {
375
+ this.client.sendStreamChunk({
376
+ sessionId: this.sessionId,
377
+ type: 'tool_result',
378
+ toolResult: { id, result, isError }
379
+ });
380
+ }
381
+ /**
382
+ * Send completion signal
383
+ */
384
+ sendDone() {
385
+ this.client.sendStreamChunk({
386
+ sessionId: this.sessionId,
387
+ type: 'done'
388
+ });
389
+ }
390
+ /**
391
+ * Send error
392
+ */
393
+ sendError(error) {
394
+ this.client.sendStreamChunk({
395
+ sessionId: this.sessionId,
396
+ type: 'error',
397
+ error
398
+ });
399
+ }
400
+ }
401
+ // Singleton instance
402
+ let instance = null;
403
+ /**
404
+ * Get or create the VS Code IPC client singleton
405
+ */
406
+ export function getVSCodeIPCClient() {
407
+ if (!instance) {
408
+ instance = new VSCodeIPCClient();
409
+ }
410
+ return instance;
411
+ }
412
+ /**
413
+ * Cleanup the IPC client on process exit
414
+ */
415
+ export function disposeVSCodeIPCClient() {
416
+ if (instance) {
417
+ instance.disconnect();
418
+ instance = null;
419
+ }
420
+ }
421
+ //# sourceMappingURL=vscode-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vscode-client.js","sourceRoot":"","sources":["../../src/ipc/vscode-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAqFzB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAC5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,CAAE,uBAAuB;AACzD,MAAM,eAAe,GAAG,MAAM,CAAC,CAAG,wDAAwD;AAE1F,MAAM,OAAO,eAAgB,SAAQ,YAAY;IACvC,EAAE,GAAqB,IAAI,CAAC;IAC5B,IAAI,GAAW,CAAC,CAAC;IACjB,SAAS,GAAY,KAAK,CAAC;IAC3B,UAAU,GAAY,KAAK,CAAC;IAC5B,eAAe,GAAgC,IAAI,GAAG,EAAE,CAAC;IACzD,cAAc,GAAW,CAAC,CAAC;IAEnC;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAElC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC;YACH,iBAAiB;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE1B,8BAA8B;YAC9B,OAAO,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE1C,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;YACjE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB;QACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,sEAAsE;YACtE,kDAAkD;YAClD,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAE,EAAE;gBACvC,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzB,CAAC;gBACD,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;oBACZ,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;gBAClB,CAAC;gBACD,WAAW,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC,EAAE,kBAAkB,CAAC,CAAC;YAEvB,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,kBAAkB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAEvD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;oBACtB,WAAW,CAAC,IAAI,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC7B,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAC1D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;oBAChC,CAAC;oBAAC,MAAM,CAAC;wBACP,yEAAyE;oBAC3E,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACvB,YAAY,CAAC,OAAO,CAAC,CAAC;oBACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACxB,WAAW,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;oBACvB,WAAW,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;YAEL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,WAAW,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QAEf,8BAA8B;QAC9B,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,IAAI,YAAY,EAAE,CAAC;YACjB,kDAAkD;YAClD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAAqB;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,OAAoB;QAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,+DAA+D;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;gBACtC,IAAI,EAAE,cAAc;gBACpB,OAAO;gBACP,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;aACpC,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,IAAI,KAAK,UAAU,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,4DAA4D;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAA2B;QAChD,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC;gBACrB,IAAI,EAAE,eAAe;gBACrB,OAAO;gBACP,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,MAAc;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAExC,MAAM,OAAO,GAAe;YAC1B,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,EAAE,MAAM,EAAE;YACnB,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;SACpC,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,OAA2B;QACzC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,OAAO;QAExC,MAAM,OAAO,GAAe;YAC1B,IAAI,EAAE,cAAc;YACpB,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;SACpC,CAAC;QAEF,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,OAAmB;QACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACtD,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;gBACnC,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC/C,gDAAgD;gBAChD,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9D,CAAC,EAAE,eAAe,CAAC,CAAC;YAEpB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAE1E,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,oCAAoC;gBACpC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC/C,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAoB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEtD,yDAAyD;YACzD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YACtC,0DAA0D;YAC1D,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvB,qCAAqC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;YACrC,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;gBACzB,8CAA8C;gBAC9C,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,sEAAsE;YACtE,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,yDAAyD;QACzD,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAElC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC;gBACtC,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE;aACpC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAa;IAEd;IACQ;IAFlB,YACU,MAAuB,EACf,SAAiB;QADzB,WAAM,GAAN,MAAM,CAAiB;QACf,cAAS,GAAT,SAAS,CAAQ;IAChC,CAAC;IAEJ;;OAEG;IACH,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,UAAU;YAChB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAe;QACzB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,SAAS;YACf,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,EAAU,EAAE,IAAY,EAAE,IAAY;QACjD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;SACxC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,EAAU,EAAE,MAAc,EAAE,UAAmB,KAAK;QACjE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,aAAa;YACnB,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,MAAM;SACb,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAa;QACrB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,OAAO;YACb,KAAK;SACN,CAAC,CAAC;IACL,CAAC;CACF;AAED,qBAAqB;AACrB,IAAI,QAAQ,GAA2B,IAAI,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtB,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -182,7 +182,8 @@ export class PermissionManager extends EventEmitter {
182
182
  * Returns a promise that resolves when user responds
183
183
  */
184
184
  async requestUserApproval(request) {
185
- const requestId = `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
185
+ // BUG FIX: Replace deprecated substr() with substring()
186
+ const requestId = `${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
186
187
  return new Promise((resolve) => {
187
188
  // Emit approval request event
188
189
  this.emit('permission:approval_required', {
@@ -1 +1 @@
1
- {"version":3,"file":"permission-manager.js","sourceRoot":"","sources":["../../src/permissions/permission-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permission-manager.js","sourceRoot":"","sources":["../../src/permissions/permission-manager.ts"],"names":[],"mappings":"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"}
@@ -288,10 +288,10 @@ export declare const TaskPhaseSchema: z.ZodObject<{
288
288
  error?: string | undefined;
289
289
  output?: string | undefined;
290
290
  startedAt?: Date | undefined;
291
+ filesModified?: string[] | undefined;
291
292
  completedAt?: Date | undefined;
292
293
  checkpointId?: string | undefined;
293
294
  tokensUsed?: number | undefined;
294
- filesModified?: string[] | undefined;
295
295
  }, {
296
296
  name: string;
297
297
  status: PhaseStatus;
@@ -310,11 +310,11 @@ export declare const TaskPhaseSchema: z.ZodObject<{
310
310
  output?: string | undefined;
311
311
  maxRetries?: number | undefined;
312
312
  startedAt?: Date | undefined;
313
+ filesModified?: string[] | undefined;
313
314
  completedAt?: Date | undefined;
314
315
  checkpointId?: string | undefined;
315
316
  retryCount?: number | undefined;
316
317
  tokensUsed?: number | undefined;
317
- filesModified?: string[] | undefined;
318
318
  }>;
319
319
  export declare const TaskPlanSchema: z.ZodObject<{
320
320
  id: z.ZodString;
@@ -364,10 +364,10 @@ export declare const TaskPlanSchema: z.ZodObject<{
364
364
  error?: string | undefined;
365
365
  output?: string | undefined;
366
366
  startedAt?: Date | undefined;
367
+ filesModified?: string[] | undefined;
367
368
  completedAt?: Date | undefined;
368
369
  checkpointId?: string | undefined;
369
370
  tokensUsed?: number | undefined;
370
- filesModified?: string[] | undefined;
371
371
  }, {
372
372
  name: string;
373
373
  status: PhaseStatus;
@@ -386,11 +386,11 @@ export declare const TaskPlanSchema: z.ZodObject<{
386
386
  output?: string | undefined;
387
387
  maxRetries?: number | undefined;
388
388
  startedAt?: Date | undefined;
389
+ filesModified?: string[] | undefined;
389
390
  completedAt?: Date | undefined;
390
391
  checkpointId?: string | undefined;
391
392
  retryCount?: number | undefined;
392
393
  tokensUsed?: number | undefined;
393
- filesModified?: string[] | undefined;
394
394
  }>, "many">;
395
395
  currentPhaseIndex: z.ZodNumber;
396
396
  status: z.ZodNativeEnum<typeof PlanStatus>;
@@ -430,10 +430,10 @@ export declare const TaskPlanSchema: z.ZodObject<{
430
430
  error?: string | undefined;
431
431
  output?: string | undefined;
432
432
  startedAt?: Date | undefined;
433
+ filesModified?: string[] | undefined;
433
434
  completedAt?: Date | undefined;
434
435
  checkpointId?: string | undefined;
435
436
  tokensUsed?: number | undefined;
436
- filesModified?: string[] | undefined;
437
437
  }[];
438
438
  currentPhaseIndex: number;
439
439
  createdAt: Date;
@@ -471,11 +471,11 @@ export declare const TaskPlanSchema: z.ZodObject<{
471
471
  output?: string | undefined;
472
472
  maxRetries?: number | undefined;
473
473
  startedAt?: Date | undefined;
474
+ filesModified?: string[] | undefined;
474
475
  completedAt?: Date | undefined;
475
476
  checkpointId?: string | undefined;
476
477
  retryCount?: number | undefined;
477
478
  tokensUsed?: number | undefined;
478
- filesModified?: string[] | undefined;
479
479
  }[];
480
480
  currentPhaseIndex: number;
481
481
  createdAt: Date;
@@ -503,8 +503,8 @@ export declare const PhaseResultSchema: z.ZodObject<{
503
503
  }, "strip", z.ZodTypeAny, {
504
504
  duration: number;
505
505
  success: boolean;
506
- tokensUsed: number;
507
506
  filesModified: string[];
507
+ tokensUsed: number;
508
508
  phaseId: string;
509
509
  wasRetry: boolean;
510
510
  retryAttempt: number;
@@ -514,8 +514,8 @@ export declare const PhaseResultSchema: z.ZodObject<{
514
514
  }, {
515
515
  duration: number;
516
516
  success: boolean;
517
- tokensUsed: number;
518
517
  filesModified: string[];
518
+ tokensUsed: number;
519
519
  phaseId: string;
520
520
  wasRetry: boolean;
521
521
  retryAttempt: number;
@@ -59,6 +59,9 @@ export class BashTool extends EventEmitter {
59
59
  return taskId;
60
60
  }
61
61
  catch (error) {
62
+ // BUG FIX: Log error before returning null so caller can diagnose failures
63
+ const errorMsg = error instanceof Error ? error.message : String(error);
64
+ console.error('Failed to move process to background:', errorMsg);
62
65
  // CRITICAL FIX: Clear state even on failure to prevent process handle leak
63
66
  this.currentProcess = null;
64
67
  this.currentCommand = '';
@@ -406,6 +409,9 @@ export class BashTool extends EventEmitter {
406
409
  // TIMEOUT LEAK FIX: Clear all timers on completion
407
410
  clearAllTimers();
408
411
  cleanupAbortListener(); // Remove abort listener to prevent memory leaks
412
+ // BUG FIX: Remove stream listeners to prevent memory leak accumulation
413
+ childProcess.stdout?.removeAllListeners('data');
414
+ childProcess.stderr?.removeAllListeners('data');
409
415
  // Clear current process state
410
416
  if (this.currentProcess === childProcess) {
411
417
  this.currentProcess = null;