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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-grading.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-grading.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-handlers.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quality-handlers.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-handlers.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA+C9D,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,EACnB,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CA8DN"}
|
|
@@ -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
|
/**
|
|
4
3
|
* Quality Handlers — WebSocket message router for quality scanning
|
|
5
4
|
* and code review operations. Fixes are handled via chat tabs from the
|
|
@@ -11,12 +10,13 @@
|
|
|
11
10
|
*/
|
|
12
11
|
import { join, resolve } from 'node:path';
|
|
13
12
|
import { validatePathWithinWorkingDir } from '../pathUtils.js';
|
|
13
|
+
import { estimateCodebaseSize, estimateScanMs } from './quality-eta.js';
|
|
14
|
+
import { operationRegistry } from './quality-operations.js';
|
|
14
15
|
import { QualityPersistence } from './quality-persistence.js';
|
|
15
16
|
import { handleCodeReview } from './quality-review-agent.js';
|
|
16
|
-
import { detectTools, installTools, runQualityScan } from './quality-service.js';
|
|
17
|
+
import { detectTools, installTools, QualityScanAbortedError, runQualityScan } from './quality-service.js';
|
|
17
18
|
// ── Shared state ──────────────────────────────────────────────
|
|
18
19
|
const persistenceCache = new Map();
|
|
19
|
-
const activeReviews = new Set();
|
|
20
20
|
function getPersistence(workingDir) {
|
|
21
21
|
let persistence = persistenceCache.get(workingDir);
|
|
22
22
|
if (!persistence) {
|
|
@@ -69,10 +69,33 @@ export function handleQualityMessage(ctx, ws, msg, _tabId, workingDir, permissio
|
|
|
69
69
|
}
|
|
70
70
|
const reportPath = msg.data?.path || '.';
|
|
71
71
|
const persistence = getPersistence(workingDir);
|
|
72
|
+
let controller;
|
|
73
|
+
try {
|
|
74
|
+
controller = operationRegistry.start(workingDir, reportPath, 'reviewing');
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// Look up what's actually running so the user sees the right message
|
|
78
|
+
// — clicking "Run checks" during an in-flight AI review used to surface
|
|
79
|
+
// "A scan is already running" because the error was hardcoded to the
|
|
80
|
+
// *new* op kind rather than the existing one.
|
|
81
|
+
const runningKind = operationRegistry.getKind(workingDir, reportPath);
|
|
82
|
+
const error = runningKind === 'scanning'
|
|
83
|
+
? 'A scan is already running for this directory.'
|
|
84
|
+
: 'An AI review is already running for this directory.';
|
|
85
|
+
ctx.send(ws, { type: 'qualityError', data: { path: reportPath, error } });
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
72
88
|
persistence.setActiveOperation(reportPath, 'reviewing');
|
|
73
|
-
|
|
74
|
-
|
|
89
|
+
// The review agent is responsible for emitting the first progress
|
|
90
|
+
// message with an ETA; the handler just wires up the controller +
|
|
91
|
+
// persistence cleanup.
|
|
92
|
+
handleCodeReview(ctx, ws, reportPath, dirPath, workingDir, getPersistence, controller.signal)
|
|
93
|
+
.finally(() => {
|
|
94
|
+
operationRegistry.finish(workingDir, reportPath);
|
|
95
|
+
persistence.clearActiveOperation(reportPath);
|
|
96
|
+
});
|
|
75
97
|
},
|
|
98
|
+
qualityCancel: () => handleCancel(ctx, msg, workingDir),
|
|
76
99
|
qualityLoadState: () => handleLoadState(ctx, ws, workingDir),
|
|
77
100
|
qualityClearPending: () => {
|
|
78
101
|
const persistence = getPersistence(workingDir);
|
|
@@ -113,6 +136,24 @@ async function handleLoadState(ctx, ws, workingDir) {
|
|
|
113
136
|
}
|
|
114
137
|
persistence.clearPendingResults();
|
|
115
138
|
}
|
|
139
|
+
// Reconcile orphaned active operations: anything persisted to disk that
|
|
140
|
+
// has no live `AbortController` in the registry was interrupted by a CLI
|
|
141
|
+
// restart or crash. Surface as an error so the UI clears the spinner and
|
|
142
|
+
// remove from disk so the same op doesn't keep haunting future reconnects.
|
|
143
|
+
const orphans = state.activeOperations.filter((op) => !operationRegistry.has(workingDir, op.path));
|
|
144
|
+
if (orphans.length > 0) {
|
|
145
|
+
for (const op of orphans) {
|
|
146
|
+
persistence.clearActiveOperation(op.path);
|
|
147
|
+
ctx.send(ws, {
|
|
148
|
+
type: 'qualityError',
|
|
149
|
+
data: { path: op.path, error: 'Operation interrupted — please run again.' },
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
// Reload so the response reflects the cleared ops.
|
|
153
|
+
const refreshed = persistence.loadState();
|
|
154
|
+
ctx.send(ws, { type: 'qualityStateLoaded', data: refreshed });
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
116
157
|
ctx.send(ws, { type: 'qualityStateLoaded', data: state });
|
|
117
158
|
}
|
|
118
159
|
catch (error) {
|
|
@@ -122,6 +163,25 @@ async function handleLoadState(ctx, ws, workingDir) {
|
|
|
122
163
|
});
|
|
123
164
|
}
|
|
124
165
|
}
|
|
166
|
+
function handleCancel(ctx, msg, workingDir) {
|
|
167
|
+
const reportPath = msg.data?.path || '.';
|
|
168
|
+
const persistence = getPersistence(workingDir);
|
|
169
|
+
const wasRunning = operationRegistry.cancel(workingDir, reportPath);
|
|
170
|
+
// Always clear persistence — cancel for an orphan should still leave the
|
|
171
|
+
// disk clean so future reconnects don't re-emit the orphan reconciliation
|
|
172
|
+
// error.
|
|
173
|
+
persistence.clearActiveOperation(reportPath);
|
|
174
|
+
// Broadcast so every paired device sees the operation end (multi-device
|
|
175
|
+
// sync). If nothing was running we still emit so a stale spinner on a
|
|
176
|
+
// second device gets cleared by the `qualityError` handler.
|
|
177
|
+
ctx.broadcastToAll({
|
|
178
|
+
type: 'qualityError',
|
|
179
|
+
data: {
|
|
180
|
+
path: reportPath,
|
|
181
|
+
error: wasRunning ? 'Cancelled by user' : 'Operation already finished',
|
|
182
|
+
},
|
|
183
|
+
});
|
|
184
|
+
}
|
|
125
185
|
async function handleSaveDirectories(ctx, ws, msg, workingDir, isSandboxed = false) {
|
|
126
186
|
try {
|
|
127
187
|
const persistence = getPersistence(workingDir);
|
|
@@ -184,16 +244,87 @@ async function handleScan(ctx, ws, msg, workingDir, isSandboxed = false) {
|
|
|
184
244
|
}
|
|
185
245
|
const reportPath = msg.data?.path || '.';
|
|
186
246
|
const persistence = getPersistence(workingDir);
|
|
247
|
+
let controller;
|
|
248
|
+
try {
|
|
249
|
+
controller = operationRegistry.start(workingDir, reportPath, 'scanning');
|
|
250
|
+
}
|
|
251
|
+
catch {
|
|
252
|
+
// Same reasoning as the qualityCodeReview handler above — surface the
|
|
253
|
+
// *running* op kind, not the requested one.
|
|
254
|
+
const runningKind = operationRegistry.getKind(workingDir, reportPath);
|
|
255
|
+
const error = runningKind === 'reviewing'
|
|
256
|
+
? 'An AI review is already running for this directory.'
|
|
257
|
+
: 'A scan is already running for this directory.';
|
|
258
|
+
ctx.send(ws, { type: 'qualityError', data: { path: reportPath, error } });
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
const scanStartedAt = Date.now();
|
|
262
|
+
// Pre-compute a size + ETA so the very first progress event carries an
|
|
263
|
+
// estimate. We deliberately do this *before* `setActiveOperation` so a
|
|
264
|
+
// freshly-clicked scan shows numbers immediately rather than after a
|
|
265
|
+
// file-collection round-trip.
|
|
266
|
+
let etaMs;
|
|
267
|
+
try {
|
|
268
|
+
const size = await estimateCodebaseSize(dirPath);
|
|
269
|
+
etaMs = estimateScanMs(size, persistence.loadHistory(), reportPath);
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
// Falling back to no ETA is fine — the UI will simply hide the remaining-time chip.
|
|
273
|
+
}
|
|
187
274
|
try {
|
|
188
275
|
persistence.setActiveOperation(reportPath, 'scanning');
|
|
276
|
+
// Emit a "Detecting tools" frame *before* the long detect call so the
|
|
277
|
+
// user sees motion immediately on click — `detectTools` spawns one
|
|
278
|
+
// child process per ecosystem tool and can sit silent for several
|
|
279
|
+
// seconds on a cold cache.
|
|
280
|
+
ctx.send(ws, {
|
|
281
|
+
type: 'qualityScanProgress',
|
|
282
|
+
data: {
|
|
283
|
+
path: reportPath,
|
|
284
|
+
progress: { step: 'Detecting tools', current: 0, total: 8, etaMs, startedAt: scanStartedAt },
|
|
285
|
+
},
|
|
286
|
+
});
|
|
189
287
|
const { tools: detectedTools } = await detectTools(dirPath);
|
|
190
288
|
const installedToolNames = detectedTools.filter((t) => t.installed).map((t) => t.name);
|
|
191
|
-
|
|
289
|
+
// Heartbeat — keeps the progress UI showing elapsed time during long
|
|
290
|
+
// sub-steps (lint/format/build) where `runQualityScan` doesn't get a
|
|
291
|
+
// chance to call the progress callback again.
|
|
292
|
+
let lastProgress = {
|
|
293
|
+
step: 'Detecting tools',
|
|
294
|
+
current: 0,
|
|
295
|
+
total: 8,
|
|
296
|
+
};
|
|
297
|
+
const heartbeat = setInterval(() => {
|
|
298
|
+
const elapsedSec = Math.round((Date.now() - scanStartedAt) / 1000);
|
|
192
299
|
ctx.send(ws, {
|
|
193
300
|
type: 'qualityScanProgress',
|
|
194
|
-
data: {
|
|
301
|
+
data: {
|
|
302
|
+
path: reportPath,
|
|
303
|
+
progress: { ...lastProgress, etaMs, startedAt: scanStartedAt, detail: `${elapsedSec}s elapsed` },
|
|
304
|
+
},
|
|
195
305
|
});
|
|
196
|
-
},
|
|
306
|
+
}, 5_000);
|
|
307
|
+
let results;
|
|
308
|
+
try {
|
|
309
|
+
results = await runQualityScan(dirPath, (progress) => {
|
|
310
|
+
lastProgress = progress;
|
|
311
|
+
ctx.send(ws, {
|
|
312
|
+
type: 'qualityScanProgress',
|
|
313
|
+
data: {
|
|
314
|
+
path: reportPath,
|
|
315
|
+
progress: { ...progress, etaMs, startedAt: scanStartedAt },
|
|
316
|
+
},
|
|
317
|
+
});
|
|
318
|
+
}, installedToolNames, controller.signal);
|
|
319
|
+
}
|
|
320
|
+
finally {
|
|
321
|
+
clearInterval(heartbeat);
|
|
322
|
+
}
|
|
323
|
+
// Annotate the report with the wall-clock duration so subsequent scans
|
|
324
|
+
// of this directory have real history to base their ETA on. Same pattern
|
|
325
|
+
// applies for the AI review duration written by the review agent.
|
|
326
|
+
const scanDurationMs = Date.now() - scanStartedAt;
|
|
327
|
+
results.scanDurationMs = scanDurationMs;
|
|
197
328
|
// Persist before sending — results survive if WebSocket drops
|
|
198
329
|
try {
|
|
199
330
|
persistence.saveReport(reportPath, results);
|
|
@@ -219,12 +350,18 @@ async function handleScan(ctx, ws, msg, workingDir, isSandboxed = false) {
|
|
|
219
350
|
}
|
|
220
351
|
}
|
|
221
352
|
catch (error) {
|
|
353
|
+
if (error instanceof QualityScanAbortedError) {
|
|
354
|
+
// Cancellation already broadcast a `qualityError` from `handleCancel`.
|
|
355
|
+
// Don't send a second error message.
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
222
358
|
ctx.send(ws, {
|
|
223
359
|
type: 'qualityError',
|
|
224
360
|
data: { path: reportPath, error: error instanceof Error ? error.message : String(error) },
|
|
225
361
|
});
|
|
226
362
|
}
|
|
227
363
|
finally {
|
|
364
|
+
operationRegistry.finish(workingDir, reportPath);
|
|
228
365
|
persistence.clearActiveOperation(reportPath);
|
|
229
366
|
}
|
|
230
367
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-handlers.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quality-handlers.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-linting.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-linting.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"quality-linting.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-linting.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyC,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAsB,KAAK,SAAS,EAAuD,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA6LlJ,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,EAAE,EACvB,KAAK,EAAE,UAAU,EAAE,EACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAC5B,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBhG"}
|
|
@@ -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 { relative } from 'node:path';
|
|
4
3
|
import { chunkFileList, filesByExt, runCommand } from './quality-tools.js';
|
|
5
4
|
import { biomeDiagToFinding, isBiomeComplexityDiagnostic, isEslintComplexityRule } from './quality-types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-linting.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-linting.ts"],"names":[],"mappings":"AAAA,8DAA8D;
|
|
1
|
+
{"version":3,"file":"quality-linting.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-linting.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quality Operation Registry — in-process tracking of in-flight scans and
|
|
3
|
+
* code reviews so they can be cancelled (or detected as orphaned) without
|
|
4
|
+
* depending on durable state.
|
|
5
|
+
*
|
|
6
|
+
* Persistence (`.mstro/quality/active-ops.json`) survives a CLI restart but
|
|
7
|
+
* has no live `AbortController` to cancel; this registry holds the controllers
|
|
8
|
+
* for the current process. The two layers are deliberately decoupled — when a
|
|
9
|
+
* persisted op exists with no registry entry, callers know the op is orphaned.
|
|
10
|
+
*/
|
|
11
|
+
export type OperationKind = 'scanning' | 'reviewing';
|
|
12
|
+
export declare class OperationRegistry {
|
|
13
|
+
private readonly ops;
|
|
14
|
+
private key;
|
|
15
|
+
/**
|
|
16
|
+
* Reserve an operation slot and return its `AbortController`. Throws when
|
|
17
|
+
* the same `(workingDir, path)` pair is already in flight — callers should
|
|
18
|
+
* surface this to the user as "already running" rather than silently
|
|
19
|
+
* starting a second worker.
|
|
20
|
+
*/
|
|
21
|
+
start(workingDir: string, path: string, kind: OperationKind): AbortController;
|
|
22
|
+
/**
|
|
23
|
+
* Cancel an in-flight operation. Returns `true` when an op was found and
|
|
24
|
+
* aborted, `false` when nothing was registered (the caller should still
|
|
25
|
+
* clear persistence — the op is either already finished or was orphaned).
|
|
26
|
+
*/
|
|
27
|
+
cancel(workingDir: string, path: string): boolean;
|
|
28
|
+
finish(workingDir: string, path: string): void;
|
|
29
|
+
has(workingDir: string, path: string): boolean;
|
|
30
|
+
/** Kind of the live operation, or null when nothing is registered. */
|
|
31
|
+
getKind(workingDir: string, path: string): OperationKind | null;
|
|
32
|
+
}
|
|
33
|
+
export declare const operationRegistry: OperationRegistry;
|
|
34
|
+
//# sourceMappingURL=quality-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-operations.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-operations.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC;AAQrD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0C;IAE9D,OAAO,CAAC,GAAG;IAIX;;;;;OAKG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,eAAe;IAU7E;;;;OAIG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAQjD,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9C,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9C,sEAAsE;IACtE,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;CAGhE;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// Copyright (c) 2025-present Mstro, Inc. All rights reserved.
|
|
2
|
+
export class OperationRegistry {
|
|
3
|
+
ops = new Map();
|
|
4
|
+
key(workingDir, path) {
|
|
5
|
+
return `${workingDir}::${path}`;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Reserve an operation slot and return its `AbortController`. Throws when
|
|
9
|
+
* the same `(workingDir, path)` pair is already in flight — callers should
|
|
10
|
+
* surface this to the user as "already running" rather than silently
|
|
11
|
+
* starting a second worker.
|
|
12
|
+
*/
|
|
13
|
+
start(workingDir, path, kind) {
|
|
14
|
+
const k = this.key(workingDir, path);
|
|
15
|
+
if (this.ops.has(k)) {
|
|
16
|
+
throw new Error(`Operation already in flight: ${kind} ${path}`);
|
|
17
|
+
}
|
|
18
|
+
const controller = new AbortController();
|
|
19
|
+
this.ops.set(k, { controller, kind, startedAt: Date.now() });
|
|
20
|
+
return controller;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Cancel an in-flight operation. Returns `true` when an op was found and
|
|
24
|
+
* aborted, `false` when nothing was registered (the caller should still
|
|
25
|
+
* clear persistence — the op is either already finished or was orphaned).
|
|
26
|
+
*/
|
|
27
|
+
cancel(workingDir, path) {
|
|
28
|
+
const k = this.key(workingDir, path);
|
|
29
|
+
const op = this.ops.get(k);
|
|
30
|
+
if (!op)
|
|
31
|
+
return false;
|
|
32
|
+
op.controller.abort();
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
finish(workingDir, path) {
|
|
36
|
+
this.ops.delete(this.key(workingDir, path));
|
|
37
|
+
}
|
|
38
|
+
has(workingDir, path) {
|
|
39
|
+
return this.ops.has(this.key(workingDir, path));
|
|
40
|
+
}
|
|
41
|
+
/** Kind of the live operation, or null when nothing is registered. */
|
|
42
|
+
getKind(workingDir, path) {
|
|
43
|
+
return this.ops.get(this.key(workingDir, path))?.kind ?? null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export const operationRegistry = new OperationRegistry();
|
|
47
|
+
//# sourceMappingURL=quality-operations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-operations.js","sourceRoot":"","sources":["../../../../server/services/websocket/quality-operations.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAqB9D,MAAM,OAAO,iBAAiB;IACX,GAAG,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEtD,GAAG,CAAC,UAAkB,EAAE,IAAY;QAC1C,OAAO,GAAG,UAAU,KAAK,IAAI,EAAE,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAkB,EAAE,IAAY,EAAE,IAAmB;QACzD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAkB,EAAE,IAAY;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;QACtB,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,UAAkB,EAAE,IAAY;QACrC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,GAAG,CAAC,UAAkB,EAAE,IAAY;QAClC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,sEAAsE;IACtE,OAAO,CAAC,UAAkB,EAAE,IAAY;QACtC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,CAAC;IAChE,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|
|
@@ -19,7 +19,30 @@ export interface QualityHistoryEntry {
|
|
|
19
19
|
grade: string;
|
|
20
20
|
issueDensity?: number;
|
|
21
21
|
categoryScores?: HistoryCategoryScore[];
|
|
22
|
+
dimensionScores?: {
|
|
23
|
+
security: {
|
|
24
|
+
score: number;
|
|
25
|
+
grade: string;
|
|
26
|
+
};
|
|
27
|
+
reliability: {
|
|
28
|
+
score: number;
|
|
29
|
+
grade: string;
|
|
30
|
+
};
|
|
31
|
+
maintainability: {
|
|
32
|
+
score: number;
|
|
33
|
+
grade: string;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
22
36
|
directories: HistoryDirectoryEntry[];
|
|
37
|
+
/**
|
|
38
|
+
* Wall-clock duration of the CLI scan that produced this entry, in
|
|
39
|
+
* milliseconds. Older entries persisted before the ETA rollout will not
|
|
40
|
+
* include this field, in which case the ETA estimator falls back to the
|
|
41
|
+
* heuristic until enough samples accumulate.
|
|
42
|
+
*/
|
|
43
|
+
scanDurationMs?: number;
|
|
44
|
+
/** Wall-clock duration of the AI review pass, when one ran for this entry. */
|
|
45
|
+
reviewDurationMs?: number;
|
|
23
46
|
}
|
|
24
47
|
export type ActiveOperationType = 'scanning' | 'reviewing' | 'fixing';
|
|
25
48
|
export interface ActiveOperation {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quality-persistence.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-persistence.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM3D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACxC,WAAW,EAAE,qBAAqB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"quality-persistence.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/quality-persistence.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
/**
|
|
4
3
|
* Quality Persistence — Persists quality config, reports, and history
|
|
5
4
|
* to .mstro/quality/ in the working directory.
|
|
@@ -11,6 +10,7 @@
|
|
|
11
10
|
*/
|
|
12
11
|
import { existsSync, mkdirSync, readdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
|
|
13
12
|
import { join } from 'node:path';
|
|
13
|
+
import { gradeFromScore } from './quality-grading.js';
|
|
14
14
|
// ============================================================================
|
|
15
15
|
// Helpers
|
|
16
16
|
// ============================================================================
|
|
@@ -148,6 +148,7 @@ export class QualityPersistence {
|
|
|
148
148
|
}))
|
|
149
149
|
: undefined;
|
|
150
150
|
const issueDensity = results.scoreBreakdown?.issueDensity;
|
|
151
|
+
const dimensionScores = extractDimensionScores(results);
|
|
151
152
|
if (lastEntry && now.getTime() - lastTime < mergeWindow) {
|
|
152
153
|
const existing = lastEntry.directories.findIndex((d) => d.path === dirPath);
|
|
153
154
|
if (existing >= 0) {
|
|
@@ -158,12 +159,26 @@ export class QualityPersistence {
|
|
|
158
159
|
}
|
|
159
160
|
const totalScore = lastEntry.directories.reduce((sum, d) => sum + d.score, 0);
|
|
160
161
|
lastEntry.overall = Math.round(totalScore / lastEntry.directories.length);
|
|
161
|
-
|
|
162
|
+
// Preserve N/A when every directory is N/A; otherwise map averaged score
|
|
163
|
+
// back to a letter. `gradeFromScore` returns A-F only, so this is the
|
|
164
|
+
// only place the N/A signal could be lost during multi-directory merges.
|
|
165
|
+
const allNA = lastEntry.directories.every((d) => d.grade === 'N/A');
|
|
166
|
+
lastEntry.grade = allNA ? 'N/A' : gradeFromScore(lastEntry.overall);
|
|
162
167
|
lastEntry.timestamp = now.toISOString();
|
|
163
168
|
if (categoryScores)
|
|
164
169
|
lastEntry.categoryScores = categoryScores;
|
|
165
170
|
if (issueDensity !== undefined)
|
|
166
171
|
lastEntry.issueDensity = issueDensity;
|
|
172
|
+
if (dimensionScores)
|
|
173
|
+
lastEntry.dimensionScores = dimensionScores;
|
|
174
|
+
// Carry through whichever duration is present on this report. We
|
|
175
|
+
// overwrite — the latest scan/review is the most accurate sample for
|
|
176
|
+
// this directory. (Multi-dir merges within the 60s window write each
|
|
177
|
+
// dir's duration in turn; the final entry reflects the last write.)
|
|
178
|
+
if (typeof results.scanDurationMs === 'number')
|
|
179
|
+
lastEntry.scanDurationMs = results.scanDurationMs;
|
|
180
|
+
if (typeof results.reviewDurationMs === 'number')
|
|
181
|
+
lastEntry.reviewDurationMs = results.reviewDurationMs;
|
|
167
182
|
}
|
|
168
183
|
else {
|
|
169
184
|
history.push({
|
|
@@ -172,7 +187,10 @@ export class QualityPersistence {
|
|
|
172
187
|
grade: results.grade,
|
|
173
188
|
issueDensity,
|
|
174
189
|
categoryScores,
|
|
190
|
+
dimensionScores,
|
|
175
191
|
directories: [dirEntry],
|
|
192
|
+
scanDurationMs: results.scanDurationMs,
|
|
193
|
+
reviewDurationMs: results.reviewDurationMs,
|
|
176
194
|
});
|
|
177
195
|
}
|
|
178
196
|
while (history.length > MAX_HISTORY_ENTRIES) {
|
|
@@ -259,15 +277,23 @@ export class QualityPersistence {
|
|
|
259
277
|
return { directories, reports, history, activeOperations, pendingResults };
|
|
260
278
|
}
|
|
261
279
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
if (
|
|
268
|
-
return
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
280
|
+
// Snapshot per-dimension scores when the new rating fields are present.
|
|
281
|
+
// Older `QualityResults` objects (e.g., loaded from pre-redesign reports)
|
|
282
|
+
// omit `dimensions`, in which case we return undefined so old history rows
|
|
283
|
+
// continue to round-trip without synthesized data.
|
|
284
|
+
function extractDimensionScores(results) {
|
|
285
|
+
if (!results.dimensions)
|
|
286
|
+
return undefined;
|
|
287
|
+
const byName = new Map(results.dimensions.map((d) => [d.name, d]));
|
|
288
|
+
const sec = byName.get('security');
|
|
289
|
+
const rel = byName.get('reliability');
|
|
290
|
+
const maint = byName.get('maintainability');
|
|
291
|
+
if (!sec || !rel || !maint)
|
|
292
|
+
return undefined;
|
|
293
|
+
return {
|
|
294
|
+
security: { score: sec.score, grade: sec.grade },
|
|
295
|
+
reliability: { score: rel.score, grade: rel.grade },
|
|
296
|
+
maintainability: { score: maint.score, grade: maint.grade },
|
|
297
|
+
};
|
|
272
298
|
}
|
|
273
299
|
//# sourceMappingURL=quality-persistence.js.map
|