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.
- package/README.md +91 -0
- package/dist/ai-idle-checker.d.ts.map +1 -1
- package/dist/ai-idle-checker.js +3 -2
- package/dist/ai-idle-checker.js.map +1 -1
- package/dist/ai-plan-checker.d.ts.map +1 -1
- package/dist/ai-plan-checker.js +3 -2
- package/dist/ai-plan-checker.js.map +1 -1
- package/dist/bash-tool-parser.d.ts +2 -3
- package/dist/bash-tool-parser.d.ts.map +1 -1
- package/dist/bash-tool-parser.js +14 -31
- package/dist/bash-tool-parser.js.map +1 -1
- package/dist/config/ai-defaults.d.ts +16 -0
- package/dist/config/ai-defaults.d.ts.map +1 -0
- package/dist/config/ai-defaults.js +16 -0
- package/dist/config/ai-defaults.js.map +1 -0
- package/dist/config/auth-config.d.ts +19 -0
- package/dist/config/auth-config.d.ts.map +1 -0
- package/dist/config/auth-config.js +28 -0
- package/dist/config/auth-config.js.map +1 -0
- package/dist/config/exec-timeout.d.ts +10 -0
- package/dist/config/exec-timeout.d.ts.map +1 -0
- package/dist/config/exec-timeout.js +10 -0
- package/dist/config/exec-timeout.js.map +1 -0
- package/dist/config/map-limits.d.ts +4 -0
- package/dist/config/map-limits.d.ts.map +1 -1
- package/dist/config/map-limits.js +7 -0
- package/dist/config/map-limits.js.map +1 -1
- package/dist/config/server-timing.d.ts +36 -0
- package/dist/config/server-timing.d.ts.map +1 -0
- package/dist/config/server-timing.js +51 -0
- package/dist/config/server-timing.js.map +1 -0
- package/dist/config/team-config.d.ts +16 -0
- package/dist/config/team-config.d.ts.map +1 -0
- package/dist/config/team-config.js +16 -0
- package/dist/config/team-config.js.map +1 -0
- package/dist/config/terminal-limits.d.ts +18 -0
- package/dist/config/terminal-limits.d.ts.map +1 -0
- package/dist/config/terminal-limits.js +18 -0
- package/dist/config/terminal-limits.js.map +1 -0
- package/dist/config/tunnel-config.d.ts +27 -0
- package/dist/config/tunnel-config.d.ts.map +1 -0
- package/dist/config/tunnel-config.js +36 -0
- package/dist/config/tunnel-config.js.map +1 -0
- package/dist/hooks-config.d.ts.map +1 -1
- package/dist/hooks-config.js +7 -6
- package/dist/hooks-config.js.map +1 -1
- package/dist/image-watcher.d.ts +4 -4
- package/dist/image-watcher.d.ts.map +1 -1
- package/dist/image-watcher.js +17 -30
- package/dist/image-watcher.js.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/plan-orchestrator.d.ts +2 -24
- package/dist/plan-orchestrator.d.ts.map +1 -1
- package/dist/plan-orchestrator.js.map +1 -1
- package/dist/push-store.d.ts +1 -1
- package/dist/push-store.d.ts.map +1 -1
- package/dist/push-store.js +4 -12
- package/dist/push-store.js.map +1 -1
- package/dist/ralph-fix-plan-watcher.d.ts +91 -0
- package/dist/ralph-fix-plan-watcher.d.ts.map +1 -0
- package/dist/ralph-fix-plan-watcher.js +326 -0
- package/dist/ralph-fix-plan-watcher.js.map +1 -0
- package/dist/ralph-plan-tracker.d.ts +201 -0
- package/dist/ralph-plan-tracker.d.ts.map +1 -0
- package/dist/ralph-plan-tracker.js +325 -0
- package/dist/ralph-plan-tracker.js.map +1 -0
- package/dist/ralph-stall-detector.d.ts +84 -0
- package/dist/ralph-stall-detector.d.ts.map +1 -0
- package/dist/ralph-stall-detector.js +139 -0
- package/dist/ralph-stall-detector.js.map +1 -0
- package/dist/ralph-status-parser.d.ts +141 -0
- package/dist/ralph-status-parser.d.ts.map +1 -0
- package/dist/ralph-status-parser.js +478 -0
- package/dist/ralph-status-parser.js.map +1 -0
- package/dist/ralph-tracker.d.ts +194 -685
- package/dist/ralph-tracker.d.ts.map +1 -1
- package/dist/ralph-tracker.js +349 -1713
- package/dist/ralph-tracker.js.map +1 -1
- package/dist/respawn-adaptive-timing.d.ts +61 -0
- package/dist/respawn-adaptive-timing.d.ts.map +1 -0
- package/dist/respawn-adaptive-timing.js +105 -0
- package/dist/respawn-adaptive-timing.js.map +1 -0
- package/dist/respawn-controller.d.ts +12 -101
- package/dist/respawn-controller.d.ts.map +1 -1
- package/dist/respawn-controller.js +144 -593
- package/dist/respawn-controller.js.map +1 -1
- package/dist/respawn-health.d.ts +54 -0
- package/dist/respawn-health.d.ts.map +1 -0
- package/dist/respawn-health.js +183 -0
- package/dist/respawn-health.js.map +1 -0
- package/dist/respawn-metrics.d.ts +81 -0
- package/dist/respawn-metrics.d.ts.map +1 -0
- package/dist/respawn-metrics.js +198 -0
- package/dist/respawn-metrics.js.map +1 -0
- package/dist/respawn-patterns.d.ts +45 -0
- package/dist/respawn-patterns.d.ts.map +1 -0
- package/dist/respawn-patterns.js +125 -0
- package/dist/respawn-patterns.js.map +1 -0
- package/dist/session-auto-ops.d.ts +89 -0
- package/dist/session-auto-ops.d.ts.map +1 -0
- package/dist/session-auto-ops.js +224 -0
- package/dist/session-auto-ops.js.map +1 -0
- package/dist/session-cli-builder.d.ts +62 -0
- package/dist/session-cli-builder.d.ts.map +1 -0
- package/dist/session-cli-builder.js +121 -0
- package/dist/session-cli-builder.js.map +1 -0
- package/dist/session-task-cache.d.ts +52 -0
- package/dist/session-task-cache.d.ts.map +1 -0
- package/dist/session-task-cache.js +90 -0
- package/dist/session-task-cache.js.map +1 -0
- package/dist/session.d.ts +2 -33
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +58 -309
- package/dist/session.js.map +1 -1
- package/dist/state-store.d.ts +2 -2
- package/dist/state-store.d.ts.map +1 -1
- package/dist/state-store.js +12 -23
- package/dist/state-store.js.map +1 -1
- package/dist/subagent-watcher.d.ts +3 -4
- package/dist/subagent-watcher.d.ts.map +1 -1
- package/dist/subagent-watcher.js +24 -61
- 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 +127 -7
- package/dist/tunnel-manager.js.map +1 -1
- package/dist/types/api.d.ts +93 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +83 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/app-state.d.ts +100 -0
- package/dist/types/app-state.d.ts.map +1 -0
- package/dist/types/app-state.js +59 -0
- package/dist/types/app-state.js.map +1 -0
- package/dist/types/common.d.ts +70 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +8 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +18 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lifecycle.d.ts +17 -0
- package/dist/types/lifecycle.d.ts.map +1 -0
- package/dist/types/lifecycle.js +5 -0
- package/dist/types/lifecycle.js.map +1 -0
- package/dist/types/plan.d.ts +32 -0
- package/dist/types/plan.d.ts.map +1 -0
- package/dist/types/plan.js +5 -0
- package/dist/types/plan.js.map +1 -0
- package/dist/types/push.d.ts +23 -0
- package/dist/types/push.d.ts.map +1 -0
- package/dist/types/push.js +5 -0
- package/dist/types/push.js.map +1 -0
- package/dist/types/ralph.d.ts +241 -0
- package/dist/types/ralph.d.ts.map +1 -0
- package/dist/types/ralph.js +49 -0
- package/dist/types/ralph.js.map +1 -0
- package/dist/types/respawn.d.ts +250 -0
- package/dist/types/respawn.d.ts.map +1 -0
- package/dist/types/respawn.js +5 -0
- package/dist/types/respawn.js.map +1 -0
- package/dist/types/run-summary.d.ts +81 -0
- package/dist/types/run-summary.d.ts.map +1 -0
- package/dist/types/run-summary.js +22 -0
- package/dist/types/run-summary.js.map +1 -0
- package/dist/types/session.d.ts +130 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +5 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/task.d.ts +58 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +5 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/teams.d.ts +55 -0
- package/dist/types/teams.d.ts.map +1 -0
- package/dist/types/teams.js +5 -0
- package/dist/types/teams.js.map +1 -0
- package/dist/types/tools.d.ts +46 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +5 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/types.d.ts +1 -1138
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -214
- package/dist/types.js.map +1 -1
- package/dist/utils/claude-cli-resolver.d.ts.map +1 -1
- package/dist/utils/claude-cli-resolver.js +1 -2
- package/dist/utils/claude-cli-resolver.js.map +1 -1
- package/dist/utils/debouncer.d.ts +111 -0
- package/dist/utils/debouncer.d.ts.map +1 -0
- package/dist/utils/debouncer.js +162 -0
- package/dist/utils/debouncer.js.map +1 -0
- package/dist/utils/index.d.ts +3 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -2
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/opencode-cli-resolver.d.ts.map +1 -1
- package/dist/utils/opencode-cli-resolver.js +1 -2
- package/dist/utils/opencode-cli-resolver.js.map +1 -1
- package/dist/utils/string-similarity.d.ts +0 -57
- package/dist/utils/string-similarity.d.ts.map +1 -1
- package/dist/utils/string-similarity.js +3 -18
- package/dist/utils/string-similarity.js.map +1 -1
- package/dist/web/middleware/auth.d.ts +31 -0
- package/dist/web/middleware/auth.d.ts.map +1 -0
- package/dist/web/middleware/auth.js +154 -0
- package/dist/web/middleware/auth.js.map +1 -0
- package/dist/web/ports/auth-port.d.ts +18 -0
- package/dist/web/ports/auth-port.d.ts.map +1 -0
- package/dist/web/ports/auth-port.js +6 -0
- package/dist/web/ports/auth-port.js.map +1 -0
- package/dist/web/ports/config-port.d.ts +28 -0
- package/dist/web/ports/config-port.d.ts.map +1 -0
- package/dist/web/ports/config-port.js +6 -0
- package/dist/web/ports/config-port.js.map +1 -0
- package/dist/web/ports/event-port.d.ts +13 -0
- package/dist/web/ports/event-port.d.ts.map +1 -0
- package/dist/web/ports/event-port.js +6 -0
- package/dist/web/ports/event-port.js.map +1 -0
- package/dist/web/ports/index.d.ts +14 -0
- package/dist/web/ports/index.d.ts.map +1 -0
- package/dist/web/ports/index.js +9 -0
- package/dist/web/ports/index.js.map +1 -0
- package/dist/web/ports/infra-port.d.ts +36 -0
- package/dist/web/ports/infra-port.d.ts.map +1 -0
- package/dist/web/ports/infra-port.js +6 -0
- package/dist/web/ports/infra-port.js.map +1 -0
- package/dist/web/ports/respawn-port.d.ts +20 -0
- package/dist/web/ports/respawn-port.d.ts.map +1 -0
- package/dist/web/ports/respawn-port.js +6 -0
- package/dist/web/ports/respawn-port.js.map +1 -0
- package/dist/web/ports/session-port.d.ts +15 -0
- package/dist/web/ports/session-port.d.ts.map +1 -0
- package/dist/web/ports/session-port.js +6 -0
- package/dist/web/ports/session-port.js.map +1 -0
- package/dist/web/public/api-client.js +70 -0
- package/dist/web/public/api-client.js.br +0 -0
- package/dist/web/public/api-client.js.gz +0 -0
- package/dist/web/public/app.js +151 -235
- package/dist/web/public/app.js.br +0 -0
- package/dist/web/public/app.js.gz +0 -0
- package/dist/web/public/constants.js +238 -0
- package/dist/web/public/constants.js.br +0 -0
- package/dist/web/public/constants.js.gz +0 -0
- package/dist/web/public/index.html +11 -3
- package/dist/web/public/index.html.br +0 -0
- package/dist/web/public/index.html.gz +0 -0
- package/dist/web/public/keyboard-accessory.js +279 -0
- package/dist/web/public/keyboard-accessory.js.br +0 -0
- package/dist/web/public/keyboard-accessory.js.gz +0 -0
- package/dist/web/public/mobile-handlers.js +467 -0
- package/dist/web/public/mobile-handlers.js.br +0 -0
- package/dist/web/public/mobile-handlers.js.gz +0 -0
- package/dist/web/public/mobile.css.gz +0 -0
- package/dist/web/public/notification-manager.js +445 -0
- package/dist/web/public/notification-manager.js.br +0 -0
- package/dist/web/public/notification-manager.js.gz +0 -0
- package/dist/web/public/ralph-wizard.js +3 -3
- package/dist/web/public/ralph-wizard.js.br +0 -0
- package/dist/web/public/ralph-wizard.js.gz +0 -0
- package/dist/web/public/styles.css.gz +0 -0
- package/dist/web/public/subagent-windows.js +1115 -0
- package/dist/web/public/subagent-windows.js.br +0 -0
- package/dist/web/public/subagent-windows.js.gz +0 -0
- package/dist/web/public/sw.js.gz +0 -0
- package/dist/web/public/upload.html.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-fit.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-unicode11.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm-addon-webgl.min.js.gz +0 -0
- package/dist/web/public/vendor/xterm.css.gz +0 -0
- package/dist/web/public/vendor/xterm.min.js.gz +0 -0
- package/dist/web/public/voice-input.js +858 -0
- package/dist/web/public/voice-input.js.br +0 -0
- package/dist/web/public/voice-input.js.gz +0 -0
- package/dist/web/route-helpers.d.ts +38 -0
- package/dist/web/route-helpers.d.ts.map +1 -0
- package/dist/web/route-helpers.js +143 -0
- package/dist/web/route-helpers.js.map +1 -0
- package/dist/web/routes/case-routes.d.ts +9 -0
- package/dist/web/routes/case-routes.d.ts.map +1 -0
- package/dist/web/routes/case-routes.js +419 -0
- package/dist/web/routes/case-routes.js.map +1 -0
- package/dist/web/routes/file-routes.d.ts +8 -0
- package/dist/web/routes/file-routes.d.ts.map +1 -0
- package/dist/web/routes/file-routes.js +337 -0
- package/dist/web/routes/file-routes.js.map +1 -0
- package/dist/web/routes/hook-event-routes.d.ts +9 -0
- package/dist/web/routes/hook-event-routes.d.ts.map +1 -0
- package/dist/web/routes/hook-event-routes.js +57 -0
- package/dist/web/routes/hook-event-routes.js.map +1 -0
- package/dist/web/routes/index.d.ts +16 -0
- package/dist/web/routes/index.d.ts.map +1 -0
- package/dist/web/routes/index.js +16 -0
- package/dist/web/routes/index.js.map +1 -0
- package/dist/web/routes/mux-routes.d.ts +8 -0
- package/dist/web/routes/mux-routes.d.ts.map +1 -0
- package/dist/web/routes/mux-routes.js +32 -0
- package/dist/web/routes/mux-routes.js.map +1 -0
- package/dist/web/routes/plan-routes.d.ts +9 -0
- package/dist/web/routes/plan-routes.d.ts.map +1 -0
- package/dist/web/routes/plan-routes.js +381 -0
- package/dist/web/routes/plan-routes.js.map +1 -0
- package/dist/web/routes/push-routes.d.ts +8 -0
- package/dist/web/routes/push-routes.d.ts.map +1 -0
- package/dist/web/routes/push-routes.js +49 -0
- package/dist/web/routes/push-routes.js.map +1 -0
- package/dist/web/routes/ralph-routes.d.ts +9 -0
- package/dist/web/routes/ralph-routes.d.ts.map +1 -0
- package/dist/web/routes/ralph-routes.js +475 -0
- package/dist/web/routes/ralph-routes.js.map +1 -0
- package/dist/web/routes/respawn-routes.d.ts +8 -0
- package/dist/web/routes/respawn-routes.d.ts.map +1 -0
- package/dist/web/routes/respawn-routes.js +260 -0
- package/dist/web/routes/respawn-routes.js.map +1 -0
- package/dist/web/routes/scheduled-routes.d.ts +8 -0
- package/dist/web/routes/scheduled-routes.d.ts.map +1 -0
- package/dist/web/routes/scheduled-routes.js +51 -0
- package/dist/web/routes/scheduled-routes.js.map +1 -0
- package/dist/web/routes/session-routes.d.ts +9 -0
- package/dist/web/routes/session-routes.d.ts.map +1 -0
- package/dist/web/routes/session-routes.js +729 -0
- package/dist/web/routes/session-routes.js.map +1 -0
- package/dist/web/routes/system-routes.d.ts +9 -0
- package/dist/web/routes/system-routes.d.ts.map +1 -0
- package/dist/web/routes/system-routes.js +678 -0
- package/dist/web/routes/system-routes.js.map +1 -0
- package/dist/web/routes/team-routes.d.ts +8 -0
- package/dist/web/routes/team-routes.d.ts.map +1 -0
- package/dist/web/routes/team-routes.js +14 -0
- package/dist/web/routes/team-routes.js.map +1 -0
- package/dist/web/schemas.d.ts +43 -3
- package/dist/web/schemas.d.ts.map +1 -1
- package/dist/web/schemas.js +6 -2
- package/dist/web/schemas.js.map +1 -1
- package/dist/web/server.d.ts +10 -9
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +335 -3824
- package/dist/web/server.js.map +1 -1
- 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;
|
|
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"}
|
package/dist/ai-idle-checker.js
CHANGED
|
@@ -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:
|
|
31
|
-
maxContextChars:
|
|
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;
|
|
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;
|
|
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"}
|
package/dist/ai-plan-checker.js
CHANGED
|
@@ -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:
|
|
30
|
-
maxContextChars:
|
|
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;
|
|
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
|
|
61
|
+
private cleanup;
|
|
62
62
|
private _destroyed;
|
|
63
|
-
private
|
|
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":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"bash-tool-parser.d.ts","sourceRoot":"","sources":["../src/bash-tool-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/bash-tool-parser.js
CHANGED
|
@@ -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
|
-
//
|
|
105
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
567
|
-
return;
|
|
568
|
-
this._pendingUpdate = true;
|
|
569
|
-
this._updateTimer = setTimeout(() => {
|
|
570
|
-
this._pendingUpdate = false;
|
|
560
|
+
this._updateDeb.schedule(() => {
|
|
571
561
|
this.emitUpdate();
|
|
572
|
-
}
|
|
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
|
-
|
|
586
|
-
|
|
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;
|
|
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"}
|