@intrect/openswarm 0.17.1 → 0.17.3
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 +21 -5
- package/config.example.yaml +18 -0
- package/dist/adapters/agenticLoop.d.ts +2 -0
- package/dist/adapters/agenticLoop.d.ts.map +1 -1
- package/dist/adapters/agenticLoop.js +7 -4
- package/dist/adapters/agenticLoop.js.map +1 -1
- package/dist/adapters/base.d.ts.map +1 -1
- package/dist/adapters/base.js +9 -0
- package/dist/adapters/base.js.map +1 -1
- package/dist/adapters/claude.d.ts.map +1 -1
- package/dist/adapters/claude.js +6 -3
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/codex.d.ts.map +1 -1
- package/dist/adapters/codex.js +3 -2
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/codexResponses.d.ts +2 -1
- package/dist/adapters/codexResponses.d.ts.map +1 -1
- package/dist/adapters/codexResponses.js +35 -31
- package/dist/adapters/codexResponses.js.map +1 -1
- package/dist/adapters/errorClassification.d.ts +11 -0
- package/dist/adapters/errorClassification.d.ts.map +1 -1
- package/dist/adapters/errorClassification.js +22 -0
- package/dist/adapters/errorClassification.js.map +1 -1
- package/dist/adapters/gpt.d.ts.map +1 -1
- package/dist/adapters/gpt.js +2 -1
- package/dist/adapters/gpt.js.map +1 -1
- package/dist/adapters/local.d.ts.map +1 -1
- package/dist/adapters/local.js +2 -1
- package/dist/adapters/local.js.map +1 -1
- package/dist/adapters/openrouter.d.ts.map +1 -1
- package/dist/adapters/openrouter.js +2 -1
- package/dist/adapters/openrouter.js.map +1 -1
- package/dist/adapters/processRegistry.d.ts.map +1 -1
- package/dist/adapters/processRegistry.js +8 -0
- package/dist/adapters/processRegistry.js.map +1 -1
- package/dist/adapters/types.d.ts +2 -0
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/agents/pairPipeline.d.ts +10 -139
- package/dist/agents/pairPipeline.d.ts.map +1 -1
- package/dist/agents/pairPipeline.js +127 -35
- package/dist/agents/pairPipeline.js.map +1 -1
- package/dist/agents/pairPipelineTypes.d.ts +109 -0
- package/dist/agents/pairPipelineTypes.d.ts.map +1 -0
- package/dist/agents/pairPipelineTypes.js +2 -0
- package/dist/agents/pairPipelineTypes.js.map +1 -0
- package/dist/agents/pipelineGuards.d.ts.map +1 -1
- package/dist/agents/pipelineGuards.js +346 -0
- package/dist/agents/pipelineGuards.js.map +1 -1
- package/dist/agents/pipelineTaskPrefix.d.ts +3 -0
- package/dist/agents/pipelineTaskPrefix.d.ts.map +1 -0
- package/dist/agents/pipelineTaskPrefix.js +16 -0
- package/dist/agents/pipelineTaskPrefix.js.map +1 -0
- package/dist/agents/reflection.d.ts +1 -1
- package/dist/agents/reflection.d.ts.map +1 -1
- package/dist/agents/reflection.js +3 -1
- package/dist/agents/reflection.js.map +1 -1
- package/dist/agents/reviewer.d.ts +6 -0
- package/dist/agents/reviewer.d.ts.map +1 -1
- package/dist/agents/reviewer.js +4 -1
- package/dist/agents/reviewer.js.map +1 -1
- package/dist/agents/stageErrorClassification.d.ts +16 -0
- package/dist/agents/stageErrorClassification.d.ts.map +1 -0
- package/dist/agents/stageErrorClassification.js +38 -0
- package/dist/agents/stageErrorClassification.js.map +1 -0
- package/dist/agents/stageModelResolver.d.ts +8 -0
- package/dist/agents/stageModelResolver.d.ts.map +1 -0
- package/dist/agents/stageModelResolver.js +22 -0
- package/dist/agents/stageModelResolver.js.map +1 -0
- package/dist/agents/worker.d.ts +33 -0
- package/dist/agents/worker.d.ts.map +1 -1
- package/dist/agents/worker.js +62 -5
- package/dist/agents/worker.js.map +1 -1
- package/dist/agents/workerFanout.d.ts +38 -0
- package/dist/agents/workerFanout.d.ts.map +1 -0
- package/dist/agents/workerFanout.js +277 -0
- package/dist/agents/workerFanout.js.map +1 -0
- package/dist/agents/workerFanoutGate.d.ts +48 -0
- package/dist/agents/workerFanoutGate.d.ts.map +1 -0
- package/dist/agents/workerFanoutGate.js +146 -0
- package/dist/agents/workerFanoutGate.js.map +1 -0
- package/dist/agents/workerValidationEvidence.d.ts +5 -0
- package/dist/agents/workerValidationEvidence.d.ts.map +1 -0
- package/dist/agents/workerValidationEvidence.js +75 -0
- package/dist/agents/workerValidationEvidence.js.map +1 -0
- package/dist/auth/linearPkce.d.ts.map +1 -1
- package/dist/auth/linearPkce.js +1 -12
- package/dist/auth/linearPkce.js.map +1 -1
- package/dist/auth/oauthPkce.d.ts.map +1 -1
- package/dist/auth/oauthPkce.js +1 -14
- package/dist/auth/oauthPkce.js.map +1 -1
- package/dist/auth/oauthStore.d.ts.map +1 -1
- package/dist/auth/oauthStore.js +28 -2
- package/dist/auth/oauthStore.js.map +1 -1
- package/dist/auth/openBrowser.d.ts +2 -0
- package/dist/auth/openBrowser.d.ts.map +1 -0
- package/dist/auth/openBrowser.js +32 -0
- package/dist/auth/openBrowser.js.map +1 -0
- package/dist/auth/openrouterPkce.d.ts.map +1 -1
- package/dist/auth/openrouterPkce.js +1 -14
- package/dist/auth/openrouterPkce.js.map +1 -1
- package/dist/automation/autonomousRunner.d.ts +24 -6
- package/dist/automation/autonomousRunner.d.ts.map +1 -1
- package/dist/automation/autonomousRunner.js +242 -41
- package/dist/automation/autonomousRunner.js.map +1 -1
- package/dist/automation/backlogGrooming.d.ts +52 -0
- package/dist/automation/backlogGrooming.d.ts.map +1 -0
- package/dist/automation/backlogGrooming.js +231 -0
- package/dist/automation/backlogGrooming.js.map +1 -0
- package/dist/automation/runnerExecution.d.ts +1 -1
- package/dist/automation/runnerExecution.d.ts.map +1 -1
- package/dist/automation/runnerExecution.js +31 -9
- package/dist/automation/runnerExecution.js.map +1 -1
- package/dist/automation/runnerTypes.d.ts +3 -1
- package/dist/automation/runnerTypes.d.ts.map +1 -1
- package/dist/automation/taskSource.d.ts +6 -3
- package/dist/automation/taskSource.d.ts.map +1 -1
- package/dist/automation/taskSource.js +5 -0
- package/dist/automation/taskSource.js.map +1 -1
- package/dist/cli/daemon.d.ts +20 -3
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/daemon.js +42 -2
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/fixBoard.d.ts +14 -0
- package/dist/cli/fixBoard.d.ts.map +1 -0
- package/dist/cli/fixBoard.js +32 -0
- package/dist/cli/fixBoard.js.map +1 -0
- package/dist/cli/fixCommand.d.ts +8 -0
- package/dist/cli/fixCommand.d.ts.map +1 -1
- package/dist/cli/fixCommand.js +47 -8
- package/dist/cli/fixCommand.js.map +1 -1
- package/dist/cli/memoryCommand.d.ts +37 -0
- package/dist/cli/memoryCommand.d.ts.map +1 -0
- package/dist/cli/memoryCommand.js +156 -0
- package/dist/cli/memoryCommand.js.map +1 -0
- package/dist/cli/reviewAudit.d.ts +68 -0
- package/dist/cli/reviewAudit.d.ts.map +1 -1
- package/dist/cli/reviewAudit.js +147 -4
- package/dist/cli/reviewAudit.js.map +1 -1
- package/dist/cli/reviewMaxCommand.d.ts +2 -0
- package/dist/cli/reviewMaxCommand.d.ts.map +1 -1
- package/dist/cli/reviewMaxCommand.js +61 -33
- package/dist/cli/reviewMaxCommand.js.map +1 -1
- package/dist/cli.js +68 -13
- package/dist/cli.js.map +1 -1
- package/dist/core/config.d.ts +413 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +51 -5
- package/dist/core/config.js.map +1 -1
- package/dist/core/eventHub.d.ts +22 -0
- package/dist/core/eventHub.d.ts.map +1 -1
- package/dist/core/eventHub.js +1 -0
- package/dist/core/eventHub.js.map +1 -1
- package/dist/core/providerOverride.d.ts +9 -0
- package/dist/core/providerOverride.d.ts.map +1 -1
- package/dist/core/providerOverride.js +12 -0
- package/dist/core/providerOverride.js.map +1 -1
- package/dist/core/service.d.ts.map +1 -1
- package/dist/core/service.js +8 -2
- package/dist/core/service.js.map +1 -1
- package/dist/core/types.d.ts +61 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/linear/linear.d.ts +2 -1
- package/dist/linear/linear.d.ts.map +1 -1
- package/dist/linear/linear.js +34 -12
- package/dist/linear/linear.js.map +1 -1
- package/dist/linear/projectUpdater.d.ts.map +1 -1
- package/dist/linear/projectUpdater.js +40 -13
- package/dist/linear/projectUpdater.js.map +1 -1
- package/dist/locale/prompts/en.d.ts.map +1 -1
- package/dist/locale/prompts/en.js +15 -5
- package/dist/locale/prompts/en.js.map +1 -1
- package/dist/locale/prompts/ko.d.ts.map +1 -1
- package/dist/locale/prompts/ko.js +15 -5
- package/dist/locale/prompts/ko.js.map +1 -1
- package/dist/mcp/mcpClient.d.ts.map +1 -1
- package/dist/mcp/mcpClient.js +85 -4
- package/dist/mcp/mcpClient.js.map +1 -1
- package/dist/memory/compaction.d.ts +2 -2
- package/dist/memory/compaction.d.ts.map +1 -1
- package/dist/memory/compaction.js +22 -17
- package/dist/memory/compaction.js.map +1 -1
- package/dist/memory/index.d.ts +3 -3
- package/dist/memory/index.js +3 -3
- package/dist/memory/memoryCore.d.ts +16 -27
- package/dist/memory/memoryCore.d.ts.map +1 -1
- package/dist/memory/memoryCore.js +160 -102
- package/dist/memory/memoryCore.js.map +1 -1
- package/dist/memory/memoryFilters.d.ts +8 -0
- package/dist/memory/memoryFilters.d.ts.map +1 -0
- package/dist/memory/memoryFilters.js +26 -0
- package/dist/memory/memoryFilters.js.map +1 -0
- package/dist/memory/memoryOps.d.ts +7 -23
- package/dist/memory/memoryOps.d.ts.map +1 -1
- package/dist/memory/memoryOps.js +54 -117
- package/dist/memory/memoryOps.js.map +1 -1
- package/dist/memory/repoKnowledge.d.ts.map +1 -1
- package/dist/memory/repoKnowledge.js +48 -3
- package/dist/memory/repoKnowledge.js.map +1 -1
- package/dist/notify/notifier.d.ts.map +1 -1
- package/dist/notify/notifier.js +23 -16
- package/dist/notify/notifier.js.map +1 -1
- package/dist/orchestration/conflictDetector.d.ts.map +1 -1
- package/dist/orchestration/conflictDetector.js +48 -12
- package/dist/orchestration/conflictDetector.js.map +1 -1
- package/dist/orchestration/taskParser.d.ts.map +1 -1
- package/dist/orchestration/taskParser.js +18 -7
- package/dist/orchestration/taskParser.js.map +1 -1
- package/dist/orchestration/taskScheduler.d.ts +5 -0
- package/dist/orchestration/taskScheduler.d.ts.map +1 -1
- package/dist/orchestration/taskScheduler.js +37 -12
- package/dist/orchestration/taskScheduler.js.map +1 -1
- package/dist/registry/bsDetector.d.ts.map +1 -1
- package/dist/registry/bsDetector.js +23 -3
- package/dist/registry/bsDetector.js.map +1 -1
- package/dist/registry/entityScanner.d.ts.map +1 -1
- package/dist/registry/entityScanner.js +10 -5
- package/dist/registry/entityScanner.js.map +1 -1
- package/dist/registry/graphql/resolvers.d.ts +1 -1
- package/dist/registry/graphql/resolvers.d.ts.map +1 -1
- package/dist/registry/graphql/resolvers.js +92 -15
- package/dist/registry/graphql/resolvers.js.map +1 -1
- package/dist/registry/memoryBridge.js +4 -4
- package/dist/registry/memoryBridge.js.map +1 -1
- package/dist/registry/sqliteStore.d.ts +1 -1
- package/dist/registry/sqliteStore.d.ts.map +1 -1
- package/dist/registry/sqliteStore.js +20 -5
- package/dist/registry/sqliteStore.js.map +1 -1
- package/dist/support/chatMemory.js +1 -1
- package/dist/support/chatMemory.js.map +1 -1
- package/dist/support/dashboardHtml.d.ts +1 -1
- package/dist/support/dashboardHtml.d.ts.map +1 -1
- package/dist/support/dashboardHtml.js +12 -0
- package/dist/support/dashboardHtml.js.map +1 -1
- package/dist/support/gitTracker.d.ts +30 -3
- package/dist/support/gitTracker.d.ts.map +1 -1
- package/dist/support/gitTracker.js +108 -29
- package/dist/support/gitTracker.js.map +1 -1
- package/dist/support/projectMapper.d.ts.map +1 -1
- package/dist/support/projectMapper.js +5 -0
- package/dist/support/projectMapper.js.map +1 -1
- package/dist/support/repoMetadata.d.ts +10 -0
- package/dist/support/repoMetadata.d.ts.map +1 -1
- package/dist/support/repoMetadata.js +31 -0
- package/dist/support/repoMetadata.js.map +1 -1
- package/dist/support/rollback.d.ts.map +1 -1
- package/dist/support/rollback.js +10 -3
- package/dist/support/rollback.js.map +1 -1
- package/dist/support/timeWindow.d.ts.map +1 -1
- package/dist/support/timeWindow.js +46 -40
- package/dist/support/timeWindow.js.map +1 -1
- package/dist/support/updateNotifier.d.ts +12 -0
- package/dist/support/updateNotifier.d.ts.map +1 -1
- package/dist/support/updateNotifier.js +71 -0
- package/dist/support/updateNotifier.js.map +1 -1
- package/dist/support/web.d.ts.map +1 -1
- package/dist/support/web.js +74 -8
- package/dist/support/web.js.map +1 -1
- package/dist/support/worktreeManager.d.ts +33 -0
- package/dist/support/worktreeManager.d.ts.map +1 -1
- package/dist/support/worktreeManager.js +172 -2
- package/dist/support/worktreeManager.js.map +1 -1
- package/dist/taskState/store.d.ts.map +1 -1
- package/dist/taskState/store.js +2 -3
- package/dist/taskState/store.js.map +1 -1
- package/dist/tui/App.js +1 -1
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/chatModel.d.ts +2 -4
- package/dist/tui/chatModel.d.ts.map +1 -1
- package/dist/tui/chatModel.js +5 -10
- package/dist/tui/chatModel.js.map +1 -1
- package/dist/tui/components/AuditBoard.d.ts +3 -2
- package/dist/tui/components/AuditBoard.d.ts.map +1 -1
- package/dist/tui/components/AuditBoard.js +13 -4
- package/dist/tui/components/AuditBoard.js.map +1 -1
- package/dist/tui/components/ChatInput.js +1 -1
- package/dist/tui/components/ChatLog.js +1 -1
- package/dist/tui/components/ChatLog.js.map +1 -1
- package/dist/tui/components/DataTable.d.ts +3 -1
- package/dist/tui/components/DataTable.d.ts.map +1 -1
- package/dist/tui/components/DataTable.js +22 -4
- package/dist/tui/components/DataTable.js.map +1 -1
- package/dist/tui/components/LiveLog.js +1 -1
- package/dist/tui/components/LiveLog.js.map +1 -1
- package/dist/tui/components/StageTimeline.d.ts +1 -1
- package/dist/tui/components/StageTimeline.d.ts.map +1 -1
- package/dist/tui/components/StageTimeline.js +6 -3
- package/dist/tui/components/StageTimeline.js.map +1 -1
- package/dist/tui/components/SubagentTree.d.ts +6 -6
- package/dist/tui/components/SubagentTree.d.ts.map +1 -1
- package/dist/tui/components/SubagentTree.js +39 -7
- package/dist/tui/components/SubagentTree.js.map +1 -1
- package/dist/tui/eventCoalescer.d.ts +29 -0
- package/dist/tui/eventCoalescer.d.ts.map +1 -0
- package/dist/tui/eventCoalescer.js +56 -0
- package/dist/tui/eventCoalescer.js.map +1 -0
- package/dist/tui/hooks/useMonitor.d.ts +3 -1
- package/dist/tui/hooks/useMonitor.d.ts.map +1 -1
- package/dist/tui/hooks/useMonitor.js +17 -1
- package/dist/tui/hooks/useMonitor.js.map +1 -1
- package/dist/tui/hooks/usePipelineEvents.d.ts +1 -1
- package/dist/tui/hooks/usePipelineEvents.d.ts.map +1 -1
- package/dist/tui/hooks/usePipelineEvents.js +18 -4
- package/dist/tui/hooks/usePipelineEvents.js.map +1 -1
- package/dist/tui/hooks/useTerminalSize.d.ts.map +1 -1
- package/dist/tui/hooks/useTerminalSize.js +3 -1
- package/dist/tui/hooks/useTerminalSize.js.map +1 -1
- package/dist/tui/monitorApi.d.ts +4 -4
- package/dist/tui/monitorApi.d.ts.map +1 -1
- package/dist/tui/monitorApi.js +13 -7
- package/dist/tui/monitorApi.js.map +1 -1
- package/dist/tui/monitorRows.d.ts +41 -2
- package/dist/tui/monitorRows.d.ts.map +1 -1
- package/dist/tui/monitorRows.js +86 -7
- package/dist/tui/monitorRows.js.map +1 -1
- package/dist/tui/panels/ChatPanel.d.ts.map +1 -1
- package/dist/tui/panels/ChatPanel.js +70 -15
- package/dist/tui/panels/ChatPanel.js.map +1 -1
- package/dist/tui/panels/MonitorPanel.d.ts +2 -1
- package/dist/tui/panels/MonitorPanel.d.ts.map +1 -1
- package/dist/tui/panels/MonitorPanel.js +2 -2
- package/dist/tui/panels/MonitorPanel.js.map +1 -1
- package/dist/tui/panels/PipelinePanel.d.ts.map +1 -1
- package/dist/tui/panels/PipelinePanel.js +6 -1
- package/dist/tui/panels/PipelinePanel.js.map +1 -1
- package/dist/tui/pipelineEvents.d.ts +14 -0
- package/dist/tui/pipelineEvents.d.ts.map +1 -1
- package/dist/tui/pipelineEvents.js +89 -1
- package/dist/tui/pipelineEvents.js.map +1 -1
- package/dist/tui/sse.d.ts.map +1 -1
- package/dist/tui/sse.js +29 -3
- package/dist/tui/sse.js.map +1 -1
- package/dist/tui/subagentTree.d.ts +26 -3
- package/dist/tui/subagentTree.d.ts.map +1 -1
- package/dist/tui/subagentTree.js +89 -14
- package/dist/tui/subagentTree.js.map +1 -1
- package/package.json +1 -1
|
@@ -41,6 +41,9 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
41
41
|
const createdAtRef = useRef(new Date().toISOString());
|
|
42
42
|
const goalRef = useRef(goalProp);
|
|
43
43
|
const abortRef = useRef(null);
|
|
44
|
+
const mountedRef = useRef(true);
|
|
45
|
+
const modelSelectorRequestRef = useRef(0);
|
|
46
|
+
const resumedGoalRef = useRef(false);
|
|
44
47
|
const persistenceErrorRef = useRef(null);
|
|
45
48
|
// When set, the next submitted line is routed here (a /plan confirm or edit)
|
|
46
49
|
// instead of being treated as chat — the Ink analogue of blessed pendingInput.
|
|
@@ -52,9 +55,20 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
52
55
|
const [selector, setSelector] = useState(null);
|
|
53
56
|
const [selectorIndex, setSelectorIndex] = useState(0);
|
|
54
57
|
const cwd = projectPath ?? process.cwd();
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
mountedRef.current = true;
|
|
60
|
+
return () => {
|
|
61
|
+
mountedRef.current = false;
|
|
62
|
+
modelSelectorRequestRef.current += 1;
|
|
63
|
+
abortRef.current?.abort();
|
|
64
|
+
};
|
|
65
|
+
}, []);
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
modelSelectorRequestRef.current += 1;
|
|
68
|
+
}, [provider]);
|
|
55
69
|
// Persist the conversation on every change so it survives exit and can be
|
|
56
70
|
// reopened with `openswarm resume`. System/UI lines are dropped by
|
|
57
|
-
// historyToMessages;
|
|
71
|
+
// historyToMessages; an active goal rides along so resume can restart it. (INT-2014)
|
|
58
72
|
useEffect(() => {
|
|
59
73
|
if (state.history.length === 0)
|
|
60
74
|
return;
|
|
@@ -70,22 +84,34 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
70
84
|
goal: goalRef.current,
|
|
71
85
|
})
|
|
72
86
|
.then(() => {
|
|
87
|
+
if (!mountedRef.current)
|
|
88
|
+
return;
|
|
73
89
|
persistenceErrorRef.current = null;
|
|
74
90
|
})
|
|
75
91
|
.catch((e) => {
|
|
92
|
+
if (!mountedRef.current)
|
|
93
|
+
return;
|
|
76
94
|
const msg = e instanceof Error ? e.message : String(e);
|
|
77
95
|
if (persistenceErrorRef.current === msg)
|
|
78
96
|
return;
|
|
79
97
|
persistenceErrorRef.current = msg;
|
|
80
98
|
dispatch({ type: 'system', content: `✖ failed to save session: ${msg}` });
|
|
81
99
|
});
|
|
82
|
-
}, [state.history, provider, model]);
|
|
100
|
+
}, [state.history, provider, model, goalActive]);
|
|
83
101
|
const ask = useCallback((prompt) => new Promise((resolve) => {
|
|
102
|
+
if (!mountedRef.current) {
|
|
103
|
+
resolve('no');
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
84
106
|
dispatch({ type: 'system', content: prompt });
|
|
85
107
|
setPending({ resolve });
|
|
86
108
|
}), []);
|
|
87
109
|
const planIO = {
|
|
88
|
-
print: (line) =>
|
|
110
|
+
print: (line) => {
|
|
111
|
+
if (!mountedRef.current)
|
|
112
|
+
return;
|
|
113
|
+
dispatch({ type: 'system', content: line });
|
|
114
|
+
},
|
|
89
115
|
confirm: async (prompt) => normalizeConfirm(await ask(prompt)),
|
|
90
116
|
promptText: (prompt) => ask(prompt),
|
|
91
117
|
};
|
|
@@ -95,10 +121,13 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
95
121
|
await runPlanCommand(goal, planIO, { projectPath: cwd, model });
|
|
96
122
|
}
|
|
97
123
|
catch (e) {
|
|
124
|
+
if (!mountedRef.current)
|
|
125
|
+
return;
|
|
98
126
|
dispatch({ type: 'system', content: `✖ plan failed: ${e instanceof Error ? e.message : String(e)}` });
|
|
99
127
|
}
|
|
100
128
|
finally {
|
|
101
|
-
|
|
129
|
+
if (mountedRef.current)
|
|
130
|
+
setBusy(false);
|
|
102
131
|
}
|
|
103
132
|
},
|
|
104
133
|
// planIO is rebuilt each render but only closes over stable dispatch/ask.
|
|
@@ -117,9 +146,13 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
117
146
|
// buffer — that's the /goal token-spam (INT-2013). Drop them here; codex
|
|
118
147
|
// surfaces reasoning separately via onLog ('💭 …'). (INT-2014)
|
|
119
148
|
(t, isThinking) => {
|
|
149
|
+
if (!mountedRef.current)
|
|
150
|
+
return;
|
|
120
151
|
if (!isThinking)
|
|
121
152
|
dispatch({ type: 'stream', chunk: t });
|
|
122
153
|
}, (line) => {
|
|
154
|
+
if (!mountedRef.current)
|
|
155
|
+
return;
|
|
123
156
|
if (isActivityNoise(line))
|
|
124
157
|
return;
|
|
125
158
|
setActivity((a) => [...a, line].slice(-10));
|
|
@@ -127,16 +160,21 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
127
160
|
cwd);
|
|
128
161
|
}
|
|
129
162
|
catch (e) {
|
|
163
|
+
if (!mountedRef.current)
|
|
164
|
+
return;
|
|
130
165
|
const msg = e instanceof Error ? e.message : String(e);
|
|
131
166
|
// An abort (from /goal clear) is intentional, not an error.
|
|
132
167
|
if (!ac.signal.aborted)
|
|
133
168
|
dispatch({ type: 'stream', chunk: `\n[error] ${msg}` });
|
|
134
169
|
}
|
|
135
170
|
finally {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
171
|
+
if (mountedRef.current) {
|
|
172
|
+
dispatch({ type: 'commit' });
|
|
173
|
+
setActivity([]);
|
|
174
|
+
setBusy(false);
|
|
175
|
+
if (abortRef.current === ac)
|
|
176
|
+
abortRef.current = null;
|
|
177
|
+
}
|
|
140
178
|
}
|
|
141
179
|
}, [provider, model, cwd]);
|
|
142
180
|
// /goal routes by complexity: simple → pursue in-session (streamed), complex →
|
|
@@ -149,28 +187,45 @@ export function ChatPanel({ active, provider: providerProp, model: modelProp, pr
|
|
|
149
187
|
await runGoalCommand(goal, planIO, { projectPath: cwd, model, provider }, { pursue: (g) => streamChat(buildGoalPursuitPrompt(g), GOAL_PURSUIT_MAX_TURNS) });
|
|
150
188
|
}
|
|
151
189
|
catch (e) {
|
|
190
|
+
if (!mountedRef.current)
|
|
191
|
+
return;
|
|
152
192
|
dispatch({ type: 'system', content: `✖ goal failed: ${e instanceof Error ? e.message : String(e)}` });
|
|
153
193
|
}
|
|
154
194
|
finally {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
195
|
+
if (mountedRef.current) {
|
|
196
|
+
goalRef.current = undefined;
|
|
197
|
+
setBusy(false);
|
|
198
|
+
// Pursuit turn finished — unblock input and remove the completed goal
|
|
199
|
+
// from the persisted session.
|
|
200
|
+
setGoalActive(false);
|
|
201
|
+
}
|
|
159
202
|
}
|
|
160
203
|
}, [cwd, model, provider, streamChat]);
|
|
204
|
+
useEffect(() => {
|
|
205
|
+
if (!goalProp || resumedGoalRef.current)
|
|
206
|
+
return;
|
|
207
|
+
resumedGoalRef.current = true;
|
|
208
|
+
void runGoal(goalProp);
|
|
209
|
+
}, [goalProp, runGoal]);
|
|
161
210
|
// Open the /model selector for the current provider (async catalog). (INT-1961)
|
|
162
211
|
const openModelSelector = useCallback(async () => {
|
|
212
|
+
const requestId = ++modelSelectorRequestRef.current;
|
|
213
|
+
const requestedProvider = provider;
|
|
163
214
|
dispatch({ type: 'system', content: `Fetching models for ${provider}…` });
|
|
164
215
|
try {
|
|
165
|
-
const models = await listChatModels(
|
|
216
|
+
const models = await listChatModels(requestedProvider);
|
|
217
|
+
if (!mountedRef.current || requestId !== modelSelectorRequestRef.current)
|
|
218
|
+
return;
|
|
166
219
|
if (!models.length) {
|
|
167
|
-
dispatch({ type: 'system', content: `No models listed for ${
|
|
220
|
+
dispatch({ type: 'system', content: `No models listed for ${requestedProvider}. Use /model <name>.` });
|
|
168
221
|
return;
|
|
169
222
|
}
|
|
170
223
|
setSelectorIndex(Math.max(0, models.indexOf(model)));
|
|
171
|
-
setSelector({ kind: 'model', title: `Switch model (${
|
|
224
|
+
setSelector({ kind: 'model', title: `Switch model (${requestedProvider}):`, items: models });
|
|
172
225
|
}
|
|
173
226
|
catch (e) {
|
|
227
|
+
if (!mountedRef.current || requestId !== modelSelectorRequestRef.current)
|
|
228
|
+
return;
|
|
174
229
|
dispatch({ type: 'system', content: `✖ failed to list models: ${e instanceof Error ? e.message : String(e)}` });
|
|
175
230
|
}
|
|
176
231
|
}, [provider, model]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../../src/tui/panels/ChatPanel.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../../src/tui/panels/ChatPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ export interface MonitorPanelProps {
|
|
|
3
3
|
port?: number;
|
|
4
4
|
fetcher: (port: number) => Promise<Table>;
|
|
5
5
|
empty?: string;
|
|
6
|
+
terminalWidth?: number;
|
|
6
7
|
}
|
|
7
|
-
export declare function MonitorPanel({ port, fetcher, empty }: MonitorPanelProps): import("react").JSX.Element;
|
|
8
|
+
export declare function MonitorPanel({ port, fetcher, empty, terminalWidth }: MonitorPanelProps): import("react").JSX.Element;
|
|
8
9
|
//# sourceMappingURL=MonitorPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonitorPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/panels/MonitorPanel.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MonitorPanel.d.ts","sourceRoot":"","sources":["../../../src/tui/panels/MonitorPanel.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,iBAAiB,+BAMtF"}
|
|
@@ -6,7 +6,7 @@ import { Text } from 'ink';
|
|
|
6
6
|
import { DataTable } from '../components/DataTable.js';
|
|
7
7
|
import { useMonitor } from '../hooks/useMonitor.js';
|
|
8
8
|
import { theme } from '../theme.js';
|
|
9
|
-
export function MonitorPanel({ port, fetcher, empty }) {
|
|
9
|
+
export function MonitorPanel({ port, fetcher, empty, terminalWidth }) {
|
|
10
10
|
const { table, error, loading } = useMonitor(port, fetcher);
|
|
11
11
|
if (!port)
|
|
12
12
|
return _jsx(Text, { dimColor: true, children: "\u25CB daemon port unknown" });
|
|
@@ -14,6 +14,6 @@ export function MonitorPanel({ port, fetcher, empty }) {
|
|
|
14
14
|
return _jsx(Text, { color: theme.err, children: `load failed: ${error}` });
|
|
15
15
|
if (!table)
|
|
16
16
|
return _jsx(Text, { dimColor: true, children: loading ? 'loading…' : '(no data)' });
|
|
17
|
-
return _jsx(DataTable, { columns: table.columns, rows: table.rows, empty: empty });
|
|
17
|
+
return _jsx(DataTable, { columns: table.columns, rows: table.rows, empty: empty, terminalWidth: terminalWidth });
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=MonitorPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonitorPanel.js","sourceRoot":"","sources":["../../../src/tui/panels/MonitorPanel.tsx"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,2EAA2E;AAC3E,+EAA+E;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"MonitorPanel.js","sourceRoot":"","sources":["../../../src/tui/panels/MonitorPanel.tsx"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,2EAA2E;AAC3E,+EAA+E;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAUpC,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAqB;IACrF,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,IAAI;QAAE,OAAO,KAAC,IAAI,IAAC,QAAQ,iDAA6B,CAAC;IAC9D,IAAI,KAAK;QAAE,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,GAAG,YAAG,gBAAgB,KAAK,EAAE,GAAQ,CAAC;IAC3E,IAAI,CAAC,KAAK;QAAE,OAAO,KAAC,IAAI,IAAC,QAAQ,kBAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,GAAQ,CAAC;IAC9E,OAAO,KAAC,SAAS,IAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,GAAI,CAAC;AAC7G,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PipelinePanel.d.ts","sourceRoot":"","sources":["../../../src/tui/panels/PipelinePanel.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PipelinePanel.d.ts","sourceRoot":"","sources":["../../../src/tui/panels/PipelinePanel.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,+BA2BzD"}
|
|
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
// Subscribes to the daemon SSE stream and shows the stage timeline + live log,
|
|
4
4
|
// the CLI counterpart of the web dashboard's PIPELINE tab.
|
|
5
5
|
import { Box, Text } from 'ink';
|
|
6
|
+
import { useMemo } from 'react';
|
|
6
7
|
import { StageTimeline } from '../components/StageTimeline.js';
|
|
7
8
|
import { SubagentTree } from '../components/SubagentTree.js';
|
|
8
9
|
import { LiveLog } from '../components/LiveLog.js';
|
|
@@ -11,12 +12,16 @@ import { buildSubagentTree } from '../subagentTree.js';
|
|
|
11
12
|
import { theme } from '../theme.js';
|
|
12
13
|
export function PipelinePanel({ port }) {
|
|
13
14
|
const { stages, logs, connected } = usePipelineEvents(port);
|
|
15
|
+
// Stabilize the tree identity so it only rebuilds when stages actually change
|
|
16
|
+
// (log-only updates keep the same `stages` reference). Prevents SubagentTree's
|
|
17
|
+
// spinner effect from re-subscribing every render + lets React.memo skip it. (INT-2407)
|
|
18
|
+
const repositories = useMemo(() => buildSubagentTree(stages), [stages]);
|
|
14
19
|
const live = !!port && connected;
|
|
15
20
|
const label = !port
|
|
16
21
|
? ' daemon port unknown'
|
|
17
22
|
: connected
|
|
18
23
|
? ` live (:${port})`
|
|
19
24
|
: ` connecting :${port}…`;
|
|
20
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: [_jsx(Text, { color: live ? theme.ok : theme.dim, children: live ? '●' : '○' }), _jsx(Text, { dimColor: true, children: label })] }), _jsx(SubagentTree, {
|
|
25
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsxs(Text, { children: [_jsx(Text, { color: live ? theme.ok : theme.dim, children: live ? '●' : '○' }), _jsx(Text, { dimColor: true, children: label })] }), _jsx(SubagentTree, { repositories: repositories }), _jsx(Box, { marginTop: 1, children: _jsx(StageTimeline, { stages: stages }) }), _jsx(Box, { marginTop: 1, children: _jsx(LiveLog, { logs: logs }) })] }));
|
|
21
26
|
}
|
|
22
27
|
//# sourceMappingURL=PipelinePanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PipelinePanel.js","sourceRoot":"","sources":["../../../src/tui/panels/PipelinePanel.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,2DAA2D;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAOpC,MAAM,UAAU,aAAa,CAAC,EAAE,IAAI,EAAsB;IACxD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,IAAI;QACjB,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,WAAW,IAAI,GAAG;YACpB,CAAC,CAAC,gBAAgB,IAAI,GAAG,CAAC;IAC5B,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,YAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAQ,EACnE,KAAC,IAAI,IAAC,QAAQ,kBAAE,KAAK,GAAQ,IACxB,EACP,KAAC,YAAY,IAAC,
|
|
1
|
+
{"version":3,"file":"PipelinePanel.js","sourceRoot":"","sources":["../../../src/tui/panels/PipelinePanel.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,2DAA2D;AAC3D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAOpC,MAAM,UAAU,aAAa,CAAC,EAAE,IAAI,EAAsB;IACxD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC5D,8EAA8E;IAC9E,+EAA+E;IAC/E,wFAAwF;IACxF,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,IAAI;QACjB,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,WAAW,IAAI,GAAG;YACpB,CAAC,CAAC,gBAAgB,IAAI,GAAG,CAAC;IAC5B,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,YAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAQ,EACnE,KAAC,IAAI,IAAC,QAAQ,kBAAE,KAAK,GAAQ,IACxB,EACP,KAAC,YAAY,IAAC,YAAY,EAAE,YAAY,GAAI,EAC5C,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,aAAa,IAAC,MAAM,EAAE,MAAM,GAAI,GAC7B,EACN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,OAAO,IAAC,IAAI,EAAE,IAAI,GAAI,GACnB,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -3,11 +3,19 @@ export interface StageEntry {
|
|
|
3
3
|
taskId: string;
|
|
4
4
|
stage: string;
|
|
5
5
|
status: 'start' | 'complete' | 'fail';
|
|
6
|
+
repository?: string;
|
|
7
|
+
projectPath?: string;
|
|
8
|
+
worktree?: string;
|
|
9
|
+
branch?: string;
|
|
10
|
+
issueIdentifier?: string;
|
|
11
|
+
title?: string;
|
|
6
12
|
model?: string;
|
|
7
13
|
durationMs?: number;
|
|
8
14
|
costUsd?: number;
|
|
9
15
|
decision?: 'approve' | 'revise' | 'reject';
|
|
10
16
|
summary?: string;
|
|
17
|
+
activity?: string;
|
|
18
|
+
rateLimitResetsAt?: number;
|
|
11
19
|
}
|
|
12
20
|
export interface PipelineState {
|
|
13
21
|
stages: StageEntry[];
|
|
@@ -18,4 +26,10 @@ export declare const MAX_LOGS = 200;
|
|
|
18
26
|
export declare const initialPipelineState: PipelineState;
|
|
19
27
|
/** Fold one HubEvent into pipeline state (reducer shape: (state, action)). */
|
|
20
28
|
export declare function reducePipelineEvent(state: PipelineState, ev: HubEvent): PipelineState;
|
|
29
|
+
/**
|
|
30
|
+
* Fold a batch of events into state in a single step so a coalesced burst of
|
|
31
|
+
* SSE events produces one new state (one commit → one repaint). (INT-2407)
|
|
32
|
+
*/
|
|
33
|
+
export declare function reducePipelineEvents(state: PipelineState, events: HubEvent[]): PipelineState;
|
|
34
|
+
export declare function classifyActivity(line: string): string | undefined;
|
|
21
35
|
//# sourceMappingURL=pipelineEvents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipelineEvents.d.ts","sourceRoot":"","sources":["../../src/tui/pipelineEvents.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"pipelineEvents.d.ts","sourceRoot":"","sources":["../../src/tui/pipelineEvents.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,eAAO,MAAM,QAAQ,MAAM,CAAC;AAE5B,eAAO,MAAM,oBAAoB,EAAE,aAAwC,CAAC;AAE5E,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,GAAG,aAAa,CA+DrF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAE5F;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAajE"}
|
|
@@ -14,17 +14,105 @@ export function reducePipelineEvent(state, ev) {
|
|
|
14
14
|
taskId: d.taskId,
|
|
15
15
|
stage: d.stage,
|
|
16
16
|
status: d.status,
|
|
17
|
+
repository: d.repository,
|
|
18
|
+
projectPath: d.projectPath,
|
|
19
|
+
worktree: d.worktree,
|
|
20
|
+
branch: d.branch,
|
|
21
|
+
issueIdentifier: d.issueIdentifier,
|
|
22
|
+
title: d.title,
|
|
17
23
|
model: d.model,
|
|
18
24
|
durationMs: d.durationMs,
|
|
19
25
|
costUsd: d.costUsd,
|
|
20
26
|
decision: d.decision,
|
|
21
27
|
summary: d.summary,
|
|
28
|
+
activity: d.status === 'start' ? 'waiting' : activityFromStage(d.error),
|
|
29
|
+
rateLimitResetsAt: d.rateLimitResetsAt,
|
|
30
|
+
};
|
|
31
|
+
return { ...state, stages: [...state.stages, entry].slice(-MAX_STAGES) };
|
|
32
|
+
}
|
|
33
|
+
if (ev.type === 'pipeline:fanout') {
|
|
34
|
+
const d = ev.data;
|
|
35
|
+
const summary = d.enabled
|
|
36
|
+
? `${d.shouldFanOut ? 'fan-out recommended' : 'single-worker path'} (score ${d.score}/${d.threshold})`
|
|
37
|
+
: 'fan-out disabled';
|
|
38
|
+
const entry = {
|
|
39
|
+
taskId: d.taskId,
|
|
40
|
+
stage: 'fanout',
|
|
41
|
+
status: 'complete',
|
|
42
|
+
summary: d.reasons.length > 0 ? `${summary}: ${d.reasons.join(', ')}` : summary,
|
|
43
|
+
activity: d.shouldFanOut ? 'fan-out' : 'single-worker',
|
|
22
44
|
};
|
|
23
45
|
return { ...state, stages: [...state.stages, entry].slice(-MAX_STAGES) };
|
|
24
46
|
}
|
|
25
47
|
if (ev.type === 'log') {
|
|
26
|
-
|
|
48
|
+
const activity = classifyActivity(ev.data.line);
|
|
49
|
+
return {
|
|
50
|
+
...state,
|
|
51
|
+
stages: activity
|
|
52
|
+
? updateLatestActivity(state.stages, ev.data.taskId, ev.data.stage, activity)
|
|
53
|
+
: state.stages,
|
|
54
|
+
logs: [...state.logs, `[${ev.data.stage}] ${ev.data.line}`].slice(-MAX_LOGS),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
if (ev.type === 'process:spawn') {
|
|
58
|
+
return {
|
|
59
|
+
...state,
|
|
60
|
+
stages: updateLatestActivity(state.stages, ev.data.taskId, ev.data.stage, 'waiting', ev.data.model),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (ev.type === 'process:exit') {
|
|
64
|
+
if (!ev.data.taskId || !ev.data.stage)
|
|
65
|
+
return state;
|
|
66
|
+
return {
|
|
67
|
+
...state,
|
|
68
|
+
stages: state.stages.map((stage) => stage.taskId === ev.data.taskId && stage.stage === ev.data.stage && stage.activity === 'waiting'
|
|
69
|
+
? { ...stage, activity: undefined }
|
|
70
|
+
: stage),
|
|
71
|
+
};
|
|
27
72
|
}
|
|
28
73
|
return state;
|
|
29
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Fold a batch of events into state in a single step so a coalesced burst of
|
|
77
|
+
* SSE events produces one new state (one commit → one repaint). (INT-2407)
|
|
78
|
+
*/
|
|
79
|
+
export function reducePipelineEvents(state, events) {
|
|
80
|
+
return events.reduce(reducePipelineEvent, state);
|
|
81
|
+
}
|
|
82
|
+
export function classifyActivity(line) {
|
|
83
|
+
const text = line.trim();
|
|
84
|
+
const lower = text.toLowerCase();
|
|
85
|
+
if (/\b(rate[-\s]?limit|quota|429)\b/.test(lower))
|
|
86
|
+
return 'rate-limited';
|
|
87
|
+
const tool = text.match(/(?:tool[:\s]+|🔧\s*)([a-zA-Z_][\w-]*)/);
|
|
88
|
+
if (tool)
|
|
89
|
+
return `tool: ${tool[1]}`;
|
|
90
|
+
if (/\b(apply_patch|read_file|write_file|edit_file|bash|shell|rg|grep)\b/.test(lower)) {
|
|
91
|
+
const matched = lower.match(/\b(apply_patch|read_file|write_file|edit_file|bash|shell|rg|grep)\b/);
|
|
92
|
+
return matched ? `tool: ${matched[1]}` : 'tool';
|
|
93
|
+
}
|
|
94
|
+
if (/\b(reasoning|thinking|analyzing|checking|planning)\b/.test(lower) || text.startsWith('💭'))
|
|
95
|
+
return 'thinking';
|
|
96
|
+
if (/\b(waiting|pending|queued)\b/.test(lower))
|
|
97
|
+
return 'waiting';
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
function activityFromStage(error) {
|
|
101
|
+
return error ? classifyActivity(error) : undefined;
|
|
102
|
+
}
|
|
103
|
+
function updateLatestActivity(stages, taskId, stageName, activity, model) {
|
|
104
|
+
for (let i = stages.length - 1; i >= 0; i--) {
|
|
105
|
+
const stage = stages[i];
|
|
106
|
+
if (stage.taskId !== taskId || stage.stage !== stageName || stage.status !== 'start')
|
|
107
|
+
continue;
|
|
108
|
+
const next = stages.slice();
|
|
109
|
+
next[i] = {
|
|
110
|
+
...stage,
|
|
111
|
+
activity,
|
|
112
|
+
model: stage.model ?? model,
|
|
113
|
+
};
|
|
114
|
+
return next;
|
|
115
|
+
}
|
|
116
|
+
return stages;
|
|
117
|
+
}
|
|
30
118
|
//# sourceMappingURL=pipelineEvents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipelineEvents.js","sourceRoot":"","sources":["../../src/tui/pipelineEvents.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,mEAAmE;AACnE,8EAA8E;AAC9E,4DAA4D;AAC5D,+CAA+C;
|
|
1
|
+
{"version":3,"file":"pipelineEvents.js","sourceRoot":"","sources":["../../src/tui/pipelineEvents.ts"],"names":[],"mappings":"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"}
|
package/dist/tui/sse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/tui/sse.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/tui/sse.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAoBnF;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IACxC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAE3D;AAaD,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,GAAG,iBAAiB,CA2D9E"}
|
package/dist/tui/sse.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// replacing the old 5-second poll in the TUI.
|
|
6
6
|
// ============================================
|
|
7
7
|
import http from 'node:http';
|
|
8
|
+
const MAX_SSE_PARTIAL_BUFFER_CHARS = 64 * 1024;
|
|
8
9
|
/**
|
|
9
10
|
* Parse accumulated SSE text into events + the leftover (incomplete) tail.
|
|
10
11
|
* Wire format (eventHub): `data: <json>\n\n` per event. Malformed frames are
|
|
@@ -37,6 +38,16 @@ export function parseSseFrames(buffer) {
|
|
|
37
38
|
export function eventStreamPath(skipReplay) {
|
|
38
39
|
return skipReplay ? '/api/events?skipReplay=1' : '/api/events';
|
|
39
40
|
}
|
|
41
|
+
function isValidSseResponse(res) {
|
|
42
|
+
if (typeof res.statusCode === 'number' && (res.statusCode < 200 || res.statusCode >= 300))
|
|
43
|
+
return false;
|
|
44
|
+
// Unit tests use a tiny EventEmitter mock; real IncomingMessage always has headers.
|
|
45
|
+
if (!Object.prototype.hasOwnProperty.call(res, 'headers'))
|
|
46
|
+
return true;
|
|
47
|
+
const rawContentType = res.headers['content-type'];
|
|
48
|
+
const contentType = Array.isArray(rawContentType) ? rawContentType.join(';') : rawContentType;
|
|
49
|
+
return typeof contentType === 'string' && contentType.toLowerCase().includes('text/event-stream');
|
|
50
|
+
}
|
|
40
51
|
/** Subscribe to the daemon's /api/events SSE stream, auto-reconnecting on drop. */
|
|
41
52
|
export function connectEventStream(opts) {
|
|
42
53
|
const host = opts.host ?? '127.0.0.1';
|
|
@@ -47,25 +58,40 @@ export function connectEventStream(opts) {
|
|
|
47
58
|
let req = null;
|
|
48
59
|
let timer = null;
|
|
49
60
|
const scheduleReconnect = () => {
|
|
50
|
-
|
|
51
|
-
if (closed)
|
|
61
|
+
if (closed || timer)
|
|
52
62
|
return;
|
|
53
|
-
|
|
63
|
+
buffer = '';
|
|
64
|
+
opts.onStatus?.(false);
|
|
65
|
+
timer = setTimeout(() => {
|
|
66
|
+
timer = null;
|
|
67
|
+
connect();
|
|
68
|
+
}, reconnectMs);
|
|
54
69
|
};
|
|
55
70
|
function connect() {
|
|
56
71
|
if (closed)
|
|
57
72
|
return;
|
|
58
73
|
req = http.get({ host, port: opts.port, path: eventStreamPath(connectedOnce), headers: { Accept: 'text/event-stream' } }, (res) => {
|
|
74
|
+
if (!isValidSseResponse(res)) {
|
|
75
|
+
res.resume();
|
|
76
|
+
scheduleReconnect();
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
59
79
|
connectedOnce = true;
|
|
60
80
|
opts.onStatus?.(true);
|
|
61
81
|
res.setEncoding('utf-8');
|
|
62
82
|
res.on('data', (chunk) => {
|
|
63
83
|
buffer += chunk;
|
|
84
|
+
if (buffer.length > MAX_SSE_PARTIAL_BUFFER_CHARS) {
|
|
85
|
+
buffer = '';
|
|
86
|
+
res.destroy(new Error('SSE partial buffer exceeded limit'));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
64
89
|
const { events, rest } = parseSseFrames(buffer);
|
|
65
90
|
buffer = rest;
|
|
66
91
|
for (const e of events)
|
|
67
92
|
opts.onEvent(e);
|
|
68
93
|
});
|
|
94
|
+
res.on('error', scheduleReconnect);
|
|
69
95
|
res.on('end', scheduleReconnect);
|
|
70
96
|
});
|
|
71
97
|
req.on('error', scheduleReconnect);
|
package/dist/tui/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/tui/sse.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,wEAAwE;AACxE,0EAA0E;AAC1E,2EAA2E;AAC3E,8CAA8C;AAC9C,+CAA+C;AAE/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,IAAI,IAAI,GAAG,MAAM,CAAC;IAClB,IAAI,GAAW,CAAC;IAChB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,SAAS;YAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACrC,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1B,CAAC;AAeD,MAAM,UAAU,eAAe,CAAC,UAAmB;IACjD,OAAO,UAAU,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,aAAa,CAAC;AACjE,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,IAAwB;IACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;IAC7C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,GAAG,GAA8B,IAAI,CAAC;IAC1C,IAAI,KAAK,GAAyC,IAAI,CAAC;IAEvD,MAAM,iBAAiB,GAAG,GAAG,EAAE;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;QACvB,
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/tui/sse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
import type { StageEntry } from './pipelineEvents.js';
|
|
2
2
|
export type TaskStatus = 'start' | 'complete' | 'fail';
|
|
3
|
-
export interface
|
|
3
|
+
export interface RoleNode {
|
|
4
|
+
role: string;
|
|
5
|
+
status: TaskStatus;
|
|
6
|
+
model?: string;
|
|
7
|
+
durationMs?: number;
|
|
8
|
+
decision?: 'approve' | 'revise' | 'reject';
|
|
9
|
+
summary?: string;
|
|
10
|
+
activity?: string;
|
|
11
|
+
rateLimitResetsAt?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface WorktreeNode {
|
|
4
14
|
taskId: string;
|
|
5
|
-
|
|
15
|
+
issueIdentifier?: string;
|
|
16
|
+
title?: string;
|
|
17
|
+
branch?: string;
|
|
18
|
+
worktree?: string;
|
|
19
|
+
currentStage?: string;
|
|
20
|
+
durationMs?: number;
|
|
21
|
+
decision?: 'approve' | 'revise' | 'reject';
|
|
22
|
+
roles: RoleNode[];
|
|
6
23
|
/** Rolled-up status: fail if any stage failed, complete if all complete, else running. */
|
|
7
24
|
status: TaskStatus;
|
|
8
25
|
}
|
|
9
|
-
export
|
|
26
|
+
export interface RepositoryNode {
|
|
27
|
+
repository: string;
|
|
28
|
+
projectPath?: string;
|
|
29
|
+
worktrees: WorktreeNode[];
|
|
30
|
+
status: TaskStatus;
|
|
31
|
+
}
|
|
32
|
+
export declare function buildSubagentTree(stages: StageEntry[]): RepositoryNode[];
|
|
10
33
|
//# sourceMappingURL=subagentTree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagentTree.d.ts","sourceRoot":"","sources":["../../src/tui/subagentTree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"subagentTree.d.ts","sourceRoot":"","sources":["../../src/tui/subagentTree.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC3C,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,0FAA0F;IAC1F,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,EAAE,CAoDxE"}
|