aicodeman 0.2.9 → 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.
Files changed (347) hide show
  1. package/README.md +91 -0
  2. package/dist/ai-idle-checker.d.ts.map +1 -1
  3. package/dist/ai-idle-checker.js +3 -2
  4. package/dist/ai-idle-checker.js.map +1 -1
  5. package/dist/ai-plan-checker.d.ts.map +1 -1
  6. package/dist/ai-plan-checker.js +3 -2
  7. package/dist/ai-plan-checker.js.map +1 -1
  8. package/dist/bash-tool-parser.d.ts +2 -3
  9. package/dist/bash-tool-parser.d.ts.map +1 -1
  10. package/dist/bash-tool-parser.js +14 -31
  11. package/dist/bash-tool-parser.js.map +1 -1
  12. package/dist/config/ai-defaults.d.ts +16 -0
  13. package/dist/config/ai-defaults.d.ts.map +1 -0
  14. package/dist/config/ai-defaults.js +16 -0
  15. package/dist/config/ai-defaults.js.map +1 -0
  16. package/dist/config/auth-config.d.ts +19 -0
  17. package/dist/config/auth-config.d.ts.map +1 -0
  18. package/dist/config/auth-config.js +28 -0
  19. package/dist/config/auth-config.js.map +1 -0
  20. package/dist/config/exec-timeout.d.ts +10 -0
  21. package/dist/config/exec-timeout.d.ts.map +1 -0
  22. package/dist/config/exec-timeout.js +10 -0
  23. package/dist/config/exec-timeout.js.map +1 -0
  24. package/dist/config/map-limits.d.ts +4 -0
  25. package/dist/config/map-limits.d.ts.map +1 -1
  26. package/dist/config/map-limits.js +7 -0
  27. package/dist/config/map-limits.js.map +1 -1
  28. package/dist/config/server-timing.d.ts +36 -0
  29. package/dist/config/server-timing.d.ts.map +1 -0
  30. package/dist/config/server-timing.js +51 -0
  31. package/dist/config/server-timing.js.map +1 -0
  32. package/dist/config/team-config.d.ts +16 -0
  33. package/dist/config/team-config.d.ts.map +1 -0
  34. package/dist/config/team-config.js +16 -0
  35. package/dist/config/team-config.js.map +1 -0
  36. package/dist/config/terminal-limits.d.ts +18 -0
  37. package/dist/config/terminal-limits.d.ts.map +1 -0
  38. package/dist/config/terminal-limits.js +18 -0
  39. package/dist/config/terminal-limits.js.map +1 -0
  40. package/dist/config/tunnel-config.d.ts +27 -0
  41. package/dist/config/tunnel-config.d.ts.map +1 -0
  42. package/dist/config/tunnel-config.js +36 -0
  43. package/dist/config/tunnel-config.js.map +1 -0
  44. package/dist/hooks-config.d.ts.map +1 -1
  45. package/dist/hooks-config.js +7 -6
  46. package/dist/hooks-config.js.map +1 -1
  47. package/dist/image-watcher.d.ts +4 -4
  48. package/dist/image-watcher.d.ts.map +1 -1
  49. package/dist/image-watcher.js +17 -30
  50. package/dist/image-watcher.js.map +1 -1
  51. package/dist/index.js +1 -2
  52. package/dist/index.js.map +1 -1
  53. package/dist/plan-orchestrator.d.ts +2 -24
  54. package/dist/plan-orchestrator.d.ts.map +1 -1
  55. package/dist/plan-orchestrator.js.map +1 -1
  56. package/dist/push-store.d.ts +1 -1
  57. package/dist/push-store.d.ts.map +1 -1
  58. package/dist/push-store.js +4 -12
  59. package/dist/push-store.js.map +1 -1
  60. package/dist/ralph-fix-plan-watcher.d.ts +91 -0
  61. package/dist/ralph-fix-plan-watcher.d.ts.map +1 -0
  62. package/dist/ralph-fix-plan-watcher.js +326 -0
  63. package/dist/ralph-fix-plan-watcher.js.map +1 -0
  64. package/dist/ralph-plan-tracker.d.ts +201 -0
  65. package/dist/ralph-plan-tracker.d.ts.map +1 -0
  66. package/dist/ralph-plan-tracker.js +325 -0
  67. package/dist/ralph-plan-tracker.js.map +1 -0
  68. package/dist/ralph-stall-detector.d.ts +84 -0
  69. package/dist/ralph-stall-detector.d.ts.map +1 -0
  70. package/dist/ralph-stall-detector.js +139 -0
  71. package/dist/ralph-stall-detector.js.map +1 -0
  72. package/dist/ralph-status-parser.d.ts +141 -0
  73. package/dist/ralph-status-parser.d.ts.map +1 -0
  74. package/dist/ralph-status-parser.js +478 -0
  75. package/dist/ralph-status-parser.js.map +1 -0
  76. package/dist/ralph-tracker.d.ts +194 -685
  77. package/dist/ralph-tracker.d.ts.map +1 -1
  78. package/dist/ralph-tracker.js +349 -1713
  79. package/dist/ralph-tracker.js.map +1 -1
  80. package/dist/respawn-adaptive-timing.d.ts +61 -0
  81. package/dist/respawn-adaptive-timing.d.ts.map +1 -0
  82. package/dist/respawn-adaptive-timing.js +105 -0
  83. package/dist/respawn-adaptive-timing.js.map +1 -0
  84. package/dist/respawn-controller.d.ts +12 -101
  85. package/dist/respawn-controller.d.ts.map +1 -1
  86. package/dist/respawn-controller.js +144 -593
  87. package/dist/respawn-controller.js.map +1 -1
  88. package/dist/respawn-health.d.ts +54 -0
  89. package/dist/respawn-health.d.ts.map +1 -0
  90. package/dist/respawn-health.js +183 -0
  91. package/dist/respawn-health.js.map +1 -0
  92. package/dist/respawn-metrics.d.ts +81 -0
  93. package/dist/respawn-metrics.d.ts.map +1 -0
  94. package/dist/respawn-metrics.js +198 -0
  95. package/dist/respawn-metrics.js.map +1 -0
  96. package/dist/respawn-patterns.d.ts +45 -0
  97. package/dist/respawn-patterns.d.ts.map +1 -0
  98. package/dist/respawn-patterns.js +125 -0
  99. package/dist/respawn-patterns.js.map +1 -0
  100. package/dist/session-auto-ops.d.ts +89 -0
  101. package/dist/session-auto-ops.d.ts.map +1 -0
  102. package/dist/session-auto-ops.js +224 -0
  103. package/dist/session-auto-ops.js.map +1 -0
  104. package/dist/session-cli-builder.d.ts +62 -0
  105. package/dist/session-cli-builder.d.ts.map +1 -0
  106. package/dist/session-cli-builder.js +121 -0
  107. package/dist/session-cli-builder.js.map +1 -0
  108. package/dist/session-task-cache.d.ts +52 -0
  109. package/dist/session-task-cache.d.ts.map +1 -0
  110. package/dist/session-task-cache.js +90 -0
  111. package/dist/session-task-cache.js.map +1 -0
  112. package/dist/session.d.ts +2 -33
  113. package/dist/session.d.ts.map +1 -1
  114. package/dist/session.js +58 -309
  115. package/dist/session.js.map +1 -1
  116. package/dist/state-store.d.ts +2 -2
  117. package/dist/state-store.d.ts.map +1 -1
  118. package/dist/state-store.js +12 -23
  119. package/dist/state-store.js.map +1 -1
  120. package/dist/subagent-watcher.d.ts +3 -4
  121. package/dist/subagent-watcher.d.ts.map +1 -1
  122. package/dist/subagent-watcher.js +24 -61
  123. package/dist/subagent-watcher.js.map +1 -1
  124. package/dist/team-watcher.d.ts.map +1 -1
  125. package/dist/team-watcher.js +2 -5
  126. package/dist/team-watcher.js.map +1 -1
  127. package/dist/tmux-manager.d.ts.map +1 -1
  128. package/dist/tmux-manager.js +1 -2
  129. package/dist/tmux-manager.js.map +1 -1
  130. package/dist/tunnel-manager.d.ts +26 -0
  131. package/dist/tunnel-manager.d.ts.map +1 -1
  132. package/dist/tunnel-manager.js +127 -7
  133. package/dist/tunnel-manager.js.map +1 -1
  134. package/dist/types/api.d.ts +93 -0
  135. package/dist/types/api.d.ts.map +1 -0
  136. package/dist/types/api.js +83 -0
  137. package/dist/types/api.js.map +1 -0
  138. package/dist/types/app-state.d.ts +100 -0
  139. package/dist/types/app-state.d.ts.map +1 -0
  140. package/dist/types/app-state.js +59 -0
  141. package/dist/types/app-state.js.map +1 -0
  142. package/dist/types/common.d.ts +70 -0
  143. package/dist/types/common.d.ts.map +1 -0
  144. package/dist/types/common.js +8 -0
  145. package/dist/types/common.js.map +1 -0
  146. package/dist/types/index.d.ts +18 -0
  147. package/dist/types/index.d.ts.map +1 -0
  148. package/dist/types/index.js +18 -0
  149. package/dist/types/index.js.map +1 -0
  150. package/dist/types/lifecycle.d.ts +17 -0
  151. package/dist/types/lifecycle.d.ts.map +1 -0
  152. package/dist/types/lifecycle.js +5 -0
  153. package/dist/types/lifecycle.js.map +1 -0
  154. package/dist/types/plan.d.ts +32 -0
  155. package/dist/types/plan.d.ts.map +1 -0
  156. package/dist/types/plan.js +5 -0
  157. package/dist/types/plan.js.map +1 -0
  158. package/dist/types/push.d.ts +23 -0
  159. package/dist/types/push.d.ts.map +1 -0
  160. package/dist/types/push.js +5 -0
  161. package/dist/types/push.js.map +1 -0
  162. package/dist/types/ralph.d.ts +241 -0
  163. package/dist/types/ralph.d.ts.map +1 -0
  164. package/dist/types/ralph.js +49 -0
  165. package/dist/types/ralph.js.map +1 -0
  166. package/dist/types/respawn.d.ts +250 -0
  167. package/dist/types/respawn.d.ts.map +1 -0
  168. package/dist/types/respawn.js +5 -0
  169. package/dist/types/respawn.js.map +1 -0
  170. package/dist/types/run-summary.d.ts +81 -0
  171. package/dist/types/run-summary.d.ts.map +1 -0
  172. package/dist/types/run-summary.js +22 -0
  173. package/dist/types/run-summary.js.map +1 -0
  174. package/dist/types/session.d.ts +130 -0
  175. package/dist/types/session.d.ts.map +1 -0
  176. package/dist/types/session.js +5 -0
  177. package/dist/types/session.js.map +1 -0
  178. package/dist/types/task.d.ts +58 -0
  179. package/dist/types/task.d.ts.map +1 -0
  180. package/dist/types/task.js +5 -0
  181. package/dist/types/task.js.map +1 -0
  182. package/dist/types/teams.d.ts +55 -0
  183. package/dist/types/teams.d.ts.map +1 -0
  184. package/dist/types/teams.js +5 -0
  185. package/dist/types/teams.js.map +1 -0
  186. package/dist/types/tools.d.ts +46 -0
  187. package/dist/types/tools.d.ts.map +1 -0
  188. package/dist/types/tools.js +5 -0
  189. package/dist/types/tools.js.map +1 -0
  190. package/dist/types.d.ts +1 -1138
  191. package/dist/types.d.ts.map +1 -1
  192. package/dist/types.js +1 -214
  193. package/dist/types.js.map +1 -1
  194. package/dist/utils/claude-cli-resolver.d.ts.map +1 -1
  195. package/dist/utils/claude-cli-resolver.js +1 -2
  196. package/dist/utils/claude-cli-resolver.js.map +1 -1
  197. package/dist/utils/debouncer.d.ts +111 -0
  198. package/dist/utils/debouncer.d.ts.map +1 -0
  199. package/dist/utils/debouncer.js +162 -0
  200. package/dist/utils/debouncer.js.map +1 -0
  201. package/dist/utils/index.d.ts +3 -2
  202. package/dist/utils/index.d.ts.map +1 -1
  203. package/dist/utils/index.js +3 -2
  204. package/dist/utils/index.js.map +1 -1
  205. package/dist/utils/opencode-cli-resolver.d.ts.map +1 -1
  206. package/dist/utils/opencode-cli-resolver.js +1 -2
  207. package/dist/utils/opencode-cli-resolver.js.map +1 -1
  208. package/dist/utils/string-similarity.d.ts +0 -57
  209. package/dist/utils/string-similarity.d.ts.map +1 -1
  210. package/dist/utils/string-similarity.js +3 -18
  211. package/dist/utils/string-similarity.js.map +1 -1
  212. package/dist/web/middleware/auth.d.ts +31 -0
  213. package/dist/web/middleware/auth.d.ts.map +1 -0
  214. package/dist/web/middleware/auth.js +154 -0
  215. package/dist/web/middleware/auth.js.map +1 -0
  216. package/dist/web/ports/auth-port.d.ts +18 -0
  217. package/dist/web/ports/auth-port.d.ts.map +1 -0
  218. package/dist/web/ports/auth-port.js +6 -0
  219. package/dist/web/ports/auth-port.js.map +1 -0
  220. package/dist/web/ports/config-port.d.ts +28 -0
  221. package/dist/web/ports/config-port.d.ts.map +1 -0
  222. package/dist/web/ports/config-port.js +6 -0
  223. package/dist/web/ports/config-port.js.map +1 -0
  224. package/dist/web/ports/event-port.d.ts +13 -0
  225. package/dist/web/ports/event-port.d.ts.map +1 -0
  226. package/dist/web/ports/event-port.js +6 -0
  227. package/dist/web/ports/event-port.js.map +1 -0
  228. package/dist/web/ports/index.d.ts +14 -0
  229. package/dist/web/ports/index.d.ts.map +1 -0
  230. package/dist/web/ports/index.js +9 -0
  231. package/dist/web/ports/index.js.map +1 -0
  232. package/dist/web/ports/infra-port.d.ts +36 -0
  233. package/dist/web/ports/infra-port.d.ts.map +1 -0
  234. package/dist/web/ports/infra-port.js +6 -0
  235. package/dist/web/ports/infra-port.js.map +1 -0
  236. package/dist/web/ports/respawn-port.d.ts +20 -0
  237. package/dist/web/ports/respawn-port.d.ts.map +1 -0
  238. package/dist/web/ports/respawn-port.js +6 -0
  239. package/dist/web/ports/respawn-port.js.map +1 -0
  240. package/dist/web/ports/session-port.d.ts +15 -0
  241. package/dist/web/ports/session-port.d.ts.map +1 -0
  242. package/dist/web/ports/session-port.js +6 -0
  243. package/dist/web/ports/session-port.js.map +1 -0
  244. package/dist/web/public/api-client.js +70 -0
  245. package/dist/web/public/api-client.js.br +0 -0
  246. package/dist/web/public/api-client.js.gz +0 -0
  247. package/dist/web/public/app.js +151 -235
  248. package/dist/web/public/app.js.br +0 -0
  249. package/dist/web/public/app.js.gz +0 -0
  250. package/dist/web/public/constants.js +238 -0
  251. package/dist/web/public/constants.js.br +0 -0
  252. package/dist/web/public/constants.js.gz +0 -0
  253. package/dist/web/public/index.html +11 -3
  254. package/dist/web/public/index.html.br +0 -0
  255. package/dist/web/public/index.html.gz +0 -0
  256. package/dist/web/public/keyboard-accessory.js +279 -0
  257. package/dist/web/public/keyboard-accessory.js.br +0 -0
  258. package/dist/web/public/keyboard-accessory.js.gz +0 -0
  259. package/dist/web/public/mobile-handlers.js +467 -0
  260. package/dist/web/public/mobile-handlers.js.br +0 -0
  261. package/dist/web/public/mobile-handlers.js.gz +0 -0
  262. package/dist/web/public/mobile.css.gz +0 -0
  263. package/dist/web/public/notification-manager.js +445 -0
  264. package/dist/web/public/notification-manager.js.br +0 -0
  265. package/dist/web/public/notification-manager.js.gz +0 -0
  266. package/dist/web/public/ralph-wizard.js +3 -3
  267. package/dist/web/public/ralph-wizard.js.br +0 -0
  268. package/dist/web/public/ralph-wizard.js.gz +0 -0
  269. package/dist/web/public/styles.css.gz +0 -0
  270. package/dist/web/public/subagent-windows.js +1115 -0
  271. package/dist/web/public/subagent-windows.js.br +0 -0
  272. package/dist/web/public/subagent-windows.js.gz +0 -0
  273. package/dist/web/public/sw.js.gz +0 -0
  274. package/dist/web/public/upload.html.gz +0 -0
  275. package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
  276. package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
  277. package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
  278. package/dist/web/public/vendor/xterm.css.gz +0 -0
  279. package/dist/web/public/vendor/xterm.min.js.gz +0 -0
  280. package/dist/web/public/voice-input.js +858 -0
  281. package/dist/web/public/voice-input.js.br +0 -0
  282. package/dist/web/public/voice-input.js.gz +0 -0
  283. package/dist/web/route-helpers.d.ts +38 -0
  284. package/dist/web/route-helpers.d.ts.map +1 -0
  285. package/dist/web/route-helpers.js +143 -0
  286. package/dist/web/route-helpers.js.map +1 -0
  287. package/dist/web/routes/case-routes.d.ts +9 -0
  288. package/dist/web/routes/case-routes.d.ts.map +1 -0
  289. package/dist/web/routes/case-routes.js +419 -0
  290. package/dist/web/routes/case-routes.js.map +1 -0
  291. package/dist/web/routes/file-routes.d.ts +8 -0
  292. package/dist/web/routes/file-routes.d.ts.map +1 -0
  293. package/dist/web/routes/file-routes.js +337 -0
  294. package/dist/web/routes/file-routes.js.map +1 -0
  295. package/dist/web/routes/hook-event-routes.d.ts +9 -0
  296. package/dist/web/routes/hook-event-routes.d.ts.map +1 -0
  297. package/dist/web/routes/hook-event-routes.js +57 -0
  298. package/dist/web/routes/hook-event-routes.js.map +1 -0
  299. package/dist/web/routes/index.d.ts +16 -0
  300. package/dist/web/routes/index.d.ts.map +1 -0
  301. package/dist/web/routes/index.js +16 -0
  302. package/dist/web/routes/index.js.map +1 -0
  303. package/dist/web/routes/mux-routes.d.ts +8 -0
  304. package/dist/web/routes/mux-routes.d.ts.map +1 -0
  305. package/dist/web/routes/mux-routes.js +32 -0
  306. package/dist/web/routes/mux-routes.js.map +1 -0
  307. package/dist/web/routes/plan-routes.d.ts +9 -0
  308. package/dist/web/routes/plan-routes.d.ts.map +1 -0
  309. package/dist/web/routes/plan-routes.js +381 -0
  310. package/dist/web/routes/plan-routes.js.map +1 -0
  311. package/dist/web/routes/push-routes.d.ts +8 -0
  312. package/dist/web/routes/push-routes.d.ts.map +1 -0
  313. package/dist/web/routes/push-routes.js +49 -0
  314. package/dist/web/routes/push-routes.js.map +1 -0
  315. package/dist/web/routes/ralph-routes.d.ts +9 -0
  316. package/dist/web/routes/ralph-routes.d.ts.map +1 -0
  317. package/dist/web/routes/ralph-routes.js +475 -0
  318. package/dist/web/routes/ralph-routes.js.map +1 -0
  319. package/dist/web/routes/respawn-routes.d.ts +8 -0
  320. package/dist/web/routes/respawn-routes.d.ts.map +1 -0
  321. package/dist/web/routes/respawn-routes.js +260 -0
  322. package/dist/web/routes/respawn-routes.js.map +1 -0
  323. package/dist/web/routes/scheduled-routes.d.ts +8 -0
  324. package/dist/web/routes/scheduled-routes.d.ts.map +1 -0
  325. package/dist/web/routes/scheduled-routes.js +51 -0
  326. package/dist/web/routes/scheduled-routes.js.map +1 -0
  327. package/dist/web/routes/session-routes.d.ts +9 -0
  328. package/dist/web/routes/session-routes.d.ts.map +1 -0
  329. package/dist/web/routes/session-routes.js +729 -0
  330. package/dist/web/routes/session-routes.js.map +1 -0
  331. package/dist/web/routes/system-routes.d.ts +9 -0
  332. package/dist/web/routes/system-routes.d.ts.map +1 -0
  333. package/dist/web/routes/system-routes.js +678 -0
  334. package/dist/web/routes/system-routes.js.map +1 -0
  335. package/dist/web/routes/team-routes.d.ts +8 -0
  336. package/dist/web/routes/team-routes.d.ts.map +1 -0
  337. package/dist/web/routes/team-routes.js +14 -0
  338. package/dist/web/routes/team-routes.js.map +1 -0
  339. package/dist/web/schemas.d.ts +43 -3
  340. package/dist/web/schemas.d.ts.map +1 -1
  341. package/dist/web/schemas.js +6 -2
  342. package/dist/web/schemas.js.map +1 -1
  343. package/dist/web/server.d.ts +10 -9
  344. package/dist/web/server.d.ts.map +1 -1
  345. package/dist/web/server.js +335 -3824
  346. package/dist/web/server.js.map +1 -1
  347. package/package.json +1 -1
package/README.md CHANGED
@@ -239,6 +239,80 @@ loginctl enable-linger $USER
239
239
 
240
240
  </details>
241
241
 
242
+ ### QR Code Authentication
243
+
244
+ Typing a password on a phone keyboard is terrible. Codeman solves this with **ephemeral single-use QR tokens** — scan the code on your desktop, and your phone is instantly authenticated. No password prompt, no typing, no clipboard.
245
+
246
+ ```
247
+ Desktop displays QR → Phone scans → GET /q/Xk9mQ3 → Server validates
248
+ → Token atomically consumed (single-use) → Session cookie issued → 302 to /
249
+ → Desktop notified: "Device authenticated via QR" → New QR auto-generated
250
+ ```
251
+
252
+ Someone who only has the bare tunnel URL (without the QR) still hits the standard password prompt. The QR is the fast path; the password is the fallback.
253
+
254
+ #### How It Works
255
+
256
+ The server maintains a rotating pool of short-lived, single-use tokens. Each token consists of a 256-bit secret (`crypto.randomBytes(32)`) paired with a 6-character base62 short code used as an opaque lookup key in the URL path. The QR code encodes a URL like `https://abc-xyz.trycloudflare.com/q/Xk9mQ3` — the short code is a pointer, not the secret itself, so it never leaks through browser history, `Referer` headers, or Cloudflare edge logs.
257
+
258
+ Every **60 seconds**, the server automatically rotates to a fresh token. The previous token remains valid for a **90-second grace period** to handle the race where you scan right as rotation happens — after that, it's dead. Each token is **single-use**: the moment a phone successfully scans it, the token is atomically consumed and a new one is immediately generated for the desktop display.
259
+
260
+ #### Security Design
261
+
262
+ The design is informed by ["Demystifying the (In)Security of QR Code-based Login"](https://www.usenix.org/conference/usenixsecurity25/presentation/zhang-xin) (USENIX Security 2025), which found 47 of the top-100 websites vulnerable to QR auth attacks due to 6 critical design flaws across 42 CVEs. Codeman addresses all six:
263
+
264
+ | USENIX Flaw | Mitigation |
265
+ |-------------|------------|
266
+ | **Flaw-1**: Missing single-use enforcement | Token atomically consumed on first scan — replays always fail |
267
+ | **Flaw-2**: Long-lived tokens | 60s TTL with 90s grace, auto-rotation via timer |
268
+ | **Flaw-3**: Predictable token generation | `crypto.randomBytes(32)` — 256-bit entropy. Short codes use rejection sampling to eliminate modulo bias |
269
+ | **Flaw-4**: Client-side token generation | Server-side only — tokens never leave the server until embedded in the QR |
270
+ | **Flaw-5**: Missing status notification | Desktop toast: *"Device [IP] authenticated via QR (Safari). Not you? [Revoke]"* — real-time QRLjacking detection |
271
+ | **Flaw-6**: Inadequate session binding | IP + User-Agent stored for audit. Manual session revocation via API. HttpOnly + Secure + SameSite=lax cookies |
272
+
273
+ #### Timing-Safe Lookup
274
+
275
+ Short codes are stored in a `Map<shortCode, TokenRecord>`. Validation uses `Map.get()` — a hash-based O(1) lookup that reveals nothing about the target string through response timing. There is no character-by-character string comparison anywhere in the hot path, eliminating timing side-channel attacks entirely.
276
+
277
+ #### Rate Limiting (Dual Layer)
278
+
279
+ QR auth has its own rate limiting, completely independent from password auth:
280
+
281
+ - **Per-IP**: 10 failed QR attempts per IP trigger a 429 block (15-minute decay window) — separate counter from Basic Auth failures, so a fat-fingered password doesn't burn your QR budget
282
+ - **Global**: 30 QR attempts per minute across all IPs combined — defends against distributed brute force. With 62^6 = 56.8 billion possible short codes and only ~2 valid at any time, brute force is computationally infeasible regardless
283
+
284
+ #### QR Code Size Optimization
285
+
286
+ The URL is kept deliberately short (`/q/` path + 6-char code = ~53-56 total characters) to target **QR Version 4** (33x33 modules) instead of Version 5 (37x37). Smaller QR codes scan faster on budget phones — modern devices read Version 4 in 100-300ms. The `/q/` prefix saves 7 bytes compared to `/qr-auth/`, which alone is the difference between QR versions.
287
+
288
+ #### Desktop Experience
289
+
290
+ The QR display auto-refreshes every 60 seconds via SSE with the SVG embedded directly in the event payload (~2-5KB) — no extra HTTP fetch, sub-50ms refresh. A countdown timer shows time remaining. A "Regenerate" button instantly invalidates all existing tokens and creates a fresh one (useful if you suspect the QR was photographed).
291
+
292
+ When someone authenticates via QR, the desktop shows a notification toast with the device's IP and browser — if it wasn't you, one click revokes all sessions.
293
+
294
+ #### Threat Coverage
295
+
296
+ | Threat | Why it doesn't work |
297
+ |--------|-------------------|
298
+ | **QR screenshot shared** | Single-use: consumed on first scan. 60s TTL: expired before the attacker can act. Desktop notification alerts you immediately. |
299
+ | **Replay attack** | Atomic single-use consumption + 60s TTL. Old URLs always return 401. |
300
+ | **Cloudflare edge logs** | Short code is an opaque 6-char lookup key, not the real 256-bit token. Single-use means replaying from logs always fails. |
301
+ | **Brute force** | 56.8 billion combinations, ~2 valid at any time, dual-layer rate limiting blocks well before statistical feasibility. |
302
+ | **QRLjacking** | 60s rotation forces real-time relay. Desktop toast provides instant detection. Self-hosted single-user context makes phishing implausible. |
303
+ | **Timing attack** | Hash-based Map lookup — no string comparison timing leak. |
304
+ | **Session cookie theft** | HttpOnly + Secure + SameSite=lax + 24h TTL. Manual revocation at `POST /api/auth/revoke`. |
305
+
306
+ #### How It Compares
307
+
308
+ | Platform | Model | Comparison |
309
+ |----------|-------|------------|
310
+ | **Discord** | Long-lived token, no confirmation, [repeatedly exploited](https://owasp.org/www-community/attacks/Qrljacking) | Codeman: single-use + TTL + notification |
311
+ | **WhatsApp Web** | Phone confirms "Link device?", ~60s rotation | Comparable rotation; WhatsApp adds explicit confirmation (acceptable tradeoff for single-user) |
312
+ | **Signal** | Ephemeral public key, E2E encrypted channel | Stronger crypto, but [exploited by Russian state actors in 2025](https://cloud.google.com/blog/topics/threat-intelligence/russia-targeting-signal-messenger) via social engineering despite it |
313
+
314
+ > Full design rationale, security analysis, and implementation details: [`docs/qr-auth-plan.md`](docs/qr-auth-plan.md)
315
+
242
316
  ---
243
317
 
244
318
  ## SSH Alternative (`sc`)
@@ -376,6 +450,23 @@ See [CLAUDE.md](./CLAUDE.md) for full documentation.
376
450
 
377
451
  ---
378
452
 
453
+ ## Codebase Quality
454
+
455
+ The codebase went through a comprehensive 7-phase refactoring that eliminated god objects, centralized configuration, and established modular architecture:
456
+
457
+ | Phase | What changed | Impact |
458
+ |-------|-------------|--------|
459
+ | **Performance** | Cached endpoints, SSE adaptive batching, buffer chunking | Sub-16ms terminal latency |
460
+ | **Route extraction** | `server.ts` split into 12 domain route modules + auth middleware + port interfaces | **−60%** server.ts LOC (6,736 → 2,697) |
461
+ | **Domain splitting** | `types.ts` → 14 domain files, `ralph-tracker` → 7 files, `respawn-controller` → 5 files, `session` → 6 files | No more god files |
462
+ | **Frontend modules** | `app.js` → 8 extracted modules (constants, mobile, voice, notifications, keyboard, API, subagent windows) | **−24%** app.js LOC (15.2K → 11.5K) |
463
+ | **Config consolidation** | ~70 scattered magic numbers → 9 domain-focused config files | Zero cross-file duplicates |
464
+ | **Test infrastructure** | Shared mock library, 12 route test files, consolidated MockSession | Testable route handlers via `app.inject()` |
465
+
466
+ Full details: [`docs/code-structure-findings.md`](docs/code-structure-findings.md)
467
+
468
+ ---
469
+
379
470
  ## Published Packages
380
471
 
381
472
  ### [`xterm-zerolag-input`](https://www.npmjs.com/package/xterm-zerolag-input)
@@ -1 +1 @@
1
- {"version":3,"file":"ai-idle-checker.d.ts","sourceRoot":"","sources":["../src/ai-idle-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAgF9D;;;GAGG;AACH,qBAAa,aAAc,SAAQ,aAAa,CAAC,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,CAAC;IAC9G,SAAS,CAAC,QAAQ,CAAC,aAAa,sBAAsB;IACtD,SAAS,CAAC,QAAQ,CAAC,UAAU,sBAAsB;IACnD,SAAS,CAAC,QAAQ,CAAC,cAAc,qBAAqB;IACtD,SAAS,CAAC,QAAQ,CAAC,SAAS,qBAAqB;IACjD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,mBAAmB;gBAE1C,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAItE,SAAS,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAIrD,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAW7F,SAAS,CAAC,kBAAkB,IAAI,cAAc;IAI9C,SAAS,CAAC,kBAAkB,IAAI,cAAc;IAI9C,SAAS,CAAC,eAAe,IAAI,cAAc;IAI3C,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa;IAIjF,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa;CAGtG"}
1
+ {"version":3,"file":"ai-idle-checker.d.ts","sourceRoot":"","sources":["../src/ai-idle-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAK9B,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;AAEhE,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;AAgF9D;;;GAGG;AACH,qBAAa,aAAc,SAAQ,aAAa,CAAC,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,CAAC;IAC9G,SAAS,CAAC,QAAQ,CAAC,aAAa,sBAAsB;IACtD,SAAS,CAAC,QAAQ,CAAC,UAAU,sBAAsB;IACnD,SAAS,CAAC,QAAQ,CAAC,cAAc,qBAAqB;IACtD,SAAS,CAAC,QAAQ,CAAC,SAAS,qBAAqB;IACjD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,mBAAmB;gBAE1C,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAItE,SAAS,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAIrD,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAW7F,SAAS,CAAC,kBAAkB,IAAI,cAAc;IAI9C,SAAS,CAAC,kBAAkB,IAAI,cAAc;IAI9C,SAAS,CAAC,eAAe,IAAI,cAAc;IAI3C,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa;IAIjF,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa;CAGtG"}
@@ -24,11 +24,12 @@
24
24
  * @module ai-idle-checker
25
25
  */
26
26
  import { AiCheckerBase, } from './ai-checker-base.js';
27
+ import { AI_CHECK_MODEL, AI_IDLE_CHECK_MAX_CONTEXT } from './config/ai-defaults.js';
27
28
  // ========== Constants ==========
28
29
  const DEFAULT_AI_CHECK_CONFIG = {
29
30
  enabled: true,
30
- model: 'claude-opus-4-5-20251101',
31
- maxContextChars: 16000,
31
+ model: AI_CHECK_MODEL,
32
+ maxContextChars: AI_IDLE_CHECK_MAX_CONTEXT,
32
33
  checkTimeoutMs: 90000,
33
34
  cooldownMs: 180000,
34
35
  errorCooldownMs: 60000,
@@ -1 +1 @@
1
- {"version":3,"file":"ai-idle-checker.js","sourceRoot":"","sources":["../src/ai-idle-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EACL,aAAa,GAId,MAAM,sBAAsB,CAAC;AAY9B,kCAAkC;AAElC,MAAM,uBAAuB,GAAsB;IACjD,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,0BAA0B;IACjC,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,KAAK;IACrB,UAAU,EAAE,MAAM;IAClB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,CAAC;CACxB,CAAC;AAEF,mEAAmE;AACnE,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAsDkB,CAAC;AAE3C,4CAA4C;AAE5C;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,aAA6E;IAC3F,aAAa,GAAG,kBAAkB,CAAC;IACnC,UAAU,GAAG,kBAAkB,CAAC;IAChC,cAAc,GAAG,iBAAiB,CAAC;IACnC,SAAS,GAAG,iBAAiB,CAAC;IAC9B,gBAAgB,GAAG,eAAe,CAAC;IAEtD,YAAY,SAAiB,EAAE,SAAqC,EAAE;QACpE,KAAK,CAAC,SAAS,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAES,WAAW,CAAC,cAAsB;QAC1C,OAAO,eAAe,CAAC,OAAO,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IAES,YAAY,CAAC,MAAc;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAwB,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,kBAAkB,OAAO,EAAE,CAAC;QAElF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IAES,kBAAkB;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,kBAAkB;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,eAAe;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,iBAAiB,CAAC,SAAiB,EAAE,UAAkB;QAC/D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACrD,CAAC;IAES,YAAY,CAAC,OAAuB,EAAE,SAAiB,EAAE,UAAkB;QACnF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;CACF"}
1
+ {"version":3,"file":"ai-idle-checker.js","sourceRoot":"","sources":["../src/ai-idle-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EACL,aAAa,GAId,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAYpF,kCAAkC;AAElC,MAAM,uBAAuB,GAAsB;IACjD,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,cAAc;IACrB,eAAe,EAAE,yBAAyB;IAC1C,cAAc,EAAE,KAAK;IACrB,UAAU,EAAE,MAAM;IAClB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,CAAC;CACxB,CAAC;AAEF,mEAAmE;AACnE,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAsDkB,CAAC;AAE3C,4CAA4C;AAE5C;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,aAA6E;IAC3F,aAAa,GAAG,kBAAkB,CAAC;IACnC,UAAU,GAAG,kBAAkB,CAAC;IAChC,cAAc,GAAG,iBAAiB,CAAC;IACnC,SAAS,GAAG,iBAAiB,CAAC;IAC9B,gBAAgB,GAAG,eAAe,CAAC;IAEtD,YAAY,SAAiB,EAAE,SAAqC,EAAE;QACpE,KAAK,CAAC,SAAS,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAES,WAAW,CAAC,cAAsB;QAC1C,OAAO,eAAe,CAAC,OAAO,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;IAES,YAAY,CAAC,MAAc;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAwB,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,kBAAkB,OAAO,EAAE,CAAC;QAElF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IAES,kBAAkB;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,kBAAkB;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,eAAe;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,iBAAiB,CAAC,SAAiB,EAAE,UAAkB;QAC/D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACrD,CAAC;IAES,YAAY,CAAC,OAAuB,EAAE,SAAiB,EAAE,UAAkB;QACnF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-plan-checker.d.ts","sourceRoot":"","sources":["../src/ai-plan-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,eAAe,GAAG,OAAO,CAAC;AAEzE,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AA2CtE;;;GAGG;AACH,qBAAa,aAAc,SAAQ,aAAa,CAC9C,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,CACjB;IACC,SAAS,CAAC,QAAQ,CAAC,aAAa,wBAAwB;IACxD,SAAS,CAAC,QAAQ,CAAC,UAAU,wBAAwB;IACrD,SAAS,CAAC,QAAQ,CAAC,cAAc,uBAAuB;IACxD,SAAS,CAAC,QAAQ,CAAC,SAAS,qBAAqB;IACjD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,mBAAmB;gBAE1C,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAItE,SAAS,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAIrD,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,kBAAkB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAWjG,SAAS,CAAC,kBAAkB,IAAI,kBAAkB;IAIlD,SAAS,CAAC,kBAAkB,IAAI,kBAAkB;IAIlD,SAAS,CAAC,eAAe,IAAI,kBAAkB;IAI/C,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAIrF,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;CAG9G"}
1
+ {"version":3,"file":"ai-plan-checker.d.ts","sourceRoot":"","sources":["../src/ai-plan-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAK9B,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,eAAe,GAAG,OAAO,CAAC;AAEzE,MAAM,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;AAExE,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AA2CtE;;;GAGG;AACH,qBAAa,aAAc,SAAQ,aAAa,CAC9C,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,CACjB;IACC,SAAS,CAAC,QAAQ,CAAC,aAAa,wBAAwB;IACxD,SAAS,CAAC,QAAQ,CAAC,UAAU,wBAAwB;IACrD,SAAS,CAAC,QAAQ,CAAC,cAAc,uBAAuB;IACxD,SAAS,CAAC,QAAQ,CAAC,SAAS,qBAAqB;IACjD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,mBAAmB;gBAE1C,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAItE,SAAS,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM;IAIrD,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,kBAAkB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAWjG,SAAS,CAAC,kBAAkB,IAAI,kBAAkB;IAIlD,SAAS,CAAC,kBAAkB,IAAI,kBAAkB;IAIlD,SAAS,CAAC,eAAe,IAAI,kBAAkB;IAI/C,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAIrF,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;CAG9G"}
@@ -23,11 +23,12 @@
23
23
  * @module ai-plan-checker
24
24
  */
25
25
  import { AiCheckerBase, } from './ai-checker-base.js';
26
+ import { AI_CHECK_MODEL, AI_PLAN_CHECK_MAX_CONTEXT } from './config/ai-defaults.js';
26
27
  // ========== Constants ==========
27
28
  const DEFAULT_PLAN_CHECK_CONFIG = {
28
29
  enabled: true,
29
- model: 'claude-opus-4-5-20251101',
30
- maxContextChars: 8000,
30
+ model: AI_CHECK_MODEL,
31
+ maxContextChars: AI_PLAN_CHECK_MAX_CONTEXT,
31
32
  checkTimeoutMs: 60000,
32
33
  cooldownMs: 30000,
33
34
  errorCooldownMs: 30000,
@@ -1 +1 @@
1
- {"version":3,"file":"ai-plan-checker.js","sourceRoot":"","sources":["../src/ai-plan-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,aAAa,GAId,MAAM,sBAAsB,CAAC;AAY9B,kCAAkC;AAElC,MAAM,yBAAyB,GAAsB;IACnD,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,0BAA0B;IACjC,eAAe,EAAE,IAAI;IACrB,cAAc,EAAE,KAAK;IACrB,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,CAAC;CACxB,CAAC;AAEF,iFAAiF;AACjF,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAE3D,6CAA6C;AAC7C,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;qCAqBQ,CAAC;AAEtC,4CAA4C;AAE5C;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,aAKlC;IACoB,aAAa,GAAG,oBAAoB,CAAC;IACrC,UAAU,GAAG,oBAAoB,CAAC;IAClC,cAAc,GAAG,mBAAmB,CAAC;IACrC,SAAS,GAAG,iBAAiB,CAAC;IAC9B,gBAAgB,GAAG,eAAe,CAAC;IAEtD,YAAY,SAAiB,EAAE,SAAqC,EAAE;QACpE,KAAK,CAAC,SAAS,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAES,WAAW,CAAC,cAAsB;QAC1C,OAAO,oBAAoB,CAAC,OAAO,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAC3E,CAAC;IAES,YAAY,CAAC,MAAc;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAmC,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,kBAAkB,OAAO,EAAE,CAAC;QAElF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IAES,kBAAkB;QAC1B,OAAO,WAAW,CAAC;IACrB,CAAC;IAES,kBAAkB;QAC1B,OAAO,eAAe,CAAC;IACzB,CAAC;IAES,eAAe;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,iBAAiB,CAAC,SAAiB,EAAE,UAAkB;QAC/D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACrD,CAAC;IAES,YAAY,CAAC,OAA2B,EAAE,SAAiB,EAAE,UAAkB;QACvF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;CACF"}
1
+ {"version":3,"file":"ai-plan-checker.js","sourceRoot":"","sources":["../src/ai-plan-checker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,aAAa,GAId,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAYpF,kCAAkC;AAElC,MAAM,yBAAyB,GAAsB;IACnD,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,cAAc;IACrB,eAAe,EAAE,yBAAyB;IAC1C,cAAc,EAAE,KAAK;IACrB,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,CAAC;CACxB,CAAC;AAEF,iFAAiF;AACjF,MAAM,eAAe,GAAG,kCAAkC,CAAC;AAE3D,6CAA6C;AAC7C,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;qCAqBQ,CAAC;AAEtC,4CAA4C;AAE5C;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,aAKlC;IACoB,aAAa,GAAG,oBAAoB,CAAC;IACrC,UAAU,GAAG,oBAAoB,CAAC;IAClC,cAAc,GAAG,mBAAmB,CAAC;IACrC,SAAS,GAAG,iBAAiB,CAAC;IAC9B,gBAAgB,GAAG,eAAe,CAAC;IAEtD,YAAY,SAAiB,EAAE,SAAqC,EAAE;QACpE,KAAK,CAAC,SAAS,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAES,WAAW,CAAC,cAAsB;QAC1C,OAAO,oBAAoB,CAAC,OAAO,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAC3E,CAAC;IAES,YAAY,CAAC,MAAc;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAmC,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,kBAAkB,OAAO,EAAE,CAAC;QAElF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAChC,CAAC;IAES,kBAAkB;QAC1B,OAAO,WAAW,CAAC;IACrB,CAAC;IAES,kBAAkB;QAC1B,OAAO,eAAe,CAAC;IACzB,CAAC;IAES,eAAe;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,iBAAiB,CAAC,SAAiB,EAAE,UAAkB;QAC/D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IACrD,CAAC;IAES,YAAY,CAAC,OAA2B,EAAE,SAAiB,EAAE,UAAkB;QACvF,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;CACF"}
@@ -58,10 +58,9 @@ export declare class BashToolParser extends EventEmitter<BashToolParserEvents> {
58
58
  private _lastToolId;
59
59
  private _workingDir;
60
60
  private _homeDir;
61
- private _autoRemoveTimers;
61
+ private cleanup;
62
62
  private _destroyed;
63
- private _pendingUpdate;
64
- private _updateTimer;
63
+ private _updateDeb;
65
64
  constructor(config: BashToolParserConfig);
66
65
  /** Whether the parser is currently enabled */
67
66
  get enabled(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"bash-tool-parser.d.ts","sourceRoot":"","sources":["../src/bash-tool-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bash-tool-parser.d.ts","sourceRoot":"","sources":["../src/bash-tool-parser.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@
13
13
  */
14
14
  import { EventEmitter } from 'node:events';
15
15
  import { v4 as uuidv4 } from 'uuid';
16
+ import { CleanupManager, Debouncer } from './utils/index.js';
16
17
  // ========== Configuration Constants ==========
17
18
  /**
18
19
  * Maximum number of active tools to track per session.
@@ -101,13 +102,12 @@ export class BashToolParser extends EventEmitter {
101
102
  _lastToolId = null;
102
103
  _workingDir;
103
104
  _homeDir;
104
- // Track auto-remove timers for cleanup
105
- _autoRemoveTimers = new Set();
105
+ // Centralized resource cleanup for auto-remove timers
106
+ cleanup = new CleanupManager();
106
107
  // Flag to prevent operations after destroy
107
108
  _destroyed = false;
108
109
  // Debouncing
109
- _pendingUpdate = false;
110
- _updateTimer = null;
110
+ _updateDeb = new Debouncer(EVENT_DEBOUNCE_MS);
111
111
  constructor(config) {
112
112
  super();
113
113
  this._sessionId = config.sessionId;
@@ -431,14 +431,12 @@ export class BashToolParser extends EventEmitter {
431
431
  this.emit('toolEnd', tool);
432
432
  this.scheduleUpdate();
433
433
  // Remove completed tool after a short delay to allow UI to show completion
434
- const timer = setTimeout(() => {
435
- this._autoRemoveTimers.delete(timer);
434
+ this.cleanup.setTimeout(() => {
436
435
  if (this._destroyed)
437
436
  return;
438
437
  this._activeTools.delete(tool.id);
439
438
  this.scheduleUpdate();
440
- }, 2000);
441
- this._autoRemoveTimers.add(timer);
439
+ }, 2000, { description: 'auto-remove completed tool' });
442
440
  }
443
441
  this._lastToolId = null;
444
442
  return;
@@ -465,14 +463,12 @@ export class BashToolParser extends EventEmitter {
465
463
  this.emit('toolStart', tool);
466
464
  this.scheduleUpdate();
467
465
  // Auto-remove suggestions after 30 seconds
468
- const timer = setTimeout(() => {
469
- this._autoRemoveTimers.delete(timer);
466
+ this.cleanup.setTimeout(() => {
470
467
  if (this._destroyed)
471
468
  return;
472
469
  this._activeTools.delete(tool.id);
473
470
  this.scheduleUpdate();
474
- }, 30000);
475
- this._autoRemoveTimers.add(timer);
471
+ }, 30000, { description: 'auto-remove suggestion tool' });
476
472
  return;
477
473
  }
478
474
  // Last fallback: Check for log file paths mentioned anywhere in the line
@@ -499,14 +495,12 @@ export class BashToolParser extends EventEmitter {
499
495
  this.emit('toolStart', tool);
500
496
  this.scheduleUpdate();
501
497
  // Auto-remove after 60 seconds
502
- const timer = setTimeout(() => {
503
- this._autoRemoveTimers.delete(timer);
498
+ this.cleanup.setTimeout(() => {
504
499
  if (this._destroyed)
505
500
  return;
506
501
  this._activeTools.delete(tool.id);
507
502
  this.scheduleUpdate();
508
- }, 60000);
509
- this._autoRemoveTimers.add(timer);
503
+ }, 60000, { description: 'auto-remove log file tool' });
510
504
  }
511
505
  }
512
506
  /**
@@ -563,13 +557,9 @@ export class BashToolParser extends EventEmitter {
563
557
  * Schedule a debounced update emission.
564
558
  */
565
559
  scheduleUpdate() {
566
- if (this._pendingUpdate)
567
- return;
568
- this._pendingUpdate = true;
569
- this._updateTimer = setTimeout(() => {
570
- this._pendingUpdate = false;
560
+ this._updateDeb.schedule(() => {
571
561
  this.emitUpdate();
572
- }, EVENT_DEBOUNCE_MS);
562
+ });
573
563
  }
574
564
  /**
575
565
  * Emit the current active tools list.
@@ -582,15 +572,8 @@ export class BashToolParser extends EventEmitter {
582
572
  */
583
573
  destroy() {
584
574
  this._destroyed = true;
585
- if (this._updateTimer) {
586
- clearTimeout(this._updateTimer);
587
- this._updateTimer = null;
588
- }
589
- // Clear all auto-remove timers to prevent orphaned callbacks
590
- for (const timer of this._autoRemoveTimers) {
591
- clearTimeout(timer);
592
- }
593
- this._autoRemoveTimers.clear();
575
+ this._updateDeb.dispose();
576
+ this.cleanup.dispose();
594
577
  this._activeTools.clear();
595
578
  this.removeAllListeners();
596
579
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bash-tool-parser.js","sourceRoot":"","sources":["../src/bash-tool-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bash-tool-parser.js","sourceRoot":"","sources":["../src/bash-tool-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview Default model and context limits for AI-powered checkers.
3
+ *
4
+ * Centralizes the AI model identifier and context window sizes used by
5
+ * the idle checker, plan checker, respawn controller defaults, and
6
+ * respawn route fallbacks. Change the model here when upgrading.
7
+ *
8
+ * @module config/ai-defaults
9
+ */
10
+ /** Default model for AI idle and plan checkers */
11
+ export declare const AI_CHECK_MODEL = "claude-opus-4-5-20251101";
12
+ /** Max context chars for idle checker (~4k tokens) */
13
+ export declare const AI_IDLE_CHECK_MAX_CONTEXT = 16000;
14
+ /** Max context chars for plan checker (~2k tokens, plan mode UI is compact) */
15
+ export declare const AI_PLAN_CHECK_MAX_CONTEXT = 8000;
16
+ //# sourceMappingURL=ai-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-defaults.d.ts","sourceRoot":"","sources":["../../src/config/ai-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kDAAkD;AAClD,eAAO,MAAM,cAAc,6BAA6B,CAAC;AAEzD,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAE/C,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,OAAO,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @fileoverview Default model and context limits for AI-powered checkers.
3
+ *
4
+ * Centralizes the AI model identifier and context window sizes used by
5
+ * the idle checker, plan checker, respawn controller defaults, and
6
+ * respawn route fallbacks. Change the model here when upgrading.
7
+ *
8
+ * @module config/ai-defaults
9
+ */
10
+ /** Default model for AI idle and plan checkers */
11
+ export const AI_CHECK_MODEL = 'claude-opus-4-5-20251101';
12
+ /** Max context chars for idle checker (~4k tokens) */
13
+ export const AI_IDLE_CHECK_MAX_CONTEXT = 16000;
14
+ /** Max context chars for plan checker (~2k tokens, plan mode UI is compact) */
15
+ export const AI_PLAN_CHECK_MAX_CONTEXT = 8000;
16
+ //# sourceMappingURL=ai-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-defaults.js","sourceRoot":"","sources":["../../src/config/ai-defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kDAAkD;AAClD,MAAM,CAAC,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAEzD,sDAAsD;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAE/C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @fileoverview Authentication, rate limiting, and hook security constants.
3
+ *
4
+ * Controls auth session lifecycle, brute-force protection,
5
+ * and Claude Code hook timeouts.
6
+ *
7
+ * @module config/auth-config
8
+ */
9
+ /** Auth session cookie TTL — matches autonomous run length (ms) */
10
+ export declare const AUTH_SESSION_TTL_MS: number;
11
+ /** Max concurrent auth sessions per server */
12
+ export declare const MAX_AUTH_SESSIONS = 100;
13
+ /** Max failed auth attempts per IP before 429 rejection */
14
+ export declare const AUTH_FAILURE_MAX = 10;
15
+ /** Failed auth attempt tracking window (ms) */
16
+ export declare const AUTH_FAILURE_WINDOW_MS: number;
17
+ /** Timeout for Claude Code hook curl commands (ms) */
18
+ export declare const HOOK_TIMEOUT_MS = 10000;
19
+ //# sourceMappingURL=auth-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-config.d.ts","sourceRoot":"","sources":["../../src/config/auth-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,mEAAmE;AACnE,eAAO,MAAM,mBAAmB,QAAsB,CAAC;AAEvD,8CAA8C;AAC9C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAMrC,2DAA2D;AAC3D,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,+CAA+C;AAC/C,eAAO,MAAM,sBAAsB,QAAiB,CAAC;AAMrD,sDAAsD;AACtD,eAAO,MAAM,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview Authentication, rate limiting, and hook security constants.
3
+ *
4
+ * Controls auth session lifecycle, brute-force protection,
5
+ * and Claude Code hook timeouts.
6
+ *
7
+ * @module config/auth-config
8
+ */
9
+ // ============================================================================
10
+ // Session Cookies
11
+ // ============================================================================
12
+ /** Auth session cookie TTL — matches autonomous run length (ms) */
13
+ export const AUTH_SESSION_TTL_MS = 24 * 60 * 60 * 1000;
14
+ /** Max concurrent auth sessions per server */
15
+ export const MAX_AUTH_SESSIONS = 100;
16
+ // ============================================================================
17
+ // Rate Limiting
18
+ // ============================================================================
19
+ /** Max failed auth attempts per IP before 429 rejection */
20
+ export const AUTH_FAILURE_MAX = 10;
21
+ /** Failed auth attempt tracking window (ms) */
22
+ export const AUTH_FAILURE_WINDOW_MS = 15 * 60 * 1000;
23
+ // ============================================================================
24
+ // Hooks
25
+ // ============================================================================
26
+ /** Timeout for Claude Code hook curl commands (ms) */
27
+ export const HOOK_TIMEOUT_MS = 10000;
28
+ //# sourceMappingURL=auth-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-config.js","sourceRoot":"","sources":["../../src/config/auth-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD,8CAA8C;AAC9C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,2DAA2D;AAC3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAErD,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,sDAAsD;AACtD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @fileoverview Shared exec timeout constant.
3
+ *
4
+ * Used by CLI resolvers and tmux-manager for execSync/exec calls.
5
+ *
6
+ * @module config/exec-timeout
7
+ */
8
+ /** Timeout for exec commands (5 seconds) */
9
+ export declare const EXEC_TIMEOUT_MS = 5000;
10
+ //# sourceMappingURL=exec-timeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec-timeout.d.ts","sourceRoot":"","sources":["../../src/config/exec-timeout.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,4CAA4C;AAC5C,eAAO,MAAM,eAAe,OAAO,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @fileoverview Shared exec timeout constant.
3
+ *
4
+ * Used by CLI resolvers and tmux-manager for execSync/exec calls.
5
+ *
6
+ * @module config/exec-timeout
7
+ */
8
+ /** Timeout for exec commands (5 seconds) */
9
+ export const EXEC_TIMEOUT_MS = 5000;
10
+ //# sourceMappingURL=exec-timeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec-timeout.js","sourceRoot":"","sources":["../../src/config/exec-timeout.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC"}
@@ -27,6 +27,10 @@ export declare const MAX_SSE_CLIENTS = 100;
27
27
  * Maximum todo items to track per session.
28
28
  */
29
29
  export declare const MAX_TODOS_PER_SESSION = 500;
30
+ /**
31
+ * Maximum agents to track across all sessions (LRU eviction when exceeded).
32
+ */
33
+ export declare const MAX_TRACKED_AGENTS = 500;
30
34
  /**
31
35
  * Maximum pending tool calls to track per subagent.
32
36
  * Entries should be cleaned up on tool_result, but this prevents leaks.
@@ -1 +1 @@
1
- {"version":3,"file":"map-limits.d.ts","sourceRoot":"","sources":["../../src/config/map-limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAM1C;;;GAGG;AACH,eAAO,MAAM,eAAe,MAAM,CAAC;AAMnC;;GAEG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAMzC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAgB,CAAC"}
1
+ {"version":3,"file":"map-limits.d.ts","sourceRoot":"","sources":["../../src/config/map-limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;;GAGG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAM1C;;;GAGG;AACH,eAAO,MAAM,eAAe,MAAM,CAAC;AAMnC;;GAEG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAUzC;;GAEG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;;GAGG;AACH,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAgB,CAAC"}
@@ -39,6 +39,13 @@ export const MAX_TODOS_PER_SESSION = 500;
39
39
  // ============================================================================
40
40
  // Pending Tool Calls Limits
41
41
  // ============================================================================
42
+ // ============================================================================
43
+ // Agent Tracking Limits
44
+ // ============================================================================
45
+ /**
46
+ * Maximum agents to track across all sessions (LRU eviction when exceeded).
47
+ */
48
+ export const MAX_TRACKED_AGENTS = 500;
42
49
  /**
43
50
  * Maximum pending tool calls to track per subagent.
44
51
  * Entries should be cleaned up on tool_result, but this prevents leaks.
@@ -1 +1 @@
1
- {"version":3,"file":"map-limits.js","sourceRoot":"","sources":["../../src/config/map-limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"map-limits.js","sourceRoot":"","sources":["../../src/config/map-limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC,+EAA+E;AAC/E,mCAAmC;AACnC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAEzC,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @fileoverview Web server performance and scheduling constants.
3
+ *
4
+ * Controls terminal batching throughput, SSE health checking,
5
+ * state persistence debouncing, and scheduled run timing.
6
+ *
7
+ * @module config/server-timing
8
+ */
9
+ /** Terminal data batching interval — targets 60fps (ms) */
10
+ export declare const TERMINAL_BATCH_INTERVAL = 16;
11
+ /** Immediate flush threshold for terminal batches (bytes).
12
+ * Set high (32KB) to allow effective batching; avg Ink events are ~14KB. */
13
+ export declare const BATCH_FLUSH_THRESHOLD: number;
14
+ /** Task event batching interval (ms) */
15
+ export declare const TASK_UPDATE_BATCH_INTERVAL = 100;
16
+ /** SSE client health check interval (ms) */
17
+ export declare const SSE_HEALTH_CHECK_INTERVAL: number;
18
+ /** State update debounce — batches expensive toDetailedState() calls (ms) */
19
+ export declare const STATE_UPDATE_DEBOUNCE_INTERVAL = 500;
20
+ /** Sessions list cache TTL — avoids re-serializing on every SSE init (ms) */
21
+ export declare const SESSIONS_LIST_CACHE_TTL = 1000;
22
+ /** Scheduled runs cleanup check interval (ms) */
23
+ export declare const SCHEDULED_CLEANUP_INTERVAL: number;
24
+ /** Completed scheduled run max age before cleanup (ms) */
25
+ export declare const SCHEDULED_RUN_MAX_AGE: number;
26
+ /** Session limit retry wait before retrying (ms) */
27
+ export declare const SESSION_LIMIT_WAIT_MS = 5000;
28
+ /** Pause between scheduled run iterations (ms) */
29
+ export declare const ITERATION_PAUSE_MS = 2000;
30
+ /** Mux stats collection interval (ms) */
31
+ export declare const STATS_COLLECTION_INTERVAL_MS = 2000;
32
+ /** Max consecutive unhandled errors before auto-restart */
33
+ export declare const MAX_CONSECUTIVE_ERRORS = 5;
34
+ /** Error counter reset interval — forgives errors after quiet period (ms) */
35
+ export declare const ERROR_RESET_MS = 60000;
36
+ //# sourceMappingURL=server-timing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-timing.d.ts","sourceRoot":"","sources":["../../src/config/server-timing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,2DAA2D;AAC3D,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C;4EAC4E;AAC5E,eAAO,MAAM,qBAAqB,QAAY,CAAC;AAE/C,wCAAwC;AACxC,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,4CAA4C;AAC5C,eAAO,MAAM,yBAAyB,QAAY,CAAC;AAMnD,6EAA6E;AAC7E,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAM5C,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,QAAgB,CAAC;AAExD,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,QAAiB,CAAC;AAEpD,oDAAoD;AACpD,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,kDAAkD;AAClD,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAMvC,yCAAyC;AACzC,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAMjD,2DAA2D;AAC3D,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,6EAA6E;AAC7E,eAAO,MAAM,cAAc,QAAS,CAAC"}