aicodeman 0.2.9 → 0.3.1
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 +118 -4
- 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 +42 -0
- package/dist/config/server-timing.d.ts.map +1 -0
- package/dist/config/server-timing.js +57 -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 +21 -6
- package/dist/hooks-config.d.ts.map +1 -1
- package/dist/hooks-config.js +28 -12
- 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/prompts/planner.d.ts +7 -8
- package/dist/prompts/planner.d.ts.map +1 -1
- package/dist/prompts/planner.js +7 -8
- package/dist/prompts/planner.js.map +1 -1
- package/dist/prompts/research-agent.d.ts +6 -4
- package/dist/prompts/research-agent.d.ts.map +1 -1
- package/dist/prompts/research-agent.js +6 -4
- package/dist/prompts/research-agent.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-loop.d.ts +14 -4
- package/dist/ralph-loop.d.ts.map +1 -1
- package/dist/ralph-loop.js +14 -4
- package/dist/ralph-loop.js.map +1 -1
- 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 +218 -692
- package/dist/ralph-tracker.d.ts.map +1 -1
- package/dist/ralph-tracker.js +389 -1723
- 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 +35 -115
- package/dist/respawn-controller.d.ts.map +1 -1
- package/dist/respawn-controller.js +167 -607
- 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-manager.d.ts +17 -5
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-manager.js +17 -5
- package/dist/session-manager.js.map +1 -1
- 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 +23 -41
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +79 -317
- package/dist/session.js.map +1 -1
- package/dist/state-store.d.ts +19 -9
- package/dist/state-store.d.ts.map +1 -1
- package/dist/state-store.js +29 -30
- package/dist/state-store.js.map +1 -1
- package/dist/subagent-watcher.d.ts +26 -7
- package/dist/subagent-watcher.d.ts.map +1 -1
- package/dist/subagent-watcher.js +47 -64
- package/dist/subagent-watcher.js.map +1 -1
- package/dist/team-watcher.d.ts.map +1 -1
- package/dist/team-watcher.js +2 -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 +126 -7
- package/dist/tunnel-manager.js.map +1 -1
- package/dist/types/api.d.ts +108 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +98 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/app-state.d.ts +117 -0
- package/dist/types/app-state.d.ts.map +1 -0
- package/dist/types/app-state.js +76 -0
- package/dist/types/app-state.js.map +1 -0
- package/dist/types/common.d.ts +79 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +17 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +66 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +66 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lifecycle.d.ts +28 -0
- package/dist/types/lifecycle.d.ts.map +1 -0
- package/dist/types/lifecycle.js +16 -0
- package/dist/types/lifecycle.js.map +1 -0
- package/dist/types/plan.d.ts +45 -0
- package/dist/types/plan.d.ts.map +1 -0
- package/dist/types/plan.js +18 -0
- package/dist/types/plan.js.map +1 -0
- package/dist/types/push.d.ts +36 -0
- package/dist/types/push.d.ts.map +1 -0
- package/dist/types/push.js +18 -0
- package/dist/types/push.js.map +1 -0
- package/dist/types/ralph.d.ts +262 -0
- package/dist/types/ralph.d.ts.map +1 -0
- package/dist/types/ralph.js +70 -0
- package/dist/types/ralph.js.map +1 -0
- package/dist/types/respawn.d.ts +271 -0
- package/dist/types/respawn.d.ts.map +1 -0
- package/dist/types/respawn.js +26 -0
- package/dist/types/respawn.js.map +1 -0
- package/dist/types/run-summary.d.ts +96 -0
- package/dist/types/run-summary.d.ts.map +1 -0
- package/dist/types/run-summary.js +37 -0
- package/dist/types/run-summary.js.map +1 -0
- package/dist/types/session.d.ts +152 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +27 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/task.d.ts +72 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +19 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/teams.d.ts +73 -0
- package/dist/types/teams.d.ts.map +1 -0
- package/dist/types/teams.js +23 -0
- package/dist/types/teams.js.map +1 -0
- package/dist/types/tools.d.ts +61 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +20 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/types.d.ts +8 -1134
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -210
- 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 +82 -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 +117 -201
- package/dist/web/public/app.js.br +0 -0
- package/dist/web/public/app.js.gz +0 -0
- package/dist/web/public/constants.js +365 -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 +15 -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 +302 -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 +491 -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 +472 -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 +33 -9
- 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 +1149 -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 +15 -0
- package/dist/web/public/sw.js.br +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-zerolag-input.js +4 -0
- package/dist/web/public/vendor/xterm-zerolag-input.js.br +0 -0
- package/dist/web/public/vendor/xterm-zerolag-input.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 +882 -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 +144 -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 +426 -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 +385 -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 +485 -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 +270 -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 +751 -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 +699 -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 +35 -15
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +563 -3971
- package/dist/web/server.js.map +1 -1
- package/dist/web/sse-events.d.ts +361 -0
- package/dist/web/sse-events.d.ts.map +1 -0
- package/dist/web/sse-events.js +396 -0
- package/dist/web/sse-events.js.map +1 -0
- package/package.json +2 -1
- package/scripts/postinstall.js +58 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Respawn controller type definitions.
|
|
3
|
+
*
|
|
4
|
+
* Covers the autonomous session cycling system: configuration, presets,
|
|
5
|
+
* per-cycle metrics, aggregate health scoring, and adaptive timing.
|
|
6
|
+
*
|
|
7
|
+
* Key exports:
|
|
8
|
+
* - RespawnConfig — full respawn settings (idle timeout, AI checks, adaptive timing, skip-clear)
|
|
9
|
+
* - PersistedRespawnConfig — subset saved to disk for mux session recovery
|
|
10
|
+
* - RespawnPreset — named preset for quick setup (solo-work, team-lead, overnight-autonomous, etc.)
|
|
11
|
+
* - RespawnCycleMetrics — per-cycle outcome tracking (duration, idle reason, steps, tokens)
|
|
12
|
+
* - RespawnAggregateMetrics — aggregate stats across cycles (success rate, p90 duration)
|
|
13
|
+
* - RalphLoopHealthScore — composite 0-100 health score with 5 component scores
|
|
14
|
+
* - HealthStatus — 'excellent' | 'good' | 'degraded' | 'critical'
|
|
15
|
+
* - TimingHistory — rolling window of timing data for adaptive adjustments
|
|
16
|
+
* - CycleOutcome — 'success' | 'stuck_recovery' | 'blocked' | 'error' | 'cancelled'
|
|
17
|
+
*
|
|
18
|
+
* Cross-domain relationships:
|
|
19
|
+
* - RespawnConfig is embedded in AppConfig.respawn (app-state) and SessionState.respawnConfig (session)
|
|
20
|
+
* - RalphLoopHealthScore.components.circuitBreaker derives from CircuitBreakerStatus (ralph domain)
|
|
21
|
+
* - RespawnCycleMetrics.sessionId links to SessionState.id (session domain)
|
|
22
|
+
*
|
|
23
|
+
* Served at `GET /api/sessions/:id/respawn` (config + state).
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Configuration for the Respawn Controller
|
|
27
|
+
*
|
|
28
|
+
* The respawn controller keeps interactive sessions productive by
|
|
29
|
+
* automatically cycling through update prompts when Claude goes idle.
|
|
30
|
+
*/
|
|
31
|
+
export interface RespawnConfig {
|
|
32
|
+
/** How long to wait after seeing prompt before considering truly idle (ms) */
|
|
33
|
+
idleTimeoutMs: number;
|
|
34
|
+
/** The prompt to send for updating docs */
|
|
35
|
+
updatePrompt: string;
|
|
36
|
+
/** Delay between sending steps (ms) */
|
|
37
|
+
interStepDelayMs: number;
|
|
38
|
+
/** Whether to enable respawn loop */
|
|
39
|
+
enabled: boolean;
|
|
40
|
+
/** Whether to send /clear after update prompt */
|
|
41
|
+
sendClear: boolean;
|
|
42
|
+
/** Whether to send /init after /clear */
|
|
43
|
+
sendInit: boolean;
|
|
44
|
+
/** Optional prompt to send if /init doesn't trigger work */
|
|
45
|
+
kickstartPrompt?: string;
|
|
46
|
+
/** Time to wait after completion message before confirming idle (ms) */
|
|
47
|
+
completionConfirmMs?: number;
|
|
48
|
+
/** Fallback timeout when no output received at all (ms) */
|
|
49
|
+
noOutputTimeoutMs?: number;
|
|
50
|
+
/** Whether to auto-accept plan mode prompts by pressing Enter (not questions) */
|
|
51
|
+
autoAcceptPrompts?: boolean;
|
|
52
|
+
/** Delay before auto-accepting plan mode prompts when no output and no completion message (ms) */
|
|
53
|
+
autoAcceptDelayMs?: number;
|
|
54
|
+
/** Whether AI idle check is enabled */
|
|
55
|
+
aiIdleCheckEnabled?: boolean;
|
|
56
|
+
/** Model to use for AI idle check */
|
|
57
|
+
aiIdleCheckModel?: string;
|
|
58
|
+
/** Maximum characters of terminal buffer for AI check */
|
|
59
|
+
aiIdleCheckMaxContext?: number;
|
|
60
|
+
/** Timeout for AI check in ms */
|
|
61
|
+
aiIdleCheckTimeoutMs?: number;
|
|
62
|
+
/** Cooldown after WORKING verdict in ms */
|
|
63
|
+
aiIdleCheckCooldownMs?: number;
|
|
64
|
+
/** Whether AI plan mode check is enabled for auto-accept */
|
|
65
|
+
aiPlanCheckEnabled?: boolean;
|
|
66
|
+
/** Model to use for AI plan mode check */
|
|
67
|
+
aiPlanCheckModel?: string;
|
|
68
|
+
/** Maximum characters of terminal buffer for plan check */
|
|
69
|
+
aiPlanCheckMaxContext?: number;
|
|
70
|
+
/** Timeout for AI plan check in ms */
|
|
71
|
+
aiPlanCheckTimeoutMs?: number;
|
|
72
|
+
/** Cooldown after NOT_PLAN_MODE verdict in ms */
|
|
73
|
+
aiPlanCheckCooldownMs?: number;
|
|
74
|
+
/** Whether to use adaptive timing based on historical patterns */
|
|
75
|
+
adaptiveTimingEnabled?: boolean;
|
|
76
|
+
/** Minimum value for adaptive completion confirm (ms) */
|
|
77
|
+
adaptiveMinConfirmMs?: number;
|
|
78
|
+
/** Maximum value for adaptive completion confirm (ms) */
|
|
79
|
+
adaptiveMaxConfirmMs?: number;
|
|
80
|
+
/** Whether to skip /clear when context is below threshold */
|
|
81
|
+
skipClearWhenLowContext?: boolean;
|
|
82
|
+
/** Token percentage threshold below which /clear is skipped (0-100) */
|
|
83
|
+
skipClearThresholdPercent?: number;
|
|
84
|
+
/** Whether to track and persist cycle metrics */
|
|
85
|
+
trackCycleMetrics?: boolean;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Outcome of a respawn cycle
|
|
89
|
+
*/
|
|
90
|
+
export type CycleOutcome = 'success' | 'stuck_recovery' | 'blocked' | 'error' | 'cancelled';
|
|
91
|
+
/**
|
|
92
|
+
* Metrics for a single respawn cycle.
|
|
93
|
+
* Persisted for post-mortem analysis of long-running loops.
|
|
94
|
+
*/
|
|
95
|
+
export interface RespawnCycleMetrics {
|
|
96
|
+
/** Unique cycle ID (session-id:cycle-number) */
|
|
97
|
+
cycleId: string;
|
|
98
|
+
/** Session ID this cycle belongs to */
|
|
99
|
+
sessionId: string;
|
|
100
|
+
/** Cycle number within the session */
|
|
101
|
+
cycleNumber: number;
|
|
102
|
+
/** Timestamp when cycle started */
|
|
103
|
+
startedAt: number;
|
|
104
|
+
/** Timestamp when cycle completed */
|
|
105
|
+
completedAt: number;
|
|
106
|
+
/** Total duration of cycle (ms) */
|
|
107
|
+
durationMs: number;
|
|
108
|
+
/** What triggered idle detection */
|
|
109
|
+
idleReason: string;
|
|
110
|
+
/** Time spent detecting idle (from start of watching to idle confirmed) */
|
|
111
|
+
idleDetectionMs: number;
|
|
112
|
+
/** Steps completed in this cycle */
|
|
113
|
+
stepsCompleted: string[];
|
|
114
|
+
/** Whether /clear was skipped (P2-002) */
|
|
115
|
+
clearSkipped: boolean;
|
|
116
|
+
/** Outcome of the cycle */
|
|
117
|
+
outcome: CycleOutcome;
|
|
118
|
+
/** Error message if outcome is 'error' */
|
|
119
|
+
errorMessage?: string;
|
|
120
|
+
/** Token count at start of cycle */
|
|
121
|
+
tokenCountAtStart?: number;
|
|
122
|
+
/** Token count at end of cycle */
|
|
123
|
+
tokenCountAtEnd?: number;
|
|
124
|
+
/** Completion confirm time used (may be adaptive) */
|
|
125
|
+
completionConfirmMsUsed: number;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Aggregate metrics across multiple cycles for health scoring.
|
|
129
|
+
*/
|
|
130
|
+
export interface RespawnAggregateMetrics {
|
|
131
|
+
/** Total cycles tracked */
|
|
132
|
+
totalCycles: number;
|
|
133
|
+
/** Successful cycles */
|
|
134
|
+
successfulCycles: number;
|
|
135
|
+
/** Cycles that required stuck-state recovery */
|
|
136
|
+
stuckRecoveryCycles: number;
|
|
137
|
+
/** Blocked cycles */
|
|
138
|
+
blockedCycles: number;
|
|
139
|
+
/** Error cycles */
|
|
140
|
+
errorCycles: number;
|
|
141
|
+
/** Average cycle duration (ms) */
|
|
142
|
+
avgCycleDurationMs: number;
|
|
143
|
+
/** Average idle detection time (ms) */
|
|
144
|
+
avgIdleDetectionMs: number;
|
|
145
|
+
/** 90th percentile cycle duration (ms) */
|
|
146
|
+
p90CycleDurationMs: number;
|
|
147
|
+
/** Success rate (0-100) */
|
|
148
|
+
successRate: number;
|
|
149
|
+
/** Last updated timestamp */
|
|
150
|
+
lastUpdatedAt: number;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Health status levels for the Ralph Loop system.
|
|
154
|
+
*/
|
|
155
|
+
export type HealthStatus = 'excellent' | 'good' | 'degraded' | 'critical';
|
|
156
|
+
/**
|
|
157
|
+
* Comprehensive health score for a Ralph Loop session.
|
|
158
|
+
* Aggregates multiple health signals into a single score.
|
|
159
|
+
*/
|
|
160
|
+
export interface RalphLoopHealthScore {
|
|
161
|
+
/** Overall health score (0-100) */
|
|
162
|
+
score: number;
|
|
163
|
+
/** Health status based on score thresholds */
|
|
164
|
+
status: HealthStatus;
|
|
165
|
+
/** Individual component scores (0-100 each) */
|
|
166
|
+
components: {
|
|
167
|
+
/** Based on recent cycle success rate */
|
|
168
|
+
cycleSuccess: number;
|
|
169
|
+
/** Based on circuit breaker state */
|
|
170
|
+
circuitBreaker: number;
|
|
171
|
+
/** Based on iteration stall metrics */
|
|
172
|
+
iterationProgress: number;
|
|
173
|
+
/** Based on AI checker error rate */
|
|
174
|
+
aiChecker: number;
|
|
175
|
+
/** Based on stuck-state recovery count */
|
|
176
|
+
stuckRecovery: number;
|
|
177
|
+
};
|
|
178
|
+
/** Human-readable summary of health */
|
|
179
|
+
summary: string;
|
|
180
|
+
/** Recommendations for improvement */
|
|
181
|
+
recommendations: string[];
|
|
182
|
+
/** Timestamp when score was calculated */
|
|
183
|
+
calculatedAt: number;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Historical timing data for adaptive adjustments.
|
|
187
|
+
*/
|
|
188
|
+
export interface TimingHistory {
|
|
189
|
+
/** Rolling window of recent idle detection durations (ms) */
|
|
190
|
+
recentIdleDetectionMs: number[];
|
|
191
|
+
/** Rolling window of recent cycle durations (ms) */
|
|
192
|
+
recentCycleDurationMs: number[];
|
|
193
|
+
/** Calculated adaptive completion confirm value (ms) */
|
|
194
|
+
adaptiveCompletionConfirmMs: number;
|
|
195
|
+
/** Number of samples in rolling windows */
|
|
196
|
+
sampleCount: number;
|
|
197
|
+
/** Maximum samples to keep */
|
|
198
|
+
maxSamples: number;
|
|
199
|
+
/** Last updated timestamp */
|
|
200
|
+
lastUpdatedAt: number;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Named respawn configuration preset for quick setup
|
|
204
|
+
*/
|
|
205
|
+
export interface RespawnPreset {
|
|
206
|
+
/** Unique preset identifier */
|
|
207
|
+
id: string;
|
|
208
|
+
/** User-friendly preset name */
|
|
209
|
+
name: string;
|
|
210
|
+
/** Description of when to use this preset */
|
|
211
|
+
description?: string;
|
|
212
|
+
/** The respawn configuration (without enabled flag) */
|
|
213
|
+
config: Omit<RespawnConfig, 'enabled'>;
|
|
214
|
+
/** Duration in minutes (optional default) */
|
|
215
|
+
durationMinutes?: number;
|
|
216
|
+
/** Whether this is a built-in preset */
|
|
217
|
+
builtIn?: boolean;
|
|
218
|
+
/** Timestamp when created */
|
|
219
|
+
createdAt: number;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Persisted respawn configuration for mux sessions.
|
|
223
|
+
* Subset of RespawnConfig that gets saved to disk.
|
|
224
|
+
*/
|
|
225
|
+
export interface PersistedRespawnConfig {
|
|
226
|
+
/** Whether respawn was enabled */
|
|
227
|
+
enabled: boolean;
|
|
228
|
+
/** How long to wait after seeing prompt before considering truly idle (ms) */
|
|
229
|
+
idleTimeoutMs: number;
|
|
230
|
+
/** The prompt to send for updating docs */
|
|
231
|
+
updatePrompt: string;
|
|
232
|
+
/** Delay between sending steps (ms) */
|
|
233
|
+
interStepDelayMs: number;
|
|
234
|
+
/** Whether to send /clear after update prompt */
|
|
235
|
+
sendClear: boolean;
|
|
236
|
+
/** Whether to send /init after /clear */
|
|
237
|
+
sendInit: boolean;
|
|
238
|
+
/** Optional prompt to send if /init doesn't trigger work */
|
|
239
|
+
kickstartPrompt?: string;
|
|
240
|
+
/** Whether to auto-accept plan mode prompts by pressing Enter (not questions) */
|
|
241
|
+
autoAcceptPrompts?: boolean;
|
|
242
|
+
/** Delay before auto-accepting prompts (ms) */
|
|
243
|
+
autoAcceptDelayMs?: number;
|
|
244
|
+
/** Time to wait after completion message before confirming idle (ms) */
|
|
245
|
+
completionConfirmMs?: number;
|
|
246
|
+
/** Fallback timeout when no output received at all (ms) */
|
|
247
|
+
noOutputTimeoutMs?: number;
|
|
248
|
+
/** Whether AI idle check is enabled */
|
|
249
|
+
aiIdleCheckEnabled?: boolean;
|
|
250
|
+
/** Model to use for AI idle check */
|
|
251
|
+
aiIdleCheckModel?: string;
|
|
252
|
+
/** Maximum characters of terminal buffer for AI check */
|
|
253
|
+
aiIdleCheckMaxContext?: number;
|
|
254
|
+
/** Timeout for AI check in ms */
|
|
255
|
+
aiIdleCheckTimeoutMs?: number;
|
|
256
|
+
/** Cooldown after WORKING verdict in ms */
|
|
257
|
+
aiIdleCheckCooldownMs?: number;
|
|
258
|
+
/** Whether AI plan mode check is enabled for auto-accept */
|
|
259
|
+
aiPlanCheckEnabled?: boolean;
|
|
260
|
+
/** Model to use for AI plan mode check */
|
|
261
|
+
aiPlanCheckModel?: string;
|
|
262
|
+
/** Maximum characters of terminal buffer for plan check */
|
|
263
|
+
aiPlanCheckMaxContext?: number;
|
|
264
|
+
/** Timeout for AI plan check in ms */
|
|
265
|
+
aiPlanCheckTimeoutMs?: number;
|
|
266
|
+
/** Cooldown after NOT_PLAN_MODE verdict in ms */
|
|
267
|
+
aiPlanCheckCooldownMs?: number;
|
|
268
|
+
/** Duration in minutes if timed respawn was set */
|
|
269
|
+
durationMinutes?: number;
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=respawn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respawn.d.ts","sourceRoot":"","sources":["../../src/types/respawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Respawn controller type definitions.
|
|
3
|
+
*
|
|
4
|
+
* Covers the autonomous session cycling system: configuration, presets,
|
|
5
|
+
* per-cycle metrics, aggregate health scoring, and adaptive timing.
|
|
6
|
+
*
|
|
7
|
+
* Key exports:
|
|
8
|
+
* - RespawnConfig — full respawn settings (idle timeout, AI checks, adaptive timing, skip-clear)
|
|
9
|
+
* - PersistedRespawnConfig — subset saved to disk for mux session recovery
|
|
10
|
+
* - RespawnPreset — named preset for quick setup (solo-work, team-lead, overnight-autonomous, etc.)
|
|
11
|
+
* - RespawnCycleMetrics — per-cycle outcome tracking (duration, idle reason, steps, tokens)
|
|
12
|
+
* - RespawnAggregateMetrics — aggregate stats across cycles (success rate, p90 duration)
|
|
13
|
+
* - RalphLoopHealthScore — composite 0-100 health score with 5 component scores
|
|
14
|
+
* - HealthStatus — 'excellent' | 'good' | 'degraded' | 'critical'
|
|
15
|
+
* - TimingHistory — rolling window of timing data for adaptive adjustments
|
|
16
|
+
* - CycleOutcome — 'success' | 'stuck_recovery' | 'blocked' | 'error' | 'cancelled'
|
|
17
|
+
*
|
|
18
|
+
* Cross-domain relationships:
|
|
19
|
+
* - RespawnConfig is embedded in AppConfig.respawn (app-state) and SessionState.respawnConfig (session)
|
|
20
|
+
* - RalphLoopHealthScore.components.circuitBreaker derives from CircuitBreakerStatus (ralph domain)
|
|
21
|
+
* - RespawnCycleMetrics.sessionId links to SessionState.id (session domain)
|
|
22
|
+
*
|
|
23
|
+
* Served at `GET /api/sessions/:id/respawn` (config + state).
|
|
24
|
+
*/
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=respawn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respawn.js","sourceRoot":"","sources":["../../src/types/respawn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Run summary type definitions.
|
|
3
|
+
*
|
|
4
|
+
* Types for the "what happened while away" session timeline. RunSummary
|
|
5
|
+
* aggregates events (respawn cycles, errors, token milestones, AI checks)
|
|
6
|
+
* into a per-session historical view.
|
|
7
|
+
*
|
|
8
|
+
* Key exports:
|
|
9
|
+
* - RunSummary — complete per-session summary (events timeline + aggregated stats)
|
|
10
|
+
* - RunSummaryEvent — a single timestamped event (16 event types, 4 severity levels)
|
|
11
|
+
* - RunSummaryStats — aggregated metrics (cycles, tokens, active/idle time, error count)
|
|
12
|
+
* - RunSummaryEventType — union of event types (session_started, respawn_cycle_*, error, etc.)
|
|
13
|
+
* - RunSummaryEventSeverity — 'info' | 'warning' | 'error' | 'success'
|
|
14
|
+
* - createInitialRunSummaryStats() — factory for fresh stats
|
|
15
|
+
*
|
|
16
|
+
* Cross-domain: RunSummary.sessionId links to SessionState.id (session domain).
|
|
17
|
+
* In-memory only (not persisted to disk). Served at `GET /api/sessions/:id/run-summary`.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Types of events tracked in the run summary.
|
|
21
|
+
* These provide a historical view of what happened during a session.
|
|
22
|
+
*/
|
|
23
|
+
export type RunSummaryEventType = 'session_started' | 'session_stopped' | 'respawn_cycle_started' | 'respawn_cycle_completed' | 'respawn_state_change' | 'error' | 'warning' | 'token_milestone' | 'auto_compact' | 'auto_clear' | 'idle_detected' | 'working_detected' | 'ralph_completion' | 'ai_check_result' | 'hook_event' | 'state_stuck';
|
|
24
|
+
/**
|
|
25
|
+
* Severity levels for run summary events.
|
|
26
|
+
*/
|
|
27
|
+
export type RunSummaryEventSeverity = 'info' | 'warning' | 'error' | 'success';
|
|
28
|
+
/**
|
|
29
|
+
* A single event in the run summary timeline.
|
|
30
|
+
*/
|
|
31
|
+
export interface RunSummaryEvent {
|
|
32
|
+
/** Unique event identifier */
|
|
33
|
+
id: string;
|
|
34
|
+
/** Timestamp when event occurred */
|
|
35
|
+
timestamp: number;
|
|
36
|
+
/** Type of event */
|
|
37
|
+
type: RunSummaryEventType;
|
|
38
|
+
/** Severity level for display */
|
|
39
|
+
severity: RunSummaryEventSeverity;
|
|
40
|
+
/** Short title for the event */
|
|
41
|
+
title: string;
|
|
42
|
+
/** Optional detailed description */
|
|
43
|
+
details?: string;
|
|
44
|
+
/** Optional additional metadata */
|
|
45
|
+
metadata?: Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Statistics aggregated from run summary events.
|
|
49
|
+
*/
|
|
50
|
+
export interface RunSummaryStats {
|
|
51
|
+
/** Number of respawn cycles completed */
|
|
52
|
+
totalRespawnCycles: number;
|
|
53
|
+
/** Total tokens used during this run */
|
|
54
|
+
totalTokensUsed: number;
|
|
55
|
+
/** Peak token count observed */
|
|
56
|
+
peakTokens: number;
|
|
57
|
+
/** Total time Claude was actively working (ms) */
|
|
58
|
+
totalTimeActiveMs: number;
|
|
59
|
+
/** Total time Claude was idle (ms) */
|
|
60
|
+
totalTimeIdleMs: number;
|
|
61
|
+
/** Number of errors encountered */
|
|
62
|
+
errorCount: number;
|
|
63
|
+
/** Number of warnings encountered */
|
|
64
|
+
warningCount: number;
|
|
65
|
+
/** Number of AI idle checks performed */
|
|
66
|
+
aiCheckCount: number;
|
|
67
|
+
/** Timestamp when last became idle */
|
|
68
|
+
lastIdleAt: number | null;
|
|
69
|
+
/** Timestamp when last started working */
|
|
70
|
+
lastWorkingAt: number | null;
|
|
71
|
+
/** Total number of state transitions */
|
|
72
|
+
stateTransitions: number;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Complete run summary for a session.
|
|
76
|
+
* Provides a historical view of session activity for users returning after absence.
|
|
77
|
+
*/
|
|
78
|
+
export interface RunSummary {
|
|
79
|
+
/** Session ID this summary belongs to */
|
|
80
|
+
sessionId: string;
|
|
81
|
+
/** Session display name */
|
|
82
|
+
sessionName: string;
|
|
83
|
+
/** Timestamp when tracking started */
|
|
84
|
+
startedAt: number;
|
|
85
|
+
/** Timestamp of last update */
|
|
86
|
+
lastUpdatedAt: number;
|
|
87
|
+
/** Timeline of events (most recent last) */
|
|
88
|
+
events: RunSummaryEvent[];
|
|
89
|
+
/** Aggregated statistics */
|
|
90
|
+
stats: RunSummaryStats;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Creates initial run summary stats.
|
|
94
|
+
*/
|
|
95
|
+
export declare function createInitialRunSummaryStats(): RunSummaryStats;
|
|
96
|
+
//# sourceMappingURL=run-summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-summary.d.ts","sourceRoot":"","sources":["../../src/types/run-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,iBAAiB,GACjB,uBAAuB,GACvB,yBAAyB,GACzB,sBAAsB,GACtB,OAAO,GACP,SAAS,GACT,iBAAiB,GACjB,cAAc,GACd,YAAY,GACZ,eAAe,GACf,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,YAAY,GACZ,aAAa,CAAC;AAElB;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,iCAAiC;IACjC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wCAAwC;IACxC,eAAe,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,0CAA0C;IAC1C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,4BAA4B;IAC5B,KAAK,EAAE,eAAe,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,eAAe,CAc9D"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Run summary type definitions.
|
|
3
|
+
*
|
|
4
|
+
* Types for the "what happened while away" session timeline. RunSummary
|
|
5
|
+
* aggregates events (respawn cycles, errors, token milestones, AI checks)
|
|
6
|
+
* into a per-session historical view.
|
|
7
|
+
*
|
|
8
|
+
* Key exports:
|
|
9
|
+
* - RunSummary — complete per-session summary (events timeline + aggregated stats)
|
|
10
|
+
* - RunSummaryEvent — a single timestamped event (16 event types, 4 severity levels)
|
|
11
|
+
* - RunSummaryStats — aggregated metrics (cycles, tokens, active/idle time, error count)
|
|
12
|
+
* - RunSummaryEventType — union of event types (session_started, respawn_cycle_*, error, etc.)
|
|
13
|
+
* - RunSummaryEventSeverity — 'info' | 'warning' | 'error' | 'success'
|
|
14
|
+
* - createInitialRunSummaryStats() — factory for fresh stats
|
|
15
|
+
*
|
|
16
|
+
* Cross-domain: RunSummary.sessionId links to SessionState.id (session domain).
|
|
17
|
+
* In-memory only (not persisted to disk). Served at `GET /api/sessions/:id/run-summary`.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Creates initial run summary stats.
|
|
21
|
+
*/
|
|
22
|
+
export function createInitialRunSummaryStats() {
|
|
23
|
+
return {
|
|
24
|
+
totalRespawnCycles: 0,
|
|
25
|
+
totalTokensUsed: 0,
|
|
26
|
+
peakTokens: 0,
|
|
27
|
+
totalTimeActiveMs: 0,
|
|
28
|
+
totalTimeIdleMs: 0,
|
|
29
|
+
errorCount: 0,
|
|
30
|
+
warningCount: 0,
|
|
31
|
+
aiCheckCount: 0,
|
|
32
|
+
lastIdleAt: null,
|
|
33
|
+
lastWorkingAt: null,
|
|
34
|
+
stateTransitions: 0,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=run-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-summary.js","sourceRoot":"","sources":["../../src/types/run-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAgGH;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,kBAAkB,EAAE,CAAC;QACrB,eAAe,EAAE,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,iBAAiB,EAAE,CAAC;QACpB,eAAe,EAAE,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,CAAC;QACf,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,gBAAgB,EAAE,CAAC;KACpB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Session type definitions.
|
|
3
|
+
*
|
|
4
|
+
* Core domain type — SessionState is the primary entity in the system.
|
|
5
|
+
*
|
|
6
|
+
* Key exports:
|
|
7
|
+
* - SessionState — full session state (status, tokens, respawn, ralph, CLI metadata)
|
|
8
|
+
* - SessionConfig — creation-time config (id, workingDir, createdAt)
|
|
9
|
+
* - SessionOutput — captured stdout/stderr/exitCode
|
|
10
|
+
* - SessionStatus — 'idle' | 'busy' | 'stopped' | 'error'
|
|
11
|
+
* - SessionMode — 'claude' | 'shell' | 'opencode' (which CLI backend)
|
|
12
|
+
* - ClaudeMode — CLI permission mode ('dangerously-skip-permissions' | 'normal' | 'allowedTools')
|
|
13
|
+
* - SessionColor — visual differentiation color
|
|
14
|
+
* - OpenCodeConfig — OpenCode-specific settings (model, autoAllowTools, continueSession)
|
|
15
|
+
*
|
|
16
|
+
* Cross-domain relationships:
|
|
17
|
+
* - SessionState.respawnConfig embeds RespawnConfig (respawn domain)
|
|
18
|
+
* - SessionState.id is referenced by: RalphSessionState.sessionId (ralph),
|
|
19
|
+
* RunSummary.sessionId (run-summary), ActiveBashTool.sessionId (tools),
|
|
20
|
+
* TeamConfig.leadSessionId (teams), RespawnCycleMetrics.sessionId (respawn),
|
|
21
|
+
* TaskState.assignedSessionId (task)
|
|
22
|
+
*
|
|
23
|
+
* Persisted to `~/.codeman/state.json`. Served at `GET /api/sessions` and
|
|
24
|
+
* `GET /api/sessions/:id`.
|
|
25
|
+
*/
|
|
26
|
+
import type { RespawnConfig } from './respawn.js';
|
|
27
|
+
/** Status of a Claude session */
|
|
28
|
+
export type SessionStatus = 'idle' | 'busy' | 'stopped' | 'error';
|
|
29
|
+
/**
|
|
30
|
+
* Claude CLI startup permission mode.
|
|
31
|
+
* - `'dangerously-skip-permissions'`: Bypass all permission prompts (default)
|
|
32
|
+
* - `'normal'`: Standard mode with permission prompts
|
|
33
|
+
* - `'allowedTools'`: Only allow specific tools (requires allowedTools list)
|
|
34
|
+
*/
|
|
35
|
+
export type ClaudeMode = 'dangerously-skip-permissions' | 'normal' | 'allowedTools';
|
|
36
|
+
/** Session mode: which CLI backend a session runs */
|
|
37
|
+
export type SessionMode = 'claude' | 'shell' | 'opencode';
|
|
38
|
+
/** OpenCode session configuration */
|
|
39
|
+
export interface OpenCodeConfig {
|
|
40
|
+
/** Model identifier (e.g., "anthropic/claude-sonnet-4-5", "openai/gpt-5.2", "ollama/codellama") */
|
|
41
|
+
model?: string;
|
|
42
|
+
/** Whether to auto-allow all tool executions (sets permission.* = allow) */
|
|
43
|
+
autoAllowTools?: boolean;
|
|
44
|
+
/** Session ID to continue from */
|
|
45
|
+
continueSession?: string;
|
|
46
|
+
/** Whether to fork when continuing (branch the conversation) */
|
|
47
|
+
forkSession?: boolean;
|
|
48
|
+
/** Custom inline config JSON (passed via OPENCODE_CONFIG_CONTENT) */
|
|
49
|
+
configContent?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Configuration for creating a new session
|
|
53
|
+
*/
|
|
54
|
+
export interface SessionConfig {
|
|
55
|
+
/** Unique session identifier */
|
|
56
|
+
id: string;
|
|
57
|
+
/** Working directory for the session */
|
|
58
|
+
workingDir: string;
|
|
59
|
+
/** Timestamp when session was created */
|
|
60
|
+
createdAt: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Available session colors for visual differentiation
|
|
64
|
+
*/
|
|
65
|
+
export type SessionColor = 'default' | 'red' | 'orange' | 'yellow' | 'green' | 'blue' | 'purple' | 'pink';
|
|
66
|
+
/**
|
|
67
|
+
* Current state of a session
|
|
68
|
+
*/
|
|
69
|
+
export interface SessionState {
|
|
70
|
+
/** Unique session identifier */
|
|
71
|
+
id: string;
|
|
72
|
+
/** Process ID of the PTY process, null if not running */
|
|
73
|
+
pid: number | null;
|
|
74
|
+
/** Current session status */
|
|
75
|
+
status: SessionStatus;
|
|
76
|
+
/** Working directory path */
|
|
77
|
+
workingDir: string;
|
|
78
|
+
/** ID of currently assigned task, null if none */
|
|
79
|
+
currentTaskId: string | null;
|
|
80
|
+
/** Timestamp when session was created */
|
|
81
|
+
createdAt: number;
|
|
82
|
+
/** Timestamp of last activity */
|
|
83
|
+
lastActivityAt: number;
|
|
84
|
+
/** Session display name */
|
|
85
|
+
name?: string;
|
|
86
|
+
/** Session mode */
|
|
87
|
+
mode?: SessionMode;
|
|
88
|
+
/** Auto-clear enabled */
|
|
89
|
+
autoClearEnabled?: boolean;
|
|
90
|
+
/** Auto-clear token threshold */
|
|
91
|
+
autoClearThreshold?: number;
|
|
92
|
+
/** Auto-compact enabled */
|
|
93
|
+
autoCompactEnabled?: boolean;
|
|
94
|
+
/** Auto-compact token threshold */
|
|
95
|
+
autoCompactThreshold?: number;
|
|
96
|
+
/** Auto-compact prompt */
|
|
97
|
+
autoCompactPrompt?: string;
|
|
98
|
+
/** Image watcher enabled for this session */
|
|
99
|
+
imageWatcherEnabled?: boolean;
|
|
100
|
+
/** Total cost in USD */
|
|
101
|
+
totalCost?: number;
|
|
102
|
+
/** Input tokens used */
|
|
103
|
+
inputTokens?: number;
|
|
104
|
+
/** Output tokens used */
|
|
105
|
+
outputTokens?: number;
|
|
106
|
+
/** Whether respawn controller is currently enabled/running */
|
|
107
|
+
respawnEnabled?: boolean;
|
|
108
|
+
/** Respawn controller config (if enabled) */
|
|
109
|
+
respawnConfig?: RespawnConfig & {
|
|
110
|
+
durationMinutes?: number;
|
|
111
|
+
};
|
|
112
|
+
/** Ralph / Todo tracker enabled */
|
|
113
|
+
ralphEnabled?: boolean;
|
|
114
|
+
/** Ralph auto-enable disabled (user explicitly turned off Ralph) */
|
|
115
|
+
ralphAutoEnableDisabled?: boolean;
|
|
116
|
+
/** Ralph completion phrase (if set) */
|
|
117
|
+
ralphCompletionPhrase?: string;
|
|
118
|
+
/** Parent agent ID if this session is a spawned agent */
|
|
119
|
+
parentAgentId?: string;
|
|
120
|
+
/** Child agent IDs spawned by this session */
|
|
121
|
+
childAgentIds?: string[];
|
|
122
|
+
/** Nice priority enabled */
|
|
123
|
+
niceEnabled?: boolean;
|
|
124
|
+
/** Nice value (-20 to 19) */
|
|
125
|
+
niceValue?: number;
|
|
126
|
+
/** User-assigned color for visual differentiation */
|
|
127
|
+
color?: SessionColor;
|
|
128
|
+
/** Flicker filter enabled (buffers output after screen clears) */
|
|
129
|
+
flickerFilterEnabled?: boolean;
|
|
130
|
+
/** Claude Code CLI version (parsed from terminal, e.g., "2.1.27") */
|
|
131
|
+
cliVersion?: string;
|
|
132
|
+
/** Claude model in use (parsed from terminal, e.g., "Opus 4.5") */
|
|
133
|
+
cliModel?: string;
|
|
134
|
+
/** Account type (parsed from terminal, e.g., "Claude Max", "API") */
|
|
135
|
+
cliAccountType?: string;
|
|
136
|
+
/** Latest CLI version available (parsed from version check) */
|
|
137
|
+
cliLatestVersion?: string;
|
|
138
|
+
/** OpenCode-specific configuration (only for mode === 'opencode') */
|
|
139
|
+
openCodeConfig?: OpenCodeConfig;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Output captured from a session
|
|
143
|
+
*/
|
|
144
|
+
export interface SessionOutput {
|
|
145
|
+
/** Standard output content */
|
|
146
|
+
stdout: string;
|
|
147
|
+
/** Standard error content */
|
|
148
|
+
stderr: string;
|
|
149
|
+
/** Exit code of the process, null if still running */
|
|
150
|
+
exitCode: number | null;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Session type definitions.
|
|
3
|
+
*
|
|
4
|
+
* Core domain type — SessionState is the primary entity in the system.
|
|
5
|
+
*
|
|
6
|
+
* Key exports:
|
|
7
|
+
* - SessionState — full session state (status, tokens, respawn, ralph, CLI metadata)
|
|
8
|
+
* - SessionConfig — creation-time config (id, workingDir, createdAt)
|
|
9
|
+
* - SessionOutput — captured stdout/stderr/exitCode
|
|
10
|
+
* - SessionStatus — 'idle' | 'busy' | 'stopped' | 'error'
|
|
11
|
+
* - SessionMode — 'claude' | 'shell' | 'opencode' (which CLI backend)
|
|
12
|
+
* - ClaudeMode — CLI permission mode ('dangerously-skip-permissions' | 'normal' | 'allowedTools')
|
|
13
|
+
* - SessionColor — visual differentiation color
|
|
14
|
+
* - OpenCodeConfig — OpenCode-specific settings (model, autoAllowTools, continueSession)
|
|
15
|
+
*
|
|
16
|
+
* Cross-domain relationships:
|
|
17
|
+
* - SessionState.respawnConfig embeds RespawnConfig (respawn domain)
|
|
18
|
+
* - SessionState.id is referenced by: RalphSessionState.sessionId (ralph),
|
|
19
|
+
* RunSummary.sessionId (run-summary), ActiveBashTool.sessionId (tools),
|
|
20
|
+
* TeamConfig.leadSessionId (teams), RespawnCycleMetrics.sessionId (respawn),
|
|
21
|
+
* TaskState.assignedSessionId (task)
|
|
22
|
+
*
|
|
23
|
+
* Persisted to `~/.codeman/state.json`. Served at `GET /api/sessions` and
|
|
24
|
+
* `GET /api/sessions/:id`.
|
|
25
|
+
*/
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG"}
|