@qduc/term2 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +46 -6
- package/dist/agent.js.map +1 -1
- package/dist/agent.test.d.ts +2 -0
- package/dist/agent.test.d.ts.map +1 -0
- package/dist/agent.test.js +198 -0
- package/dist/agent.test.js.map +1 -0
- package/dist/app.d.ts +5 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +30 -14
- package/dist/app.js.map +1 -1
- package/dist/app.startup-banner.test.d.ts +2 -0
- package/dist/app.startup-banner.test.d.ts.map +1 -0
- package/dist/app.startup-banner.test.js +11 -0
- package/dist/app.startup-banner.test.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -3
- package/dist/cli.js.map +1 -1
- package/dist/components/ApprovalPrompt.d.ts.map +1 -1
- package/dist/components/ApprovalPrompt.js +10 -10
- package/dist/components/ApprovalPrompt.js.map +1 -1
- package/dist/components/Banner.js +1 -1
- package/dist/components/Banner.js.map +1 -1
- package/dist/components/BottomArea.d.ts.map +1 -1
- package/dist/components/BottomArea.js +3 -4
- package/dist/components/BottomArea.js.map +1 -1
- package/dist/components/ChatMessage.d.ts +1 -0
- package/dist/components/ChatMessage.d.ts.map +1 -1
- package/dist/components/ChatMessage.js +2 -2
- package/dist/components/ChatMessage.js.map +1 -1
- package/dist/components/CommandMessage.d.ts.map +1 -1
- package/dist/components/CommandMessage.js +48 -3
- package/dist/components/CommandMessage.js.map +1 -1
- package/dist/components/CommandMessage.test.js +90 -0
- package/dist/components/CommandMessage.test.js.map +1 -1
- package/dist/components/Input/PopupManager.d.ts +3 -0
- package/dist/components/Input/PopupManager.d.ts.map +1 -1
- package/dist/components/Input/PopupManager.js +2 -2
- package/dist/components/Input/PopupManager.js.map +1 -1
- package/dist/components/Input/insertions.d.ts.map +1 -1
- package/dist/components/Input/insertions.js +2 -2
- package/dist/components/Input/insertions.js.map +1 -1
- package/dist/components/Input/popup-key-navigation.d.ts +18 -0
- package/dist/components/Input/popup-key-navigation.d.ts.map +1 -0
- package/dist/components/Input/popup-key-navigation.js +16 -0
- package/dist/components/Input/popup-key-navigation.js.map +1 -0
- package/dist/components/Input/popup-key-navigation.test.d.ts +2 -0
- package/dist/components/Input/popup-key-navigation.test.d.ts.map +1 -0
- package/dist/components/Input/popup-key-navigation.test.js +73 -0
- package/dist/components/Input/popup-key-navigation.test.js.map +1 -0
- package/dist/components/Input/popup-props.d.ts.map +1 -1
- package/dist/components/Input/popup-props.js +2 -0
- package/dist/components/Input/popup-props.js.map +1 -1
- package/dist/components/Input/triggers.d.ts +1 -0
- package/dist/components/Input/triggers.d.ts.map +1 -1
- package/dist/components/Input/triggers.js +1 -0
- package/dist/components/Input/triggers.js.map +1 -1
- package/dist/components/InputBox.d.ts.map +1 -1
- package/dist/components/InputBox.js +130 -6
- package/dist/components/InputBox.js.map +1 -1
- package/dist/components/InputBox.test.js +42 -1
- package/dist/components/InputBox.test.js.map +1 -1
- package/dist/components/LiveResponse.d.ts +1 -3
- package/dist/components/LiveResponse.d.ts.map +1 -1
- package/dist/components/LiveResponse.js +5 -6
- package/dist/components/LiveResponse.js.map +1 -1
- package/dist/components/MarkdownRenderer.d.ts +5 -2
- package/dist/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/components/MarkdownRenderer.js +66 -45
- package/dist/components/MarkdownRenderer.js.map +1 -1
- package/dist/components/MessageList.d.ts +7 -1
- package/dist/components/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList.js +98 -23
- package/dist/components/MessageList.js.map +1 -1
- package/dist/components/MessageList.test.js +177 -4
- package/dist/components/MessageList.test.js.map +1 -1
- package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
- package/dist/components/ModelSelectionMenu.js +54 -14
- package/dist/components/ModelSelectionMenu.js.map +1 -1
- package/dist/components/PathSelectionMenu.d.ts +2 -0
- package/dist/components/PathSelectionMenu.d.ts.map +1 -1
- package/dist/components/PathSelectionMenu.js +31 -12
- package/dist/components/PathSelectionMenu.js.map +1 -1
- package/dist/components/SettingsSelectionMenu.d.ts +1 -0
- package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
- package/dist/components/SettingsSelectionMenu.js +32 -23
- package/dist/components/SettingsSelectionMenu.js.map +1 -1
- package/dist/components/SettingsSelectionMenu.scroll.test.d.ts +2 -0
- package/dist/components/SettingsSelectionMenu.scroll.test.d.ts.map +1 -0
- package/dist/components/SettingsSelectionMenu.scroll.test.js +23 -0
- package/dist/components/SettingsSelectionMenu.scroll.test.js.map +1 -0
- package/dist/components/StatusBar.d.ts.map +1 -1
- package/dist/components/StatusBar.js +14 -14
- package/dist/components/StatusBar.js.map +1 -1
- package/dist/components/StatusBar.test.d.ts +2 -0
- package/dist/components/StatusBar.test.d.ts.map +1 -0
- package/dist/components/StatusBar.test.js +30 -0
- package/dist/components/StatusBar.test.js.map +1 -0
- package/dist/contracts/conversation.d.ts +1 -0
- package/dist/contracts/conversation.d.ts.map +1 -1
- package/dist/env-setup.d.ts +2 -0
- package/dist/env-setup.d.ts.map +1 -0
- package/dist/env-setup.js +7 -0
- package/dist/env-setup.js.map +1 -0
- package/dist/env-setup.test.d.ts +2 -0
- package/dist/env-setup.test.d.ts.map +1 -0
- package/dist/env-setup.test.js +6 -0
- package/dist/env-setup.test.js.map +1 -0
- package/dist/hooks/path-completion-filter.d.ts +4 -0
- package/dist/hooks/path-completion-filter.d.ts.map +1 -0
- package/dist/hooks/path-completion-filter.js +27 -0
- package/dist/hooks/path-completion-filter.js.map +1 -0
- package/dist/hooks/path-completion-filter.test.d.ts +2 -0
- package/dist/hooks/path-completion-filter.test.d.ts.map +1 -0
- package/dist/hooks/path-completion-filter.test.js +100 -0
- package/dist/hooks/path-completion-filter.test.js.map +1 -0
- package/dist/hooks/use-app-commands.d.ts +3 -1
- package/dist/hooks/use-app-commands.d.ts.map +1 -1
- package/dist/hooks/use-app-commands.js +74 -6
- package/dist/hooks/use-app-commands.js.map +1 -1
- package/dist/hooks/use-app-commands.test.js +20 -3
- package/dist/hooks/use-app-commands.test.js.map +1 -1
- package/dist/hooks/use-conversation.d.ts +4 -9
- package/dist/hooks/use-conversation.d.ts.map +1 -1
- package/dist/hooks/use-conversation.js +32 -57
- package/dist/hooks/use-conversation.js.map +1 -1
- package/dist/hooks/use-mode-handlers.d.ts +3 -1
- package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
- package/dist/hooks/use-mode-handlers.js +8 -0
- package/dist/hooks/use-mode-handlers.js.map +1 -1
- package/dist/hooks/use-model-selection.d.ts +1 -1
- package/dist/hooks/use-model-selection.d.ts.map +1 -1
- package/dist/hooks/use-model-selection.js +31 -16
- package/dist/hooks/use-model-selection.js.map +1 -1
- package/dist/hooks/use-model-selection.test.js +66 -1
- package/dist/hooks/use-model-selection.test.js.map +1 -1
- package/dist/hooks/use-path-completion.d.ts +1 -0
- package/dist/hooks/use-path-completion.d.ts.map +1 -1
- package/dist/hooks/use-path-completion.js +22 -17
- package/dist/hooks/use-path-completion.js.map +1 -1
- package/dist/hooks/use-settings-completion.d.ts +2 -2
- package/dist/hooks/use-settings-completion.d.ts.map +1 -1
- package/dist/hooks/use-settings-completion.js +53 -18
- package/dist/hooks/use-settings-completion.js.map +1 -1
- package/dist/hooks/use-settings-completion.scroll.test.d.ts +2 -0
- package/dist/hooks/use-settings-completion.scroll.test.d.ts.map +1 -0
- package/dist/hooks/use-settings-completion.scroll.test.js +55 -0
- package/dist/hooks/use-settings-completion.scroll.test.js.map +1 -0
- package/dist/hooks/use-settings-completion.test.js +69 -79
- package/dist/hooks/use-settings-completion.test.js.map +1 -1
- package/dist/hooks/use-settings-value-completion.d.ts +1 -2
- package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
- package/dist/hooks/use-settings-value-completion.js +47 -19
- package/dist/hooks/use-settings-value-completion.js.map +1 -1
- package/dist/hooks/use-settings-value-completion.test.js +5 -18
- package/dist/hooks/use-settings-value-completion.test.js.map +1 -1
- package/dist/hooks/use-slash-commands.d.ts +7 -0
- package/dist/hooks/use-slash-commands.d.ts.map +1 -1
- package/dist/hooks/use-slash-commands.js +20 -13
- package/dist/hooks/use-slash-commands.js.map +1 -1
- package/dist/hooks/use-slash-commands.test.js +52 -1
- package/dist/hooks/use-slash-commands.test.js.map +1 -1
- package/dist/hooks/use-trigger-detection.d.ts.map +1 -1
- package/dist/hooks/use-trigger-detection.js +7 -3
- package/dist/hooks/use-trigger-detection.js.map +1 -1
- package/dist/hooks/use-trigger-detection.test.d.ts +2 -0
- package/dist/hooks/use-trigger-detection.test.d.ts.map +1 -0
- package/dist/hooks/use-trigger-detection.test.js +59 -0
- package/dist/hooks/use-trigger-detection.test.js.map +1 -0
- package/dist/lib/openai-agent-client.d.ts +21 -0
- package/dist/lib/openai-agent-client.d.ts.map +1 -1
- package/dist/lib/openai-agent-client.js +52 -17
- package/dist/lib/openai-agent-client.js.map +1 -1
- package/dist/lib/openai-agent-client.test.js +63 -0
- package/dist/lib/openai-agent-client.test.js.map +1 -1
- package/dist/lib/tool-invoke.d.ts +3 -2
- package/dist/lib/tool-invoke.d.ts.map +1 -1
- package/dist/lib/tool-invoke.js +69 -4
- package/dist/lib/tool-invoke.js.map +1 -1
- package/dist/lib/tool-invoke.test.js +25 -0
- package/dist/lib/tool-invoke.test.js.map +1 -1
- package/dist/non-interactive.d.ts.map +1 -1
- package/dist/non-interactive.js +3 -0
- package/dist/non-interactive.js.map +1 -1
- package/dist/prompts/gpt-5-modern.md +66 -0
- package/dist/prompts/gpt-5.md +10 -0
- package/dist/prompts/lite.md +10 -27
- package/dist/prompts/prompt-selector.js +2 -2
- package/dist/prompts/prompt-selector.js.map +1 -1
- package/dist/prompts/prompt-selector.test.js +7 -2
- package/dist/prompts/prompt-selector.test.js.map +1 -1
- package/dist/prompts/prompt-selector.test.ts +22 -2
- package/dist/prompts/prompt-selector.ts +2 -2
- package/dist/prompts/search-via-shell.d.ts +7 -0
- package/dist/prompts/search-via-shell.d.ts.map +1 -0
- package/dist/prompts/search-via-shell.js +59 -0
- package/dist/prompts/search-via-shell.js.map +1 -0
- package/dist/prompts/search-via-shell.test.d.ts +2 -0
- package/dist/prompts/search-via-shell.test.d.ts.map +1 -0
- package/dist/prompts/search-via-shell.test.js +40 -0
- package/dist/prompts/search-via-shell.test.js.map +1 -0
- package/dist/prompts/search-via-shell.test.ts +47 -0
- package/dist/prompts/search-via-shell.ts +71 -0
- package/dist/prompts/simple.md +40 -186
- package/dist/providers/ai-sdk-agents-adapter.d.ts +7 -0
- package/dist/providers/ai-sdk-agents-adapter.d.ts.map +1 -0
- package/dist/providers/ai-sdk-agents-adapter.js +80 -0
- package/dist/providers/ai-sdk-agents-adapter.js.map +1 -0
- package/dist/providers/ai-sdk-agents-adapter.test.d.ts +2 -0
- package/dist/providers/ai-sdk-agents-adapter.test.d.ts.map +1 -0
- package/dist/providers/ai-sdk-agents-adapter.test.js +158 -0
- package/dist/providers/ai-sdk-agents-adapter.test.js.map +1 -0
- package/dist/providers/ai-sdk-anthropic.provider.d.ts +14 -0
- package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -0
- package/dist/providers/ai-sdk-anthropic.provider.js +18 -0
- package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -0
- package/dist/providers/ai-sdk-google.provider.d.ts +14 -0
- package/dist/providers/ai-sdk-google.provider.d.ts.map +1 -0
- package/dist/providers/ai-sdk-google.provider.js +18 -0
- package/dist/providers/ai-sdk-google.provider.js.map +1 -0
- package/dist/providers/ai-sdk-logging-fetch.d.ts +11 -0
- package/dist/providers/ai-sdk-logging-fetch.d.ts.map +1 -0
- package/dist/providers/ai-sdk-logging-fetch.js +127 -0
- package/dist/providers/ai-sdk-logging-fetch.js.map +1 -0
- package/dist/providers/ai-sdk-logging-fetch.test.d.ts +2 -0
- package/dist/providers/ai-sdk-logging-fetch.test.d.ts.map +1 -0
- package/dist/providers/ai-sdk-logging-fetch.test.js +107 -0
- package/dist/providers/ai-sdk-logging-fetch.test.js.map +1 -0
- package/dist/providers/ai-sdk-message-normalizer.d.ts +2 -2
- package/dist/providers/ai-sdk-message-normalizer.d.ts.map +1 -1
- package/dist/providers/ai-sdk-message-normalizer.js +92 -47
- package/dist/providers/ai-sdk-message-normalizer.js.map +1 -1
- package/dist/providers/ai-sdk-message-normalizer.test.js +256 -16
- package/dist/providers/ai-sdk-message-normalizer.test.js.map +1 -1
- package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +2 -0
- package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -1
- package/dist/providers/ai-sdk-openai-compatible.provider.js +3 -3
- package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
- package/dist/providers/ai-sdk-openai-compatible.provider.test.js +25 -0
- package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
- package/dist/providers/ai-sdk-openrouter.provider.d.ts +1 -1
- package/dist/providers/ai-sdk-openrouter.provider.d.ts.map +1 -1
- package/dist/providers/ai-sdk-openrouter.provider.js +2 -3
- package/dist/providers/ai-sdk-openrouter.provider.js.map +1 -1
- package/dist/providers/ai-sdk-openrouter.provider.test.js +23 -0
- package/dist/providers/ai-sdk-openrouter.provider.test.js.map +1 -1
- package/dist/providers/common/openai-compatible-messages.d.ts +1 -2
- package/dist/providers/common/openai-compatible-messages.d.ts.map +1 -1
- package/dist/providers/common/openai-compatible-messages.js +22 -48
- package/dist/providers/common/openai-compatible-messages.js.map +1 -1
- package/dist/providers/common/openai-compatible-messages.test.js +93 -1
- package/dist/providers/common/openai-compatible-messages.test.js.map +1 -1
- package/dist/providers/custom-provider-adapter.test.d.ts +2 -0
- package/dist/providers/custom-provider-adapter.test.d.ts.map +1 -0
- package/dist/providers/custom-provider-adapter.test.js +52 -0
- package/dist/providers/custom-provider-adapter.test.js.map +1 -0
- package/dist/providers/openai-compatible-behavior-gate.test.d.ts +2 -0
- package/dist/providers/openai-compatible-behavior-gate.test.d.ts.map +1 -0
- package/dist/providers/openai-compatible-behavior-gate.test.js +216 -0
- package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -0
- package/dist/providers/openai-compatible.provider.d.ts +10 -1
- package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
- package/dist/providers/openai-compatible.provider.js +341 -31
- package/dist/providers/openai-compatible.provider.js.map +1 -1
- package/dist/providers/openai-compatible.provider.test.d.ts +2 -0
- package/dist/providers/openai-compatible.provider.test.d.ts.map +1 -0
- package/dist/providers/openai-compatible.provider.test.js +462 -0
- package/dist/providers/openai-compatible.provider.test.js.map +1 -0
- package/dist/providers/openai.provider.js +2 -1
- package/dist/providers/openai.provider.js.map +1 -1
- package/dist/providers/openai.provider.test.d.ts +2 -0
- package/dist/providers/openai.provider.test.d.ts.map +1 -0
- package/dist/providers/openai.provider.test.js +22 -0
- package/dist/providers/openai.provider.test.js.map +1 -0
- package/dist/providers/openrouter.provider.js +28 -2
- package/dist/providers/openrouter.provider.js.map +1 -1
- package/dist/scripts/eval-auto-approval/dataset.d.ts +1 -1
- package/dist/services/conversation-events.d.ts +3 -0
- package/dist/services/conversation-events.d.ts.map +1 -1
- package/dist/services/conversation-result-builder.d.ts.map +1 -1
- package/dist/services/conversation-result-builder.js +11 -1
- package/dist/services/conversation-result-builder.js.map +1 -1
- package/dist/services/conversation-result-builder.test.js +72 -0
- package/dist/services/conversation-result-builder.test.js.map +1 -1
- package/dist/services/conversation-session.d.ts +2 -1
- package/dist/services/conversation-session.d.ts.map +1 -1
- package/dist/services/conversation-session.js +30 -1
- package/dist/services/conversation-session.js.map +1 -1
- package/dist/services/file-service.js +1 -1
- package/dist/services/file-service.js.map +1 -1
- package/dist/services/logging-contract.d.ts +3 -3
- package/dist/services/logging-service.d.ts.map +1 -1
- package/dist/services/logging-service.js +18 -1
- package/dist/services/logging-service.js.map +1 -1
- package/dist/services/model-service.d.ts.map +1 -1
- package/dist/services/model-service.js +16 -8
- package/dist/services/model-service.js.map +1 -1
- package/dist/services/model-service.test.js +67 -1
- package/dist/services/model-service.test.js.map +1 -1
- package/dist/services/rtk-service.d.ts +23 -0
- package/dist/services/rtk-service.d.ts.map +1 -0
- package/dist/services/rtk-service.js +165 -0
- package/dist/services/rtk-service.js.map +1 -0
- package/dist/services/rtk-service.test.d.ts +2 -0
- package/dist/services/rtk-service.test.d.ts.map +1 -0
- package/dist/services/rtk-service.test.js +239 -0
- package/dist/services/rtk-service.test.js.map +1 -0
- package/dist/services/settings-persistence.d.ts +1 -0
- package/dist/services/settings-persistence.d.ts.map +1 -1
- package/dist/services/settings-persistence.js +28 -5
- package/dist/services/settings-persistence.js.map +1 -1
- package/dist/services/settings-persistence.test.js +55 -3
- package/dist/services/settings-persistence.test.js.map +1 -1
- package/dist/services/settings-schema.d.ts +55 -16
- package/dist/services/settings-schema.d.ts.map +1 -1
- package/dist/services/settings-schema.js +35 -4
- package/dist/services/settings-schema.js.map +1 -1
- package/dist/services/settings-schema.test.d.ts +2 -0
- package/dist/services/settings-schema.test.d.ts.map +1 -0
- package/dist/services/settings-schema.test.js +77 -0
- package/dist/services/settings-schema.test.js.map +1 -0
- package/dist/services/settings-service.d.ts.map +1 -1
- package/dist/services/settings-service.js +7 -4
- package/dist/services/settings-service.js.map +1 -1
- package/dist/services/settings-sources.d.ts.map +1 -1
- package/dist/services/settings-sources.js +1 -0
- package/dist/services/settings-sources.js.map +1 -1
- package/dist/services/shell-auto-approval-evaluator.d.ts +1 -1
- package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -1
- package/dist/services/shell-auto-approval-evaluator.js +8 -2
- package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
- package/dist/services/stream-event-processor.d.ts.map +1 -1
- package/dist/services/stream-event-processor.js +10 -8
- package/dist/services/stream-event-processor.js.map +1 -1
- package/dist/services/stream-event-processor.test.js +32 -0
- package/dist/services/stream-event-processor.test.js.map +1 -1
- package/dist/services/terminal-result-collector.d.ts.map +1 -1
- package/dist/services/terminal-result-collector.js +1 -0
- package/dist/services/terminal-result-collector.js.map +1 -1
- package/dist/services/terminal-result-collector.test.js +22 -0
- package/dist/services/terminal-result-collector.test.js.map +1 -1
- package/dist/tools/apply-patch.d.ts +12 -4
- package/dist/tools/apply-patch.d.ts.map +1 -1
- package/dist/tools/apply-patch.js +204 -208
- package/dist/tools/apply-patch.js.map +1 -1
- package/dist/tools/apply-patch.test.js +44 -0
- package/dist/tools/apply-patch.test.js.map +1 -1
- package/dist/tools/code-context.d.ts +27 -0
- package/dist/tools/code-context.d.ts.map +1 -0
- package/dist/tools/code-context.js +512 -0
- package/dist/tools/code-context.js.map +1 -0
- package/dist/tools/code-context.test.d.ts +2 -0
- package/dist/tools/code-context.test.d.ts.map +1 -0
- package/dist/tools/code-context.test.js +368 -0
- package/dist/tools/code-context.test.js.map +1 -0
- package/dist/tools/create-file.d.ts.map +1 -1
- package/dist/tools/create-file.js +3 -2
- package/dist/tools/create-file.js.map +1 -1
- package/dist/tools/edit-healing.d.ts +4 -3
- package/dist/tools/edit-healing.d.ts.map +1 -1
- package/dist/tools/edit-healing.js +50 -20
- package/dist/tools/edit-healing.js.map +1 -1
- package/dist/tools/edit-healing.test.js +62 -0
- package/dist/tools/edit-healing.test.js.map +1 -1
- package/dist/tools/file-locks.d.ts +2 -0
- package/dist/tools/file-locks.d.ts.map +1 -0
- package/dist/tools/file-locks.js +21 -0
- package/dist/tools/file-locks.js.map +1 -0
- package/dist/tools/find-files.d.ts +1 -0
- package/dist/tools/find-files.d.ts.map +1 -1
- package/dist/tools/find-files.js +59 -139
- package/dist/tools/find-files.js.map +1 -1
- package/dist/tools/find-files.test.js +5 -10
- package/dist/tools/find-files.test.js.map +1 -1
- package/dist/tools/grep.d.ts +1 -0
- package/dist/tools/grep.d.ts.map +1 -1
- package/dist/tools/grep.js +10 -46
- package/dist/tools/grep.js.map +1 -1
- package/dist/tools/language-providers.d.ts +48 -0
- package/dist/tools/language-providers.d.ts.map +1 -0
- package/dist/tools/language-providers.js +244 -0
- package/dist/tools/language-providers.js.map +1 -0
- package/dist/tools/search-replace.d.ts +5 -2
- package/dist/tools/search-replace.d.ts.map +1 -1
- package/dist/tools/search-replace.js +201 -106
- package/dist/tools/search-replace.js.map +1 -1
- package/dist/tools/search-replace.test.js +111 -1
- package/dist/tools/search-replace.test.js.map +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +5 -15
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/shell.d.ts +2 -0
- package/dist/tools/shell.d.ts.map +1 -1
- package/dist/tools/shell.js +15 -7
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/shell.test.js +28 -0
- package/dist/tools/shell.test.js.map +1 -1
- package/dist/tools/tool-names.d.ts +3 -0
- package/dist/tools/tool-names.d.ts.map +1 -1
- package/dist/tools/tool-names.js +3 -0
- package/dist/tools/tool-names.js.map +1 -1
- package/dist/tools/tool-names.test.js +4 -1
- package/dist/tools/tool-names.test.js.map +1 -1
- package/dist/tools/tool-parameter-schema.test.js +18 -0
- package/dist/tools/tool-parameter-schema.test.js.map +1 -1
- package/dist/utils/command-safety/constants.d.ts.map +1 -1
- package/dist/utils/command-safety/constants.js +30 -5
- package/dist/utils/command-safety/constants.js.map +1 -1
- package/dist/utils/command-safety/index.d.ts.map +1 -1
- package/dist/utils/command-safety/index.js +3 -0
- package/dist/utils/command-safety/index.js.map +1 -1
- package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
- package/dist/utils/command-safety/path-analysis.js +8 -0
- package/dist/utils/command-safety/path-analysis.js.map +1 -1
- package/dist/utils/command-safety.find.test.js +1 -1
- package/dist/utils/command-safety.find.test.js.map +1 -1
- package/dist/utils/command-safety.path.test.js +14 -0
- package/dist/utils/command-safety.path.test.js.map +1 -1
- package/dist/utils/command-safety.specialized-handlers.test.d.ts +2 -0
- package/dist/utils/command-safety.specialized-handlers.test.d.ts.map +1 -0
- package/dist/utils/command-safety.specialized-handlers.test.js +20 -0
- package/dist/utils/command-safety.specialized-handlers.test.js.map +1 -0
- package/dist/utils/conversation-event-handler.d.ts +8 -6
- package/dist/utils/conversation-event-handler.d.ts.map +1 -1
- package/dist/utils/conversation-event-handler.js +166 -46
- package/dist/utils/conversation-event-handler.js.map +1 -1
- package/dist/utils/conversation-event-handler.test.js +391 -12
- package/dist/utils/conversation-event-handler.test.js.map +1 -1
- package/dist/utils/conversation-utils.d.ts +2 -0
- package/dist/utils/conversation-utils.d.ts.map +1 -1
- package/dist/utils/conversation-utils.js +2 -0
- package/dist/utils/conversation-utils.js.map +1 -1
- package/dist/utils/execute-shell.d.ts +5 -6
- package/dist/utils/execute-shell.d.ts.map +1 -1
- package/dist/utils/execute-shell.js +21 -11
- package/dist/utils/execute-shell.js.map +1 -1
- package/dist/utils/execute-shell.test.js +37 -6
- package/dist/utils/execute-shell.test.js.map +1 -1
- package/dist/utils/extract-command-messages.d.ts.map +1 -1
- package/dist/utils/extract-command-messages.js +4 -1
- package/dist/utils/extract-command-messages.js.map +1 -1
- package/dist/utils/flex-service-tier.d.ts +2 -0
- package/dist/utils/flex-service-tier.d.ts.map +1 -0
- package/dist/utils/flex-service-tier.js +20 -0
- package/dist/utils/flex-service-tier.js.map +1 -0
- package/dist/utils/flex-service-tier.test.d.ts +2 -0
- package/dist/utils/flex-service-tier.test.d.ts.map +1 -0
- package/dist/utils/flex-service-tier.test.js +25 -0
- package/dist/utils/flex-service-tier.test.js.map +1 -0
- package/dist/utils/log-truncation.d.ts +4 -2
- package/dist/utils/log-truncation.d.ts.map +1 -1
- package/dist/utils/log-truncation.js +143 -41
- package/dist/utils/log-truncation.js.map +1 -1
- package/dist/utils/log-truncation.test.js +131 -1
- package/dist/utils/log-truncation.test.js.map +1 -1
- package/dist/utils/project-tree.d.ts +14 -0
- package/dist/utils/project-tree.d.ts.map +1 -0
- package/dist/utils/project-tree.js +111 -0
- package/dist/utils/project-tree.js.map +1 -0
- package/dist/utils/project-tree.test.d.ts +2 -0
- package/dist/utils/project-tree.test.d.ts.map +1 -0
- package/dist/utils/project-tree.test.js +149 -0
- package/dist/utils/project-tree.test.js.map +1 -0
- package/dist/utils/provider-traffic-extractor.d.ts.map +1 -1
- package/dist/utils/provider-traffic-extractor.js +0 -1
- package/dist/utils/provider-traffic-extractor.js.map +1 -1
- package/dist/utils/streaming-session-factory.d.ts +1 -3
- package/dist/utils/streaming-session-factory.d.ts.map +1 -1
- package/dist/utils/streaming-session-factory.js +29 -10
- package/dist/utils/streaming-session-factory.js.map +1 -1
- package/dist/utils/streaming-session-factory.test.js +47 -15
- package/dist/utils/streaming-session-factory.test.js.map +1 -1
- package/dist/utils/subsequence-filter.d.ts +8 -0
- package/dist/utils/subsequence-filter.d.ts.map +1 -0
- package/dist/utils/subsequence-filter.js +47 -0
- package/dist/utils/subsequence-filter.js.map +1 -0
- package/dist/utils/terminal-clear.d.ts +7 -0
- package/dist/utils/terminal-clear.d.ts.map +1 -0
- package/dist/utils/terminal-clear.js +5 -0
- package/dist/utils/terminal-clear.js.map +1 -0
- package/dist/utils/terminal-clear.test.d.ts +2 -0
- package/dist/utils/terminal-clear.test.d.ts.map +1 -0
- package/dist/utils/terminal-clear.test.js +13 -0
- package/dist/utils/terminal-clear.test.js.map +1 -0
- package/dist/utils/token-usage.d.ts +13 -1
- package/dist/utils/token-usage.d.ts.map +1 -1
- package/dist/utils/token-usage.js +119 -28
- package/dist/utils/token-usage.js.map +1 -1
- package/dist/utils/token-usage.test.js +135 -3
- package/dist/utils/token-usage.test.js.map +1 -1
- package/package.json +4 -4
- package/dist/providers/openai-compatible/api.d.ts +0 -17
- package/dist/providers/openai-compatible/api.d.ts.map +0 -1
- package/dist/providers/openai-compatible/api.js +0 -58
- package/dist/providers/openai-compatible/api.js.map +0 -1
- package/dist/providers/openai-compatible/model.d.ts +0 -17
- package/dist/providers/openai-compatible/model.d.ts.map +0 -1
- package/dist/providers/openai-compatible/model.js +0 -473
- package/dist/providers/openai-compatible/model.js.map +0 -1
- package/dist/providers/openai-compatible/provider.d.ts +0 -22
- package/dist/providers/openai-compatible/provider.d.ts.map +0 -1
- package/dist/providers/openai-compatible/provider.js +0 -43
- package/dist/providers/openai-compatible/provider.js.map +0 -1
- package/dist/providers/openai-compatible/reasoning-content.test.d.ts +0 -2
- package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +0 -1
- package/dist/providers/openai-compatible/reasoning-content.test.js +0 -258
- package/dist/providers/openai-compatible/reasoning-content.test.js.map +0 -1
- package/dist/providers/openai-compatible/utils.d.ts +0 -3
- package/dist/providers/openai-compatible/utils.d.ts.map +0 -1
- package/dist/providers/openai-compatible/utils.js +0 -11
- package/dist/providers/openai-compatible/utils.js.map +0 -1
- package/dist/providers/openrouter/api.d.ts +0 -39
- package/dist/providers/openrouter/api.d.ts.map +0 -1
- package/dist/providers/openrouter/api.js +0 -164
- package/dist/providers/openrouter/api.js.map +0 -1
- package/dist/providers/openrouter/converters.d.ts +0 -8
- package/dist/providers/openrouter/converters.d.ts.map +0 -1
- package/dist/providers/openrouter/converters.js +0 -391
- package/dist/providers/openrouter/converters.js.map +0 -1
- package/dist/providers/openrouter/converters.test.d.ts +0 -2
- package/dist/providers/openrouter/converters.test.d.ts.map +0 -1
- package/dist/providers/openrouter/converters.test.js +0 -179
- package/dist/providers/openrouter/converters.test.js.map +0 -1
- package/dist/providers/openrouter/index.d.ts +0 -4
- package/dist/providers/openrouter/index.d.ts.map +0 -1
- package/dist/providers/openrouter/index.js +0 -4
- package/dist/providers/openrouter/index.js.map +0 -1
- package/dist/providers/openrouter/model.d.ts +0 -14
- package/dist/providers/openrouter/model.d.ts.map +0 -1
- package/dist/providers/openrouter/model.js +0 -457
- package/dist/providers/openrouter/model.js.map +0 -1
- package/dist/providers/openrouter/provider.d.ts +0 -15
- package/dist/providers/openrouter/provider.d.ts.map +0 -1
- package/dist/providers/openrouter/provider.js +0 -21
- package/dist/providers/openrouter/provider.js.map +0 -1
- package/dist/providers/openrouter/reasoning-content.test.d.ts +0 -2
- package/dist/providers/openrouter/reasoning-content.test.d.ts.map +0 -1
- package/dist/providers/openrouter/reasoning-content.test.js +0 -122
- package/dist/providers/openrouter/reasoning-content.test.js.map +0 -1
- package/dist/providers/openrouter/utils.d.ts +0 -11
- package/dist/providers/openrouter/utils.d.ts.map +0 -1
- package/dist/providers/openrouter/utils.js +0 -29
- package/dist/providers/openrouter/utils.js.map +0 -1
- package/dist/providers/openrouter.api.retry.test.d.ts +0 -2
- package/dist/providers/openrouter.api.retry.test.d.ts.map +0 -1
- package/dist/providers/openrouter.api.retry.test.js +0 -148
- package/dist/providers/openrouter.api.retry.test.js.map +0 -1
- package/dist/providers/openrouter.test.d.ts +0 -2
- package/dist/providers/openrouter.test.d.ts.map +0 -1
- package/dist/providers/openrouter.test.js +0 -1449
- package/dist/providers/openrouter.test.js.map +0 -1
package/dist/tools/grep.js
CHANGED
|
@@ -8,6 +8,10 @@ const searchParametersSchema = z.object({
|
|
|
8
8
|
pattern: z.string().describe('The text or regex pattern to search for'),
|
|
9
9
|
path: z.string().describe('The directory or file to search in. Use "." for current directory.'),
|
|
10
10
|
file_pattern: z.string().optional().describe('Glob pattern for files to include (e.g., "*.ts").'),
|
|
11
|
+
no_ignore: z
|
|
12
|
+
.boolean()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe('Set true to search files normally skipped by .gitignore/.ignore (e.g., node_modules, vendor, build output). Defaults to false.'),
|
|
11
15
|
});
|
|
12
16
|
// Re-export trim utilities for backwards compatibility
|
|
13
17
|
export { setTrimConfig, getTrimConfig, DEFAULT_TRIM_CONFIG };
|
|
@@ -52,7 +56,7 @@ export const createGrepToolDefinition = (deps = {}) => {
|
|
|
52
56
|
parameters: searchParametersSchema,
|
|
53
57
|
needsApproval: () => false, // Search is read-only and safe
|
|
54
58
|
execute: async (params) => {
|
|
55
|
-
const { pattern, path: searchPath, file_pattern } = params;
|
|
59
|
+
const { pattern, path: searchPath, file_pattern, no_ignore } = params;
|
|
56
60
|
// Validate pattern is not empty
|
|
57
61
|
if (!pattern || pattern.trim() === '') {
|
|
58
62
|
throw new Error('Search pattern cannot be empty. Please provide a valid search term.');
|
|
@@ -68,6 +72,8 @@ export const createGrepToolDefinition = (deps = {}) => {
|
|
|
68
72
|
const args = ['rg', '--line-number', '--no-heading', '--color=never'];
|
|
69
73
|
if (!case_sensitive)
|
|
70
74
|
args.push('--ignore-case');
|
|
75
|
+
if (no_ignore)
|
|
76
|
+
args.push('--no-ignore');
|
|
71
77
|
if (file_pattern)
|
|
72
78
|
args.push('-g', `'${file_pattern}'`);
|
|
73
79
|
if (exclude_pattern)
|
|
@@ -93,50 +99,8 @@ export const createGrepToolDefinition = (deps = {}) => {
|
|
|
93
99
|
}
|
|
94
100
|
const cwd = executionContext?.getCwd() || process.cwd();
|
|
95
101
|
const sshService = executionContext?.getSSHService();
|
|
96
|
-
try {
|
|
97
|
-
const { stdout } = await executeShellCommand(command, {
|
|
98
|
-
maxBuffer: 10 * 1024 * 1024, // 10MB buffer
|
|
99
|
-
cwd,
|
|
100
|
-
sshService,
|
|
101
|
-
});
|
|
102
|
-
const trimmed = stdout.trim();
|
|
103
|
-
const lineCount = trimmed.split('\n').length;
|
|
104
|
-
const result = trimOutput(trimmed, limit);
|
|
105
|
-
// Add hint if results were truncated
|
|
106
|
-
if (lineCount > limit) {
|
|
107
|
-
return `${result}\n\nNote: Results exceeded ${limit} lines. Consider narrowing your search with a more specific pattern or file_pattern.`;
|
|
108
|
-
}
|
|
109
|
-
return result || 'No matches found.';
|
|
110
|
-
}
|
|
111
|
-
catch (error) {
|
|
112
|
-
// grep/rg returns exit code 1 if no matches found, which executeShellCommand might NOT treat as error if we handle it there?
|
|
113
|
-
// executeShellCommand catches errors.
|
|
114
|
-
// sshService.executeCommand catches error? no, creates promise.
|
|
115
|
-
// Wait, executeShellCommand wraps exec and returns object even on error.
|
|
116
|
-
// But if it THROWS, we catch it here.
|
|
117
|
-
// executeShellCommand returns object with exitCode. It does NOT throw for non-zero exit code usually?
|
|
118
|
-
// Let's check executeShellCommand implementation.
|
|
119
|
-
// "const exitCode = typeof error?.code === 'number' ? error.code : null;" in catch block.
|
|
120
|
-
// It catches exec exceptions and returns ShellExecutionResult.
|
|
121
|
-
// So result.exitCode check is needed.
|
|
122
|
-
// But wait, I am destructuring {stdout} and ignoring exitCode.
|
|
123
|
-
// If grep returns 1, stdout is likely empty.
|
|
124
|
-
// Let's refine the try/catch logic or result inspection.
|
|
125
|
-
// executeShellCommand returns {stdout, stderr, exitCode}.
|
|
126
|
-
// If grep fails (exit 1), exitCode is 1.
|
|
127
|
-
// However, previous code used `execPromise` which throws on exit code != 0.
|
|
128
|
-
// executeShellCommand handles parsing.
|
|
129
|
-
// I should capture result and check exitCode.
|
|
130
|
-
// But wait, executeShellCommand throws?
|
|
131
|
-
// No, look at implementation: it catches error and returns object.
|
|
132
|
-
// So my destructing was: const {stdout} = await executeShellCommand(...)
|
|
133
|
-
// If exitCode is 1 (no match), stdout is empty.
|
|
134
|
-
// If exitCode is 2 (error), stderr has content.
|
|
135
|
-
// So I should check stderr?
|
|
136
|
-
}
|
|
137
|
-
// Re-implementing try block with proper check
|
|
138
102
|
const result = await executeShellCommand(command, {
|
|
139
|
-
maxBuffer: 10 * 1024 * 1024,
|
|
103
|
+
maxBuffer: 10 * 1024 * 1024, // 10MB buffer
|
|
140
104
|
cwd,
|
|
141
105
|
sshService,
|
|
142
106
|
});
|
|
@@ -144,10 +108,10 @@ export const createGrepToolDefinition = (deps = {}) => {
|
|
|
144
108
|
return 'No matches found.';
|
|
145
109
|
}
|
|
146
110
|
if (result.exitCode !== 0 && result.exitCode !== null) {
|
|
147
|
-
throw new Error(`Search failed: ${result.stderr}`);
|
|
111
|
+
throw new Error(`Search failed: ${result.stderr.trim() || `exit code ${result.exitCode}`}`);
|
|
148
112
|
}
|
|
149
113
|
const trimmed = result.stdout.trim();
|
|
150
|
-
const lineCount = trimmed.split('\n').length;
|
|
114
|
+
const lineCount = trimmed ? trimmed.split('\n').length : 0;
|
|
151
115
|
const outputTrimmed = trimOutput(trimmed, limit);
|
|
152
116
|
if (lineCount > limit) {
|
|
153
117
|
return `${outputTrimmed}\n\nNote: Results exceeded ${limit} lines. Consider narrowing your search with a more specific pattern or file_pattern.`;
|
package/dist/tools/grep.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grep.js","sourceRoot":"","sources":["../../source/tools/grep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,UAAU,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,GAEpB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,aAAa,EACb,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEzC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACvE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IAC/F,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"grep.js","sourceRoot":"","sources":["../../source/tools/grep.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export type DeclarationKind = 'function' | 'async function' | 'class' | 'interface' | 'type' | 'enum' | 'const' | 'let' | 'var' | 'method' | 'unknown';
|
|
2
|
+
export interface ImportEntry {
|
|
3
|
+
specifier: string;
|
|
4
|
+
names: string[];
|
|
5
|
+
line: number;
|
|
6
|
+
}
|
|
7
|
+
export interface DeclEntry {
|
|
8
|
+
name: string;
|
|
9
|
+
kind: DeclarationKind;
|
|
10
|
+
line: number;
|
|
11
|
+
exported: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ExportEntry {
|
|
14
|
+
name: string;
|
|
15
|
+
kind?: DeclarationKind;
|
|
16
|
+
source?: string;
|
|
17
|
+
line: number;
|
|
18
|
+
}
|
|
19
|
+
export interface Outline {
|
|
20
|
+
imports: ImportEntry[];
|
|
21
|
+
exports: ExportEntry[];
|
|
22
|
+
decls: DeclEntry[];
|
|
23
|
+
}
|
|
24
|
+
export interface LanguageProvider {
|
|
25
|
+
language: string;
|
|
26
|
+
extensions: string[];
|
|
27
|
+
matches: (filePath: string) => boolean;
|
|
28
|
+
declarationPatterns: (symbol: string) => string[];
|
|
29
|
+
classifyMatch: (line: string, symbol: string) => {
|
|
30
|
+
kind: DeclarationKind;
|
|
31
|
+
exported: boolean;
|
|
32
|
+
};
|
|
33
|
+
extractOutline?: (source: string) => Outline;
|
|
34
|
+
resolveImport?: (specifier: string, fromPath: string, root: string) => Promise<string | null>;
|
|
35
|
+
testPatterns?: (filePath: string) => {
|
|
36
|
+
forSource: string[];
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export declare const TS_EXTENSIONS: string[];
|
|
40
|
+
export declare const JS_EXTENSIONS: string[];
|
|
41
|
+
export declare const CODE_EXTENSIONS: string[];
|
|
42
|
+
export declare function escapeRegExp(value: string): string;
|
|
43
|
+
export declare function normalizeRelativePath(filePath: string): string;
|
|
44
|
+
export declare function isLocalSpecifier(specifier: string): boolean;
|
|
45
|
+
export declare function fileExists(absolutePath: string): Promise<boolean>;
|
|
46
|
+
export declare const providers: LanguageProvider[];
|
|
47
|
+
export declare function getProvider(filePath: string): LanguageProvider | null;
|
|
48
|
+
//# sourceMappingURL=language-providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-providers.d.ts","sourceRoot":"","sources":["../../source/tools/language-providers.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,gBAAgB,GAChB,OAAO,GACP,WAAW,GACX,MAAM,GACN,MAAM,GACN,OAAO,GACP,KAAK,GACL,KAAK,GACL,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAClD,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK;QAAE,IAAI,EAAE,eAAe,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9F,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9F,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK;QAAE,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC9D;AAED,eAAO,MAAM,aAAa,UAAkC,CAAC;AAC7D,eAAO,MAAM,aAAa,UAAkC,CAAC;AAC7D,eAAO,MAAM,eAAe,UAAgD,CAAC;AAE7E,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAsB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKvE;AA8OD,eAAO,MAAM,SAAS,oBAOrB,CAAC;AAEF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAErE"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import * as fs from 'fs/promises';
|
|
3
|
+
export const TS_EXTENSIONS = ['.ts', '.tsx', '.mts', '.cts'];
|
|
4
|
+
export const JS_EXTENSIONS = ['.js', '.jsx', '.mjs', '.cjs'];
|
|
5
|
+
export const CODE_EXTENSIONS = [...TS_EXTENSIONS, ...JS_EXTENSIONS, '.json'];
|
|
6
|
+
export function escapeRegExp(value) {
|
|
7
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
8
|
+
}
|
|
9
|
+
export function normalizeRelativePath(filePath) {
|
|
10
|
+
return filePath.replace(/\\/g, '/').replace(/^\.\//, '');
|
|
11
|
+
}
|
|
12
|
+
export function isLocalSpecifier(specifier) {
|
|
13
|
+
return specifier.startsWith('./') || specifier.startsWith('../');
|
|
14
|
+
}
|
|
15
|
+
export async function fileExists(absolutePath) {
|
|
16
|
+
return fs
|
|
17
|
+
.stat(absolutePath)
|
|
18
|
+
.then((stat) => stat.isFile())
|
|
19
|
+
.catch(() => false);
|
|
20
|
+
}
|
|
21
|
+
function lineNumberAt(source, index) {
|
|
22
|
+
let line = 1;
|
|
23
|
+
for (let i = 0; i < index; i++) {
|
|
24
|
+
if (source[i] === '\n')
|
|
25
|
+
line++;
|
|
26
|
+
}
|
|
27
|
+
return line;
|
|
28
|
+
}
|
|
29
|
+
function normalizeImportNames(rawNames) {
|
|
30
|
+
return rawNames
|
|
31
|
+
.replace(/[{}]/g, '')
|
|
32
|
+
.split(',')
|
|
33
|
+
.map((part) => part.replace(/\s+/g, ' ').trim())
|
|
34
|
+
.map((part) => (part.startsWith('type ') ? part.slice(5).trim() : part))
|
|
35
|
+
.filter(Boolean);
|
|
36
|
+
}
|
|
37
|
+
function* extractImportEntries(source) {
|
|
38
|
+
const sideEffect = /(?:^|[\n;])[ \t]*import\s+['"]([^'"]+)['"]/g;
|
|
39
|
+
for (let m; (m = sideEffect.exec(source));) {
|
|
40
|
+
yield { specifier: m[1], names: [], line: lineNumberAt(source, m.index) };
|
|
41
|
+
}
|
|
42
|
+
// The names region excludes quotes/semicolons/parens so a match cannot cross statements.
|
|
43
|
+
const fromImport = /\bimport\s+(?:type\s+)?([\w*${}\n\r\t ,]+?)\s+from\s*['"]([^'"]+)['"]/g;
|
|
44
|
+
for (let m; (m = fromImport.exec(source));) {
|
|
45
|
+
yield { specifier: m[2], names: normalizeImportNames(m[1]), line: lineNumberAt(source, m.index) };
|
|
46
|
+
}
|
|
47
|
+
const requireImport = /\b(?:const|let|var)\s+([\w*${}\n\r\t ,]+?)\s*=\s*require\(\s*['"]([^'"]+)['"]\s*\)/g;
|
|
48
|
+
for (let m; (m = requireImport.exec(source));) {
|
|
49
|
+
yield { specifier: m[2], names: normalizeImportNames(m[1]), line: lineNumberAt(source, m.index) };
|
|
50
|
+
}
|
|
51
|
+
const dynamicImport = /\bimport\(\s*['"]([^'"]+)['"]\s*\)/g;
|
|
52
|
+
for (let m; (m = dynamicImport.exec(source));) {
|
|
53
|
+
yield { specifier: m[1], names: ['dynamic'], line: lineNumberAt(source, m.index) };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function* extractReExportEntries(source) {
|
|
57
|
+
const reExport = /\bexport\s+(?:type\s+)?(\*(?:\s+as\s+[\w$]+)?|\{[\s\S]*?\})\s*from\s*['"]([^'"]+)['"]/g;
|
|
58
|
+
for (let m; (m = reExport.exec(source));) {
|
|
59
|
+
const raw = m[1].trim();
|
|
60
|
+
const name = raw.startsWith('{') ? raw.replace(/[{}]/g, '').trim() || '*' : raw;
|
|
61
|
+
yield { source: m[2], name, line: lineNumberAt(source, m.index) };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
function parseTsJsDeclaration(line, lineNumber) {
|
|
65
|
+
if (/^\s/.test(line))
|
|
66
|
+
return null;
|
|
67
|
+
const match = line.match(/^(export\s+)?(?:default\s+)?(?:(async)\s+)?(function|class|interface|type|enum|const|let|var)\s+([A-Za-z_$][\w$]*)\b/);
|
|
68
|
+
if (!match)
|
|
69
|
+
return null;
|
|
70
|
+
const kind = match[2] && match[3] === 'function' ? 'async function' : match[3];
|
|
71
|
+
return {
|
|
72
|
+
kind: kind,
|
|
73
|
+
name: match[4],
|
|
74
|
+
line: lineNumber,
|
|
75
|
+
exported: Boolean(match[1]),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function classifyTsJsMatch(line) {
|
|
79
|
+
const match = line.match(/^\s*(export\s+)?(?:default\s+)?(?:async\s+)?(?:abstract\s+)?(?:const\s+)?(function|class|interface|type|enum|const|let|var)\b/);
|
|
80
|
+
return {
|
|
81
|
+
kind: match?.[2] ?? 'unknown',
|
|
82
|
+
exported: Boolean(match?.[1]),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function extractTsJsOutline(source) {
|
|
86
|
+
const imports = [...extractImportEntries(source)].sort((a, b) => a.line - b.line);
|
|
87
|
+
const exports = [...extractReExportEntries(source)];
|
|
88
|
+
const decls = [];
|
|
89
|
+
const lines = source.split('\n');
|
|
90
|
+
for (const [index, line] of lines.entries()) {
|
|
91
|
+
const decl = parseTsJsDeclaration(line, index + 1);
|
|
92
|
+
if (decl) {
|
|
93
|
+
decls.push(decl);
|
|
94
|
+
if (decl.exported) {
|
|
95
|
+
exports.push({ name: decl.name, kind: decl.kind, line: decl.line });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.sort((a, b) => a.line - b.line);
|
|
100
|
+
return { imports, exports, decls };
|
|
101
|
+
}
|
|
102
|
+
async function resolveLocalImport(specifier, fromPath, root) {
|
|
103
|
+
if (!isLocalSpecifier(specifier))
|
|
104
|
+
return null;
|
|
105
|
+
const fromDir = path.dirname(path.join(root, fromPath));
|
|
106
|
+
const base = path.resolve(fromDir, specifier);
|
|
107
|
+
// A `.js`/`.mjs`/`.jsx` specifier resolves to its `.ts`/`.mts`/`.tsx`
|
|
108
|
+
// source under the TS ESM convention, so also try the extension-stripped form.
|
|
109
|
+
const baseExtension = path.extname(base);
|
|
110
|
+
const strippedBase = CODE_EXTENSIONS.includes(baseExtension) ? base.slice(0, -baseExtension.length) : base;
|
|
111
|
+
const candidates = [
|
|
112
|
+
base,
|
|
113
|
+
...CODE_EXTENSIONS.map((extension) => `${base}${extension}`),
|
|
114
|
+
...(strippedBase !== base ? CODE_EXTENSIONS.map((extension) => `${strippedBase}${extension}`) : []),
|
|
115
|
+
...CODE_EXTENSIONS.map((extension) => path.join(base, `index${extension}`)),
|
|
116
|
+
];
|
|
117
|
+
for (const candidate of candidates) {
|
|
118
|
+
const resolved = normalizeRelativePath(path.relative(root, candidate));
|
|
119
|
+
if (!resolved.startsWith('..') && (await fileExists(candidate))) {
|
|
120
|
+
return resolved;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
function buildTestPatterns(filePath) {
|
|
126
|
+
const dir = path.dirname(filePath);
|
|
127
|
+
const ext = path.extname(filePath);
|
|
128
|
+
const base = path.basename(filePath, ext).replace(/\.(test|spec)$/, '');
|
|
129
|
+
const extensions = ['.ts', '.tsx', '.js', '.jsx'];
|
|
130
|
+
const forSource = extensions.flatMap((extension) => [
|
|
131
|
+
normalizeRelativePath(path.join(dir, `${base}.test${extension}`)),
|
|
132
|
+
normalizeRelativePath(path.join(dir, `${base}.spec${extension}`)),
|
|
133
|
+
normalizeRelativePath(path.join(dir, '__tests__', `${base}.test${extension}`)),
|
|
134
|
+
normalizeRelativePath(path.join('tests', `${base}.test${extension}`)),
|
|
135
|
+
]);
|
|
136
|
+
return { forSource };
|
|
137
|
+
}
|
|
138
|
+
const typescriptProvider = {
|
|
139
|
+
language: 'typescript',
|
|
140
|
+
extensions: TS_EXTENSIONS,
|
|
141
|
+
matches: (filePath) => TS_EXTENSIONS.includes(path.extname(filePath)),
|
|
142
|
+
declarationPatterns: (symbol) => [
|
|
143
|
+
`^\\s*(export\\s+)?(default\\s+)?(async\\s+)?function\\s+${escapeRegExp(symbol)}\\b`,
|
|
144
|
+
`^\\s*(export\\s+)?(default\\s+)?(abstract\\s+)?class\\s+${escapeRegExp(symbol)}\\b`,
|
|
145
|
+
`^\\s*(export\\s+)?interface\\s+${escapeRegExp(symbol)}\\b`,
|
|
146
|
+
`^\\s*(export\\s+)?type\\s+${escapeRegExp(symbol)}\\b`,
|
|
147
|
+
`^\\s*(export\\s+)?(const\\s+)?enum\\s+${escapeRegExp(symbol)}\\b`,
|
|
148
|
+
`^\\s*(export\\s+)?(const|let|var)\\s+${escapeRegExp(symbol)}\\b`,
|
|
149
|
+
],
|
|
150
|
+
classifyMatch: classifyTsJsMatch,
|
|
151
|
+
extractOutline: extractTsJsOutline,
|
|
152
|
+
resolveImport: resolveLocalImport,
|
|
153
|
+
testPatterns: buildTestPatterns,
|
|
154
|
+
};
|
|
155
|
+
const javascriptProvider = {
|
|
156
|
+
...typescriptProvider,
|
|
157
|
+
language: 'javascript',
|
|
158
|
+
extensions: JS_EXTENSIONS,
|
|
159
|
+
matches: (filePath) => JS_EXTENSIONS.includes(path.extname(filePath)),
|
|
160
|
+
};
|
|
161
|
+
const pythonProvider = {
|
|
162
|
+
language: 'python',
|
|
163
|
+
extensions: ['.py'],
|
|
164
|
+
matches: (filePath) => path.extname(filePath) === '.py',
|
|
165
|
+
declarationPatterns: (symbol) => [
|
|
166
|
+
`^\\s*def\\s+${escapeRegExp(symbol)}\\b`,
|
|
167
|
+
`^\\s*class\\s+${escapeRegExp(symbol)}\\b`,
|
|
168
|
+
],
|
|
169
|
+
classifyMatch: (line) => ({
|
|
170
|
+
kind: /^\s*class\b/.test(line) ? 'class' : 'function',
|
|
171
|
+
exported: false,
|
|
172
|
+
}),
|
|
173
|
+
};
|
|
174
|
+
const goProvider = {
|
|
175
|
+
language: 'go',
|
|
176
|
+
extensions: ['.go'],
|
|
177
|
+
matches: (filePath) => path.extname(filePath) === '.go',
|
|
178
|
+
declarationPatterns: (symbol) => [
|
|
179
|
+
`^\\s*func\\s+(\\([^)]*\\)\\s*)?${escapeRegExp(symbol)}\\b`,
|
|
180
|
+
`^\\s*type\\s+${escapeRegExp(symbol)}\\b`,
|
|
181
|
+
],
|
|
182
|
+
classifyMatch: (line, symbol) => ({
|
|
183
|
+
kind: /^\s*func\b/.test(line) ? 'function' : 'type',
|
|
184
|
+
exported: /^[A-Z]/.test(symbol),
|
|
185
|
+
}),
|
|
186
|
+
};
|
|
187
|
+
const rustProvider = {
|
|
188
|
+
language: 'rust',
|
|
189
|
+
extensions: ['.rs'],
|
|
190
|
+
matches: (filePath) => path.extname(filePath) === '.rs',
|
|
191
|
+
declarationPatterns: (symbol) => [
|
|
192
|
+
`^\\s*(pub\\s+)?fn\\s+${escapeRegExp(symbol)}\\b`,
|
|
193
|
+
`^\\s*(pub\\s+)?struct\\s+${escapeRegExp(symbol)}\\b`,
|
|
194
|
+
`^\\s*(pub\\s+)?enum\\s+${escapeRegExp(symbol)}\\b`,
|
|
195
|
+
`^\\s*(pub\\s+)?trait\\s+${escapeRegExp(symbol)}\\b`,
|
|
196
|
+
],
|
|
197
|
+
classifyMatch: (line) => {
|
|
198
|
+
const kind = /^\s*(pub\s+)?fn\b/.test(line)
|
|
199
|
+
? 'function'
|
|
200
|
+
: /^\s*(pub\s+)?enum\b/.test(line)
|
|
201
|
+
? 'enum'
|
|
202
|
+
: /^\s*(pub\\s+)?trait\b/.test(line)
|
|
203
|
+
? 'interface'
|
|
204
|
+
: 'type';
|
|
205
|
+
return { kind, exported: /^\s*pub\s+/.test(line) };
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
const jsonProvider = {
|
|
209
|
+
language: 'json',
|
|
210
|
+
extensions: ['.json'],
|
|
211
|
+
matches: (filePath) => path.extname(filePath) === '.json',
|
|
212
|
+
declarationPatterns: (symbol) => [`"${escapeRegExp(symbol)}"\\s*:`],
|
|
213
|
+
classifyMatch: () => ({ kind: 'unknown', exported: false }),
|
|
214
|
+
extractOutline: (source) => {
|
|
215
|
+
try {
|
|
216
|
+
const parsed = JSON.parse(source);
|
|
217
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
218
|
+
return { imports: [], exports: [], decls: [] };
|
|
219
|
+
}
|
|
220
|
+
const decls = Object.keys(parsed).map((key, index) => ({
|
|
221
|
+
name: key,
|
|
222
|
+
kind: 'unknown',
|
|
223
|
+
line: index + 1,
|
|
224
|
+
exported: false,
|
|
225
|
+
}));
|
|
226
|
+
return { imports: [], exports: [], decls };
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
return { imports: [], exports: [], decls: [] };
|
|
230
|
+
}
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
export const providers = [
|
|
234
|
+
typescriptProvider,
|
|
235
|
+
javascriptProvider,
|
|
236
|
+
pythonProvider,
|
|
237
|
+
goProvider,
|
|
238
|
+
rustProvider,
|
|
239
|
+
jsonProvider,
|
|
240
|
+
];
|
|
241
|
+
export function getProvider(filePath) {
|
|
242
|
+
return providers.find((provider) => provider.matches(filePath)) ?? null;
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=language-providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language-providers.js","sourceRoot":"","sources":["../../source/tools/language-providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,16 @@ import type { ToolDefinition, CommandMessage } from './types.js';
|
|
|
3
3
|
import type { ILoggingService, ISettingsService } from '../services/service-interfaces.js';
|
|
4
4
|
import { healSearchReplaceParams } from './edit-healing.js';
|
|
5
5
|
import { ExecutionContext } from '../services/execution-context.js';
|
|
6
|
-
declare const
|
|
6
|
+
declare const searchReplaceOperationSchema: z.ZodObject<{
|
|
7
7
|
path: z.ZodString;
|
|
8
8
|
search_content: z.ZodString;
|
|
9
9
|
replace_content: z.ZodString;
|
|
10
10
|
replace_all: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
11
11
|
}, z.core.$strip>;
|
|
12
|
-
export type
|
|
12
|
+
export type SearchReplaceOperation = z.infer<typeof searchReplaceOperationSchema>;
|
|
13
|
+
export type SearchReplaceToolParams = SearchReplaceOperation | {
|
|
14
|
+
replacements: SearchReplaceOperation[];
|
|
15
|
+
};
|
|
13
16
|
export declare const formatSearchReplaceCommandMessage: (item: any, index: number, _toolCallArgumentsById: Map<string, unknown>) => CommandMessage[];
|
|
14
17
|
export declare function createSearchReplaceToolDefinition(deps: {
|
|
15
18
|
loggingService: ILoggingService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-replace.d.ts","sourceRoot":"","sources":["../../source/tools/search-replace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"search-replace.d.ts","sourceRoot":"","sources":["../../source/tools/search-replace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAyEpE,QAAA,MAAM,4BAA4B;;;;;iBAahC,CAAC;AA0CH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAClF,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,GAAG;IAAE,YAAY,EAAE,sBAAsB,EAAE,CAAA;CAAE,CAAC;AAoc1G,eAAO,MAAM,iCAAiC,GAC5C,MAAM,GAAG,EACT,OAAO,MAAM,EACb,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3C,cAAc,EAiEhB,CAAC;AAEF,wBAAgB,iCAAiC,CAAC,IAAI,EAAE;IACtD,cAAc,EAAE,eAAe,CAAC;IAChC,eAAe,EAAE,gBAAgB,CAAC;IAClC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,uBAAuB,CAAC;CAC9C,GAAG,cAAc,CAAC,uBAAuB,CAAC,CA8b1C"}
|