aicodeman 0.2.8 → 0.3.0
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 +91 -0
- package/dist/ai-idle-checker.d.ts.map +1 -1
- package/dist/ai-idle-checker.js +3 -2
- package/dist/ai-idle-checker.js.map +1 -1
- package/dist/ai-plan-checker.d.ts.map +1 -1
- package/dist/ai-plan-checker.js +3 -2
- package/dist/ai-plan-checker.js.map +1 -1
- package/dist/bash-tool-parser.d.ts +2 -3
- package/dist/bash-tool-parser.d.ts.map +1 -1
- package/dist/bash-tool-parser.js +14 -31
- package/dist/bash-tool-parser.js.map +1 -1
- package/dist/config/ai-defaults.d.ts +16 -0
- package/dist/config/ai-defaults.d.ts.map +1 -0
- package/dist/config/ai-defaults.js +16 -0
- package/dist/config/ai-defaults.js.map +1 -0
- package/dist/config/auth-config.d.ts +19 -0
- package/dist/config/auth-config.d.ts.map +1 -0
- package/dist/config/auth-config.js +28 -0
- package/dist/config/auth-config.js.map +1 -0
- package/dist/config/exec-timeout.d.ts +10 -0
- package/dist/config/exec-timeout.d.ts.map +1 -0
- package/dist/config/exec-timeout.js +10 -0
- package/dist/config/exec-timeout.js.map +1 -0
- package/dist/config/map-limits.d.ts +4 -0
- package/dist/config/map-limits.d.ts.map +1 -1
- package/dist/config/map-limits.js +7 -0
- package/dist/config/map-limits.js.map +1 -1
- package/dist/config/server-timing.d.ts +36 -0
- package/dist/config/server-timing.d.ts.map +1 -0
- package/dist/config/server-timing.js +51 -0
- package/dist/config/server-timing.js.map +1 -0
- package/dist/config/team-config.d.ts +16 -0
- package/dist/config/team-config.d.ts.map +1 -0
- package/dist/config/team-config.js +16 -0
- package/dist/config/team-config.js.map +1 -0
- package/dist/config/terminal-limits.d.ts +18 -0
- package/dist/config/terminal-limits.d.ts.map +1 -0
- package/dist/config/terminal-limits.js +18 -0
- package/dist/config/terminal-limits.js.map +1 -0
- package/dist/config/tunnel-config.d.ts +27 -0
- package/dist/config/tunnel-config.d.ts.map +1 -0
- package/dist/config/tunnel-config.js +36 -0
- package/dist/config/tunnel-config.js.map +1 -0
- package/dist/hooks-config.d.ts.map +1 -1
- package/dist/hooks-config.js +7 -6
- package/dist/hooks-config.js.map +1 -1
- package/dist/image-watcher.d.ts +4 -4
- package/dist/image-watcher.d.ts.map +1 -1
- package/dist/image-watcher.js +17 -30
- package/dist/image-watcher.js.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/plan-orchestrator.d.ts +2 -24
- package/dist/plan-orchestrator.d.ts.map +1 -1
- package/dist/plan-orchestrator.js.map +1 -1
- package/dist/push-store.d.ts +1 -1
- package/dist/push-store.d.ts.map +1 -1
- package/dist/push-store.js +4 -12
- package/dist/push-store.js.map +1 -1
- package/dist/ralph-fix-plan-watcher.d.ts +91 -0
- package/dist/ralph-fix-plan-watcher.d.ts.map +1 -0
- package/dist/ralph-fix-plan-watcher.js +326 -0
- package/dist/ralph-fix-plan-watcher.js.map +1 -0
- package/dist/ralph-plan-tracker.d.ts +201 -0
- package/dist/ralph-plan-tracker.d.ts.map +1 -0
- package/dist/ralph-plan-tracker.js +325 -0
- package/dist/ralph-plan-tracker.js.map +1 -0
- package/dist/ralph-stall-detector.d.ts +84 -0
- package/dist/ralph-stall-detector.d.ts.map +1 -0
- package/dist/ralph-stall-detector.js +139 -0
- package/dist/ralph-stall-detector.js.map +1 -0
- package/dist/ralph-status-parser.d.ts +141 -0
- package/dist/ralph-status-parser.d.ts.map +1 -0
- package/dist/ralph-status-parser.js +478 -0
- package/dist/ralph-status-parser.js.map +1 -0
- package/dist/ralph-tracker.d.ts +194 -685
- package/dist/ralph-tracker.d.ts.map +1 -1
- package/dist/ralph-tracker.js +349 -1713
- package/dist/ralph-tracker.js.map +1 -1
- package/dist/respawn-adaptive-timing.d.ts +61 -0
- package/dist/respawn-adaptive-timing.d.ts.map +1 -0
- package/dist/respawn-adaptive-timing.js +105 -0
- package/dist/respawn-adaptive-timing.js.map +1 -0
- package/dist/respawn-controller.d.ts +14 -101
- package/dist/respawn-controller.d.ts.map +1 -1
- package/dist/respawn-controller.js +155 -594
- package/dist/respawn-controller.js.map +1 -1
- package/dist/respawn-health.d.ts +54 -0
- package/dist/respawn-health.d.ts.map +1 -0
- package/dist/respawn-health.js +183 -0
- package/dist/respawn-health.js.map +1 -0
- package/dist/respawn-metrics.d.ts +81 -0
- package/dist/respawn-metrics.d.ts.map +1 -0
- package/dist/respawn-metrics.js +198 -0
- package/dist/respawn-metrics.js.map +1 -0
- package/dist/respawn-patterns.d.ts +45 -0
- package/dist/respawn-patterns.d.ts.map +1 -0
- package/dist/respawn-patterns.js +125 -0
- package/dist/respawn-patterns.js.map +1 -0
- package/dist/session-auto-ops.d.ts +89 -0
- package/dist/session-auto-ops.d.ts.map +1 -0
- package/dist/session-auto-ops.js +224 -0
- package/dist/session-auto-ops.js.map +1 -0
- package/dist/session-cli-builder.d.ts +62 -0
- package/dist/session-cli-builder.d.ts.map +1 -0
- package/dist/session-cli-builder.js +121 -0
- package/dist/session-cli-builder.js.map +1 -0
- package/dist/session-task-cache.d.ts +52 -0
- package/dist/session-task-cache.d.ts.map +1 -0
- package/dist/session-task-cache.js +90 -0
- package/dist/session-task-cache.js.map +1 -0
- package/dist/session.d.ts +2 -33
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +58 -309
- package/dist/session.js.map +1 -1
- package/dist/state-store.d.ts +9 -2
- package/dist/state-store.d.ts.map +1 -1
- package/dist/state-store.js +112 -39
- package/dist/state-store.js.map +1 -1
- package/dist/subagent-watcher.d.ts +16 -9
- package/dist/subagent-watcher.d.ts.map +1 -1
- package/dist/subagent-watcher.js +126 -147
- package/dist/subagent-watcher.js.map +1 -1
- package/dist/team-watcher.d.ts +3 -0
- package/dist/team-watcher.d.ts.map +1 -1
- package/dist/team-watcher.js +54 -5
- package/dist/team-watcher.js.map +1 -1
- package/dist/tmux-manager.d.ts.map +1 -1
- package/dist/tmux-manager.js +1 -2
- package/dist/tmux-manager.js.map +1 -1
- package/dist/tunnel-manager.d.ts +26 -0
- package/dist/tunnel-manager.d.ts.map +1 -1
- package/dist/tunnel-manager.js +127 -7
- package/dist/tunnel-manager.js.map +1 -1
- package/dist/types/api.d.ts +93 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +83 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/app-state.d.ts +100 -0
- package/dist/types/app-state.d.ts.map +1 -0
- package/dist/types/app-state.js +59 -0
- package/dist/types/app-state.js.map +1 -0
- package/dist/types/common.d.ts +70 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +8 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lifecycle.d.ts +17 -0
- package/dist/types/lifecycle.d.ts.map +1 -0
- package/dist/types/lifecycle.js +5 -0
- package/dist/types/lifecycle.js.map +1 -0
- package/dist/types/plan.d.ts +32 -0
- package/dist/types/plan.d.ts.map +1 -0
- package/dist/types/plan.js +5 -0
- package/dist/types/plan.js.map +1 -0
- package/dist/types/push.d.ts +23 -0
- package/dist/types/push.d.ts.map +1 -0
- package/dist/types/push.js +5 -0
- package/dist/types/push.js.map +1 -0
- package/dist/types/ralph.d.ts +241 -0
- package/dist/types/ralph.d.ts.map +1 -0
- package/dist/types/ralph.js +49 -0
- package/dist/types/ralph.js.map +1 -0
- package/dist/types/respawn.d.ts +250 -0
- package/dist/types/respawn.d.ts.map +1 -0
- package/dist/types/respawn.js +5 -0
- package/dist/types/respawn.js.map +1 -0
- package/dist/types/run-summary.d.ts +81 -0
- package/dist/types/run-summary.d.ts.map +1 -0
- package/dist/types/run-summary.js +22 -0
- package/dist/types/run-summary.js.map +1 -0
- package/dist/types/session.d.ts +130 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +5 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/task.d.ts +58 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +5 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/teams.d.ts +55 -0
- package/dist/types/teams.d.ts.map +1 -0
- package/dist/types/teams.js +5 -0
- package/dist/types/teams.js.map +1 -0
- package/dist/types/tools.d.ts +46 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +5 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/types.d.ts +1 -1138
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -214
- package/dist/types.js.map +1 -1
- package/dist/utils/claude-cli-resolver.d.ts.map +1 -1
- package/dist/utils/claude-cli-resolver.js +1 -2
- package/dist/utils/claude-cli-resolver.js.map +1 -1
- package/dist/utils/debouncer.d.ts +111 -0
- package/dist/utils/debouncer.d.ts.map +1 -0
- package/dist/utils/debouncer.js +162 -0
- package/dist/utils/debouncer.js.map +1 -0
- package/dist/utils/index.d.ts +3 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/opencode-cli-resolver.d.ts.map +1 -1
- package/dist/utils/opencode-cli-resolver.js +1 -2
- package/dist/utils/opencode-cli-resolver.js.map +1 -1
- package/dist/utils/string-similarity.d.ts +0 -57
- package/dist/utils/string-similarity.d.ts.map +1 -1
- package/dist/utils/string-similarity.js +3 -18
- package/dist/utils/string-similarity.js.map +1 -1
- package/dist/web/middleware/auth.d.ts +31 -0
- package/dist/web/middleware/auth.d.ts.map +1 -0
- package/dist/web/middleware/auth.js +154 -0
- package/dist/web/middleware/auth.js.map +1 -0
- package/dist/web/ports/auth-port.d.ts +18 -0
- package/dist/web/ports/auth-port.d.ts.map +1 -0
- package/dist/web/ports/auth-port.js +6 -0
- package/dist/web/ports/auth-port.js.map +1 -0
- package/dist/web/ports/config-port.d.ts +28 -0
- package/dist/web/ports/config-port.d.ts.map +1 -0
- package/dist/web/ports/config-port.js +6 -0
- package/dist/web/ports/config-port.js.map +1 -0
- package/dist/web/ports/event-port.d.ts +13 -0
- package/dist/web/ports/event-port.d.ts.map +1 -0
- package/dist/web/ports/event-port.js +6 -0
- package/dist/web/ports/event-port.js.map +1 -0
- package/dist/web/ports/index.d.ts +14 -0
- package/dist/web/ports/index.d.ts.map +1 -0
- package/dist/web/ports/index.js +9 -0
- package/dist/web/ports/index.js.map +1 -0
- package/dist/web/ports/infra-port.d.ts +36 -0
- package/dist/web/ports/infra-port.d.ts.map +1 -0
- package/dist/web/ports/infra-port.js +6 -0
- package/dist/web/ports/infra-port.js.map +1 -0
- package/dist/web/ports/respawn-port.d.ts +20 -0
- package/dist/web/ports/respawn-port.d.ts.map +1 -0
- package/dist/web/ports/respawn-port.js +6 -0
- package/dist/web/ports/respawn-port.js.map +1 -0
- package/dist/web/ports/session-port.d.ts +15 -0
- package/dist/web/ports/session-port.d.ts.map +1 -0
- package/dist/web/ports/session-port.js +6 -0
- package/dist/web/ports/session-port.js.map +1 -0
- package/dist/web/public/api-client.js +70 -0
- package/dist/web/public/api-client.js.br +0 -0
- package/dist/web/public/api-client.js.gz +0 -0
- package/dist/web/public/app.js +152 -236
- package/dist/web/public/app.js.br +0 -0
- package/dist/web/public/app.js.gz +0 -0
- package/dist/web/public/constants.js +238 -0
- package/dist/web/public/constants.js.br +0 -0
- package/dist/web/public/constants.js.gz +0 -0
- package/dist/web/public/index.html +11 -3
- package/dist/web/public/index.html.br +0 -0
- package/dist/web/public/index.html.gz +0 -0
- package/dist/web/public/keyboard-accessory.js +279 -0
- package/dist/web/public/keyboard-accessory.js.br +0 -0
- package/dist/web/public/keyboard-accessory.js.gz +0 -0
- package/dist/web/public/mobile-handlers.js +467 -0
- package/dist/web/public/mobile-handlers.js.br +0 -0
- package/dist/web/public/mobile-handlers.js.gz +0 -0
- package/dist/web/public/mobile.css.gz +0 -0
- package/dist/web/public/notification-manager.js +445 -0
- package/dist/web/public/notification-manager.js.br +0 -0
- package/dist/web/public/notification-manager.js.gz +0 -0
- package/dist/web/public/ralph-wizard.js +3 -3
- package/dist/web/public/ralph-wizard.js.br +0 -0
- package/dist/web/public/ralph-wizard.js.gz +0 -0
- package/dist/web/public/styles.css.gz +0 -0
- package/dist/web/public/subagent-windows.js +1115 -0
- package/dist/web/public/subagent-windows.js.br +0 -0
- package/dist/web/public/subagent-windows.js.gz +0 -0
- package/dist/web/public/sw.js.gz +0 -0
- package/dist/web/public/upload.html.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm.css.gz +0 -0
- package/dist/web/public/vendor/xterm.min.js.gz +0 -0
- package/dist/web/public/voice-input.js +858 -0
- package/dist/web/public/voice-input.js.br +0 -0
- package/dist/web/public/voice-input.js.gz +0 -0
- package/dist/web/route-helpers.d.ts +38 -0
- package/dist/web/route-helpers.d.ts.map +1 -0
- package/dist/web/route-helpers.js +143 -0
- package/dist/web/route-helpers.js.map +1 -0
- package/dist/web/routes/case-routes.d.ts +9 -0
- package/dist/web/routes/case-routes.d.ts.map +1 -0
- package/dist/web/routes/case-routes.js +419 -0
- package/dist/web/routes/case-routes.js.map +1 -0
- package/dist/web/routes/file-routes.d.ts +8 -0
- package/dist/web/routes/file-routes.d.ts.map +1 -0
- package/dist/web/routes/file-routes.js +337 -0
- package/dist/web/routes/file-routes.js.map +1 -0
- package/dist/web/routes/hook-event-routes.d.ts +9 -0
- package/dist/web/routes/hook-event-routes.d.ts.map +1 -0
- package/dist/web/routes/hook-event-routes.js +57 -0
- package/dist/web/routes/hook-event-routes.js.map +1 -0
- package/dist/web/routes/index.d.ts +16 -0
- package/dist/web/routes/index.d.ts.map +1 -0
- package/dist/web/routes/index.js +16 -0
- package/dist/web/routes/index.js.map +1 -0
- package/dist/web/routes/mux-routes.d.ts +8 -0
- package/dist/web/routes/mux-routes.d.ts.map +1 -0
- package/dist/web/routes/mux-routes.js +32 -0
- package/dist/web/routes/mux-routes.js.map +1 -0
- package/dist/web/routes/plan-routes.d.ts +9 -0
- package/dist/web/routes/plan-routes.d.ts.map +1 -0
- package/dist/web/routes/plan-routes.js +381 -0
- package/dist/web/routes/plan-routes.js.map +1 -0
- package/dist/web/routes/push-routes.d.ts +8 -0
- package/dist/web/routes/push-routes.d.ts.map +1 -0
- package/dist/web/routes/push-routes.js +49 -0
- package/dist/web/routes/push-routes.js.map +1 -0
- package/dist/web/routes/ralph-routes.d.ts +9 -0
- package/dist/web/routes/ralph-routes.d.ts.map +1 -0
- package/dist/web/routes/ralph-routes.js +475 -0
- package/dist/web/routes/ralph-routes.js.map +1 -0
- package/dist/web/routes/respawn-routes.d.ts +8 -0
- package/dist/web/routes/respawn-routes.d.ts.map +1 -0
- package/dist/web/routes/respawn-routes.js +260 -0
- package/dist/web/routes/respawn-routes.js.map +1 -0
- package/dist/web/routes/scheduled-routes.d.ts +8 -0
- package/dist/web/routes/scheduled-routes.d.ts.map +1 -0
- package/dist/web/routes/scheduled-routes.js +51 -0
- package/dist/web/routes/scheduled-routes.js.map +1 -0
- package/dist/web/routes/session-routes.d.ts +9 -0
- package/dist/web/routes/session-routes.d.ts.map +1 -0
- package/dist/web/routes/session-routes.js +729 -0
- package/dist/web/routes/session-routes.js.map +1 -0
- package/dist/web/routes/system-routes.d.ts +9 -0
- package/dist/web/routes/system-routes.d.ts.map +1 -0
- package/dist/web/routes/system-routes.js +678 -0
- package/dist/web/routes/system-routes.js.map +1 -0
- package/dist/web/routes/team-routes.d.ts +8 -0
- package/dist/web/routes/team-routes.d.ts.map +1 -0
- package/dist/web/routes/team-routes.js +14 -0
- package/dist/web/routes/team-routes.js.map +1 -0
- package/dist/web/schemas.d.ts +43 -3
- package/dist/web/schemas.d.ts.map +1 -1
- package/dist/web/schemas.js +6 -2
- package/dist/web/schemas.js.map +1 -1
- package/dist/web/server.d.ts +10 -9
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +342 -3829
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
package/dist/state-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-store.js","sourceRoot":"","sources":["../src/state-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state-store.js","sourceRoot":"","sources":["../src/state-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -106,12 +106,11 @@ export interface SubagentEvents {
|
|
|
106
106
|
}
|
|
107
107
|
export declare class SubagentWatcher extends EventEmitter {
|
|
108
108
|
private filePositions;
|
|
109
|
-
private fileWatchers;
|
|
110
109
|
private dirWatchers;
|
|
110
|
+
private fileDeb;
|
|
111
111
|
private agentInfo;
|
|
112
|
-
private
|
|
113
|
-
private
|
|
114
|
-
private livenessInterval;
|
|
112
|
+
private idleDeb;
|
|
113
|
+
private cleanup;
|
|
115
114
|
private _isRunning;
|
|
116
115
|
private knownSubagentDirs;
|
|
117
116
|
private pendingToolCalls;
|
|
@@ -119,7 +118,7 @@ export declare class SubagentWatcher extends EventEmitter {
|
|
|
119
118
|
private _pollCount;
|
|
120
119
|
private parentDescriptionCache;
|
|
121
120
|
private dirWatcherErrorHandlers;
|
|
122
|
-
private
|
|
121
|
+
private fileAgentContext;
|
|
123
122
|
constructor();
|
|
124
123
|
/**
|
|
125
124
|
* Check if a description matches internal Claude Code agent patterns.
|
|
@@ -224,7 +223,7 @@ export declare class SubagentWatcher extends EventEmitter {
|
|
|
224
223
|
*/
|
|
225
224
|
getStats(): {
|
|
226
225
|
agentCount: number;
|
|
227
|
-
|
|
226
|
+
fileDebouncerCount: number;
|
|
228
227
|
dirWatcherCount: number;
|
|
229
228
|
idleTimerCount: number;
|
|
230
229
|
pendingToolCallsCount: number;
|
|
@@ -297,17 +296,25 @@ export declare class SubagentWatcher extends EventEmitter {
|
|
|
297
296
|
*/
|
|
298
297
|
private scanForSubagents;
|
|
299
298
|
/**
|
|
300
|
-
* Watch a subagent directory for new
|
|
299
|
+
* Watch a subagent directory for new and changed files.
|
|
300
|
+
* Uses a single directory-level fs.watch() instead of per-file watchers.
|
|
301
|
+
* On Linux, inotify IN_MODIFY fires for content changes within the directory.
|
|
301
302
|
*/
|
|
302
303
|
private watchSubagentDir;
|
|
303
304
|
/**
|
|
304
|
-
*
|
|
305
|
+
* Handle a file content change for an already-registered agent file.
|
|
306
|
+
* Tails from last known position, updates info, retries description if missing.
|
|
307
|
+
*/
|
|
308
|
+
private handleFileChange;
|
|
309
|
+
/**
|
|
310
|
+
* Register a specific agent transcript file (discovery + initial read).
|
|
311
|
+
* Does NOT create a per-file watcher — the directory watcher handles changes.
|
|
305
312
|
* @param filePath Path to the agent transcript file
|
|
306
313
|
* @param projectHash Claude project hash
|
|
307
314
|
* @param sessionId Claude session ID
|
|
308
315
|
* @param isInitialScan If true, skip files older than STARTUP_MAX_FILE_AGE_MS
|
|
309
316
|
*/
|
|
310
|
-
private
|
|
317
|
+
private registerAgentFile;
|
|
311
318
|
/**
|
|
312
319
|
* Tail a file from a specific position
|
|
313
320
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-watcher.d.ts","sourceRoot":"","sources":["../src/subagent-watcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"subagent-watcher.d.ts","sourceRoot":"","sources":["../src/subagent-watcher.ts"],"names":[],"mappings":"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"}
|
package/dist/subagent-watcher.js
CHANGED
|
@@ -12,7 +12,8 @@ import { homedir } from 'node:os';
|
|
|
12
12
|
import { join, basename } from 'node:path';
|
|
13
13
|
import { execFile } from 'node:child_process';
|
|
14
14
|
import { readFile, readdir, stat as statAsync } from 'node:fs/promises';
|
|
15
|
-
import { PENDING_TOOL_CALL_TTL_MS, MAX_PENDING_TOOL_CALLS } from './config/map-limits.js';
|
|
15
|
+
import { PENDING_TOOL_CALL_TTL_MS, MAX_PENDING_TOOL_CALLS, MAX_TRACKED_AGENTS } from './config/map-limits.js';
|
|
16
|
+
import { CleanupManager, KeyedDebouncer } from './utils/index.js';
|
|
16
17
|
// ========== Constants ==========
|
|
17
18
|
const CLAUDE_PROJECTS_DIR = join(homedir(), '.claude/projects');
|
|
18
19
|
const IDLE_TIMEOUT_MS = 30000; // Consider agent idle after 30s of no activity
|
|
@@ -23,7 +24,6 @@ const FILE_ALIVE_THRESHOLD_MS = 30000; // File mtime within 30s = agent alive (p
|
|
|
23
24
|
const STALE_COMPLETED_MAX_AGE_MS = 60 * 60 * 1000; // Remove completed agents older than 1 hour
|
|
24
25
|
const STALE_IDLE_MAX_AGE_MS = 4 * 60 * 60 * 1000; // Remove idle agents older than 4 hours
|
|
25
26
|
const STARTUP_MAX_FILE_AGE_MS = 4 * 60 * 60 * 1000; // Only load files modified in last 4 hours on startup
|
|
26
|
-
const MAX_TRACKED_AGENTS = 500; // Maximum agents to track (LRU eviction when exceeded)
|
|
27
27
|
// Internal Claude Code agent patterns to filter out (not real user-initiated subagents)
|
|
28
28
|
const INTERNAL_AGENT_PATTERNS = [
|
|
29
29
|
/^\[?SUGGESTION MODE/i, // Claude Code's internal suggestion mode
|
|
@@ -45,12 +45,12 @@ const FILE_CONTENT_DEBOUNCE_MS = 100; // Debounce delay for file content updates
|
|
|
45
45
|
// ========== SubagentWatcher Class ==========
|
|
46
46
|
export class SubagentWatcher extends EventEmitter {
|
|
47
47
|
filePositions = new Map();
|
|
48
|
-
fileWatchers = new Map();
|
|
49
48
|
dirWatchers = new Map();
|
|
49
|
+
// Per-file debouncer for directory watcher (replaces per-file FSWatchers)
|
|
50
|
+
fileDeb = new KeyedDebouncer(FILE_CONTENT_DEBOUNCE_MS);
|
|
50
51
|
agentInfo = new Map();
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
livenessInterval = null;
|
|
52
|
+
idleDeb = new KeyedDebouncer(IDLE_TIMEOUT_MS);
|
|
53
|
+
cleanup = new CleanupManager();
|
|
54
54
|
_isRunning = false;
|
|
55
55
|
knownSubagentDirs = new Set();
|
|
56
56
|
// Map of agentId -> Map of toolUseId -> { toolName, timestamp } (for linking tool_result to tool_call)
|
|
@@ -65,7 +65,8 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
65
65
|
parentDescriptionCache = new Map();
|
|
66
66
|
// Store error handlers for FSWatchers to enable proper cleanup (prevent memory leaks)
|
|
67
67
|
dirWatcherErrorHandlers = new Map();
|
|
68
|
-
|
|
68
|
+
// Map filePath → { projectHash, sessionId } for directory watcher file-change handling
|
|
69
|
+
fileAgentContext = new Map();
|
|
69
70
|
constructor() {
|
|
70
71
|
super();
|
|
71
72
|
this.setMaxListeners(50);
|
|
@@ -110,12 +111,12 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
110
111
|
// Periodic scan for new subagent directories
|
|
111
112
|
// Full directory traversal only every FULL_SCAN_EVERY_N_POLLS polls (~5s)
|
|
112
113
|
// FSWatchers handle known directories between full scans
|
|
113
|
-
this.
|
|
114
|
+
this.cleanup.setInterval(() => {
|
|
114
115
|
this._pollCount++;
|
|
115
116
|
if (this._pollCount % FULL_SCAN_EVERY_N_POLLS === 0) {
|
|
116
117
|
this.scanForSubagents().catch((err) => this.emit('subagent:error', err));
|
|
117
118
|
}
|
|
118
|
-
}, POLL_INTERVAL_MS);
|
|
119
|
+
}, POLL_INTERVAL_MS, { description: 'subagent directory poll' });
|
|
119
120
|
// Periodic liveness check for active subagents
|
|
120
121
|
this.startLivenessChecker();
|
|
121
122
|
}
|
|
@@ -129,9 +130,7 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
129
130
|
* 3. Full pgrep scan (expensive, ~500ms) — only for agents that fail tiers 1+2
|
|
130
131
|
*/
|
|
131
132
|
startLivenessChecker() {
|
|
132
|
-
|
|
133
|
-
return;
|
|
134
|
-
this.livenessInterval = setInterval(async () => {
|
|
133
|
+
this.cleanup.setInterval(async () => {
|
|
135
134
|
// Guard: prevent concurrent liveness checks (avoids duplicate completed events)
|
|
136
135
|
if (this._isCheckingLiveness)
|
|
137
136
|
return;
|
|
@@ -173,7 +172,7 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
173
172
|
finally {
|
|
174
173
|
this._isCheckingLiveness = false;
|
|
175
174
|
}
|
|
176
|
-
}, LIVENESS_CHECK_MS);
|
|
175
|
+
}, LIVENESS_CHECK_MS, { description: 'subagent liveness check' });
|
|
177
176
|
}
|
|
178
177
|
/**
|
|
179
178
|
* Check if a PID is still alive via /proc/{pid}/stat (single file read, ~0.1ms).
|
|
@@ -289,25 +288,12 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
289
288
|
*/
|
|
290
289
|
stop() {
|
|
291
290
|
this._isRunning = false;
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
this.livenessInterval = null;
|
|
299
|
-
}
|
|
300
|
-
// Remove error handlers before closing watchers to prevent memory leak
|
|
301
|
-
for (const [filePath, handler] of this.fileWatcherErrorHandlers) {
|
|
302
|
-
const watcher = this.fileWatchers.get(filePath);
|
|
303
|
-
if (watcher)
|
|
304
|
-
watcher.off('error', handler);
|
|
305
|
-
}
|
|
306
|
-
this.fileWatcherErrorHandlers.clear();
|
|
307
|
-
for (const watcher of this.fileWatchers.values()) {
|
|
308
|
-
watcher.close();
|
|
309
|
-
}
|
|
310
|
-
this.fileWatchers.clear();
|
|
291
|
+
// Dispose poll and liveness intervals, then re-create for potential restart
|
|
292
|
+
this.cleanup.dispose();
|
|
293
|
+
this.cleanup = new CleanupManager();
|
|
294
|
+
// Clear file debouncers
|
|
295
|
+
this.fileDeb.dispose();
|
|
296
|
+
this.fileAgentContext.clear();
|
|
311
297
|
// Remove error handlers before closing watchers to prevent memory leak
|
|
312
298
|
for (const [dir, handler] of this.dirWatcherErrorHandlers) {
|
|
313
299
|
const watcher = this.dirWatchers.get(dir);
|
|
@@ -319,10 +305,7 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
319
305
|
watcher.close();
|
|
320
306
|
}
|
|
321
307
|
this.dirWatchers.clear();
|
|
322
|
-
|
|
323
|
-
clearTimeout(timer);
|
|
324
|
-
}
|
|
325
|
-
this.idleTimers.clear();
|
|
308
|
+
this.idleDeb.dispose();
|
|
326
309
|
// Clear all state for clean restart
|
|
327
310
|
this.filePositions.clear();
|
|
328
311
|
this.agentInfo.clear();
|
|
@@ -395,17 +378,9 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
395
378
|
this.agentInfo.delete(agentId);
|
|
396
379
|
this.pendingToolCalls.delete(agentId);
|
|
397
380
|
this.filePositions.delete(info.filePath);
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
this.fileWatchers.delete(info.filePath);
|
|
402
|
-
this.fileWatcherErrorHandlers.delete(info.filePath);
|
|
403
|
-
}
|
|
404
|
-
const timer = this.idleTimers.get(agentId);
|
|
405
|
-
if (timer) {
|
|
406
|
-
clearTimeout(timer);
|
|
407
|
-
this.idleTimers.delete(agentId);
|
|
408
|
-
}
|
|
381
|
+
this.fileAgentContext.delete(info.filePath);
|
|
382
|
+
this.fileDeb.cancelKey(info.filePath);
|
|
383
|
+
this.idleDeb.cancelKey(agentId);
|
|
409
384
|
}
|
|
410
385
|
}
|
|
411
386
|
/**
|
|
@@ -481,9 +456,9 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
481
456
|
}
|
|
482
457
|
return {
|
|
483
458
|
agentCount: this.agentInfo.size,
|
|
484
|
-
|
|
459
|
+
fileDebouncerCount: this.fileDeb.size,
|
|
485
460
|
dirWatcherCount: this.dirWatchers.size,
|
|
486
|
-
idleTimerCount: this.
|
|
461
|
+
idleTimerCount: this.idleDeb.size,
|
|
487
462
|
pendingToolCallsCount,
|
|
488
463
|
knownDirsCount: this.knownSubagentDirs.size,
|
|
489
464
|
filePositionsCount: this.filePositions.size,
|
|
@@ -779,14 +754,29 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
779
754
|
try {
|
|
780
755
|
// The parent session's transcript is at: ~/.claude/projects/{projectHash}/{sessionId}.jsonl
|
|
781
756
|
const transcriptPath = join(CLAUDE_PROJECTS_DIR, projectHash, `${sessionId}.jsonl`);
|
|
757
|
+
let fileSize;
|
|
782
758
|
try {
|
|
783
|
-
await statAsync(transcriptPath);
|
|
759
|
+
const fileStat = await statAsync(transcriptPath);
|
|
760
|
+
fileSize = fileStat.size;
|
|
784
761
|
}
|
|
785
762
|
catch {
|
|
786
763
|
return undefined;
|
|
787
764
|
}
|
|
788
|
-
|
|
789
|
-
const
|
|
765
|
+
// Only read last 16KB — toolUseResult entries are near the end of the transcript
|
|
766
|
+
const TAIL_BYTES = 16384;
|
|
767
|
+
const startOffset = Math.max(0, fileSize - TAIL_BYTES);
|
|
768
|
+
const content = await new Promise((resolve, reject) => {
|
|
769
|
+
const chunks = [];
|
|
770
|
+
const stream = createReadStream(transcriptPath, { start: startOffset, encoding: 'utf8' });
|
|
771
|
+
stream.on('data', (chunk) => chunks.push(String(chunk)));
|
|
772
|
+
stream.on('end', () => resolve(chunks.join('')));
|
|
773
|
+
stream.on('error', reject);
|
|
774
|
+
});
|
|
775
|
+
let lines = content.split('\n').filter((l) => l.trim());
|
|
776
|
+
// If we started mid-file, drop the first partial line
|
|
777
|
+
if (startOffset > 0 && lines.length > 0) {
|
|
778
|
+
lines = lines.slice(1);
|
|
779
|
+
}
|
|
790
780
|
// Parse ALL toolUseResult entries into a Map and cache them
|
|
791
781
|
const descriptions = new Map();
|
|
792
782
|
for (const line of lines) {
|
|
@@ -917,39 +907,45 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
917
907
|
}
|
|
918
908
|
}
|
|
919
909
|
/**
|
|
920
|
-
* Watch a subagent directory for new
|
|
910
|
+
* Watch a subagent directory for new and changed files.
|
|
911
|
+
* Uses a single directory-level fs.watch() instead of per-file watchers.
|
|
912
|
+
* On Linux, inotify IN_MODIFY fires for content changes within the directory.
|
|
921
913
|
*/
|
|
922
914
|
async watchSubagentDir(dir, projectHash, sessionId) {
|
|
923
915
|
if (this.knownSubagentDirs.has(dir))
|
|
924
916
|
return;
|
|
925
917
|
this.knownSubagentDirs.add(dir);
|
|
926
|
-
//
|
|
918
|
+
// Register existing files (initial scan - skip old files)
|
|
927
919
|
try {
|
|
928
920
|
const files = await readdir(dir);
|
|
929
921
|
for (const file of files) {
|
|
930
922
|
if (file.endsWith('.jsonl')) {
|
|
931
|
-
await this.
|
|
923
|
+
await this.registerAgentFile(join(dir, file), projectHash, sessionId, true);
|
|
932
924
|
}
|
|
933
925
|
}
|
|
934
926
|
}
|
|
935
927
|
catch {
|
|
936
928
|
return;
|
|
937
929
|
}
|
|
938
|
-
//
|
|
930
|
+
// Single directory watcher handles both new files and file content changes
|
|
939
931
|
try {
|
|
940
932
|
const watcher = watch(dir, (_eventType, filename) => {
|
|
941
|
-
if (filename?.endsWith('.jsonl'))
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
}
|
|
951
|
-
}
|
|
952
|
-
|
|
933
|
+
if (!filename?.endsWith('.jsonl'))
|
|
934
|
+
return;
|
|
935
|
+
const filePath = join(dir, filename);
|
|
936
|
+
// Debounce 100ms to batch rapid writes
|
|
937
|
+
this.fileDeb.schedule(filePath, () => {
|
|
938
|
+
if (!existsSync(filePath))
|
|
939
|
+
return;
|
|
940
|
+
if (this.fileAgentContext.has(filePath)) {
|
|
941
|
+
// Known file — handle content change
|
|
942
|
+
this.handleFileChange(filePath).catch(() => { });
|
|
943
|
+
}
|
|
944
|
+
else {
|
|
945
|
+
// New file — register it
|
|
946
|
+
this.registerAgentFile(filePath, projectHash, sessionId).catch(() => { });
|
|
947
|
+
}
|
|
948
|
+
});
|
|
953
949
|
});
|
|
954
950
|
// Handle watcher errors to prevent unhandled exceptions
|
|
955
951
|
// Store handler reference for proper cleanup
|
|
@@ -969,20 +965,67 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
969
965
|
}
|
|
970
966
|
}
|
|
971
967
|
/**
|
|
972
|
-
*
|
|
968
|
+
* Handle a file content change for an already-registered agent file.
|
|
969
|
+
* Tails from last known position, updates info, retries description if missing.
|
|
970
|
+
*/
|
|
971
|
+
async handleFileChange(filePath) {
|
|
972
|
+
const context = this.fileAgentContext.get(filePath);
|
|
973
|
+
if (!context)
|
|
974
|
+
return;
|
|
975
|
+
const agentId = basename(filePath).replace('agent-', '').replace('.jsonl', '');
|
|
976
|
+
const currentPos = this.filePositions.get(filePath) || 0;
|
|
977
|
+
const newPos = await this.tailFile(filePath, agentId, context.sessionId, currentPos);
|
|
978
|
+
this.filePositions.set(filePath, newPos);
|
|
979
|
+
// Update info
|
|
980
|
+
const existingInfo = this.agentInfo.get(agentId);
|
|
981
|
+
if (existingInfo) {
|
|
982
|
+
try {
|
|
983
|
+
const newStat = await statAsync(filePath);
|
|
984
|
+
existingInfo.lastActivityAt = Date.now();
|
|
985
|
+
existingInfo.fileSize = newStat.size;
|
|
986
|
+
existingInfo.status = 'active';
|
|
987
|
+
}
|
|
988
|
+
catch {
|
|
989
|
+
// Stat failed
|
|
990
|
+
}
|
|
991
|
+
// Retry description extraction if missing (race condition fix)
|
|
992
|
+
if (!existingInfo.description) {
|
|
993
|
+
// First try parent transcript (most reliable)
|
|
994
|
+
let extractedDescription = await this.extractDescriptionFromParentTranscript(existingInfo.projectHash, existingInfo.sessionId, agentId);
|
|
995
|
+
// Fallback to subagent file
|
|
996
|
+
if (!extractedDescription) {
|
|
997
|
+
extractedDescription = await this.extractDescriptionFromFile(filePath);
|
|
998
|
+
}
|
|
999
|
+
if (extractedDescription) {
|
|
1000
|
+
// Check if this is an internal agent - if so, remove it
|
|
1001
|
+
if (this.isInternalAgent(extractedDescription)) {
|
|
1002
|
+
this.removeAgent(agentId);
|
|
1003
|
+
return;
|
|
1004
|
+
}
|
|
1005
|
+
existingInfo.description = extractedDescription;
|
|
1006
|
+
this.emit('subagent:updated', existingInfo);
|
|
1007
|
+
}
|
|
1008
|
+
}
|
|
1009
|
+
// Reset idle timer
|
|
1010
|
+
this.resetIdleTimer(agentId);
|
|
1011
|
+
}
|
|
1012
|
+
}
|
|
1013
|
+
/**
|
|
1014
|
+
* Register a specific agent transcript file (discovery + initial read).
|
|
1015
|
+
* Does NOT create a per-file watcher — the directory watcher handles changes.
|
|
973
1016
|
* @param filePath Path to the agent transcript file
|
|
974
1017
|
* @param projectHash Claude project hash
|
|
975
1018
|
* @param sessionId Claude session ID
|
|
976
1019
|
* @param isInitialScan If true, skip files older than STARTUP_MAX_FILE_AGE_MS
|
|
977
1020
|
*/
|
|
978
|
-
async
|
|
979
|
-
if (this.
|
|
1021
|
+
async registerAgentFile(filePath, projectHash, sessionId, isInitialScan = false) {
|
|
1022
|
+
if (this.fileAgentContext.has(filePath))
|
|
980
1023
|
return;
|
|
981
1024
|
const agentId = basename(filePath).replace('agent-', '').replace('.jsonl', '');
|
|
982
1025
|
// Initial info - handle race condition where file may be deleted between discovery and stat
|
|
983
|
-
let
|
|
1026
|
+
let fileStat;
|
|
984
1027
|
try {
|
|
985
|
-
|
|
1028
|
+
fileStat = await statAsync(filePath);
|
|
986
1029
|
}
|
|
987
1030
|
catch {
|
|
988
1031
|
// File was deleted between discovery and stat - skip this agent
|
|
@@ -990,7 +1033,7 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
990
1033
|
}
|
|
991
1034
|
// On initial scan, skip old files to avoid loading stale historical data
|
|
992
1035
|
if (isInitialScan) {
|
|
993
|
-
const fileAge = Date.now() -
|
|
1036
|
+
const fileAge = Date.now() - fileStat.mtime.getTime();
|
|
994
1037
|
if (fileAge > STARTUP_MAX_FILE_AGE_MS) {
|
|
995
1038
|
return; // Skip old files on startup
|
|
996
1039
|
}
|
|
@@ -1011,12 +1054,12 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
1011
1054
|
sessionId,
|
|
1012
1055
|
projectHash,
|
|
1013
1056
|
filePath,
|
|
1014
|
-
startedAt:
|
|
1015
|
-
lastActivityAt:
|
|
1057
|
+
startedAt: fileStat.birthtime.toISOString(),
|
|
1058
|
+
lastActivityAt: fileStat.mtime.getTime(),
|
|
1016
1059
|
status: 'active',
|
|
1017
1060
|
toolCallCount: 0,
|
|
1018
1061
|
entryCount: 0,
|
|
1019
|
-
fileSize:
|
|
1062
|
+
fileSize: fileStat.size,
|
|
1020
1063
|
description,
|
|
1021
1064
|
};
|
|
1022
1065
|
// Enforce MAX_TRACKED_AGENTS during insertion — evict oldest inactive agent
|
|
@@ -1033,6 +1076,8 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
1033
1076
|
this.removeAgent(oldestId);
|
|
1034
1077
|
}
|
|
1035
1078
|
}
|
|
1079
|
+
// Track file context for directory watcher change handling
|
|
1080
|
+
this.fileAgentContext.set(filePath, { projectHash, sessionId });
|
|
1036
1081
|
this.agentInfo.set(agentId, info);
|
|
1037
1082
|
this.emit('subagent:discovered', info);
|
|
1038
1083
|
// Read existing content
|
|
@@ -1044,64 +1089,7 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
1044
1089
|
// Log but don't throw - non-critical background operation
|
|
1045
1090
|
console.warn(`[SubagentWatcher] Failed to read initial content for ${agentId}:`, err);
|
|
1046
1091
|
});
|
|
1047
|
-
|
|
1048
|
-
try {
|
|
1049
|
-
const watcher = watch(filePath, async (eventType) => {
|
|
1050
|
-
if (eventType === 'change') {
|
|
1051
|
-
const currentPos = this.filePositions.get(filePath) || 0;
|
|
1052
|
-
const newPos = await this.tailFile(filePath, agentId, sessionId, currentPos);
|
|
1053
|
-
this.filePositions.set(filePath, newPos);
|
|
1054
|
-
// Update info
|
|
1055
|
-
const existingInfo = this.agentInfo.get(agentId);
|
|
1056
|
-
if (existingInfo) {
|
|
1057
|
-
try {
|
|
1058
|
-
const newStat = await statAsync(filePath);
|
|
1059
|
-
existingInfo.lastActivityAt = Date.now();
|
|
1060
|
-
existingInfo.fileSize = newStat.size;
|
|
1061
|
-
existingInfo.status = 'active';
|
|
1062
|
-
}
|
|
1063
|
-
catch {
|
|
1064
|
-
// Stat failed
|
|
1065
|
-
}
|
|
1066
|
-
// Retry description extraction if missing (race condition fix)
|
|
1067
|
-
if (!existingInfo.description) {
|
|
1068
|
-
// First try parent transcript (most reliable)
|
|
1069
|
-
let extractedDescription = await this.extractDescriptionFromParentTranscript(existingInfo.projectHash, existingInfo.sessionId, agentId);
|
|
1070
|
-
// Fallback to subagent file
|
|
1071
|
-
if (!extractedDescription) {
|
|
1072
|
-
extractedDescription = await this.extractDescriptionFromFile(filePath);
|
|
1073
|
-
}
|
|
1074
|
-
if (extractedDescription) {
|
|
1075
|
-
// Check if this is an internal agent - if so, remove it
|
|
1076
|
-
if (this.isInternalAgent(extractedDescription)) {
|
|
1077
|
-
this.removeAgent(agentId);
|
|
1078
|
-
return;
|
|
1079
|
-
}
|
|
1080
|
-
existingInfo.description = extractedDescription;
|
|
1081
|
-
this.emit('subagent:updated', existingInfo);
|
|
1082
|
-
}
|
|
1083
|
-
}
|
|
1084
|
-
// Reset idle timer
|
|
1085
|
-
this.resetIdleTimer(agentId);
|
|
1086
|
-
}
|
|
1087
|
-
}
|
|
1088
|
-
});
|
|
1089
|
-
// Handle watcher errors to prevent unhandled exceptions
|
|
1090
|
-
// Store handler reference for proper cleanup
|
|
1091
|
-
const errorHandler = (error) => {
|
|
1092
|
-
this.emit('subagent:error', error instanceof Error ? error : new Error(String(error)), agentId);
|
|
1093
|
-
watcher.close();
|
|
1094
|
-
this.fileWatcherErrorHandlers.delete(filePath);
|
|
1095
|
-
this.fileWatchers.delete(filePath);
|
|
1096
|
-
};
|
|
1097
|
-
watcher.on('error', errorHandler);
|
|
1098
|
-
this.fileWatcherErrorHandlers.set(filePath, errorHandler);
|
|
1099
|
-
this.fileWatchers.set(filePath, watcher);
|
|
1100
|
-
this.resetIdleTimer(agentId);
|
|
1101
|
-
}
|
|
1102
|
-
catch {
|
|
1103
|
-
// Watch failed
|
|
1104
|
-
}
|
|
1092
|
+
this.resetIdleTimer(agentId);
|
|
1105
1093
|
}
|
|
1106
1094
|
/**
|
|
1107
1095
|
* Tail a file from a specific position
|
|
@@ -1382,23 +1370,14 @@ export class SubagentWatcher extends EventEmitter {
|
|
|
1382
1370
|
* Reset idle timer for an agent
|
|
1383
1371
|
*/
|
|
1384
1372
|
resetIdleTimer(agentId) {
|
|
1385
|
-
|
|
1386
|
-
if (existing) {
|
|
1387
|
-
clearTimeout(existing);
|
|
1388
|
-
}
|
|
1389
|
-
const timer = setTimeout(() => {
|
|
1390
|
-
// Guard against race condition: agent may have been deleted before timer fires
|
|
1373
|
+
this.idleDeb.schedule(agentId, () => {
|
|
1391
1374
|
const info = this.agentInfo.get(agentId);
|
|
1392
|
-
if (!info)
|
|
1393
|
-
// Agent was deleted - clean up timer reference
|
|
1394
|
-
this.idleTimers.delete(agentId);
|
|
1375
|
+
if (!info)
|
|
1395
1376
|
return;
|
|
1396
|
-
}
|
|
1397
1377
|
if (info.status === 'active') {
|
|
1398
1378
|
info.status = 'idle';
|
|
1399
1379
|
}
|
|
1400
|
-
}
|
|
1401
|
-
this.idleTimers.set(agentId, timer);
|
|
1380
|
+
});
|
|
1402
1381
|
}
|
|
1403
1382
|
/**
|
|
1404
1383
|
* Format a tool call for display
|