@intrect/openswarm 0.9.3 → 0.10.1
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 +76 -1
- package/config.example.yaml +6 -0
- package/dist/adapters/agenticLoop.d.ts +24 -0
- package/dist/adapters/agenticLoop.d.ts.map +1 -1
- package/dist/adapters/agenticLoop.js +130 -11
- package/dist/adapters/agenticLoop.js.map +1 -1
- package/dist/adapters/applyPatch.d.ts +21 -0
- package/dist/adapters/applyPatch.d.ts.map +1 -0
- package/dist/adapters/applyPatch.js +175 -0
- package/dist/adapters/applyPatch.js.map +1 -0
- package/dist/adapters/base.d.ts.map +1 -1
- package/dist/adapters/base.js +7 -0
- package/dist/adapters/base.js.map +1 -1
- package/dist/adapters/codex.js +10 -0
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/codexResponses.d.ts +8 -0
- package/dist/adapters/codexResponses.d.ts.map +1 -1
- package/dist/adapters/codexResponses.js +86 -8
- package/dist/adapters/codexResponses.js.map +1 -1
- package/dist/adapters/errorClassification.d.ts +8 -0
- package/dist/adapters/errorClassification.d.ts.map +1 -0
- package/dist/adapters/errorClassification.js +54 -0
- package/dist/adapters/errorClassification.js.map +1 -0
- package/dist/adapters/gpt.d.ts.map +1 -1
- package/dist/adapters/gpt.js +12 -1
- package/dist/adapters/gpt.js.map +1 -1
- package/dist/adapters/local.d.ts.map +1 -1
- package/dist/adapters/local.js +9 -1
- package/dist/adapters/local.js.map +1 -1
- package/dist/adapters/openrouter.d.ts.map +1 -1
- package/dist/adapters/openrouter.js +9 -1
- package/dist/adapters/openrouter.js.map +1 -1
- package/dist/adapters/rateLimitError.d.ts +29 -0
- package/dist/adapters/rateLimitError.d.ts.map +1 -0
- package/dist/adapters/rateLimitError.js +64 -0
- package/dist/adapters/rateLimitError.js.map +1 -0
- package/dist/adapters/resultParsing.d.ts.map +1 -1
- package/dist/adapters/resultParsing.js +18 -0
- package/dist/adapters/resultParsing.js.map +1 -1
- package/dist/adapters/tools.d.ts +3 -0
- package/dist/adapters/tools.d.ts.map +1 -1
- package/dist/adapters/tools.js +148 -11
- package/dist/adapters/tools.js.map +1 -1
- package/dist/adapters/types.d.ts +15 -0
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/adapters/webTools.d.ts.map +1 -1
- package/dist/adapters/webTools.js +44 -21
- package/dist/adapters/webTools.js.map +1 -1
- package/dist/agents/agentPair.d.ts +9 -0
- package/dist/agents/agentPair.d.ts.map +1 -1
- package/dist/agents/agentPair.js.map +1 -1
- package/dist/agents/auditor.d.ts.map +1 -1
- package/dist/agents/auditor.js +3 -0
- package/dist/agents/auditor.js.map +1 -1
- package/dist/agents/documenter.d.ts.map +1 -1
- package/dist/agents/documenter.js +3 -0
- package/dist/agents/documenter.js.map +1 -1
- package/dist/agents/draftAnalyzer.d.ts +30 -7
- package/dist/agents/draftAnalyzer.d.ts.map +1 -1
- package/dist/agents/draftAnalyzer.js +181 -30
- package/dist/agents/draftAnalyzer.js.map +1 -1
- package/dist/agents/multiLensReview.d.ts +49 -0
- package/dist/agents/multiLensReview.d.ts.map +1 -0
- package/dist/agents/multiLensReview.js +148 -0
- package/dist/agents/multiLensReview.js.map +1 -0
- package/dist/agents/pairPipeline.d.ts +7 -1
- package/dist/agents/pairPipeline.d.ts.map +1 -1
- package/dist/agents/pairPipeline.js +110 -66
- package/dist/agents/pairPipeline.js.map +1 -1
- package/dist/agents/pipelineFormat.d.ts.map +1 -1
- package/dist/agents/pipelineFormat.js +4 -0
- package/dist/agents/pipelineFormat.js.map +1 -1
- package/dist/agents/reviewer.d.ts +16 -0
- package/dist/agents/reviewer.d.ts.map +1 -1
- package/dist/agents/reviewer.js +30 -0
- package/dist/agents/reviewer.js.map +1 -1
- package/dist/agents/skillDocumenter.d.ts.map +1 -1
- package/dist/agents/skillDocumenter.js +3 -0
- package/dist/agents/skillDocumenter.js.map +1 -1
- package/dist/agents/tester.d.ts.map +1 -1
- package/dist/agents/tester.js +3 -0
- package/dist/agents/tester.js.map +1 -1
- package/dist/agents/worker.d.ts +14 -0
- package/dist/agents/worker.d.ts.map +1 -1
- package/dist/agents/worker.js +123 -22
- package/dist/agents/worker.js.map +1 -1
- package/dist/automation/autonomousRunner.d.ts +12 -0
- package/dist/automation/autonomousRunner.d.ts.map +1 -1
- package/dist/automation/autonomousRunner.js +218 -29
- package/dist/automation/autonomousRunner.js.map +1 -1
- package/dist/automation/runnerExecution.d.ts +15 -0
- package/dist/automation/runnerExecution.d.ts.map +1 -1
- package/dist/automation/runnerExecution.js +77 -1
- package/dist/automation/runnerExecution.js.map +1 -1
- package/dist/automation/runnerState.d.ts +7 -0
- package/dist/automation/runnerState.d.ts.map +1 -1
- package/dist/automation/runnerState.js +23 -1
- package/dist/automation/runnerState.js.map +1 -1
- package/dist/automation/runnerTypes.d.ts +2 -0
- package/dist/automation/runnerTypes.d.ts.map +1 -1
- package/dist/automation/scheduler.d.ts +12 -0
- package/dist/automation/scheduler.d.ts.map +1 -1
- package/dist/automation/scheduler.js +29 -2
- package/dist/automation/scheduler.js.map +1 -1
- package/dist/automation/taskSource.d.ts +9 -1
- package/dist/automation/taskSource.d.ts.map +1 -1
- package/dist/automation/taskSource.js +13 -2
- package/dist/automation/taskSource.js.map +1 -1
- package/dist/cli/auditPM.d.ts +40 -0
- package/dist/cli/auditPM.d.ts.map +1 -0
- package/dist/cli/auditPM.js +152 -0
- package/dist/cli/auditPM.js.map +1 -0
- package/dist/cli/designPipeline.d.ts +30 -0
- package/dist/cli/designPipeline.d.ts.map +1 -0
- package/dist/cli/designPipeline.js +113 -0
- package/dist/cli/designPipeline.js.map +1 -0
- package/dist/cli/mcpCommand.d.ts +22 -0
- package/dist/cli/mcpCommand.d.ts.map +1 -0
- package/dist/cli/mcpCommand.js +93 -0
- package/dist/cli/mcpCommand.js.map +1 -0
- package/dist/cli/projectHandler.d.ts.map +1 -1
- package/dist/cli/projectHandler.js +4 -2
- package/dist/cli/projectHandler.js.map +1 -1
- package/dist/cli/reviewAudit.d.ts +130 -0
- package/dist/cli/reviewAudit.d.ts.map +1 -0
- package/dist/cli/reviewAudit.js +283 -0
- package/dist/cli/reviewAudit.js.map +1 -0
- package/dist/cli/reviewCommand.d.ts +53 -0
- package/dist/cli/reviewCommand.d.ts.map +1 -0
- package/dist/cli/reviewCommand.js +207 -0
- package/dist/cli/reviewCommand.js.map +1 -0
- package/dist/cli/reviewMaxCommand.d.ts +35 -0
- package/dist/cli/reviewMaxCommand.d.ts.map +1 -0
- package/dist/cli/reviewMaxCommand.js +278 -0
- package/dist/cli/reviewMaxCommand.js.map +1 -0
- package/dist/cli/reviewProgress.d.ts +34 -0
- package/dist/cli/reviewProgress.d.ts.map +1 -0
- package/dist/cli/reviewProgress.js +109 -0
- package/dist/cli/reviewProgress.js.map +1 -0
- package/dist/cli/scheduleCommand.d.ts +15 -0
- package/dist/cli/scheduleCommand.d.ts.map +1 -0
- package/dist/cli/scheduleCommand.js +68 -0
- package/dist/cli/scheduleCommand.js.map +1 -0
- package/dist/cli.js +182 -26
- package/dist/cli.js.map +1 -1
- package/dist/core/config.d.ts +24 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +42 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/providerOverride.d.ts.map +1 -1
- package/dist/core/providerOverride.js +16 -13
- package/dist/core/providerOverride.js.map +1 -1
- package/dist/core/service.d.ts.map +1 -1
- package/dist/core/service.js +11 -0
- package/dist/core/service.js.map +1 -1
- package/dist/core/types.d.ts +38 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/discord/discordHandlers.d.ts.map +1 -1
- package/dist/discord/discordHandlers.js +1 -0
- package/dist/discord/discordHandlers.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/linear/linear.d.ts +21 -0
- package/dist/linear/linear.d.ts.map +1 -1
- package/dist/linear/linear.js +109 -4
- package/dist/linear/linear.js.map +1 -1
- package/dist/linear/projectUpdater.js +3 -1
- package/dist/linear/projectUpdater.js.map +1 -1
- package/dist/locale/prompts/en.d.ts.map +1 -1
- package/dist/locale/prompts/en.js +104 -11
- 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 +103 -11
- package/dist/locale/prompts/ko.js.map +1 -1
- package/dist/locale/types.d.ts +12 -0
- package/dist/locale/types.d.ts.map +1 -1
- package/dist/mcp/mcpClient.d.ts +28 -1
- package/dist/mcp/mcpClient.d.ts.map +1 -1
- package/dist/mcp/mcpClient.js +74 -3
- package/dist/mcp/mcpClient.js.map +1 -1
- package/dist/orchestration/decisionEngine.d.ts +20 -0
- package/dist/orchestration/decisionEngine.d.ts.map +1 -1
- package/dist/orchestration/decisionEngine.js +23 -0
- package/dist/orchestration/decisionEngine.js.map +1 -1
- package/dist/orchestration/taskScheduler.d.ts.map +1 -1
- package/dist/orchestration/taskScheduler.js +12 -1
- package/dist/orchestration/taskScheduler.js.map +1 -1
- package/dist/support/chatBackend.d.ts +18 -0
- package/dist/support/chatBackend.d.ts.map +1 -1
- package/dist/support/chatBackend.js +92 -8
- package/dist/support/chatBackend.js.map +1 -1
- package/dist/support/chatSession.d.ts +51 -0
- package/dist/support/chatSession.d.ts.map +1 -0
- package/dist/support/chatSession.js +134 -0
- package/dist/support/chatSession.js.map +1 -0
- package/dist/support/chatTui.d.ts.map +1 -1
- package/dist/support/chatTui.js +6 -75
- package/dist/support/chatTui.js.map +1 -1
- package/dist/support/concurrencyPool.d.ts +18 -0
- package/dist/support/concurrencyPool.d.ts.map +1 -0
- package/dist/support/concurrencyPool.js +46 -0
- package/dist/support/concurrencyPool.js.map +1 -0
- package/dist/support/dashboardHtml.d.ts +1 -1
- package/dist/support/dashboardHtml.d.ts.map +1 -1
- package/dist/support/dashboardHtml.js +0 -28
- package/dist/support/dashboardHtml.js.map +1 -1
- package/dist/support/editParser.d.ts +26 -0
- package/dist/support/editParser.d.ts.map +1 -1
- package/dist/support/editParser.js +43 -0
- package/dist/support/editParser.js.map +1 -1
- package/dist/support/goalCommand.d.ts +35 -0
- package/dist/support/goalCommand.d.ts.map +1 -0
- package/dist/support/goalCommand.js +112 -0
- package/dist/support/goalCommand.js.map +1 -0
- package/dist/support/index.d.ts +0 -1
- package/dist/support/index.d.ts.map +1 -1
- package/dist/support/index.js +0 -1
- package/dist/support/index.js.map +1 -1
- package/dist/support/web.d.ts.map +1 -1
- package/dist/support/web.js +0 -7
- package/dist/support/web.js.map +1 -1
- package/dist/taskState/store.d.ts +5 -0
- package/dist/taskState/store.d.ts.map +1 -1
- package/dist/taskState/store.js +16 -0
- package/dist/taskState/store.js.map +1 -1
- package/dist/telemetry/telemetry.d.ts +42 -0
- package/dist/telemetry/telemetry.d.ts.map +1 -0
- package/dist/telemetry/telemetry.js +138 -0
- package/dist/telemetry/telemetry.js.map +1 -0
- package/dist/tui/App.d.ts +20 -0
- package/dist/tui/App.d.ts.map +1 -0
- package/dist/tui/App.js +52 -0
- package/dist/tui/App.js.map +1 -0
- package/dist/tui/chatModel.d.ts +81 -0
- package/dist/tui/chatModel.d.ts.map +1 -0
- package/dist/tui/chatModel.js +129 -0
- package/dist/tui/chatModel.js.map +1 -0
- package/dist/tui/components/AuditBoard.d.ts +10 -0
- package/dist/tui/components/AuditBoard.d.ts.map +1 -0
- package/dist/tui/components/AuditBoard.js +50 -0
- package/dist/tui/components/AuditBoard.js.map +1 -0
- package/dist/tui/components/ChatInput.d.ts +14 -0
- package/dist/tui/components/ChatInput.d.ts.map +1 -0
- package/dist/tui/components/ChatInput.js +46 -0
- package/dist/tui/components/ChatInput.js.map +1 -0
- package/dist/tui/components/ChatLog.d.ts +12 -0
- package/dist/tui/components/ChatLog.d.ts.map +1 -0
- package/dist/tui/components/ChatLog.js +47 -0
- package/dist/tui/components/ChatLog.js.map +1 -0
- package/dist/tui/components/CommandPalette.d.ts +6 -0
- package/dist/tui/components/CommandPalette.d.ts.map +1 -0
- package/dist/tui/components/CommandPalette.js +14 -0
- package/dist/tui/components/CommandPalette.js.map +1 -0
- package/dist/tui/components/ContextBar.d.ts +9 -0
- package/dist/tui/components/ContextBar.d.ts.map +1 -0
- package/dist/tui/components/ContextBar.js +18 -0
- package/dist/tui/components/ContextBar.js.map +1 -0
- package/dist/tui/components/DataTable.d.ts +6 -0
- package/dist/tui/components/DataTable.d.ts.map +1 -0
- package/dist/tui/components/DataTable.js +13 -0
- package/dist/tui/components/DataTable.js.map +1 -0
- package/dist/tui/components/HelpBar.d.ts +2 -0
- package/dist/tui/components/HelpBar.d.ts.map +1 -0
- package/dist/tui/components/HelpBar.js +8 -0
- package/dist/tui/components/HelpBar.js.map +1 -0
- package/dist/tui/components/LiveLog.d.ts +6 -0
- package/dist/tui/components/LiveLog.d.ts.map +1 -0
- package/dist/tui/components/LiveLog.js +10 -0
- package/dist/tui/components/LiveLog.js.map +1 -0
- package/dist/tui/components/LogLine.d.ts +4 -0
- package/dist/tui/components/LogLine.d.ts.map +1 -0
- package/dist/tui/components/LogLine.js +8 -0
- package/dist/tui/components/LogLine.js.map +1 -0
- package/dist/tui/components/SelectList.d.ts +6 -0
- package/dist/tui/components/SelectList.d.ts.map +1 -0
- package/dist/tui/components/SelectList.js +15 -0
- package/dist/tui/components/SelectList.js.map +1 -0
- package/dist/tui/components/StageTimeline.d.ts +7 -0
- package/dist/tui/components/StageTimeline.d.ts.map +1 -0
- package/dist/tui/components/StageTimeline.js +18 -0
- package/dist/tui/components/StageTimeline.js.map +1 -0
- package/dist/tui/components/StatusBar.d.ts +7 -0
- package/dist/tui/components/StatusBar.d.ts.map +1 -0
- package/dist/tui/components/StatusBar.js +8 -0
- package/dist/tui/components/StatusBar.js.map +1 -0
- package/dist/tui/components/SubagentTree.d.ts +10 -0
- package/dist/tui/components/SubagentTree.d.ts.map +1 -0
- package/dist/tui/components/SubagentTree.js +12 -0
- package/dist/tui/components/SubagentTree.js.map +1 -0
- package/dist/tui/components/TabBar.d.ts +5 -0
- package/dist/tui/components/TabBar.d.ts.map +1 -0
- package/dist/tui/components/TabBar.js +9 -0
- package/dist/tui/components/TabBar.js.map +1 -0
- package/dist/tui/components/WorkingIndicator.d.ts +6 -0
- package/dist/tui/components/WorkingIndicator.d.ts.map +1 -0
- package/dist/tui/components/WorkingIndicator.js +20 -0
- package/dist/tui/components/WorkingIndicator.js.map +1 -0
- package/dist/tui/hooks/useMonitor.d.ts +8 -0
- package/dist/tui/hooks/useMonitor.d.ts.map +1 -0
- package/dist/tui/hooks/useMonitor.js +42 -0
- package/dist/tui/hooks/useMonitor.js.map +1 -0
- package/dist/tui/hooks/usePipelineEvents.d.ts +6 -0
- package/dist/tui/hooks/usePipelineEvents.d.ts.map +1 -0
- package/dist/tui/hooks/usePipelineEvents.js +21 -0
- package/dist/tui/hooks/usePipelineEvents.js.map +1 -0
- package/dist/tui/hooks/useTerminalSize.d.ts +6 -0
- package/dist/tui/hooks/useTerminalSize.d.ts.map +1 -0
- package/dist/tui/hooks/useTerminalSize.js +26 -0
- package/dist/tui/hooks/useTerminalSize.js.map +1 -0
- package/dist/tui/index.d.ts +22 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +18 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/inputDebug.d.ts +20 -0
- package/dist/tui/inputDebug.d.ts.map +1 -0
- package/dist/tui/inputDebug.js +42 -0
- package/dist/tui/inputDebug.js.map +1 -0
- package/dist/tui/loadingMessages.d.ts +11 -0
- package/dist/tui/loadingMessages.d.ts.map +1 -0
- package/dist/tui/loadingMessages.js +39 -0
- package/dist/tui/loadingMessages.js.map +1 -0
- package/dist/tui/logFormat.d.ts +10 -0
- package/dist/tui/logFormat.d.ts.map +1 -0
- package/dist/tui/logFormat.js +86 -0
- package/dist/tui/logFormat.js.map +1 -0
- package/dist/tui/markdown.d.ts +3 -0
- package/dist/tui/markdown.d.ts.map +1 -0
- package/dist/tui/markdown.js +33 -0
- package/dist/tui/markdown.js.map +1 -0
- package/dist/tui/monitorApi.d.ts +6 -0
- package/dist/tui/monitorApi.d.ts.map +1 -0
- package/dist/tui/monitorApi.js +35 -0
- package/dist/tui/monitorApi.js.map +1 -0
- package/dist/tui/monitorRows.d.ts +43 -0
- package/dist/tui/monitorRows.d.ts.map +1 -0
- package/dist/tui/monitorRows.js +65 -0
- package/dist/tui/monitorRows.js.map +1 -0
- package/dist/tui/panels/ChatPanel.d.ts +16 -0
- package/dist/tui/panels/ChatPanel.d.ts.map +1 -0
- package/dist/tui/panels/ChatPanel.js +305 -0
- package/dist/tui/panels/ChatPanel.js.map +1 -0
- package/dist/tui/panels/LogsPanel.d.ts +8 -0
- package/dist/tui/panels/LogsPanel.d.ts.map +1 -0
- package/dist/tui/panels/LogsPanel.js +19 -0
- package/dist/tui/panels/LogsPanel.js.map +1 -0
- package/dist/tui/panels/MonitorPanel.d.ts +8 -0
- package/dist/tui/panels/MonitorPanel.d.ts.map +1 -0
- package/dist/tui/panels/MonitorPanel.js +19 -0
- package/dist/tui/panels/MonitorPanel.js.map +1 -0
- package/dist/tui/panels/PipelinePanel.d.ts +6 -0
- package/dist/tui/panels/PipelinePanel.d.ts.map +1 -0
- package/dist/tui/panels/PipelinePanel.js +22 -0
- package/dist/tui/panels/PipelinePanel.js.map +1 -0
- package/dist/tui/pipelineEvents.d.ts +21 -0
- package/dist/tui/pipelineEvents.d.ts.map +1 -0
- package/dist/tui/pipelineEvents.js +30 -0
- package/dist/tui/pipelineEvents.js.map +1 -0
- package/dist/tui/sse.d.ts +24 -0
- package/dist/tui/sse.d.ts.map +1 -0
- package/dist/tui/sse.js +78 -0
- package/dist/tui/sse.js.map +1 -0
- package/dist/tui/subagentTree.d.ts +10 -0
- package/dist/tui/subagentTree.d.ts.map +1 -0
- package/dist/tui/subagentTree.js +30 -0
- package/dist/tui/subagentTree.js.map +1 -0
- package/dist/tui/tabs.d.ts +10 -0
- package/dist/tui/tabs.d.ts.map +1 -0
- package/dist/tui/tabs.js +26 -0
- package/dist/tui/tabs.js.map +1 -0
- package/dist/tui/theme.d.ts +29 -0
- package/dist/tui/theme.d.ts.map +1 -0
- package/dist/tui/theme.js +34 -0
- package/dist/tui/theme.js.map +1 -0
- package/package.json +13 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogLine.d.ts","sourceRoot":"","sources":["../../../src/tui/components/LogLine.tsx"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,+BAUjD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// LogLine — render one daemon log line as colored Ink spans (INT-1974).
|
|
3
|
+
import { Text } from 'ink';
|
|
4
|
+
import { parseLogLine } from '../logFormat.js';
|
|
5
|
+
export function LogLine({ line }) {
|
|
6
|
+
return (_jsx(Text, { children: parseLogLine(line).map((s, i) => (_jsx(Text, { color: s.color, bold: s.bold, dimColor: s.dim, children: s.text }, i))) }));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=LogLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogLine.js","sourceRoot":"","sources":["../../../src/tui/components/LogLine.tsx"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,EAAoB;IAChD,OAAO,CACL,KAAC,IAAI,cACF,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAChC,KAAC,IAAI,IAAS,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,YACxD,CAAC,CAAC,IAAI,IADE,CAAC,CAEL,CACR,CAAC,GACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectList.d.ts","sourceRoot":"","sources":["../../../src/tui/components/SelectList.tsx"],"names":[],"mappings":"AAMA,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,aAAiB,GAClB,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,sCAgBA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// SelectList — a titled, single-select list with a highlighted row. Used by the
|
|
3
|
+
// /provider and /model switchers (INT-1960/INT-1961). Key handling lives in the
|
|
4
|
+
// caller (ChatInput's palette routing); this is pure presentation.
|
|
5
|
+
import { Box, Text } from 'ink';
|
|
6
|
+
import { theme } from '../theme.js';
|
|
7
|
+
export function SelectList({ title, items, selectedIndex = 0, }) {
|
|
8
|
+
if (items.length === 0)
|
|
9
|
+
return null;
|
|
10
|
+
return (_jsxs(Box, { flexDirection: "column", marginTop: 1, children: [_jsx(Text, { color: theme.system, children: title }), items.map((item, i) => {
|
|
11
|
+
const selected = i === selectedIndex;
|
|
12
|
+
return (_jsx(Text, { inverse: selected, children: `${selected ? '❯ ' : ' '}${item}` }, item));
|
|
13
|
+
}), _jsx(Text, { dimColor: true, children: ' ↑/↓ select · Enter confirm · Esc cancel' })] }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=SelectList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectList.js","sourceRoot":"","sources":["../../../src/tui/components/SelectList.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,gFAAgF;AAChF,mEAAmE;AACnE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,aAAa,GAAG,CAAC,GAKlB;IACC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,SAAS,EAAE,CAAC,aACtC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,YAAG,KAAK,GAAQ,EACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBACrB,MAAM,QAAQ,GAAG,CAAC,KAAK,aAAa,CAAC;gBACrC,OAAO,CACL,KAAC,IAAI,IAAY,OAAO,EAAE,QAAQ,YAC/B,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,IAD1B,IAAI,CAER,CACR,CAAC;YACJ,CAAC,CAAC,EACF,KAAC,IAAI,IAAC,QAAQ,kBAAE,2CAA2C,GAAQ,IAC/D,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { StageEntry } from '../pipelineEvents.js';
|
|
2
|
+
export interface StageTimelineProps {
|
|
3
|
+
stages: StageEntry[];
|
|
4
|
+
max?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function StageTimeline({ stages, max }: StageTimelineProps): import("react").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=StageTimeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StageTimeline.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StageTimeline.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKvD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,GAAQ,EAAE,EAAE,kBAAkB,+BAqBrE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// StageTimeline — pipeline:stage events as a timeline (EPIC INT-1813 S5).
|
|
3
|
+
// Presentational: takes already-reduced stage entries (parity with the
|
|
4
|
+
// dashboard's renderStages).
|
|
5
|
+
import { Box, Text } from 'ink';
|
|
6
|
+
import { theme } from '../theme.js';
|
|
7
|
+
const ICON = { start: '▶', complete: '✓', fail: '✗' };
|
|
8
|
+
const COLOR = { start: theme.running, complete: theme.ok, fail: theme.err };
|
|
9
|
+
export function StageTimeline({ stages, max = 12 }) {
|
|
10
|
+
const shown = stages.slice(-max);
|
|
11
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: "Pipeline stages" }), shown.length === 0 ? (_jsx(Text, { dimColor: true, children: "(no stage activity yet)" })) : (shown.map((s, i) => {
|
|
12
|
+
const dur = s.durationMs ? ` ${Math.round(s.durationMs / 1000)}s` : '';
|
|
13
|
+
const model = s.model ? ` (${s.model})` : '';
|
|
14
|
+
const decision = s.decision ? ` → ${s.decision}` : '';
|
|
15
|
+
return (_jsx(Text, { color: COLOR[s.status], children: `${ICON[s.status]} ${s.stage}${model}${dur}${decision}` }, i));
|
|
16
|
+
}))] }));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=StageTimeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StageTimeline.js","sourceRoot":"","sources":["../../../src/tui/components/StageTimeline.tsx"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,uEAAuE;AACvE,6BAA6B;AAC7B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,MAAM,IAAI,GAAyC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAC5F,MAAM,KAAK,GAAyC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AAOlH,MAAM,UAAU,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,EAAE,EAAsB;IACpE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,IAAI,sCAAuB,EAChC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACpB,KAAC,IAAI,IAAC,QAAQ,8CAA+B,CAC9C,CAAC,CAAC,CAAC,CACF,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjB,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvE,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtD,OAAO,CACL,KAAC,IAAI,IAAS,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YACjC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,GAAG,QAAQ,EAAE,IAD/C,CAAC,CAEL,CACR,CAAC;YACJ,CAAC,CAAC,CACH,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,cAAc,+BAQrE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// StatusBar — top bar: app identity + active provider/model (EPIC INT-1813 S3).
|
|
3
|
+
import { Box, Text } from 'ink';
|
|
4
|
+
export function StatusBar({ version, provider, model }) {
|
|
5
|
+
const right = provider ? (model ? `${provider}:${model}` : provider) : '';
|
|
6
|
+
return (_jsxs(Box, { justifyContent: "space-between", children: [_jsx(Text, { color: "cyan", bold: true, children: `OpenSwarm${version ? ` v${version}` : ''}` }), right ? _jsx(Text, { dimColor: true, children: right }) : null] }));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=StatusBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../src/tui/components/StatusBar.tsx"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAQhC,MAAM,UAAU,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAkB;IACpE,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,OAAO,CACL,MAAC,GAAG,IAAC,cAAc,EAAC,eAAe,aACjC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,kBAAE,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAQ,EAC3E,KAAK,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,QAAQ,kBAAE,KAAK,GAAQ,CAAC,CAAC,CAAC,IAAI,IACzC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TaskNode } from '../subagentTree.js';
|
|
2
|
+
export interface SubagentTreeProps {
|
|
3
|
+
tasks: TaskNode[];
|
|
4
|
+
/** Max tasks shown (most recent). */
|
|
5
|
+
max?: number;
|
|
6
|
+
/** Max stage children shown per task. */
|
|
7
|
+
maxStages?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function SubagentTree({ tasks, max, maxStages }: SubagentTreeProps): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=SubagentTree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubagentTree.d.ts","sourceRoot":"","sources":["../../../src/tui/components/SubagentTree.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAc,MAAM,oBAAoB,CAAC;AAK/D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,GAAO,EAAE,SAAa,EAAE,EAAE,iBAAiB,+BAqBhF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// SubagentTree — concurrent tasks as a per-worktree agent tree (S7).
|
|
3
|
+
// Presentational: takes nodes built by buildSubagentTree.
|
|
4
|
+
import { Box, Text } from 'ink';
|
|
5
|
+
import { theme } from '../theme.js';
|
|
6
|
+
const ICON = { start: '◐', complete: '●', fail: '✗' };
|
|
7
|
+
const COLOR = { start: theme.running, complete: theme.ok, fail: theme.err };
|
|
8
|
+
export function SubagentTree({ tasks, max = 6, maxStages = 5 }) {
|
|
9
|
+
const shown = tasks.slice(-max);
|
|
10
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: "Agents (by task)" }), shown.length === 0 ? (_jsx(Text, { dimColor: true, children: "(no active agents)" })) : (shown.map((task) => (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: COLOR[task.status], children: `${ICON[task.status]} ${task.taskId.slice(0, 16)}` }), task.stages.slice(-maxStages).map((s, i) => (_jsx(Text, { dimColor: true, children: ` └ ${s.stage}${s.model ? ` (${s.model})` : ''} — ${s.status}` }, i)))] }, task.taskId))))] }));
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=SubagentTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubagentTree.js","sourceRoot":"","sources":["../../../src/tui/components/SubagentTree.tsx"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,0DAA0D;AAC1D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,MAAM,IAAI,GAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAClF,MAAM,KAAK,GAA+B,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AAUxG,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,EAAqB;IAC/E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,IAAI,IAAC,IAAI,uCAAwB,EACjC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACpB,KAAC,IAAI,IAAC,QAAQ,yCAA0B,CACzC,CAAC,CAAC,CAAC,CACF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAClB,MAAC,GAAG,IAAmB,aAAa,EAAC,QAAQ,aAC3C,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAQ,EAC3F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3C,KAAC,IAAI,IAAS,QAAQ,kBACnB,QAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,IADxD,CAAC,CAEL,CACR,CAAC,KANM,IAAI,CAAC,MAAM,CAOf,CACP,CAAC,CACH,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../../src/tui/components/TabBar.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,WAAW,+BAY7C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// TabBar — the 6-tab strip; highlights the active tab (EPIC INT-1813 S3).
|
|
3
|
+
import { Box, Text } from 'ink';
|
|
4
|
+
import { TABS } from '../tabs.js';
|
|
5
|
+
import { theme } from '../theme.js';
|
|
6
|
+
export function TabBar({ active }) {
|
|
7
|
+
return (_jsx(Box, { children: TABS.map((tab, i) => (_jsx(Box, { marginRight: 1, children: _jsx(Text, { inverse: i === active, color: i === active ? theme.accent : undefined, children: ` ${i + 1}:${tab.label} ` }) }, tab.id))) }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=TabBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TabBar.js","sourceRoot":"","sources":["../../../src/tui/components/TabBar.tsx"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAMpC,MAAM,UAAU,MAAM,CAAC,EAAE,MAAM,EAAe;IAC5C,OAAO,CACL,KAAC,GAAG,cACD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,KAAC,GAAG,IAAc,WAAW,EAAE,CAAC,YAC9B,KAAC,IAAI,IAAC,OAAO,EAAE,CAAC,KAAK,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,YACxE,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,GACrB,IAHC,GAAG,CAAC,EAAE,CAIV,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export interface WorkingIndicatorProps {
|
|
2
|
+
/** Fixed starting message index (tests). Defaults to a random line per mount. */
|
|
3
|
+
startIndex?: number;
|
|
4
|
+
}
|
|
5
|
+
export declare function WorkingIndicator({ startIndex }: WorkingIndicatorProps): import("react").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=WorkingIndicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkingIndicator.d.ts","sourceRoot":"","sources":["../../../src/tui/components/WorkingIndicator.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,EAAE,qBAAqB,+BAerE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// WorkingIndicator — animated braille spinner + cycling Warhammer-40k loading
|
|
3
|
+
// line, recovered from the blessed TUI (INT-1813 follow-up). The spinner ticks
|
|
4
|
+
// ~120ms; the message rotates ~2.5s. Frame/message math lives in
|
|
5
|
+
// loadingMessages.ts (tested); this just drives the timer.
|
|
6
|
+
import { Text } from 'ink';
|
|
7
|
+
import { useState, useEffect } from 'react';
|
|
8
|
+
import { spinnerFrame, loadingMessage, LOADING_MESSAGES } from '../loadingMessages.js';
|
|
9
|
+
import { theme } from '../theme.js';
|
|
10
|
+
const TICK_MS = 120;
|
|
11
|
+
export function WorkingIndicator({ startIndex }) {
|
|
12
|
+
const [base] = useState(() => startIndex ?? Math.floor(Math.random() * LOADING_MESSAGES.length));
|
|
13
|
+
const [tick, setTick] = useState(0);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
const timer = setInterval(() => setTick((t) => t + 1), TICK_MS);
|
|
16
|
+
return () => clearInterval(timer);
|
|
17
|
+
}, []);
|
|
18
|
+
return (_jsxs(Text, { color: theme.dim, children: [_jsx(Text, { color: theme.accent, children: spinnerFrame(tick) }), _jsx(Text, { children: ` ${loadingMessage(tick, base)}…` })] }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=WorkingIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkingIndicator.js","sourceRoot":"","sources":["../../../src/tui/components/WorkingIndicator.tsx"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,+EAA+E;AAC/E,iEAAiE;AACjE,2DAA2D;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,OAAO,GAAG,GAAG,CAAC;AAOpB,MAAM,UAAU,gBAAgB,CAAC,EAAE,UAAU,EAAyB;IACpE,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACjG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEpC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,GAAG,aACpB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,YAAG,YAAY,CAAC,IAAI,CAAC,GAAQ,EACtD,KAAC,IAAI,cAAE,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAQ,IAC3C,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Table } from '../monitorRows.js';
|
|
2
|
+
export interface MonitorResult {
|
|
3
|
+
table: Table | null;
|
|
4
|
+
error: string | null;
|
|
5
|
+
loading: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function useMonitor(port: number | undefined, fetcher: (port: number) => Promise<Table>, intervalMs?: number): MonitorResult;
|
|
8
|
+
//# sourceMappingURL=useMonitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMonitor.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useMonitor.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,EACzC,UAAU,SAAO,GAChB,aAAa,CA+Bf"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// OpenSwarm - useMonitor (EPIC INT-1813 S6 / INT-1939)
|
|
3
|
+
// Polls a monitor fetcher on an interval. Network/effect boundary — the mappers
|
|
4
|
+
// it renders are pure + tested.
|
|
5
|
+
// ============================================
|
|
6
|
+
import { useEffect, useState } from 'react';
|
|
7
|
+
export function useMonitor(port, fetcher, intervalMs = 5000) {
|
|
8
|
+
const [table, setTable] = useState(null);
|
|
9
|
+
const [error, setError] = useState(null);
|
|
10
|
+
const [loading, setLoading] = useState(false);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (!port)
|
|
13
|
+
return;
|
|
14
|
+
let cancelled = false;
|
|
15
|
+
const load = async () => {
|
|
16
|
+
setLoading(true);
|
|
17
|
+
try {
|
|
18
|
+
const t = await fetcher(port);
|
|
19
|
+
if (!cancelled) {
|
|
20
|
+
setTable(t);
|
|
21
|
+
setError(null);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch (e) {
|
|
25
|
+
if (!cancelled)
|
|
26
|
+
setError(e instanceof Error ? e.message : String(e));
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
if (!cancelled)
|
|
30
|
+
setLoading(false);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
void load();
|
|
34
|
+
const timer = setInterval(() => void load(), intervalMs);
|
|
35
|
+
return () => {
|
|
36
|
+
cancelled = true;
|
|
37
|
+
clearInterval(timer);
|
|
38
|
+
};
|
|
39
|
+
}, [port, fetcher, intervalMs]);
|
|
40
|
+
return { table, error, loading };
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=useMonitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMonitor.js","sourceRoot":"","sources":["../../../src/tui/hooks/useMonitor.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,uDAAuD;AACvD,gFAAgF;AAChF,gCAAgC;AAChC,+CAA+C;AAE/C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAS5C,MAAM,UAAU,UAAU,CACxB,IAAwB,EACxB,OAAyC,EACzC,UAAU,GAAG,IAAI;IAEjB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACZ,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,SAAS;oBAAE,QAAQ,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,SAAS;oBAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC;QACF,KAAK,IAAI,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;QACzD,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAEhC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type PipelineState } from '../pipelineEvents.js';
|
|
2
|
+
export interface PipelineEventsResult extends PipelineState {
|
|
3
|
+
connected: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare function usePipelineEvents(port: number | undefined): PipelineEventsResult;
|
|
6
|
+
//# sourceMappingURL=usePipelineEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePipelineEvents.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/usePipelineEvents.ts"],"names":[],"mappings":"AASA,OAAO,EAA6C,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErG,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACzD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,CAWhF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// OpenSwarm - usePipelineEvents (EPIC INT-1813 S5 / INT-1938)
|
|
3
|
+
// Connects to the daemon SSE stream and reduces events into pipeline state.
|
|
4
|
+
// Network/effect boundary — the pure reducer (pipelineEvents.ts) and parser
|
|
5
|
+
// (sse.ts parseSseFrames) carry the tested logic.
|
|
6
|
+
// ============================================
|
|
7
|
+
import { useEffect, useReducer, useState } from 'react';
|
|
8
|
+
import { connectEventStream } from '../sse.js';
|
|
9
|
+
import { reducePipelineEvent, initialPipelineState } from '../pipelineEvents.js';
|
|
10
|
+
export function usePipelineEvents(port) {
|
|
11
|
+
const [state, dispatch] = useReducer(reducePipelineEvent, initialPipelineState);
|
|
12
|
+
const [connected, setConnected] = useState(false);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (!port)
|
|
15
|
+
return;
|
|
16
|
+
const handle = connectEventStream({ port, onEvent: dispatch, onStatus: setConnected });
|
|
17
|
+
return () => handle.close();
|
|
18
|
+
}, [port]);
|
|
19
|
+
return { ...state, connected };
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=usePipelineEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePipelineEvents.js","sourceRoot":"","sources":["../../../src/tui/hooks/usePipelineEvents.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,8DAA8D;AAC9D,4EAA4E;AAC5E,4EAA4E;AAC5E,kDAAkD;AAClD,+CAA+C;AAE/C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAsB,MAAM,sBAAsB,CAAC;AAMrG,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IAChF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,MAAM,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;QACvF,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,OAAO,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTerminalSize.d.ts","sourceRoot":"","sources":["../../../src/tui/hooks/useTerminalSize.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,eAAe,IAAI,YAAY,CAiB9C"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// OpenSwarm - useTerminalSize (EPIC INT-1813 S3 / INT-1936)
|
|
3
|
+
// Portable terminal-size hook: reads stdout columns/rows and tracks 'resize'.
|
|
4
|
+
// Works under both withFullScreen (prod) and ink-testing-library (tests),
|
|
5
|
+
// unlike fullscreen-ink's useScreenSize which needs its provider context.
|
|
6
|
+
// ============================================
|
|
7
|
+
import { useStdout } from 'ink';
|
|
8
|
+
import { useEffect, useState } from 'react';
|
|
9
|
+
export function useTerminalSize() {
|
|
10
|
+
const { stdout } = useStdout();
|
|
11
|
+
const [size, setSize] = useState({
|
|
12
|
+
columns: stdout?.columns ?? 80,
|
|
13
|
+
rows: stdout?.rows ?? 24,
|
|
14
|
+
});
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (!stdout)
|
|
17
|
+
return;
|
|
18
|
+
const onResize = () => setSize({ columns: stdout.columns ?? 80, rows: stdout.rows ?? 24 });
|
|
19
|
+
stdout.on('resize', onResize);
|
|
20
|
+
return () => {
|
|
21
|
+
stdout.off('resize', onResize);
|
|
22
|
+
};
|
|
23
|
+
}, [stdout]);
|
|
24
|
+
return size;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=useTerminalSize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTerminalSize.js","sourceRoot":"","sources":["../../../src/tui/hooks/useTerminalSize.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,4DAA4D;AAC5D,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,+CAA+C;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAO5C,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAe;QAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE;QAC9B,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE;KACzB,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3F,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ChatLine } from './chatModel.js';
|
|
2
|
+
export interface StartInkTuiOptions {
|
|
3
|
+
version?: string;
|
|
4
|
+
provider?: string;
|
|
5
|
+
model?: string;
|
|
6
|
+
/** Daemon HTTP port for the Pipeline/monitor tabs. */
|
|
7
|
+
port?: number;
|
|
8
|
+
cwd?: string;
|
|
9
|
+
branch?: string;
|
|
10
|
+
/** Chat session id to save under (resume reuses an existing id). (INT-2014) */
|
|
11
|
+
sessionId?: string;
|
|
12
|
+
/** Conversation restored from a resumed session. (INT-2014) */
|
|
13
|
+
initialHistory?: ChatLine[];
|
|
14
|
+
/** Session goal restored from a resumed session. (INT-2014) */
|
|
15
|
+
goal?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Start the Ink TUI full-screen (enters the alternate screen on start, restores
|
|
19
|
+
* the prior terminal contents on exit). Resolves when the user exits.
|
|
20
|
+
*/
|
|
21
|
+
export declare function startInkTui(opts?: StartInkTuiOptions): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB9E"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// ============================================
|
|
3
|
+
// OpenSwarm - Ink TUI entry (EPIC INT-1813 / INT-1934, wired in S9 INT-1942)
|
|
4
|
+
// Launches the Ink cockpit in the alternate screen buffer. This is the live
|
|
5
|
+
// `openswarm` chat front-end (replaced blessed in S9).
|
|
6
|
+
// ============================================
|
|
7
|
+
import { withFullScreen } from 'fullscreen-ink';
|
|
8
|
+
import { App } from './App.js';
|
|
9
|
+
/**
|
|
10
|
+
* Start the Ink TUI full-screen (enters the alternate screen on start, restores
|
|
11
|
+
* the prior terminal contents on exit). Resolves when the user exits.
|
|
12
|
+
*/
|
|
13
|
+
export async function startInkTui(opts = {}) {
|
|
14
|
+
const app = withFullScreen(_jsx(App, { version: opts.version, provider: opts.provider, model: opts.model, port: opts.port, cwd: opts.cwd, branch: opts.branch, sessionId: opts.sessionId, initialHistory: opts.initialHistory, goal: opts.goal }), { exitOnCtrlC: true });
|
|
15
|
+
await app.start();
|
|
16
|
+
await app.waitUntilExit();
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tui/index.tsx"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,6EAA6E;AAC7E,4EAA4E;AAC5E,uDAAuD;AACvD,+CAA+C;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAmB/B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B,EAAE;IAC7D,MAAM,GAAG,GAAG,cAAc,CACxB,KAAC,GAAG,IACF,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,IAAI,EAAE,IAAI,CAAC,IAAI,GACf,EACF,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAC;IACF,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,MAAM,GAAG,CAAC,aAAa,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const INPUT_DEBUG_LOG: string;
|
|
2
|
+
/** Key flags we care about for diagnostics (subset of ink's Key). */
|
|
3
|
+
export interface DebugKeyFlags {
|
|
4
|
+
return?: boolean;
|
|
5
|
+
backspace?: boolean;
|
|
6
|
+
delete?: boolean;
|
|
7
|
+
ctrl?: boolean;
|
|
8
|
+
meta?: boolean;
|
|
9
|
+
tab?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* One diagnostic line for an input event: the raw string, its Unicode code
|
|
13
|
+
* points (so doubling is visible), and any active key flags. Pure. (INT-1964)
|
|
14
|
+
*/
|
|
15
|
+
export declare function formatInputDebug(input: string, key?: DebugKeyFlags): string;
|
|
16
|
+
/** Whether input diagnostics are enabled (OPENSWARM_DEBUG_INPUT truthy). */
|
|
17
|
+
export declare function inputDebugEnabled(env?: NodeJS.ProcessEnv): boolean;
|
|
18
|
+
/** Append a diagnostic line to the debug log (best-effort, never throws). (INT-1964) */
|
|
19
|
+
export declare function appendInputDebug(input: string, key?: DebugKeyFlags, path?: string): void;
|
|
20
|
+
//# sourceMappingURL=inputDebug.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputDebug.d.ts","sourceRoot":"","sources":["../../src/tui/inputDebug.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,eAAe,QAAmD,CAAC;AAEhF,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,aAAkB,GAAG,MAAM,CAQ/E;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAG/E;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,aAAkB,EAAE,IAAI,SAAkB,GAAG,IAAI,CAOrG"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// OpenSwarm - TUI input diagnostics (INT-1964)
|
|
3
|
+
// ============================================
|
|
4
|
+
//
|
|
5
|
+
// Mobile SSH clients (e.g. Termius) can show doubled multibyte input
|
|
6
|
+
// ('이이렇렇게'). To tell apart an ink-level doubling (ink hands us the char
|
|
7
|
+
// twice) from a terminal-side echo artifact (the value is correct, the terminal
|
|
8
|
+
// draws an extra copy), set OPENSWARM_DEBUG_INPUT=1 and type: each key event is
|
|
9
|
+
// logged with its code points to ~/.openswarm/input-debug.log. If a single
|
|
10
|
+
// keypress logs one code point but the screen shows two glyphs, it's terminal
|
|
11
|
+
// echo (fix in the client); if it logs the code point twice, it's ink-level.
|
|
12
|
+
import { appendFileSync, mkdirSync } from 'node:fs';
|
|
13
|
+
import { homedir } from 'node:os';
|
|
14
|
+
import { join, dirname } from 'node:path';
|
|
15
|
+
export const INPUT_DEBUG_LOG = join(homedir(), '.openswarm', 'input-debug.log');
|
|
16
|
+
/**
|
|
17
|
+
* One diagnostic line for an input event: the raw string, its Unicode code
|
|
18
|
+
* points (so doubling is visible), and any active key flags. Pure. (INT-1964)
|
|
19
|
+
*/
|
|
20
|
+
export function formatInputDebug(input, key = {}) {
|
|
21
|
+
const codepoints = Array.from(input).map((ch) => (ch.codePointAt(0) ?? 0));
|
|
22
|
+
const flags = Object.entries(key)
|
|
23
|
+
.filter(([, v]) => v)
|
|
24
|
+
.map(([k]) => k);
|
|
25
|
+
return `input=${JSON.stringify(input)} len=${codepoints.length} cp=[${codepoints.join(',')}]${flags.length ? ` keys=${flags.join('+')}` : ''}`;
|
|
26
|
+
}
|
|
27
|
+
/** Whether input diagnostics are enabled (OPENSWARM_DEBUG_INPUT truthy). */
|
|
28
|
+
export function inputDebugEnabled(env = process.env) {
|
|
29
|
+
const v = env.OPENSWARM_DEBUG_INPUT;
|
|
30
|
+
return v === '1' || v === 'true';
|
|
31
|
+
}
|
|
32
|
+
/** Append a diagnostic line to the debug log (best-effort, never throws). (INT-1964) */
|
|
33
|
+
export function appendInputDebug(input, key = {}, path = INPUT_DEBUG_LOG) {
|
|
34
|
+
try {
|
|
35
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
36
|
+
appendFileSync(path, `${formatInputDebug(input, key)}\n`);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// diagnostics must never break input handling
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=inputDebug.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputDebug.js","sourceRoot":"","sources":["../../src/tui/inputDebug.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C,EAAE;AACF,qEAAqE;AACrE,wEAAwE;AACxE,gFAAgF;AAChF,gFAAgF;AAChF,2EAA2E;AAC3E,8EAA8E;AAC9E,6EAA6E;AAE7E,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAYhF;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAqB,EAAE;IACrE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACpB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACnB,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,UAAU,CAAC,MAAM,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IACxF,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAC9C,EAAE,CAAC;AACL,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACpE,MAAM,CAAC,GAAG,GAAG,CAAC,qBAAqB,CAAC;IACpC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,CAAC;AACnC,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,MAAqB,EAAE,EAAE,IAAI,GAAG,eAAe;IAC7F,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,cAAc,CAAC,IAAI,EAAE,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const LOADING_MESSAGES: readonly ["Initializing cogitator arrays", "Querying data-vault archives", "Accessing servitor protocols", "Compiling neural responses", "Interfacing with the Noosphere", "Scanning data-streams", "Calibrating logic engines", "Decoding transmission packets", "Loading archive databases", "Synchronizing machine protocols", "Analyzing pattern matrices", "Establishing neural link", "Processing data-core output", "Running diagnostics sequence", "Activating response circuits"];
|
|
2
|
+
export declare const SPINNER_FRAMES: readonly ["⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"];
|
|
3
|
+
/** Braille spinner glyph for the given tick. */
|
|
4
|
+
export declare function spinnerFrame(tick: number): string;
|
|
5
|
+
/**
|
|
6
|
+
* Loading line for a given tick. The message advances once per `periodMs`
|
|
7
|
+
* (spinner ticks every `tickMs`); `base` offsets the starting line so each run
|
|
8
|
+
* opens on a different message.
|
|
9
|
+
*/
|
|
10
|
+
export declare function loadingMessage(tick: number, base?: number, periodMs?: number, tickMs?: number): string;
|
|
11
|
+
//# sourceMappingURL=loadingMessages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadingMessages.d.ts","sourceRoot":"","sources":["../../src/tui/loadingMessages.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB,4dAgBnB,CAAC;AAEX,eAAO,MAAM,cAAc,mDAAoD,CAAC;AAIhF,gDAAgD;AAChD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAI,EAAE,QAAQ,SAAO,EAAE,MAAM,SAAM,GAAG,MAAM,CAG5F"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// OpenSwarm - Loading flavor (INT-1813 follow-up)
|
|
3
|
+
// The Warhammer-40k loading lines + braille spinner from the blessed TUI,
|
|
4
|
+
// recovered for the Ink cockpit. Pure data + frame/message derivation so the
|
|
5
|
+
// animation logic is unit-testable; WorkingIndicator wires the timer.
|
|
6
|
+
// ============================================
|
|
7
|
+
export const LOADING_MESSAGES = [
|
|
8
|
+
'Initializing cogitator arrays',
|
|
9
|
+
'Querying data-vault archives',
|
|
10
|
+
'Accessing servitor protocols',
|
|
11
|
+
'Compiling neural responses',
|
|
12
|
+
'Interfacing with the Noosphere',
|
|
13
|
+
'Scanning data-streams',
|
|
14
|
+
'Calibrating logic engines',
|
|
15
|
+
'Decoding transmission packets',
|
|
16
|
+
'Loading archive databases',
|
|
17
|
+
'Synchronizing machine protocols',
|
|
18
|
+
'Analyzing pattern matrices',
|
|
19
|
+
'Establishing neural link',
|
|
20
|
+
'Processing data-core output',
|
|
21
|
+
'Running diagnostics sequence',
|
|
22
|
+
'Activating response circuits',
|
|
23
|
+
];
|
|
24
|
+
export const SPINNER_FRAMES = ['⣾', '⣽', '⣻', '⢿', '⡿', '⣟', '⣯', '⣷'];
|
|
25
|
+
const mod = (n, m) => ((n % m) + m) % m;
|
|
26
|
+
/** Braille spinner glyph for the given tick. */
|
|
27
|
+
export function spinnerFrame(tick) {
|
|
28
|
+
return SPINNER_FRAMES[mod(tick, SPINNER_FRAMES.length)];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Loading line for a given tick. The message advances once per `periodMs`
|
|
32
|
+
* (spinner ticks every `tickMs`); `base` offsets the starting line so each run
|
|
33
|
+
* opens on a different message.
|
|
34
|
+
*/
|
|
35
|
+
export function loadingMessage(tick, base = 0, periodMs = 2500, tickMs = 120) {
|
|
36
|
+
const idx = base + Math.floor((tick * tickMs) / periodMs);
|
|
37
|
+
return LOADING_MESSAGES[mod(idx, LOADING_MESSAGES.length)];
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=loadingMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadingMessages.js","sourceRoot":"","sources":["../../src/tui/loadingMessages.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,kDAAkD;AAClD,0EAA0E;AAC1E,6EAA6E;AAC7E,sEAAsE;AACtE,+CAA+C;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,+BAA+B;IAC/B,8BAA8B;IAC9B,8BAA8B;IAC9B,4BAA4B;IAC5B,gCAAgC;IAChC,uBAAuB;IACvB,2BAA2B;IAC3B,+BAA+B;IAC/B,2BAA2B;IAC3B,iCAAiC;IACjC,4BAA4B;IAC5B,0BAA0B;IAC1B,6BAA6B;IAC7B,8BAA8B;IAC9B,8BAA8B;CACtB,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAEhF,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAExD,gDAAgD;AAChD,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAI,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAE,MAAM,GAAG,GAAG;IAClF,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC1D,OAAO,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface LogSegment {
|
|
2
|
+
text: string;
|
|
3
|
+
/** Ink color name (cyan/green/yellow/red/magenta/blue…). Omit for default. */
|
|
4
|
+
color?: string;
|
|
5
|
+
bold?: boolean;
|
|
6
|
+
dim?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/** Parse a daemon log line into colored segments. (INT-1974) */
|
|
9
|
+
export declare function parseLogLine(line: string): LogSegment[];
|
|
10
|
+
//# sourceMappingURL=logFormat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logFormat.d.ts","sourceRoot":"","sources":["../../src/tui/logFormat.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAwCD,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,CAiCvD"}
|