@qduc/term2 0.6.1 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.d.ts +9 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +158 -69
- package/dist/agent.js.map +1 -1
- package/dist/agent.test.js +165 -15
- package/dist/agent.test.js.map +1 -1
- package/dist/app.d.ts +14 -3
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +192 -28
- package/dist/app.js.map +1 -1
- package/dist/app.large-uncached-warning.test.d.ts +2 -0
- package/dist/app.large-uncached-warning.test.d.ts.map +1 -0
- package/dist/app.large-uncached-warning.test.js +15 -0
- package/dist/app.large-uncached-warning.test.js.map +1 -0
- package/dist/app.startup-banner.test.js +3 -19
- package/dist/app.startup-banner.test.js.map +1 -1
- package/dist/cli.integration.test.d.ts +2 -0
- package/dist/cli.integration.test.d.ts.map +1 -0
- package/dist/cli.integration.test.js +102 -0
- package/dist/cli.integration.test.js.map +1 -0
- package/dist/cli.js +158 -71
- package/dist/cli.js.map +1 -1
- package/dist/commands/auto-approve-command.d.ts +10 -0
- package/dist/commands/auto-approve-command.d.ts.map +1 -0
- package/dist/commands/auto-approve-command.js +40 -0
- package/dist/commands/auto-approve-command.js.map +1 -0
- package/dist/commands/clear-command.d.ts +3 -0
- package/dist/commands/clear-command.d.ts.map +1 -0
- package/dist/commands/clear-command.js +12 -0
- package/dist/commands/clear-command.js.map +1 -0
- package/dist/commands/copy-command.d.ts +10 -0
- package/dist/commands/copy-command.d.ts.map +1 -0
- package/dist/commands/copy-command.js +25 -0
- package/dist/commands/copy-command.js.map +1 -0
- package/dist/commands/effort-command.d.ts +11 -0
- package/dist/commands/effort-command.d.ts.map +1 -0
- package/dist/commands/effort-command.js +34 -0
- package/dist/commands/effort-command.js.map +1 -0
- package/dist/commands/guarded-settings-command.d.ts +14 -0
- package/dist/commands/guarded-settings-command.d.ts.map +1 -0
- package/dist/commands/guarded-settings-command.js +23 -0
- package/dist/commands/guarded-settings-command.js.map +1 -0
- package/dist/commands/handoff-command.d.ts +10 -0
- package/dist/commands/handoff-command.d.ts.map +1 -0
- package/dist/commands/handoff-command.js +17 -0
- package/dist/commands/handoff-command.js.map +1 -0
- package/dist/commands/mode-commands.d.ts +32 -0
- package/dist/commands/mode-commands.d.ts.map +1 -0
- package/dist/commands/mode-commands.js +64 -0
- package/dist/commands/mode-commands.js.map +1 -0
- package/dist/commands/model-command.d.ts +11 -0
- package/dist/commands/model-command.d.ts.map +1 -0
- package/dist/commands/model-command.js +35 -0
- package/dist/commands/model-command.js.map +1 -0
- package/dist/commands/quit-command.d.ts +3 -0
- package/dist/commands/quit-command.d.ts.map +1 -0
- package/dist/commands/quit-command.js +10 -0
- package/dist/commands/quit-command.js.map +1 -0
- package/dist/commands/retry-command.d.ts +19 -0
- package/dist/commands/retry-command.d.ts.map +1 -0
- package/dist/commands/retry-command.js +30 -0
- package/dist/commands/retry-command.js.map +1 -0
- package/dist/commands/undo-command.d.ts +15 -0
- package/dist/commands/undo-command.d.ts.map +1 -0
- package/dist/commands/undo-command.js +28 -0
- package/dist/commands/undo-command.js.map +1 -0
- package/dist/commands/usage-command.d.ts +3 -0
- package/dist/commands/usage-command.d.ts.map +1 -0
- package/dist/commands/usage-command.js +11 -0
- package/dist/commands/usage-command.js.map +1 -0
- package/dist/components/Banner.d.ts.map +1 -1
- package/dist/components/Banner.js +35 -17
- package/dist/components/Banner.js.map +1 -1
- package/dist/components/BottomArea.d.ts +10 -1
- package/dist/components/BottomArea.d.ts.map +1 -1
- package/dist/components/BottomArea.js +8 -6
- package/dist/components/BottomArea.js.map +1 -1
- package/dist/components/BottomArea.test.js +14 -1
- package/dist/components/BottomArea.test.js.map +1 -1
- package/dist/components/CommandMessage.d.ts.map +1 -1
- package/dist/components/CommandMessage.js +31 -1
- package/dist/components/CommandMessage.js.map +1 -1
- package/dist/components/CommandMessage.test.js +150 -31
- package/dist/components/CommandMessage.test.js.map +1 -1
- package/dist/components/Common/MenuContainer.d.ts +20 -0
- package/dist/components/Common/MenuContainer.d.ts.map +1 -0
- package/dist/components/Common/MenuContainer.js +52 -0
- package/dist/components/Common/MenuContainer.js.map +1 -0
- package/dist/components/Common/ScrollableTabBar.d.ts +26 -0
- package/dist/components/Common/ScrollableTabBar.d.ts.map +1 -0
- package/dist/components/Common/ScrollableTabBar.js +26 -0
- package/dist/components/Common/ScrollableTabBar.js.map +1 -0
- package/dist/components/Common/compute-visible-tabs.d.ts +16 -0
- package/dist/components/Common/compute-visible-tabs.d.ts.map +1 -0
- package/dist/components/Common/compute-visible-tabs.js +53 -0
- package/dist/components/Common/compute-visible-tabs.js.map +1 -0
- package/dist/components/Common/compute-visible-tabs.test.d.ts +2 -0
- package/dist/components/Common/compute-visible-tabs.test.d.ts.map +1 -0
- package/dist/components/Common/compute-visible-tabs.test.js +97 -0
- package/dist/components/Common/compute-visible-tabs.test.js.map +1 -0
- package/dist/components/HandoffConfirmationPrompt.d.ts +9 -0
- package/dist/components/HandoffConfirmationPrompt.d.ts.map +1 -0
- package/dist/components/HandoffConfirmationPrompt.js +38 -0
- package/dist/components/HandoffConfirmationPrompt.js.map +1 -0
- package/dist/components/HandoffConfirmationPrompt.test.d.ts +2 -0
- package/dist/components/HandoffConfirmationPrompt.test.d.ts.map +1 -0
- package/dist/components/HandoffConfirmationPrompt.test.js +12 -0
- package/dist/components/HandoffConfirmationPrompt.test.js.map +1 -0
- package/dist/components/Input/PopupManager.d.ts +5 -1
- 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/popup-key-navigation.js +2 -2
- package/dist/components/Input/popup-key-navigation.js.map +1 -1
- package/dist/components/Input/popup-key-navigation.test.js +5 -3
- package/dist/components/Input/popup-key-navigation.test.js.map +1 -1
- package/dist/components/Input/popup-props.d.ts.map +1 -1
- package/dist/components/Input/popup-props.js +4 -0
- package/dist/components/Input/popup-props.js.map +1 -1
- package/dist/components/Input/popup-props.test.d.ts +2 -0
- package/dist/components/Input/popup-props.test.d.ts.map +1 -0
- package/dist/components/Input/popup-props.test.js +70 -0
- package/dist/components/Input/popup-props.test.js.map +1 -0
- package/dist/components/InputBox.d.ts +1 -1
- package/dist/components/InputBox.d.ts.map +1 -1
- package/dist/components/InputBox.js +67 -14
- package/dist/components/InputBox.js.map +1 -1
- package/dist/components/InputBox.test.js +192 -12
- package/dist/components/InputBox.test.js.map +1 -1
- package/dist/components/MessageList.d.ts +1 -0
- package/dist/components/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList.js.map +1 -1
- package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
- package/dist/components/ModelSelectionMenu.js +29 -125
- package/dist/components/ModelSelectionMenu.js.map +1 -1
- package/dist/components/ModelSelectionMenu.test.js +9 -5
- package/dist/components/ModelSelectionMenu.test.js.map +1 -1
- package/dist/components/PathSelectionMenu.d.ts.map +1 -1
- package/dist/components/PathSelectionMenu.js +15 -55
- package/dist/components/PathSelectionMenu.js.map +1 -1
- package/dist/components/SettingsSelectionMenu.d.ts +4 -1
- package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
- package/dist/components/SettingsSelectionMenu.js +48 -104
- package/dist/components/SettingsSelectionMenu.js.map +1 -1
- package/dist/components/SettingsSelectionMenu.scroll.test.js +140 -0
- package/dist/components/SettingsSelectionMenu.scroll.test.js.map +1 -1
- package/dist/components/SettingsSelectionMenu.test.js +38 -5
- package/dist/components/SettingsSelectionMenu.test.js.map +1 -1
- package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
- package/dist/components/SettingsValueSelectionMenu.js +24 -51
- package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
- package/dist/components/SlashCommandMenu.d.ts +1 -0
- package/dist/components/SlashCommandMenu.d.ts.map +1 -1
- package/dist/components/SlashCommandMenu.js +11 -14
- package/dist/components/SlashCommandMenu.js.map +1 -1
- package/dist/components/StatusBar.d.ts +6 -0
- package/dist/components/StatusBar.d.ts.map +1 -1
- package/dist/components/StatusBar.js +51 -4
- package/dist/components/StatusBar.js.map +1 -1
- package/dist/components/StatusBar.test.js +47 -0
- package/dist/components/StatusBar.test.js.map +1 -1
- package/dist/components/UndoSelectionMenu.d.ts.map +1 -1
- package/dist/components/UndoSelectionMenu.js +6 -33
- package/dist/components/UndoSelectionMenu.js.map +1 -1
- package/dist/context/InputContext.stability.test.js +9 -7
- package/dist/context/InputContext.stability.test.js.map +1 -1
- package/dist/contracts/conversation.d.ts +3 -0
- package/dist/contracts/conversation.d.ts.map +1 -1
- package/dist/env-setup.js +1 -0
- package/dist/env-setup.js.map +1 -1
- package/dist/hooks/use-app-commands.d.ts +20 -21
- package/dist/hooks/use-app-commands.d.ts.map +1 -1
- package/dist/hooks/use-app-commands.js +65 -330
- package/dist/hooks/use-app-commands.js.map +1 -1
- package/dist/hooks/use-app-commands.test.js +146 -3
- package/dist/hooks/use-app-commands.test.js.map +1 -1
- package/dist/hooks/use-conversation.clear.test.js +61 -8
- package/dist/hooks/use-conversation.clear.test.js.map +1 -1
- package/dist/hooks/use-conversation.d.ts +25 -2
- package/dist/hooks/use-conversation.d.ts.map +1 -1
- package/dist/hooks/use-conversation.js +91 -30
- package/dist/hooks/use-conversation.js.map +1 -1
- package/dist/hooks/use-escape-key.d.ts +8 -1
- package/dist/hooks/use-escape-key.d.ts.map +1 -1
- package/dist/hooks/use-escape-key.js +15 -4
- package/dist/hooks/use-escape-key.js.map +1 -1
- package/dist/hooks/use-escape-key.test.js +135 -28
- package/dist/hooks/use-escape-key.test.js.map +1 -1
- package/dist/hooks/use-input-history.test.js +14 -8
- package/dist/hooks/use-input-history.test.js.map +1 -1
- package/dist/hooks/use-mode-handlers.d.ts +16 -2
- package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
- package/dist/hooks/use-mode-handlers.js +37 -2
- package/dist/hooks/use-mode-handlers.js.map +1 -1
- package/dist/hooks/use-model-selection.d.ts +6 -1
- package/dist/hooks/use-model-selection.d.ts.map +1 -1
- package/dist/hooks/use-model-selection.js +50 -8
- package/dist/hooks/use-model-selection.js.map +1 -1
- package/dist/hooks/use-model-selection.test.js +306 -50
- package/dist/hooks/use-model-selection.test.js.map +1 -1
- package/dist/hooks/use-path-completion.d.ts +4 -0
- package/dist/hooks/use-path-completion.d.ts.map +1 -1
- package/dist/hooks/use-path-completion.js +23 -17
- package/dist/hooks/use-path-completion.js.map +1 -1
- package/dist/hooks/use-runtime-settings.d.ts.map +1 -1
- package/dist/hooks/use-runtime-settings.js +9 -4
- package/dist/hooks/use-runtime-settings.js.map +1 -1
- package/dist/hooks/use-runtime-settings.test.d.ts +2 -0
- package/dist/hooks/use-runtime-settings.test.d.ts.map +1 -0
- package/dist/hooks/use-runtime-settings.test.js +44 -0
- package/dist/hooks/use-runtime-settings.test.js.map +1 -0
- package/dist/hooks/use-selection.d.ts +6 -2
- package/dist/hooks/use-selection.d.ts.map +1 -1
- package/dist/hooks/use-selection.js +53 -16
- package/dist/hooks/use-selection.js.map +1 -1
- package/dist/hooks/use-selection.test.d.ts +2 -0
- package/dist/hooks/use-selection.test.d.ts.map +1 -0
- package/dist/hooks/use-selection.test.js +132 -0
- package/dist/hooks/use-selection.test.js.map +1 -0
- package/dist/hooks/use-settings-completion.d.ts +19 -0
- package/dist/hooks/use-settings-completion.d.ts.map +1 -1
- package/dist/hooks/use-settings-completion.js +106 -18
- package/dist/hooks/use-settings-completion.js.map +1 -1
- package/dist/hooks/use-settings-completion.scroll.test.js +68 -29
- package/dist/hooks/use-settings-completion.scroll.test.js.map +1 -1
- package/dist/hooks/use-settings-completion.test.js +36 -1
- package/dist/hooks/use-settings-completion.test.js.map +1 -1
- package/dist/hooks/use-settings-value-completion.d.ts +7 -1
- package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
- package/dist/hooks/use-settings-value-completion.js +18 -7
- package/dist/hooks/use-settings-value-completion.js.map +1 -1
- package/dist/hooks/use-slash-commands.d.ts +5 -0
- package/dist/hooks/use-slash-commands.d.ts.map +1 -1
- package/dist/hooks/use-slash-commands.js +32 -2
- package/dist/hooks/use-slash-commands.js.map +1 -1
- package/dist/hooks/use-slash-commands.test.js +35 -5
- package/dist/hooks/use-slash-commands.test.js.map +1 -1
- package/dist/hooks/use-trigger-detection.test.js +9 -6
- package/dist/hooks/use-trigger-detection.test.js.map +1 -1
- package/dist/hooks/use-undo-selection.d.ts +4 -0
- package/dist/hooks/use-undo-selection.d.ts.map +1 -1
- package/dist/hooks/use-undo-selection.js +20 -1
- package/dist/hooks/use-undo-selection.js.map +1 -1
- package/dist/lib/openai-agent-client.d.ts +10 -3
- package/dist/lib/openai-agent-client.d.ts.map +1 -1
- package/dist/lib/openai-agent-client.flex-tier.test.js +8 -3
- package/dist/lib/openai-agent-client.flex-tier.test.js.map +1 -1
- package/dist/lib/openai-agent-client.js +198 -38
- package/dist/lib/openai-agent-client.js.map +1 -1
- package/dist/lib/openai-agent-client.public-methods.test.js +193 -0
- package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
- package/dist/lib/openai-agent-client.test.js +71 -1
- 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 +213 -10
- package/dist/lib/tool-invoke.js.map +1 -1
- package/dist/lib/tool-invoke.test.js +103 -0
- package/dist/lib/tool-invoke.test.js.map +1 -1
- package/dist/lib/tool-selection-policy.d.ts.map +1 -1
- package/dist/lib/tool-selection-policy.js +43 -2
- package/dist/lib/tool-selection-policy.js.map +1 -1
- package/dist/lib/tool-selection-policy.test.js +39 -0
- package/dist/lib/tool-selection-policy.test.js.map +1 -1
- package/dist/prompts/codex.md +105 -97
- package/dist/prompts/fragments/gpt-5.3-codex.md +7 -0
- package/dist/prompts/fragments/gpt-5.4-small.md +6 -0
- package/dist/prompts/fragments/gpt-5.4.md +7 -0
- package/dist/prompts/fragments/gpt-5.5.md +7 -0
- package/dist/prompts/gpt-5-modern.md +90 -54
- package/dist/prompts/plan-mode-info.md +14 -3
- package/dist/prompts/prompt-constructor.d.ts +19 -0
- package/dist/prompts/prompt-constructor.d.ts.map +1 -0
- package/dist/prompts/prompt-constructor.js +53 -0
- package/dist/prompts/prompt-constructor.js.map +1 -0
- package/dist/prompts/prompt-constructor.test.d.ts +2 -0
- package/dist/prompts/prompt-constructor.test.d.ts.map +1 -0
- package/dist/prompts/prompt-constructor.test.js +99 -0
- package/dist/prompts/prompt-constructor.test.js.map +1 -0
- package/dist/prompts/prompt-constructor.test.ts +112 -0
- package/dist/prompts/prompt-constructor.ts +91 -0
- package/dist/prompts/prompt-profiles.d.ts +17 -0
- package/dist/prompts/prompt-profiles.d.ts.map +1 -0
- package/dist/prompts/prompt-profiles.js +61 -0
- package/dist/prompts/prompt-profiles.js.map +1 -0
- package/dist/prompts/prompt-profiles.ts +77 -0
- package/dist/prompts/prompt-selector.d.ts.map +1 -1
- package/dist/prompts/prompt-selector.js +3 -21
- package/dist/prompts/prompt-selector.js.map +1 -1
- package/dist/prompts/prompt-selector.ts +3 -25
- package/dist/prompts/reasoning-efficiency.d.ts.map +1 -1
- package/dist/prompts/reasoning-efficiency.js +2 -0
- package/dist/prompts/reasoning-efficiency.js.map +1 -1
- package/dist/prompts/reasoning-efficiency.test.d.ts +2 -0
- package/dist/prompts/reasoning-efficiency.test.d.ts.map +1 -0
- package/dist/prompts/reasoning-efficiency.test.js +11 -0
- package/dist/prompts/reasoning-efficiency.test.js.map +1 -0
- package/dist/prompts/reasoning-efficiency.test.ts +12 -0
- package/dist/prompts/reasoning-efficiency.ts +2 -0
- package/dist/prompts/search-via-shell.d.ts.map +1 -1
- package/dist/prompts/search-via-shell.js +0 -1
- package/dist/prompts/search-via-shell.js.map +1 -1
- package/dist/prompts/search-via-shell.test.js +19 -16
- package/dist/prompts/search-via-shell.test.js.map +1 -1
- package/dist/prompts/search-via-shell.test.ts +20 -16
- package/dist/prompts/search-via-shell.ts +0 -1
- package/dist/prompts/shell-auto-approval.d.ts +2 -2
- package/dist/prompts/shell-auto-approval.d.ts.map +1 -1
- package/dist/prompts/shell-auto-approval.js +6 -6
- package/dist/prompts/shell-auto-approval.js.map +1 -1
- package/dist/prompts/shell-auto-approval.ts +6 -6
- package/dist/prompts/simple-prev.md +55 -0
- package/dist/prompts/simple.md +31 -53
- package/dist/prompts/subagent-delegation.js +2 -2
- package/dist/prompts/subagent-delegation.js.map +1 -1
- package/dist/prompts/subagent-delegation.test.js +12 -10
- package/dist/prompts/subagent-delegation.test.js.map +1 -1
- package/dist/prompts/subagent-delegation.test.ts +13 -10
- package/dist/prompts/subagent-delegation.ts +2 -2
- package/dist/prompts/worktree-hygiene.md +9 -0
- package/dist/providers/ai-sdk-logging-fetch.d.ts.map +1 -1
- package/dist/providers/ai-sdk-logging-fetch.js +78 -3
- package/dist/providers/ai-sdk-logging-fetch.js.map +1 -1
- package/dist/providers/ai-sdk-logging-fetch.test.js +143 -0
- package/dist/providers/ai-sdk-logging-fetch.test.js.map +1 -1
- package/dist/providers/codex-responses-model.d.ts +21 -0
- package/dist/providers/codex-responses-model.d.ts.map +1 -0
- package/dist/providers/codex-responses-model.js +180 -0
- package/dist/providers/codex-responses-model.js.map +1 -0
- package/dist/providers/codex-responses-model.test.d.ts +2 -0
- package/dist/providers/codex-responses-model.test.d.ts.map +1 -0
- package/dist/providers/codex-responses-model.test.js +354 -0
- package/dist/providers/codex-responses-model.test.js.map +1 -0
- package/dist/providers/codex.provider.d.ts +27 -0
- package/dist/providers/codex.provider.d.ts.map +1 -0
- package/dist/providers/codex.provider.js +482 -0
- package/dist/providers/codex.provider.js.map +1 -0
- package/dist/providers/codex.provider.test.d.ts +2 -0
- package/dist/providers/codex.provider.test.d.ts.map +1 -0
- package/dist/providers/codex.provider.test.js +607 -0
- package/dist/providers/codex.provider.test.js.map +1 -0
- package/dist/providers/custom-provider-adapter.test.js +59 -3
- package/dist/providers/custom-provider-adapter.test.js.map +1 -1
- package/dist/providers/fallback-responses-model.d.ts +20 -0
- package/dist/providers/fallback-responses-model.d.ts.map +1 -0
- package/dist/providers/fallback-responses-model.js +346 -0
- package/dist/providers/fallback-responses-model.js.map +1 -0
- package/dist/providers/fallback-responses-model.test.d.ts +2 -0
- package/dist/providers/fallback-responses-model.test.d.ts.map +1 -0
- package/dist/providers/fallback-responses-model.test.js +568 -0
- package/dist/providers/fallback-responses-model.test.js.map +1 -0
- package/dist/providers/fetch/compose.d.ts +7 -0
- package/dist/providers/fetch/compose.d.ts.map +1 -0
- package/dist/providers/fetch/compose.js +20 -0
- package/dist/providers/fetch/compose.js.map +1 -0
- package/dist/providers/fetch/composer.d.ts +13 -0
- package/dist/providers/fetch/composer.d.ts.map +1 -0
- package/dist/providers/fetch/composer.js +15 -0
- package/dist/providers/fetch/composer.js.map +1 -0
- package/dist/providers/fetch/composer.test.d.ts +2 -0
- package/dist/providers/fetch/composer.test.d.ts.map +1 -0
- package/dist/providers/fetch/composer.test.js +448 -0
- package/dist/providers/fetch/composer.test.js.map +1 -0
- package/dist/providers/fetch/logging-middleware.d.ts +16 -0
- package/dist/providers/fetch/logging-middleware.d.ts.map +1 -0
- package/dist/providers/fetch/logging-middleware.js +214 -0
- package/dist/providers/fetch/logging-middleware.js.map +1 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/llama-cpp.provider.d.ts +3 -0
- package/dist/providers/llama-cpp.provider.d.ts.map +1 -0
- package/dist/providers/llama-cpp.provider.js +34 -0
- package/dist/providers/llama-cpp.provider.js.map +1 -0
- package/dist/providers/openai-compatible-middleware.d.ts +7 -0
- package/dist/providers/openai-compatible-middleware.d.ts.map +1 -0
- package/dist/providers/openai-compatible-middleware.js +133 -0
- package/dist/providers/openai-compatible-middleware.js.map +1 -0
- package/dist/providers/openai-compatible-models.d.ts +6 -0
- package/dist/providers/openai-compatible-models.d.ts.map +1 -0
- package/dist/providers/openai-compatible-models.js +17 -0
- package/dist/providers/openai-compatible-models.js.map +1 -0
- package/dist/providers/openai-compatible-response-normalizer.d.ts +7 -0
- package/dist/providers/openai-compatible-response-normalizer.d.ts.map +1 -0
- package/dist/providers/openai-compatible-response-normalizer.js +58 -0
- package/dist/providers/openai-compatible-response-normalizer.js.map +1 -0
- package/dist/providers/openai-compatible.provider.d.ts +6 -3
- package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
- package/dist/providers/openai-compatible.provider.js +71 -327
- package/dist/providers/openai-compatible.provider.js.map +1 -1
- package/dist/providers/openai-compatible.provider.test.js +106 -1
- package/dist/providers/openai-compatible.provider.test.js.map +1 -1
- package/dist/providers/openai.provider.js +44 -10
- package/dist/providers/openai.provider.js.map +1 -1
- package/dist/providers/opencode.provider.d.ts +19 -0
- package/dist/providers/opencode.provider.d.ts.map +1 -0
- package/dist/providers/opencode.provider.js +45 -0
- package/dist/providers/opencode.provider.js.map +1 -0
- package/dist/providers/openrouter.provider.d.ts +2 -3
- package/dist/providers/openrouter.provider.d.ts.map +1 -1
- package/dist/providers/openrouter.provider.js +23 -24
- package/dist/providers/openrouter.provider.js.map +1 -1
- package/dist/providers/openrouter.provider.request-preprocessing.test.js +12 -9
- package/dist/providers/openrouter.provider.request-preprocessing.test.js.map +1 -1
- package/dist/providers/protocol-client.d.ts +17 -0
- package/dist/providers/protocol-client.d.ts.map +1 -0
- package/dist/providers/protocol-client.js +57 -0
- package/dist/providers/protocol-client.js.map +1 -0
- package/dist/providers/protocol-client.test.d.ts +2 -0
- package/dist/providers/protocol-client.test.d.ts.map +1 -0
- package/dist/providers/protocol-client.test.js +55 -0
- package/dist/providers/protocol-client.test.js.map +1 -0
- package/dist/providers/registry.d.ts +1 -0
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/registry.test.js +6 -22
- package/dist/providers/registry.test.js.map +1 -1
- package/dist/providers/timed-responses-ws-model.d.ts +20 -0
- package/dist/providers/timed-responses-ws-model.d.ts.map +1 -0
- package/dist/providers/timed-responses-ws-model.js +381 -0
- package/dist/providers/timed-responses-ws-model.js.map +1 -0
- package/dist/providers/timed-responses-ws-model.test.d.ts +2 -0
- package/dist/providers/timed-responses-ws-model.test.d.ts.map +1 -0
- package/dist/providers/timed-responses-ws-model.test.js +441 -0
- package/dist/providers/timed-responses-ws-model.test.js.map +1 -0
- package/dist/providers/timed-ws-connection.d.ts +26 -0
- package/dist/providers/timed-ws-connection.d.ts.map +1 -0
- package/dist/providers/timed-ws-connection.js +156 -0
- package/dist/providers/timed-ws-connection.js.map +1 -0
- package/dist/providers/timed-ws-connection.test.d.ts +2 -0
- package/dist/providers/timed-ws-connection.test.d.ts.map +1 -0
- package/dist/providers/timed-ws-connection.test.js +223 -0
- package/dist/providers/timed-ws-connection.test.js.map +1 -0
- package/dist/providers/timed-ws-timeouts.d.ts +6 -0
- package/dist/providers/timed-ws-timeouts.d.ts.map +1 -0
- package/dist/providers/timed-ws-timeouts.js +6 -0
- package/dist/providers/timed-ws-timeouts.js.map +1 -0
- package/dist/scripts/eval-auto-approval/dataset.d.ts +2 -2
- package/dist/services/approval-flow-coordinator.d.ts.map +1 -1
- package/dist/services/approval-flow-coordinator.js +17 -1
- package/dist/services/approval-flow-coordinator.js.map +1 -1
- package/dist/services/approval-flow-coordinator.test.js +22 -0
- package/dist/services/approval-flow-coordinator.test.js.map +1 -1
- package/dist/services/command-message-streaming.d.ts.map +1 -1
- package/dist/services/command-message-streaming.js +8 -6
- package/dist/services/command-message-streaming.js.map +1 -1
- package/dist/services/command-message-streaming.test.js +4 -2
- package/dist/services/command-message-streaming.test.js.map +1 -1
- package/dist/services/conversation-clear-save.test.js +37 -66
- package/dist/services/conversation-clear-save.test.js.map +1 -1
- package/dist/services/conversation-events.d.ts +48 -1
- package/dist/services/conversation-events.d.ts.map +1 -1
- package/dist/services/conversation-history-repair.d.ts.map +1 -1
- package/dist/services/conversation-history-repair.js +81 -26
- package/dist/services/conversation-history-repair.js.map +1 -1
- package/dist/services/conversation-integration.test.js +112 -1
- package/dist/services/conversation-integration.test.js.map +1 -1
- package/dist/services/conversation-log-events.d.ts +113 -0
- package/dist/services/conversation-log-events.d.ts.map +1 -0
- package/dist/services/conversation-log-events.js +12 -0
- package/dist/services/conversation-log-events.js.map +1 -0
- package/dist/services/conversation-log-writer.d.ts +40 -0
- package/dist/services/conversation-log-writer.d.ts.map +1 -0
- package/dist/services/conversation-log-writer.js +264 -0
- package/dist/services/conversation-log-writer.js.map +1 -0
- package/dist/services/conversation-persistence-types.d.ts +46 -0
- package/dist/services/conversation-persistence-types.d.ts.map +1 -0
- package/dist/services/conversation-persistence-types.js +2 -0
- package/dist/services/conversation-persistence-types.js.map +1 -0
- package/dist/services/conversation-persistence.d.ts +44 -39
- package/dist/services/conversation-persistence.d.ts.map +1 -1
- package/dist/services/conversation-persistence.js +273 -83
- package/dist/services/conversation-persistence.js.map +1 -1
- package/dist/services/conversation-persistence.test.js +708 -624
- package/dist/services/conversation-persistence.test.js.map +1 -1
- package/dist/services/conversation-replay.d.ts +26 -0
- package/dist/services/conversation-replay.d.ts.map +1 -0
- package/dist/services/conversation-replay.js +460 -0
- package/dist/services/conversation-replay.js.map +1 -0
- package/dist/services/conversation-replay.test.d.ts +2 -0
- package/dist/services/conversation-replay.test.d.ts.map +1 -0
- package/dist/services/conversation-replay.test.js +492 -0
- package/dist/services/conversation-replay.test.js.map +1 -0
- package/dist/services/conversation-result-builder.d.ts +2 -0
- package/dist/services/conversation-result-builder.d.ts.map +1 -1
- package/dist/services/conversation-result-builder.js +12 -2
- package/dist/services/conversation-result-builder.js.map +1 -1
- package/dist/services/conversation-result-builder.test.js +179 -0
- package/dist/services/conversation-result-builder.test.js.map +1 -1
- package/dist/services/conversation-retry-policy.d.ts +17 -0
- package/dist/services/conversation-retry-policy.d.ts.map +1 -1
- package/dist/services/conversation-retry-policy.js +38 -5
- package/dist/services/conversation-retry-policy.js.map +1 -1
- package/dist/services/conversation-retry-policy.test.js +60 -1
- package/dist/services/conversation-retry-policy.test.js.map +1 -1
- package/dist/services/conversation-service.d.ts +12 -3
- package/dist/services/conversation-service.d.ts.map +1 -1
- package/dist/services/conversation-service.js +18 -3
- package/dist/services/conversation-service.js.map +1 -1
- package/dist/services/conversation-session.d.ts +23 -7
- package/dist/services/conversation-session.d.ts.map +1 -1
- package/dist/services/conversation-session.js +620 -67
- package/dist/services/conversation-session.js.map +1 -1
- package/dist/services/conversation-store.d.ts +16 -13
- package/dist/services/conversation-store.d.ts.map +1 -1
- package/dist/services/conversation-store.js +62 -191
- package/dist/services/conversation-store.js.map +1 -1
- package/dist/services/conversation-store.merge-modes.removed.d.ts +2 -0
- package/dist/services/conversation-store.merge-modes.removed.d.ts.map +1 -0
- package/dist/services/conversation-store.merge-modes.removed.js +2 -0
- package/dist/services/conversation-store.merge-modes.removed.js.map +1 -0
- package/dist/services/conversation-store.merge-modes.test.d.ts +2 -0
- package/dist/services/conversation-store.merge-modes.test.d.ts.map +1 -0
- package/dist/services/conversation-store.merge-modes.test.js +2 -0
- package/dist/services/conversation-store.merge-modes.test.js.map +1 -0
- package/dist/services/conversation-store.test.js +157 -294
- package/dist/services/conversation-store.test.js.map +1 -1
- package/dist/services/conversation-turn-items.d.ts +5 -0
- package/dist/services/conversation-turn-items.d.ts.map +1 -0
- package/dist/services/conversation-turn-items.js +351 -0
- package/dist/services/conversation-turn-items.js.map +1 -0
- package/dist/services/conversation-turn-items.test.d.ts +2 -0
- package/dist/services/conversation-turn-items.test.d.ts.map +1 -0
- package/dist/services/conversation-turn-items.test.js +68 -0
- package/dist/services/conversation-turn-items.test.js.map +1 -0
- package/dist/services/input-surge-guard.d.ts +4 -0
- package/dist/services/input-surge-guard.d.ts.map +1 -1
- package/dist/services/input-surge-guard.js +2 -2
- package/dist/services/input-surge-guard.js.map +1 -1
- package/dist/services/input-surge-guard.test.js +15 -1
- package/dist/services/input-surge-guard.test.js.map +1 -1
- package/dist/services/large-uncached-input-guard.d.ts +35 -0
- package/dist/services/large-uncached-input-guard.d.ts.map +1 -0
- package/dist/services/large-uncached-input-guard.js +127 -0
- package/dist/services/large-uncached-input-guard.js.map +1 -0
- package/dist/services/large-uncached-input-guard.test.d.ts +2 -0
- package/dist/services/large-uncached-input-guard.test.d.ts.map +1 -0
- package/dist/services/large-uncached-input-guard.test.js +160 -0
- package/dist/services/large-uncached-input-guard.test.js.map +1 -0
- package/dist/services/model-service.d.ts +2 -0
- package/dist/services/model-service.d.ts.map +1 -1
- package/dist/services/model-service.js +7 -0
- package/dist/services/model-service.js.map +1 -1
- package/dist/services/provider-traffic.d.ts.map +1 -1
- package/dist/services/provider-traffic.js +82 -24
- package/dist/services/provider-traffic.js.map +1 -1
- package/dist/services/provider-traffic.test.js +98 -6
- package/dist/services/provider-traffic.test.js.map +1 -1
- package/dist/services/repro-error.test.d.ts +2 -0
- package/dist/services/repro-error.test.d.ts.map +1 -0
- package/dist/services/repro-error.test.js +38 -0
- package/dist/services/repro-error.test.js.map +1 -0
- package/dist/services/rtk-service.d.ts.map +1 -1
- package/dist/services/rtk-service.js +1 -2
- package/dist/services/rtk-service.js.map +1 -1
- package/dist/services/settings-schema.d.ts +36 -28
- package/dist/services/settings-schema.d.ts.map +1 -1
- package/dist/services/settings-schema.js +7 -2
- package/dist/services/settings-schema.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/stream-event-processor.d.ts +4 -0
- package/dist/services/stream-event-processor.d.ts.map +1 -1
- package/dist/services/stream-event-processor.js +78 -39
- package/dist/services/stream-event-processor.js.map +1 -1
- package/dist/services/stream-event-processor.test.js +71 -0
- package/dist/services/stream-event-processor.test.js.map +1 -1
- package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
- package/dist/services/subagents/subagent-manager.js +120 -46
- package/dist/services/subagents/subagent-manager.js.map +1 -1
- package/dist/services/subagents/subagent-manager.test.js +361 -11
- package/dist/services/subagents/subagent-manager.test.js.map +1 -1
- package/dist/services/subagents/subagent-session.d.ts +1 -1
- package/dist/services/subagents/subagent-session.d.ts.map +1 -1
- package/dist/services/subagents/subagent-session.js +2 -2
- package/dist/services/subagents/subagent-session.js.map +1 -1
- package/dist/services/subagents/subagent-session.test.js +3 -3
- package/dist/services/subagents/subagent-session.test.js.map +1 -1
- package/dist/services/subagents/types.d.ts +2 -1
- package/dist/services/subagents/types.d.ts.map +1 -1
- package/dist/services/terminal-result-collector.d.ts.map +1 -1
- package/dist/services/terminal-result-collector.js +49 -1
- package/dist/services/terminal-result-collector.js.map +1 -1
- package/dist/services/terminal-result-collector.test.js +44 -0
- package/dist/services/terminal-result-collector.test.js.map +1 -1
- package/dist/services/tool-call-arguments.d.ts +20 -0
- package/dist/services/tool-call-arguments.d.ts.map +1 -0
- package/dist/services/tool-call-arguments.js +49 -0
- package/dist/services/tool-call-arguments.js.map +1 -0
- package/dist/services/tool-execution-ledger.d.ts +41 -0
- package/dist/services/tool-execution-ledger.d.ts.map +1 -0
- package/dist/services/tool-execution-ledger.js +269 -0
- package/dist/services/tool-execution-ledger.js.map +1 -0
- package/dist/services/tool-execution-ledger.test.d.ts +2 -0
- package/dist/services/tool-execution-ledger.test.d.ts.map +1 -0
- package/dist/services/tool-execution-ledger.test.js +271 -0
- package/dist/services/tool-execution-ledger.test.js.map +1 -0
- package/dist/tools/apply-patch.d.ts +8 -0
- package/dist/tools/apply-patch.d.ts.map +1 -1
- package/dist/tools/apply-patch.js +187 -14
- package/dist/tools/apply-patch.js.map +1 -1
- package/dist/tools/apply-patch.test.js +81 -0
- package/dist/tools/apply-patch.test.js.map +1 -1
- package/dist/tools/edit-healing.d.ts.map +1 -1
- package/dist/tools/edit-healing.js +9 -3
- package/dist/tools/edit-healing.js.map +1 -1
- package/dist/tools/run-subagent.d.ts +0 -1
- package/dist/tools/run-subagent.d.ts.map +1 -1
- package/dist/tools/run-subagent.js +1 -8
- package/dist/tools/run-subagent.js.map +1 -1
- package/dist/tools/run-subagent.test.js +0 -18
- package/dist/tools/run-subagent.test.js.map +1 -1
- package/dist/tools/search-replace.d.ts.map +1 -1
- package/dist/tools/search-replace.js +92 -140
- package/dist/tools/search-replace.js.map +1 -1
- package/dist/utils/clipboard.d.ts +7 -0
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +83 -4
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/clipboard.test.js +152 -2
- package/dist/utils/clipboard.test.js.map +1 -1
- package/dist/utils/conversation-event-handler.d.ts.map +1 -1
- package/dist/utils/conversation-event-handler.js +36 -1
- package/dist/utils/conversation-event-handler.js.map +1 -1
- package/dist/utils/conversation-event-handler.test.js +116 -0
- package/dist/utils/conversation-event-handler.test.js.map +1 -1
- package/dist/utils/error-helpers.d.ts +1 -0
- package/dist/utils/error-helpers.d.ts.map +1 -1
- package/dist/utils/error-helpers.js +61 -0
- package/dist/utils/error-helpers.js.map +1 -1
- package/dist/utils/error-helpers.test.js +13 -1
- package/dist/utils/error-helpers.test.js.map +1 -1
- package/dist/utils/extract-command-messages.d.ts.map +1 -1
- package/dist/utils/extract-command-messages.js +8 -4
- package/dist/utils/extract-command-messages.js.map +1 -1
- package/dist/utils/ink-render-options.d.ts +1 -1
- package/dist/utils/ink-render-options.d.ts.map +1 -1
- package/dist/utils/ink-render-options.js +1 -1
- package/dist/utils/ink-render-options.js.map +1 -1
- package/dist/utils/message-utils.d.ts +7 -0
- package/dist/utils/message-utils.d.ts.map +1 -0
- package/dist/utils/message-utils.js +31 -0
- package/dist/utils/message-utils.js.map +1 -0
- package/dist/utils/resume-list.d.ts +15 -0
- package/dist/utils/resume-list.d.ts.map +1 -0
- package/dist/utils/resume-list.js +68 -0
- package/dist/utils/resume-list.js.map +1 -0
- package/dist/utils/resume-list.test.d.ts +2 -0
- package/dist/utils/resume-list.test.d.ts.map +1 -0
- package/dist/utils/resume-list.test.js +89 -0
- package/dist/utils/resume-list.test.js.map +1 -0
- package/dist/utils/streaming-session-factory.d.ts +2 -0
- package/dist/utils/streaming-session-factory.d.ts.map +1 -1
- package/dist/utils/streaming-session-factory.js +4 -0
- package/dist/utils/streaming-session-factory.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +22 -7
package/dist/agent.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import type { ToolDefinition } from './tools/types.js';
|
|
2
2
|
import type { ISettingsService, ILoggingService } from './services/service-interfaces.js';
|
|
3
3
|
import { ExecutionContext } from './services/execution-context.js';
|
|
4
|
+
type ProjectTreeOptions = {
|
|
5
|
+
maxDepth?: number;
|
|
6
|
+
maxEntriesPerDir?: number;
|
|
7
|
+
maxTotalEntries?: number;
|
|
8
|
+
includeFiles?: boolean;
|
|
9
|
+
ignoredNames?: Set<string>;
|
|
10
|
+
};
|
|
11
|
+
export declare function getProjectTreeForPrompt(cwd: string, options?: ProjectTreeOptions): string;
|
|
4
12
|
export declare function getEnvInfo(settingsService: ISettingsService, executionContext?: ExecutionContext, lite?: boolean): string;
|
|
5
13
|
export declare function getAgentsInstructions(cwd: string): string;
|
|
6
14
|
export interface AgentDefinition {
|
|
@@ -20,7 +28,7 @@ export declare const getAgentDefinition: (deps: {
|
|
|
20
28
|
runSubagent?: (params: {
|
|
21
29
|
role: string;
|
|
22
30
|
task: string;
|
|
23
|
-
writeBoundary?: string[];
|
|
24
31
|
}, context?: unknown, details?: unknown) => Promise<any>;
|
|
25
32
|
}, model?: string) => AgentDefinition;
|
|
33
|
+
export {};
|
|
26
34
|
//# sourceMappingURL=agent.d.ts.map
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../source/agent.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../source/agent.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAMnE,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B,CAAC;AA+CF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,CAoH7F;AAED,wBAAgB,UAAU,CACxB,eAAe,EAAE,gBAAgB,EACjC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,IAAI,UAAQ,GACX,MAAM,CAwBR;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUzD;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAmBD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM;IACJ,eAAe,EAAE,gBAAgB,CAAC;IAClC,cAAc,EAAE,eAAe,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CAC9G,EACD,QAAQ,MAAM,KACb,eAsJF,CAAC"}
|
package/dist/agent.js
CHANGED
|
@@ -14,22 +14,145 @@ import { registerToolFormatters } from './tools/command-message-formatters.js';
|
|
|
14
14
|
import os from 'os';
|
|
15
15
|
import fs from 'fs';
|
|
16
16
|
import path from 'path';
|
|
17
|
-
import {
|
|
17
|
+
import { default as createIgnore } from 'ignore';
|
|
18
|
+
import { buildPromptSpec } from './prompts/prompt-constructor.js';
|
|
18
19
|
import { shouldPreferPatchEditingModel } from './lib/tool-selection-policy.js';
|
|
19
|
-
import { getSearchViaShellAddendum } from './prompts/search-via-shell.js';
|
|
20
|
-
import { getSubagentDelegationAddendum } from './prompts/subagent-delegation.js';
|
|
21
|
-
import { getReasoningEfficiencyAddendum } from './prompts/reasoning-efficiency.js';
|
|
22
20
|
const BASE_PROMPT_PATH = path.join(import.meta.dirname, './prompts');
|
|
23
|
-
|
|
21
|
+
const ALWAYS_IGNORE = ['.git', 'node_modules', 'dist', 'build', '.next', '.turbo', 'coverage', '.cache', '.DS_Store'];
|
|
22
|
+
const ALWAYS_INCLUDE = new Set([
|
|
23
|
+
'package.json',
|
|
24
|
+
'tsconfig.json',
|
|
25
|
+
'README.md',
|
|
26
|
+
'readme.md',
|
|
27
|
+
'.gitignore',
|
|
28
|
+
'.env.example',
|
|
29
|
+
]);
|
|
30
|
+
const SENSITIVE_PATTERNS = [/^\.env$/, /^\.env\./, /secret/i, /private/i, /credential/i, /token/i];
|
|
31
|
+
function isSensitiveFile(name) {
|
|
32
|
+
return SENSITIVE_PATTERNS.some((pattern) => pattern.test(name));
|
|
33
|
+
}
|
|
34
|
+
function createProjectIgnore(cwd) {
|
|
35
|
+
const ig = createIgnore();
|
|
36
|
+
ig.add(ALWAYS_IGNORE);
|
|
37
|
+
const gitignorePath = path.join(cwd, '.gitignore');
|
|
24
38
|
try {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
39
|
+
if (fs.existsSync(gitignorePath)) {
|
|
40
|
+
ig.add(fs.readFileSync(gitignorePath, 'utf8'));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// If .gitignore cannot be read, continue with default ignores.
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
ignores(relativePath, basename) {
|
|
48
|
+
const normalized = relativePath.split(path.sep).join('/');
|
|
49
|
+
if (ALWAYS_INCLUDE.has(basename)) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
return ig.ignores(normalized);
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function getProjectTreeForPrompt(cwd, options = {}) {
|
|
57
|
+
const { maxDepth = 3, maxEntriesPerDir = 50, maxTotalEntries = 250, includeFiles = true } = options;
|
|
58
|
+
let totalEntries = 0;
|
|
59
|
+
let omittedByLimit = 0;
|
|
60
|
+
const projectIgnore = createProjectIgnore(cwd);
|
|
61
|
+
function walk(dir, depth, prefix) {
|
|
62
|
+
if (depth > maxDepth || totalEntries >= maxTotalEntries)
|
|
63
|
+
return [];
|
|
64
|
+
let entries;
|
|
65
|
+
try {
|
|
66
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
return [`${prefix}└─ [failed to read: ${e.message}]`];
|
|
70
|
+
}
|
|
71
|
+
const filtered = entries
|
|
72
|
+
.filter((entry) => {
|
|
73
|
+
const absolutePath = path.join(dir, entry.name);
|
|
74
|
+
const relativePath = path.relative(cwd, absolutePath).split(path.sep).join('/');
|
|
75
|
+
if (isSensitiveFile(entry.name)) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
if (projectIgnore.ignores(relativePath, entry.name)) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
if (!includeFiles && !entry.isDirectory()) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
return true;
|
|
85
|
+
})
|
|
86
|
+
.sort((a, b) => {
|
|
87
|
+
if (a.isDirectory() && !b.isDirectory())
|
|
88
|
+
return -1;
|
|
89
|
+
if (!a.isDirectory() && b.isDirectory())
|
|
90
|
+
return 1;
|
|
91
|
+
return a.name.localeCompare(b.name);
|
|
92
|
+
});
|
|
93
|
+
const shown = filtered.slice(0, maxEntriesPerDir);
|
|
94
|
+
omittedByLimit += Math.max(0, filtered.length - shown.length);
|
|
95
|
+
const lines = [];
|
|
96
|
+
const subdirs = [];
|
|
97
|
+
// BFS: render all children at this level first, then recurse into subdirs.
|
|
98
|
+
// This guarantees breadth-first budget allocation — shallower entries
|
|
99
|
+
// always take priority over deeper ones.
|
|
100
|
+
for (let index = 0; index < shown.length; index++) {
|
|
101
|
+
if (totalEntries >= maxTotalEntries) {
|
|
102
|
+
omittedByLimit += shown.length - index;
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
const entry = shown[index];
|
|
106
|
+
totalEntries++;
|
|
107
|
+
const isLast = index === shown.length - 1;
|
|
108
|
+
const connector = isLast ? '└─ ' : '├─ ';
|
|
109
|
+
const childPrefix = prefix + (isLast ? ' ' : '│ ');
|
|
110
|
+
const displayName = entry.isDirectory() ? `${entry.name}/` : entry.name;
|
|
111
|
+
lines.push(`${prefix}${connector}${displayName}`);
|
|
112
|
+
if (entry.isDirectory()) {
|
|
113
|
+
if (depth >= maxDepth) {
|
|
114
|
+
lines.push(`${childPrefix}└─ …`);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
subdirs.push({
|
|
118
|
+
path: path.join(dir, entry.name),
|
|
119
|
+
depth: depth + 1,
|
|
120
|
+
prefix: childPrefix,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Now recurse into collected subdirs (BFS step 2: children of children).
|
|
126
|
+
// Each subdir call starts a new breadth-first pass, but since they are
|
|
127
|
+
// processed after all current-level siblings are rendered, the budget
|
|
128
|
+
// naturally fills shallower levels first.
|
|
129
|
+
for (const subdir of subdirs) {
|
|
130
|
+
if (totalEntries >= maxTotalEntries)
|
|
131
|
+
break;
|
|
132
|
+
lines.push(...walk(subdir.path, subdir.depth, subdir.prefix));
|
|
133
|
+
}
|
|
134
|
+
return lines;
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
const lines = [
|
|
138
|
+
'Project structure:',
|
|
139
|
+
'.',
|
|
140
|
+
...walk(cwd, 1, ''),
|
|
141
|
+
'',
|
|
142
|
+
'Project structure notes:',
|
|
143
|
+
`- Root: ${cwd}`,
|
|
144
|
+
`- Max depth: ${maxDepth}`,
|
|
145
|
+
`- Max entries per directory: ${maxEntriesPerDir}`,
|
|
146
|
+
`- Max total entries: ${maxTotalEntries}`,
|
|
147
|
+
`- Ignored via defaults and .gitignore`,
|
|
148
|
+
];
|
|
149
|
+
if (omittedByLimit > 0) {
|
|
150
|
+
lines.push(`- Omitted due to limits: ${omittedByLimit}`);
|
|
151
|
+
}
|
|
152
|
+
return lines.join('\n');
|
|
30
153
|
}
|
|
31
154
|
catch (e) {
|
|
32
|
-
return `failed to read: ${e.message}`;
|
|
155
|
+
return `Project structure:\n[failed to read ${cwd}: ${e.message}]`;
|
|
33
156
|
}
|
|
34
157
|
}
|
|
35
158
|
export function getEnvInfo(settingsService, executionContext, lite = false) {
|
|
@@ -45,11 +168,11 @@ export function getEnvInfo(settingsService, executionContext, lite = false) {
|
|
|
45
168
|
}
|
|
46
169
|
// For remote sessions, we might not be able to list top-level entries efficiently or at all easily here synchronously
|
|
47
170
|
// We'll skip top-level entries for now if remote, or maybe we can't get them sync.
|
|
48
|
-
//
|
|
171
|
+
// getProjectTreeForPrompt is sync and uses fs.readdirSync. This won't work for remote.
|
|
49
172
|
// So if remote, we skip that part.
|
|
50
173
|
let topLevel = '';
|
|
51
174
|
if (!executionContext?.isRemote()) {
|
|
52
|
-
topLevel = `; top-level: ${
|
|
175
|
+
topLevel = `; top-level: ${getProjectTreeForPrompt(cwd)}`;
|
|
53
176
|
}
|
|
54
177
|
return `OS: ${osType} ${osRelease} (${osPlatform}); shell: ${shellPath}; cwd: ${cwd}${topLevel}; date: ${now}`;
|
|
55
178
|
}
|
|
@@ -70,7 +193,8 @@ function resolvePrompt(promptPath) {
|
|
|
70
193
|
return fs.readFileSync(promptPath, 'utf-8').trim();
|
|
71
194
|
}
|
|
72
195
|
catch (e) {
|
|
73
|
-
const
|
|
196
|
+
const relativePromptPath = path.relative(BASE_PROMPT_PATH, promptPath);
|
|
197
|
+
const sourcePromptPath = path.join(import.meta.dirname, '../source/prompts', relativePromptPath.startsWith('..') ? path.basename(promptPath) : relativePromptPath);
|
|
74
198
|
if (sourcePromptPath !== promptPath && fs.existsSync(sourcePromptPath)) {
|
|
75
199
|
return fs.readFileSync(sourcePromptPath, 'utf-8').trim();
|
|
76
200
|
}
|
|
@@ -90,72 +214,40 @@ export const getAgentDefinition = (deps, model) => {
|
|
|
90
214
|
const mentorMode = settingsService.get('app.mentorMode');
|
|
91
215
|
const liteMode = settingsService.get('app.liteMode');
|
|
92
216
|
const orchestratorMode = settingsService.get('app.orchestratorMode');
|
|
93
|
-
const
|
|
217
|
+
const searchViaShellSetting = settingsService.get('app.searchViaShell') ?? 'auto';
|
|
218
|
+
const searchViaShell = searchViaShellSetting === 'auto' ? shouldPreferPatchEditingModel(resolvedModel) : searchViaShellSetting === 'on';
|
|
94
219
|
// Code-context tools operate on the local filesystem only; disable them for
|
|
95
220
|
// remote (SSH) execution where the workspace lives on another host.
|
|
96
221
|
const codeContextEnabled = !(executionContext?.isRemote() ?? false);
|
|
97
222
|
const isGpt5 = !liteMode && shouldPreferPatchEditingModel(resolvedModel);
|
|
98
|
-
const
|
|
99
|
-
basePromptDir: BASE_PROMPT_PATH,
|
|
223
|
+
const promptSpec = buildPromptSpec({
|
|
100
224
|
model: resolvedModel,
|
|
101
225
|
liteMode,
|
|
102
226
|
orchestratorMode,
|
|
227
|
+
mentorMode,
|
|
228
|
+
planMode,
|
|
229
|
+
searchViaShell,
|
|
230
|
+
codeContextEnabled,
|
|
231
|
+
runSubagentEnabled: Boolean(runSubagent),
|
|
232
|
+
executionContext,
|
|
103
233
|
});
|
|
104
|
-
let prompt = resolvePrompt(
|
|
105
|
-
|
|
106
|
-
const addonPath = path.join(BASE_PROMPT_PATH, 'mentor-addon.md');
|
|
107
|
-
try {
|
|
108
|
-
const addon = resolvePrompt(addonPath);
|
|
109
|
-
prompt = `${prompt}\n\n${addon}`;
|
|
110
|
-
}
|
|
111
|
-
catch (e) {
|
|
112
|
-
loggingService.error(`Failed to load mentor addon: ${e}`);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
const codeContextDoc = !orchestratorMode && codeContextEnabled
|
|
116
|
-
? liteMode
|
|
117
|
-
? '### Code Context Tools\n\n- `read_code_outline`: inspect file structure.\n- `code_context_search`: find related files or symbol declarations. Use `read_file` before editing.'
|
|
118
|
-
: '### Code Context Tools\n\n- Use `read_code_outline` for a compact file outline.\n- Use `code_context_search` for related files or symbol declarations.\n- Use `read_file` before editing.'
|
|
119
|
-
: '';
|
|
120
|
-
if (codeContextDoc) {
|
|
121
|
-
prompt = `${prompt}\n\n${codeContextDoc}`;
|
|
122
|
-
}
|
|
123
|
-
if (!orchestratorMode && searchViaShell) {
|
|
124
|
-
try {
|
|
125
|
-
const addendum = getSearchViaShellAddendum({ executionContext });
|
|
126
|
-
prompt = `${prompt}\n\n${addendum}`;
|
|
127
|
-
}
|
|
128
|
-
catch (e) {
|
|
129
|
-
loggingService.error(`Failed to load search-via-shell addendum: ${e}`);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
else if (!orchestratorMode) {
|
|
133
|
-
if (!isGpt5) {
|
|
134
|
-
const searchToolsDoc = liteMode
|
|
135
|
-
? '### Search Tools\n\n- `find_files`: locate files by name or glob.\n- `grep`: search file contents.'
|
|
136
|
-
: '### Search Tools\n\n- Prefer `find_files` for locating files by name or glob.\n- Prefer `grep` for searching code content or symbols.';
|
|
137
|
-
prompt = `${prompt}\n\n${searchToolsDoc}`;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
// Delegation guidance is injected only in orchestrator mode when runSubagent is available.
|
|
141
|
-
if (orchestratorMode && runSubagent) {
|
|
142
|
-
prompt = `${prompt}\n\n${getSubagentDelegationAddendum({ orchestratorMode })}`;
|
|
143
|
-
}
|
|
144
|
-
if (planMode) {
|
|
234
|
+
let prompt = resolvePrompt(path.join(BASE_PROMPT_PATH, promptSpec.basePromptFile));
|
|
235
|
+
for (const fragmentFile of promptSpec.fragmentFiles) {
|
|
145
236
|
try {
|
|
146
|
-
|
|
147
|
-
prompt = `${prompt}\n\n${resolvePrompt(planModeInfoPath)}`;
|
|
237
|
+
prompt = `${prompt}\n\n${resolvePrompt(path.join(BASE_PROMPT_PATH, fragmentFile))}`;
|
|
148
238
|
}
|
|
149
239
|
catch (e) {
|
|
150
|
-
loggingService.error(`Failed to load
|
|
240
|
+
loggingService.error(`Failed to load prompt fragment ${fragmentFile}: ${e}`);
|
|
151
241
|
}
|
|
152
242
|
}
|
|
153
|
-
const
|
|
154
|
-
|
|
155
|
-
prompt += `\n\n${getReasoningEfficiencyAddendum()}`;
|
|
243
|
+
for (const inlineSection of promptSpec.inlineSections) {
|
|
244
|
+
prompt = `${prompt}\n\n${inlineSection}`;
|
|
156
245
|
}
|
|
157
|
-
const envInfo = getEnvInfo(settingsService, executionContext, liteMode || orchestratorMode);
|
|
158
246
|
const cwd = executionContext?.getCwd() || process.cwd();
|
|
247
|
+
const isLiteEnv = liteMode && !orchestratorMode && !planMode;
|
|
248
|
+
const envInfo = getEnvInfo(settingsService, executionContext, isLiteEnv);
|
|
249
|
+
const skipAgentsMd = isLiteEnv || (executionContext?.isRemote() ?? false);
|
|
250
|
+
const agentsInstructions = skipAgentsMd ? '' : getAgentsInstructions(cwd);
|
|
159
251
|
if (orchestratorMode) {
|
|
160
252
|
if (!runSubagent) {
|
|
161
253
|
throw new Error('orchestratorMode requires runSubagent: cannot build orchestrator agent without a runSubagent implementation.');
|
|
@@ -169,7 +261,7 @@ export const getAgentDefinition = (deps, model) => {
|
|
|
169
261
|
registerToolFormatters(tools);
|
|
170
262
|
return {
|
|
171
263
|
name: 'Agent',
|
|
172
|
-
instructions: `${prompt}\n\nEnvironment: ${envInfo}`,
|
|
264
|
+
instructions: `${prompt}\n\nEnvironment: ${envInfo}${agentsInstructions}`,
|
|
173
265
|
tools,
|
|
174
266
|
model: resolvedModel,
|
|
175
267
|
};
|
|
@@ -231,9 +323,6 @@ export const getAgentDefinition = (deps, model) => {
|
|
|
231
323
|
}
|
|
232
324
|
}
|
|
233
325
|
registerToolFormatters(tools);
|
|
234
|
-
// In lite mode, skip AGENTS.md loading.
|
|
235
|
-
// In remote mode, we also skip because we can't synchronously read from remote disk.
|
|
236
|
-
const agentsInstructions = liteMode || executionContext?.isRemote() ? '' : getAgentsInstructions(cwd);
|
|
237
326
|
return {
|
|
238
327
|
name: 'Terminal Assistant',
|
|
239
328
|
instructions: `${prompt}\n\nEnvironment: ${envInfo}${agentsInstructions}`,
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../source/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../source/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,qCAAqC,EAAE,mCAAmC,EAAE,MAAM,yBAAyB,CAAC;AACrH,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAe,MAAM,QAAQ,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAE/E,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAUrE,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAEtH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,cAAc;IACd,eAAe;IACf,WAAW;IACX,WAAW;IACX,YAAY;IACZ,cAAc;CACf,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;AAEnG,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,EAAE,GAAI,YAAwC,EAAE,CAAC;IAEvD,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAEtB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;IACjE,CAAC;IAED,OAAO;QACL,OAAO,CAAC,YAAoB,EAAE,QAAgB;YAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE1D,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAW,EAAE,UAA8B,EAAE;IACnF,MAAM,EAAE,QAAQ,GAAG,CAAC,EAAE,gBAAgB,GAAG,EAAE,EAAE,eAAe,GAAG,GAAG,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEpG,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,SAAS,IAAI,CAAC,GAAW,EAAE,KAAa,EAAE,MAAc;QACtD,IAAI,KAAK,GAAG,QAAQ,IAAI,YAAY,IAAI,eAAe;YAAE,OAAO,EAAE,CAAC;QAEnE,IAAI,OAAoB,CAAC;QAEzB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,MAAM,uBAAuB,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO;aACrB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAChB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAEhF,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEL,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAClD,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAA2D,EAAE,CAAC;QAE3E,2EAA2E;QAC3E,sEAAsE;QACtE,yCAAyC;QACzC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;YAClD,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;gBACpC,cAAc,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBACvC,MAAM;YACR,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,YAAY,EAAE,CAAC;YAEf,MAAM,MAAM,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACzC,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAExE,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC,CAAC;YAElD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;oBACtB,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,MAAM,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;wBAChC,KAAK,EAAE,KAAK,GAAG,CAAC;wBAChB,MAAM,EAAE,WAAW;qBACpB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,uEAAuE;QACvE,sEAAsE;QACtE,0CAA0C;QAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,YAAY,IAAI,eAAe;gBAAE,MAAM;YAC3C,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG;YACZ,oBAAoB;YACpB,GAAG;YACH,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACnB,EAAE;YACF,0BAA0B;YAC1B,WAAW,GAAG,EAAE;YAChB,gBAAgB,QAAQ,EAAE;YAC1B,gCAAgC,gBAAgB,EAAE;YAClD,wBAAwB,eAAe,EAAE;YACzC,uCAAuC;SACxC,CAAC;QAEF,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,4BAA4B,cAAc,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,uCAAuC,GAAG,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC;IACrE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,eAAiC,EACjC,gBAAmC,EACnC,IAAI,GAAG,KAAK;IAEZ,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAS,eAAe,CAAC,IAAI,SAAS,CAAC;IAC5E,MAAM,GAAG,GAAG,gBAAgB,EAAE,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,UAAU,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAEjC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAElD,IAAI,IAAI,EAAE,CAAC;QACT,iCAAiC;QACjC,OAAO,OAAO,MAAM,IAAI,SAAS,KAAK,UAAU,aAAa,SAAS,UAAU,GAAG,WAAW,GAAG,EAAE,CAAC;IACtG,CAAC;IAED,sHAAsH;IACtH,mFAAmF;IACnF,uFAAuF;IACvF,mCAAmC;IACnC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC;QAClC,QAAQ,GAAG,gBAAgB,uBAAuB,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,OAAO,MAAM,IAAI,SAAS,KAAK,UAAU,aAAa,SAAS,UAAU,GAAG,GAAG,QAAQ,WAAW,GAAG,EAAE,CAAC;AACjH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,OAAO,4BAA4B,QAAQ,EAAE,CAAC;IAChD,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,iCAAiC,CAAC,CAAC,OAAO,EAAE,CAAC;IACtD,CAAC;AACH,CAAC;AASD,SAAS,aAAa,CAAC,UAAkB;IACvC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QACvE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAChC,MAAM,CAAC,IAAI,CAAC,OAAO,EACnB,mBAAmB,EACnB,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,kBAAkB,CACrF,CAAC;QACF,IAAI,gBAAgB,KAAK,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,UAAU,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,IAMC,EACD,KAAc,EACG,EAAE;IACnB,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAC3F,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAS,aAAa,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,YAAY,CAAC;IAEpD,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAU,cAAc,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAU,gBAAgB,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAU,cAAc,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,CAAU,sBAAsB,CAAC,CAAC;IAC9E,MAAM,qBAAqB,GAAG,eAAe,CAAC,GAAG,CAAwB,oBAAoB,CAAC,IAAI,MAAM,CAAC;IACzG,MAAM,cAAc,GAClB,qBAAqB,KAAK,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,qBAAqB,KAAK,IAAI,CAAC;IACnH,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,kBAAkB,GAAG,CAAC,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,CAAC,QAAQ,IAAI,6BAA6B,CAAC,aAAa,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,eAAe,CAAC;QACjC,KAAK,EAAE,aAAa;QACpB,QAAQ;QACR,gBAAgB;QAChB,UAAU;QACV,QAAQ;QACR,cAAc;QACd,kBAAkB;QAClB,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC;QACxC,gBAAgB;KACjB,CAAC,CAAC;IACH,IAAI,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;IAEnF,KAAK,MAAM,YAAY,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACtF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,cAAc,CAAC,KAAK,CAAC,kCAAkC,YAAY,KAAK,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,KAAK,MAAM,aAAa,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,OAAO,aAAa,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,GAAG,GAAG,gBAAgB,EAAE,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACxD,MAAM,SAAS,GAAG,QAAQ,IAAI,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC;IAC7D,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,SAAS,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC,CAAC;IAC1E,MAAM,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAE1E,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,8GAA8G,CAC/G,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAqB;YAC9B,+BAA+B,CAAC,WAAW,CAAC;YAC5C,yBAAyB,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;YACxG,4BAA4B,CAAC,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;YACvG,wBAAwB,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;SACvE,CAAC;QACF,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAE9B,OAAO;YACL,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,GAAG,MAAM,oBAAoB,OAAO,GAAG,kBAAkB,EAAE;YACzE,KAAK;YACL,KAAK,EAAE,aAAa;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAqB;QAC9B,yBAAyB,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;QAChF,6BAA6B,CAAC;YAC5B,eAAe;YACf,cAAc;SACf,CAAC;QACF,4BAA4B,CAAC;YAC3B,eAAe;YACf,cAAc;SACf,CAAC;KACH,CAAC;IAEF,IAAI,kBAAkB,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CACR,mCAAmC,CAAC,EAAE,gBAAgB,EAAE,CAAC,EACzD,qCAAqC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,6DAA6D;QAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CACR,wBAAwB,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAC9C,6BAA6B,CAAC;gBAC5B,gBAAgB;gBAChB,qBAAqB,EAAE,IAAI;aAC5B,CAAC,CACH,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CACR,4BAA4B,CAAC;YAC3B,gBAAgB;YAChB,qBAAqB,EAAE,IAAI;SAC5B,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,sCAAsC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;QACpG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,6BAA6B,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;YAClH,CAAC;YACD,KAAK,CAAC,IAAI,CACR,4BAA4B,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAClD,8BAA8B,CAAC;gBAC7B,eAAe;gBACf,cAAc;gBACd,gBAAgB;aACjB,CAAC,EACF,iCAAiC,CAAC;gBAChC,eAAe;gBACf,cAAc;gBACd,gBAAgB;aACjB,CAAC,CACH,CAAC;QACJ,CAAC;QAED,mDAAmD;QACnD,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAS,mBAAmB,CAAC,CAAC;QACrE,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,2CAA2C;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,+BAA+B,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE9B,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,YAAY,EAAE,GAAG,MAAM,oBAAoB,OAAO,GAAG,kBAAkB,EAAE;QACzE,KAAK;QACL,KAAK,EAAE,aAAa;KACrB,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/agent.test.js
CHANGED
|
@@ -10,9 +10,10 @@ const mockLogger = {
|
|
|
10
10
|
clearCorrelationId: () => { },
|
|
11
11
|
getCorrelationId: () => undefined,
|
|
12
12
|
};
|
|
13
|
+
const WORKTREE_HYGIENE_FRAGMENT_MARKER = 'Before making any code changes, inspect the repo worktree.';
|
|
13
14
|
test('getAgentDefinition includes grep and find_files when searchViaShell is false', (t) => {
|
|
14
15
|
const settingsService = createMockSettingsService({
|
|
15
|
-
'app.searchViaShell':
|
|
16
|
+
'app.searchViaShell': 'off',
|
|
16
17
|
'agent.model': 'gpt-4o',
|
|
17
18
|
});
|
|
18
19
|
const definition = getAgentDefinition({
|
|
@@ -126,7 +127,7 @@ test('getAgentDefinition throws if orchestratorMode is true and runSubagent is m
|
|
|
126
127
|
});
|
|
127
128
|
test('getAgentDefinition excludes grep and find_files when searchViaShell is true', (t) => {
|
|
128
129
|
const settingsService = createMockSettingsService({
|
|
129
|
-
'app.searchViaShell':
|
|
130
|
+
'app.searchViaShell': 'on',
|
|
130
131
|
'agent.model': 'gpt-4o',
|
|
131
132
|
});
|
|
132
133
|
const definition = getAgentDefinition({
|
|
@@ -141,7 +142,7 @@ test('getAgentDefinition excludes grep and find_files when searchViaShell is tru
|
|
|
141
142
|
});
|
|
142
143
|
test('getAgentDefinition preserves read_file and editing tools when searchViaShell is true', (t) => {
|
|
143
144
|
const settingsService = createMockSettingsService({
|
|
144
|
-
'app.searchViaShell':
|
|
145
|
+
'app.searchViaShell': 'on',
|
|
145
146
|
'agent.model': 'gpt-4o',
|
|
146
147
|
});
|
|
147
148
|
const definition = getAgentDefinition({
|
|
@@ -158,7 +159,7 @@ test('getAgentDefinition preserves read_file and editing tools when searchViaShe
|
|
|
158
159
|
});
|
|
159
160
|
test('getAgentDefinition excludes grep and find_files in lite mode when searchViaShell is true', (t) => {
|
|
160
161
|
const settingsService = createMockSettingsService({
|
|
161
|
-
'app.searchViaShell':
|
|
162
|
+
'app.searchViaShell': 'on',
|
|
162
163
|
'app.liteMode': true,
|
|
163
164
|
'agent.model': 'gpt-4o',
|
|
164
165
|
});
|
|
@@ -176,7 +177,7 @@ test('getAgentDefinition excludes grep and find_files in lite mode when searchVi
|
|
|
176
177
|
});
|
|
177
178
|
test('getAgentDefinition for gpt-5 omits grep and find_files regardless of searchViaShell', (t) => {
|
|
178
179
|
const settingsService = createMockSettingsService({
|
|
179
|
-
'app.searchViaShell':
|
|
180
|
+
'app.searchViaShell': 'off',
|
|
180
181
|
'agent.model': 'gpt-5',
|
|
181
182
|
});
|
|
182
183
|
const definition = getAgentDefinition({
|
|
@@ -190,9 +191,91 @@ test('getAgentDefinition for gpt-5 omits grep and find_files regardless of searc
|
|
|
190
191
|
t.true(toolNames.includes('code_context_search'));
|
|
191
192
|
t.true(toolNames.includes('apply_patch'));
|
|
192
193
|
});
|
|
194
|
+
test('getAgentDefinition defaults searchViaShell to true for gpt-5 models when not explicitly configured', (t) => {
|
|
195
|
+
const settingsService = createMockSettingsService({
|
|
196
|
+
'agent.model': 'gpt-5',
|
|
197
|
+
});
|
|
198
|
+
const definition = getAgentDefinition({
|
|
199
|
+
settingsService,
|
|
200
|
+
loggingService: mockLogger,
|
|
201
|
+
});
|
|
202
|
+
t.true(definition.instructions.includes('### Searching via the shell'));
|
|
203
|
+
});
|
|
204
|
+
test('getAgentDefinition respects explicitly disabled searchViaShell for gpt-5 models', (t) => {
|
|
205
|
+
const settingsService = createMockSettingsService({
|
|
206
|
+
'app.searchViaShell': 'off',
|
|
207
|
+
'agent.model': 'gpt-5',
|
|
208
|
+
});
|
|
209
|
+
const definition = getAgentDefinition({
|
|
210
|
+
settingsService,
|
|
211
|
+
loggingService: mockLogger,
|
|
212
|
+
});
|
|
213
|
+
t.false(definition.instructions.includes('### Searching via the shell'));
|
|
214
|
+
});
|
|
215
|
+
test('getAgentDefinition does not default searchViaShell to true for non-gpt-5 models', (t) => {
|
|
216
|
+
const settingsService = createMockSettingsService({
|
|
217
|
+
'agent.model': 'gpt-4o',
|
|
218
|
+
});
|
|
219
|
+
const definition = getAgentDefinition({
|
|
220
|
+
settingsService,
|
|
221
|
+
loggingService: mockLogger,
|
|
222
|
+
});
|
|
223
|
+
t.false(definition.instructions.includes('### Searching via the shell'));
|
|
224
|
+
t.true(definition.instructions.includes('`find_files`'));
|
|
225
|
+
t.true(definition.instructions.includes('`grep`'));
|
|
226
|
+
});
|
|
227
|
+
test('getAgentDefinition forces searchViaShell on for non-gpt-5 models when explicitly set to on', (t) => {
|
|
228
|
+
const settingsService = createMockSettingsService({
|
|
229
|
+
'app.searchViaShell': 'on',
|
|
230
|
+
'agent.model': 'gpt-4o',
|
|
231
|
+
});
|
|
232
|
+
const definition = getAgentDefinition({
|
|
233
|
+
settingsService,
|
|
234
|
+
loggingService: mockLogger,
|
|
235
|
+
});
|
|
236
|
+
t.true(definition.instructions.includes('### Searching via the shell'));
|
|
237
|
+
t.false(definition.instructions.includes('`find_files`'));
|
|
238
|
+
t.false(definition.instructions.includes('`grep`'));
|
|
239
|
+
});
|
|
240
|
+
// test('getAgentDefinition includes GPT version-specific prompt fragments', (t) => {
|
|
241
|
+
// const gpt55 = getAgentDefinition({
|
|
242
|
+
// settingsService: createMockSettingsService({
|
|
243
|
+
// 'agent.model': 'gpt-5.5-2026-04-23',
|
|
244
|
+
// }),
|
|
245
|
+
// loggingService: mockLogger,
|
|
246
|
+
// });
|
|
247
|
+
// t.true(gpt55.instructions.includes('## GPT-5.5 Guidance'));
|
|
248
|
+
// t.true(gpt55.instructions.includes('outcome-first behavior'));
|
|
249
|
+
//
|
|
250
|
+
// const gpt54 = getAgentDefinition({
|
|
251
|
+
// settingsService: createMockSettingsService({
|
|
252
|
+
// 'agent.model': 'gpt-5.4',
|
|
253
|
+
// }),
|
|
254
|
+
// loggingService: mockLogger,
|
|
255
|
+
// });
|
|
256
|
+
// t.true(gpt54.instructions.includes('## GPT-5.4 Guidance'));
|
|
257
|
+
// t.false(gpt54.instructions.includes('## GPT-5.4 Small-Model Guidance'));
|
|
258
|
+
//
|
|
259
|
+
// const gpt54Mini = getAgentDefinition({
|
|
260
|
+
// settingsService: createMockSettingsService({
|
|
261
|
+
// 'agent.model': 'gpt-5.4-mini',
|
|
262
|
+
// }),
|
|
263
|
+
// loggingService: mockLogger,
|
|
264
|
+
// });
|
|
265
|
+
// t.true(gpt54Mini.instructions.includes('## GPT-5.4 Guidance'));
|
|
266
|
+
// t.true(gpt54Mini.instructions.includes('## GPT-5.4 Small-Model Guidance'));
|
|
267
|
+
//
|
|
268
|
+
// const gpt53Codex = getAgentDefinition({
|
|
269
|
+
// settingsService: createMockSettingsService({
|
|
270
|
+
// 'agent.model': 'gpt-5.3-codex',
|
|
271
|
+
// }),
|
|
272
|
+
// loggingService: mockLogger,
|
|
273
|
+
// });
|
|
274
|
+
// t.true(gpt53Codex.instructions.includes('## GPT-5.3 Codex Guidance'));
|
|
275
|
+
// });
|
|
193
276
|
test('getAgentDefinition appends search-via-shell addendum when enabled', (t) => {
|
|
194
277
|
const settingsService = createMockSettingsService({
|
|
195
|
-
'app.searchViaShell':
|
|
278
|
+
'app.searchViaShell': 'on',
|
|
196
279
|
'agent.model': 'gpt-4o',
|
|
197
280
|
});
|
|
198
281
|
const definition = getAgentDefinition({
|
|
@@ -203,7 +286,7 @@ test('getAgentDefinition appends search-via-shell addendum when enabled', (t) =>
|
|
|
203
286
|
});
|
|
204
287
|
test('getAgentDefinition omits dedicated search tool references from prompt when searchViaShell is true', (t) => {
|
|
205
288
|
const settingsService = createMockSettingsService({
|
|
206
|
-
'app.searchViaShell':
|
|
289
|
+
'app.searchViaShell': 'on',
|
|
207
290
|
'agent.model': 'gpt-4o',
|
|
208
291
|
});
|
|
209
292
|
const definition = getAgentDefinition({
|
|
@@ -215,7 +298,7 @@ test('getAgentDefinition omits dedicated search tool references from prompt when
|
|
|
215
298
|
});
|
|
216
299
|
test('getAgentDefinition dynamically includes dedicated search tool references when searchViaShell is false', (t) => {
|
|
217
300
|
const settingsService = createMockSettingsService({
|
|
218
|
-
'app.searchViaShell':
|
|
301
|
+
'app.searchViaShell': 'off',
|
|
219
302
|
'agent.model': 'gpt-4o',
|
|
220
303
|
});
|
|
221
304
|
const definition = getAgentDefinition({
|
|
@@ -230,7 +313,7 @@ test('getAgentDefinition dynamically includes dedicated search tool references w
|
|
|
230
313
|
});
|
|
231
314
|
test('getAgentDefinition dynamically includes code-context tool references when available', (t) => {
|
|
232
315
|
const settingsService = createMockSettingsService({
|
|
233
|
-
'app.searchViaShell':
|
|
316
|
+
'app.searchViaShell': 'on',
|
|
234
317
|
'agent.model': 'gpt-4o',
|
|
235
318
|
});
|
|
236
319
|
const definition = getAgentDefinition({
|
|
@@ -243,7 +326,7 @@ test('getAgentDefinition dynamically includes code-context tool references when
|
|
|
243
326
|
});
|
|
244
327
|
test('getAgentDefinition dynamically includes code-context tool references for gpt-5 models', (t) => {
|
|
245
328
|
const settingsService = createMockSettingsService({
|
|
246
|
-
'app.searchViaShell':
|
|
329
|
+
'app.searchViaShell': 'off',
|
|
247
330
|
'agent.model': 'gpt-5',
|
|
248
331
|
});
|
|
249
332
|
const definition = getAgentDefinition({
|
|
@@ -255,7 +338,7 @@ test('getAgentDefinition dynamically includes code-context tool references for g
|
|
|
255
338
|
});
|
|
256
339
|
test('getAgentDefinition uses fallback search prompt for remote execution', (t) => {
|
|
257
340
|
const settingsService = createMockSettingsService({
|
|
258
|
-
'app.searchViaShell':
|
|
341
|
+
'app.searchViaShell': 'on',
|
|
259
342
|
'agent.model': 'gpt-4o',
|
|
260
343
|
});
|
|
261
344
|
const mockExecutionContext = {
|
|
@@ -276,7 +359,7 @@ test('getAgentDefinition uses fallback search prompt for remote execution', (t)
|
|
|
276
359
|
});
|
|
277
360
|
test('getAgentDefinition excludes code-context tools in remote (SSH) execution', (t) => {
|
|
278
361
|
const settingsService = createMockSettingsService({
|
|
279
|
-
'app.searchViaShell':
|
|
362
|
+
'app.searchViaShell': 'off',
|
|
280
363
|
'agent.model': 'gpt-4o',
|
|
281
364
|
});
|
|
282
365
|
const mockExecutionContext = {
|
|
@@ -294,7 +377,7 @@ test('getAgentDefinition excludes code-context tools in remote (SSH) execution',
|
|
|
294
377
|
t.false(toolNames.includes('code_context_search'));
|
|
295
378
|
t.false(definition.instructions.includes('read_code_outline'));
|
|
296
379
|
});
|
|
297
|
-
test('getAgentDefinition
|
|
380
|
+
test('getAgentDefinition does not filter tools based on planMode setting', (t) => {
|
|
298
381
|
const settingsService = createMockSettingsService({
|
|
299
382
|
'agent.model': 'gpt-4o',
|
|
300
383
|
'app.planMode': true,
|
|
@@ -303,7 +386,6 @@ test('getAgentDefinition conditionalizes plan mode instructions and does not fil
|
|
|
303
386
|
settingsService,
|
|
304
387
|
loggingService: mockLogger,
|
|
305
388
|
});
|
|
306
|
-
t.true(definitionWithPlan.instructions.includes('restricted from making'));
|
|
307
389
|
const toolsWithPlan = definitionWithPlan.tools.map((tool) => tool.name);
|
|
308
390
|
t.true(toolsWithPlan.includes('create_file'));
|
|
309
391
|
t.true(toolsWithPlan.includes('search_replace'));
|
|
@@ -315,9 +397,77 @@ test('getAgentDefinition conditionalizes plan mode instructions and does not fil
|
|
|
315
397
|
settingsService: settingsServiceWithoutPlan,
|
|
316
398
|
loggingService: mockLogger,
|
|
317
399
|
});
|
|
318
|
-
t.false(definitionWithoutPlan.instructions.includes('restricted from making'));
|
|
319
400
|
const toolsWithoutPlan = definitionWithoutPlan.tools.map((tool) => tool.name);
|
|
320
401
|
t.true(toolsWithoutPlan.includes('create_file'));
|
|
321
402
|
t.true(toolsWithoutPlan.includes('search_replace'));
|
|
322
403
|
});
|
|
404
|
+
test('getAgentDefinition includes AGENTS.md and full envInfo for orchestrator mode and plan mode', (t) => {
|
|
405
|
+
// Test Orchestrator Mode
|
|
406
|
+
const settingsOrchestrator = createMockSettingsService({
|
|
407
|
+
'agent.model': 'gpt-4o',
|
|
408
|
+
'app.orchestratorMode': true,
|
|
409
|
+
});
|
|
410
|
+
const definitionOrchestrator = getAgentDefinition({
|
|
411
|
+
settingsService: settingsOrchestrator,
|
|
412
|
+
loggingService: mockLogger,
|
|
413
|
+
runSubagent: async () => ({}),
|
|
414
|
+
});
|
|
415
|
+
t.true(definitionOrchestrator.instructions.includes('AGENTS.md contents:'));
|
|
416
|
+
t.true(definitionOrchestrator.instructions.includes('top-level:'));
|
|
417
|
+
// Test Plan Mode
|
|
418
|
+
const settingsPlan = createMockSettingsService({
|
|
419
|
+
'agent.model': 'gpt-4o',
|
|
420
|
+
'app.planMode': true,
|
|
421
|
+
});
|
|
422
|
+
const definitionPlan = getAgentDefinition({
|
|
423
|
+
settingsService: settingsPlan,
|
|
424
|
+
loggingService: mockLogger,
|
|
425
|
+
});
|
|
426
|
+
t.true(definitionPlan.instructions.includes('AGENTS.md contents:'));
|
|
427
|
+
t.true(definitionPlan.instructions.includes('top-level:'));
|
|
428
|
+
});
|
|
429
|
+
test('getAgentDefinition includes worktree hygiene fragment in standard, mentor, plan, and orchestrator modes', (t) => {
|
|
430
|
+
const standard = getAgentDefinition({
|
|
431
|
+
settingsService: createMockSettingsService({
|
|
432
|
+
'agent.model': 'gpt-4o',
|
|
433
|
+
}),
|
|
434
|
+
loggingService: mockLogger,
|
|
435
|
+
});
|
|
436
|
+
t.true(standard.instructions.includes(WORKTREE_HYGIENE_FRAGMENT_MARKER));
|
|
437
|
+
const mentor = getAgentDefinition({
|
|
438
|
+
settingsService: createMockSettingsService({
|
|
439
|
+
'agent.model': 'gpt-4o',
|
|
440
|
+
'app.mentorMode': true,
|
|
441
|
+
}),
|
|
442
|
+
loggingService: mockLogger,
|
|
443
|
+
});
|
|
444
|
+
t.true(mentor.instructions.includes(WORKTREE_HYGIENE_FRAGMENT_MARKER));
|
|
445
|
+
const plan = getAgentDefinition({
|
|
446
|
+
settingsService: createMockSettingsService({
|
|
447
|
+
'agent.model': 'gpt-4o',
|
|
448
|
+
'app.planMode': true,
|
|
449
|
+
}),
|
|
450
|
+
loggingService: mockLogger,
|
|
451
|
+
});
|
|
452
|
+
t.true(plan.instructions.includes(WORKTREE_HYGIENE_FRAGMENT_MARKER));
|
|
453
|
+
const orchestrator = getAgentDefinition({
|
|
454
|
+
settingsService: createMockSettingsService({
|
|
455
|
+
'agent.model': 'gpt-4o',
|
|
456
|
+
'app.orchestratorMode': true,
|
|
457
|
+
}),
|
|
458
|
+
loggingService: mockLogger,
|
|
459
|
+
runSubagent: async () => ({}),
|
|
460
|
+
});
|
|
461
|
+
t.true(orchestrator.instructions.includes(WORKTREE_HYGIENE_FRAGMENT_MARKER));
|
|
462
|
+
});
|
|
463
|
+
test('getAgentDefinition omits worktree hygiene fragment in lite mode', (t) => {
|
|
464
|
+
const definition = getAgentDefinition({
|
|
465
|
+
settingsService: createMockSettingsService({
|
|
466
|
+
'agent.model': 'gpt-4o',
|
|
467
|
+
'app.liteMode': true,
|
|
468
|
+
}),
|
|
469
|
+
loggingService: mockLogger,
|
|
470
|
+
});
|
|
471
|
+
t.false(definition.instructions.includes(WORKTREE_HYGIENE_FRAGMENT_MARKER));
|
|
472
|
+
});
|
|
323
473
|
//# sourceMappingURL=agent.test.js.map
|