mstro-app 0.5.0 → 0.5.5
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/LICENSE +129 -190
- package/PRIVACY.md +11 -11
- package/README.md +75 -28
- package/bin/commands/config.js +1 -2
- package/bin/mstro.js +55 -5
- package/bin/postinstall.js +0 -1
- package/dist/server/cli/eta-estimator.d.ts +55 -0
- package/dist/server/cli/eta-estimator.d.ts.map +1 -0
- package/dist/server/cli/eta-estimator.js +222 -0
- package/dist/server/cli/eta-estimator.js.map +1 -0
- package/dist/server/cli/headless/claude-invoker-process.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker-process.js +0 -1
- package/dist/server/cli/headless/claude-invoker-process.js.map +1 -1
- package/dist/server/cli/headless/claude-invoker-stall.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker-stall.js +0 -1
- package/dist/server/cli/headless/claude-invoker-stall.js.map +1 -1
- package/dist/server/cli/headless/claude-invoker-stream.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker-stream.js +0 -1
- package/dist/server/cli/headless/claude-invoker-stream.js.map +1 -1
- package/dist/server/cli/headless/claude-invoker-tools.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker-tools.js +0 -1
- package/dist/server/cli/headless/claude-invoker-tools.js.map +1 -1
- package/dist/server/cli/headless/claude-invoker.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker.js +0 -1
- package/dist/server/cli/headless/claude-invoker.js.map +1 -1
- package/dist/server/cli/headless/haiku-assessments.d.ts.map +1 -1
- package/dist/server/cli/headless/haiku-assessments.js +0 -1
- package/dist/server/cli/headless/haiku-assessments.js.map +1 -1
- package/dist/server/cli/headless/headless-logger.d.ts.map +1 -1
- package/dist/server/cli/headless/headless-logger.js +0 -1
- package/dist/server/cli/headless/headless-logger.js.map +1 -1
- package/dist/server/cli/headless/index.d.ts.map +1 -1
- package/dist/server/cli/headless/index.js +0 -1
- package/dist/server/cli/headless/index.js.map +1 -1
- package/dist/server/cli/headless/native-timeout-detector.d.ts.map +1 -1
- package/dist/server/cli/headless/native-timeout-detector.js +0 -1
- package/dist/server/cli/headless/native-timeout-detector.js.map +1 -1
- package/dist/server/cli/headless/output-utils.d.ts.map +1 -1
- package/dist/server/cli/headless/output-utils.js +0 -1
- package/dist/server/cli/headless/output-utils.js.map +1 -1
- package/dist/server/cli/headless/prompt-utils.d.ts.map +1 -1
- package/dist/server/cli/headless/prompt-utils.js +0 -1
- package/dist/server/cli/headless/prompt-utils.js.map +1 -1
- package/dist/server/cli/headless/resilient-runner.d.ts.map +1 -1
- package/dist/server/cli/headless/resilient-runner.js +0 -1
- package/dist/server/cli/headless/resilient-runner.js.map +1 -1
- package/dist/server/cli/headless/retry-strategies.d.ts.map +1 -1
- package/dist/server/cli/headless/retry-strategies.js +0 -1
- package/dist/server/cli/headless/retry-strategies.js.map +1 -1
- package/dist/server/cli/headless/runner.d.ts.map +1 -1
- package/dist/server/cli/headless/runner.js +0 -1
- package/dist/server/cli/headless/runner.js.map +1 -1
- package/dist/server/cli/headless/stall-assessor.d.ts +50 -0
- package/dist/server/cli/headless/stall-assessor.d.ts.map +1 -1
- package/dist/server/cli/headless/stall-assessor.js +64 -10
- package/dist/server/cli/headless/stall-assessor.js.map +1 -1
- package/dist/server/cli/headless/tool-watchdog.d.ts +21 -0
- package/dist/server/cli/headless/tool-watchdog.d.ts.map +1 -1
- package/dist/server/cli/headless/tool-watchdog.js +19 -13
- package/dist/server/cli/headless/tool-watchdog.js.map +1 -1
- package/dist/server/cli/headless/types.d.ts.map +1 -1
- package/dist/server/cli/headless/types.js +0 -1
- package/dist/server/cli/headless/types.js.map +1 -1
- package/dist/server/cli/improvisation-attachments.d.ts.map +1 -1
- package/dist/server/cli/improvisation-attachments.js +0 -1
- package/dist/server/cli/improvisation-attachments.js.map +1 -1
- package/dist/server/cli/improvisation-history-store.d.ts.map +1 -1
- package/dist/server/cli/improvisation-history-store.js +5 -2
- package/dist/server/cli/improvisation-history-store.js.map +1 -1
- package/dist/server/cli/improvisation-movements.d.ts.map +1 -1
- package/dist/server/cli/improvisation-movements.js +0 -1
- package/dist/server/cli/improvisation-movements.js.map +1 -1
- package/dist/server/cli/improvisation-output-queue.d.ts +5 -1
- package/dist/server/cli/improvisation-output-queue.d.ts.map +1 -1
- package/dist/server/cli/improvisation-output-queue.js +30 -8
- package/dist/server/cli/improvisation-output-queue.js.map +1 -1
- package/dist/server/cli/improvisation-retry.d.ts.map +1 -1
- package/dist/server/cli/improvisation-retry.js +0 -1
- package/dist/server/cli/improvisation-retry.js.map +1 -1
- package/dist/server/cli/improvisation-session-manager.d.ts +29 -0
- package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
- package/dist/server/cli/improvisation-session-manager.js +50 -2
- package/dist/server/cli/improvisation-session-manager.js.map +1 -1
- package/dist/server/cli/improvisation-types.d.ts +2 -0
- package/dist/server/cli/improvisation-types.d.ts.map +1 -1
- package/dist/server/cli/improvisation-types.js +0 -1
- package/dist/server/cli/improvisation-types.js.map +1 -1
- package/dist/server/cli/retry/retry-best-result.d.ts.map +1 -1
- package/dist/server/cli/retry/retry-best-result.js +0 -1
- package/dist/server/cli/retry/retry-best-result.js.map +1 -1
- package/dist/server/cli/retry/retry-context-loss.d.ts.map +1 -1
- package/dist/server/cli/retry/retry-context-loss.js +0 -1
- package/dist/server/cli/retry/retry-context-loss.js.map +1 -1
- package/dist/server/cli/retry/retry-premature-completion.d.ts.map +1 -1
- package/dist/server/cli/retry/retry-premature-completion.js +1 -2
- package/dist/server/cli/retry/retry-premature-completion.js.map +1 -1
- package/dist/server/cli/retry/retry-recovery-strategies.d.ts.map +1 -1
- package/dist/server/cli/retry/retry-recovery-strategies.js +0 -1
- package/dist/server/cli/retry/retry-recovery-strategies.js.map +1 -1
- package/dist/server/cli/retry/retry-resume-strategy.d.ts.map +1 -1
- package/dist/server/cli/retry/retry-resume-strategy.js +0 -1
- package/dist/server/cli/retry/retry-resume-strategy.js.map +1 -1
- package/dist/server/cli/retry/retry-runner-factory.d.ts.map +1 -1
- package/dist/server/cli/retry/retry-runner-factory.js +0 -1
- package/dist/server/cli/retry/retry-runner-factory.js.map +1 -1
- package/dist/server/cli/retry/retry-tool-results.d.ts.map +1 -1
- package/dist/server/cli/retry/retry-tool-results.js +0 -1
- package/dist/server/cli/retry/retry-tool-results.js.map +1 -1
- package/dist/server/cli/retry/retry-types.d.ts.map +1 -1
- package/dist/server/cli/retry/retry-types.js +0 -1
- package/dist/server/cli/retry/retry-types.js.map +1 -1
- package/dist/server/engines/EngineEvent.d.ts +126 -0
- package/dist/server/engines/EngineEvent.d.ts.map +1 -0
- package/dist/server/engines/EngineEvent.js +11 -0
- package/dist/server/engines/EngineEvent.js.map +1 -0
- package/dist/server/engines/claude/ClaudeCodeEngine.d.ts +47 -0
- package/dist/server/engines/claude/ClaudeCodeEngine.d.ts.map +1 -0
- package/dist/server/engines/claude/ClaudeCodeEngine.js +338 -0
- package/dist/server/engines/claude/ClaudeCodeEngine.js.map +1 -0
- package/dist/server/engines/factory.d.ts +21 -0
- package/dist/server/engines/factory.d.ts.map +1 -0
- package/dist/server/engines/factory.js +152 -0
- package/dist/server/engines/factory.js.map +1 -0
- package/dist/server/engines/opencode/OpenCodeEngine.d.ts +148 -0
- package/dist/server/engines/opencode/OpenCodeEngine.d.ts.map +1 -0
- package/dist/server/engines/opencode/OpenCodeEngine.js +630 -0
- package/dist/server/engines/opencode/OpenCodeEngine.js.map +1 -0
- package/dist/server/engines/opencode/OpenCodeServerManager.d.ts +172 -0
- package/dist/server/engines/opencode/OpenCodeServerManager.d.ts.map +1 -0
- package/dist/server/engines/opencode/OpenCodeServerManager.js +390 -0
- package/dist/server/engines/opencode/OpenCodeServerManager.js.map +1 -0
- package/dist/server/engines/opencode/model-catalog.d.ts +94 -0
- package/dist/server/engines/opencode/model-catalog.d.ts.map +1 -0
- package/dist/server/engines/opencode/model-catalog.js +141 -0
- package/dist/server/engines/opencode/model-catalog.js.map +1 -0
- package/dist/server/engines/types.d.ts +146 -0
- package/dist/server/engines/types.d.ts.map +1 -0
- package/dist/server/engines/types.js +4 -0
- package/dist/server/engines/types.js.map +1 -0
- package/dist/server/index.js +1 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/mcp/bouncer-cli.js +0 -1
- package/dist/server/mcp/bouncer-cli.js.map +1 -1
- package/dist/server/mcp/bouncer-haiku.d.ts +17 -4
- package/dist/server/mcp/bouncer-haiku.d.ts.map +1 -1
- package/dist/server/mcp/bouncer-haiku.js +8 -125
- package/dist/server/mcp/bouncer-haiku.js.map +1 -1
- package/dist/server/mcp/bouncer-integration.d.ts +45 -0
- package/dist/server/mcp/bouncer-integration.d.ts.map +1 -1
- package/dist/server/mcp/bouncer-integration.js +69 -6
- package/dist/server/mcp/bouncer-integration.js.map +1 -1
- package/dist/server/mcp/classifier/BouncerClassifier.d.ts +34 -0
- package/dist/server/mcp/classifier/BouncerClassifier.d.ts.map +1 -0
- package/dist/server/mcp/classifier/BouncerClassifier.js +4 -0
- package/dist/server/mcp/classifier/BouncerClassifier.js.map +1 -0
- package/dist/server/mcp/classifier/ClaudeBouncerClassifier.d.ts +17 -0
- package/dist/server/mcp/classifier/ClaudeBouncerClassifier.d.ts.map +1 -0
- package/dist/server/mcp/classifier/ClaudeBouncerClassifier.js +142 -0
- package/dist/server/mcp/classifier/ClaudeBouncerClassifier.js.map +1 -0
- package/dist/server/mcp/classifier/OpenCodeBouncerClassifier.d.ts +68 -0
- package/dist/server/mcp/classifier/OpenCodeBouncerClassifier.d.ts.map +1 -0
- package/dist/server/mcp/classifier/OpenCodeBouncerClassifier.js +182 -0
- package/dist/server/mcp/classifier/OpenCodeBouncerClassifier.js.map +1 -0
- package/dist/server/mcp/classifier/factory.d.ts +70 -0
- package/dist/server/mcp/classifier/factory.d.ts.map +1 -0
- package/dist/server/mcp/classifier/factory.js +155 -0
- package/dist/server/mcp/classifier/factory.js.map +1 -0
- package/dist/server/mcp/security-analysis.d.ts.map +1 -1
- package/dist/server/mcp/security-analysis.js +0 -1
- package/dist/server/mcp/security-analysis.js.map +1 -1
- package/dist/server/mcp/security-audit.d.ts.map +1 -1
- package/dist/server/mcp/security-audit.js +0 -1
- package/dist/server/mcp/security-audit.js.map +1 -1
- package/dist/server/mcp/security-patterns.d.ts.map +1 -1
- package/dist/server/mcp/security-patterns.js +0 -1
- package/dist/server/mcp/security-patterns.js.map +1 -1
- package/dist/server/mcp/server.js +0 -1
- package/dist/server/mcp/server.js.map +1 -1
- package/dist/server/routes/files.d.ts.map +1 -1
- package/dist/server/routes/files.js +0 -1
- package/dist/server/routes/files.js.map +1 -1
- package/dist/server/routes/improvise.d.ts.map +1 -1
- package/dist/server/routes/improvise.js +0 -1
- package/dist/server/routes/improvise.js.map +1 -1
- package/dist/server/routes/index.d.ts.map +1 -1
- package/dist/server/routes/index.js +0 -1
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/instances.d.ts.map +1 -1
- package/dist/server/routes/instances.js +0 -1
- package/dist/server/routes/instances.js.map +1 -1
- package/dist/server/routes/notifications.d.ts.map +1 -1
- package/dist/server/routes/notifications.js +0 -1
- package/dist/server/routes/notifications.js.map +1 -1
- package/dist/server/server-setup.d.ts.map +1 -1
- package/dist/server/server-setup.js +0 -1
- package/dist/server/server-setup.js.map +1 -1
- package/dist/server/services/analytics.d.ts.map +1 -1
- package/dist/server/services/analytics.js +0 -1
- package/dist/server/services/analytics.js.map +1 -1
- package/dist/server/services/auth.d.ts.map +1 -1
- package/dist/server/services/auth.js +0 -1
- package/dist/server/services/auth.js.map +1 -1
- package/dist/server/services/client-id.d.ts.map +1 -1
- package/dist/server/services/client-id.js +0 -1
- package/dist/server/services/client-id.js.map +1 -1
- package/dist/server/services/file-explorer-ops.d.ts.map +1 -1
- package/dist/server/services/file-explorer-ops.js +0 -1
- package/dist/server/services/file-explorer-ops.js.map +1 -1
- package/dist/server/services/files.d.ts.map +1 -1
- package/dist/server/services/files.js +0 -1
- package/dist/server/services/files.js.map +1 -1
- package/dist/server/services/instances.d.ts.map +1 -1
- package/dist/server/services/instances.js +0 -1
- package/dist/server/services/instances.js.map +1 -1
- package/dist/server/services/pathUtils.d.ts.map +1 -1
- package/dist/server/services/pathUtils.js +0 -1
- package/dist/server/services/pathUtils.js.map +1 -1
- package/dist/server/services/plan/agent-loader.d.ts.map +1 -1
- package/dist/server/services/plan/agent-loader.js +0 -1
- package/dist/server/services/plan/agent-loader.js.map +1 -1
- package/dist/server/services/plan/agent-resolver.d.ts +26 -0
- package/dist/server/services/plan/agent-resolver.d.ts.map +1 -0
- package/dist/server/services/plan/agent-resolver.js +102 -0
- package/dist/server/services/plan/agent-resolver.js.map +1 -0
- package/dist/server/services/plan/board-config.d.ts.map +1 -1
- package/dist/server/services/plan/board-config.js +0 -1
- package/dist/server/services/plan/board-config.js.map +1 -1
- package/dist/server/services/plan/composer.d.ts.map +1 -1
- package/dist/server/services/plan/composer.js +59 -12
- package/dist/server/services/plan/composer.js.map +1 -1
- package/dist/server/services/plan/config-installer.d.ts.map +1 -1
- package/dist/server/services/plan/config-installer.js +0 -1
- package/dist/server/services/plan/config-installer.js.map +1 -1
- package/dist/server/services/plan/dependency-resolver.d.ts.map +1 -1
- package/dist/server/services/plan/dependency-resolver.js +0 -1
- package/dist/server/services/plan/dependency-resolver.js.map +1 -1
- package/dist/server/services/plan/executor.d.ts.map +1 -1
- package/dist/server/services/plan/executor.js +48 -4
- package/dist/server/services/plan/executor.js.map +1 -1
- package/dist/server/services/plan/front-matter.d.ts.map +1 -1
- package/dist/server/services/plan/front-matter.js +0 -1
- package/dist/server/services/plan/front-matter.js.map +1 -1
- package/dist/server/services/plan/issue-classification.d.ts.map +1 -1
- package/dist/server/services/plan/issue-classification.js +0 -1
- package/dist/server/services/plan/issue-classification.js.map +1 -1
- package/dist/server/services/plan/issue-loader.d.ts.map +1 -1
- package/dist/server/services/plan/issue-loader.js +0 -1
- package/dist/server/services/plan/issue-loader.js.map +1 -1
- package/dist/server/services/plan/issue-prompt-builder.d.ts.map +1 -1
- package/dist/server/services/plan/issue-prompt-builder.js +33 -2
- package/dist/server/services/plan/issue-prompt-builder.js.map +1 -1
- package/dist/server/services/plan/issue-retry.d.ts +3 -1
- package/dist/server/services/plan/issue-retry.d.ts.map +1 -1
- package/dist/server/services/plan/issue-retry.js +2 -1
- package/dist/server/services/plan/issue-retry.js.map +1 -1
- package/dist/server/services/plan/issue-writer.d.ts.map +1 -1
- package/dist/server/services/plan/issue-writer.js +0 -1
- package/dist/server/services/plan/issue-writer.js.map +1 -1
- package/dist/server/services/plan/output-manager.d.ts.map +1 -1
- package/dist/server/services/plan/output-manager.js +0 -1
- package/dist/server/services/plan/output-manager.js.map +1 -1
- package/dist/server/services/plan/parser-core.d.ts.map +1 -1
- package/dist/server/services/plan/parser-core.js +1 -1
- package/dist/server/services/plan/parser-core.js.map +1 -1
- package/dist/server/services/plan/parser-migration.d.ts.map +1 -1
- package/dist/server/services/plan/parser-migration.js +0 -1
- package/dist/server/services/plan/parser-migration.js.map +1 -1
- package/dist/server/services/plan/parser.d.ts.map +1 -1
- package/dist/server/services/plan/parser.js +0 -1
- package/dist/server/services/plan/parser.js.map +1 -1
- package/dist/server/services/plan/progress-log.d.ts.map +1 -1
- package/dist/server/services/plan/progress-log.js +0 -1
- package/dist/server/services/plan/progress-log.js.map +1 -1
- package/dist/server/services/plan/prompt-builder.d.ts.map +1 -1
- package/dist/server/services/plan/prompt-builder.js +0 -1
- package/dist/server/services/plan/prompt-builder.js.map +1 -1
- package/dist/server/services/plan/readiness-planner.d.ts.map +1 -1
- package/dist/server/services/plan/readiness-planner.js +0 -1
- package/dist/server/services/plan/readiness-planner.js.map +1 -1
- package/dist/server/services/plan/review-gate.d.ts.map +1 -1
- package/dist/server/services/plan/review-gate.js +0 -1
- package/dist/server/services/plan/review-gate.js.map +1 -1
- package/dist/server/services/plan/state-reconciler.d.ts.map +1 -1
- package/dist/server/services/plan/state-reconciler.js +0 -1
- package/dist/server/services/plan/state-reconciler.js.map +1 -1
- package/dist/server/services/plan/types.d.ts +1 -0
- package/dist/server/services/plan/types.d.ts.map +1 -1
- package/dist/server/services/plan/types.js +0 -1
- package/dist/server/services/plan/types.js.map +1 -1
- package/dist/server/services/plan/watcher.d.ts.map +1 -1
- package/dist/server/services/plan/watcher.js +0 -1
- package/dist/server/services/plan/watcher.js.map +1 -1
- package/dist/server/services/platform-credentials.d.ts.map +1 -1
- package/dist/server/services/platform-credentials.js +0 -1
- package/dist/server/services/platform-credentials.js.map +1 -1
- package/dist/server/services/platform-token-lifecycle.d.ts +70 -0
- package/dist/server/services/platform-token-lifecycle.d.ts.map +1 -0
- package/dist/server/services/platform-token-lifecycle.js +156 -0
- package/dist/server/services/platform-token-lifecycle.js.map +1 -0
- package/dist/server/services/platform.d.ts +21 -56
- package/dist/server/services/platform.d.ts.map +1 -1
- package/dist/server/services/platform.js +98 -142
- package/dist/server/services/platform.js.map +1 -1
- package/dist/server/services/sentry.d.ts.map +1 -1
- package/dist/server/services/sentry.js +0 -1
- package/dist/server/services/sentry.js.map +1 -1
- package/dist/server/services/settings.d.ts +76 -2
- package/dist/server/services/settings.d.ts.map +1 -1
- package/dist/server/services/settings.js +127 -5
- package/dist/server/services/settings.js.map +1 -1
- package/dist/server/services/terminal/pty-manager.d.ts.map +1 -1
- package/dist/server/services/terminal/pty-manager.js +0 -1
- package/dist/server/services/terminal/pty-manager.js.map +1 -1
- package/dist/server/services/terminal/pty-utils.d.ts.map +1 -1
- package/dist/server/services/terminal/pty-utils.js +0 -1
- package/dist/server/services/terminal/pty-utils.js.map +1 -1
- package/dist/server/services/websocket/autocomplete.d.ts.map +1 -1
- package/dist/server/services/websocket/autocomplete.js +0 -1
- package/dist/server/services/websocket/autocomplete.js.map +1 -1
- package/dist/server/services/websocket/file-definition-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/file-definition-handlers.js +0 -1
- package/dist/server/services/websocket/file-definition-handlers.js.map +1 -1
- package/dist/server/services/websocket/file-download-handler.d.ts.map +1 -1
- package/dist/server/services/websocket/file-download-handler.js +0 -1
- package/dist/server/services/websocket/file-download-handler.js.map +1 -1
- package/dist/server/services/websocket/file-explorer-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/file-explorer-handlers.js +0 -1
- package/dist/server/services/websocket/file-explorer-handlers.js.map +1 -1
- package/dist/server/services/websocket/file-search-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/file-search-handlers.js +0 -1
- package/dist/server/services/websocket/file-search-handlers.js.map +1 -1
- package/dist/server/services/websocket/file-upload-handler.d.ts +2 -3
- package/dist/server/services/websocket/file-upload-handler.d.ts.map +1 -1
- package/dist/server/services/websocket/file-upload-handler.js +4 -7
- package/dist/server/services/websocket/file-upload-handler.js.map +1 -1
- package/dist/server/services/websocket/file-utils.d.ts.map +1 -1
- package/dist/server/services/websocket/file-utils.js +0 -1
- package/dist/server/services/websocket/file-utils.js.map +1 -1
- package/dist/server/services/websocket/git-branch-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-branch-handlers.js +19 -7
- package/dist/server/services/websocket/git-branch-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-diff-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-diff-handlers.js +0 -1
- package/dist/server/services/websocket/git-diff-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-handlers.js +58 -6
- package/dist/server/services/websocket/git-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-head-watcher.d.ts.map +1 -1
- package/dist/server/services/websocket/git-head-watcher.js +0 -1
- package/dist/server/services/websocket/git-head-watcher.js.map +1 -1
- package/dist/server/services/websocket/git-log-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-log-handlers.js +0 -1
- package/dist/server/services/websocket/git-log-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-pr-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-pr-handlers.js +0 -1
- package/dist/server/services/websocket/git-pr-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-tag-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-tag-handlers.js +0 -1
- package/dist/server/services/websocket/git-tag-handlers.js.map +1 -1
- package/dist/server/services/websocket/git-utils.d.ts +18 -3
- package/dist/server/services/websocket/git-utils.d.ts.map +1 -1
- package/dist/server/services/websocket/git-utils.js +58 -8
- package/dist/server/services/websocket/git-utils.js.map +1 -1
- package/dist/server/services/websocket/git-worktree-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/git-worktree-handlers.js +230 -14
- package/dist/server/services/websocket/git-worktree-handlers.js.map +1 -1
- package/dist/server/services/websocket/handler-context.d.ts.map +1 -1
- package/dist/server/services/websocket/handler-context.js +0 -1
- package/dist/server/services/websocket/handler-context.js.map +1 -1
- package/dist/server/services/websocket/handler.d.ts +17 -1
- package/dist/server/services/websocket/handler.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.js +57 -6
- package/dist/server/services/websocket/handler.js.map +1 -1
- package/dist/server/services/websocket/index.d.ts.map +1 -1
- package/dist/server/services/websocket/index.js +0 -1
- package/dist/server/services/websocket/index.js.map +1 -1
- package/dist/server/services/websocket/msg-id-tracker.d.ts.map +1 -1
- package/dist/server/services/websocket/msg-id-tracker.js +0 -1
- package/dist/server/services/websocket/msg-id-tracker.js.map +1 -1
- package/dist/server/services/websocket/plan-board-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-board-handlers.js +0 -1
- package/dist/server/services/websocket/plan-board-handlers.js.map +1 -1
- package/dist/server/services/websocket/plan-execution-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-execution-handlers.js +6 -2
- package/dist/server/services/websocket/plan-execution-handlers.js.map +1 -1
- package/dist/server/services/websocket/plan-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-handlers.js +0 -1
- package/dist/server/services/websocket/plan-handlers.js.map +1 -1
- package/dist/server/services/websocket/plan-helpers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-helpers.js +0 -1
- package/dist/server/services/websocket/plan-helpers.js.map +1 -1
- package/dist/server/services/websocket/plan-issue-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-issue-handlers.js +0 -1
- package/dist/server/services/websocket/plan-issue-handlers.js.map +1 -1
- package/dist/server/services/websocket/plan-sprint-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/plan-sprint-handlers.js +0 -1
- package/dist/server/services/websocket/plan-sprint-handlers.js.map +1 -1
- package/dist/server/services/websocket/quality-complexity.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-complexity.js +78 -27
- package/dist/server/services/websocket/quality-complexity.js.map +1 -1
- package/dist/server/services/websocket/quality-eta.d.ts +47 -0
- package/dist/server/services/websocket/quality-eta.d.ts.map +1 -0
- package/dist/server/services/websocket/quality-eta.js +110 -0
- package/dist/server/services/websocket/quality-eta.js.map +1 -0
- package/dist/server/services/websocket/quality-grading.d.ts +69 -0
- package/dist/server/services/websocket/quality-grading.d.ts.map +1 -0
- package/dist/server/services/websocket/quality-grading.js +650 -0
- package/dist/server/services/websocket/quality-grading.js.map +1 -0
- package/dist/server/services/websocket/quality-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-handlers.js +145 -8
- package/dist/server/services/websocket/quality-handlers.js.map +1 -1
- package/dist/server/services/websocket/quality-linting.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-linting.js +0 -1
- package/dist/server/services/websocket/quality-linting.js.map +1 -1
- package/dist/server/services/websocket/quality-operations.d.ts +34 -0
- package/dist/server/services/websocket/quality-operations.d.ts.map +1 -0
- package/dist/server/services/websocket/quality-operations.js +47 -0
- package/dist/server/services/websocket/quality-operations.js.map +1 -0
- package/dist/server/services/websocket/quality-persistence.d.ts +23 -0
- package/dist/server/services/websocket/quality-persistence.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-persistence.js +38 -12
- package/dist/server/services/websocket/quality-persistence.js.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.d.ts +1 -1
- package/dist/server/services/websocket/quality-review-agent.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-review-agent.js +105 -57
- package/dist/server/services/websocket/quality-review-agent.js.map +1 -1
- package/dist/server/services/websocket/quality-service.d.ts +12 -2
- package/dist/server/services/websocket/quality-service.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-service.js +387 -72
- package/dist/server/services/websocket/quality-service.js.map +1 -1
- package/dist/server/services/websocket/quality-tools.d.ts +22 -1
- package/dist/server/services/websocket/quality-tools.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-tools.js +55 -3
- package/dist/server/services/websocket/quality-tools.js.map +1 -1
- package/dist/server/services/websocket/quality-types.d.ts +52 -3
- package/dist/server/services/websocket/quality-types.d.ts.map +1 -1
- package/dist/server/services/websocket/quality-types.js +1 -2
- package/dist/server/services/websocket/quality-types.js.map +1 -1
- package/dist/server/services/websocket/session-handlers.d.ts +3 -1
- package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/session-handlers.js +57 -10
- package/dist/server/services/websocket/session-handlers.js.map +1 -1
- package/dist/server/services/websocket/session-history.d.ts.map +1 -1
- package/dist/server/services/websocket/session-history.js +3 -1
- package/dist/server/services/websocket/session-history.js.map +1 -1
- package/dist/server/services/websocket/session-initialization.d.ts.map +1 -1
- package/dist/server/services/websocket/session-initialization.js +158 -43
- package/dist/server/services/websocket/session-initialization.js.map +1 -1
- package/dist/server/services/websocket/session-registry.d.ts +25 -0
- package/dist/server/services/websocket/session-registry.d.ts.map +1 -1
- package/dist/server/services/websocket/session-registry.js +19 -1
- package/dist/server/services/websocket/session-registry.js.map +1 -1
- package/dist/server/services/websocket/settings-handlers.d.ts +1 -1
- package/dist/server/services/websocket/settings-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/settings-handlers.js +35 -5
- package/dist/server/services/websocket/settings-handlers.js.map +1 -1
- package/dist/server/services/websocket/skill-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/skill-handlers.js +0 -1
- package/dist/server/services/websocket/skill-handlers.js.map +1 -1
- package/dist/server/services/websocket/skill-watcher.d.ts.map +1 -1
- package/dist/server/services/websocket/skill-watcher.js +0 -1
- package/dist/server/services/websocket/skill-watcher.js.map +1 -1
- package/dist/server/services/websocket/tab-broadcast.d.ts +7 -2
- package/dist/server/services/websocket/tab-broadcast.d.ts.map +1 -1
- package/dist/server/services/websocket/tab-broadcast.js +10 -3
- package/dist/server/services/websocket/tab-broadcast.js.map +1 -1
- package/dist/server/services/websocket/tab-event-buffer.d.ts +97 -8
- package/dist/server/services/websocket/tab-event-buffer.d.ts.map +1 -1
- package/dist/server/services/websocket/tab-event-buffer.js +138 -13
- package/dist/server/services/websocket/tab-event-buffer.js.map +1 -1
- package/dist/server/services/websocket/tab-event-replay.d.ts +29 -13
- package/dist/server/services/websocket/tab-event-replay.d.ts.map +1 -1
- package/dist/server/services/websocket/tab-event-replay.js +55 -3
- package/dist/server/services/websocket/tab-event-replay.js.map +1 -1
- package/dist/server/services/websocket/tab-handlers.d.ts +9 -1
- package/dist/server/services/websocket/tab-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/tab-handlers.js +47 -3
- package/dist/server/services/websocket/tab-handlers.js.map +1 -1
- package/dist/server/services/websocket/terminal-handlers.d.ts.map +1 -1
- package/dist/server/services/websocket/terminal-handlers.js +39 -4
- package/dist/server/services/websocket/terminal-handlers.js.map +1 -1
- package/dist/server/services/websocket/types.d.ts +30 -7
- package/dist/server/services/websocket/types.d.ts.map +1 -1
- package/dist/server/services/websocket/types.js +12 -7
- package/dist/server/services/websocket/types.js.map +1 -1
- package/dist/server/utils/agent-manager.d.ts.map +1 -1
- package/dist/server/utils/agent-manager.js +0 -1
- package/dist/server/utils/agent-manager.js.map +1 -1
- package/dist/server/utils/paths.d.ts.map +1 -1
- package/dist/server/utils/paths.js +0 -1
- package/dist/server/utils/paths.js.map +1 -1
- package/dist/server/utils/port-manager.d.ts.map +1 -1
- package/dist/server/utils/port-manager.js +0 -1
- package/dist/server/utils/port-manager.js.map +1 -1
- package/dist/server/utils/port.d.ts.map +1 -1
- package/dist/server/utils/port.js +0 -1
- package/dist/server/utils/port.js.map +1 -1
- package/package.json +6 -4
- package/server/cli/eta-estimator.ts +249 -0
- package/server/cli/headless/claude-invoker-process.ts +0 -1
- package/server/cli/headless/claude-invoker-stall.ts +0 -1
- package/server/cli/headless/claude-invoker-stream.ts +0 -1
- package/server/cli/headless/claude-invoker-tools.ts +0 -1
- package/server/cli/headless/claude-invoker.ts +0 -1
- package/server/cli/headless/haiku-assessments.ts +0 -1
- package/server/cli/headless/headless-logger.ts +0 -1
- package/server/cli/headless/index.ts +0 -1
- package/server/cli/headless/native-timeout-detector.ts +0 -1
- package/server/cli/headless/output-utils.ts +0 -1
- package/server/cli/headless/prompt-utils.ts +0 -1
- package/server/cli/headless/resilient-runner.ts +0 -1
- package/server/cli/headless/retry-strategies.ts +0 -1
- package/server/cli/headless/runner.ts +0 -1
- package/server/cli/headless/stall-assessor.ts +93 -1
- package/server/cli/headless/tool-watchdog.ts +21 -1
- package/server/cli/headless/types.ts +0 -1
- package/server/cli/improvisation-attachments.ts +0 -1
- package/server/cli/improvisation-history-store.ts +4 -2
- package/server/cli/improvisation-movements.ts +0 -1
- package/server/cli/improvisation-output-queue.ts +29 -8
- package/server/cli/improvisation-retry.ts +0 -1
- package/server/cli/improvisation-session-manager.ts +54 -2
- package/server/cli/improvisation-types.ts +2 -1
- package/server/cli/retry/retry-best-result.ts +0 -1
- package/server/cli/retry/retry-context-loss.ts +0 -1
- package/server/cli/retry/retry-premature-completion.ts +1 -2
- package/server/cli/retry/retry-recovery-strategies.ts +0 -1
- package/server/cli/retry/retry-resume-strategy.ts +0 -1
- package/server/cli/retry/retry-runner-factory.ts +0 -1
- package/server/cli/retry/retry-tool-results.ts +0 -1
- package/server/cli/retry/retry-types.ts +0 -1
- package/server/engines/EngineEvent.ts +156 -0
- package/server/engines/claude/ClaudeCodeEngine.ts +404 -0
- package/server/engines/factory.ts +176 -0
- package/server/engines/opencode/OpenCodeEngine.ts +786 -0
- package/server/engines/opencode/OpenCodeServerManager.ts +577 -0
- package/server/engines/opencode/model-catalog.ts +217 -0
- package/server/engines/types.ts +173 -0
- package/server/index.ts +1 -2
- package/server/mcp/bouncer-cli.ts +0 -1
- package/server/mcp/bouncer-haiku.ts +21 -146
- package/server/mcp/bouncer-integration.ts +107 -6
- package/server/mcp/classifier/BouncerClassifier.ts +40 -0
- package/server/mcp/classifier/ClaudeBouncerClassifier.ts +189 -0
- package/server/mcp/classifier/OpenCodeBouncerClassifier.ts +305 -0
- package/server/mcp/classifier/factory.ts +195 -0
- package/server/mcp/security-analysis.ts +0 -1
- package/server/mcp/security-audit.ts +0 -1
- package/server/mcp/security-patterns.ts +0 -1
- package/server/mcp/server.ts +0 -1
- package/server/routes/files.ts +0 -1
- package/server/routes/improvise.ts +0 -1
- package/server/routes/index.ts +0 -1
- package/server/routes/instances.ts +0 -1
- package/server/routes/notifications.ts +0 -1
- package/server/server-setup.ts +0 -1
- package/server/services/analytics.ts +0 -1
- package/server/services/auth.ts +0 -1
- package/server/services/client-id.ts +0 -1
- package/server/services/file-explorer-ops.ts +0 -1
- package/server/services/files.ts +0 -1
- package/server/services/instances.ts +0 -1
- package/server/services/pathUtils.ts +0 -1
- package/server/services/plan/agent-loader.ts +0 -1
- package/server/services/plan/agent-resolver.ts +115 -0
- package/server/services/plan/agents/code-review.md +43 -11
- package/server/services/plan/board-config.ts +0 -1
- package/server/services/plan/composer.ts +63 -12
- package/server/services/plan/config-installer.ts +0 -1
- package/server/services/plan/dependency-resolver.ts +0 -1
- package/server/services/plan/executor.ts +48 -4
- package/server/services/plan/front-matter.ts +0 -1
- package/server/services/plan/issue-classification.ts +0 -1
- package/server/services/plan/issue-loader.ts +0 -1
- package/server/services/plan/issue-prompt-builder.ts +39 -2
- package/server/services/plan/issue-retry.ts +5 -2
- package/server/services/plan/issue-writer.ts +0 -1
- package/server/services/plan/output-manager.ts +0 -1
- package/server/services/plan/parser-core.ts +1 -1
- package/server/services/plan/parser-migration.ts +0 -1
- package/server/services/plan/parser.ts +0 -1
- package/server/services/plan/progress-log.ts +0 -1
- package/server/services/plan/prompt-builder.ts +0 -1
- package/server/services/plan/readiness-planner.ts +0 -1
- package/server/services/plan/review-gate.ts +0 -1
- package/server/services/plan/state-reconciler.ts +0 -1
- package/server/services/plan/types.ts +4 -1
- package/server/services/plan/watcher.ts +0 -1
- package/server/services/platform-credentials.ts +0 -1
- package/server/services/platform-token-lifecycle.ts +171 -0
- package/server/services/platform.ts +106 -148
- package/server/services/sentry.ts +0 -1
- package/server/services/settings.ts +161 -5
- package/server/services/terminal/pty-manager.ts +0 -1
- package/server/services/terminal/pty-utils.ts +0 -1
- package/server/services/websocket/autocomplete.ts +0 -1
- package/server/services/websocket/file-definition-handlers.ts +0 -1
- package/server/services/websocket/file-download-handler.ts +0 -1
- package/server/services/websocket/file-explorer-handlers.ts +0 -1
- package/server/services/websocket/file-search-handlers.ts +0 -1
- package/server/services/websocket/file-upload-handler.ts +6 -5
- package/server/services/websocket/file-utils.ts +0 -1
- package/server/services/websocket/git-branch-handlers.ts +20 -7
- package/server/services/websocket/git-diff-handlers.ts +0 -1
- package/server/services/websocket/git-handlers.ts +66 -10
- package/server/services/websocket/git-head-watcher.ts +0 -1
- package/server/services/websocket/git-log-handlers.ts +0 -1
- package/server/services/websocket/git-pr-handlers.ts +0 -1
- package/server/services/websocket/git-tag-handlers.ts +0 -1
- package/server/services/websocket/git-utils.ts +69 -9
- package/server/services/websocket/git-worktree-handlers.ts +260 -17
- package/server/services/websocket/handler-context.ts +0 -1
- package/server/services/websocket/handler.ts +62 -6
- package/server/services/websocket/index.ts +0 -1
- package/server/services/websocket/msg-id-tracker.ts +0 -1
- package/server/services/websocket/plan-board-handlers.ts +0 -1
- package/server/services/websocket/plan-execution-handlers.ts +6 -2
- package/server/services/websocket/plan-handlers.ts +0 -1
- package/server/services/websocket/plan-helpers.ts +0 -1
- package/server/services/websocket/plan-issue-handlers.ts +0 -1
- package/server/services/websocket/plan-sprint-handlers.ts +0 -1
- package/server/services/websocket/quality-complexity.ts +80 -27
- package/server/services/websocket/quality-eta.ts +155 -0
- package/server/services/websocket/quality-grading.ts +834 -0
- package/server/services/websocket/quality-handlers.ts +153 -8
- package/server/services/websocket/quality-linting.ts +0 -1
- package/server/services/websocket/quality-operations.ts +72 -0
- package/server/services/websocket/quality-persistence.ts +47 -8
- package/server/services/websocket/quality-review-agent.ts +154 -65
- package/server/services/websocket/quality-service.ts +415 -68
- package/server/services/websocket/quality-tools.ts +62 -3
- package/server/services/websocket/quality-types.ts +61 -4
- package/server/services/websocket/session-handlers.ts +64 -11
- package/server/services/websocket/session-history.ts +3 -1
- package/server/services/websocket/session-initialization.ts +189 -47
- package/server/services/websocket/session-registry.ts +37 -1
- package/server/services/websocket/settings-handlers.ts +41 -5
- package/server/services/websocket/skill-handlers.ts +0 -1
- package/server/services/websocket/skill-watcher.ts +0 -1
- package/server/services/websocket/tab-broadcast.ts +10 -3
- package/server/services/websocket/tab-event-buffer.ts +143 -12
- package/server/services/websocket/tab-event-replay.ts +70 -4
- package/server/services/websocket/tab-handlers.ts +53 -6
- package/server/services/websocket/terminal-handlers.ts +39 -3
- package/server/services/websocket/types.ts +39 -8
- package/server/utils/agent-manager.ts +0 -1
- package/server/utils/paths.ts +0 -1
- package/server/utils/port-manager.ts +0 -1
- package/server/utils/port.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-handlers.js","sourceRoot":"","sources":["../../../../server/services/websocket/skill-handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-handlers.js","sourceRoot":"","sources":["../../../../server/services/websocket/skill-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-watcher.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/skill-watcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-watcher.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/skill-watcher.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,qBAAa,aAAa;IAQtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IARtB,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,cAAc,CAA0B;IAChD,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,OAAO,CAAS;gBAGL,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,cAAc;IAGtC,KAAK,IAAI,IAAI;IA2Bb,IAAI,IAAI,IAAI;IAOZ,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;CAIpB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// Copyright (c) 2025-present Mstro, Inc. All rights reserved.
|
|
2
|
-
// Licensed under the MIT License. See LICENSE file for details.
|
|
3
2
|
import { watch } from 'node:fs';
|
|
4
3
|
import { findSkillsDir } from '../../utils/paths.js';
|
|
5
4
|
import { collectAllSkills, USER_SKILLS_DIR } from './skill-handlers.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-watcher.js","sourceRoot":"","sources":["../../../../server/services/websocket/skill-watcher.ts"],"names":[],"mappings":"AAAA,8DAA8D;
|
|
1
|
+
{"version":3,"file":"skill-watcher.js","sourceRoot":"","sources":["../../../../server/services/websocket/skill-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,12 +13,17 @@
|
|
|
13
13
|
* `session-initialization.ts` for the replay path.
|
|
14
14
|
*/
|
|
15
15
|
import type { HandlerContext } from './handler-context.js';
|
|
16
|
-
import type { WebSocketResponse } from './types.js';
|
|
16
|
+
import type { EngineId, WebSocketResponse } from './types.js';
|
|
17
17
|
type TabScopedEventType = WebSocketResponse['type'];
|
|
18
18
|
/**
|
|
19
19
|
* Record + broadcast a tab-scoped event in one call. Returns the assigned
|
|
20
20
|
* sequence number purely for logging/tests — callers rarely need it.
|
|
21
|
+
*
|
|
22
|
+
* `engine` is optional: when supplied (typically by session-driven movement
|
|
23
|
+
* events), it rides on the wire envelope so the web client can render
|
|
24
|
+
* engine-specific affordances. Buffer replay preserves it because the engine
|
|
25
|
+
* is part of the envelope produced for each broadcast.
|
|
21
26
|
*/
|
|
22
|
-
export declare function broadcastTabEvent(ctx: HandlerContext, tabId: string, type: TabScopedEventType, data: unknown): number;
|
|
27
|
+
export declare function broadcastTabEvent(ctx: HandlerContext, tabId: string, type: TabScopedEventType, data: unknown, engine?: EngineId): number;
|
|
23
28
|
export {};
|
|
24
29
|
//# sourceMappingURL=tab-broadcast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-broadcast.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/tab-broadcast.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tab-broadcast.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/tab-broadcast.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE7D,KAAK,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;AAEnD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,OAAO,EACb,MAAM,CAAC,EAAE,QAAQ,GAChB,MAAM,CAOR"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
// Copyright (c) 2025-present Mstro, Inc. All rights reserved.
|
|
2
|
-
// Licensed under the MIT License. See LICENSE file for details.
|
|
3
2
|
/**
|
|
4
3
|
* Record + broadcast a tab-scoped event in one call. Returns the assigned
|
|
5
4
|
* sequence number purely for logging/tests — callers rarely need it.
|
|
5
|
+
*
|
|
6
|
+
* `engine` is optional: when supplied (typically by session-driven movement
|
|
7
|
+
* events), it rides on the wire envelope so the web client can render
|
|
8
|
+
* engine-specific affordances. Buffer replay preserves it because the engine
|
|
9
|
+
* is part of the envelope produced for each broadcast.
|
|
6
10
|
*/
|
|
7
|
-
export function broadcastTabEvent(ctx, tabId, type, data) {
|
|
11
|
+
export function broadcastTabEvent(ctx, tabId, type, data, engine) {
|
|
8
12
|
const buffer = ctx.tabEventBuffers.getOrCreate(tabId);
|
|
9
13
|
const seq = buffer.record(type, data);
|
|
10
|
-
|
|
14
|
+
const envelope = { type, tabId, data, seq };
|
|
15
|
+
if (engine)
|
|
16
|
+
envelope.engine = engine;
|
|
17
|
+
ctx.broadcastToAll(envelope);
|
|
11
18
|
return seq;
|
|
12
19
|
}
|
|
13
20
|
//# sourceMappingURL=tab-broadcast.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-broadcast.js","sourceRoot":"","sources":["../../../../server/services/websocket/tab-broadcast.ts"],"names":[],"mappings":"AAAA,8DAA8D;
|
|
1
|
+
{"version":3,"file":"tab-broadcast.js","sourceRoot":"","sources":["../../../../server/services/websocket/tab-broadcast.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAsB9D;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAmB,EACnB,KAAa,EACb,IAAwB,EACxB,IAAa,EACb,MAAiB;IAEjB,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAsB,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;IAC9D,IAAI,MAAM;QAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAA;IACpC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC5B,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -39,20 +39,57 @@ export interface BufferedEvent {
|
|
|
39
39
|
data: unknown;
|
|
40
40
|
/** `Date.now()` at record time. Used for age-based eviction. */
|
|
41
41
|
timestamp: number;
|
|
42
|
+
/**
|
|
43
|
+
* Approximate serialized byte size of `data`. Computed once at record
|
|
44
|
+
* time so eviction can enforce a memory cap without re-stringifying on
|
|
45
|
+
* every check. Type and seq overhead is small; we only bill `data` here.
|
|
46
|
+
*/
|
|
47
|
+
byteSize: number;
|
|
42
48
|
}
|
|
43
49
|
/**
|
|
44
50
|
* Bounded replay log for a single tab.
|
|
45
51
|
*
|
|
46
|
-
* Size/age limits are parameterised for testability but defaulted to
|
|
47
|
-
* that comfortably cover real-world reconnect windows
|
|
52
|
+
* Size/age/byte limits are parameterised for testability but defaulted to
|
|
53
|
+
* values that comfortably cover real-world reconnect windows for long-running
|
|
54
|
+
* coding-agent tasks (multi-tool, multi-minute).
|
|
55
|
+
*
|
|
56
|
+
* ## Replay-gap detection
|
|
57
|
+
*
|
|
58
|
+
* The buffer tracks `evictedThroughSeq` — the highest seq that has ever been
|
|
59
|
+
* evicted (0 if nothing has been evicted). A web client whose `lastSeenSeq`
|
|
60
|
+
* is below this value has missed events the buffer can no longer supply, and
|
|
61
|
+
* an incremental replay would produce a silent gap. Callers should consult
|
|
62
|
+
* `hasGapSince` before relying on `getSince` for incremental replay; on a
|
|
63
|
+
* gap they should fall back to a full snapshot path (e.g. `outputHistory`).
|
|
64
|
+
*
|
|
65
|
+
* ## Eviction is FIFO with three caps
|
|
66
|
+
*
|
|
67
|
+
* Events are evicted from the front when ANY of these limits is exceeded:
|
|
68
|
+
* - count: `maxEvents` (default 10k)
|
|
69
|
+
* - age: `maxAgeMs` (default 60 min)
|
|
70
|
+
* - bytes: `maxTotalBytes` (default 32 MB)
|
|
71
|
+
*
|
|
72
|
+
* The byte cap is the safety belt against pathological events (e.g. a 50 MB
|
|
73
|
+
* grep result streamed as one event). Without it, count- and age-based caps
|
|
74
|
+
* still allow a single tab to hoard arbitrary memory.
|
|
48
75
|
*/
|
|
49
76
|
export declare class TabEventBuffer {
|
|
50
77
|
private readonly maxEvents;
|
|
51
78
|
private readonly maxAgeMs;
|
|
52
79
|
private readonly now;
|
|
80
|
+
private readonly maxTotalBytes;
|
|
53
81
|
private readonly events;
|
|
54
82
|
private nextSeq;
|
|
55
|
-
|
|
83
|
+
/**
|
|
84
|
+
* Highest seq that has been evicted from the buffer. 0 means nothing has
|
|
85
|
+
* been evicted yet (buffer is operating within its window). Monotonically
|
|
86
|
+
* non-decreasing — eviction always happens from the front of the FIFO, in
|
|
87
|
+
* seq order, so the most recently evicted seq is always the highest.
|
|
88
|
+
*/
|
|
89
|
+
private evictedThroughSeq;
|
|
90
|
+
/** Approximate sum of `byteSize` over still-resident events. */
|
|
91
|
+
private totalBytes;
|
|
92
|
+
constructor(maxEvents?: number, maxAgeMs?: number, now?: () => number, maxTotalBytes?: number);
|
|
56
93
|
/**
|
|
57
94
|
* Append an event and return its assigned sequence number.
|
|
58
95
|
*
|
|
@@ -65,18 +102,51 @@ export declare class TabEventBuffer {
|
|
|
65
102
|
* Return all still-buffered events with `seq > afterSeq`, in original
|
|
66
103
|
* order. Returns an empty array if nothing newer is buffered (either the
|
|
67
104
|
* web is caught up or the window has rolled past).
|
|
105
|
+
*
|
|
106
|
+
* NOTE: This does not detect or signal replay gaps. Pair with
|
|
107
|
+
* `hasGapSince(afterSeq)` to know whether a returned array is a complete
|
|
108
|
+
* incremental replay or a partial one (events between `afterSeq` and the
|
|
109
|
+
* oldest surviving seq have been evicted and are no longer available).
|
|
68
110
|
*/
|
|
69
111
|
getSince(afterSeq: number): BufferedEvent[];
|
|
112
|
+
/**
|
|
113
|
+
* True when an incremental replay starting from `afterSeq` would silently
|
|
114
|
+
* skip events that the buffer has already evicted. Used by the replay
|
|
115
|
+
* orchestrator to decide whether to fall back to a full snapshot rather
|
|
116
|
+
* than emit a partial event stream the web can't reconstruct.
|
|
117
|
+
*
|
|
118
|
+
* `afterSeq < evictedThroughSeq` means the next event the caller expects
|
|
119
|
+
* (`afterSeq + 1`) is at or below the eviction frontier — that event has
|
|
120
|
+
* already been dropped from memory.
|
|
121
|
+
*/
|
|
122
|
+
hasGapSince(afterSeq: number): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Highest seq that has been evicted from this buffer; 0 if nothing has been
|
|
125
|
+
* evicted yet. Exposed for telemetry and gap-recovery decisions.
|
|
126
|
+
*/
|
|
127
|
+
getEvictedThroughSeq(): number;
|
|
70
128
|
/** Current highest assigned seq (monotonic; not reset by eviction). */
|
|
71
129
|
currentSeq(): number;
|
|
72
130
|
/** Events currently held in memory. For tests. */
|
|
73
131
|
size(): number;
|
|
132
|
+
/** Approximate bytes held by `data` payloads currently in memory. For tests/telemetry. */
|
|
133
|
+
byteSize(): number;
|
|
74
134
|
/**
|
|
75
135
|
* Drop events older than `maxAgeMs` from the front, then enforce
|
|
76
|
-
* `maxEvents` by trimming the front further if needed.
|
|
77
|
-
* newest events — they're the ones the web is most
|
|
136
|
+
* `maxEvents` and `maxTotalBytes` by trimming the front further if needed.
|
|
137
|
+
* Eviction keeps the newest events — they're the ones the web is most
|
|
138
|
+
* likely to still need.
|
|
139
|
+
*
|
|
140
|
+
* Each evicted seq advances `evictedThroughSeq` so callers can detect
|
|
141
|
+
* replay gaps. The FIFO ensures we always evict in seq order, so the last
|
|
142
|
+
* evicted seq is always the highest seen so far.
|
|
143
|
+
*
|
|
144
|
+
* The byte cap is enforced LAST so that count- and age-based eviction get
|
|
145
|
+
* a chance first; a chatty-but-small session evicts on age before it ever
|
|
146
|
+
* touches the byte cap, which keeps the usual case predictable.
|
|
78
147
|
*/
|
|
79
148
|
private evict;
|
|
149
|
+
private popOldest;
|
|
80
150
|
}
|
|
81
151
|
/**
|
|
82
152
|
* Registry of per-tab buffers. Kept as a thin collection so `HandlerContext`
|
|
@@ -96,8 +166,27 @@ export declare class TabEventBufferRegistry {
|
|
|
96
166
|
/** Drop all bookkeeping. Used for tests; no production caller expected. */
|
|
97
167
|
clear(): void;
|
|
98
168
|
}
|
|
99
|
-
/**
|
|
100
|
-
|
|
101
|
-
|
|
169
|
+
/**
|
|
170
|
+
* 10,000 events per tab.
|
|
171
|
+
*
|
|
172
|
+
* Sized for long-running coding-agent tasks (multi-tool, multi-minute) plus
|
|
173
|
+
* laptop sleep/wake reconnect windows. Worst-case observed: a 14-minute
|
|
174
|
+
* session with ~120 tool calls produces ~1.5–3k tab-scoped events; 10× that
|
|
175
|
+
* gives headroom for parallel agents and chatty improvisation. Memory
|
|
176
|
+
* footprint at ~500B/event = ~5MB per tab; the local-only single-tenant
|
|
177
|
+
* deployment makes this a non-issue.
|
|
178
|
+
*/
|
|
179
|
+
export declare const DEFAULT_MAX_EVENTS = 10000;
|
|
180
|
+
/**
|
|
181
|
+
* 60 minutes of history. Covers laptop sleep/wake, long meetings between
|
|
182
|
+
* sessions, and the largest plausible reconnect window that a tab might
|
|
183
|
+
* legitimately want to recover incrementally instead of starting fresh.
|
|
184
|
+
*/
|
|
102
185
|
export declare const DEFAULT_MAX_AGE_MS: number;
|
|
186
|
+
/**
|
|
187
|
+
* 32 MB safety belt against pathological events (large grep results, full
|
|
188
|
+
* file reads streamed inline). Eviction by bytes guarantees a single tab
|
|
189
|
+
* can't hoard arbitrary memory regardless of count/age limits.
|
|
190
|
+
*/
|
|
191
|
+
export declare const DEFAULT_MAX_TOTAL_BYTES: number;
|
|
103
192
|
//# sourceMappingURL=tab-event-buffer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-event-buffer.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/tab-event-buffer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tab-event-buffer.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/tab-event-buffer.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAA;IACX,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,2CAA2C;IAC3C,IAAI,EAAE,OAAO,CAAA;IACb,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAA;IACjB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,cAAc;IAcvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAhBhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,OAAO,CAAI;IACnB;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB,CAAI;IAC7B,gEAAgE;IAChE,OAAO,CAAC,UAAU,CAAI;gBAGH,SAAS,GAAE,MAA2B,EACtC,QAAQ,GAAE,MAA2B,EACrC,GAAG,GAAE,MAAM,MAAiB,EAC5B,aAAa,GAAE,MAAgC;IAGlE;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM;IAS3C;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;IAS3C;;;;;;;;;OASG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAKtC;;;OAGG;IACH,oBAAoB,IAAI,MAAM;IAI9B,uEAAuE;IACvE,UAAU,IAAI,MAAM;IAIpB,kDAAkD;IAClD,IAAI,IAAI,MAAM;IAId,0FAA0F;IAC1F,QAAQ,IAAI,MAAM;IAIlB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,KAAK;IAab,OAAO,CAAC,SAAS;CAOlB;AAuBD;;;;GAIG;AACH,qBAAa,sBAAsB;IAI/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAHhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAGzC,aAAa,GAAE,MAAM,cAA2C;IAGnF,8DAA8D;IAC9D,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;IAS1C,sDAAsD;IACtD,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI9C,wDAAwD;IACxD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3B,2EAA2E;IAC3E,KAAK,IAAI,IAAI;CAGd;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAA;AACxC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAiB,CAAA;AAChD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAmB,CAAA"}
|
|
@@ -1,21 +1,52 @@
|
|
|
1
1
|
// Copyright (c) 2025-present Mstro, Inc. All rights reserved.
|
|
2
|
-
// Licensed under the MIT License. See LICENSE file for details.
|
|
3
2
|
/**
|
|
4
3
|
* Bounded replay log for a single tab.
|
|
5
4
|
*
|
|
6
|
-
* Size/age limits are parameterised for testability but defaulted to
|
|
7
|
-
* that comfortably cover real-world reconnect windows
|
|
5
|
+
* Size/age/byte limits are parameterised for testability but defaulted to
|
|
6
|
+
* values that comfortably cover real-world reconnect windows for long-running
|
|
7
|
+
* coding-agent tasks (multi-tool, multi-minute).
|
|
8
|
+
*
|
|
9
|
+
* ## Replay-gap detection
|
|
10
|
+
*
|
|
11
|
+
* The buffer tracks `evictedThroughSeq` — the highest seq that has ever been
|
|
12
|
+
* evicted (0 if nothing has been evicted). A web client whose `lastSeenSeq`
|
|
13
|
+
* is below this value has missed events the buffer can no longer supply, and
|
|
14
|
+
* an incremental replay would produce a silent gap. Callers should consult
|
|
15
|
+
* `hasGapSince` before relying on `getSince` for incremental replay; on a
|
|
16
|
+
* gap they should fall back to a full snapshot path (e.g. `outputHistory`).
|
|
17
|
+
*
|
|
18
|
+
* ## Eviction is FIFO with three caps
|
|
19
|
+
*
|
|
20
|
+
* Events are evicted from the front when ANY of these limits is exceeded:
|
|
21
|
+
* - count: `maxEvents` (default 10k)
|
|
22
|
+
* - age: `maxAgeMs` (default 60 min)
|
|
23
|
+
* - bytes: `maxTotalBytes` (default 32 MB)
|
|
24
|
+
*
|
|
25
|
+
* The byte cap is the safety belt against pathological events (e.g. a 50 MB
|
|
26
|
+
* grep result streamed as one event). Without it, count- and age-based caps
|
|
27
|
+
* still allow a single tab to hoard arbitrary memory.
|
|
8
28
|
*/
|
|
9
29
|
export class TabEventBuffer {
|
|
10
30
|
maxEvents;
|
|
11
31
|
maxAgeMs;
|
|
12
32
|
now;
|
|
33
|
+
maxTotalBytes;
|
|
13
34
|
events = [];
|
|
14
35
|
nextSeq = 1;
|
|
15
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Highest seq that has been evicted from the buffer. 0 means nothing has
|
|
38
|
+
* been evicted yet (buffer is operating within its window). Monotonically
|
|
39
|
+
* non-decreasing — eviction always happens from the front of the FIFO, in
|
|
40
|
+
* seq order, so the most recently evicted seq is always the highest.
|
|
41
|
+
*/
|
|
42
|
+
evictedThroughSeq = 0;
|
|
43
|
+
/** Approximate sum of `byteSize` over still-resident events. */
|
|
44
|
+
totalBytes = 0;
|
|
45
|
+
constructor(maxEvents = DEFAULT_MAX_EVENTS, maxAgeMs = DEFAULT_MAX_AGE_MS, now = Date.now, maxTotalBytes = DEFAULT_MAX_TOTAL_BYTES) {
|
|
16
46
|
this.maxEvents = maxEvents;
|
|
17
47
|
this.maxAgeMs = maxAgeMs;
|
|
18
48
|
this.now = now;
|
|
49
|
+
this.maxTotalBytes = maxTotalBytes;
|
|
19
50
|
}
|
|
20
51
|
/**
|
|
21
52
|
* Append an event and return its assigned sequence number.
|
|
@@ -26,7 +57,9 @@ export class TabEventBuffer {
|
|
|
26
57
|
*/
|
|
27
58
|
record(type, data) {
|
|
28
59
|
const seq = this.nextSeq++;
|
|
29
|
-
|
|
60
|
+
const byteSize = estimateByteSize(data);
|
|
61
|
+
this.events.push({ seq, type, data, timestamp: this.now(), byteSize });
|
|
62
|
+
this.totalBytes += byteSize;
|
|
30
63
|
this.evict();
|
|
31
64
|
return seq;
|
|
32
65
|
}
|
|
@@ -34,6 +67,11 @@ export class TabEventBuffer {
|
|
|
34
67
|
* Return all still-buffered events with `seq > afterSeq`, in original
|
|
35
68
|
* order. Returns an empty array if nothing newer is buffered (either the
|
|
36
69
|
* web is caught up or the window has rolled past).
|
|
70
|
+
*
|
|
71
|
+
* NOTE: This does not detect or signal replay gaps. Pair with
|
|
72
|
+
* `hasGapSince(afterSeq)` to know whether a returned array is a complete
|
|
73
|
+
* incremental replay or a partial one (events between `afterSeq` and the
|
|
74
|
+
* oldest surviving seq have been evicted and are no longer available).
|
|
37
75
|
*/
|
|
38
76
|
getSince(afterSeq) {
|
|
39
77
|
this.evict();
|
|
@@ -44,6 +82,27 @@ export class TabEventBuffer {
|
|
|
44
82
|
}
|
|
45
83
|
return out;
|
|
46
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* True when an incremental replay starting from `afterSeq` would silently
|
|
87
|
+
* skip events that the buffer has already evicted. Used by the replay
|
|
88
|
+
* orchestrator to decide whether to fall back to a full snapshot rather
|
|
89
|
+
* than emit a partial event stream the web can't reconstruct.
|
|
90
|
+
*
|
|
91
|
+
* `afterSeq < evictedThroughSeq` means the next event the caller expects
|
|
92
|
+
* (`afterSeq + 1`) is at or below the eviction frontier — that event has
|
|
93
|
+
* already been dropped from memory.
|
|
94
|
+
*/
|
|
95
|
+
hasGapSince(afterSeq) {
|
|
96
|
+
this.evict();
|
|
97
|
+
return afterSeq < this.evictedThroughSeq;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Highest seq that has been evicted from this buffer; 0 if nothing has been
|
|
101
|
+
* evicted yet. Exposed for telemetry and gap-recovery decisions.
|
|
102
|
+
*/
|
|
103
|
+
getEvictedThroughSeq() {
|
|
104
|
+
return this.evictedThroughSeq;
|
|
105
|
+
}
|
|
47
106
|
/** Current highest assigned seq (monotonic; not reset by eviction). */
|
|
48
107
|
currentSeq() {
|
|
49
108
|
return this.nextSeq - 1;
|
|
@@ -52,20 +111,67 @@ export class TabEventBuffer {
|
|
|
52
111
|
size() {
|
|
53
112
|
return this.events.length;
|
|
54
113
|
}
|
|
114
|
+
/** Approximate bytes held by `data` payloads currently in memory. For tests/telemetry. */
|
|
115
|
+
byteSize() {
|
|
116
|
+
return this.totalBytes;
|
|
117
|
+
}
|
|
55
118
|
/**
|
|
56
119
|
* Drop events older than `maxAgeMs` from the front, then enforce
|
|
57
|
-
* `maxEvents` by trimming the front further if needed.
|
|
58
|
-
* newest events — they're the ones the web is most
|
|
120
|
+
* `maxEvents` and `maxTotalBytes` by trimming the front further if needed.
|
|
121
|
+
* Eviction keeps the newest events — they're the ones the web is most
|
|
122
|
+
* likely to still need.
|
|
123
|
+
*
|
|
124
|
+
* Each evicted seq advances `evictedThroughSeq` so callers can detect
|
|
125
|
+
* replay gaps. The FIFO ensures we always evict in seq order, so the last
|
|
126
|
+
* evicted seq is always the highest seen so far.
|
|
127
|
+
*
|
|
128
|
+
* The byte cap is enforced LAST so that count- and age-based eviction get
|
|
129
|
+
* a chance first; a chatty-but-small session evicts on age before it ever
|
|
130
|
+
* touches the byte cap, which keeps the usual case predictable.
|
|
59
131
|
*/
|
|
60
132
|
evict() {
|
|
61
133
|
const cutoff = this.now() - this.maxAgeMs;
|
|
62
134
|
while (this.events.length > 0 && this.events[0].timestamp < cutoff) {
|
|
63
|
-
this.
|
|
135
|
+
this.popOldest();
|
|
64
136
|
}
|
|
65
137
|
while (this.events.length > this.maxEvents) {
|
|
66
|
-
this.
|
|
138
|
+
this.popOldest();
|
|
139
|
+
}
|
|
140
|
+
while (this.events.length > 0 && this.totalBytes > this.maxTotalBytes) {
|
|
141
|
+
this.popOldest();
|
|
67
142
|
}
|
|
68
143
|
}
|
|
144
|
+
popOldest() {
|
|
145
|
+
const evicted = this.events.shift();
|
|
146
|
+
if (!evicted)
|
|
147
|
+
return;
|
|
148
|
+
this.evictedThroughSeq = evicted.seq;
|
|
149
|
+
this.totalBytes -= evicted.byteSize;
|
|
150
|
+
if (this.totalBytes < 0)
|
|
151
|
+
this.totalBytes = 0;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Estimate `data`'s serialized byte size for the eviction byte cap. Uses
|
|
156
|
+
* `JSON.stringify` because that's what hits the wire; falls back to a small
|
|
157
|
+
* default on circular structures so we don't crash the broadcast path.
|
|
158
|
+
*
|
|
159
|
+
* `Buffer.byteLength` would give us UTF-8 bytes vs UTF-16 code units, but on
|
|
160
|
+
* Node `JSON.stringify(...).length` is close enough (within a small constant
|
|
161
|
+
* factor for ASCII-heavy payloads) and avoids an extra allocation.
|
|
162
|
+
*/
|
|
163
|
+
function estimateByteSize(data) {
|
|
164
|
+
if (data === undefined || data === null)
|
|
165
|
+
return 0;
|
|
166
|
+
try {
|
|
167
|
+
return JSON.stringify(data).length;
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// Circular reference, BigInt, etc. — bill a small fixed cost so the
|
|
171
|
+
// byte cap still has SOME signal. We won't be able to wire-serialize
|
|
172
|
+
// this either, but that's a separate problem.
|
|
173
|
+
return 256;
|
|
174
|
+
}
|
|
69
175
|
}
|
|
70
176
|
/**
|
|
71
177
|
* Registry of per-tab buffers. Kept as a thin collection so `HandlerContext`
|
|
@@ -100,8 +206,27 @@ export class TabEventBufferRegistry {
|
|
|
100
206
|
this.buffers.clear();
|
|
101
207
|
}
|
|
102
208
|
}
|
|
103
|
-
/**
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
209
|
+
/**
|
|
210
|
+
* 10,000 events per tab.
|
|
211
|
+
*
|
|
212
|
+
* Sized for long-running coding-agent tasks (multi-tool, multi-minute) plus
|
|
213
|
+
* laptop sleep/wake reconnect windows. Worst-case observed: a 14-minute
|
|
214
|
+
* session with ~120 tool calls produces ~1.5–3k tab-scoped events; 10× that
|
|
215
|
+
* gives headroom for parallel agents and chatty improvisation. Memory
|
|
216
|
+
* footprint at ~500B/event = ~5MB per tab; the local-only single-tenant
|
|
217
|
+
* deployment makes this a non-issue.
|
|
218
|
+
*/
|
|
219
|
+
export const DEFAULT_MAX_EVENTS = 10_000;
|
|
220
|
+
/**
|
|
221
|
+
* 60 minutes of history. Covers laptop sleep/wake, long meetings between
|
|
222
|
+
* sessions, and the largest plausible reconnect window that a tab might
|
|
223
|
+
* legitimately want to recover incrementally instead of starting fresh.
|
|
224
|
+
*/
|
|
225
|
+
export const DEFAULT_MAX_AGE_MS = 60 * 60 * 1000;
|
|
226
|
+
/**
|
|
227
|
+
* 32 MB safety belt against pathological events (large grep results, full
|
|
228
|
+
* file reads streamed inline). Eviction by bytes guarantees a single tab
|
|
229
|
+
* can't hoard arbitrary memory regardless of count/age limits.
|
|
230
|
+
*/
|
|
231
|
+
export const DEFAULT_MAX_TOTAL_BYTES = 32 * 1024 * 1024;
|
|
107
232
|
//# sourceMappingURL=tab-event-buffer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-event-buffer.js","sourceRoot":"","sources":["../../../../server/services/websocket/tab-event-buffer.ts"],"names":[],"mappings":"AAAA,8DAA8D;
|
|
1
|
+
{"version":3,"file":"tab-event-buffer.js","sourceRoot":"","sources":["../../../../server/services/websocket/tab-event-buffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,36 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Replay tab-scoped events missed during a transport gap.
|
|
3
|
-
*
|
|
4
|
-
* `session-initialization.ts` calls this right before sending `tabInitialized`
|
|
5
|
-
* so the web sees any events with `seq > lastSeenSeq` in-order before the
|
|
6
|
-
* usual initialization payload. Ordering matters: e.g. a `movementComplete`
|
|
7
|
-
* before `outputHistory` would render duplicate content.
|
|
8
|
-
*
|
|
9
|
-
* Delivery is targeted (`ctx.send`) rather than broadcast because only the
|
|
10
|
-
* rejoining web needs the replay; other connected webs already saw these
|
|
11
|
-
* events live.
|
|
12
|
-
*/
|
|
13
1
|
import type { HandlerContext } from './handler-context.js';
|
|
14
2
|
import type { WSContext } from './types.js';
|
|
3
|
+
/** Result of a replay attempt — used by callers (and tests) for telemetry. */
|
|
4
|
+
export interface ReplayResult {
|
|
5
|
+
/** Number of events sent to the web during this replay. */
|
|
6
|
+
sentCount: number;
|
|
7
|
+
/**
|
|
8
|
+
* True when the buffer had already evicted events that fell between the
|
|
9
|
+
* web's `lastSeenSeq` and the oldest surviving seq. The replay is partial;
|
|
10
|
+
* the web's incremental state is now provably stale and the caller should
|
|
11
|
+
* fall back to a full snapshot path (e.g. `outputHistory`).
|
|
12
|
+
*/
|
|
13
|
+
hadGap: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* If `hadGap`, the highest seq that was evicted (so the gap range is
|
|
16
|
+
* `(lastSeenSeq + 1) .. evictedThroughSeq`). Undefined when no gap.
|
|
17
|
+
*/
|
|
18
|
+
evictedThroughSeq?: number;
|
|
19
|
+
/**
|
|
20
|
+
* If `hadGap`, the seq the web requested replay from. Echoed into
|
|
21
|
+
* telemetry so log entries are self-contained.
|
|
22
|
+
*/
|
|
23
|
+
lastSeenSeq?: number;
|
|
24
|
+
}
|
|
15
25
|
/**
|
|
16
26
|
* Replay tab events with `seq > lastSeenSeq` to `ws`. Silently no-ops when
|
|
17
27
|
* the buffer is empty or `lastSeenSeq` is unset (full init, not a resume).
|
|
28
|
+
*
|
|
29
|
+
* Returns a `ReplayResult` so the caller can detect a partial replay (the
|
|
30
|
+
* buffer evicted events the web is asking about) and decide whether to send
|
|
31
|
+
* a recovery snapshot. This is the load-bearing telemetry surface for the
|
|
32
|
+
* "long-running task output disappears mid-stream" failure mode — a `hadGap`
|
|
33
|
+
* here is the smoking gun.
|
|
18
34
|
*/
|
|
19
|
-
export declare function replayTabEventsSince(ctx: HandlerContext, ws: WSContext, tabId: string, lastSeenSeq: number | undefined):
|
|
35
|
+
export declare function replayTabEventsSince(ctx: HandlerContext, ws: WSContext, tabId: string, lastSeenSeq: number | undefined): ReplayResult;
|
|
20
36
|
//# sourceMappingURL=tab-event-replay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-event-replay.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/tab-event-replay.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tab-event-replay.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/tab-event-replay.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAqB,SAAS,EAAE,MAAM,YAAY,CAAA;AAE9D,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,EACnB,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAAG,SAAS,GAC9B,YAAY,CAkDd"}
|