@intrect/openswarm 0.9.3 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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/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 +132 -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 +272 -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
package/README.md
CHANGED
|
@@ -64,6 +64,7 @@ Status bar shows: provider · model · message count · cumulative cost
|
|
|
64
64
|
```bash
|
|
65
65
|
openswarm # TUI chat (default)
|
|
66
66
|
openswarm chat [session] # Simple readline chat
|
|
67
|
+
openswarm resume # Reopen the most recent chat session (conversation + goal)
|
|
67
68
|
openswarm start # Start full daemon (requires config.yaml)
|
|
68
69
|
openswarm run "Fix the bug" -p ~/my-project # Run a single task
|
|
69
70
|
openswarm exec "Run tests" --local --pipeline # Execute via daemon
|
|
@@ -71,6 +72,14 @@ openswarm init # Interactive setup wizard (provider auth, Line
|
|
|
71
72
|
openswarm doctor # Diagnose environment (runtime, native deps, providers, ports)
|
|
72
73
|
openswarm validate # Validate config.yaml
|
|
73
74
|
|
|
75
|
+
# Code review
|
|
76
|
+
openswarm review # Review the working-tree changes
|
|
77
|
+
openswarm review --max # Full-codebase audit: fan reviewer subagents over areas
|
|
78
|
+
# → report at .openswarm/audit/ + PM-synthesized Linear
|
|
79
|
+
# issues by default (≤10 cohesive, master + sub-issues)
|
|
80
|
+
# --no-linear (report only), --issues-per-area (legacy spray),
|
|
81
|
+
# --issues <id> (set parent), --fallback <adapter>, --out <file>
|
|
82
|
+
|
|
74
83
|
# Code Registry & BS Detector
|
|
75
84
|
openswarm check --scan # Scan repo → register all entities
|
|
76
85
|
openswarm check src/foo.ts # File brief (entities, tests, risk)
|
|
@@ -308,7 +317,7 @@ Background: decay, consolidation, contradiction detection, distillation.
|
|
|
308
317
|
(success → `system_pattern` with files changed + approach, review rejection →
|
|
309
318
|
`constraint` pitfall), and the next task on the same repo recalls the most
|
|
310
319
|
relevant entries into the worker prompt as a "Repository Knowledge" section.
|
|
311
|
-
Workers get better at a codebase the more they work on it.
|
|
320
|
+
Workers get better at a codebase the more they work on it. Workers can also actively query accumulated repo knowledge mid-task via the `search_memory` tool.
|
|
312
321
|
|
|
313
322
|
### Benchmarks (L0–L6)
|
|
314
323
|
|
|
@@ -423,12 +432,50 @@ src/
|
|
|
423
432
|
| `~/.openswarm/registry.db` | Code entity registry (SQLite) |
|
|
424
433
|
| `~/.openswarm/issues.db` | Local issue tracker (SQLite) |
|
|
425
434
|
| `~/.claude/openswarm-*.json` | Pipeline history and task state |
|
|
435
|
+
| `~/.config/openswarm/telemetry.json` | Anonymous install id + opt-out notice flag |
|
|
426
436
|
| `config.yaml` | Main configuration |
|
|
427
437
|
| `dist/` | Compiled output |
|
|
428
438
|
|
|
429
439
|
---
|
|
430
440
|
|
|
431
441
|
|
|
442
|
+
## Privacy & Telemetry
|
|
443
|
+
|
|
444
|
+
OpenSwarm collects **anonymous, opt-out** usage telemetry to understand how it's
|
|
445
|
+
actually used (npm downloads and GitHub stars don't tell us). A single event is
|
|
446
|
+
sent per command invocation.
|
|
447
|
+
|
|
448
|
+
**What is sent** (and nothing else):
|
|
449
|
+
|
|
450
|
+
| Field | Example | Why |
|
|
451
|
+
|-------|---------|-----|
|
|
452
|
+
| Random install id | `V1StGXR8_Z5j...` (nanoid) | De-duplicate installs — anonymous, local-only |
|
|
453
|
+
| Command | `start`, `run`, `chat` | Which features are used |
|
|
454
|
+
| Version | `0.9.3` | Version adoption |
|
|
455
|
+
| OS / arch | `darwin` / `arm64` | Platform support priorities |
|
|
456
|
+
| Node version | `22.3.0` | Runtime support |
|
|
457
|
+
| Adapter family | `codex` | Which providers are popular |
|
|
458
|
+
| Error flag | `0` / `1` | Failure rate (boolean only) |
|
|
459
|
+
|
|
460
|
+
**Never sent:** source code, prompts, file paths, repo or issue names, Linear/Discord
|
|
461
|
+
content, environment variables, API keys, or any personal data.
|
|
462
|
+
|
|
463
|
+
**How to opt out** (any one):
|
|
464
|
+
|
|
465
|
+
```bash
|
|
466
|
+
export OPENSWARM_TELEMETRY=0 # or DO_NOT_TRACK=1
|
|
467
|
+
```
|
|
468
|
+
```yaml
|
|
469
|
+
# config.yaml
|
|
470
|
+
telemetry:
|
|
471
|
+
enabled: false
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
CI environments (`CI` / `GITHUB_ACTIONS`) are excluded automatically. The collector
|
|
475
|
+
is a Cloudflare Worker writing to a private D1 table; telemetry never blocks or slows
|
|
476
|
+
the CLI (fire-and-forget with a short timeout, and failures are silently ignored).
|
|
477
|
+
|
|
478
|
+
|
|
432
479
|
## Tech Stack
|
|
433
480
|
|
|
434
481
|
| Category | Technology |
|
|
@@ -513,6 +560,34 @@ src/
|
|
|
513
560
|
|
|
514
561
|
---
|
|
515
562
|
|
|
563
|
+
## Troubleshooting
|
|
564
|
+
|
|
565
|
+
### Korean / multibyte input doubles over mobile SSH (e.g. Termius)
|
|
566
|
+
|
|
567
|
+
If the chat TUI shows each Hangul (or other multibyte) character twice —
|
|
568
|
+
`이이렇렇게 쓰쓰이는것` — while ASCII characters look fine, the cause is almost
|
|
569
|
+
always **client-side local / predictive echo** in the mobile SSH app drawing an
|
|
570
|
+
extra copy of wide characters. The keystroke reaches OpenSwarm once; the terminal
|
|
571
|
+
paints it twice.
|
|
572
|
+
|
|
573
|
+
Fix it in the SSH client:
|
|
574
|
+
|
|
575
|
+
- **Termius** → Host/Terminal settings → turn **Local Echo** (a.k.a. predictive
|
|
576
|
+
echo) **off**, and ensure the encoding is **UTF-8**.
|
|
577
|
+
- Confirm the server side is fine by running with diagnostics:
|
|
578
|
+
|
|
579
|
+
```bash
|
|
580
|
+
OPENSWARM_DEBUG_INPUT=1 openswarm chat
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
Type a few Korean characters, then inspect `~/.openswarm/input-debug.log`. If a
|
|
584
|
+
single keypress logs **one** code point (`cp=[51060]`) but you saw two glyphs,
|
|
585
|
+
the doubling is terminal echo (client-side). If it logs the code point **twice**
|
|
586
|
+
in one event, it's an app-level issue — please attach the log to
|
|
587
|
+
[a bug report](https://github.com/unohee/OpenSwarm/issues/new?template=bug_report.md).
|
|
588
|
+
|
|
589
|
+
---
|
|
590
|
+
|
|
516
591
|
## Contributing
|
|
517
592
|
|
|
518
593
|
Contributions are welcome — OpenSwarm is MIT-licensed and accepts pull requests from anyone. See **[CONTRIBUTING.md](CONTRIBUTING.md)** for development setup, the local check gates, branch/commit conventions, and the PR process. By participating you agree to the [Code of Conduct](CODE_OF_CONDUCT.md).
|
package/config.example.yaml
CHANGED
|
@@ -145,3 +145,9 @@ prProcessor:
|
|
|
145
145
|
schedule: "*/15 * * * *" # Check every 15 minutes
|
|
146
146
|
cooldownHours: 6 # Wait 6 hours after processing
|
|
147
147
|
maxIterations: 3 # Max 3 Worker-Reviewer iterations
|
|
148
|
+
|
|
149
|
+
# Anonymous usage telemetry (opt-out). Sends command name, version, and OS only —
|
|
150
|
+
# never code, prompts, paths, or personal data. Disable here, or via
|
|
151
|
+
# OPENSWARM_TELEMETRY=0 / DO_NOT_TRACK=1. CI environments are excluded automatically.
|
|
152
|
+
telemetry:
|
|
153
|
+
enabled: true
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ToolCall, type ToolDefinition } from './tools.js';
|
|
2
|
+
import { type EditFormat } from '../support/editParser.js';
|
|
2
3
|
import type { CliRunResult } from './types.js';
|
|
3
4
|
/** OpenAI Chat Completions API 메시지 포맷 */
|
|
4
5
|
export type ChatMessage = {
|
|
@@ -37,6 +38,8 @@ interface ChatCompletionResponse {
|
|
|
37
38
|
prompt_tokens: number;
|
|
38
39
|
completion_tokens: number;
|
|
39
40
|
total_tokens: number;
|
|
41
|
+
/** Cached input tokens (prompt-cache hits). Subset of prompt_tokens. */
|
|
42
|
+
cached_tokens?: number;
|
|
40
43
|
};
|
|
41
44
|
}
|
|
42
45
|
/** 에이전틱 루프 설정 */
|
|
@@ -78,10 +81,21 @@ export interface AgenticLoopOptions {
|
|
|
78
81
|
bashTimeoutMs?: number;
|
|
79
82
|
/** Expose web_fetch + web_search tools (default true). Disabled e.g. for SWE-bench integrity. */
|
|
80
83
|
webTools?: boolean;
|
|
84
|
+
/** Expose the apply_patch (V4A) tool — codex adapters only (codex models are
|
|
85
|
+
* RLHF-trained on V4A; non-codex models emit malformed V4A). Default false. */
|
|
86
|
+
applyPatch?: boolean;
|
|
81
87
|
/** MCP tools (named `server__tool`) discovered from mcp.json, exposed alongside the native tools. */
|
|
82
88
|
mcpTools?: ToolDefinition[];
|
|
83
89
|
/** Abort the loop (checked each turn) — Esc/Ctrl+C in chat. */
|
|
84
90
|
signal?: AbortSignal;
|
|
91
|
+
/**
|
|
92
|
+
* File-edit format matched to model capability (INT-1676). Default 'json'.
|
|
93
|
+
* - 'json': keep the edit_file / apply_patch tools (frontier models).
|
|
94
|
+
* - 'search-replace': hide those tools; parse Aider-style SEARCH/REPLACE blocks
|
|
95
|
+
* from the response text and apply them (much better for weaker models).
|
|
96
|
+
* - 'whole-file': hide edit_file / apply_patch; the model rewrites via write_file.
|
|
97
|
+
*/
|
|
98
|
+
editFormat?: EditFormat;
|
|
85
99
|
}
|
|
86
100
|
/** 루프 실행 결과 */
|
|
87
101
|
export interface AgenticLoopResult {
|
|
@@ -93,6 +107,8 @@ export interface AgenticLoopResult {
|
|
|
93
107
|
apiCallCount: number;
|
|
94
108
|
/** 총 토큰 사용량 (추적 가능한 경우) */
|
|
95
109
|
totalTokens: number;
|
|
110
|
+
/** 캐시 적중 입력 토큰 누적 (totalTokens의 부분집합) — prompt-cache 효율 측정용 */
|
|
111
|
+
cachedTokens: number;
|
|
96
112
|
/** 소요 시간 (ms) */
|
|
97
113
|
durationMs: number;
|
|
98
114
|
}
|
|
@@ -117,6 +133,14 @@ export declare function toolCallKey(tc: ToolCall): string;
|
|
|
117
133
|
* not stalls (the model produced no tool calls, which ends the loop normally).
|
|
118
134
|
*/
|
|
119
135
|
export declare function allToolCallsSeen(toolCalls: ToolCall[], seen: Set<string>): boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Fixed early turn after which a read-heavy worker with zero edits gets nudged to
|
|
138
|
+
* act. Ported from stranded feat/v0.7.0 (8a1420f): the old guard fired at
|
|
139
|
+
* maxTurns-2 (too late). Fire EARLY so the model still has budget to apply edits.
|
|
140
|
+
*/
|
|
141
|
+
export declare const READ_LOOP_NUDGE_AT = 6;
|
|
142
|
+
/** True when a worker has read/searched past the early budget with no edits yet. */
|
|
143
|
+
export declare function shouldNudgeReadLoop(editToolCount: number, nudgesUsed: number, nudgeMax: number, turn: number): boolean;
|
|
120
144
|
/**
|
|
121
145
|
* 이전 턴(assistant+tool 쌍)을 요약 1줄로 교체.
|
|
122
146
|
* OpenAI API 제약: tool 메시지는 직전 assistant의 tool_call_id와 대응해야 하므로
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agenticLoop.d.ts","sourceRoot":"","sources":["../../src/adapters/agenticLoop.ts"],"names":[],"mappings":"AAQA,OAAO,
|
|
1
|
+
{"version":3,"file":"agenticLoop.d.ts","sourceRoot":"","sources":["../../src/adapters/agenticLoop.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
// OpenAI function calling 포맷 기반.
|
|
6
6
|
// VEGA token_count.py 패턴 이식 — 토큰 기반 히스토리 압축.
|
|
7
7
|
// ============================================
|
|
8
|
-
import { TOOL_DEFINITIONS, executeToolCalls, createReadCache } from './tools.js';
|
|
8
|
+
import { TOOL_DEFINITIONS, APPLY_PATCH_TOOL, executeToolCalls, createReadCache, validatePath } from './tools.js';
|
|
9
9
|
import { WEB_TOOL_DEFINITIONS } from './webTools.js';
|
|
10
|
+
import { detectRateLimit } from './rateLimitError.js';
|
|
11
|
+
import { parseSearchReplaceBlocks, applyEditBlock } from '../support/editParser.js';
|
|
10
12
|
// ============ 토큰 카운팅 (VEGA token_count.py 이식) ============
|
|
11
13
|
// cl100k_base 근사: 한국어 0.78t/char, 영어 0.27t/char
|
|
12
14
|
function countTokensApprox(text) {
|
|
@@ -54,7 +56,7 @@ export async function runAgenticLoop(options) {
|
|
|
54
56
|
// 긴 작업(SWE-bench급 실전 repo)에서 압축이 너무 일찍·자주 터지면 모델이 읽은
|
|
55
57
|
// 파일 컨텍스트를 잃고 같은 파일을 반복 read하다 수정에 도달 못 한다(무한 탐색).
|
|
56
58
|
// 현대 모델 컨텍스트(128k+)에 맞춰 임계를 넉넉히, 최근 보존 블록도 늘린다.
|
|
57
|
-
compactTokenThreshold = 60000, compactAfterMessages = 60, keepRecentMessages = 16, nudgeMaxOnNoEdit = 0, protectedFiles, bashTimeoutMs, webTools = true, mcpTools, signal, } = options;
|
|
59
|
+
compactTokenThreshold = 60000, compactAfterMessages = 60, keepRecentMessages = 16, nudgeMaxOnNoEdit = 0, protectedFiles, bashTimeoutMs, webTools = true, applyPatch = false, mcpTools, signal, editFormat = 'json', } = options;
|
|
58
60
|
const startTime = Date.now();
|
|
59
61
|
const deadline = startTime + timeoutMs;
|
|
60
62
|
// 메시지 히스토리 구성
|
|
@@ -70,9 +72,16 @@ export async function runAgenticLoop(options) {
|
|
|
70
72
|
`All file tools operate within this root. Use paths relative to it (e.g. "src/foo.ts" or ".") ` +
|
|
71
73
|
`or absolute paths under this root. Do NOT use "/" or a bare repo name — those are outside the project and will be rejected.\n\n`;
|
|
72
74
|
messages.push({ role: 'user', content: cwdNote + prompt });
|
|
75
|
+
// In search-replace / whole-file mode the model edits via response-text blocks
|
|
76
|
+
// (S/R) or whole write_file calls, so the structured edit_file tool is hidden to
|
|
77
|
+
// force that path; apply_patch is likewise suppressed (it's a structured edit). (INT-1676)
|
|
78
|
+
const baseTools = editFormat === 'json'
|
|
79
|
+
? TOOL_DEFINITIONS
|
|
80
|
+
: TOOL_DEFINITIONS.filter(t => t.function.name !== 'edit_file');
|
|
73
81
|
const tools = enableTools
|
|
74
82
|
? [
|
|
75
|
-
...
|
|
83
|
+
...baseTools,
|
|
84
|
+
...(applyPatch && editFormat === 'json' ? [APPLY_PATCH_TOOL] : []),
|
|
76
85
|
...(webTools ? WEB_TOOL_DEFINITIONS : []),
|
|
77
86
|
...(mcpTools ?? []),
|
|
78
87
|
]
|
|
@@ -86,9 +95,20 @@ export async function runAgenticLoop(options) {
|
|
|
86
95
|
const seenToolCalls = new Set();
|
|
87
96
|
let noProgressTurns = 0;
|
|
88
97
|
const NO_PROGRESS_LIMIT = 3;
|
|
89
|
-
|
|
98
|
+
// Two independent nudge budgets — they fire for different reasons and must NOT
|
|
99
|
+
// share a counter. read-loop nudges (mid-loop, "stop reading and edit") used to
|
|
100
|
+
// drain the same budget as the finish-turn no-edit guard, so a read-heavy run
|
|
101
|
+
// could exhaust it and then slip past the guard, ending analysis-only. (INT-1925)
|
|
102
|
+
let noEditNudgesUsed = 0;
|
|
103
|
+
let readLoopNudgesUsed = 0;
|
|
104
|
+
// search-replace stall guard: consecutive finish-turns where S/R blocks were
|
|
105
|
+
// present but ALL failed to apply. A model can re-emit the same non-matching
|
|
106
|
+
// block forever, burning turns at full API cost — bail after a couple. (INT-1676)
|
|
107
|
+
let srFailedTurns = 0;
|
|
108
|
+
const SR_FAILED_LIMIT = 2;
|
|
90
109
|
let apiCallCount = 0;
|
|
91
110
|
let totalTokens = 0;
|
|
111
|
+
let cachedTokens = 0;
|
|
92
112
|
let finalText = '';
|
|
93
113
|
for (let turn = 0; turn < maxTurns + 1; turn++) {
|
|
94
114
|
// 사용자 중단 (Esc/Ctrl+C) — 현재 텍스트가 있으면 유지, 없으면 표시만.
|
|
@@ -112,6 +132,12 @@ export async function runAgenticLoop(options) {
|
|
|
112
132
|
if (msgTokens > compactTokenThreshold) {
|
|
113
133
|
onLog?.(`📦 Compacting history (${messages.length} msgs, ${msgTokens} tokens > ${compactTokenThreshold})`);
|
|
114
134
|
compactPriorTurns(messages, keepRecentMessages);
|
|
135
|
+
// Compaction drops prior read content from the model's view, so the read
|
|
136
|
+
// cache's premise ("content is already earlier in the conversation") no
|
|
137
|
+
// longer holds — a stub re-read would leave the model without the file
|
|
138
|
+
// contents it needs for edit_file's old_string. Clear it so the next
|
|
139
|
+
// read returns full content again. (INT-1929)
|
|
140
|
+
readCache.store.clear();
|
|
115
141
|
}
|
|
116
142
|
}
|
|
117
143
|
// API 호출
|
|
@@ -129,12 +155,23 @@ export async function runAgenticLoop(options) {
|
|
|
129
155
|
break;
|
|
130
156
|
}
|
|
131
157
|
const msg = err instanceof Error ? err.message : String(err);
|
|
158
|
+
// A 429/usage-limit raised by the in-process API caller (gpt/local/
|
|
159
|
+
// openrouter/codex-responses) would otherwise be swallowed into finalText
|
|
160
|
+
// here and returned as a normal result — the scheduler never learns it was
|
|
161
|
+
// rate-limited. Re-throw it as a typed RateLimitError so it propagates up to
|
|
162
|
+
// the pipeline, which pauses instead of failing/spamming. (INT-1906)
|
|
163
|
+
const rl = detectRateLimit('', msg);
|
|
164
|
+
if (rl) {
|
|
165
|
+
onLog?.(`■ ${rl.message}`);
|
|
166
|
+
throw rl;
|
|
167
|
+
}
|
|
132
168
|
onLog?.(`✖ API error: ${msg}`);
|
|
133
169
|
finalText = `API error: ${msg}`;
|
|
134
170
|
break;
|
|
135
171
|
}
|
|
136
172
|
if (response.usage) {
|
|
137
173
|
totalTokens += response.usage.prompt_tokens + response.usage.completion_tokens;
|
|
174
|
+
cachedTokens += response.usage.cached_tokens ?? 0;
|
|
138
175
|
}
|
|
139
176
|
const choice = response.choices?.[0];
|
|
140
177
|
if (!choice) {
|
|
@@ -145,16 +182,66 @@ export async function runAgenticLoop(options) {
|
|
|
145
182
|
const assistantMsg = choice.message;
|
|
146
183
|
// 도구 호출이 없으면 최종 응답
|
|
147
184
|
if (!assistantMsg.tool_calls || assistantMsg.tool_calls.length === 0) {
|
|
185
|
+
// SEARCH/REPLACE 모드 — 도구 호출이 아니라 응답 본문의 S/R 블록으로 편집한다.
|
|
186
|
+
// 블록이 있으면 직접 적용하고(보호 파일은 거부) 결과를 되돌려 루프를 잇는다. (INT-1676)
|
|
187
|
+
if (editFormat === 'search-replace' && assistantMsg.content) {
|
|
188
|
+
const parsed = parseSearchReplaceBlocks(assistantMsg.content);
|
|
189
|
+
if (parsed.blocks.length > 0) {
|
|
190
|
+
const resultLines = await Promise.all(parsed.blocks.map(async (block) => {
|
|
191
|
+
// Containment + protection. applyEditBlock bypasses tools.ts guards, so
|
|
192
|
+
// run the same cwd-containment check (rejects ../ escapes) and the
|
|
193
|
+
// protectedFiles check here before touching disk.
|
|
194
|
+
let resolved;
|
|
195
|
+
try {
|
|
196
|
+
resolved = validatePath(block.filePath, cwd);
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return `✗ ${block.filePath} — outside project root, rejected`;
|
|
200
|
+
}
|
|
201
|
+
if (protectedFiles?.some(p => resolved === p || resolved.endsWith(`/${p}`))) {
|
|
202
|
+
return `✗ ${block.filePath} — PROTECTED harness file, cannot modify`;
|
|
203
|
+
}
|
|
204
|
+
const r = await applyEditBlock(block, cwd);
|
|
205
|
+
if (r.success)
|
|
206
|
+
editToolCount++;
|
|
207
|
+
return r.success ? `✓ Applied: ${block.filePath}` : `✗ Failed: ${block.filePath} — ${r.error}`;
|
|
208
|
+
}));
|
|
209
|
+
const failed = resultLines.filter(l => l.startsWith('✗')).length;
|
|
210
|
+
const allFailed = failed === parsed.blocks.length;
|
|
211
|
+
onLog?.(`📝 SEARCH/REPLACE: applied ${parsed.blocks.length - failed}/${parsed.blocks.length} block(s)`);
|
|
212
|
+
// Stall guard: if every block failed for SR_FAILED_LIMIT turns running,
|
|
213
|
+
// the model is stuck re-emitting non-matching blocks — stop. (INT-1676)
|
|
214
|
+
srFailedTurns = allFailed ? srFailedTurns + 1 : 0;
|
|
215
|
+
if (srFailedTurns >= SR_FAILED_LIMIT) {
|
|
216
|
+
onLog?.(`■ SEARCH/REPLACE stalled: ${srFailedTurns} turns with no block applied — stopping`);
|
|
217
|
+
finalText = assistantMsg.content;
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
messages.push({ role: 'assistant', content: assistantMsg.content });
|
|
221
|
+
messages.push({
|
|
222
|
+
role: 'user',
|
|
223
|
+
content: `Edit results:\n${resultLines.join('\n')}\n\n${failed > 0
|
|
224
|
+
? 'Some edits failed — copy the SEARCH text VERBATIM from the file (exact whitespace) and retry.'
|
|
225
|
+
: 'All edits applied. Verify the changes and finish when done.'}`,
|
|
226
|
+
});
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
148
230
|
// no-edit 종료 가드 — 수정 필수 작업인데 edit/write를 한 번도 안 하고 끝내려 하면
|
|
149
231
|
// 되밀어 계속하게 한다(경량 모델의 조기 결론 패턴 차단).
|
|
150
|
-
if (editToolCount === 0 &&
|
|
151
|
-
|
|
152
|
-
onLog?.(`↩ No-edit guard: model tried to finish without editing (nudge ${
|
|
232
|
+
if (editToolCount === 0 && noEditNudgesUsed < nudgeMaxOnNoEdit) {
|
|
233
|
+
noEditNudgesUsed++;
|
|
234
|
+
onLog?.(`↩ No-edit guard: model tried to finish without editing (nudge ${noEditNudgesUsed}/${nudgeMaxOnNoEdit})`);
|
|
235
|
+
const howToEdit = editFormat === 'search-replace'
|
|
236
|
+
? 'Apply the fix now using SEARCH/REPLACE blocks, then verify.'
|
|
237
|
+
: editFormat === 'whole-file'
|
|
238
|
+
? 'Apply the fix now by rewriting the file with write_file, then verify.'
|
|
239
|
+
: 'Apply the fix now with edit_file, then verify.';
|
|
153
240
|
messages.push({ role: 'assistant', content: assistantMsg.content ?? '' });
|
|
154
241
|
messages.push({
|
|
155
242
|
role: 'user',
|
|
156
243
|
content: 'You have not modified any files yet, but this task REQUIRES code changes. ' +
|
|
157
|
-
|
|
244
|
+
`Do not conclude with analysis only. ${howToEdit} ` +
|
|
158
245
|
'Continue working.',
|
|
159
246
|
});
|
|
160
247
|
continue;
|
|
@@ -191,7 +278,7 @@ export async function runAgenticLoop(options) {
|
|
|
191
278
|
// Count only SUCCESSFUL edits — a model whose edit_file calls all fail
|
|
192
279
|
// (old_string not found, protected file) has not modified anything, and
|
|
193
280
|
// counting attempts would let it slip past the no-edit guard.
|
|
194
|
-
editToolCount += toolCalls.filter((tc, i) => (tc.function.name === 'edit_file' || tc.function.name === 'write_file') && !results[i]?.is_error).length;
|
|
281
|
+
editToolCount += toolCalls.filter((tc, i) => (tc.function.name === 'edit_file' || tc.function.name === 'write_file' || tc.function.name === 'apply_patch') && !results[i]?.is_error).length;
|
|
195
282
|
// Progress-based stop: if every tool call this turn repeats a prior one
|
|
196
283
|
// (same name+args → no new info or change), count it as a stalled turn.
|
|
197
284
|
// N consecutive stalled turns → wrap up via the final-answer turn.
|
|
@@ -219,6 +306,20 @@ export async function runAgenticLoop(options) {
|
|
|
219
306
|
onLog?.(` ✖ ${content.slice(0, 100)}`);
|
|
220
307
|
}
|
|
221
308
|
}
|
|
309
|
+
// Early read-loop nudge (ported from stranded feat/v0.7.0 8a1420f): a read-heavy
|
|
310
|
+
// model can burn its whole budget reading/searching and never edit — the
|
|
311
|
+
// finish-turn no-edit guard above never engages because it never tries to finish.
|
|
312
|
+
// Fire DURING the loop at a fixed early turn so the model still has budget to edit.
|
|
313
|
+
if (shouldNudgeReadLoop(editToolCount, readLoopNudgesUsed, nudgeMaxOnNoEdit, turn)) {
|
|
314
|
+
readLoopNudgesUsed++;
|
|
315
|
+
onLog?.(`↩ Read-loop nudge: turn ${turn}, no edits yet (nudge ${readLoopNudgesUsed}/${nudgeMaxOnNoEdit})`);
|
|
316
|
+
messages.push({
|
|
317
|
+
role: 'user',
|
|
318
|
+
content: 'You have spent several turns reading/searching with ZERO edits. You have enough ' +
|
|
319
|
+
'context now — STOP reading and apply the fix with edit_file immediately, then verify. ' +
|
|
320
|
+
'Do not read more files unless an edit actually fails.',
|
|
321
|
+
});
|
|
322
|
+
}
|
|
222
323
|
}
|
|
223
324
|
// Final answer turn — maxTurns/타임아웃으로 끊겼는데 모델이 최종 텍스트를 못 낸 경우,
|
|
224
325
|
// 도구 없이 마지막 1회 호출로 결론을 강제한다. 이게 없으면 진단·분석형 작업이
|
|
@@ -252,6 +353,7 @@ export async function runAgenticLoop(options) {
|
|
|
252
353
|
toolCallCount,
|
|
253
354
|
apiCallCount,
|
|
254
355
|
totalTokens,
|
|
356
|
+
cachedTokens,
|
|
255
357
|
durationMs: Date.now() - startTime,
|
|
256
358
|
};
|
|
257
359
|
}
|
|
@@ -280,6 +382,16 @@ export function allToolCallsSeen(toolCalls, seen) {
|
|
|
280
382
|
return false;
|
|
281
383
|
return toolCalls.every((tc) => seen.has(toolCallKey(tc)));
|
|
282
384
|
}
|
|
385
|
+
/**
|
|
386
|
+
* Fixed early turn after which a read-heavy worker with zero edits gets nudged to
|
|
387
|
+
* act. Ported from stranded feat/v0.7.0 (8a1420f): the old guard fired at
|
|
388
|
+
* maxTurns-2 (too late). Fire EARLY so the model still has budget to apply edits.
|
|
389
|
+
*/
|
|
390
|
+
export const READ_LOOP_NUDGE_AT = 6;
|
|
391
|
+
/** True when a worker has read/searched past the early budget with no edits yet. */
|
|
392
|
+
export function shouldNudgeReadLoop(editToolCount, nudgesUsed, nudgeMax, turn) {
|
|
393
|
+
return editToolCount === 0 && nudgesUsed < nudgeMax && turn >= READ_LOOP_NUDGE_AT;
|
|
394
|
+
}
|
|
283
395
|
// ============ 히스토리 압축 (VEGA compaction.py 패턴 이식) ============
|
|
284
396
|
/**
|
|
285
397
|
* 이전 턴(assistant+tool 쌍)을 요약 1줄로 교체.
|
|
@@ -350,8 +462,15 @@ export function compactPriorTurns(messages, keepRecent = 8) {
|
|
|
350
462
|
// ============ 헬퍼 ============
|
|
351
463
|
function summarizeToolArgs(name, args) {
|
|
352
464
|
switch (name) {
|
|
353
|
-
case 'read_file':
|
|
354
|
-
|
|
465
|
+
case 'read_file': {
|
|
466
|
+
// Include offset/limit so a chunked walk of a large file (advancing offsets
|
|
467
|
+
// = legitimate investigation) is distinguishable from an identical re-read
|
|
468
|
+
// (a real loop). Without this the log hides the signal needed to tell them
|
|
469
|
+
// apart, and the turn-count nudge/maxTurns may cut a still-progressing read.
|
|
470
|
+
const off = args.offset != null ? ` @${args.offset}` : '';
|
|
471
|
+
const lim = args.limit != null ? `+${args.limit}` : '';
|
|
472
|
+
return `${String(args.path ?? '')}${off}${lim}`;
|
|
473
|
+
}
|
|
355
474
|
case 'write_file':
|
|
356
475
|
return String(args.path ?? '');
|
|
357
476
|
case 'edit_file':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agenticLoop.js","sourceRoot":"","sources":["../../src/adapters/agenticLoop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agenticLoop.js","sourceRoot":"","sources":["../../src/adapters/agenticLoop.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,gCAAgC;AAChC,sBAAsB;AACtB,sDAAsD;AACtD,0CAA0C;AAC1C,sDAAsD;AACtD,+CAA+C;AAE/C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAuD,MAAM,YAAY,CAAC;AACtK,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAmB,MAAM,0BAA0B,CAAC;AAGrG,4DAA4D;AAE5D,gDAAgD;AAChD,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IACpB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;IAClE,MAAM,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAuB;IACjD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,KAAK,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB;QAC5B,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;YACtC,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC9B,KAAK,IAAI,iBAAiB,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,iBAAiB,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gDAAgD;AAChD,oDAAoD;AACpD,SAAS,kBAAkB,CAAC,OAAe,EAAE,MAAM,GAAG,IAAI;IACxD,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,OAAO,CAAC;IAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,GAAG,IAAI,SAAS,OAAO,CAAC,MAAM,GAAG,IAAI,yBAAyB,IAAI,EAAE,CAAC;AAC9E,CAAC;AA8GD,oCAAoC;AAEpC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA2B;IAC9D,MAAM,EACJ,YAAY,EACZ,MAAM,EACN,GAAG,EACH,OAAO,EACP,QAAQ,GAAG,EAAE,EACb,SAAS,GAAG,MAAM,EAClB,KAAK,EACL,WAAW,GAAG,IAAI;IAClB,qDAAqD;IACrD,mDAAmD;IACnD,gDAAgD;IAChD,qBAAqB,GAAG,KAAK,EAC7B,oBAAoB,GAAG,EAAE,EACzB,kBAAkB,GAAG,EAAE,EACvB,gBAAgB,GAAG,CAAC,EACpB,cAAc,EACd,aAAa,EACb,QAAQ,GAAG,IAAI,EACf,UAAU,GAAG,KAAK,EAClB,QAAQ,EACR,MAAM,EACN,UAAU,GAAG,MAAM,GACpB,GAAG,OAAO,CAAC;IAEZ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAEvC,cAAc;IACd,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,IAAI,YAAY,EAAE,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,mDAAmD;IACnD,8DAA8D;IAC9D,wDAAwD;IACxD,MAAM,OAAO,GACX,uBAAuB;QACvB,yBAAyB,GAAG,IAAI;QAChC,+FAA+F;QAC/F,iIAAiI,CAAC;IACpI,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;IAE3D,+EAA+E;IAC/E,iFAAiF;IACjF,2FAA2F;IAC3F,MAAM,SAAS,GAAG,UAAU,KAAK,MAAM;QACrC,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,WAAW;QACvB,CAAC,CAAC;YACE,GAAG,SAAS;YACZ,GAAG,CAAC,UAAU,IAAI,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;SACpB;QACH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC,CAAC,6BAA6B;IAClE,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,0CAA0C;IACjE,wDAAwD;IACxD,uDAAuD;IACvD,wCAAwC;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,iBAAiB,GAAG,CAAC,CAAC;IAC5B,+EAA+E;IAC/E,gFAAgF;IAChF,8EAA8E;IAC9E,kFAAkF;IAClF,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,6EAA6E;IAC7E,6EAA6E;IAC7E,kFAAkF;IAClF,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;QAC/C,iDAAiD;QACjD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,KAAK,EAAE,CAAC,mBAAmB,CAAC,CAAC;YAC7B,SAAS,GAAG,SAAS,IAAI,WAAW,CAAC;YACrC,MAAM;QACR,CAAC;QAED,UAAU;QACV,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC1B,KAAK,EAAE,CAAC,gCAAgC,IAAI,QAAQ,CAAC,CAAC;YACtD,MAAM;QACR,CAAC;QAED,sCAAsC;QACtC,yDAAyD;QACzD,iDAAiD;QACjD,6CAA6C;QAC7C,qCAAqC;QACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;YAC3C,MAAM,SAAS,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,SAAS,GAAG,qBAAqB,EAAE,CAAC;gBACtC,KAAK,EAAE,CAAC,0BAA0B,QAAQ,CAAC,MAAM,UAAU,SAAS,aAAa,qBAAqB,GAAG,CAAC,CAAC;gBAC3G,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;gBAChD,yEAAyE;gBACzE,wEAAwE;gBACxE,uEAAuE;gBACvE,qEAAqE;gBACrE,8CAA8C;gBAC9C,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,SAAS;QACT,YAAY,EAAE,CAAC;QACf,KAAK,EAAE,CAAC,eAAe,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEhF,IAAI,QAAgC,CAAC;QACrC,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+DAA+D;YAC/D,IAAI,MAAM,EAAE,OAAO,IAAI,CAAC,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;gBAC3E,KAAK,EAAE,CAAC,mBAAmB,CAAC,CAAC;gBAC7B,SAAS,GAAG,SAAS,IAAI,WAAW,CAAC;gBACrC,MAAM;YACR,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,oEAAoE;YACpE,0EAA0E;YAC1E,2EAA2E;YAC3E,6EAA6E;YAC7E,qEAAqE;YACrE,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACpC,IAAI,EAAE,EAAE,CAAC;gBACP,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3B,MAAM,EAAE,CAAC;YACX,CAAC;YACD,KAAK,EAAE,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;YAC/B,SAAS,GAAG,cAAc,GAAG,EAAE,CAAC;YAChC,MAAM;QACR,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC/E,YAAY,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,KAAK,EAAE,CAAC,2BAA2B,CAAC,CAAC;YACrC,SAAS,GAAG,oBAAoB,CAAC;YACjC,MAAM;QACR,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;QAEpC,mBAAmB;QACnB,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrE,uDAAuD;YACvD,yDAAyD;YACzD,IAAI,UAAU,KAAK,gBAAgB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC5D,MAAM,MAAM,GAAG,wBAAwB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC9D,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;wBACtE,wEAAwE;wBACxE,mEAAmE;wBACnE,kDAAkD;wBAClD,IAAI,QAAgB,CAAC;wBACrB,IAAI,CAAC;4BACH,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;wBAC/C,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,KAAK,KAAK,CAAC,QAAQ,mCAAmC,CAAC;wBAChE,CAAC;wBACD,IAAI,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;4BAC5E,OAAO,KAAK,KAAK,CAAC,QAAQ,0CAA0C,CAAC;wBACvE,CAAC;wBACD,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBAC3C,IAAI,CAAC,CAAC,OAAO;4BAAE,aAAa,EAAE,CAAC;wBAC/B,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;oBACjG,CAAC,CAAC,CAAC,CAAC;oBACJ,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;oBACjE,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;oBAClD,KAAK,EAAE,CAAC,8BAA8B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;oBAExG,wEAAwE;oBACxE,wEAAwE;oBACxE,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClD,IAAI,aAAa,IAAI,eAAe,EAAE,CAAC;wBACrC,KAAK,EAAE,CAAC,6BAA6B,aAAa,yCAAyC,CAAC,CAAC;wBAC7F,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;wBACjC,MAAM;oBACR,CAAC;oBAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;oBACpE,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,kBAAkB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAC/C,MAAM,GAAG,CAAC;4BACR,CAAC,CAAC,+FAA+F;4BACjG,CAAC,CAAC,6DACN,EAAE;qBACH,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;YACH,CAAC;YAED,0DAA0D;YAC1D,mCAAmC;YACnC,IAAI,aAAa,KAAK,CAAC,IAAI,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;gBAC/D,gBAAgB,EAAE,CAAC;gBACnB,KAAK,EAAE,CAAC,iEAAiE,gBAAgB,IAAI,gBAAgB,GAAG,CAAC,CAAC;gBAClH,MAAM,SAAS,GAAG,UAAU,KAAK,gBAAgB;oBAC/C,CAAC,CAAC,6DAA6D;oBAC/D,CAAC,CAAC,UAAU,KAAK,YAAY;wBAC7B,CAAC,CAAC,uEAAuE;wBACzE,CAAC,CAAC,gDAAgD,CAAC;gBACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1E,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM;oBACZ,OAAO,EACL,4EAA4E;wBAC5E,uCAAuC,SAAS,GAAG;wBACnD,mBAAmB;iBACtB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,SAAS,GAAG,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC;YACvC,MAAM;QACR,CAAC;QAED,sCAAsC;QACtC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,UAAU,EAAE,YAAY,CAAC,UAAU;SACpC,CAAC,CAAC;QAEH,QAAQ;QACR,MAAM,SAAS,GAAe,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/D,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,QAAQ,EAAE;gBACR,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI;gBACtB,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS;aACjC;SACF,CAAC,CAAC,CAAC;QAEJ,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAC/C,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC7D,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5E,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAiB,MAAM,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC;QACnH,aAAa,IAAI,SAAS,CAAC,MAAM,CAAC;QAClC,uEAAuE;QACvE,wEAAwE;QACxE,8DAA8D;QAC9D,aAAa,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAC1C,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CACvI,CAAC,MAAM,CAAC;QAET,wEAAwE;QACxE,wEAAwE;QACxE,mEAAmE;QACnE,IAAI,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;YAC/C,eAAe,EAAE,CAAC;YAClB,IAAI,eAAe,IAAI,iBAAiB,EAAE,CAAC;gBACzC,KAAK,EAAE,CAAC,yBAAyB,iBAAiB,4CAA4C,CAAC,CAAC;gBAChG,MAAM;YACR,CAAC;QACH,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,KAAK,MAAM,EAAE,IAAI,SAAS;YAAE,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAE/D,uCAAuC;QACvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACnD,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,OAAO;aACR,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,KAAK,EAAE,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,iFAAiF;QACjF,yEAAyE;QACzE,kFAAkF;QAClF,oFAAoF;QACpF,IAAI,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE,CAAC;YACnF,kBAAkB,EAAE,CAAC;YACrB,KAAK,EAAE,CAAC,2BAA2B,IAAI,yBAAyB,kBAAkB,IAAI,gBAAgB,GAAG,CAAC,CAAC;YAC3G,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,MAAM;gBACZ,OAAO,EACL,kFAAkF;oBAClF,wFAAwF;oBACxF,uDAAuD;aAC1D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,+CAA+C;IAC/C,wDAAwD;IACxD,eAAe;IACf,4EAA4E;IAC5E,2EAA2E;IAC3E,2EAA2E;IAC3E,IAAI,CAAC,SAAS,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,EAAE,CAAC,qEAAqE,CAAC,CAAC;QAC/E,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,MAAM;YACZ,OAAO,EACL,qFAAqF;gBACrF,wFAAwF;gBACxF,yFAAyF;SAC5F,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,WAAW,IAAI,QAAQ,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC;YACjF,CAAC;YACD,YAAY,EAAE,CAAC;YACf,SAAS,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,EAAE,CAAC,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,aAAa;QACb,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;KACnC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC7D,OAAO;QACL,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,MAAM,CAAC,IAAI;QACnB,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,WAAW,CAAC,EAAY;IACtC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAqB,EAAE,IAAiB;IACvE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,oFAAoF;AACpF,MAAM,UAAU,mBAAmB,CACjC,aAAqB,EACrB,UAAkB,EAClB,QAAgB,EAChB,IAAY;IAEZ,OAAO,aAAa,KAAK,CAAC,IAAI,UAAU,GAAG,QAAQ,IAAI,IAAI,IAAI,kBAAkB,CAAC;AACpF,CAAC;AAED,+DAA+D;AAE/D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAuB,EAAE,UAAU,GAAG,CAAC;IACvE,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3D,wCAAwC;IACxC,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IACnE,iDAAiD;IACjD,OAAO,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACxE,QAAQ,EAAE,CAAC;IACb,CAAC;IACD,IAAI,QAAQ,IAAI,WAAW;QAAE,OAAO;IAEpC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACpC,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;wBACtD,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9D,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC;oBACzC,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC1B,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,mDAAmD;gBACnD,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACxC,IAAI,IAAI;oBAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAChG,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACvF,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAElC,MAAM,WAAW,GAAG,2BAA2B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IAE1E,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE;QAC9B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;AACL,CAAC;AAED,+BAA+B;AAE/B,SAAS,iBAAiB,CAAC,IAAY,EAAE,IAA6B;IACpE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,4EAA4E;YAC5E,2EAA2E;YAC3E,2EAA2E;YAC3E,6EAA6E;YAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;QAClD,CAAC;QACD,KAAK,YAAY;YACf,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACjC,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACjC,KAAK,cAAc;YACjB,OAAO,IAAI,IAAI,CAAC,OAAO,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,KAAK,MAAM;YACT,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface ApplyPatchResult {
|
|
2
|
+
changed: string[];
|
|
3
|
+
errors: string[];
|
|
4
|
+
}
|
|
5
|
+
interface Hunk {
|
|
6
|
+
oldBlock: string[];
|
|
7
|
+
newBlock: string[];
|
|
8
|
+
}
|
|
9
|
+
interface FileOp {
|
|
10
|
+
kind: 'update' | 'add' | 'delete';
|
|
11
|
+
filePath: string;
|
|
12
|
+
moveTo?: string;
|
|
13
|
+
hunks: Hunk[];
|
|
14
|
+
addLines: string[];
|
|
15
|
+
}
|
|
16
|
+
/** Parse a V4A patch envelope into file operations. Throws on malformed envelope. */
|
|
17
|
+
export declare function parseV4A(patchText: string): FileOp[];
|
|
18
|
+
/** Apply a parsed V4A patch under `cwd`. Returns touched paths + per-op errors. */
|
|
19
|
+
export declare function applyV4APatch(patchText: string, cwd: string, resolvePath: (p: string) => string): Promise<ApplyPatchResult>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=applyPatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyPatch.d.ts","sourceRoot":"","sources":["../../src/adapters/applyPatch.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,UAAU,IAAI;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AACD,UAAU,MAAM;IACd,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAKD,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAwDpD;AAgBD,mFAAmF;AACnF,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GACjC,OAAO,CAAC,gBAAgB,CAAC,CAuE3B"}
|