@windagency/valora 2.0.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -33
- package/data/agents/registry.json +3 -0
- package/data/commands/create-backlog.md +20 -8
- package/data/prompts/07_documentation/generate-backlog-artifacts.md +197 -0
- package/dist/cleanup/coordinator.d.ts.map +1 -1
- package/dist/cleanup/coordinator.js +1 -1
- package/dist/cleanup/coordinator.js.map +1 -1
- package/dist/cli/autocomplete.d.ts.map +1 -1
- package/dist/cli/autocomplete.js +2 -2
- package/dist/cli/autocomplete.js.map +1 -1
- package/dist/cli/command-executor.d.ts +1 -1
- package/dist/cli/command-executor.d.ts.map +1 -1
- package/dist/cli/command-executor.js +23 -6
- package/dist/cli/command-executor.js.map +1 -1
- package/dist/cli/command-templates.d.ts.map +1 -1
- package/dist/cli/command-templates.js +1 -1
- package/dist/cli/command-templates.js.map +1 -1
- package/dist/cli/command-validator.d.ts.map +1 -1
- package/dist/cli/command-validator.js +1 -1
- package/dist/cli/command-validator.js.map +1 -1
- package/dist/cli/commands/dashboard.d.ts.map +1 -1
- package/dist/cli/commands/dashboard.js +3 -3
- package/dist/cli/commands/dashboard.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/explore.d.ts.map +1 -1
- package/dist/cli/commands/explore.js +127 -28
- package/dist/cli/commands/explore.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +1 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/execution-coordinator.d.ts +20 -0
- package/dist/cli/execution-coordinator.d.ts.map +1 -1
- package/dist/cli/execution-coordinator.js +99 -14
- package/dist/cli/execution-coordinator.js.map +1 -1
- package/dist/cli/first-run-setup.d.ts.map +1 -1
- package/dist/cli/first-run-setup.js +2 -2
- package/dist/cli/first-run-setup.js.map +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/session-manager.d.ts +6 -0
- package/dist/cli/session-manager.d.ts.map +1 -1
- package/dist/cli/session-manager.js +31 -0
- package/dist/cli/session-manager.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/di/container.d.ts.map +1 -1
- package/dist/di/container.js +4 -1
- package/dist/di/container.js.map +1 -1
- package/dist/executor/agent-loader.d.ts.map +1 -1
- package/dist/executor/agent-loader.js +1 -1
- package/dist/executor/agent-loader.js.map +1 -1
- package/dist/executor/command-discovery.d.ts.map +1 -1
- package/dist/executor/command-discovery.js +1 -1
- package/dist/executor/command-discovery.js.map +1 -1
- package/dist/executor/dry-run-cache.d.ts.map +1 -1
- package/dist/executor/dry-run-cache.js.map +1 -1
- package/dist/executor/dry-run-strategy.d.ts.map +1 -1
- package/dist/executor/dry-run-strategy.js.map +1 -1
- package/dist/executor/hook-execution.service.d.ts.map +1 -1
- package/dist/executor/hook-execution.service.js +2 -2
- package/dist/executor/hook-execution.service.js.map +1 -1
- package/dist/executor/input-pre-resolver.d.ts.map +1 -1
- package/dist/executor/input-pre-resolver.js.map +1 -1
- package/dist/executor/pipeline-events.d.ts +1 -1
- package/dist/executor/pipeline-events.d.ts.map +1 -1
- package/dist/executor/pipeline-events.js.map +1 -1
- package/dist/executor/pipeline.d.ts +5 -0
- package/dist/executor/pipeline.d.ts.map +1 -1
- package/dist/executor/pipeline.js +22 -1
- package/dist/executor/pipeline.js.map +1 -1
- package/dist/executor/project-guidance-loader.d.ts.map +1 -1
- package/dist/executor/project-guidance-loader.js +1 -1
- package/dist/executor/project-guidance-loader.js.map +1 -1
- package/dist/executor/prompt-loader.d.ts.map +1 -1
- package/dist/executor/prompt-loader.js +1 -1
- package/dist/executor/prompt-loader.js.map +1 -1
- package/dist/executor/stage-executor.d.ts +42 -3
- package/dist/executor/stage-executor.d.ts.map +1 -1
- package/dist/executor/stage-executor.js +237 -22
- package/dist/executor/stage-executor.js.map +1 -1
- package/dist/executor/stage-output-cache.d.ts.map +1 -1
- package/dist/executor/stage-output-cache.js +1 -1
- package/dist/executor/stage-output-cache.js.map +1 -1
- package/dist/executor/tool-execution.service.d.ts.map +1 -1
- package/dist/executor/tool-execution.service.js +7 -2
- package/dist/executor/tool-execution.service.js.map +1 -1
- package/dist/executor/tools/dry-run-simulator.service.d.ts.map +1 -1
- package/dist/executor/tools/dry-run-simulator.service.js.map +1 -1
- package/dist/executor/tools/search-tools.service.d.ts.map +1 -1
- package/dist/executor/tools/search-tools.service.js +1 -1
- package/dist/executor/tools/search-tools.service.js.map +1 -1
- package/dist/executor/tools/session-tools.service.d.ts.map +1 -1
- package/dist/executor/tools/session-tools.service.js.map +1 -1
- package/dist/exploration/container-manager.d.ts.map +1 -1
- package/dist/exploration/container-manager.js +1 -1
- package/dist/exploration/container-manager.js.map +1 -1
- package/dist/exploration/dashboard-controls.d.ts +1 -1
- package/dist/exploration/dashboard-controls.d.ts.map +1 -1
- package/dist/exploration/dashboard-controls.js +6 -1
- package/dist/exploration/dashboard-controls.js.map +1 -1
- package/dist/exploration/dashboard-metrics.d.ts +1 -1
- package/dist/exploration/dashboard-metrics.d.ts.map +1 -1
- package/dist/exploration/dashboard-metrics.js.map +1 -1
- package/dist/exploration/dashboard-ui.d.ts +1 -1
- package/dist/exploration/dashboard-ui.d.ts.map +1 -1
- package/dist/exploration/dashboard-ui.js +5 -0
- package/dist/exploration/dashboard-ui.js.map +1 -1
- package/dist/exploration/execution-modes.d.ts +3 -5
- package/dist/exploration/execution-modes.d.ts.map +1 -1
- package/dist/exploration/execution-modes.js +66 -50
- package/dist/exploration/execution-modes.js.map +1 -1
- package/dist/exploration/exploration-events.d.ts +1 -1
- package/dist/exploration/exploration-events.d.ts.map +1 -1
- package/dist/exploration/exploration-events.js.map +1 -1
- package/dist/exploration/exploration-state.d.ts +4 -0
- package/dist/exploration/exploration-state.d.ts.map +1 -1
- package/dist/exploration/exploration-state.js +18 -0
- package/dist/exploration/exploration-state.js.map +1 -1
- package/dist/exploration/merge-orchestrator.d.ts.map +1 -1
- package/dist/exploration/merge-orchestrator.js +1 -1
- package/dist/exploration/merge-orchestrator.js.map +1 -1
- package/dist/exploration/orchestrator.d.ts +1 -0
- package/dist/exploration/orchestrator.d.ts.map +1 -1
- package/dist/exploration/orchestrator.js +9 -4
- package/dist/exploration/orchestrator.js.map +1 -1
- package/dist/exploration/resource-allocator.d.ts +4 -0
- package/dist/exploration/resource-allocator.d.ts.map +1 -1
- package/dist/exploration/resource-allocator.js +27 -1
- package/dist/exploration/resource-allocator.js.map +1 -1
- package/dist/exploration/result-comparator.d.ts.map +1 -1
- package/dist/exploration/result-comparator.js +3 -2
- package/dist/exploration/result-comparator.js.map +1 -1
- package/dist/exploration/safety-validator.d.ts.map +1 -1
- package/dist/exploration/safety-validator.js +3 -3
- package/dist/exploration/safety-validator.js.map +1 -1
- package/dist/exploration/shared-volume-manager.d.ts.map +1 -1
- package/dist/exploration/shared-volume-manager.js +1 -1
- package/dist/exploration/shared-volume-manager.js.map +1 -1
- package/dist/exploration/worktree-manager-secure.d.ts.map +1 -1
- package/dist/exploration/worktree-manager-secure.js +6 -4
- package/dist/exploration/worktree-manager-secure.js.map +1 -1
- package/dist/exploration/worktree-manager.d.ts.map +1 -1
- package/dist/exploration/worktree-manager.js +4 -2
- package/dist/exploration/worktree-manager.js.map +1 -1
- package/dist/llm/providers/anthropic.provider.d.ts.map +1 -1
- package/dist/llm/providers/anthropic.provider.js +2 -2
- package/dist/llm/providers/anthropic.provider.js.map +1 -1
- package/dist/llm/providers/google.provider.d.ts.map +1 -1
- package/dist/llm/providers/google.provider.js.map +1 -1
- package/dist/llm/providers/openai.provider.d.ts.map +1 -1
- package/dist/llm/providers/openai.provider.js +2 -2
- package/dist/llm/providers/openai.provider.js.map +1 -1
- package/dist/mcp/mcp-approval-cache.service.d.ts.map +1 -1
- package/dist/mcp/mcp-approval-cache.service.js +1 -1
- package/dist/mcp/mcp-approval-cache.service.js.map +1 -1
- package/dist/mcp/mcp-audit-logger.service.d.ts +11 -1
- package/dist/mcp/mcp-audit-logger.service.d.ts.map +1 -1
- package/dist/mcp/mcp-audit-logger.service.js +145 -1
- package/dist/mcp/mcp-audit-logger.service.js.map +1 -1
- package/dist/mcp/mcp-client-manager.service.d.ts.map +1 -1
- package/dist/mcp/mcp-client-manager.service.js +1 -3
- package/dist/mcp/mcp-client-manager.service.js.map +1 -1
- package/dist/mcp/sampling-service.d.ts.map +1 -1
- package/dist/mcp/sampling-service.js.map +1 -1
- package/dist/mcp/server-manager.d.ts +1 -1
- package/dist/mcp/server-manager.d.ts.map +1 -1
- package/dist/mcp/server-manager.js +1 -4
- package/dist/mcp/server-manager.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-mapping.service.d.ts +1 -1
- package/dist/mcp/tool-mapping.service.d.ts.map +1 -1
- package/dist/mcp/tool-mapping.service.js +1 -1
- package/dist/mcp/tool-mapping.service.js.map +1 -1
- package/dist/mcp/tool-registry.d.ts.map +1 -1
- package/dist/mcp/tool-registry.js.map +1 -1
- package/dist/output/logger.d.ts.map +1 -1
- package/dist/output/logger.js +12 -6
- package/dist/output/logger.js.map +1 -1
- package/dist/output/pipeline-emitter.d.ts +9 -1
- package/dist/output/pipeline-emitter.d.ts.map +1 -1
- package/dist/output/pipeline-emitter.js +20 -0
- package/dist/output/pipeline-emitter.js.map +1 -1
- package/dist/output/retention-manager.d.ts.map +1 -1
- package/dist/output/retention-manager.js +1 -1
- package/dist/output/retention-manager.js.map +1 -1
- package/dist/output/welcome-banner.d.ts.map +1 -1
- package/dist/output/welcome-banner.js +1 -0
- package/dist/output/welcome-banner.js.map +1 -1
- package/dist/package.json +8 -1
- package/dist/services/agent-capability-matcher.service.d.ts +11 -2
- package/dist/services/agent-capability-matcher.service.d.ts.map +1 -1
- package/dist/services/agent-capability-matcher.service.js +71 -40
- package/dist/services/agent-capability-matcher.service.js.map +1 -1
- package/dist/services/agent-capability-registry.service.d.ts.map +1 -1
- package/dist/services/agent-capability-registry.service.js +1 -1
- package/dist/services/agent-capability-registry.service.js.map +1 -1
- package/dist/services/agent-selection-analytics.service.d.ts +8 -0
- package/dist/services/agent-selection-analytics.service.d.ts.map +1 -1
- package/dist/services/agent-selection-analytics.service.js +17 -0
- package/dist/services/agent-selection-analytics.service.js.map +1 -1
- package/dist/services/context-analyzer.service.d.ts.map +1 -1
- package/dist/services/context-analyzer.service.js +1 -1
- package/dist/services/context-analyzer.service.js.map +1 -1
- package/dist/services/document-path-resolver.service.d.ts.map +1 -1
- package/dist/services/document-path-resolver.service.js +1 -1
- package/dist/services/document-path-resolver.service.js.map +1 -1
- package/dist/services/document-writer.service.d.ts.map +1 -1
- package/dist/services/document-writer.service.js +1 -1
- package/dist/services/document-writer.service.js.map +1 -1
- package/dist/services/dynamic-agent-resolver.service.d.ts +8 -1
- package/dist/services/dynamic-agent-resolver.service.d.ts.map +1 -1
- package/dist/services/dynamic-agent-resolver.service.js +51 -28
- package/dist/services/dynamic-agent-resolver.service.js.map +1 -1
- package/dist/services/git-stash-protection.service.d.ts.map +1 -1
- package/dist/services/git-stash-protection.service.js +1 -1
- package/dist/services/git-stash-protection.service.js.map +1 -1
- package/dist/services/idempotency-store.service.d.ts.map +1 -1
- package/dist/services/idempotency-store.service.js +1 -1
- package/dist/services/idempotency-store.service.js.map +1 -1
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/task-classifier.service.d.ts +22 -3
- package/dist/services/task-classifier.service.d.ts.map +1 -1
- package/dist/services/task-classifier.service.js +83 -44
- package/dist/services/task-classifier.service.js.map +1 -1
- package/dist/session/retention-manager.d.ts.map +1 -1
- package/dist/session/retention-manager.js +2 -2
- package/dist/session/retention-manager.js.map +1 -1
- package/dist/session/session-exporter.d.ts.map +1 -1
- package/dist/session/session-exporter.js +1 -1
- package/dist/session/session-exporter.js.map +1 -1
- package/dist/session/store.d.ts.map +1 -1
- package/dist/session/store.js +4 -3
- package/dist/session/store.js.map +1 -1
- package/dist/session/worktree-stats-tracker.d.ts +34 -0
- package/dist/session/worktree-stats-tracker.d.ts.map +1 -0
- package/dist/session/worktree-stats-tracker.js +116 -0
- package/dist/session/worktree-stats-tracker.js.map +1 -0
- package/dist/types/agent.types.d.ts +12 -2
- package/dist/types/agent.types.d.ts.map +1 -1
- package/dist/types/command.types.d.ts +14 -1
- package/dist/types/command.types.d.ts.map +1 -1
- package/dist/types/command.types.js.map +1 -1
- package/dist/types/exploration.types.d.ts +2 -1
- package/dist/types/exploration.types.d.ts.map +1 -1
- package/dist/types/mcp-client.types.d.ts +76 -0
- package/dist/types/mcp-client.types.d.ts.map +1 -1
- package/dist/types/pipeline.types.d.ts +19 -1
- package/dist/types/pipeline.types.d.ts.map +1 -1
- package/dist/types/pipeline.types.js +2 -0
- package/dist/types/pipeline.types.js.map +1 -1
- package/dist/types/session.types.d.ts +19 -0
- package/dist/types/session.types.d.ts.map +1 -1
- package/dist/ui/dashboard/components/header.d.ts +6 -0
- package/dist/ui/dashboard/components/header.d.ts.map +1 -0
- package/dist/ui/dashboard/components/header.js +10 -0
- package/dist/ui/dashboard/components/header.js.map +1 -0
- package/dist/ui/dashboard/components/help-bar.d.ts +11 -0
- package/dist/ui/dashboard/components/help-bar.d.ts.map +1 -0
- package/dist/ui/dashboard/components/help-bar.js +10 -0
- package/dist/ui/dashboard/components/help-bar.js.map +1 -0
- package/dist/ui/dashboard/components/tab-bar.d.ts +9 -0
- package/dist/ui/dashboard/components/tab-bar.d.ts.map +1 -0
- package/dist/ui/dashboard/components/tab-bar.js +20 -0
- package/dist/ui/dashboard/components/tab-bar.js.map +1 -0
- package/dist/ui/dashboard/detail-panels/command-history-panel.d.ts +9 -0
- package/dist/ui/dashboard/detail-panels/command-history-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/detail-panels/command-history-panel.js +13 -0
- package/dist/ui/dashboard/detail-panels/command-history-panel.js.map +1 -0
- package/dist/ui/dashboard/detail-panels/exploration-info-panel.d.ts +9 -0
- package/dist/ui/dashboard/detail-panels/exploration-info-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/detail-panels/exploration-info-panel.js +39 -0
- package/dist/ui/dashboard/detail-panels/exploration-info-panel.js.map +1 -0
- package/dist/ui/dashboard/detail-panels/optimization-panel.d.ts +9 -0
- package/dist/ui/dashboard/detail-panels/optimization-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/detail-panels/optimization-panel.js +53 -0
- package/dist/ui/dashboard/detail-panels/optimization-panel.js.map +1 -0
- package/dist/ui/dashboard/detail-panels/quality-panel.d.ts +9 -0
- package/dist/ui/dashboard/detail-panels/quality-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/detail-panels/quality-panel.js +90 -0
- package/dist/ui/dashboard/detail-panels/quality-panel.js.map +1 -0
- package/dist/ui/dashboard/detail-panels/running-task-panel.d.ts +9 -0
- package/dist/ui/dashboard/detail-panels/running-task-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/detail-panels/running-task-panel.js +11 -0
- package/dist/ui/dashboard/detail-panels/running-task-panel.js.map +1 -0
- package/dist/ui/dashboard/detail-panels/session-info-panel.d.ts +9 -0
- package/dist/ui/dashboard/detail-panels/session-info-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/detail-panels/session-info-panel.js +12 -0
- package/dist/ui/dashboard/detail-panels/session-info-panel.js.map +1 -0
- package/dist/ui/dashboard/detail-panels/token-usage-panel.d.ts +9 -0
- package/dist/ui/dashboard/detail-panels/token-usage-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/detail-panels/token-usage-panel.js +23 -0
- package/dist/ui/dashboard/detail-panels/token-usage-panel.js.map +1 -0
- package/dist/ui/dashboard/detail-panels/tool-calls-panel.d.ts +9 -0
- package/dist/ui/dashboard/detail-panels/tool-calls-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/detail-panels/tool-calls-panel.js +12 -0
- package/dist/ui/dashboard/detail-panels/tool-calls-panel.js.map +1 -0
- package/dist/ui/dashboard/detail-panels/worktree-stats-panel.d.ts +9 -0
- package/dist/ui/dashboard/detail-panels/worktree-stats-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/detail-panels/worktree-stats-panel.js +20 -0
- package/dist/ui/dashboard/detail-panels/worktree-stats-panel.js.map +1 -0
- package/dist/ui/dashboard/hooks/use-dashboard-data.d.ts +11 -0
- package/dist/ui/dashboard/hooks/use-dashboard-data.d.ts.map +1 -0
- package/dist/ui/dashboard/hooks/use-dashboard-data.js +105 -0
- package/dist/ui/dashboard/hooks/use-dashboard-data.js.map +1 -0
- package/dist/ui/dashboard/hooks/use-metrics-data.d.ts +66 -0
- package/dist/ui/dashboard/hooks/use-metrics-data.d.ts.map +1 -0
- package/dist/ui/dashboard/hooks/use-metrics-data.js +224 -0
- package/dist/ui/dashboard/hooks/use-metrics-data.js.map +1 -0
- package/dist/ui/dashboard/hooks/use-navigation.d.ts +25 -0
- package/dist/ui/dashboard/hooks/use-navigation.d.ts.map +1 -0
- package/dist/ui/dashboard/hooks/use-navigation.js +70 -0
- package/dist/ui/dashboard/hooks/use-navigation.js.map +1 -0
- package/dist/ui/dashboard/index.d.ts +34 -0
- package/dist/ui/dashboard/index.d.ts.map +1 -0
- package/dist/ui/dashboard/index.js +39 -0
- package/dist/ui/dashboard/index.js.map +1 -0
- package/dist/ui/dashboard/panels/active-sessions-panel.d.ts +10 -0
- package/dist/ui/dashboard/panels/active-sessions-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/panels/active-sessions-panel.js +24 -0
- package/dist/ui/dashboard/panels/active-sessions-panel.js.map +1 -0
- package/dist/ui/dashboard/panels/background-tasks-panel.d.ts +9 -0
- package/dist/ui/dashboard/panels/background-tasks-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/panels/background-tasks-panel.js +19 -0
- package/dist/ui/dashboard/panels/background-tasks-panel.js.map +1 -0
- package/dist/ui/dashboard/panels/metrics-summary-panel.d.ts +9 -0
- package/dist/ui/dashboard/panels/metrics-summary-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/panels/metrics-summary-panel.js +11 -0
- package/dist/ui/dashboard/panels/metrics-summary-panel.js.map +1 -0
- package/dist/ui/dashboard/panels/recent-commands-panel.d.ts +9 -0
- package/dist/ui/dashboard/panels/recent-commands-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/panels/recent-commands-panel.js +15 -0
- package/dist/ui/dashboard/panels/recent-commands-panel.js.map +1 -0
- package/dist/ui/dashboard/panels/server-metrics-panel.d.ts +9 -0
- package/dist/ui/dashboard/panels/server-metrics-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/panels/server-metrics-panel.js +11 -0
- package/dist/ui/dashboard/panels/server-metrics-panel.js.map +1 -0
- package/dist/ui/dashboard/panels/system-health-panel.d.ts +9 -0
- package/dist/ui/dashboard/panels/system-health-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/panels/system-health-panel.js +13 -0
- package/dist/ui/dashboard/panels/system-health-panel.js.map +1 -0
- package/dist/ui/dashboard/panels/worktree-diagram-panel.d.ts +9 -0
- package/dist/ui/dashboard/panels/worktree-diagram-panel.d.ts.map +1 -0
- package/dist/ui/dashboard/panels/worktree-diagram-panel.js +25 -0
- package/dist/ui/dashboard/panels/worktree-diagram-panel.js.map +1 -0
- package/dist/ui/dashboard/types.d.ts +65 -0
- package/dist/ui/dashboard/types.d.ts.map +1 -0
- package/dist/ui/dashboard/types.js +5 -0
- package/dist/ui/dashboard/types.js.map +1 -0
- package/dist/ui/dashboard/utils/format-helpers.d.ts +28 -0
- package/dist/ui/dashboard/utils/format-helpers.d.ts.map +1 -0
- package/dist/ui/dashboard/utils/format-helpers.js +86 -0
- package/dist/ui/dashboard/utils/format-helpers.js.map +1 -0
- package/dist/ui/dashboard/views/agent-analytics-view.d.ts +9 -0
- package/dist/ui/dashboard/views/agent-analytics-view.d.ts.map +1 -0
- package/dist/ui/dashboard/views/agent-analytics-view.js +35 -0
- package/dist/ui/dashboard/views/agent-analytics-view.js.map +1 -0
- package/dist/ui/dashboard/views/audit-log-view.d.ts +9 -0
- package/dist/ui/dashboard/views/audit-log-view.d.ts.map +1 -0
- package/dist/ui/dashboard/views/audit-log-view.js +14 -0
- package/dist/ui/dashboard/views/audit-log-view.js.map +1 -0
- package/dist/ui/dashboard/views/cache-stats-view.d.ts +9 -0
- package/dist/ui/dashboard/views/cache-stats-view.d.ts.map +1 -0
- package/dist/ui/dashboard/views/cache-stats-view.js +13 -0
- package/dist/ui/dashboard/views/cache-stats-view.js.map +1 -0
- package/dist/ui/dashboard/views/dashboard-view.d.ts +10 -0
- package/dist/ui/dashboard/views/dashboard-view.d.ts.map +1 -0
- package/dist/ui/dashboard/views/dashboard-view.js +17 -0
- package/dist/ui/dashboard/views/dashboard-view.js.map +1 -0
- package/dist/ui/dashboard/views/performance-view.d.ts +9 -0
- package/dist/ui/dashboard/views/performance-view.d.ts.map +1 -0
- package/dist/ui/dashboard/views/performance-view.js +19 -0
- package/dist/ui/dashboard/views/performance-view.js.map +1 -0
- package/dist/ui/dashboard/views/session-details-view.d.ts +13 -0
- package/dist/ui/dashboard/views/session-details-view.d.ts.map +1 -0
- package/dist/ui/dashboard/views/session-details-view.js +70 -0
- package/dist/ui/dashboard/views/session-details-view.js.map +1 -0
- package/dist/ui/dashboard-tui.d.ts +4 -29
- package/dist/ui/dashboard-tui.d.ts.map +1 -1
- package/dist/ui/dashboard-tui.js +111 -328
- package/dist/ui/dashboard-tui.js.map +1 -1
- package/dist/ui/tui-adapter.d.ts.map +1 -1
- package/dist/ui/tui-adapter.js +0 -1
- package/dist/ui/tui-adapter.js.map +1 -1
- package/dist/utils/base-retention-manager.d.ts.map +1 -1
- package/dist/utils/base-retention-manager.js +1 -1
- package/dist/utils/base-retention-manager.js.map +1 -1
- package/dist/utils/domain-keyword-registry.d.ts.map +1 -1
- package/dist/utils/domain-keyword-registry.js +112 -84
- package/dist/utils/domain-keyword-registry.js.map +1 -1
- package/dist/utils/file-lock.d.ts.map +1 -1
- package/dist/utils/file-lock.js +1 -1
- package/dist/utils/file-lock.js.map +1 -1
- package/dist/utils/heap-profiler.d.ts.map +1 -1
- package/dist/utils/heap-profiler.js +1 -1
- package/dist/utils/heap-profiler.js.map +1 -1
- package/dist/utils/performance-profiler.d.ts.map +1 -1
- package/dist/utils/performance-profiler.js +2 -2
- package/dist/utils/performance-profiler.js.map +1 -1
- package/dist/utils/resource-monitor.d.ts.map +1 -1
- package/dist/utils/resource-monitor.js +1 -1
- package/dist/utils/resource-monitor.js.map +1 -1
- package/dist/utils/safe-exec.d.ts.map +1 -1
- package/dist/utils/safe-exec.js.map +1 -1
- package/dist/utils/tracing.d.ts.map +1 -1
- package/dist/utils/tracing.js.map +1 -1
- package/package.json +8 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-helpers.d.ts","sourceRoot":"","sources":["../../../../src/ui/dashboard/utils/format-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAiBnD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAQnD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAI3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAWlF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAW7D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAIpF"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dashboard formatting utilities
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Format duration with hours, minutes, seconds
|
|
6
|
+
*/
|
|
7
|
+
export function formatDurationMs(ms) {
|
|
8
|
+
const totalSeconds = Math.floor(ms / 1000);
|
|
9
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
10
|
+
const minutes = Math.floor((totalSeconds % 3600) / 60);
|
|
11
|
+
const seconds = totalSeconds % 60;
|
|
12
|
+
const parts = [];
|
|
13
|
+
if (hours > 0) {
|
|
14
|
+
parts.push(`${hours}h`);
|
|
15
|
+
}
|
|
16
|
+
if (minutes > 0 || hours > 0) {
|
|
17
|
+
parts.push(`${minutes}m`);
|
|
18
|
+
}
|
|
19
|
+
parts.push(`${seconds}s`);
|
|
20
|
+
return parts.join(' ');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Format age (relative time)
|
|
24
|
+
*/
|
|
25
|
+
export function formatAge(timestamp) {
|
|
26
|
+
const diff = Date.now() - new Date(timestamp).getTime();
|
|
27
|
+
const seconds = Math.floor(diff / 1000);
|
|
28
|
+
if (seconds < 60)
|
|
29
|
+
return 'just now';
|
|
30
|
+
if (seconds < 3600)
|
|
31
|
+
return `${Math.floor(seconds / 60)}m ago`;
|
|
32
|
+
if (seconds < 86400)
|
|
33
|
+
return `${Math.floor(seconds / 3600)}h ago`;
|
|
34
|
+
return `${Math.floor(seconds / 86400)}d ago`;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Get context usage color based on percentage
|
|
38
|
+
*/
|
|
39
|
+
export function getContextColor(percent) {
|
|
40
|
+
if (percent > 80)
|
|
41
|
+
return 'red';
|
|
42
|
+
if (percent > 50)
|
|
43
|
+
return 'yellow';
|
|
44
|
+
return 'green';
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get status color for session status
|
|
48
|
+
*/
|
|
49
|
+
export function getStatusColor(status) {
|
|
50
|
+
switch (status) {
|
|
51
|
+
case 'active':
|
|
52
|
+
return 'green';
|
|
53
|
+
case 'failed':
|
|
54
|
+
return 'red';
|
|
55
|
+
case 'paused':
|
|
56
|
+
return 'yellow';
|
|
57
|
+
default:
|
|
58
|
+
return 'gray';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get worktree status icon
|
|
63
|
+
*/
|
|
64
|
+
export function getWorktreeStatusIcon(status) {
|
|
65
|
+
switch (status) {
|
|
66
|
+
case 'completed':
|
|
67
|
+
return '\u2713';
|
|
68
|
+
case 'failed':
|
|
69
|
+
return '\u2717';
|
|
70
|
+
case 'running':
|
|
71
|
+
return '\u25b6';
|
|
72
|
+
default:
|
|
73
|
+
return '\u25cb';
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get exploration status color
|
|
78
|
+
*/
|
|
79
|
+
export function getExplorationStatusColor(status) {
|
|
80
|
+
if (status === 'running')
|
|
81
|
+
return 'yellow';
|
|
82
|
+
if (status === 'completed')
|
|
83
|
+
return 'green';
|
|
84
|
+
return 'red';
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=format-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-helpers.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/utils/format-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAU;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;IAElC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAE1B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,SAAiB;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAExC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,UAAU,CAAC;IACpC,IAAI,OAAO,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;IAC9D,IAAI,OAAO,GAAG,KAAK;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACjE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC9C,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,KAAK,CAAC;IAC/B,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,QAAQ,CAAC;IAClC,OAAO,OAAO,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC5C,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,QAAQ;YACZ,OAAO,OAAO,CAAC;QAChB,KAAK,QAAQ;YACZ,OAAO,KAAK,CAAC;QACd,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAC;QACjB;YACC,OAAO,MAAM,CAAC;IAChB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACpD,QAAQ,MAAM,EAAE,CAAC;QAChB,KAAK,WAAW;YACf,OAAO,QAAQ,CAAC;QACjB,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAC;QACjB,KAAK,SAAS;YACb,OAAO,QAAQ,CAAC;QACjB;YACC,OAAO,QAAQ,CAAC;IAClB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc;IACvD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IAC1C,IAAI,MAAM,KAAK,WAAW;QAAE,OAAO,OAAO,CAAC;IAC3C,OAAO,KAAK,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Analytics View - Agent selection data distributions and success metrics
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import type { AgentAnalyticsData } from '../../dashboard/hooks/use-metrics-data.js';
|
|
6
|
+
export declare function AgentAnalyticsView({ data }: {
|
|
7
|
+
data: AgentAnalyticsData;
|
|
8
|
+
}): React.JSX.Element;
|
|
9
|
+
//# sourceMappingURL=agent-analytics-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-analytics-view.d.ts","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/agent-analytics-view.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAS9E,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4F5F"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getTUIAdapter } from '../../tui-adapter.interface.js';
|
|
3
|
+
const tui = getTUIAdapter();
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- Box and Text are React components which require PascalCase
|
|
5
|
+
const { Box, Text } = tui;
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- React components must use PascalCase
|
|
7
|
+
export function AgentAnalyticsView({ data }) {
|
|
8
|
+
if (!data.metrics || data.metrics.totalSelections === 0) {
|
|
9
|
+
return (_jsxs(Box, { borderColor: "white", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Agent Analytics" }), _jsx(Text, { dimColor: true, children: "No agent selection events recorded yet." })] }));
|
|
10
|
+
}
|
|
11
|
+
const { metrics, successMetrics } = data;
|
|
12
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(SummaryHeader, { metrics: metrics }), _jsxs(Box, { flexGrow: 1, marginTop: 1, children: [_jsxs(Box, { flexDirection: "column", width: "50%", children: [_jsxs(Box, { borderColor: "green", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "green", children: "Agent Distribution" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: renderDistribution(metrics.agentDistribution, 'green') })] }), Object.keys(metrics.commandDistribution).length > 0 && (_jsxs(Box, { borderColor: "yellow", borderStyle: "round", flexDirection: "column", marginTop: 1, paddingX: 1, children: [_jsx(Text, { bold: true, color: "yellow", children: "Command Distribution" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: renderDistribution(metrics.commandDistribution, 'yellow') })] }))] }), _jsxs(Box, { flexDirection: "column", marginLeft: 1, width: "50%", children: [Object.keys(metrics.reasonDistribution).length > 0 && (_jsxs(Box, { borderColor: "magenta", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "magenta", children: "Selection Reasons" }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: renderDistribution(metrics.reasonDistribution, 'magenta') })] })), successMetrics && (_jsxs(Box, { borderColor: "cyan", borderStyle: "round", flexDirection: "column", marginTop: 1, paddingX: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Success Metrics (7d)" }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Accuracy: " }), _jsxs(Text, { bold: true, color: rateColor(successMetrics.accuracy, 0.85), children: [(successMetrics.accuracy * 100).toFixed(1), "%"] })] }), _jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Completion: " }), _jsxs(Text, { bold: true, color: rateColor(successMetrics.completionRate, 0.85), children: [(successMetrics.completionRate * 100).toFixed(1), "%"] })] }), _jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Satisfaction: " }), _jsxs(Text, { bold: true, color: rateColor(successMetrics.userSatisfaction, 0.8), children: [(successMetrics.userSatisfaction * 100).toFixed(1), "%"] })] })] }), successMetrics.insights.length > 0 && (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Insights:" }), successMetrics.insights.map((insight, index) => (_jsx(Text, { children: insight }, index)))] }))] }))] })] })] }));
|
|
13
|
+
}
|
|
14
|
+
function badRateColor(value, threshold) {
|
|
15
|
+
return value > threshold ? 'red' : 'green';
|
|
16
|
+
}
|
|
17
|
+
function rateColor(value, threshold) {
|
|
18
|
+
return value >= threshold ? 'green' : 'yellow';
|
|
19
|
+
}
|
|
20
|
+
function renderDistribution(distribution, color, maxBars = 8) {
|
|
21
|
+
const entries = Object.entries(distribution)
|
|
22
|
+
.sort(([, a], [, b]) => b - a)
|
|
23
|
+
.slice(0, maxBars);
|
|
24
|
+
const maxValue = entries.length > 0 ? Math.max(...entries.map(([, v]) => v)) : 1;
|
|
25
|
+
const barWidth = 20;
|
|
26
|
+
return entries.map(([name, value]) => {
|
|
27
|
+
const filled = Math.max(1, Math.floor((value / maxValue) * barWidth));
|
|
28
|
+
return (_jsxs(Box, { children: [_jsx(Text, { children: (name.length > 15 ? name.substring(0, 12) + '...' : name).padEnd(15) }), _jsx(Text, { color: color, children: '█'.repeat(filled) }), _jsx(Text, { dimColor: true, children: '░'.repeat(barWidth - filled) }), _jsxs(Text, { children: [" ", value] })] }, name));
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- React components must use PascalCase
|
|
32
|
+
function SummaryHeader({ metrics }) {
|
|
33
|
+
return (_jsxs(Box, { borderColor: "cyan", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Agent Selection Summary (24h)" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Selections: " }), _jsx(Text, { bold: true, children: metrics.totalSelections }), _jsx(Text, { dimColor: true, children: " Avg Confidence: " }), _jsxs(Text, { bold: true, color: rateColor(metrics.averageConfidence, 0.85), children: [(metrics.averageConfidence * 100).toFixed(1), "%"] }), _jsx(Text, { dimColor: true, children: " Fallback: " }), _jsxs(Text, { bold: true, color: badRateColor(metrics.fallbackRate, 0.15), children: [(metrics.fallbackRate * 100).toFixed(1), "%"] }), _jsx(Text, { dimColor: true, children: " Override: " }), _jsxs(Text, { bold: true, color: badRateColor(metrics.manualOverrideRate, 0.2), children: [(metrics.manualOverrideRate * 100).toFixed(1), "%"] })] })] }));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=agent-analytics-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-analytics-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/agent-analytics-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audit Log View - MCP audit log viewer
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import type { AuditData } from '../../dashboard/hooks/use-metrics-data.js';
|
|
6
|
+
export declare function AuditLogView({ data }: {
|
|
7
|
+
data: AuditData;
|
|
8
|
+
}): React.JSX.Element;
|
|
9
|
+
//# sourceMappingURL=audit-log-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-log-view.d.ts","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/audit-log-view.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAUrE,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+E7E"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { formatAge } from '../../dashboard/utils/format-helpers.js';
|
|
3
|
+
import { getTUIAdapter } from '../../tui-adapter.interface.js';
|
|
4
|
+
const tui = getTUIAdapter();
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- Box and Text are React components which require PascalCase
|
|
6
|
+
const { Box, Text } = tui;
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- React components must use PascalCase
|
|
8
|
+
export function AuditLogView({ data }) {
|
|
9
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { borderColor: "cyan", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "MCP Audit Log" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Total Entries: " }), _jsx(Text, { bold: true, children: data.stats.totalEntries }), _jsx(Text, { dimColor: true, children: " Success Rate: " }), _jsxs(Text, { bold: true, color: data.stats.successRate >= 0.9 ? 'green' : 'yellow', children: [(data.stats.successRate * 100).toFixed(1), "%"] })] }), Object.keys(data.stats.byOperation).length > 0 && (_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "By Operation: " }), Object.entries(data.stats.byOperation).map(([op, count], index) => (_jsxs(Text, { children: [index > 0 ? ', ' : '', _jsx(Text, { color: "cyan", children: op }), ": ", count] }, op)))] })), Object.keys(data.stats.byServer).length > 0 && (_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "By Server: " }), Object.entries(data.stats.byServer).map(([server, count], index) => (_jsxs(Text, { children: [index > 0 ? ', ' : '', _jsx(Text, { color: "yellow", children: server }), ": ", count] }, server)))] }))] }), _jsxs(Box, { borderColor: "white", borderStyle: "round", flexDirection: "column", marginTop: 1, paddingX: 1, children: [_jsxs(Text, { bold: true, children: ["Recent Entries (", data.entries.length, ")"] }), data.entries.length === 0 ? (_jsx(Text, { dimColor: true, children: "No audit entries recorded" })) : (_jsx(Box, { flexDirection: "column", marginTop: 1, children: data.entries
|
|
10
|
+
.slice(-20)
|
|
11
|
+
.reverse()
|
|
12
|
+
.map((entry, index) => (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { children: [_jsx(Text, { bold: true, color: entry.success ? 'green' : 'red', children: entry.success ? '✓' : '✗' }), _jsxs(Text, { color: "cyan", children: [" ", entry.operation.padEnd(12)] }), _jsxs(Text, { color: "yellow", children: [' ', (entry.serverId.length > 15 ? entry.serverId.substring(0, 12) + '...' : entry.serverId).padEnd(15)] }), entry.toolName && _jsxs(Text, { children: [" ", entry.toolName] }), entry.duration_ms != null && _jsxs(Text, { dimColor: true, children: [" ", entry.duration_ms, "ms"] }), _jsxs(Text, { dimColor: true, children: [" ", formatAge(entry.timestamp.toISOString())] })] }), entry.error && (_jsx(Box, { children: _jsxs(Text, { color: "red", children: [" Error: ", entry.error] }) }))] }, index))) }))] })] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=audit-log-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit-log-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/audit-log-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache Stats View - Dry-run + stage output cache stats
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import type { CacheData } from '../../dashboard/hooks/use-metrics-data.js';
|
|
6
|
+
export declare function CacheStatsView({ data }: {
|
|
7
|
+
data: CacheData;
|
|
8
|
+
}): React.JSX.Element;
|
|
9
|
+
//# sourceMappingURL=cache-stats-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-stats-view.d.ts","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/cache-stats-view.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAUrE,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAsE/E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { formatDurationMs } from '../../dashboard/utils/format-helpers.js';
|
|
3
|
+
import { getTUIAdapter } from '../../tui-adapter.interface.js';
|
|
4
|
+
const tui = getTUIAdapter();
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- Box and Text are React components which require PascalCase
|
|
6
|
+
const { Box, Text } = tui;
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- React components must use PascalCase
|
|
8
|
+
export function CacheStatsView({ data }) {
|
|
9
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Box, { borderColor: "green", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "green", children: "Dry Run Cache" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Entries: " }), _jsx(Text, { bold: true, color: "cyan", children: data.dryRunCache.size }), _jsx(Text, { dimColor: true, children: " / 50 max" })] }), data.dryRunCache.entries.length > 0 ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [data.dryRunCache.entries.slice(0, 10).map((entry, index) => (_jsxs(Box, { children: [_jsx(Text, { color: "cyan", children: (entry.commandName.length > 25
|
|
10
|
+
? entry.commandName.substring(0, 22) + '...'
|
|
11
|
+
: entry.commandName).padEnd(25) }), _jsxs(Text, { dimColor: true, children: [" age: ", formatDurationMs(entry.ageMs)] })] }, index))), data.dryRunCache.entries.length > 10 && (_jsxs(Text, { dimColor: true, children: ["...and ", data.dryRunCache.entries.length - 10, " more"] }))] })) : (_jsx(Text, { dimColor: true, children: "No cached entries" }))] }), _jsxs(Box, { borderColor: "yellow", borderStyle: "round", flexDirection: "column", marginTop: 1, paddingX: 1, children: [_jsx(Text, { bold: true, color: "yellow", children: "Stage Output Cache" }), _jsxs(Box, { marginTop: 1, children: [_jsx(Text, { dimColor: true, children: "Entries: " }), _jsx(Text, { bold: true, color: "cyan", children: data.stageOutputCache.size }), _jsx(Text, { dimColor: true, children: " / 100 max" })] }), data.stageOutputCache.entries.length > 0 ? (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [data.stageOutputCache.entries.slice(0, 10).map((entry, index) => (_jsxs(Box, { children: [_jsx(Text, { color: "yellow", children: (entry.stageId.length > 20 ? entry.stageId.substring(0, 17) + '...' : entry.stageId).padEnd(20) }), _jsxs(Text, { dimColor: true, children: [" age: ", formatDurationMs(entry.ageMs)] }), entry.savedTime_ms > 0 && _jsxs(Text, { color: "green", children: [" saved: ", formatDurationMs(entry.savedTime_ms)] })] }, index))), data.stageOutputCache.entries.length > 10 && (_jsxs(Text, { dimColor: true, children: ["...and ", data.stageOutputCache.entries.length - 10, " more"] }))] })) : (_jsx(Text, { dimColor: true, children: "No cached entries" }))] })] }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=cache-stats-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-stats-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/cache-stats-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dashboard View - Main overview two-column layout
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import type { DashboardData } from '../../dashboard/types.js';
|
|
6
|
+
export declare function DashboardView({ data, selectedIndex }: {
|
|
7
|
+
data: DashboardData;
|
|
8
|
+
selectedIndex: number;
|
|
9
|
+
}): React.JSX.Element;
|
|
10
|
+
//# sourceMappingURL=dashboard-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-view.d.ts","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/dashboard-view.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAgBxD,wBAAgB,aAAa,CAAC,EAC7B,IAAI,EACJ,aAAa,EACb,EAAE;IACF,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACtB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgCpB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ActiveSessionsPanel } from '../../dashboard/panels/active-sessions-panel.js';
|
|
3
|
+
import { BackgroundTasksPanel } from '../../dashboard/panels/background-tasks-panel.js';
|
|
4
|
+
import { MetricsSummaryPanel } from '../../dashboard/panels/metrics-summary-panel.js';
|
|
5
|
+
import { RecentCommandsPanel } from '../../dashboard/panels/recent-commands-panel.js';
|
|
6
|
+
import { MCPMetricsPanel } from '../../dashboard/panels/server-metrics-panel.js';
|
|
7
|
+
import { SystemHealthPanel } from '../../dashboard/panels/system-health-panel.js';
|
|
8
|
+
import { WorktreeDiagramPanel } from '../../dashboard/panels/worktree-diagram-panel.js';
|
|
9
|
+
import { getTUIAdapter } from '../../tui-adapter.interface.js';
|
|
10
|
+
const tui = getTUIAdapter();
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- Box and Text are React components which require PascalCase
|
|
12
|
+
const { Box } = tui;
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- React components must use PascalCase
|
|
14
|
+
export function DashboardView({ data, selectedIndex }) {
|
|
15
|
+
return (_jsxs(Box, { flexDirection: "column", children: [data.metricsSummary && (_jsx(Box, { marginBottom: 1, children: _jsx(MetricsSummaryPanel, { summary: data.metricsSummary }) })), _jsxs(Box, { flexGrow: 1, children: [_jsxs(Box, { flexDirection: "column", width: "65%", children: [_jsx(ActiveSessionsPanel, { selectedIndex: selectedIndex, sessions: data.activeSessions }), _jsx(Box, { marginTop: 1, children: _jsx(BackgroundTasksPanel, { tasks: data.backgroundTasks }) })] }), _jsxs(Box, { flexDirection: "column", marginLeft: 1, width: "35%", children: [_jsx(SystemHealthPanel, { health: data.systemHealth }), _jsx(Box, { marginTop: 1, children: _jsx(WorktreeDiagramPanel, { worktrees: data.worktrees }) }), data.mcpMetrics && (_jsx(Box, { marginTop: 1, children: _jsx(MCPMetricsPanel, { metrics: data.mcpMetrics }) })), _jsx(Box, { marginTop: 1, children: _jsx(RecentCommandsPanel, { commands: data.recentCommands }) })] })] })] }));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=dashboard-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/dashboard-view.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;AAC5B,8HAA8H;AAC9H,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;AAEpB,wGAAwG;AACxG,MAAM,UAAU,aAAa,CAAC,EAC7B,IAAI,EACJ,aAAa,EAIb;IACA,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,IAAI,CAAC,cAAc,IAAI,CACvB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YACnB,KAAC,mBAAmB,IAAC,OAAO,EAAE,IAAI,CAAC,cAAc,GAAI,GAChD,CACN,EACD,MAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,aACf,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,KAAK,EAAC,KAAK,aACtC,KAAC,mBAAmB,IAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAI,EACpF,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,oBAAoB,IAAC,KAAK,EAAE,IAAI,CAAC,eAAe,GAAI,GAChD,IACD,EACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAC,KAAK,aACrD,KAAC,iBAAiB,IAAC,MAAM,EAAE,IAAI,CAAC,YAAY,GAAI,EAChD,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,oBAAoB,IAAC,SAAS,EAAE,IAAI,CAAC,SAAS,GAAI,GAC9C,EACL,IAAI,CAAC,UAAU,IAAI,CACnB,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,eAAe,IAAC,OAAO,EAAE,IAAI,CAAC,UAAU,GAAI,GACxC,CACN,EACD,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YAChB,KAAC,mBAAmB,IAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAI,GACjD,IACD,IACD,IACD,CACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Performance View - MetricsCollector data: counters, gauges, histograms
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import type { PerformanceData } from '../../dashboard/hooks/use-metrics-data.js';
|
|
6
|
+
export declare function PerformanceView({ data }: {
|
|
7
|
+
data: PerformanceData;
|
|
8
|
+
}): React.JSX.Element;
|
|
9
|
+
//# sourceMappingURL=performance-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-view.d.ts","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/performance-view.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAU3E,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwHtF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ResourceGauge, Sparkline } from '../../../exploration/dashboard-metrics.js';
|
|
3
|
+
import { getTUIAdapter } from '../../tui-adapter.interface.js';
|
|
4
|
+
const tui = getTUIAdapter();
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- Box and Text are React components which require PascalCase
|
|
6
|
+
const { Box, Text } = tui;
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- React components must use PascalCase
|
|
8
|
+
export function PerformanceView({ data }) {
|
|
9
|
+
const hasData = data.counters.length > 0 || data.gauges.length > 0 || data.histograms.length > 0;
|
|
10
|
+
if (!hasData) {
|
|
11
|
+
return (_jsxs(Box, { borderColor: "white", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsx(Text, { bold: true, color: "cyan", children: "Performance Metrics" }), _jsx(Text, { dimColor: true, children: "No metrics collected yet. Run some commands to generate metrics." })] }));
|
|
12
|
+
}
|
|
13
|
+
return (_jsx(Box, { flexDirection: "column", children: _jsxs(Box, { flexGrow: 1, children: [_jsxs(Box, { flexDirection: "column", width: "50%", children: [data.counters.length > 0 && (_jsxs(Box, { borderColor: "green", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsxs(Text, { bold: true, color: "green", children: ["Counters (", data.counters.length, ")"] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [data.counters.slice(0, 15).map((counter, index) => (_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: counter.name.padEnd(30) }), _jsx(Text, { bold: true, color: "cyan", children: counter.value })] }, index))), data.counters.length > 15 && _jsxs(Text, { dimColor: true, children: ["...and ", data.counters.length - 15, " more"] })] })] })), data.histograms.length > 0 && (_jsxs(Box, { borderColor: "yellow", borderStyle: "round", flexDirection: "column", marginTop: 1, paddingX: 1, children: [_jsxs(Text, { bold: true, color: "yellow", children: ["Histograms (", data.histograms.length, ")"] }), _jsx(Box, { flexDirection: "column", marginTop: 1, children: data.histograms.slice(0, 5).map((histogram, index) => {
|
|
14
|
+
const bucketValues = Object.values(histogram.buckets);
|
|
15
|
+
const avg = histogram.count > 0 ? histogram.sum / histogram.count : 0;
|
|
16
|
+
return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { children: [_jsx(Text, { bold: true, children: histogram.name }), _jsxs(Text, { dimColor: true, children: [' ', "(count: ", histogram.count, ", avg: ", avg.toFixed(1), ")"] })] }), bucketValues.length > 0 && (_jsx(Sparkline, { color: "yellow", data: bucketValues, height: 2, width: 25 }))] }, index));
|
|
17
|
+
}) })] }))] }), _jsxs(Box, { flexDirection: "column", marginLeft: 1, width: "50%", children: [data.gauges.length > 0 && (_jsxs(Box, { borderColor: "cyan", borderStyle: "round", flexDirection: "column", paddingX: 1, children: [_jsxs(Text, { bold: true, color: "cyan", children: ["Gauges (", data.gauges.length, ")"] }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [data.gauges.slice(0, 10).map((gauge, index) => (_jsx(Box, { marginBottom: index < data.gauges.length - 1 ? 0 : 0, children: _jsx(ResourceGauge, { label: gauge.name.length > 20 ? gauge.name.substring(0, 17) + '...' : gauge.name, max: Math.max(gauge.value * 1.5, 100), unit: "", value: gauge.value, width: 20 }) }, index))), data.gauges.length > 10 && _jsxs(Text, { dimColor: true, children: ["...and ", data.gauges.length - 10, " more"] })] })] })), data.snapshot && (_jsxs(Box, { borderColor: "white", borderStyle: "round", flexDirection: "column", marginTop: 1, paddingX: 1, children: [_jsx(Text, { bold: true, color: "white", children: "Snapshot Info" }), _jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Uptime: " }), _jsxs(Text, { children: [(data.snapshot.uptime / 1000).toFixed(0), "s"] })] }), _jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Collection Time: " }), _jsxs(Text, { children: [data.snapshot.collectionDuration, "ms"] })] }), _jsxs(Box, { children: [_jsx(Text, { dimColor: true, children: "Counters: " }), _jsx(Text, { children: data.snapshot.counters.length }), _jsx(Text, { dimColor: true, children: " Gauges: " }), _jsx(Text, { children: data.snapshot.gauges.length }), _jsx(Text, { dimColor: true, children: " Histograms: " }), _jsx(Text, { children: data.snapshot.histograms.length })] })] })] }))] })] }) }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=performance-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/performance-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Details View - Enhanced with sub-tabs
|
|
3
|
+
*/
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import type { Session } from '../../../types/session.types.js';
|
|
6
|
+
import type { SessionSubTab } from '../../dashboard/types.js';
|
|
7
|
+
export declare function SessionDetailsView({ activeSubTab, onBack, onExit, session }: {
|
|
8
|
+
activeSubTab: SessionSubTab;
|
|
9
|
+
onBack: () => void;
|
|
10
|
+
onExit: () => void;
|
|
11
|
+
session: Session;
|
|
12
|
+
}): React.JSX.Element;
|
|
13
|
+
//# sourceMappingURL=session-details-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-details-view.d.ts","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/session-details-view.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA0BxD,wBAAgB,kBAAkB,CAAC,EAClC,YAAY,EACZ,MAAM,EACN,MAAM,EACN,OAAO,EACP,EAAE;IACF,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CACjB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAsDpB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Session Details View - Enhanced with sub-tabs
|
|
4
|
+
*/
|
|
5
|
+
import { useEffect, useState } from 'react';
|
|
6
|
+
import { getMCPAuditLogger } from '../../../mcp/mcp-audit-logger.service.js';
|
|
7
|
+
import { CommandHistoryPanel } from '../../dashboard/detail-panels/command-history-panel.js';
|
|
8
|
+
import { ExplorationInfoPanel } from '../../dashboard/detail-panels/exploration-info-panel.js';
|
|
9
|
+
import { OptimizationPanel } from '../../dashboard/detail-panels/optimization-panel.js';
|
|
10
|
+
import { QualityPanel } from '../../dashboard/detail-panels/quality-panel.js';
|
|
11
|
+
import { RunningTaskPanel } from '../../dashboard/detail-panels/running-task-panel.js';
|
|
12
|
+
import { SessionInfoPanel } from '../../dashboard/detail-panels/session-info-panel.js';
|
|
13
|
+
import { TokenUsagePanel } from '../../dashboard/detail-panels/token-usage-panel.js';
|
|
14
|
+
import { MCPSessionPanel } from '../../dashboard/detail-panels/tool-calls-panel.js';
|
|
15
|
+
import { WorktreeStatsPanel } from '../../dashboard/detail-panels/worktree-stats-panel.js';
|
|
16
|
+
import { getTUIAdapter } from '../../tui-adapter.interface.js';
|
|
17
|
+
const tui = getTUIAdapter();
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- Box and Text are React components which require PascalCase
|
|
19
|
+
const { Box, Text } = tui;
|
|
20
|
+
const SUB_TAB_CONFIG = [
|
|
21
|
+
{ label: 'Overview', tab: 'overview' },
|
|
22
|
+
{ label: 'Optimisation', tab: 'optimization' },
|
|
23
|
+
{ label: 'Quality', tab: 'quality' },
|
|
24
|
+
{ label: 'Tokens', tab: 'tokens' }
|
|
25
|
+
];
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- React components must use PascalCase
|
|
27
|
+
export function SessionDetailsView({ activeSubTab, onBack, onExit, session }) {
|
|
28
|
+
const [, setTick] = useState(0);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (session.status !== 'active')
|
|
31
|
+
return;
|
|
32
|
+
const interval = setInterval(() => setTick((t) => t + 1), 1000);
|
|
33
|
+
return () => clearInterval(interval);
|
|
34
|
+
}, [session.status]);
|
|
35
|
+
tui.useInput((input, key) => {
|
|
36
|
+
if (key.escape || input === 'q') {
|
|
37
|
+
onBack();
|
|
38
|
+
}
|
|
39
|
+
else if (key.ctrl && input === 'c') {
|
|
40
|
+
onExit();
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Box, { borderColor: "cyan", borderStyle: "round", marginBottom: 1, paddingX: 1, children: _jsxs(Text, { bold: true, color: "cyan", children: ["Session Details: ", session.session_id] }) }), _jsxs(Box, { marginBottom: 1, children: [SUB_TAB_CONFIG.map((config) => {
|
|
44
|
+
const isActive = config.tab === activeSubTab;
|
|
45
|
+
return (_jsx(Box, { marginRight: 1, children: _jsxs(Text, { backgroundColor: isActive ? 'cyan' : undefined, bold: isActive, color: isActive ? 'black' : 'white', children: [' ', config.label, ' '] }) }, config.tab));
|
|
46
|
+
}), _jsx(Text, { dimColor: true, children: " ([/] switch)" })] }), _jsx(SubTabContent, { activeSubTab: activeSubTab, session: session }), _jsx(Box, { borderColor: "white", borderStyle: "round", paddingX: 1, children: _jsxs(Text, { dimColor: true, children: ["Press ", _jsx(Text, { color: "cyan", children: "[/]" }), " to switch sub-tabs, ", _jsx(Text, { color: "cyan", children: "q" }), " or", ' ', _jsx(Text, { color: "cyan", children: "Esc" }), " to go back"] }) })] }));
|
|
47
|
+
}
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- React components must use PascalCase
|
|
49
|
+
function OverviewContent({ session }) {
|
|
50
|
+
const isRunning = session.status === 'active';
|
|
51
|
+
const elapsedMs = isRunning ? Date.now() - new Date(session.updated_at).getTime() : 0;
|
|
52
|
+
const worktreeStats = session.context?.['worktree_stats'];
|
|
53
|
+
const explorationId = session.context?.['exploration_id'];
|
|
54
|
+
const mcpMetrics = getMCPAuditLogger().getDashboardMetrics();
|
|
55
|
+
return (_jsxs(_Fragment, { children: [_jsx(SessionInfoPanel, { session: session }), isRunning && session.current_command && (_jsx(RunningTaskPanel, { command: session.current_command, elapsedMs: elapsedMs })), _jsx(ExplorationInfoPanel, { explorationId: explorationId, sessionId: session.session_id }), mcpMetrics.totalToolCalls > 0 && _jsx(MCPSessionPanel, { metrics: mcpMetrics }), _jsx(CommandHistoryPanel, { session: session }), worktreeStats && worktreeStats.total_created > 0 && _jsx(WorktreeStatsPanel, { stats: worktreeStats })] }));
|
|
56
|
+
}
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- React components must use PascalCase
|
|
58
|
+
function SubTabContent({ activeSubTab, session }) {
|
|
59
|
+
switch (activeSubTab) {
|
|
60
|
+
case 'optimization':
|
|
61
|
+
return _jsx(OptimizationPanel, { session: session });
|
|
62
|
+
case 'quality':
|
|
63
|
+
return _jsx(QualityPanel, { session: session });
|
|
64
|
+
case 'tokens':
|
|
65
|
+
return _jsx(TokenUsagePanel, { session: session });
|
|
66
|
+
default:
|
|
67
|
+
return _jsx(OverviewContent, { session: session });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=session-details-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-details-view.js","sourceRoot":"","sources":["../../../../src/ui/dashboard/views/session-details-view.tsx"],"names":[],"mappings":";AAAA;;GAEG;AAEH,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;AAC5B,8HAA8H;AAC9H,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;AAE1B,MAAM,cAAc,GAAiD;IACpE,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;IACtC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE;IAC9C,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;IACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE;CAClC,CAAC;AAEF,wGAAwG;AACxG,MAAM,UAAU,kBAAkB,CAAC,EAClC,YAAY,EACZ,MAAM,EACN,MAAM,EACN,OAAO,EAMP;IACA,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEhC,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;QACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChE,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAErB,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC3B,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACjC,MAAM,EAAE,CAAC;QACV,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACtC,MAAM,EAAE,CAAC;QACV,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,CACN,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aACtC,KAAC,GAAG,IAAC,WAAW,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,EAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,YACvE,MAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAC,MAAM,kCACJ,OAAO,CAAC,UAAU,IAC9B,GACF,EAGN,MAAC,GAAG,IAAC,YAAY,EAAE,CAAC,aAClB,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,KAAK,YAAY,CAAC;wBAC7C,OAAO,CACN,KAAC,GAAG,IAAkB,WAAW,EAAE,CAAC,YACnC,MAAC,IAAI,IACJ,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC9C,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,aAClC,GAAG,EACH,MAAM,CAAC,KAAK,EAAE,GAAG,IACZ,IAPE,MAAM,CAAC,GAAG,CAQd,CACN,CAAC;oBACH,CAAC,CAAC,EACF,KAAC,IAAI,IAAC,QAAQ,oCAAqB,IAC9B,EAEN,KAAC,aAAa,IAAC,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAI,EAE/D,KAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,OAAO,EAAC,QAAQ,EAAE,CAAC,YACvD,MAAC,IAAI,IAAC,QAAQ,6BACP,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,oBAAW,2BAAqB,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,kBAAS,SAAI,GAAG,EAC1F,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,oBAAW,mBACvB,GACF,IACD,CACN,CAAC;AACH,CAAC;AAED,wGAAwG;AACxG,SAAS,eAAe,CAAC,EAAE,OAAO,EAAwB;IACzD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC;IAC9C,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAmC,CAAC;IAC5F,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAuB,CAAC;IAChF,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC,mBAAmB,EAAE,CAAC;IAE7D,OAAO,CACN,8BACC,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,GAAI,EAErC,SAAS,IAAI,OAAO,CAAC,eAAe,IAAI,CACxC,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,SAAS,EAAE,SAAS,GAAI,CAC5E,EAED,KAAC,oBAAoB,IAAC,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,GAAI,EAEpF,UAAU,CAAC,cAAc,GAAG,CAAC,IAAI,KAAC,eAAe,IAAC,OAAO,EAAE,UAAU,GAAI,EAE1E,KAAC,mBAAmB,IAAC,OAAO,EAAE,OAAO,GAAI,EAExC,aAAa,IAAI,aAAa,CAAC,aAAa,GAAG,CAAC,IAAI,KAAC,kBAAkB,IAAC,KAAK,EAAE,aAAa,GAAI,IAC/F,CACH,CAAC;AACH,CAAC;AAED,wGAAwG;AACxG,SAAS,aAAa,CAAC,EACtB,YAAY,EACZ,OAAO,EAIP;IACA,QAAQ,YAAY,EAAE,CAAC;QACtB,KAAK,cAAc;YAClB,OAAO,KAAC,iBAAiB,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC;QAChD,KAAK,SAAS;YACb,OAAO,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC;QAC3C,KAAK,QAAQ;YACZ,OAAO,KAAC,eAAe,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC;QAC9C;YACC,OAAO,KAAC,eAAe,IAAC,OAAO,EAAE,OAAO,GAAI,CAAC;IAC/C,CAAC;AACF,CAAC"}
|
|
@@ -1,36 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Dashboard TUI - Real-time dashboard for monitoring sessions and system health
|
|
3
3
|
* Built with Ink (modern React-based TUI framework)
|
|
4
|
+
*
|
|
5
|
+
* Root shell that composes modular components from ./dashboard/
|
|
4
6
|
*/
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* Format duration with hours, minutes, seconds, milliseconds when applicable
|
|
8
|
-
*/
|
|
9
|
-
export interface BackgroundTask {
|
|
10
|
-
id: string;
|
|
11
|
-
name: string;
|
|
12
|
-
progress: number;
|
|
13
|
-
startedAt?: string;
|
|
14
|
-
status: 'completed' | 'failed' | 'running';
|
|
15
|
-
}
|
|
16
|
-
export interface DashboardData {
|
|
17
|
-
activeSessions: SessionSummary[];
|
|
18
|
-
backgroundTasks: BackgroundTask[];
|
|
19
|
-
recentCommands: RecentCommand[];
|
|
20
|
-
systemHealth: SystemHealth;
|
|
21
|
-
}
|
|
22
|
-
export interface RecentCommand {
|
|
23
|
-
agent: string;
|
|
24
|
-
command: string;
|
|
25
|
-
status: 'failed' | 'running' | 'success';
|
|
26
|
-
timestamp: string;
|
|
27
|
-
}
|
|
28
|
-
export interface SystemHealth {
|
|
29
|
-
apiStatus: 'degraded' | 'healthy' | 'offline';
|
|
30
|
-
diskUsage: string;
|
|
31
|
-
sessionsCount: number;
|
|
32
|
-
uptime: number;
|
|
33
|
-
}
|
|
7
|
+
export type { BackgroundTask, DashboardData, RecentCommand, SystemHealth, WorktreeDiagramEntry } from './dashboard/types.js';
|
|
8
|
+
export { formatDurationMs } from './dashboard/utils/format-helpers.js';
|
|
34
9
|
/**
|
|
35
10
|
* Start the dashboard
|
|
36
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-tui.d.ts","sourceRoot":"","sources":["../../src/ui/dashboard-tui.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dashboard-tui.d.ts","sourceRoot":"","sources":["../../src/ui/dashboard-tui.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,YAAY,EACX,cAAc,EACd,aAAa,EACb,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAqNpE;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAgBrC"}
|