codingbuddy 4.1.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/agent/agent-summary.utils.d.ts +2 -1
- package/dist/src/analyzer/conventions.schemas.d.ts +0 -4
- package/dist/src/analyzer/conventions.schemas.js.map +1 -1
- package/dist/src/analyzer/conventions.types.d.ts +5 -7
- package/dist/src/analyzer/conventions.types.js.map +1 -1
- package/dist/src/analyzer/directory.analyzer.d.ts +1 -1
- package/dist/src/checklist/checklist.schema.d.ts +2 -1
- package/dist/src/cli/cli.d.ts +2 -3
- package/dist/src/cli/cli.js +4 -3
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/cli/cli.types.d.ts +3 -0
- package/dist/src/cli/init/claude-settings.utils.d.ts +2 -1
- package/dist/src/cli/init/config.generator.d.ts +0 -2
- package/dist/src/cli/init/config.generator.js +0 -2
- package/dist/src/cli/init/config.generator.js.map +1 -1
- package/dist/src/cli/init/config.writer.d.ts +0 -1
- package/dist/src/cli/init/config.writer.js +0 -1
- package/dist/src/cli/init/config.writer.js.map +1 -1
- package/dist/src/cli/init/init.constants.js +1 -0
- package/dist/src/cli/init/init.constants.js.map +1 -1
- package/dist/src/cli/init/init.wizard.d.ts +2 -1
- package/dist/src/cli/init/prompts/agent-prompt.d.ts +1 -1
- package/dist/src/cli/restart-tui.d.ts +9 -0
- package/dist/src/cli/restart-tui.js +30 -0
- package/dist/src/cli/restart-tui.js.map +1 -0
- package/dist/src/cli/run-tui.d.ts +3 -3
- package/dist/src/cli/run-tui.js +32 -58
- package/dist/src/cli/run-tui.js.map +1 -1
- package/dist/src/config/config.loader.d.ts +0 -2
- package/dist/src/config/config.loader.js +0 -2
- package/dist/src/config/config.loader.js.map +1 -1
- package/dist/src/config/config.schema.d.ts +0 -16
- package/dist/src/config/config.schema.js +7 -7
- package/dist/src/config/config.schema.js.map +1 -1
- package/dist/src/context/context-document.types.d.ts +0 -8
- package/dist/src/context/context-document.types.js +9 -9
- package/dist/src/context/context-document.types.js.map +1 -1
- package/dist/src/context/context-parser.utils.d.ts +1 -9
- package/dist/src/context/context-parser.utils.js +0 -36
- package/dist/src/context/context-parser.utils.js.map +1 -1
- package/dist/src/keyword/keyword.service.js +5 -1
- package/dist/src/keyword/keyword.service.js.map +1 -1
- package/dist/src/keyword/keyword.types.d.ts +3 -7
- package/dist/src/keyword/keyword.types.js +31 -1
- package/dist/src/keyword/keyword.types.js.map +1 -1
- package/dist/src/keyword/patterns/backend.patterns.js +10 -0
- package/dist/src/keyword/patterns/backend.patterns.js.map +1 -1
- package/dist/src/keyword/patterns/context.patterns.js +1 -1
- package/dist/src/keyword/patterns/data-science.patterns.d.ts +2 -0
- package/dist/src/keyword/patterns/data-science.patterns.js +71 -0
- package/dist/src/keyword/patterns/data-science.patterns.js.map +1 -0
- package/dist/src/keyword/patterns/index.d.ts +3 -0
- package/dist/src/keyword/patterns/index.js +7 -1
- package/dist/src/keyword/patterns/index.js.map +1 -1
- package/dist/src/keyword/patterns/intent-pattern-checks.js +24 -0
- package/dist/src/keyword/patterns/intent-pattern-checks.js.map +1 -1
- package/dist/src/keyword/patterns/security.patterns.d.ts +2 -0
- package/dist/src/keyword/patterns/security.patterns.js +106 -0
- package/dist/src/keyword/patterns/security.patterns.js.map +1 -0
- package/dist/src/keyword/patterns/systems.patterns.d.ts +2 -0
- package/dist/src/keyword/patterns/systems.patterns.js +101 -0
- package/dist/src/keyword/patterns/systems.patterns.js.map +1 -0
- package/dist/src/keyword/patterns/test.patterns.d.ts +2 -0
- package/dist/src/keyword/patterns/test.patterns.js +71 -0
- package/dist/src/keyword/patterns/test.patterns.js.map +1 -0
- package/dist/src/keyword/srp-template.d.ts +0 -2
- package/dist/src/keyword/srp-template.js +0 -2
- package/dist/src/keyword/srp-template.js.map +1 -1
- package/dist/src/keyword/strategies/__tests__/strategy-test.utils.d.ts +1 -1
- package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js +4 -0
- package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js.map +1 -1
- package/dist/src/keyword/strategies/act-agent.strategy.js +2 -2
- package/dist/src/keyword/strategies/act-agent.strategy.js.map +1 -1
- package/dist/src/main.js +30 -9
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp/handlers/index.d.ts +1 -0
- package/dist/src/mcp/handlers/index.js +3 -1
- package/dist/src/mcp/handlers/index.js.map +1 -1
- package/dist/src/mcp/handlers/mode.handler.js +15 -1
- package/dist/src/mcp/handlers/mode.handler.js.map +1 -1
- package/dist/src/mcp/handlers/tui.handler.d.ts +8 -0
- package/dist/src/mcp/handlers/tui.handler.js +50 -0
- package/dist/src/mcp/handlers/tui.handler.js.map +1 -0
- package/dist/src/mcp/mcp.module.js +1 -0
- package/dist/src/mcp/mcp.module.js.map +1 -1
- package/dist/src/rules/rules.types.d.ts +3 -2
- package/dist/src/rules/skill.schema.d.ts +0 -5
- package/dist/src/rules/skill.schema.js +3 -3
- package/dist/src/rules/skill.schema.js.map +1 -1
- package/dist/src/shared/async.utils.d.ts +3 -2
- package/dist/src/shared/file.utils.d.ts +3 -2
- package/dist/src/shared/filesystem.interface.d.ts +0 -10
- package/dist/src/shared/filesystem.interface.js +1 -10
- package/dist/src/shared/filesystem.interface.js.map +1 -1
- package/dist/src/shared/keyword-core.d.ts +2 -1
- package/dist/src/shared/keyword-core.js +3 -1
- package/dist/src/shared/keyword-core.js.map +1 -1
- package/dist/src/shared/language.types.d.ts +2 -1
- package/dist/src/shared/lru-cache.d.ts +2 -6
- package/dist/src/shared/path.utils.d.ts +0 -1
- package/dist/src/shared/path.utils.js +0 -1
- package/dist/src/shared/path.utils.js.map +1 -1
- package/dist/src/shared/pattern-matcher.d.ts +2 -1
- package/dist/src/shared/rules-core.d.ts +3 -2
- package/dist/src/shared/security.utils.d.ts +4 -3
- package/dist/src/shared/validation.constants.d.ts +2 -3
- package/dist/src/shared/validation.constants.js +3 -3
- package/dist/src/shared/validation.constants.js.map +1 -1
- package/dist/src/shared/verbosity.types.d.ts +2 -1
- package/dist/src/shared/version.d.ts +1 -0
- package/dist/src/shared/version.js +5 -0
- package/dist/src/shared/version.js.map +1 -0
- package/dist/src/shared/version.utils.js +2 -14
- package/dist/src/shared/version.utils.js.map +1 -1
- package/dist/src/skill/skill-content.utils.d.ts +0 -1
- package/dist/src/skill/skill-content.utils.js +4 -4
- package/dist/src/skill/skill-content.utils.js.map +1 -1
- package/dist/src/tui/__perf__/memory-stability.spec.js +8 -8
- package/dist/src/tui/__perf__/memory-stability.spec.js.map +1 -1
- package/dist/src/tui/__perf__/rendering-performance.spec.js +13 -13
- package/dist/src/tui/__perf__/rendering-performance.spec.js.map +1 -1
- package/dist/src/tui/components/ActivityVisualizer.d.ts +14 -0
- package/dist/src/tui/components/ActivityVisualizer.js +21 -0
- package/dist/src/tui/components/ActivityVisualizer.js.map +1 -0
- package/dist/src/tui/components/ActivityVisualizer.spec.js +91 -0
- package/dist/src/tui/components/ActivityVisualizer.spec.js.map +1 -0
- package/dist/src/tui/components/ChecklistPanel.d.ts +10 -0
- package/dist/src/tui/components/ChecklistPanel.js +19 -0
- package/dist/src/tui/components/ChecklistPanel.js.map +1 -0
- package/dist/src/tui/components/ChecklistPanel.spec.js +45 -0
- package/dist/src/tui/components/ChecklistPanel.spec.js.map +1 -0
- package/dist/src/tui/components/ContextSection.d.ts +7 -0
- package/dist/src/tui/components/ContextSection.js +24 -0
- package/dist/src/tui/components/ContextSection.js.map +1 -0
- package/dist/src/tui/components/FlowMap.d.ts +12 -0
- package/dist/src/tui/components/FlowMap.js +55 -0
- package/dist/src/tui/components/FlowMap.js.map +1 -0
- package/dist/src/tui/components/FlowMap.spec.js +59 -0
- package/dist/src/tui/components/FlowMap.spec.js.map +1 -0
- package/dist/src/tui/components/FocusedAgentPanel.d.ts +13 -0
- package/dist/src/tui/components/FocusedAgentPanel.js +61 -0
- package/dist/src/tui/components/FocusedAgentPanel.js.map +1 -0
- package/dist/src/tui/components/FocusedAgentPanel.spec.js +109 -0
- package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +1 -0
- package/dist/src/tui/components/HeaderBar.d.ts +11 -0
- package/dist/src/tui/components/HeaderBar.js +51 -0
- package/dist/src/tui/components/HeaderBar.js.map +1 -0
- package/dist/src/tui/components/HeaderBar.spec.js +78 -0
- package/dist/src/tui/components/HeaderBar.spec.js.map +1 -0
- package/dist/src/tui/components/SessionTabBar.d.ts +9 -0
- package/dist/src/tui/components/SessionTabBar.js +15 -0
- package/dist/src/tui/components/SessionTabBar.js.map +1 -0
- package/dist/src/tui/components/SessionTabBar.spec.js +59 -0
- package/dist/src/tui/components/SessionTabBar.spec.js.map +1 -0
- package/dist/src/tui/components/StageHealthBar.d.ts +12 -0
- package/dist/src/tui/components/StageHealthBar.js +69 -0
- package/dist/src/tui/components/StageHealthBar.js.map +1 -0
- package/dist/src/tui/components/StageHealthBar.spec.js +77 -0
- package/dist/src/tui/components/StageHealthBar.spec.js.map +1 -0
- package/dist/src/tui/components/activity-visualizer.pure.d.ts +4 -0
- package/dist/src/tui/components/activity-visualizer.pure.js +133 -0
- package/dist/src/tui/components/activity-visualizer.pure.js.map +1 -0
- package/dist/src/tui/components/checklist-panel.pure.d.ts +2 -0
- package/dist/src/tui/components/checklist-panel.pure.js +18 -0
- package/dist/src/tui/components/checklist-panel.pure.js.map +1 -0
- package/dist/src/tui/components/context-section.pure.d.ts +3 -0
- package/dist/src/tui/components/context-section.pure.js +38 -0
- package/dist/src/tui/components/context-section.pure.js.map +1 -0
- package/dist/src/tui/components/flow-map.pure.d.ts +26 -0
- package/dist/src/tui/components/flow-map.pure.js +354 -0
- package/dist/src/tui/components/flow-map.pure.js.map +1 -0
- package/dist/src/tui/components/focused-agent.pure.d.ts +9 -0
- package/dist/src/tui/components/focused-agent.pure.js +42 -0
- package/dist/src/tui/components/focused-agent.pure.js.map +1 -0
- package/dist/src/tui/components/grid-layout.pure.d.ts +2 -0
- package/dist/src/tui/components/grid-layout.pure.js +72 -0
- package/dist/src/tui/components/grid-layout.pure.js.map +1 -0
- package/dist/src/tui/components/header-bar.pure.d.ts +1 -0
- package/dist/src/tui/components/{header.pure.js → header-bar.pure.js} +1 -7
- package/dist/src/tui/components/header-bar.pure.js.map +1 -0
- package/dist/src/tui/components/index.d.ts +14 -15
- package/dist/src/tui/components/index.js +35 -49
- package/dist/src/tui/components/index.js.map +1 -1
- package/dist/src/tui/components/session-tab-bar.pure.d.ts +9 -0
- package/dist/src/tui/components/session-tab-bar.pure.js +45 -0
- package/dist/src/tui/components/session-tab-bar.pure.js.map +1 -0
- package/dist/src/tui/components/stage-health.pure.d.ts +5 -0
- package/dist/src/tui/components/stage-health.pure.js +63 -0
- package/dist/src/tui/components/stage-health.pure.js.map +1 -0
- package/dist/src/tui/dashboard-app.d.ts +9 -0
- package/dist/src/tui/dashboard-app.js +40 -0
- package/dist/src/tui/dashboard-app.js.map +1 -0
- package/dist/src/tui/dashboard-app.spec.js +144 -0
- package/dist/src/tui/dashboard-app.spec.js.map +1 -0
- package/dist/src/tui/dashboard-types.d.ts +94 -0
- package/dist/src/tui/dashboard-types.js +33 -0
- package/dist/src/tui/dashboard-types.js.map +1 -0
- package/dist/src/tui/eventbus-ui.integration.spec.js +133 -167
- package/dist/src/tui/eventbus-ui.integration.spec.js.map +1 -1
- package/dist/src/tui/events/event-bus.js +1 -1
- package/dist/src/tui/events/event-bus.js.map +1 -1
- package/dist/src/tui/events/index.d.ts +1 -1
- package/dist/src/tui/events/index.js.map +1 -1
- package/dist/src/tui/events/parse-agent.js +1 -26
- package/dist/src/tui/events/parse-agent.js.map +1 -1
- package/dist/src/tui/events/response-event-extractor.d.ts +16 -1
- package/dist/src/tui/events/response-event-extractor.js +181 -2
- package/dist/src/tui/events/response-event-extractor.js.map +1 -1
- package/dist/src/tui/events/tui-interceptor.d.ts +3 -0
- package/dist/src/tui/events/tui-interceptor.js +67 -7
- package/dist/src/tui/events/tui-interceptor.js.map +1 -1
- package/dist/src/tui/events/types.d.ts +46 -2
- package/dist/src/tui/events/types.js +6 -0
- package/dist/src/tui/events/types.js.map +1 -1
- package/dist/src/tui/hooks/index.d.ts +7 -4
- package/dist/src/tui/hooks/index.js +12 -7
- package/dist/src/tui/hooks/index.js.map +1 -1
- package/dist/src/tui/hooks/use-clock.js +3 -3
- package/dist/src/tui/hooks/use-clock.js.map +1 -1
- package/dist/src/tui/hooks/use-dashboard-state.d.ts +52 -0
- package/dist/src/tui/hooks/use-dashboard-state.js +299 -0
- package/dist/src/tui/hooks/use-dashboard-state.js.map +1 -0
- package/dist/src/tui/hooks/use-focus-agent.d.ts +2 -0
- package/dist/src/tui/hooks/use-focus-agent.js +26 -0
- package/dist/src/tui/hooks/use-focus-agent.js.map +1 -0
- package/dist/src/tui/hooks/use-multi-session-state.d.ts +16 -0
- package/dist/src/tui/hooks/use-multi-session-state.js +163 -0
- package/dist/src/tui/hooks/use-multi-session-state.js.map +1 -0
- package/dist/src/tui/hooks/use-terminal-size.d.ts +9 -0
- package/dist/src/tui/hooks/use-terminal-size.js +31 -0
- package/dist/src/tui/hooks/use-terminal-size.js.map +1 -0
- package/dist/src/tui/index.d.ts +12 -4
- package/dist/src/tui/index.js +18 -7
- package/dist/src/tui/index.js.map +1 -1
- package/dist/src/tui/ipc/index.d.ts +5 -2
- package/dist/src/tui/ipc/index.js +5 -5
- package/dist/src/tui/ipc/index.js.map +1 -1
- package/dist/src/tui/ipc/ipc-state-cache.d.ts +1 -0
- package/dist/src/tui/ipc/ipc-state-cache.js +7 -0
- package/dist/src/tui/ipc/ipc-state-cache.js.map +1 -1
- package/dist/src/tui/ipc/multi-session-manager.d.ts +39 -0
- package/dist/src/tui/ipc/multi-session-manager.js +143 -0
- package/dist/src/tui/ipc/multi-session-manager.js.map +1 -0
- package/dist/src/tui/ipc/tui-auto-launcher.d.ts +22 -0
- package/dist/src/tui/ipc/tui-auto-launcher.js +113 -0
- package/dist/src/tui/ipc/tui-auto-launcher.js.map +1 -0
- package/dist/src/tui/multi-session-app.d.ts +6 -0
- package/dist/src/tui/multi-session-app.js +60 -0
- package/dist/src/tui/multi-session-app.js.map +1 -0
- package/dist/src/tui/multi-session-app.spec.js +95 -0
- package/dist/src/tui/multi-session-app.spec.js.map +1 -0
- package/dist/src/tui/transport-tui.integration.spec.js +15 -15
- package/dist/src/tui/transport-tui.integration.spec.js.map +1 -1
- package/dist/src/tui/tui-config.d.ts +3 -2
- package/dist/src/tui/types.d.ts +1 -1
- package/dist/src/tui/types.js +3 -0
- package/dist/src/tui/types.js.map +1 -1
- package/dist/src/tui/utils/color-buffer.d.ts +31 -0
- package/dist/src/tui/utils/color-buffer.js +86 -0
- package/dist/src/tui/utils/color-buffer.js.map +1 -0
- package/dist/src/tui/utils/colors.js.map +1 -1
- package/dist/src/tui/utils/edge-router.d.ts +9 -0
- package/dist/src/tui/utils/edge-router.js +65 -0
- package/dist/src/tui/utils/edge-router.js.map +1 -0
- package/dist/src/tui/utils/index.d.ts +3 -1
- package/dist/src/tui/utils/index.js +21 -4
- package/dist/src/tui/utils/index.js.map +1 -1
- package/dist/src/tui/utils/theme.d.ts +50 -0
- package/dist/src/tui/utils/theme.js +128 -0
- package/dist/src/tui/utils/theme.js.map +1 -0
- package/dist/src/tui-bundle.mjs +6037 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +10 -10
- package/dist/src/shared/token-counter.d.ts +0 -13
- package/dist/src/shared/token-counter.js +0 -41
- package/dist/src/shared/token-counter.js.map +0 -1
- package/dist/src/tui/app.d.ts +0 -6
- package/dist/src/tui/app.js +0 -20
- package/dist/src/tui/app.js.map +0 -1
- package/dist/src/tui/app.spec.js +0 -226
- package/dist/src/tui/app.spec.js.map +0 -1
- package/dist/src/tui/components/AgentCard.d.ts +0 -6
- package/dist/src/tui/components/AgentCard.js +0 -18
- package/dist/src/tui/components/AgentCard.js.map +0 -1
- package/dist/src/tui/components/AgentCard.spec.js +0 -118
- package/dist/src/tui/components/AgentCard.spec.js.map +0 -1
- package/dist/src/tui/components/AgentGrid.d.ts +0 -7
- package/dist/src/tui/components/AgentGrid.js +0 -20
- package/dist/src/tui/components/AgentGrid.js.map +0 -1
- package/dist/src/tui/components/AgentGrid.spec.js +0 -52
- package/dist/src/tui/components/AgentGrid.spec.js.map +0 -1
- package/dist/src/tui/components/AgentTree.d.ts +0 -7
- package/dist/src/tui/components/AgentTree.js +0 -24
- package/dist/src/tui/components/AgentTree.js.map +0 -1
- package/dist/src/tui/components/AgentTree.spec.js +0 -146
- package/dist/src/tui/components/AgentTree.spec.js.map +0 -1
- package/dist/src/tui/components/CategoryRow.d.ts +0 -9
- package/dist/src/tui/components/CategoryRow.js +0 -15
- package/dist/src/tui/components/CategoryRow.js.map +0 -1
- package/dist/src/tui/components/CategoryRow.spec.js +0 -58
- package/dist/src/tui/components/CategoryRow.spec.js.map +0 -1
- package/dist/src/tui/components/Header.d.ts +0 -6
- package/dist/src/tui/components/Header.js +0 -18
- package/dist/src/tui/components/Header.js.map +0 -1
- package/dist/src/tui/components/Header.spec.js +0 -38
- package/dist/src/tui/components/Header.spec.js.map +0 -1
- package/dist/src/tui/components/ProgressBar.d.ts +0 -7
- package/dist/src/tui/components/ProgressBar.js +0 -12
- package/dist/src/tui/components/ProgressBar.js.map +0 -1
- package/dist/src/tui/components/ProgressBar.spec.js +0 -37
- package/dist/src/tui/components/ProgressBar.spec.js.map +0 -1
- package/dist/src/tui/components/StatusBar.d.ts +0 -8
- package/dist/src/tui/components/StatusBar.js +0 -29
- package/dist/src/tui/components/StatusBar.js.map +0 -1
- package/dist/src/tui/components/StatusBar.spec.js +0 -93
- package/dist/src/tui/components/StatusBar.spec.js.map +0 -1
- package/dist/src/tui/components/agent-card.pure.d.ts +0 -7
- package/dist/src/tui/components/agent-card.pure.js +0 -65
- package/dist/src/tui/components/agent-card.pure.js.map +0 -1
- package/dist/src/tui/components/agent-grid.pure.d.ts +0 -3
- package/dist/src/tui/components/agent-grid.pure.js +0 -35
- package/dist/src/tui/components/agent-grid.pure.js.map +0 -1
- package/dist/src/tui/components/agent-mini-card.pure.d.ts +0 -2
- package/dist/src/tui/components/agent-mini-card.pure.js +0 -17
- package/dist/src/tui/components/agent-mini-card.pure.js.map +0 -1
- package/dist/src/tui/components/agent-tree.pure.d.ts +0 -18
- package/dist/src/tui/components/agent-tree.pure.js +0 -41
- package/dist/src/tui/components/agent-tree.pure.js.map +0 -1
- package/dist/src/tui/components/category-row.pure.d.ts +0 -3
- package/dist/src/tui/components/category-row.pure.js +0 -26
- package/dist/src/tui/components/category-row.pure.js.map +0 -1
- package/dist/src/tui/components/header.pure.d.ts +0 -4
- package/dist/src/tui/components/header.pure.js.map +0 -1
- package/dist/src/tui/components/progress-bar.pure.d.ts +0 -2
- package/dist/src/tui/components/progress-bar.pure.js +0 -21
- package/dist/src/tui/components/progress-bar.pure.js.map +0 -1
- package/dist/src/tui/components/status-bar.pure.d.ts +0 -15
- package/dist/src/tui/components/status-bar.pure.js +0 -83
- package/dist/src/tui/components/status-bar.pure.js.map +0 -1
- package/dist/src/tui/hooks/use-agent-state.d.ts +0 -7
- package/dist/src/tui/hooks/use-agent-state.js +0 -13
- package/dist/src/tui/hooks/use-agent-state.js.map +0 -1
- package/dist/src/tui/hooks/use-agent-state.spec.js +0 -167
- package/dist/src/tui/hooks/use-agent-state.spec.js.map +0 -1
- package/dist/src/tui/hooks/use-event-bus.d.ts +0 -34
- package/dist/src/tui/hooks/use-event-bus.js +0 -91
- package/dist/src/tui/hooks/use-event-bus.js.map +0 -1
- package/dist/src/tui/hooks/use-event-bus.spec.d.ts +0 -1
- package/dist/src/tui/hooks/use-event-bus.spec.js +0 -362
- package/dist/src/tui/hooks/use-event-bus.spec.js.map +0 -1
- package/dist/src/tui/utils/constants.d.ts +0 -3
- package/dist/src/tui/utils/constants.js +0 -15
- package/dist/src/tui/utils/constants.js.map +0 -1
- /package/dist/src/tui/{app.spec.d.ts → components/ActivityVisualizer.spec.d.ts} +0 -0
- /package/dist/src/tui/components/{AgentCard.spec.d.ts → ChecklistPanel.spec.d.ts} +0 -0
- /package/dist/src/tui/components/{AgentGrid.spec.d.ts → FlowMap.spec.d.ts} +0 -0
- /package/dist/src/tui/components/{AgentTree.spec.d.ts → FocusedAgentPanel.spec.d.ts} +0 -0
- /package/dist/src/tui/components/{CategoryRow.spec.d.ts → HeaderBar.spec.d.ts} +0 -0
- /package/dist/src/tui/components/{Header.spec.d.ts → SessionTabBar.spec.d.ts} +0 -0
- /package/dist/src/tui/components/{ProgressBar.spec.d.ts → StageHealthBar.spec.d.ts} +0 -0
- /package/dist/src/tui/{components/StatusBar.spec.d.ts → dashboard-app.spec.d.ts} +0 -0
- /package/dist/src/tui/{hooks/use-agent-state.spec.d.ts → multi-session-app.spec.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-interceptor.js","sourceRoot":"","sources":["../../../../src/tui/events/tui-interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,2CAA0C;AAC1C,mCAAqC;AACrC,+CAAuD;AACvD,yEAA4F;AAIrF,IAAM,cAAc,sBAApB,MAAM,cAAc;
|
|
1
|
+
{"version":3,"file":"tui-interceptor.js","sourceRoot":"","sources":["../../../../src/tui/events/tui-interceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { Mode } from '
|
|
1
|
+
import type { Mode } from '../types';
|
|
2
|
+
import type { EdgeType } from '../dashboard-types';
|
|
2
3
|
import type { AgentMetadata } from './agent-metadata.types';
|
|
3
4
|
export declare const TUI_EVENTS: Readonly<{
|
|
4
5
|
readonly AGENT_ACTIVATED: "agent:activated";
|
|
@@ -8,6 +9,12 @@ export declare const TUI_EVENTS: Readonly<{
|
|
|
8
9
|
readonly PARALLEL_STARTED: "parallel:started";
|
|
9
10
|
readonly PARALLEL_COMPLETED: "parallel:completed";
|
|
10
11
|
readonly AGENTS_LOADED: "agents:loaded";
|
|
12
|
+
readonly AGENT_RELATIONSHIP: "agent:relationship";
|
|
13
|
+
readonly TASK_SYNCED: "task:synced";
|
|
14
|
+
readonly TOOL_INVOKED: "tool:invoked";
|
|
15
|
+
readonly OBJECTIVE_SET: "objective:set";
|
|
16
|
+
readonly SESSION_RESET: "session:reset";
|
|
17
|
+
readonly CONTEXT_UPDATED: "context:updated";
|
|
11
18
|
}>;
|
|
12
19
|
export type TuiEventName = (typeof TUI_EVENTS)[keyof typeof TUI_EVENTS];
|
|
13
20
|
export interface AgentActivatedEvent {
|
|
@@ -18,7 +25,7 @@ export interface AgentActivatedEvent {
|
|
|
18
25
|
}
|
|
19
26
|
export interface AgentDeactivatedEvent {
|
|
20
27
|
agentId: string;
|
|
21
|
-
reason:
|
|
28
|
+
reason: 'completed' | 'error' | 'replaced';
|
|
22
29
|
durationMs: number;
|
|
23
30
|
}
|
|
24
31
|
export interface ModeChangedEvent {
|
|
@@ -40,6 +47,37 @@ export interface ParallelCompletedEvent {
|
|
|
40
47
|
export interface AgentsLoadedEvent {
|
|
41
48
|
agents: AgentMetadata[];
|
|
42
49
|
}
|
|
50
|
+
export interface AgentRelationshipEvent {
|
|
51
|
+
from: string;
|
|
52
|
+
to: string;
|
|
53
|
+
label: string;
|
|
54
|
+
type: EdgeType;
|
|
55
|
+
}
|
|
56
|
+
export interface TaskSyncedEvent {
|
|
57
|
+
agentId: string;
|
|
58
|
+
tasks: Array<{
|
|
59
|
+
id: string;
|
|
60
|
+
subject: string;
|
|
61
|
+
completed: boolean;
|
|
62
|
+
}>;
|
|
63
|
+
}
|
|
64
|
+
export interface ToolInvokedEvent {
|
|
65
|
+
toolName: string;
|
|
66
|
+
agentId: string | null;
|
|
67
|
+
timestamp: number;
|
|
68
|
+
}
|
|
69
|
+
export interface ObjectiveSetEvent {
|
|
70
|
+
objective: string;
|
|
71
|
+
}
|
|
72
|
+
export interface SessionResetEvent {
|
|
73
|
+
reason: string;
|
|
74
|
+
}
|
|
75
|
+
export interface ContextUpdatedEvent {
|
|
76
|
+
decisions: string[];
|
|
77
|
+
notes: string[];
|
|
78
|
+
mode: string | null;
|
|
79
|
+
status: string | null;
|
|
80
|
+
}
|
|
43
81
|
export interface TuiEventMap {
|
|
44
82
|
[TUI_EVENTS.AGENT_ACTIVATED]: AgentActivatedEvent;
|
|
45
83
|
[TUI_EVENTS.AGENT_DEACTIVATED]: AgentDeactivatedEvent;
|
|
@@ -48,4 +86,10 @@ export interface TuiEventMap {
|
|
|
48
86
|
[TUI_EVENTS.PARALLEL_STARTED]: ParallelStartedEvent;
|
|
49
87
|
[TUI_EVENTS.PARALLEL_COMPLETED]: ParallelCompletedEvent;
|
|
50
88
|
[TUI_EVENTS.AGENTS_LOADED]: AgentsLoadedEvent;
|
|
89
|
+
[TUI_EVENTS.AGENT_RELATIONSHIP]: AgentRelationshipEvent;
|
|
90
|
+
[TUI_EVENTS.TASK_SYNCED]: TaskSyncedEvent;
|
|
91
|
+
[TUI_EVENTS.TOOL_INVOKED]: ToolInvokedEvent;
|
|
92
|
+
[TUI_EVENTS.OBJECTIVE_SET]: ObjectiveSetEvent;
|
|
93
|
+
[TUI_EVENTS.SESSION_RESET]: SessionResetEvent;
|
|
94
|
+
[TUI_EVENTS.CONTEXT_UPDATED]: ContextUpdatedEvent;
|
|
51
95
|
}
|
|
@@ -9,5 +9,11 @@ exports.TUI_EVENTS = Object.freeze({
|
|
|
9
9
|
PARALLEL_STARTED: 'parallel:started',
|
|
10
10
|
PARALLEL_COMPLETED: 'parallel:completed',
|
|
11
11
|
AGENTS_LOADED: 'agents:loaded',
|
|
12
|
+
AGENT_RELATIONSHIP: 'agent:relationship',
|
|
13
|
+
TASK_SYNCED: 'task:synced',
|
|
14
|
+
TOOL_INVOKED: 'tool:invoked',
|
|
15
|
+
OBJECTIVE_SET: 'objective:set',
|
|
16
|
+
SESSION_RESET: 'session:reset',
|
|
17
|
+
CONTEXT_UPDATED: 'context:updated',
|
|
12
18
|
});
|
|
13
19
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/tui/events/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/tui/events/types.ts"],"names":[],"mappings":";;;AAca,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,eAAe,EAAE,iBAAiB;IAClC,iBAAiB,EAAE,mBAAmB;IACtC,YAAY,EAAE,cAAc;IAC5B,iBAAiB,EAAE,mBAAmB;IACtC,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,aAAa,EAAE,eAAe;IAC9B,kBAAkB,EAAE,oBAAoB;IACxC,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,aAAa,EAAE,eAAe;IAC9B,eAAe,EAAE,iBAAiB;CAC1B,CAAC,CAAC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type {
|
|
3
|
-
export {
|
|
4
|
-
export
|
|
1
|
+
export { useDashboardState, dashboardReducer, createInitialDashboardState, } from './use-dashboard-state';
|
|
2
|
+
export type { DashboardAction } from './use-dashboard-state';
|
|
3
|
+
export { selectFocusedAgent } from './use-focus-agent';
|
|
4
|
+
export { useTerminalSize, getTerminalSize } from './use-terminal-size';
|
|
5
|
+
export type { TerminalSize } from './use-terminal-size';
|
|
5
6
|
export { useClock } from './use-clock';
|
|
7
|
+
export { useMultiSessionState } from './use-multi-session-state';
|
|
8
|
+
export type { SessionState, MultiSessionState } from './use-multi-session-state';
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useClock = exports.
|
|
4
|
-
var
|
|
5
|
-
Object.defineProperty(exports, "
|
|
6
|
-
Object.defineProperty(exports, "
|
|
7
|
-
Object.defineProperty(exports, "
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "
|
|
3
|
+
exports.useMultiSessionState = exports.useClock = exports.getTerminalSize = exports.useTerminalSize = exports.selectFocusedAgent = exports.createInitialDashboardState = exports.dashboardReducer = exports.useDashboardState = void 0;
|
|
4
|
+
var use_dashboard_state_1 = require("./use-dashboard-state");
|
|
5
|
+
Object.defineProperty(exports, "useDashboardState", { enumerable: true, get: function () { return use_dashboard_state_1.useDashboardState; } });
|
|
6
|
+
Object.defineProperty(exports, "dashboardReducer", { enumerable: true, get: function () { return use_dashboard_state_1.dashboardReducer; } });
|
|
7
|
+
Object.defineProperty(exports, "createInitialDashboardState", { enumerable: true, get: function () { return use_dashboard_state_1.createInitialDashboardState; } });
|
|
8
|
+
var use_focus_agent_1 = require("./use-focus-agent");
|
|
9
|
+
Object.defineProperty(exports, "selectFocusedAgent", { enumerable: true, get: function () { return use_focus_agent_1.selectFocusedAgent; } });
|
|
10
|
+
var use_terminal_size_1 = require("./use-terminal-size");
|
|
11
|
+
Object.defineProperty(exports, "useTerminalSize", { enumerable: true, get: function () { return use_terminal_size_1.useTerminalSize; } });
|
|
12
|
+
Object.defineProperty(exports, "getTerminalSize", { enumerable: true, get: function () { return use_terminal_size_1.getTerminalSize; } });
|
|
10
13
|
var use_clock_1 = require("./use-clock");
|
|
11
14
|
Object.defineProperty(exports, "useClock", { enumerable: true, get: function () { return use_clock_1.useClock; } });
|
|
15
|
+
var use_multi_session_state_1 = require("./use-multi-session-state");
|
|
16
|
+
Object.defineProperty(exports, "useMultiSessionState", { enumerable: true, get: function () { return use_multi_session_state_1.useMultiSessionState; } });
|
|
12
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tui/hooks/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tui/hooks/index.ts"],"names":[],"mappings":";;;AAAA,6DAI+B;AAH7B,wHAAA,iBAAiB,OAAA;AACjB,uHAAA,gBAAgB,OAAA;AAChB,kIAAA,2BAA2B,OAAA;AAG7B,qDAAuD;AAA9C,qHAAA,kBAAkB,OAAA;AAC3B,yDAAuE;AAA9D,oHAAA,eAAe,OAAA;AAAE,oHAAA,eAAe,OAAA;AAEzC,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AACjB,qEAAiE;AAAxD,+HAAA,oBAAoB,OAAA"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useClock = useClock;
|
|
4
4
|
const react_1 = require("react");
|
|
5
|
-
const
|
|
5
|
+
const header_bar_pure_1 = require("../components/header-bar.pure");
|
|
6
6
|
function useClock() {
|
|
7
|
-
const [time, setTime] = (0, react_1.useState)(() => (0,
|
|
7
|
+
const [time, setTime] = (0, react_1.useState)(() => (0, header_bar_pure_1.formatTime)(new Date()));
|
|
8
8
|
(0, react_1.useEffect)(() => {
|
|
9
9
|
const interval = setInterval(() => {
|
|
10
|
-
setTime((0,
|
|
10
|
+
setTime((0, header_bar_pure_1.formatTime)(new Date()));
|
|
11
11
|
}, 1000);
|
|
12
12
|
return () => clearInterval(interval);
|
|
13
13
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-clock.js","sourceRoot":"","sources":["../../../../src/tui/hooks/use-clock.ts"],"names":[],"mappings":";;AAGA,4BAYC;AAfD,iCAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"use-clock.js","sourceRoot":"","sources":["../../../../src/tui/hooks/use-clock.ts"],"names":[],"mappings":";;AAGA,4BAYC;AAfD,iCAA4C;AAC5C,mEAA2D;AAE3D,SAAgB,QAAQ;IACtB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,IAAA,4BAAU,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAE/D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,OAAO,CAAC,IAAA,4BAAU,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { DashboardState } from '../dashboard-types';
|
|
2
|
+
import type { TuiEventBus } from '../events';
|
|
3
|
+
import { type AgentActivatedEvent, type AgentDeactivatedEvent, type ModeChangedEvent, type SkillRecommendedEvent, type ParallelStartedEvent, type ParallelCompletedEvent, type AgentsLoadedEvent, type AgentRelationshipEvent, type TaskSyncedEvent, type ToolInvokedEvent, type ObjectiveSetEvent, type SessionResetEvent, type ContextUpdatedEvent } from '../events';
|
|
4
|
+
export declare function createInitialDashboardState(): DashboardState;
|
|
5
|
+
export type DashboardAction = {
|
|
6
|
+
type: 'AGENT_ACTIVATED';
|
|
7
|
+
payload: AgentActivatedEvent;
|
|
8
|
+
} | {
|
|
9
|
+
type: 'AGENT_DEACTIVATED';
|
|
10
|
+
payload: AgentDeactivatedEvent;
|
|
11
|
+
} | {
|
|
12
|
+
type: 'MODE_CHANGED';
|
|
13
|
+
payload: ModeChangedEvent;
|
|
14
|
+
} | {
|
|
15
|
+
type: 'SKILL_RECOMMENDED';
|
|
16
|
+
payload: SkillRecommendedEvent;
|
|
17
|
+
} | {
|
|
18
|
+
type: 'PARALLEL_STARTED';
|
|
19
|
+
payload: ParallelStartedEvent;
|
|
20
|
+
} | {
|
|
21
|
+
type: 'PARALLEL_COMPLETED';
|
|
22
|
+
payload: ParallelCompletedEvent;
|
|
23
|
+
} | {
|
|
24
|
+
type: 'AGENTS_LOADED';
|
|
25
|
+
payload: AgentsLoadedEvent;
|
|
26
|
+
} | {
|
|
27
|
+
type: 'AGENT_RELATIONSHIP';
|
|
28
|
+
payload: AgentRelationshipEvent;
|
|
29
|
+
} | {
|
|
30
|
+
type: 'TASK_SYNCED';
|
|
31
|
+
payload: TaskSyncedEvent;
|
|
32
|
+
} | {
|
|
33
|
+
type: 'TOOL_INVOKED';
|
|
34
|
+
payload: ToolInvokedEvent;
|
|
35
|
+
} | {
|
|
36
|
+
type: 'OBJECTIVE_SET';
|
|
37
|
+
payload: ObjectiveSetEvent;
|
|
38
|
+
} | {
|
|
39
|
+
type: 'SESSION_RESET';
|
|
40
|
+
payload: SessionResetEvent;
|
|
41
|
+
} | {
|
|
42
|
+
type: 'CONTEXT_UPDATED';
|
|
43
|
+
payload: ContextUpdatedEvent;
|
|
44
|
+
} | {
|
|
45
|
+
type: 'CLEANUP_STALE_AGENTS';
|
|
46
|
+
payload: {
|
|
47
|
+
now: number;
|
|
48
|
+
ttlMs: number;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export declare function dashboardReducer(state: DashboardState, action: DashboardAction): DashboardState;
|
|
52
|
+
export declare function useDashboardState(eventBus: TuiEventBus | undefined): DashboardState;
|
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createInitialDashboardState = createInitialDashboardState;
|
|
4
|
+
exports.dashboardReducer = dashboardReducer;
|
|
5
|
+
exports.useDashboardState = useDashboardState;
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const events_1 = require("../events");
|
|
8
|
+
const use_focus_agent_1 = require("./use-focus-agent");
|
|
9
|
+
const EVENT_LOG_MAX = 100;
|
|
10
|
+
const EDGE_MAX = 200;
|
|
11
|
+
const TOOL_CALLS_MAX = 200;
|
|
12
|
+
const EXPECTED_AGENT_DURATION_MS = 120_000;
|
|
13
|
+
function createInitialDashboardState() {
|
|
14
|
+
return {
|
|
15
|
+
workspace: process.cwd(),
|
|
16
|
+
sessionId: new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19),
|
|
17
|
+
currentMode: null,
|
|
18
|
+
globalState: 'IDLE',
|
|
19
|
+
agents: new Map(),
|
|
20
|
+
edges: [],
|
|
21
|
+
focusedAgentId: null,
|
|
22
|
+
tasks: [],
|
|
23
|
+
eventLog: [],
|
|
24
|
+
toolCalls: [],
|
|
25
|
+
objectives: [],
|
|
26
|
+
activeSkills: [],
|
|
27
|
+
toolInvokeCount: 0,
|
|
28
|
+
agentActivateCount: 0,
|
|
29
|
+
skillInvokeCount: 0,
|
|
30
|
+
outputStats: { files: 0, commits: 0 },
|
|
31
|
+
contextDecisions: [],
|
|
32
|
+
contextNotes: [],
|
|
33
|
+
contextMode: null,
|
|
34
|
+
contextStatus: null,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function cloneAgents(agents) {
|
|
38
|
+
return new Map(agents);
|
|
39
|
+
}
|
|
40
|
+
function dashboardReducer(state, action) {
|
|
41
|
+
switch (action.type) {
|
|
42
|
+
case 'AGENT_ACTIVATED': {
|
|
43
|
+
const { agentId, name, isPrimary } = action.payload;
|
|
44
|
+
const agents = cloneAgents(state.agents);
|
|
45
|
+
agents.set(agentId, {
|
|
46
|
+
id: agentId,
|
|
47
|
+
name,
|
|
48
|
+
stage: state.currentMode ?? 'PLAN',
|
|
49
|
+
status: 'running',
|
|
50
|
+
isPrimary,
|
|
51
|
+
progress: 0,
|
|
52
|
+
isParallel: false,
|
|
53
|
+
startedAt: Date.now(),
|
|
54
|
+
});
|
|
55
|
+
const globalState = 'RUNNING';
|
|
56
|
+
const focusedAgentId = (0, use_focus_agent_1.selectFocusedAgent)(agents, state.focusedAgentId);
|
|
57
|
+
return {
|
|
58
|
+
...state,
|
|
59
|
+
agents,
|
|
60
|
+
globalState,
|
|
61
|
+
focusedAgentId,
|
|
62
|
+
agentActivateCount: state.agentActivateCount + 1,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
case 'AGENT_DEACTIVATED': {
|
|
66
|
+
const { agentId, reason } = action.payload;
|
|
67
|
+
const agents = cloneAgents(state.agents);
|
|
68
|
+
const existing = agents.get(agentId);
|
|
69
|
+
if (existing) {
|
|
70
|
+
agents.set(agentId, {
|
|
71
|
+
...existing,
|
|
72
|
+
status: reason === 'error' ? 'error' : 'done',
|
|
73
|
+
progress: reason === 'error' ? existing.progress : 100,
|
|
74
|
+
completedAt: Date.now(),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
let anyRunning = false;
|
|
78
|
+
for (const a of agents.values()) {
|
|
79
|
+
if (a.status === 'running') {
|
|
80
|
+
anyRunning = true;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const globalState = anyRunning
|
|
85
|
+
? 'RUNNING'
|
|
86
|
+
: reason === 'error'
|
|
87
|
+
? 'ERROR'
|
|
88
|
+
: 'IDLE';
|
|
89
|
+
const focusedAgentId = (0, use_focus_agent_1.selectFocusedAgent)(agents, state.focusedAgentId);
|
|
90
|
+
return { ...state, agents, globalState, focusedAgentId };
|
|
91
|
+
}
|
|
92
|
+
case 'MODE_CHANGED': {
|
|
93
|
+
const { from, to: newMode } = action.payload;
|
|
94
|
+
const agents = cloneAgents(state.agents);
|
|
95
|
+
for (const [id, a] of agents) {
|
|
96
|
+
if (from !== null &&
|
|
97
|
+
a.stage === from &&
|
|
98
|
+
(a.status === 'done' || (a.status === 'idle' && a.isParallel))) {
|
|
99
|
+
agents.delete(id);
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
if (a.status === 'running') {
|
|
103
|
+
agents.set(id, { ...a, stage: newMode });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const focusedAgentId = (0, use_focus_agent_1.selectFocusedAgent)(agents, state.focusedAgentId);
|
|
107
|
+
return { ...state, currentMode: newMode, agents, activeSkills: [], focusedAgentId };
|
|
108
|
+
}
|
|
109
|
+
case 'AGENT_RELATIONSHIP': {
|
|
110
|
+
const edge = {
|
|
111
|
+
from: action.payload.from,
|
|
112
|
+
to: action.payload.to,
|
|
113
|
+
label: action.payload.label,
|
|
114
|
+
type: action.payload.type,
|
|
115
|
+
};
|
|
116
|
+
const base = state.edges.length >= EDGE_MAX ? state.edges.slice(1) : state.edges;
|
|
117
|
+
return { ...state, edges: [...base, edge] };
|
|
118
|
+
}
|
|
119
|
+
case 'TASK_SYNCED': {
|
|
120
|
+
const tasks = action.payload.tasks.map(t => ({
|
|
121
|
+
id: t.id,
|
|
122
|
+
subject: t.subject,
|
|
123
|
+
completed: t.completed,
|
|
124
|
+
}));
|
|
125
|
+
return { ...state, tasks };
|
|
126
|
+
}
|
|
127
|
+
case 'TOOL_INVOKED': {
|
|
128
|
+
const entry = {
|
|
129
|
+
timestamp: new Date(action.payload.timestamp).toTimeString().slice(0, 8),
|
|
130
|
+
message: `${action.payload.toolName}${action.payload.agentId ? ` [${action.payload.agentId}]` : ''}`,
|
|
131
|
+
level: 'info',
|
|
132
|
+
};
|
|
133
|
+
const base = state.eventLog.length >= EVENT_LOG_MAX ? state.eventLog.slice(1) : state.eventLog;
|
|
134
|
+
const invokedAgentId = action.payload.agentId;
|
|
135
|
+
let agents = state.agents;
|
|
136
|
+
let targetAgent = invokedAgentId ? (state.agents.get(invokedAgentId) ?? null) : null;
|
|
137
|
+
if (invokedAgentId && !targetAgent && state.focusedAgentId) {
|
|
138
|
+
targetAgent = state.agents.get(state.focusedAgentId) ?? null;
|
|
139
|
+
}
|
|
140
|
+
if (targetAgent && targetAgent.status === 'running') {
|
|
141
|
+
const now = Date.now();
|
|
142
|
+
const elapsed = targetAgent.startedAt !== undefined ? now - targetAgent.startedAt : 0;
|
|
143
|
+
const timeBased = Math.min(90, (elapsed / EXPECTED_AGENT_DURATION_MS) * 100);
|
|
144
|
+
const toolBased = Math.min(95, targetAgent.progress + 3);
|
|
145
|
+
const newProgress = Math.round(Math.max(timeBased, toolBased));
|
|
146
|
+
agents = cloneAgents(state.agents);
|
|
147
|
+
agents.set(targetAgent.id, {
|
|
148
|
+
...targetAgent,
|
|
149
|
+
progress: newProgress,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
const toolCall = {
|
|
153
|
+
agentId: action.payload.agentId ?? 'unknown',
|
|
154
|
+
toolName: action.payload.toolName,
|
|
155
|
+
timestamp: action.payload.timestamp,
|
|
156
|
+
status: 'completed',
|
|
157
|
+
};
|
|
158
|
+
const toolCallsBase = state.toolCalls.length >= TOOL_CALLS_MAX ? state.toolCalls.slice(1) : state.toolCalls;
|
|
159
|
+
return {
|
|
160
|
+
...state,
|
|
161
|
+
agents,
|
|
162
|
+
eventLog: [...base, entry],
|
|
163
|
+
toolCalls: [...toolCallsBase, toolCall],
|
|
164
|
+
toolInvokeCount: state.toolInvokeCount + 1,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
case 'OBJECTIVE_SET':
|
|
168
|
+
return { ...state, objectives: [action.payload.objective] };
|
|
169
|
+
case 'SKILL_RECOMMENDED': {
|
|
170
|
+
const { skillName } = action.payload;
|
|
171
|
+
if (state.activeSkills.includes(skillName))
|
|
172
|
+
return state;
|
|
173
|
+
return {
|
|
174
|
+
...state,
|
|
175
|
+
activeSkills: [...state.activeSkills, skillName],
|
|
176
|
+
skillInvokeCount: state.skillInvokeCount + 1,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
case 'PARALLEL_STARTED': {
|
|
180
|
+
const { specialists, mode } = action.payload;
|
|
181
|
+
const agents = cloneAgents(state.agents);
|
|
182
|
+
for (const name of specialists) {
|
|
183
|
+
const id = `specialist:${name}`;
|
|
184
|
+
if (agents.has(id))
|
|
185
|
+
continue;
|
|
186
|
+
agents.set(id, {
|
|
187
|
+
id,
|
|
188
|
+
name,
|
|
189
|
+
stage: mode,
|
|
190
|
+
status: 'idle',
|
|
191
|
+
isPrimary: false,
|
|
192
|
+
progress: 0,
|
|
193
|
+
isParallel: true,
|
|
194
|
+
startedAt: Date.now(),
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return { ...state, agents };
|
|
198
|
+
}
|
|
199
|
+
case 'CONTEXT_UPDATED': {
|
|
200
|
+
const { decisions, notes, mode, status } = action.payload;
|
|
201
|
+
return {
|
|
202
|
+
...state,
|
|
203
|
+
contextDecisions: decisions,
|
|
204
|
+
contextNotes: notes,
|
|
205
|
+
contextMode: mode,
|
|
206
|
+
contextStatus: status,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
case 'SESSION_RESET':
|
|
210
|
+
return createInitialDashboardState();
|
|
211
|
+
case 'CLEANUP_STALE_AGENTS': {
|
|
212
|
+
const { now, ttlMs } = action.payload;
|
|
213
|
+
let changed = false;
|
|
214
|
+
const agents = cloneAgents(state.agents);
|
|
215
|
+
for (const [id, a] of agents) {
|
|
216
|
+
if (a.status === 'running')
|
|
217
|
+
continue;
|
|
218
|
+
if ((a.status === 'done' && a.completedAt !== undefined && now - a.completedAt > ttlMs) ||
|
|
219
|
+
(a.status === 'error' &&
|
|
220
|
+
a.completedAt !== undefined &&
|
|
221
|
+
now - a.completedAt > ttlMs * 2) ||
|
|
222
|
+
(a.status === 'idle' &&
|
|
223
|
+
a.isParallel &&
|
|
224
|
+
a.startedAt !== undefined &&
|
|
225
|
+
now - a.startedAt > ttlMs)) {
|
|
226
|
+
agents.delete(id);
|
|
227
|
+
changed = true;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (!changed)
|
|
231
|
+
return state;
|
|
232
|
+
const focusedAgentId = (0, use_focus_agent_1.selectFocusedAgent)(agents, state.focusedAgentId);
|
|
233
|
+
return { ...state, agents, focusedAgentId };
|
|
234
|
+
}
|
|
235
|
+
case 'PARALLEL_COMPLETED':
|
|
236
|
+
case 'AGENTS_LOADED':
|
|
237
|
+
return state;
|
|
238
|
+
default: {
|
|
239
|
+
const _exhaustive = action;
|
|
240
|
+
return _exhaustive;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
function useDashboardState(eventBus) {
|
|
245
|
+
const [state, dispatch] = (0, react_1.useReducer)(dashboardReducer, undefined, createInitialDashboardState);
|
|
246
|
+
(0, react_1.useEffect)(() => {
|
|
247
|
+
if (!eventBus)
|
|
248
|
+
return;
|
|
249
|
+
const onActivated = (p) => dispatch({ type: 'AGENT_ACTIVATED', payload: p });
|
|
250
|
+
const onDeactivated = (p) => dispatch({ type: 'AGENT_DEACTIVATED', payload: p });
|
|
251
|
+
const onModeChanged = (p) => dispatch({ type: 'MODE_CHANGED', payload: p });
|
|
252
|
+
const onSkill = (p) => dispatch({ type: 'SKILL_RECOMMENDED', payload: p });
|
|
253
|
+
const onParallelStarted = (p) => dispatch({ type: 'PARALLEL_STARTED', payload: p });
|
|
254
|
+
const onParallelCompleted = (p) => dispatch({ type: 'PARALLEL_COMPLETED', payload: p });
|
|
255
|
+
const onAgentsLoaded = (p) => dispatch({ type: 'AGENTS_LOADED', payload: p });
|
|
256
|
+
const onRelationship = (p) => dispatch({ type: 'AGENT_RELATIONSHIP', payload: p });
|
|
257
|
+
const onTaskSynced = (p) => dispatch({ type: 'TASK_SYNCED', payload: p });
|
|
258
|
+
const onToolInvoked = (p) => dispatch({ type: 'TOOL_INVOKED', payload: p });
|
|
259
|
+
const onObjectiveSet = (p) => dispatch({ type: 'OBJECTIVE_SET', payload: p });
|
|
260
|
+
const onSessionReset = (p) => dispatch({ type: 'SESSION_RESET', payload: p });
|
|
261
|
+
const onContextUpdated = (p) => dispatch({ type: 'CONTEXT_UPDATED', payload: p });
|
|
262
|
+
eventBus.on(events_1.TUI_EVENTS.AGENT_ACTIVATED, onActivated);
|
|
263
|
+
eventBus.on(events_1.TUI_EVENTS.AGENT_DEACTIVATED, onDeactivated);
|
|
264
|
+
eventBus.on(events_1.TUI_EVENTS.MODE_CHANGED, onModeChanged);
|
|
265
|
+
eventBus.on(events_1.TUI_EVENTS.SKILL_RECOMMENDED, onSkill);
|
|
266
|
+
eventBus.on(events_1.TUI_EVENTS.PARALLEL_STARTED, onParallelStarted);
|
|
267
|
+
eventBus.on(events_1.TUI_EVENTS.PARALLEL_COMPLETED, onParallelCompleted);
|
|
268
|
+
eventBus.on(events_1.TUI_EVENTS.AGENTS_LOADED, onAgentsLoaded);
|
|
269
|
+
eventBus.on(events_1.TUI_EVENTS.AGENT_RELATIONSHIP, onRelationship);
|
|
270
|
+
eventBus.on(events_1.TUI_EVENTS.TASK_SYNCED, onTaskSynced);
|
|
271
|
+
eventBus.on(events_1.TUI_EVENTS.TOOL_INVOKED, onToolInvoked);
|
|
272
|
+
eventBus.on(events_1.TUI_EVENTS.OBJECTIVE_SET, onObjectiveSet);
|
|
273
|
+
eventBus.on(events_1.TUI_EVENTS.SESSION_RESET, onSessionReset);
|
|
274
|
+
eventBus.on(events_1.TUI_EVENTS.CONTEXT_UPDATED, onContextUpdated);
|
|
275
|
+
return () => {
|
|
276
|
+
eventBus.off(events_1.TUI_EVENTS.AGENT_ACTIVATED, onActivated);
|
|
277
|
+
eventBus.off(events_1.TUI_EVENTS.AGENT_DEACTIVATED, onDeactivated);
|
|
278
|
+
eventBus.off(events_1.TUI_EVENTS.MODE_CHANGED, onModeChanged);
|
|
279
|
+
eventBus.off(events_1.TUI_EVENTS.SKILL_RECOMMENDED, onSkill);
|
|
280
|
+
eventBus.off(events_1.TUI_EVENTS.PARALLEL_STARTED, onParallelStarted);
|
|
281
|
+
eventBus.off(events_1.TUI_EVENTS.PARALLEL_COMPLETED, onParallelCompleted);
|
|
282
|
+
eventBus.off(events_1.TUI_EVENTS.AGENTS_LOADED, onAgentsLoaded);
|
|
283
|
+
eventBus.off(events_1.TUI_EVENTS.AGENT_RELATIONSHIP, onRelationship);
|
|
284
|
+
eventBus.off(events_1.TUI_EVENTS.TASK_SYNCED, onTaskSynced);
|
|
285
|
+
eventBus.off(events_1.TUI_EVENTS.TOOL_INVOKED, onToolInvoked);
|
|
286
|
+
eventBus.off(events_1.TUI_EVENTS.OBJECTIVE_SET, onObjectiveSet);
|
|
287
|
+
eventBus.off(events_1.TUI_EVENTS.SESSION_RESET, onSessionReset);
|
|
288
|
+
eventBus.off(events_1.TUI_EVENTS.CONTEXT_UPDATED, onContextUpdated);
|
|
289
|
+
};
|
|
290
|
+
}, [eventBus]);
|
|
291
|
+
(0, react_1.useEffect)(() => {
|
|
292
|
+
const cleanupInterval = setInterval(() => {
|
|
293
|
+
dispatch({ type: 'CLEANUP_STALE_AGENTS', payload: { now: Date.now(), ttlMs: 30_000 } });
|
|
294
|
+
}, 10_000);
|
|
295
|
+
return () => clearInterval(cleanupInterval);
|
|
296
|
+
}, []);
|
|
297
|
+
return state;
|
|
298
|
+
}
|
|
299
|
+
//# sourceMappingURL=use-dashboard-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-dashboard-state.js","sourceRoot":"","sources":["../../../../src/tui/hooks/use-dashboard-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.selectFocusedAgent = selectFocusedAgent;
|
|
4
|
+
function selectFocusedAgent(agents, currentFocusId) {
|
|
5
|
+
if (agents.size === 0)
|
|
6
|
+
return null;
|
|
7
|
+
let primaryRunning = null;
|
|
8
|
+
let lastRunning = null;
|
|
9
|
+
for (const a of agents.values()) {
|
|
10
|
+
if (a.status === 'running') {
|
|
11
|
+
if (a.isPrimary) {
|
|
12
|
+
primaryRunning = a.id;
|
|
13
|
+
}
|
|
14
|
+
lastRunning = a.id;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (primaryRunning)
|
|
18
|
+
return primaryRunning;
|
|
19
|
+
if (lastRunning)
|
|
20
|
+
return lastRunning;
|
|
21
|
+
if (currentFocusId && agents.has(currentFocusId)) {
|
|
22
|
+
return currentFocusId;
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=use-focus-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-focus-agent.js","sourceRoot":"","sources":["../../../../src/tui/hooks/use-focus-agent.ts"],"names":[],"mappings":";;AAMA,gDA+BC;AA/BD,SAAgB,kBAAkB,CAChC,MAAkC,EAClC,cAA6B;IAE7B,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAGnC,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,IAAI,WAAW,GAAkB,IAAI,CAAC;IACtC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAChB,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC;YACxB,CAAC;YACD,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAGD,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAG1C,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAGpC,IAAI,cAAc,IAAI,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QACjD,OAAO,cAAc,CAAC;IACxB,CAAC;IAGD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DashboardState } from '../dashboard-types';
|
|
2
|
+
import type { MultiSessionManager } from '../ipc/multi-session-manager';
|
|
3
|
+
export interface SessionState {
|
|
4
|
+
pid: number;
|
|
5
|
+
projectRoot: string;
|
|
6
|
+
dashboardState: DashboardState;
|
|
7
|
+
}
|
|
8
|
+
export interface MultiSessionState {
|
|
9
|
+
sessions: Map<number, SessionState>;
|
|
10
|
+
activeSessionPid: number | null;
|
|
11
|
+
switchSession: (pid: number) => void;
|
|
12
|
+
switchByIndex: (index: number) => void;
|
|
13
|
+
switchNext: () => void;
|
|
14
|
+
switchPrev: () => void;
|
|
15
|
+
}
|
|
16
|
+
export declare function useMultiSessionState(manager: MultiSessionManager): MultiSessionState;
|