@qduc/term2 0.8.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +397 -0
- package/dist/agent.d.ts +1 -9
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +15 -132
- package/dist/agent.js.map +1 -1
- package/dist/agent.lite-mode.test.d.ts +2 -0
- package/dist/agent.lite-mode.test.d.ts.map +1 -0
- package/dist/agent.lite-mode.test.js +39 -0
- package/dist/agent.lite-mode.test.js.map +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +28 -16
- package/dist/app.js.map +1 -1
- package/dist/app.large-uncached-warning.test.js +15 -0
- package/dist/app.large-uncached-warning.test.js.map +1 -1
- package/dist/commands/effort-command.d.ts +2 -2
- package/dist/commands/effort-command.d.ts.map +1 -1
- package/dist/commands/effort-command.js +3 -3
- package/dist/commands/effort-command.js.map +1 -1
- package/dist/commands/guarded-settings-command.d.ts +2 -2
- package/dist/commands/guarded-settings-command.d.ts.map +1 -1
- package/dist/commands/guarded-settings-command.js +2 -2
- package/dist/commands/guarded-settings-command.js.map +1 -1
- package/dist/commands/model-command.d.ts +2 -2
- package/dist/commands/model-command.d.ts.map +1 -1
- package/dist/commands/model-command.js +2 -2
- package/dist/commands/model-command.js.map +1 -1
- package/dist/commands/retry-command.d.ts +2 -1
- package/dist/commands/retry-command.d.ts.map +1 -1
- package/dist/commands/retry-command.js +12 -3
- package/dist/commands/retry-command.js.map +1 -1
- package/dist/commands/skills-command.d.ts +1 -1
- package/dist/commands/skills-command.d.ts.map +1 -1
- package/dist/commands/skills-command.js +1 -1
- package/dist/commands/skills-command.js.map +1 -1
- package/dist/commands/undo-command.d.ts +2 -2
- package/dist/commands/undo-command.d.ts.map +1 -1
- package/dist/commands/undo-command.js +2 -2
- package/dist/commands/undo-command.js.map +1 -1
- package/dist/components/ApprovalPrompt.test.d.ts +2 -0
- package/dist/components/ApprovalPrompt.test.d.ts.map +1 -0
- package/dist/components/ApprovalPrompt.test.js +23 -0
- package/dist/components/ApprovalPrompt.test.js.map +1 -0
- package/dist/components/Common/MenuContainer.d.ts.map +1 -1
- package/dist/components/Common/MenuContainer.js.map +1 -1
- package/dist/components/Common/MenuContainer.test.d.ts.map +1 -1
- package/dist/components/Common/MenuContainer.test.js +53 -24
- package/dist/components/Common/MenuContainer.test.js.map +1 -1
- package/dist/components/Common/ScrollableTabBar.d.ts.map +1 -1
- package/dist/components/Common/ScrollableTabBar.js.map +1 -1
- package/dist/components/Common/compute-visible-tabs.d.ts.map +1 -1
- package/dist/components/Common/compute-visible-tabs.js.map +1 -1
- package/dist/components/Common/compute-visible-tabs.test.d.ts.map +1 -1
- package/dist/components/Common/compute-visible-tabs.test.js +28 -28
- package/dist/components/Common/compute-visible-tabs.test.js.map +1 -1
- package/dist/components/Input/PopupManager.d.ts +1 -9
- package/dist/components/Input/PopupManager.d.ts.map +1 -1
- package/dist/components/Input/PopupManager.js +8 -10
- package/dist/components/Input/PopupManager.js.map +1 -1
- package/dist/components/Input/determine-active-menu.d.ts +0 -3
- package/dist/components/Input/determine-active-menu.d.ts.map +1 -1
- package/dist/components/Input/determine-active-menu.js +2 -10
- package/dist/components/Input/determine-active-menu.js.map +1 -1
- package/dist/components/Input/input-width.d.ts.map +1 -1
- package/dist/components/Input/input-width.js.map +1 -1
- package/dist/components/Input/insertions.d.ts +0 -8
- package/dist/components/Input/insertions.d.ts.map +1 -1
- package/dist/components/Input/insertions.js +0 -12
- package/dist/components/Input/insertions.js.map +1 -1
- package/dist/components/Input/popup-key-navigation.d.ts.map +1 -1
- package/dist/components/Input/popup-key-navigation.js.map +1 -1
- package/dist/components/Input/popup-key-navigation.test.d.ts.map +1 -1
- package/dist/components/Input/popup-key-navigation.test.js +21 -21
- package/dist/components/Input/popup-key-navigation.test.js.map +1 -1
- package/dist/components/Input/popup-props.d.ts +1 -3
- package/dist/components/Input/popup-props.d.ts.map +1 -1
- package/dist/components/Input/popup-props.js +1 -8
- package/dist/components/Input/popup-props.js.map +1 -1
- package/dist/components/Input/popup-props.test.d.ts.map +1 -1
- package/dist/components/Input/popup-props.test.js +3 -10
- package/dist/components/Input/popup-props.test.js.map +1 -1
- package/dist/components/Input/triggers.d.ts +0 -1
- package/dist/components/Input/triggers.d.ts.map +1 -1
- package/dist/components/Input/triggers.js +0 -1
- package/dist/components/Input/triggers.js.map +1 -1
- package/dist/components/InputBox.d.ts.map +1 -1
- package/dist/components/InputBox.js +41 -12
- package/dist/components/InputBox.js.map +1 -1
- package/dist/components/LiveResponse.test.d.ts +2 -0
- package/dist/components/LiveResponse.test.d.ts.map +1 -0
- package/dist/components/LiveResponse.test.js +13 -0
- package/dist/components/LiveResponse.test.js.map +1 -0
- package/dist/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/components/MarkdownRenderer.js +3 -2
- package/dist/components/MarkdownRenderer.js.map +1 -1
- package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +2 -0
- package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +1 -0
- package/dist/components/ModelSelectionMenu.error-tabs.test.js +18 -0
- package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +1 -0
- package/dist/components/TextInput.d.ts +42 -0
- package/dist/components/TextInput.d.ts.map +1 -0
- package/dist/components/TextInput.js +398 -0
- package/dist/components/TextInput.js.map +1 -0
- package/dist/components/TextInput.test.d.ts +2 -0
- package/dist/components/TextInput.test.d.ts.map +1 -0
- package/dist/components/TextInput.test.js +75 -0
- package/dist/components/TextInput.test.js.map +1 -0
- package/dist/components/__test_act.test.d.ts +2 -0
- package/dist/components/__test_act.test.d.ts.map +1 -0
- package/dist/components/__test_act.test.js +22 -0
- package/dist/components/__test_act.test.js.map +1 -0
- package/dist/components/__test_act_test.d.ts +2 -0
- package/dist/components/__test_act_test.d.ts.map +1 -0
- package/dist/components/__test_act_test.js +22 -0
- package/dist/components/__test_act_test.js.map +1 -0
- package/dist/components/act-test.test.d.ts +2 -0
- package/dist/components/act-test.test.d.ts.map +1 -0
- package/dist/components/act-test.test.js +22 -0
- package/dist/components/act-test.test.js.map +1 -0
- package/dist/components/common/MenuContainer.d.ts +19 -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/MenuContainer.test.d.ts +2 -0
- package/dist/components/common/MenuContainer.test.d.ts.map +1 -0
- package/dist/components/common/MenuContainer.test.js +37 -0
- package/dist/components/common/MenuContainer.test.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/input/PopupManager.d.ts +88 -0
- package/dist/components/input/PopupManager.d.ts.map +1 -0
- package/dist/components/input/PopupManager.js +21 -0
- package/dist/components/input/PopupManager.js.map +1 -0
- package/dist/components/input/determine-active-menu.d.ts +27 -0
- package/dist/components/input/determine-active-menu.d.ts.map +1 -0
- package/dist/components/input/determine-active-menu.js +81 -0
- package/dist/components/input/determine-active-menu.js.map +1 -0
- package/dist/components/input/input-width.d.ts +8 -0
- package/dist/components/input/input-width.d.ts.map +1 -0
- package/dist/components/input/input-width.js +24 -0
- package/dist/components/input/input-width.js.map +1 -0
- package/dist/components/input/insertions.d.ts +44 -0
- package/dist/components/input/insertions.d.ts.map +1 -0
- package/dist/components/input/insertions.js +67 -0
- package/dist/components/input/insertions.js.map +1 -0
- 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 +75 -0
- package/dist/components/input/popup-key-navigation.test.js.map +1 -0
- package/dist/components/input/popup-props.d.ts +24 -0
- package/dist/components/input/popup-props.d.ts.map +1 -0
- package/dist/components/input/popup-props.js +72 -0
- package/dist/components/input/popup-props.js.map +1 -0
- 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 +86 -0
- package/dist/components/input/popup-props.test.js.map +1 -0
- package/dist/components/input/triggers.d.ts +11 -0
- package/dist/components/input/triggers.d.ts.map +1 -0
- package/dist/components/input/triggers.js +27 -0
- package/dist/components/input/triggers.js.map +1 -0
- package/dist/components/layout/BottomArea.d.ts +2 -0
- package/dist/components/layout/BottomArea.d.ts.map +1 -1
- package/dist/components/layout/BottomArea.js +4 -2
- package/dist/components/layout/BottomArea.js.map +1 -1
- package/dist/components/layout/DiffView.d.ts.map +1 -1
- package/dist/components/layout/DiffView.js +33 -26
- package/dist/components/layout/DiffView.js.map +1 -1
- package/dist/components/layout/StatusBar.d.ts +2 -0
- package/dist/components/layout/StatusBar.d.ts.map +1 -1
- package/dist/components/layout/StatusBar.js +29 -8
- package/dist/components/layout/StatusBar.js.map +1 -1
- package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
- package/dist/components/menu/ModelSelectionMenu.js +1 -1
- package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
- package/dist/components/message/CommandMessage.d.ts +2 -1
- package/dist/components/message/CommandMessage.d.ts.map +1 -1
- package/dist/components/message/CommandMessage.js +203 -227
- package/dist/components/message/CommandMessage.js.map +1 -1
- package/dist/components/message/MessageList.d.ts +16 -0
- package/dist/components/message/MessageList.d.ts.map +1 -1
- package/dist/components/message/MessageList.js +45 -1
- package/dist/components/message/MessageList.js.map +1 -1
- package/dist/components/message/command-message-helpers.d.ts +1 -1
- package/dist/components/message/command-message-helpers.d.ts.map +1 -1
- package/dist/components/message/command-message-helpers.js +17 -17
- package/dist/components/message/command-message-helpers.js.map +1 -1
- package/dist/components/prompt/ApprovalPrompt.ask-user.test.js +35 -12
- package/dist/components/prompt/ApprovalPrompt.ask-user.test.js.map +1 -1
- package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
- package/dist/components/prompt/ApprovalPrompt.js +124 -14
- package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
- package/dist/context/InputContext.d.ts +4 -0
- package/dist/context/InputContext.d.ts.map +1 -1
- package/dist/context/InputContext.js +5 -1
- package/dist/context/InputContext.js.map +1 -1
- package/dist/contracts/conversation.d.ts +22 -0
- package/dist/contracts/conversation.d.ts.map +1 -1
- package/dist/contracts/conversation.js +11 -1
- package/dist/contracts/conversation.js.map +1 -1
- package/dist/debug_ask_mentor.d.ts +2 -0
- package/dist/debug_ask_mentor.d.ts.map +1 -0
- package/dist/debug_ask_mentor.js +73 -0
- package/dist/debug_ask_mentor.js.map +1 -0
- package/dist/hooks/conversation-ui-reducer.ask-user-bugfix.test.js +7 -7
- package/dist/hooks/conversation-ui-reducer.ask-user-bugfix.test.js.map +1 -1
- package/dist/hooks/use-app-commands.d.ts +3 -2
- package/dist/hooks/use-app-commands.d.ts.map +1 -1
- package/dist/hooks/use-app-commands.js +16 -8
- package/dist/hooks/use-app-commands.js.map +1 -1
- package/dist/hooks/use-conversation.d.ts +1 -0
- package/dist/hooks/use-conversation.d.ts.map +1 -1
- package/dist/hooks/use-conversation.js +92 -9
- package/dist/hooks/use-conversation.js.map +1 -1
- package/dist/hooks/use-conversation.max-turns-undo.test.d.ts +2 -0
- package/dist/hooks/use-conversation.max-turns-undo.test.d.ts.map +1 -0
- package/dist/hooks/use-conversation.max-turns-undo.test.js +118 -0
- package/dist/hooks/use-conversation.max-turns-undo.test.js.map +1 -0
- package/dist/hooks/use-handoff-flow.d.ts +3 -2
- package/dist/hooks/use-handoff-flow.d.ts.map +1 -1
- package/dist/hooks/use-handoff-flow.js +28 -18
- package/dist/hooks/use-handoff-flow.js.map +1 -1
- package/dist/hooks/use-mode-handlers.d.ts +2 -0
- package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
- package/dist/hooks/use-mode-handlers.js +2 -2
- package/dist/hooks/use-mode-handlers.js.map +1 -1
- package/dist/hooks/use-model-selection.d.ts +1 -0
- package/dist/hooks/use-model-selection.d.ts.map +1 -1
- package/dist/hooks/use-model-selection.js +19 -5
- package/dist/hooks/use-model-selection.js.map +1 -1
- package/dist/hooks/use-path-completion.d.ts.map +1 -1
- package/dist/hooks/use-path-completion.js +4 -2
- package/dist/hooks/use-path-completion.js.map +1 -1
- package/dist/hooks/use-path-completion.repro.test.d.ts +2 -0
- package/dist/hooks/use-path-completion.repro.test.d.ts.map +1 -0
- package/dist/hooks/use-path-completion.repro.test.js.map +1 -0
- package/dist/hooks/use-pending-turn-guards.d.ts +2 -2
- package/dist/hooks/use-pending-turn-guards.d.ts.map +1 -1
- package/dist/hooks/use-pending-turn-guards.js +8 -8
- package/dist/hooks/use-pending-turn-guards.js.map +1 -1
- package/dist/hooks/use-provider-selection.d.ts.map +1 -1
- package/dist/hooks/use-provider-selection.js +20 -18
- package/dist/hooks/use-provider-selection.js.map +1 -1
- package/dist/hooks/use-selection.d.ts.map +1 -1
- package/dist/hooks/use-selection.js +5 -1
- package/dist/hooks/use-selection.js.map +1 -1
- package/dist/hooks/use-setting.d.ts.map +1 -1
- package/dist/hooks/use-setting.js +3 -5
- package/dist/hooks/use-setting.js.map +1 -1
- package/dist/hooks/use-settings-completion.d.ts.map +1 -1
- package/dist/hooks/use-settings-completion.js +19 -7
- package/dist/hooks/use-settings-completion.js.map +1 -1
- package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
- package/dist/hooks/use-settings-value-completion.js +13 -2
- package/dist/hooks/use-settings-value-completion.js.map +1 -1
- package/dist/hooks/use-shell-mode.d.ts +2 -2
- package/dist/hooks/use-shell-mode.d.ts.map +1 -1
- package/dist/hooks/use-shell-mode.js +5 -3
- package/dist/hooks/use-shell-mode.js.map +1 -1
- package/dist/hooks/use-skill-selection.js +3 -3
- package/dist/hooks/use-skill-selection.js.map +1 -1
- package/dist/hooks/use-slash-commands.js +3 -3
- package/dist/hooks/use-slash-commands.js.map +1 -1
- package/dist/hooks/use-terminal-width.js +2 -2
- package/dist/hooks/use-terminal-width.js.map +1 -1
- package/dist/hooks/use-undo-selection.d.ts.map +1 -1
- package/dist/hooks/use-undo-selection.js +3 -1
- package/dist/hooks/use-undo-selection.js.map +1 -1
- package/dist/lib/agent-chat-service.js +2 -2
- package/dist/lib/agent-chat-service.js.map +1 -1
- package/dist/lib/agent-factory.test.js +21 -0
- package/dist/lib/agent-factory.test.js.map +1 -1
- package/dist/lib/agent-run-orchestrator.js +1 -1
- package/dist/lib/agent-run-orchestrator.js.map +1 -1
- package/dist/lib/editor-impl.test.js +73 -29
- package/dist/lib/editor-impl.test.js.map +1 -1
- package/dist/lib/openai-agent-client.public-methods.test.js +9 -1
- package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
- package/dist/lib/shell.d.ts +7 -0
- package/dist/lib/shell.d.ts.map +1 -0
- package/dist/lib/shell.js +56 -0
- package/dist/lib/shell.js.map +1 -0
- package/dist/lib/subagent-bridge.d.ts.map +1 -1
- package/dist/lib/subagent-bridge.js +15 -3
- package/dist/lib/subagent-bridge.js.map +1 -1
- package/dist/modes/companion/command-index.d.ts +26 -0
- package/dist/modes/companion/command-index.d.ts.map +1 -0
- package/dist/modes/companion/command-index.js +50 -0
- package/dist/modes/companion/command-index.js.map +1 -0
- package/dist/modes/companion/command-index.test.d.ts +2 -0
- package/dist/modes/companion/command-index.test.d.ts.map +1 -0
- package/dist/modes/companion/command-index.test.js +86 -0
- package/dist/modes/companion/command-index.test.js.map +1 -0
- package/dist/modes/companion/companion-app.d.ts +12 -0
- package/dist/modes/companion/companion-app.d.ts.map +1 -0
- package/dist/modes/companion/companion-app.js +297 -0
- package/dist/modes/companion/companion-app.js.map +1 -0
- package/dist/modes/companion/companion-session.d.ts +63 -0
- package/dist/modes/companion/companion-session.d.ts.map +1 -0
- package/dist/modes/companion/companion-session.js +146 -0
- package/dist/modes/companion/companion-session.js.map +1 -0
- package/dist/modes/companion/companion-session.test.d.ts +2 -0
- package/dist/modes/companion/companion-session.test.d.ts.map +1 -0
- package/dist/modes/companion/companion-session.test.js +28 -0
- package/dist/modes/companion/companion-session.test.js.map +1 -0
- package/dist/modes/companion/components/status-bar.d.ts +13 -0
- package/dist/modes/companion/components/status-bar.d.ts.map +1 -0
- package/dist/modes/companion/components/status-bar.js +26 -0
- package/dist/modes/companion/components/status-bar.js.map +1 -0
- package/dist/modes/companion/context-buffer.d.ts +65 -0
- package/dist/modes/companion/context-buffer.d.ts.map +1 -0
- package/dist/modes/companion/context-buffer.js +156 -0
- package/dist/modes/companion/context-buffer.js.map +1 -0
- package/dist/modes/companion/context-buffer.test.d.ts +2 -0
- package/dist/modes/companion/context-buffer.test.d.ts.map +1 -0
- package/dist/modes/companion/context-buffer.test.js +154 -0
- package/dist/modes/companion/context-buffer.test.js.map +1 -0
- package/dist/modes/companion/event-detector.d.ts +46 -0
- package/dist/modes/companion/event-detector.d.ts.map +1 -0
- package/dist/modes/companion/event-detector.js +169 -0
- package/dist/modes/companion/event-detector.js.map +1 -0
- package/dist/modes/companion/event-detector.test.d.ts +2 -0
- package/dist/modes/companion/event-detector.test.d.ts.map +1 -0
- package/dist/modes/companion/event-detector.test.js +121 -0
- package/dist/modes/companion/event-detector.test.js.map +1 -0
- package/dist/modes/companion/index.d.ts +33 -0
- package/dist/modes/companion/index.d.ts.map +1 -0
- package/dist/modes/companion/index.js +21 -0
- package/dist/modes/companion/index.js.map +1 -0
- package/dist/modes/companion/input-key-mapper.d.ts +3 -0
- package/dist/modes/companion/input-key-mapper.d.ts.map +1 -0
- package/dist/modes/companion/input-key-mapper.js +31 -0
- package/dist/modes/companion/input-key-mapper.js.map +1 -0
- package/dist/modes/companion/input-key-mapper.test.d.ts +2 -0
- package/dist/modes/companion/input-key-mapper.test.d.ts.map +1 -0
- package/dist/modes/companion/input-key-mapper.test.js +26 -0
- package/dist/modes/companion/input-key-mapper.test.js.map +1 -0
- package/dist/modes/companion/input-parser.d.ts +53 -0
- package/dist/modes/companion/input-parser.d.ts.map +1 -0
- package/dist/modes/companion/input-parser.js +114 -0
- package/dist/modes/companion/input-parser.js.map +1 -0
- package/dist/modes/companion/input-parser.test.d.ts +2 -0
- package/dist/modes/companion/input-parser.test.d.ts.map +1 -0
- package/dist/modes/companion/input-parser.test.js +123 -0
- package/dist/modes/companion/input-parser.test.js.map +1 -0
- package/dist/modes/companion/mode-manager.d.ts +41 -0
- package/dist/modes/companion/mode-manager.d.ts.map +1 -0
- package/dist/modes/companion/mode-manager.js +56 -0
- package/dist/modes/companion/mode-manager.js.map +1 -0
- package/dist/modes/companion/mode-manager.test.d.ts +2 -0
- package/dist/modes/companion/mode-manager.test.d.ts.map +1 -0
- package/dist/modes/companion/mode-manager.test.js +65 -0
- package/dist/modes/companion/mode-manager.test.js.map +1 -0
- package/dist/modes/companion/output-classifier.d.ts +15 -0
- package/dist/modes/companion/output-classifier.d.ts.map +1 -0
- package/dist/modes/companion/output-classifier.js +77 -0
- package/dist/modes/companion/output-classifier.js.map +1 -0
- package/dist/modes/companion/output-classifier.test.d.ts +2 -0
- package/dist/modes/companion/output-classifier.test.d.ts.map +1 -0
- package/dist/modes/companion/output-classifier.test.js +133 -0
- package/dist/modes/companion/output-classifier.test.js.map +1 -0
- package/dist/modes/companion/pty-wrapper.d.ts +46 -0
- package/dist/modes/companion/pty-wrapper.d.ts.map +1 -0
- package/dist/modes/companion/pty-wrapper.js +143 -0
- package/dist/modes/companion/pty-wrapper.js.map +1 -0
- package/dist/modes/companion/safety-classifier.d.ts +31 -0
- package/dist/modes/companion/safety-classifier.d.ts.map +1 -0
- package/dist/modes/companion/safety-classifier.js +140 -0
- package/dist/modes/companion/safety-classifier.js.map +1 -0
- package/dist/modes/companion/safety-classifier.test.d.ts +2 -0
- package/dist/modes/companion/safety-classifier.test.d.ts.map +1 -0
- package/dist/modes/companion/safety-classifier.test.js +151 -0
- package/dist/modes/companion/safety-classifier.test.js.map +1 -0
- package/dist/modes/companion/summarizer.d.ts +24 -0
- package/dist/modes/companion/summarizer.d.ts.map +1 -0
- package/dist/modes/companion/summarizer.js +132 -0
- package/dist/modes/companion/summarizer.js.map +1 -0
- package/dist/modes/companion/terminal-history.d.ts +27 -0
- package/dist/modes/companion/terminal-history.d.ts.map +1 -0
- package/dist/modes/companion/terminal-history.js +142 -0
- package/dist/modes/companion/terminal-history.js.map +1 -0
- package/dist/non-interactive.d.ts.map +1 -1
- package/dist/non-interactive.js +0 -2
- package/dist/non-interactive.js.map +1 -1
- package/dist/prompts/anthropic.md +1 -0
- package/dist/prompts/codex.md +1 -0
- package/dist/prompts/gpt-5-modern.md +1 -0
- package/dist/prompts/gpt-5.5.md +1 -0
- package/dist/prompts/gpt-5.md +4 -7
- package/dist/prompts/kimi.md +3 -1
- package/dist/prompts/prompt-constructor.d.ts +1 -0
- package/dist/prompts/prompt-constructor.d.ts.map +1 -1
- package/dist/prompts/prompt-constructor.js +12 -38
- package/dist/prompts/prompt-constructor.js.map +1 -1
- package/dist/prompts/prompt-constructor.test.ts +15 -36
- package/dist/prompts/prompt-constructor.ts +19 -47
- package/dist/prompts/shell-sandbox.d.ts +2 -0
- package/dist/prompts/shell-sandbox.d.ts.map +1 -0
- package/dist/prompts/shell-sandbox.js +29 -0
- package/dist/prompts/shell-sandbox.js.map +1 -0
- package/dist/prompts/shell-sandbox.md +18 -0
- package/dist/prompts/shell-sandbox.ts +29 -0
- package/dist/prompts/simple-mentor.md +215 -0
- package/dist/prompts/subagent-delegation.js +1 -1
- package/dist/prompts/subagent-delegation.ts +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 +8 -4
- package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
- package/dist/providers/ai-sdk-openai-compatible.provider.test.js +119 -1
- package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
- package/dist/providers/ai-sdk-openai.provider.d.ts +14 -0
- package/dist/providers/ai-sdk-openai.provider.d.ts.map +1 -0
- package/dist/providers/ai-sdk-openai.provider.js +18 -0
- package/dist/providers/ai-sdk-openai.provider.js.map +1 -0
- package/dist/providers/codex-responses-model.d.ts +1 -0
- package/dist/providers/codex-responses-model.d.ts.map +1 -1
- package/dist/providers/codex-responses-model.js +5 -4
- package/dist/providers/codex-responses-model.js.map +1 -1
- package/dist/providers/github-copilot/converters.d.ts +45 -0
- package/dist/providers/github-copilot/converters.d.ts.map +1 -0
- package/dist/providers/github-copilot/converters.js +118 -0
- package/dist/providers/github-copilot/converters.js.map +1 -0
- package/dist/providers/github-copilot/converters.test.d.ts +2 -0
- package/dist/providers/github-copilot/converters.test.d.ts.map +1 -0
- package/dist/providers/github-copilot/converters.test.js +162 -0
- package/dist/providers/github-copilot/converters.test.js.map +1 -0
- package/dist/providers/github-copilot/github-copilot.provider.d.ts +2 -0
- package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +1 -0
- package/dist/providers/github-copilot/github-copilot.provider.js +75 -0
- package/dist/providers/github-copilot/github-copilot.provider.js.map +1 -0
- package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +2 -0
- package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +1 -0
- package/dist/providers/github-copilot/github-copilot.provider.test.js +26 -0
- package/dist/providers/github-copilot/github-copilot.provider.test.js.map +1 -0
- package/dist/providers/github-copilot/index.d.ts +4 -0
- package/dist/providers/github-copilot/index.d.ts.map +1 -0
- package/dist/providers/github-copilot/index.js +4 -0
- package/dist/providers/github-copilot/index.js.map +1 -0
- package/dist/providers/github-copilot/model.d.ts +24 -0
- package/dist/providers/github-copilot/model.d.ts.map +1 -0
- package/dist/providers/github-copilot/model.delta.test.d.ts +2 -0
- package/dist/providers/github-copilot/model.delta.test.d.ts.map +1 -0
- package/dist/providers/github-copilot/model.delta.test.js +15 -0
- package/dist/providers/github-copilot/model.delta.test.js.map +1 -0
- package/dist/providers/github-copilot/model.js +498 -0
- package/dist/providers/github-copilot/model.js.map +1 -0
- package/dist/providers/github-copilot/model.test.d.ts +2 -0
- package/dist/providers/github-copilot/model.test.d.ts.map +1 -0
- package/dist/providers/github-copilot/model.test.js +63 -0
- package/dist/providers/github-copilot/model.test.js.map +1 -0
- package/dist/providers/github-copilot/provider.d.ts +15 -0
- package/dist/providers/github-copilot/provider.d.ts.map +1 -0
- package/dist/providers/github-copilot/provider.js +25 -0
- package/dist/providers/github-copilot/provider.js.map +1 -0
- package/dist/providers/github-copilot/provider.test.d.ts +2 -0
- package/dist/providers/github-copilot/provider.test.d.ts.map +1 -0
- package/dist/providers/github-copilot/provider.test.js +52 -0
- package/dist/providers/github-copilot/provider.test.js.map +1 -0
- package/dist/providers/github-copilot/utils.d.ts +20 -0
- package/dist/providers/github-copilot/utils.d.ts.map +1 -0
- package/dist/providers/github-copilot/utils.js +142 -0
- package/dist/providers/github-copilot/utils.js.map +1 -0
- package/dist/providers/github-copilot/utils.test.d.ts +2 -0
- package/dist/providers/github-copilot/utils.test.d.ts.map +1 -0
- package/dist/providers/github-copilot/utils.test.js +21 -0
- package/dist/providers/github-copilot/utils.test.js.map +1 -0
- package/dist/providers/openai-compatible/api.d.ts +17 -0
- package/dist/providers/openai-compatible/api.d.ts.map +1 -0
- package/dist/providers/openai-compatible/api.js +58 -0
- package/dist/providers/openai-compatible/api.js.map +1 -0
- package/dist/providers/openai-compatible/model.d.ts +17 -0
- package/dist/providers/openai-compatible/model.d.ts.map +1 -0
- package/dist/providers/openai-compatible/model.js +473 -0
- package/dist/providers/openai-compatible/model.js.map +1 -0
- package/dist/providers/openai-compatible/provider.d.ts +22 -0
- package/dist/providers/openai-compatible/provider.d.ts.map +1 -0
- package/dist/providers/openai-compatible/provider.js +43 -0
- package/dist/providers/openai-compatible/provider.js.map +1 -0
- package/dist/providers/openai-compatible/reasoning-content.test.d.ts +2 -0
- package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +1 -0
- package/dist/providers/openai-compatible/reasoning-content.test.js +258 -0
- package/dist/providers/openai-compatible/reasoning-content.test.js.map +1 -0
- package/dist/providers/openai-compatible/utils.d.ts +3 -0
- package/dist/providers/openai-compatible/utils.d.ts.map +1 -0
- package/dist/providers/openai-compatible/utils.js +11 -0
- package/dist/providers/openai-compatible/utils.js.map +1 -0
- package/dist/providers/openai-compatible-behavior-gate.test.js +42 -1
- package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -1
- package/dist/providers/openai-compatible-middleware.js +1 -1
- package/dist/providers/openai-compatible-middleware.js.map +1 -1
- package/dist/providers/openai-compatible.provider.js +1 -1
- package/dist/providers/openai-compatible.provider.js.map +1 -1
- package/dist/providers/openrouter/api.d.ts +39 -0
- package/dist/providers/openrouter/api.d.ts.map +1 -0
- package/dist/providers/openrouter/api.js +164 -0
- package/dist/providers/openrouter/api.js.map +1 -0
- package/dist/providers/openrouter/converters.d.ts +8 -0
- package/dist/providers/openrouter/converters.d.ts.map +1 -0
- package/dist/providers/openrouter/converters.js +391 -0
- package/dist/providers/openrouter/converters.js.map +1 -0
- package/dist/providers/openrouter/converters.test.d.ts +2 -0
- package/dist/providers/openrouter/converters.test.d.ts.map +1 -0
- package/dist/providers/openrouter/converters.test.js +179 -0
- package/dist/providers/openrouter/converters.test.js.map +1 -0
- package/dist/providers/openrouter/index.d.ts +4 -0
- package/dist/providers/openrouter/index.d.ts.map +1 -0
- package/dist/providers/openrouter/index.js +4 -0
- package/dist/providers/openrouter/index.js.map +1 -0
- package/dist/providers/openrouter/model.d.ts +14 -0
- package/dist/providers/openrouter/model.d.ts.map +1 -0
- package/dist/providers/openrouter/model.js +457 -0
- package/dist/providers/openrouter/model.js.map +1 -0
- package/dist/providers/openrouter/provider.d.ts +15 -0
- package/dist/providers/openrouter/provider.d.ts.map +1 -0
- package/dist/providers/openrouter/provider.js +21 -0
- package/dist/providers/openrouter/provider.js.map +1 -0
- package/dist/providers/openrouter/reasoning-content.test.d.ts +2 -0
- package/dist/providers/openrouter/reasoning-content.test.d.ts.map +1 -0
- package/dist/providers/openrouter/reasoning-content.test.js +122 -0
- package/dist/providers/openrouter/reasoning-content.test.js.map +1 -0
- package/dist/providers/openrouter/utils.d.ts +11 -0
- package/dist/providers/openrouter/utils.d.ts.map +1 -0
- package/dist/providers/openrouter/utils.js +29 -0
- package/dist/providers/openrouter/utils.js.map +1 -0
- package/dist/providers/openrouter.api.retry.test.d.ts +2 -0
- package/dist/providers/openrouter.api.retry.test.d.ts.map +1 -0
- package/dist/providers/openrouter.api.retry.test.js +148 -0
- package/dist/providers/openrouter.api.retry.test.js.map +1 -0
- package/dist/providers/openrouter.test.d.ts +2 -0
- package/dist/providers/openrouter.test.d.ts.map +1 -0
- package/dist/providers/openrouter.test.js +1449 -0
- package/dist/providers/openrouter.test.js.map +1 -0
- 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/safety-checker.js +57 -0
- package/dist/scripts/eval-auto-approval/runner.js +1 -1
- package/dist/scripts/eval-auto-approval/runner.js.map +1 -1
- package/dist/services/approval/approval-flow-coordinator.d.ts.map +1 -1
- package/dist/services/approval/approval-flow-coordinator.js +43 -3
- package/dist/services/approval/approval-flow-coordinator.js.map +1 -1
- package/dist/services/approval/shell-sandbox-approval.d.ts +2 -0
- package/dist/services/approval/shell-sandbox-approval.d.ts.map +1 -0
- package/dist/services/approval/shell-sandbox-approval.js +7 -0
- package/dist/services/approval/shell-sandbox-approval.js.map +1 -0
- package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
- package/dist/services/approval/tool-approval-batch-coordinator.js +4 -2
- package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
- package/dist/services/approval-flow-coordinator.js +1 -1
- package/dist/services/approval-flow-coordinator.js.map +1 -1
- package/dist/services/approval-state.d.ts +1 -1
- package/dist/services/approval-state.d.ts.map +1 -1
- package/dist/services/check_mock.d.ts +2 -0
- package/dist/services/check_mock.d.ts.map +1 -0
- package/dist/services/check_mock.js +22 -0
- package/dist/services/check_mock.js.map +1 -0
- package/dist/services/continuation-driver.js +1 -1
- package/dist/services/continuation-driver.js.map +1 -1
- package/dist/services/conversation/conversation-adapter.d.ts +2 -1
- package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
- package/dist/services/conversation/conversation-adapter.js +4 -1
- package/dist/services/conversation/conversation-adapter.js.map +1 -1
- package/dist/services/conversation/conversation-replay.js +1 -1
- package/dist/services/conversation/conversation-replay.js.map +1 -1
- package/dist/services/conversation/conversation-result-builder.d.ts +2 -0
- package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
- package/dist/services/conversation/conversation-result-builder.js +31 -2
- package/dist/services/conversation/conversation-result-builder.js.map +1 -1
- package/dist/services/conversation/conversation-service.d.ts +8 -0
- package/dist/services/conversation/conversation-service.d.ts.map +1 -1
- package/dist/services/conversation/conversation-service.js +14 -0
- package/dist/services/conversation/conversation-service.js.map +1 -1
- package/dist/services/conversation/conversation-store.d.ts +13 -0
- package/dist/services/conversation/conversation-store.d.ts.map +1 -1
- package/dist/services/conversation/conversation-store.js +72 -13
- package/dist/services/conversation/conversation-store.js.map +1 -1
- package/dist/services/conversation-adapter.d.ts +3 -2
- package/dist/services/conversation-adapter.d.ts.map +1 -1
- package/dist/services/conversation-adapter.js +10 -8
- package/dist/services/conversation-adapter.js.map +1 -1
- package/dist/services/conversation-events.d.ts +1 -1
- package/dist/services/conversation-events.d.ts.map +1 -1
- package/dist/services/conversation-log-events.d.ts +1 -1
- package/dist/services/conversation-log-events.d.ts.map +1 -1
- package/dist/services/conversation-replay.d.ts +1 -1
- package/dist/services/conversation-replay.d.ts.map +1 -1
- package/dist/services/conversation-replay.js +1 -1
- package/dist/services/conversation-replay.js.map +1 -1
- package/dist/services/conversation-result-builder.d.ts +1 -1
- package/dist/services/conversation-result-builder.d.ts.map +1 -1
- package/dist/services/conversation-result-builder.js +2 -2
- package/dist/services/conversation-result-builder.js.map +1 -1
- package/dist/services/conversation-result-builder.test.js +3 -3
- package/dist/services/conversation-result-builder.test.js.map +1 -1
- package/dist/services/conversation-service.test.js +2 -2
- package/dist/services/conversation-service.test.js.map +1 -1
- package/dist/services/conversation-session-composition.d.ts +3 -1
- package/dist/services/conversation-session-composition.d.ts.map +1 -1
- package/dist/services/conversation-session-composition.js +3 -2
- package/dist/services/conversation-session-composition.js.map +1 -1
- package/dist/services/conversation-session-factory.d.ts +3 -1
- package/dist/services/conversation-session-factory.d.ts.map +1 -1
- package/dist/services/conversation-session-factory.js +7 -1
- package/dist/services/conversation-session-factory.js.map +1 -1
- package/dist/services/conversation-session.characterization.test.js +23 -13
- package/dist/services/conversation-session.characterization.test.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.map +1 -1
- package/dist/services/conversation-store.merge-modes.test.js +1 -160
- package/dist/services/conversation-store.merge-modes.test.js.map +1 -1
- package/dist/services/conversation-turn-runner.d.ts +2 -1
- package/dist/services/conversation-turn-runner.d.ts.map +1 -1
- package/dist/services/logging/logging-service.d.ts.map +1 -1
- package/dist/services/logging/logging-service.js +4 -2
- package/dist/services/logging/logging-service.js.map +1 -1
- package/dist/services/logging-service.js +1 -1
- package/dist/services/logging-service.js.map +1 -1
- package/dist/services/model-service.d.ts +1 -1
- package/dist/services/model-service.d.ts.map +1 -1
- package/dist/services/model-service.js +7 -2
- package/dist/services/model-service.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 +6 -2
- package/dist/services/rtk-service.js.map +1 -1
- package/dist/services/session/continuation-driver.test.js +169 -7
- package/dist/services/session/continuation-driver.test.js.map +1 -1
- package/dist/services/session/continuation-recovery-handler.test.js +3 -4
- package/dist/services/session/continuation-recovery-handler.test.js.map +1 -1
- package/dist/services/session/conversation-session.d.ts +1 -0
- package/dist/services/session/conversation-session.d.ts.map +1 -1
- package/dist/services/session/conversation-session.js.map +1 -1
- package/dist/services/session/initial-input-preparer.d.ts +1 -0
- package/dist/services/session/initial-input-preparer.d.ts.map +1 -1
- package/dist/services/session/initial-input-preparer.js +2 -1
- package/dist/services/session/initial-input-preparer.js.map +1 -1
- package/dist/services/session/initial-turn-runner.d.ts.map +1 -1
- package/dist/services/session/initial-turn-runner.js +11 -3
- package/dist/services/session/initial-turn-runner.js.map +1 -1
- package/dist/services/session/session-adapter-bridge.d.ts +1 -11
- package/dist/services/session/session-adapter-bridge.d.ts.map +1 -1
- package/dist/services/session/session-adapter-bridge.js +1 -10
- package/dist/services/session/session-adapter-bridge.js.map +1 -1
- package/dist/services/session/session-composition.d.ts +1 -0
- package/dist/services/session/session-composition.d.ts.map +1 -1
- package/dist/services/session/session-composition.js +1 -0
- package/dist/services/session/session-composition.js.map +1 -1
- package/dist/services/session/session-factory.d.ts +46 -3
- package/dist/services/session/session-factory.d.ts.map +1 -1
- package/dist/services/session/session-factory.js +44 -3
- package/dist/services/session/session-factory.js.map +1 -1
- package/dist/services/session/session-factory.test.js +17 -18
- package/dist/services/session/session-factory.test.js.map +1 -1
- package/dist/services/session/session-input-planner.d.ts +1 -0
- package/dist/services/session/session-input-planner.d.ts.map +1 -1
- package/dist/services/session/session-input-planner.js +30 -2
- package/dist/services/session/session-input-planner.js.map +1 -1
- package/dist/services/session/session-lifecycle.d.ts +4 -0
- package/dist/services/session/session-lifecycle.d.ts.map +1 -1
- package/dist/services/session/session-lifecycle.js +10 -0
- package/dist/services/session/session-lifecycle.js.map +1 -1
- package/dist/services/session/session-manager.d.ts +14 -0
- package/dist/services/session/session-manager.d.ts.map +1 -1
- package/dist/services/session/session-manager.js +21 -0
- package/dist/services/session/session-manager.js.map +1 -1
- package/dist/services/session/session-stream-processor.d.ts.map +1 -1
- package/dist/services/session/session-stream-processor.js +13 -0
- package/dist/services/session/session-stream-processor.js.map +1 -1
- package/dist/services/session/session-tool-tracker.d.ts +14 -1
- package/dist/services/session/session-tool-tracker.d.ts.map +1 -1
- package/dist/services/session/session-tool-tracker.js +20 -5
- package/dist/services/session/session-tool-tracker.js.map +1 -1
- package/dist/services/session/test-helpers/conversation-session-fixtures.d.ts +12 -0
- package/dist/services/session/test-helpers/conversation-session-fixtures.d.ts.map +1 -0
- package/dist/services/session/test-helpers/conversation-session-fixtures.js +29 -0
- package/dist/services/session/test-helpers/conversation-session-fixtures.js.map +1 -0
- package/dist/services/session/turn-attempt-factory.d.ts +1 -0
- package/dist/services/session/turn-attempt-factory.d.ts.map +1 -1
- package/dist/services/session/turn-attempt-factory.js +1 -1
- package/dist/services/session/turn-attempt-factory.js.map +1 -1
- package/dist/services/session/turn-coordinator.d.ts +3 -0
- package/dist/services/session/turn-coordinator.d.ts.map +1 -1
- package/dist/services/session/turn-coordinator.js +6 -6
- package/dist/services/session/turn-coordinator.js.map +1 -1
- package/dist/services/session/turn-executor.d.ts.map +1 -1
- package/dist/services/session/turn-executor.js +1 -0
- package/dist/services/session/turn-executor.js.map +1 -1
- package/dist/services/session-state-facade.d.ts +2 -2
- package/dist/services/session-state-facade.d.ts.map +1 -1
- package/dist/services/session-state-facade.js.map +1 -1
- package/dist/services/settings/settings-merger.d.ts.map +1 -1
- package/dist/services/settings/settings-merger.js +7 -5
- package/dist/services/settings/settings-merger.js.map +1 -1
- package/dist/services/settings/settings-persistence.js +1 -1
- package/dist/services/settings/settings-persistence.js.map +1 -1
- package/dist/services/settings/settings-schema.d.ts +25 -0
- package/dist/services/settings/settings-schema.d.ts.map +1 -1
- package/dist/services/settings/settings-schema.js +23 -2
- package/dist/services/settings/settings-schema.js.map +1 -1
- package/dist/services/settings/settings-sources.d.ts.map +1 -1
- package/dist/services/settings/settings-sources.js +5 -0
- package/dist/services/settings/settings-sources.js.map +1 -1
- package/dist/services/shell-auto-approval-evaluator.js +1 -1
- package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
- package/dist/services/skills/skills-service.d.ts.map +1 -1
- package/dist/services/skills/skills-service.js +12 -19
- package/dist/services/skills/skills-service.js.map +1 -1
- package/dist/services/skills/skills-service.test.js +19 -0
- package/dist/services/skills/skills-service.test.js.map +1 -1
- package/dist/services/subagents/reasoning-inheritance.test.d.ts +2 -0
- package/dist/services/subagents/reasoning-inheritance.test.d.ts.map +1 -0
- package/dist/services/subagents/reasoning-inheritance.test.js +73 -0
- package/dist/services/subagents/reasoning-inheritance.test.js.map +1 -0
- package/dist/services/subagents/role-loader.js +3 -3
- package/dist/services/subagents/role-loader.js.map +1 -1
- package/dist/services/subagents/subagent-manager-abort-state.test.d.ts +2 -0
- package/dist/services/subagents/subagent-manager-abort-state.test.d.ts.map +1 -0
- package/dist/services/subagents/subagent-manager-abort-state.test.js +36 -0
- package/dist/services/subagents/subagent-manager-abort-state.test.js.map +1 -0
- package/dist/services/subagents/subagent-manager-abort.test.d.ts +2 -0
- package/dist/services/subagents/subagent-manager-abort.test.d.ts.map +1 -0
- package/dist/services/subagents/subagent-manager-abort.test.js +3 -0
- package/dist/services/subagents/subagent-manager-abort.test.js.map +1 -0
- package/dist/services/subagents/test-helpers/subagent-manager-fixtures.d.ts +35 -0
- package/dist/services/subagents/test-helpers/subagent-manager-fixtures.d.ts.map +1 -0
- package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js +174 -0
- package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js.map +1 -0
- package/dist/services/subagents/tool-policy.d.ts.map +1 -1
- package/dist/services/subagents/tool-policy.js +22 -3
- package/dist/services/subagents/tool-policy.js.map +1 -1
- package/dist/services/tool-execution-ledger.d.ts +42 -1
- package/dist/services/tool-execution-ledger.d.ts.map +1 -1
- package/dist/services/tool-execution-ledger.js +117 -1
- package/dist/services/tool-execution-ledger.js.map +1 -1
- package/dist/services/turn-item-accumulator.d.ts +1 -1
- package/dist/services/turn-item-accumulator.d.ts.map +1 -1
- package/dist/tools/agent/activate-skill.js +1 -1
- package/dist/tools/agent/activate-skill.js.map +1 -1
- package/dist/tools/agent/ask-user.d.ts.map +1 -1
- package/dist/tools/agent/ask-user.js +4 -15
- package/dist/tools/agent/ask-user.js.map +1 -1
- package/dist/tools/agent/ask-user.test.js +50 -11
- package/dist/tools/agent/ask-user.test.js.map +1 -1
- package/dist/tools/agent/run-subagent.d.ts.map +1 -1
- package/dist/tools/agent/run-subagent.js +2 -5
- package/dist/tools/agent/run-subagent.js.map +1 -1
- package/dist/tools/bash.d.ts +10 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +55 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/file/apply-patch.js +2 -2
- package/dist/tools/file/apply-patch.js.map +1 -1
- package/dist/tools/file/apply-patch.test.js +27 -0
- package/dist/tools/file/apply-patch.test.js.map +1 -1
- package/dist/tools/file/code-context.d.ts +27 -0
- package/dist/tools/file/code-context.d.ts.map +1 -0
- package/dist/tools/file/code-context.js +542 -0
- package/dist/tools/file/code-context.js.map +1 -0
- package/dist/tools/file/create-file.d.ts.map +1 -1
- package/dist/tools/file/create-file.js +2 -5
- package/dist/tools/file/create-file.js.map +1 -1
- package/dist/tools/file/create-file.test.js +24 -0
- package/dist/tools/file/create-file.test.js.map +1 -1
- package/dist/tools/file/find-files.d.ts.map +1 -1
- package/dist/tools/file/find-files.js +53 -28
- package/dist/tools/file/find-files.js.map +1 -1
- package/dist/tools/file/glob.d.ts +18 -0
- package/dist/tools/file/glob.d.ts.map +1 -0
- package/dist/tools/file/glob.js +216 -0
- package/dist/tools/file/glob.js.map +1 -0
- package/dist/tools/file/grep.d.ts +21 -0
- package/dist/tools/file/grep.d.ts.map +1 -0
- package/dist/tools/file/grep.js +221 -0
- package/dist/tools/file/grep.js.map +1 -0
- package/dist/tools/file/read-file.d.ts.map +1 -1
- package/dist/tools/file/read-file.js +24 -6
- package/dist/tools/file/read-file.js.map +1 -1
- package/dist/tools/file/search-replace.d.ts.map +1 -1
- package/dist/tools/file/search-replace.js +4 -6
- package/dist/tools/file/search-replace.js.map +1 -1
- package/dist/tools/file/search-replace.test.js +30 -0
- package/dist/tools/file/search-replace.test.js.map +1 -1
- package/dist/tools/format-helpers.js +0 -2
- package/dist/tools/format-helpers.js.map +1 -1
- package/dist/tools/language-providers.d.ts.map +1 -1
- package/dist/tools/language-providers.js +0 -379
- package/dist/tools/language-providers.js.map +1 -1
- package/dist/tools/languages/csharp.js +1 -1
- package/dist/tools/languages/csharp.js.map +1 -1
- package/dist/tools/languages/java.js +1 -1
- package/dist/tools/languages/java.js.map +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +2 -1
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/system/code-context.d.ts.map +1 -1
- package/dist/tools/system/code-context.js +28 -10
- package/dist/tools/system/code-context.js.map +1 -1
- package/dist/tools/system/grep.d.ts +4 -6
- package/dist/tools/system/grep.d.ts.map +1 -1
- package/dist/tools/system/grep.js +83 -50
- package/dist/tools/system/grep.js.map +1 -1
- package/dist/tools/system/shell.d.ts +10 -1
- package/dist/tools/system/shell.d.ts.map +1 -1
- package/dist/tools/system/shell.js +136 -10
- package/dist/tools/system/shell.js.map +1 -1
- package/dist/tools/types.d.ts +1 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/utils.d.ts +4 -0
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +17 -5
- package/dist/tools/utils.js.map +1 -1
- package/dist/tools/web/web-fetch.js +1 -1
- package/dist/tools/web/web-fetch.js.map +1 -1
- package/dist/utils/command-safety/handlers/script-handler.d.ts +3 -0
- package/dist/utils/command-safety/handlers/script-handler.d.ts.map +1 -0
- package/dist/utils/command-safety/handlers/script-handler.js +92 -0
- package/dist/utils/command-safety/handlers/script-handler.js.map +1 -0
- package/dist/utils/command-safety/handlers/script-handler.test.d.ts +2 -0
- package/dist/utils/command-safety/handlers/script-handler.test.d.ts.map +1 -0
- package/dist/utils/command-safety/handlers/script-handler.test.js +44 -0
- package/dist/utils/command-safety/handlers/script-handler.test.js.map +1 -0
- package/dist/utils/command-safety/index.test.d.ts +2 -0
- package/dist/utils/command-safety/index.test.d.ts.map +1 -0
- package/dist/utils/command-safety/index.test.js +22 -0
- package/dist/utils/command-safety/index.test.js.map +1 -0
- package/dist/utils/command-safety.d.ts +21 -0
- package/dist/utils/command-safety.d.ts.map +1 -0
- package/dist/utils/command-safety.devnull.test.d.ts +2 -0
- package/dist/utils/command-safety.devnull.test.d.ts.map +1 -0
- package/dist/utils/command-safety.devnull.test.js +13 -0
- package/dist/utils/command-safety.devnull.test.js.map +1 -0
- package/dist/utils/command-safety.js +348 -0
- package/dist/utils/command-safety.js.map +1 -0
- package/dist/utils/conversation/conversation-event-handler.js +1 -1
- package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
- package/dist/utils/conversation/message-utils.d.ts +5 -0
- package/dist/utils/conversation/message-utils.d.ts.map +1 -1
- package/dist/utils/conversation/message-utils.js +20 -0
- package/dist/utils/conversation/message-utils.js.map +1 -1
- package/dist/utils/conversation/test-helpers/event-handler-fixtures.d.ts +31 -0
- package/dist/utils/conversation/test-helpers/event-handler-fixtures.d.ts.map +1 -0
- package/dist/utils/conversation/test-helpers/event-handler-fixtures.js +42 -0
- package/dist/utils/conversation/test-helpers/event-handler-fixtures.js.map +1 -0
- package/dist/utils/extract-command-messages.test.js +6 -6
- package/dist/utils/extract-command-messages.test.js.map +1 -1
- package/dist/utils/output/output-trim.d.ts +1 -1
- package/dist/utils/output/output-trim.js +1 -1
- package/dist/utils/project-tree.d.ts +7 -12
- package/dist/utils/project-tree.d.ts.map +1 -1
- package/dist/utils/project-tree.js +184 -83
- package/dist/utils/project-tree.js.map +1 -1
- package/dist/utils/provider-traffic-extractor.repro.test.d.ts +2 -0
- package/dist/utils/provider-traffic-extractor.repro.test.d.ts.map +1 -0
- package/dist/utils/provider-traffic-extractor.repro.test.js.map +1 -0
- package/dist/utils/settings-command.d.ts +2 -2
- package/dist/utils/settings-command.d.ts.map +1 -1
- package/dist/utils/settings-command.js +2 -2
- package/dist/utils/settings-command.js.map +1 -1
- package/dist/utils/shell/command-safety/find-helpers.js +1 -1
- package/dist/utils/shell/command-safety/find-helpers.js.map +1 -1
- package/dist/utils/shell/command-safety/handlers/git-handler.js +1 -1
- package/dist/utils/shell/command-safety/handlers/git-handler.js.map +1 -1
- package/dist/utils/shell/execute-shell.d.ts +2 -0
- package/dist/utils/shell/execute-shell.d.ts.map +1 -1
- package/dist/utils/shell/execute-shell.js +9 -6
- package/dist/utils/shell/execute-shell.js.map +1 -1
- package/dist/utils/shell/sandbox/denied-read-detector.d.ts +39 -0
- package/dist/utils/shell/sandbox/denied-read-detector.d.ts.map +1 -0
- package/dist/utils/shell/sandbox/denied-read-detector.js +250 -0
- package/dist/utils/shell/sandbox/denied-read-detector.js.map +1 -0
- package/dist/utils/shell/sandbox/denied-read-stores.d.ts +74 -0
- package/dist/utils/shell/sandbox/denied-read-stores.d.ts.map +1 -0
- package/dist/utils/shell/sandbox/denied-read-stores.js +166 -0
- package/dist/utils/shell/sandbox/denied-read-stores.js.map +1 -0
- package/dist/utils/shell/sandbox/sandbox-env.d.ts +7 -0
- package/dist/utils/shell/sandbox/sandbox-env.d.ts.map +1 -0
- package/dist/utils/shell/sandbox/sandbox-env.js +40 -0
- package/dist/utils/shell/sandbox/sandbox-env.js.map +1 -0
- package/dist/utils/shell/sandbox/sandbox-policy.d.ts +41 -0
- package/dist/utils/shell/sandbox/sandbox-policy.d.ts.map +1 -0
- package/dist/utils/shell/sandbox/sandbox-policy.js +217 -0
- package/dist/utils/shell/sandbox/sandbox-policy.js.map +1 -0
- package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts +18 -0
- package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts.map +1 -0
- package/dist/utils/shell/sandbox/shell-sandbox-runner.js +58 -0
- package/dist/utils/shell/sandbox/shell-sandbox-runner.js.map +1 -0
- package/dist/utils/shell/shell-output.d.ts.map +1 -1
- package/dist/utils/shell/shell-output.js +8 -6
- package/dist/utils/shell/shell-output.js.map +1 -1
- package/dist/utils/shell/temp-dir.d.ts +10 -0
- package/dist/utils/shell/temp-dir.d.ts.map +1 -0
- package/dist/utils/shell/temp-dir.js +68 -0
- package/dist/utils/shell/temp-dir.js.map +1 -0
- package/dist/utils/skill-discovery-paths.d.ts +5 -0
- package/dist/utils/skill-discovery-paths.d.ts.map +1 -0
- package/dist/utils/skill-discovery-paths.js +18 -0
- package/dist/utils/skill-discovery-paths.js.map +1 -0
- package/package.json +10 -16
- package/dist/components/ModelSelectionMenu.debug.test.d.ts +0 -2
- package/dist/components/ModelSelectionMenu.debug.test.d.ts.map +0 -1
- package/dist/components/ModelSelectionMenu.debug.test.js.map +0 -1
- package/dist/hooks/conversation-ui-reducer.multi-select.test.d.ts +0 -2
- package/dist/hooks/conversation-ui-reducer.multi-select.test.d.ts.map +0 -1
- package/dist/hooks/conversation-ui-reducer.multi-select.test.js +0 -123
- package/dist/hooks/conversation-ui-reducer.multi-select.test.js.map +0 -1
- package/dist/hooks/use-conversation.ask-user-multi-select.test.d.ts +0 -2
- package/dist/hooks/use-conversation.ask-user-multi-select.test.d.ts.map +0 -1
- package/dist/hooks/use-conversation.ask-user-multi-select.test.js +0 -159
- package/dist/hooks/use-conversation.ask-user-multi-select.test.js.map +0 -1
- package/dist/inspect_zod.d.ts +0 -2
- package/dist/inspect_zod.d.ts.map +0 -1
- package/dist/inspect_zod.js +0 -16
- package/dist/inspect_zod.js.map +0 -1
- package/dist/prompts/simple_prev2.md +0 -33
- package/dist/services/conversation-result-resolver.d.ts +0 -25
- package/dist/services/conversation-result-resolver.d.ts.map +0 -1
- package/dist/services/conversation-result-resolver.js +0 -79
- package/dist/services/conversation-result-resolver.js.map +0 -1
- package/dist/services/conversation-result-resolver.test.d.ts +0 -2
- package/dist/services/conversation-result-resolver.test.d.ts.map +0 -1
- package/dist/services/conversation-result-resolver.test.js +0 -186
- package/dist/services/conversation-result-resolver.test.js.map +0 -1
- package/dist/services/session-state-controller.test.d.ts +0 -2
- package/dist/services/session-state-controller.test.d.ts.map +0 -1
- package/dist/services/session-state-controller.test.js +0 -125
- package/dist/services/session-state-controller.test.js.map +0 -1
- package/dist/services/turn-execution-orchestrator.d.ts +0 -79
- package/dist/services/turn-execution-orchestrator.d.ts.map +0 -1
- package/dist/services/turn-execution-orchestrator.js +0 -687
- package/dist/services/turn-execution-orchestrator.js.map +0 -1
- package/dist/services/turn-execution-orchestrator.test.d.ts +0 -2
- package/dist/services/turn-execution-orchestrator.test.d.ts.map +0 -1
- package/dist/services/turn-execution-orchestrator.test.js +0 -236
- package/dist/services/turn-execution-orchestrator.test.js.map +0 -1
- package/dist/utils/command-safety/_scratch-classify.test.d.ts +0 -2
- package/dist/utils/command-safety/_scratch-classify.test.d.ts.map +0 -1
- package/dist/utils/command-safety/_scratch-classify.test.js +0 -22
- package/dist/utils/command-safety/_scratch-classify.test.js.map +0 -1
- package/dist/utils/command-safety/scratch-classify.test.d.ts +0 -2
- package/dist/utils/command-safety/scratch-classify.test.d.ts.map +0 -1
- package/dist/utils/command-safety/scratch-classify.test.js +0 -22
- package/dist/utils/command-safety/scratch-classify.test.js.map +0 -1
- package/dist/utils/command-safety/scratch-tally.test.d.ts +0 -2
- package/dist/utils/command-safety/scratch-tally.test.d.ts.map +0 -1
- package/dist/utils/command-safety/scratch-tally.test.js +0 -68
- package/dist/utils/command-safety/scratch-tally.test.js.map +0 -1
- package/dist/utils/project-tree.test.d.ts +0 -2
- package/dist/utils/project-tree.test.d.ts.map +0 -1
- package/dist/utils/project-tree.test.js +0 -149
- package/dist/utils/project-tree.test.js.map +0 -1
- package/dist/utils/terminal-clear.d.ts +0 -7
- package/dist/utils/terminal-clear.d.ts.map +0 -1
- package/dist/utils/terminal-clear.js +0 -5
- package/dist/utils/terminal-clear.js.map +0 -1
- package/dist/utils/terminal-clear.test.d.ts +0 -2
- package/dist/utils/terminal-clear.test.d.ts.map +0 -1
- package/dist/utils/terminal-clear.test.js +0 -13
- package/dist/utils/terminal-clear.test.js.map +0 -1
- package/dist/utils/test-render.d.ts +0 -14
- package/dist/utils/test-render.d.ts.map +0 -1
- package/dist/utils/test-render.js +0 -44
- package/dist/utils/test-render.js.map +0 -1
- package/readme.md +0 -887
- /package/dist/components/{Input → input}/input-width.test.d.ts +0 -0
- /package/dist/components/{Input → input}/input-width.test.d.ts.map +0 -0
- /package/dist/components/{Input → input}/input-width.test.js +0 -0
- /package/dist/components/{Input → input}/input-width.test.js.map +0 -0
- /package/dist/components/{Input → input}/insertions.test.d.ts +0 -0
- /package/dist/components/{Input → input}/insertions.test.d.ts.map +0 -0
- /package/dist/components/{Input → input}/insertions.test.js +0 -0
- /package/dist/components/{Input → input}/insertions.test.js.map +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,397 @@
|
|
|
1
|
+
# term2
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@qduc/term2)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
|
|
6
|
+
A powerful terminal-based AI assistant that helps you get things done on your computer through natural conversation.
|
|
7
|
+
|
|
8
|
+
**Why term2?** Unlike proprietary alternatives, term2 is **open-source (MIT)**, works with **any AI provider** (OpenAI, OpenRouter, local self-hosted, etc.), requires **no subscription**, and uniquely supports **remote server management via SSH** — all while giving you full control over what commands execute on your system.
|
|
9
|
+
|
|
10
|
+
## Demo
|
|
11
|
+
|
|
12
|
+
https://github.com/user-attachments/assets/ac960d65-f7c8-453a-9440-91f6397ae842
|
|
13
|
+
|
|
14
|
+
## Features
|
|
15
|
+
|
|
16
|
+
- 🎭 **Five Operating Modes** - Standard (full-power, auto-approves patches), Lite (fast & safe), Mentor (expert model advice), Plan (read-only research/planning), and Orchestrator (delegates task execution to subagents)
|
|
17
|
+
- 🌍 **Open Source** - MIT licensed, hackable, auditable, community-driven
|
|
18
|
+
- 🤖 **Multi-Provider Support** - Works with OpenAI, OpenRouter, OpenAI-compatible APIs, and Vercel AI SDK providers
|
|
19
|
+
- 🔒 **Safe Execution** - Every command requires your explicit approval with diff preview
|
|
20
|
+
- 🛠️ **Advanced Tools** - Shell execution, file patching, search/replace (with `<...>` gap matching), grep, find files, file reading, file creation, web search, web fetching, code outline & context search, mentor consultation, and subagent invocation
|
|
21
|
+
- 👥 **Subagent Delegation** - Spawn specialized, synchronous subagents (`explorer`, `worker`, `researcher`, `mentor`) to perform sub-tasks in parallel while conserving your main context
|
|
22
|
+
- ⏪ **Conversation Undo & Rewind** - Undo the last turn or select any past user message to rewind the conversation state back to that point
|
|
23
|
+
- 💾 **Conversation Resumption & Persistence** - Saved conversations are persisted using robust event logging and can be resumed later using the `--resume` flag
|
|
24
|
+
- 💬 **Slash Commands** - Quick actions like `/clear`, `/quit`, `/model`, `/mentor`, `/lite`, `/copy`, `/auto-approve`, `/plan`, `/undo`, `/usage`, `/effort`, `/handoff`, `/retry`, and `/orchestrator` for easy control
|
|
25
|
+
- 📝 **Smart Context** - The assistant understands your environment and provides relevant help
|
|
26
|
+
- 🎯 **Streaming Responses** - See the AI's thoughts and reasoning in real-time
|
|
27
|
+
- 🧠 **Reasoning Effort Control** - Configurable reasoning levels (minimal to high) for O1/O3 models
|
|
28
|
+
- ⚡ **Command History** - Navigate previous inputs with arrow keys
|
|
29
|
+
- 🎨 **Markdown Rendering** - Formatted code blocks, tables, and text in the terminal
|
|
30
|
+
- 🔄 **Retry Logic** - Automatic recovery from tool hallucinations and upstream errors
|
|
31
|
+
- 🌐 **SSH Mode** - Execute commands and edit files on remote servers over SSH
|
|
32
|
+
- 🔒 **Sandboxed Execution** - Shell commands run in a sandbox with configurable read policies (`credential-denylist`, `home-denylist`, `standard`, `strict`) to protect sensitive files
|
|
33
|
+
- 🤖 **Non-Interactive Mode** - Run commands from the CLI without starting the full UI
|
|
34
|
+
- ✏️ **Standard Mode** - Auto-approves file edits in your workspace for faster development (active by default)
|
|
35
|
+
- 🛡️ **Smart Shell Auto-Approval** - A hybrid local-heuristic + LLM-based safety evaluator that auto-approves safe commands, eliminating prompt fatigue while strictly blocking risky ones (with detailed reasoning explanations)
|
|
36
|
+
- 🖼️ **Image Pasting** - Paste images from your clipboard directly into the terminal for vision-model analysis
|
|
37
|
+
- 📈 **Real-time Token Usage** - Live token consumption displayed during streaming
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## Why term2 vs Alternatives?
|
|
41
|
+
|
|
42
|
+
| | **term2** | **Claude Code** | **Warp** |
|
|
43
|
+
| --- | --- | --- | --- |
|
|
44
|
+
| **Open Source** | ✅ MIT | ❌ Proprietary | ✅ Open Source |
|
|
45
|
+
| **Cost** | Pay-per-use API | $20 - $200/mo (or API) | Freemium / Paid tiers |
|
|
46
|
+
| **AI Providers** | Any (OpenAI, OpenRouter, local) | Anthropic only | Selected models / BYOLLM |
|
|
47
|
+
| **SSH / Remote** | ✅ Native | ✅ Yes (Remote Control/SSH) | ✅ Yes |
|
|
48
|
+
| **Mentor Mode** | ✅ Built-in | ❌ No | ❌ No |
|
|
49
|
+
| **Self-Hostable** | ✅ Yes | ❌ No (Requires Anthropic) | ❌ Cloud elements (Oz) |
|
|
50
|
+
|
|
51
|
+
## Installation
|
|
52
|
+
|
|
53
|
+
**Requirements:**
|
|
54
|
+
|
|
55
|
+
- Node.js 20 or higher
|
|
56
|
+
- An API key from OpenAI, OpenRouter, or any OpenAI-compatible provider
|
|
57
|
+
|
|
58
|
+
Install globally via npm:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npm install --global @qduc/term2
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Set your API key as an environment variable (see [Configuration](#configuration) section for details):
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
export OPENAI_API_KEY="your-api-key-here"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Usage
|
|
71
|
+
|
|
72
|
+
Start the assistant:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
term2 # Start in standard mode (full capabilities, auto-approves patches)
|
|
76
|
+
term2 --lite # Start in lite mode (fast, read-only)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Then simply chat with the AI! Type your question or request, press Enter, and the assistant will help you.
|
|
80
|
+
|
|
81
|
+
**New to term2?**
|
|
82
|
+
|
|
83
|
+
- Working on a codebase/project? Use standard mode: `term2`
|
|
84
|
+
- Just need general terminal help? Use lite mode: `term2 --lite`
|
|
85
|
+
- Tackling a complex problem? Enable mentor mode with `/mentor` command
|
|
86
|
+
|
|
87
|
+
See the "Operating Modes" section below for full details.
|
|
88
|
+
|
|
89
|
+
### Basic Examples
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
"What files are in my current directory?"
|
|
93
|
+
"Show me my git status"
|
|
94
|
+
"Create a backup of my documents folder"
|
|
95
|
+
"What's using port 3000?"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Advanced Examples
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
"Find all TODO comments in my JavaScript files"
|
|
102
|
+
"Help me debug why my server won't start on port 8080"
|
|
103
|
+
"Create a new React component called UserProfile"
|
|
104
|
+
"Show me the disk usage of my home directory"
|
|
105
|
+
"What processes are consuming the most memory?"
|
|
106
|
+
"Search for the word 'config' in all .json files"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Command Line Options
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Model selection
|
|
113
|
+
term2 # Start with default model (gpt-5.1)
|
|
114
|
+
term2 -m gpt-5.2 # Use a specific model
|
|
115
|
+
term2 --model gpt-5-mini # Use GPT-5 mini for faster/cheaper responses
|
|
116
|
+
term2 -r high # Set reasoning effort to high (for GPT-5 models)
|
|
117
|
+
term2 --reasoning medium # Set reasoning effort to medium
|
|
118
|
+
|
|
119
|
+
# Operating modes (see "Operating Modes" section below for details)
|
|
120
|
+
term2 --lite # Start in lite mode for general terminal work (no codebase)
|
|
121
|
+
|
|
122
|
+
# Resuming past conversations
|
|
123
|
+
term2 --resume # Resume the last conversation session
|
|
124
|
+
term2 -R <conversation-uuid> # Resume a specific conversation by ID
|
|
125
|
+
|
|
126
|
+
# SSH Mode - execute on remote servers
|
|
127
|
+
term2 --ssh user@host --remote-dir /path/to/project
|
|
128
|
+
term2 --ssh deploy@server.com --remote-dir /var/www/app --ssh-port 2222
|
|
129
|
+
|
|
130
|
+
# Combine SSH with lite mode for lightweight remote assistance
|
|
131
|
+
term2 --ssh user@host --remote-dir /path --lite
|
|
132
|
+
|
|
133
|
+
# Non-interactive mode
|
|
134
|
+
term2 "how to use grep"
|
|
135
|
+
term2 --auto-approve "list files in current directory"
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Slash Commands
|
|
139
|
+
|
|
140
|
+
While in the chat, you can use these commands:
|
|
141
|
+
|
|
142
|
+
- `/clear` - Clear the conversation history
|
|
143
|
+
- `/quit` - Exit the application
|
|
144
|
+
- `/model [model-name]` - Switch to a different model
|
|
145
|
+
- `/mentor` - Toggle mentor mode
|
|
146
|
+
- `/lite` - Toggle lite mode (requires `/clear` first if a session is active)
|
|
147
|
+
- `/plan` - Toggle plan mode (read-only research/planning mode)
|
|
148
|
+
- `/orchestrator` - Toggle orchestrator mode (delegates all tool-backed work to subagents; requires `/clear` first if a session is active)
|
|
149
|
+
- `/skills` - Browse and manage available skills
|
|
150
|
+
- `/undo [last]` - Open the conversation rewind menu, or revert the last turn immediately if `last` is specified
|
|
151
|
+
- `/retry` - Undo the last user message and re-send it
|
|
152
|
+
- `/usage` - Show token usage breakdown for the current session (includes subagent usage)
|
|
153
|
+
- `/effort [level]` - Set reasoning effort for O1/O3 models (e.g. none, minimal, low, medium, high)
|
|
154
|
+
- `/copy` - Copy the latest assistant response to the clipboard
|
|
155
|
+
- `/handoff` - Hand off the last assistant response to another model or session
|
|
156
|
+
- `/auto-approve [off|advisory|auto]` - Set or cycle shell auto-approval mode
|
|
157
|
+
- `/settings [key] [value]` - Modify runtime settings (e.g., `/settings agent.temperature 0.7`)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
## Operating Modes
|
|
161
|
+
|
|
162
|
+
| Mode | Toggle / Start with | Best for | Tools Available | Context |
|
|
163
|
+
| ----------- | ------------------- | ------------------------------------ | -------------------- | ------------- |
|
|
164
|
+
| **Standard**| `term2` | Codebase work & development | Auto-approves patches| Full codebase |
|
|
165
|
+
| **Plan** | `/plan` | Researching and designing plans | Read-only tools | Full codebase |
|
|
166
|
+
| **Lite** | `term2 --lite` | General terminal tasks (no codebase) | Read-only tools | None |
|
|
167
|
+
| **Mentor** | `/mentor` | Complex codebase problems | All + mentor tool | Full codebase |
|
|
168
|
+
| **Orchestrator**| `/orchestrator` | Delegating complex multi-step work | Subagents + read-only| Full codebase |
|
|
169
|
+
|
|
170
|
+
**Standard Mode** is the default. It auto-approves `apply_patch` operations within the workspace for high-velocity coding, while still requiring confirmation for destructive operations.
|
|
171
|
+
|
|
172
|
+
**Plan Mode** enforces read-only boundaries — no file writes or mutating shell commands. Use `/plan` or `Shift+Tab` to toggle.
|
|
173
|
+
|
|
174
|
+
**Lite Mode** is a fast, lightweight assistant for general terminal work (system admin, file management, SSH sessions). No codebase context or file editing tools. Use `term2 --lite` or `/lite` to toggle.
|
|
175
|
+
|
|
176
|
+
**Mentor Mode** pairs your primary AI with a separate (often more powerful) mentor model for strategic guidance on complex problems. Configure `agent.mentorModel` in settings, toggle with `/mentor`.
|
|
177
|
+
|
|
178
|
+
**Orchestrator Mode** delegates all tool-backed work to subagents, preserving the main context window for high-level orchestration. Toggle with `/orchestrator`.
|
|
179
|
+
|
|
180
|
+
**Switching modes:** Use `/lite`, `/mentor`, `/plan`, `/orchestrator`, or `Shift+Tab` (cycles Standard ↔ Plan). Modes handle mutual exclusions automatically.
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
## SSH Mode
|
|
184
|
+
|
|
185
|
+
Execute commands and modify files on remote servers over SSH. Requires an SSH agent with keys loaded.
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
term2 --ssh user@hostname --remote-dir /path/to/project
|
|
189
|
+
term2 --ssh user@hostname --remote-dir /path/to/project --ssh-port 2222 # custom port
|
|
190
|
+
term2 --ssh user@hostname --lite # lightweight remote assistance (--remote-dir optional)
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Limitations:** SSH agent auth only (no passwords), text files only, no binary file support.
|
|
194
|
+
|
|
195
|
+
## Non-Interactive Mode
|
|
196
|
+
|
|
197
|
+
Pass a prompt as a positional argument for one-off tasks. Tool execution is rejected by default; use `--auto-approve` to allow it.
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
term2 "list files in current directory"
|
|
201
|
+
term2 --auto-approve "delete /tmp/test-file"
|
|
202
|
+
|
|
203
|
+
# Output: AI response → stdout, events → stderr
|
|
204
|
+
ANSWER=$(term2 "is there any TODO in source/cli.tsx?")
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
With `--auto-approve`, defaults to Standard Mode; without it, defaults to Lite Mode.
|
|
208
|
+
|
|
209
|
+
## Shell Auto-Approval
|
|
210
|
+
|
|
211
|
+
term2 uses a hybrid local-heuristic + LLM safety evaluation to minimize prompt fatigue while blocking risky commands. Destructive operations (e.g., `rm -rf`, `git push --force`) are always blocked from auto-approval.
|
|
212
|
+
|
|
213
|
+
Toggle modes with `/auto-approve`:
|
|
214
|
+
|
|
215
|
+
| Mode | Behavior |
|
|
216
|
+
| --- | --- |
|
|
217
|
+
| `off` (default) | Every command requires manual confirmation |
|
|
218
|
+
| `advisory` | Manual confirmation, but LLM reasoning is displayed alongside |
|
|
219
|
+
| `auto` | Safe commands execute automatically; risky ones still prompt |
|
|
220
|
+
|
|
221
|
+
```json
|
|
222
|
+
{
|
|
223
|
+
"shell": { "autoApproveMode": "auto" },
|
|
224
|
+
"agent": { "autoApproveModel": "gpt-5.4-mini" }
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
> [!TIP] Use a fast, lightweight model (e.g. `gpt-5.4-mini`) as your `autoApproveModel` to keep safety checks fast.
|
|
229
|
+
|
|
230
|
+
## Configuration
|
|
231
|
+
|
|
232
|
+
term2 stores its configuration in:
|
|
233
|
+
|
|
234
|
+
- **macOS**: `~/Library/Logs/term2-nodejs/settings.json`
|
|
235
|
+
- **Linux**: `~/.local/state/term2-nodejs/settings.json`
|
|
236
|
+
|
|
237
|
+
### Environment Variables (API Keys Only)
|
|
238
|
+
|
|
239
|
+
API keys should be set as environment variables for security (never commit them to git):
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
# OpenAI (default provider)
|
|
243
|
+
export OPENAI_API_KEY="sk-..."
|
|
244
|
+
|
|
245
|
+
# OpenRouter (for Claude, Gemini, and other models)
|
|
246
|
+
export OPENROUTER_API_KEY="sk-or-v1-..."
|
|
247
|
+
|
|
248
|
+
# Web Search (Tavily — default)
|
|
249
|
+
export TAVILY_API_KEY="tvly-..."
|
|
250
|
+
|
|
251
|
+
# Web Search (Exa)
|
|
252
|
+
export EXA_API_KEY="..."
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
To make them permanent, add these exports to your shell configuration file (`~/.bashrc`, `~/.zshrc`, or `~/.profile`).
|
|
256
|
+
|
|
257
|
+
### Configuring Other Settings
|
|
258
|
+
|
|
259
|
+
Settings (model, provider, temperature, etc.) can be configured via:
|
|
260
|
+
|
|
261
|
+
1. **App menu** - Use `/settings` command during a session (e.g., `/settings agent.model gpt-5.2`)
|
|
262
|
+
2. **Settings file** - Manually edit the JSON file:
|
|
263
|
+
- **macOS**: `~/Library/Logs/term2-nodejs/settings.json`
|
|
264
|
+
- **Linux**: `~/.local/state/term2-nodejs/settings.json`
|
|
265
|
+
3. **CLI flags** - Override for a single session (e.g., `-m gpt-5.2`)
|
|
266
|
+
|
|
267
|
+
### Provider Configuration Examples
|
|
268
|
+
|
|
269
|
+
```json
|
|
270
|
+
// OpenAI (default)
|
|
271
|
+
{ "agent": { "provider": "openai", "model": "gpt-5.5" } }
|
|
272
|
+
|
|
273
|
+
// OpenRouter
|
|
274
|
+
{ "agent": { "provider": "openrouter", "model": "anthropic/claude-sonnet-4.6" } }
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
For local LLMs, add a provider entry to the `providers` list:
|
|
278
|
+
|
|
279
|
+
```json
|
|
280
|
+
{
|
|
281
|
+
"providers": [
|
|
282
|
+
{ "name": "llama.cpp", "type": "llama.cpp", "baseUrl": "http://127.0.0.1:8080/v1" }
|
|
283
|
+
],
|
|
284
|
+
"agent": { "provider": "llama.cpp", "model": "qwen3.6-35b-a3b" }
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Supported provider types: `openai` (default), `openai-compatible`, `anthropic`, `google`, `opencode`, `llama.cpp`. Custom providers with `openai-compatible` type work with any OpenAI-compatible endpoint. Set the appropriate API key environment variable for each provider (e.g. `ANTHROPIC_API_KEY`, `GOOGLE_GENERATIVE_AI_API_KEY`).
|
|
289
|
+
|
|
290
|
+
### General Settings
|
|
291
|
+
|
|
292
|
+
```json
|
|
293
|
+
{
|
|
294
|
+
"agent": {
|
|
295
|
+
"model": "gpt-5.4",
|
|
296
|
+
"provider": "openai",
|
|
297
|
+
"reasoningEffort": "default",
|
|
298
|
+
"temperature": 1,
|
|
299
|
+
"mentorModel": "gpt-5.5",
|
|
300
|
+
"subagentWorkerModel": "gpt-5.3-codex"
|
|
301
|
+
},
|
|
302
|
+
"shell": {
|
|
303
|
+
"timeout": 120000,
|
|
304
|
+
"autoApproveMode": "off",
|
|
305
|
+
"maxParallelToolCalls": 5
|
|
306
|
+
},
|
|
307
|
+
"webSearch": { "provider": "tavily" },
|
|
308
|
+
"app": { "searchViaShell": "auto" }
|
|
309
|
+
}
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
See the full schema in `settings.json` for all available options (shell output limits, app mode toggles, concise display mode, etc.).
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
## Supported Models
|
|
316
|
+
|
|
317
|
+
- **OpenAI** (default): `gpt-5.5`, `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.3-codex`, `gpt-5.2`, `gpt-5.1`
|
|
318
|
+
- **OpenRouter**: Claude, Gemini, DeepSeek, and hundreds more — use `-m model-name`
|
|
319
|
+
- **Local/Self-hosted**: Any OpenAI-compatible API (Ollama, LM Studio, vLLM, Groq, etc.)
|
|
320
|
+
|
|
321
|
+
You can reorder provider priority with the `PROVIDER_ORDER` setting in `settings.json`.
|
|
322
|
+
|
|
323
|
+
## Subagents
|
|
324
|
+
|
|
325
|
+
Delegate tasks to specialized subagents to prevent context bloat. Available roles: **Explorer** (codebase scanning), **Worker** (modifications & tests), **Researcher** (web search & docs), **Mentor** (strategic guidance). Configure per-role model overrides in settings (e.g. `agent.subagentWorkerModel`).
|
|
326
|
+
|
|
327
|
+
Subagents can also use the `ask_user` tool to ask you structured multi-choice questions during execution. Low-risk (YELLOW) shell commands issued by subagents are auto-approved to reduce interruptions.
|
|
328
|
+
|
|
329
|
+
## Conversation Resumption & Persistence
|
|
330
|
+
|
|
331
|
+
Conversations are auto-saved on exit. Resume with:
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
term2 --resume # resume last session
|
|
335
|
+
term2 --resume <session-uuid> # resume specific session
|
|
336
|
+
term2 --resume ls # list saved sessions with metadata
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
|
|
341
|
+
## Development
|
|
342
|
+
|
|
343
|
+
Want to contribute or run from source?
|
|
344
|
+
|
|
345
|
+
```bash
|
|
346
|
+
# Clone the repository
|
|
347
|
+
git clone https://github.com/qduc/term2.git
|
|
348
|
+
cd term2
|
|
349
|
+
|
|
350
|
+
# Install dependencies
|
|
351
|
+
npm install
|
|
352
|
+
|
|
353
|
+
# Run in development mode
|
|
354
|
+
npm run dev
|
|
355
|
+
|
|
356
|
+
# Run tests
|
|
357
|
+
npm test
|
|
358
|
+
|
|
359
|
+
# Build
|
|
360
|
+
npm run build
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
## Troubleshooting
|
|
364
|
+
|
|
365
|
+
| Issue | Fix |
|
|
366
|
+
| --- | --- |
|
|
367
|
+
| `OPENAI_API_KEY not set` | `export OPENAI_API_KEY="sk-..."` |
|
|
368
|
+
| `command not found: term2` | Restart terminal or `source ~/.zshrc` |
|
|
369
|
+
| Permission denied during install | `sudo npm install --global @qduc/term2` or [fix npm perms](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) |
|
|
370
|
+
| SSH connection failed | Start agent (`eval "$(ssh-agent -s)"`), add key (`ssh-add`), verify with `ssh-add -l` |
|
|
371
|
+
| `remote-dir is required` | Add `--remote-dir /path` or use `--lite` (auto-detects) |
|
|
372
|
+
|
|
373
|
+
## Tips
|
|
374
|
+
|
|
375
|
+
- Choose the right mode: **lite** for terminal work, **standard** for codebase work, **mentor** for complex problems
|
|
376
|
+
- Paste images directly into the terminal for vision-model analysis
|
|
377
|
+
- Press `Ctrl+C` to exit, arrow keys to navigate history
|
|
378
|
+
- Use `/auto-approve auto` to reduce prompt fatigue during long sessions
|
|
379
|
+
- System notifications alert you when the agent needs approval or finishes a task
|
|
380
|
+
- Sandbox protects sensitive files — configure `sandbox.readPolicy` in settings for stricter access control
|
|
381
|
+
|
|
382
|
+
## Contributing
|
|
383
|
+
|
|
384
|
+
Contributions are welcome! Please feel free to submit a Pull Request or open an Issue on [GitHub](https://github.com/qduc/term2).
|
|
385
|
+
|
|
386
|
+
## License
|
|
387
|
+
|
|
388
|
+
MIT License - see [LICENSE](LICENSE) file for details
|
|
389
|
+
|
|
390
|
+
## Acknowledgments
|
|
391
|
+
|
|
392
|
+
Built with:
|
|
393
|
+
|
|
394
|
+
- [OpenAI Agents SDK](https://github.com/openai/openai-agents-js)
|
|
395
|
+
- [Ink](https://github.com/vadimdemedes/ink) - React for CLI
|
|
396
|
+
- [TypeScript](https://www.typescriptlang.org/)
|
|
397
|
+
- [ssh2](https://github.com/mscdex/ssh2) - SSH client for Node.js
|
package/dist/agent.d.ts
CHANGED
|
@@ -2,14 +2,7 @@ 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
4
|
import { SkillsService } from './services/skills/skills-service.js';
|
|
5
|
-
|
|
6
|
-
maxDepth?: number;
|
|
7
|
-
maxEntriesPerDir?: number;
|
|
8
|
-
maxTotalEntries?: number;
|
|
9
|
-
includeFiles?: boolean;
|
|
10
|
-
ignoredNames?: Set<string>;
|
|
11
|
-
};
|
|
12
|
-
export declare function getProjectTreeForPrompt(cwd: string, options?: ProjectTreeOptions): string;
|
|
5
|
+
export { getProjectTreeForPrompt } from './utils/project-tree.js';
|
|
13
6
|
export declare function getEnvInfo(settingsService: ISettingsService, executionContext?: ExecutionContext, lite?: boolean): string;
|
|
14
7
|
export declare function getAgentsInstructions(cwd: string): string;
|
|
15
8
|
export interface AgentDefinition {
|
|
@@ -33,5 +26,4 @@ export declare const getAgentDefinition: (deps: {
|
|
|
33
26
|
getAskUserAnswer?: (callId?: string) => string | undefined;
|
|
34
27
|
skillsService?: SkillsService;
|
|
35
28
|
}, model?: string) => AgentDefinition;
|
|
36
|
-
export {};
|
|
37
29
|
//# 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":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../source/agent.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAIpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,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;IAC7G,gBAAgB,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IAC3D,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,EACD,QAAQ,MAAM,KACb,eA0LF,CAAC"}
|
package/dist/agent.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createGrepToolDefinition } from './tools/
|
|
1
|
+
import { createGrepToolDefinition } from './tools/file/grep.js';
|
|
2
2
|
import { createReadFileToolDefinition } from './tools/file/read-file.js';
|
|
3
|
-
import { createFindFilesToolDefinition } from './tools/file/
|
|
3
|
+
import { createFindFilesToolDefinition } from './tools/file/glob.js';
|
|
4
4
|
import { createSearchReplaceToolDefinition } from './tools/file/search-replace.js';
|
|
5
5
|
import { createApplyPatchToolDefinition } from './tools/file/apply-patch.js';
|
|
6
6
|
import { createShellToolDefinition } from './tools/system/shell.js';
|
|
@@ -10,143 +10,18 @@ import { createRunSubagentToolDefinition } from './tools/agent/run-subagent.js';
|
|
|
10
10
|
import { createWebSearchToolDefinition } from './tools/web/web-search.js';
|
|
11
11
|
import { createWebFetchToolDefinition } from './tools/web/web-fetch.js';
|
|
12
12
|
import { createCreateFileToolDefinition } from './tools/file/create-file.js';
|
|
13
|
-
import { createCodeContextSearchToolDefinition, createReadCodeOutlineToolDefinition, } from './tools/
|
|
13
|
+
import { createCodeContextSearchToolDefinition, createReadCodeOutlineToolDefinition, } from './tools/file/code-context.js';
|
|
14
14
|
import { registerToolFormatters } from './tools/command-message-formatters.js';
|
|
15
15
|
import { TOOL_NAME_ASK_USER } from './tools/tool-names.js';
|
|
16
16
|
import os from 'os';
|
|
17
17
|
import fs from 'fs';
|
|
18
18
|
import path from 'path';
|
|
19
|
-
import { default as createIgnore } from 'ignore';
|
|
20
19
|
import { buildPromptSpec } from './prompts/prompt-constructor.js';
|
|
21
20
|
import { shouldPreferPatchEditingModel } from './lib/tool-selection-policy.js';
|
|
22
21
|
import { createActivateSkillToolDefinition } from './tools/agent/activate-skill.js';
|
|
22
|
+
import { getProjectTreeForPrompt } from './utils/project-tree.js';
|
|
23
|
+
export { getProjectTreeForPrompt } from './utils/project-tree.js';
|
|
23
24
|
const BASE_PROMPT_PATH = path.join(import.meta.dirname, './prompts');
|
|
24
|
-
const ALWAYS_IGNORE = ['.git', 'node_modules', 'dist', 'build', '.next', '.turbo', 'coverage', '.cache', '.DS_Store'];
|
|
25
|
-
const ALWAYS_INCLUDE = new Set([
|
|
26
|
-
'package.json',
|
|
27
|
-
'tsconfig.json',
|
|
28
|
-
'README.md',
|
|
29
|
-
'readme.md',
|
|
30
|
-
'.gitignore',
|
|
31
|
-
'.env.example',
|
|
32
|
-
]);
|
|
33
|
-
const SENSITIVE_PATTERNS = [/^\.env$/, /^\.env\./, /secret/i, /private/i, /credential/i, /token/i];
|
|
34
|
-
function isSensitiveFile(name) {
|
|
35
|
-
return SENSITIVE_PATTERNS.some((pattern) => pattern.test(name));
|
|
36
|
-
}
|
|
37
|
-
function createProjectIgnore(cwd) {
|
|
38
|
-
const ig = createIgnore();
|
|
39
|
-
ig.add(ALWAYS_IGNORE);
|
|
40
|
-
const gitignorePath = path.join(cwd, '.gitignore');
|
|
41
|
-
try {
|
|
42
|
-
if (fs.existsSync(gitignorePath)) {
|
|
43
|
-
ig.add(fs.readFileSync(gitignorePath, 'utf8'));
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
// If .gitignore cannot be read, continue with default ignores.
|
|
48
|
-
}
|
|
49
|
-
return {
|
|
50
|
-
ignores(relativePath, basename) {
|
|
51
|
-
const normalized = relativePath.split(path.sep).join('/');
|
|
52
|
-
if (ALWAYS_INCLUDE.has(basename)) {
|
|
53
|
-
return false;
|
|
54
|
-
}
|
|
55
|
-
return ig.ignores(normalized);
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
export function getProjectTreeForPrompt(cwd, options = {}) {
|
|
60
|
-
const { maxDepth = 3, maxEntriesPerDir = 50, maxTotalEntries = 250, includeFiles = true } = options;
|
|
61
|
-
let totalEntries = 0;
|
|
62
|
-
let omittedByLimit = 0;
|
|
63
|
-
const projectIgnore = createProjectIgnore(cwd);
|
|
64
|
-
function walk(dir, depth, prefix) {
|
|
65
|
-
if (depth > maxDepth || totalEntries >= maxTotalEntries)
|
|
66
|
-
return [];
|
|
67
|
-
let entries;
|
|
68
|
-
try {
|
|
69
|
-
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
70
|
-
}
|
|
71
|
-
catch (e) {
|
|
72
|
-
return [`${prefix}└─ [failed to read: ${e.message}]`];
|
|
73
|
-
}
|
|
74
|
-
const filtered = entries
|
|
75
|
-
.filter((entry) => {
|
|
76
|
-
const absolutePath = path.join(dir, entry.name);
|
|
77
|
-
const relativePath = path.relative(cwd, absolutePath).split(path.sep).join('/');
|
|
78
|
-
if (isSensitiveFile(entry.name)) {
|
|
79
|
-
return false;
|
|
80
|
-
}
|
|
81
|
-
if (projectIgnore.ignores(relativePath, entry.name)) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
if (!includeFiles && !entry.isDirectory()) {
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
return true;
|
|
88
|
-
})
|
|
89
|
-
.sort((a, b) => {
|
|
90
|
-
if (a.isDirectory() && !b.isDirectory())
|
|
91
|
-
return -1;
|
|
92
|
-
if (!a.isDirectory() && b.isDirectory())
|
|
93
|
-
return 1;
|
|
94
|
-
return a.name.localeCompare(b.name);
|
|
95
|
-
});
|
|
96
|
-
const shown = filtered.slice(0, maxEntriesPerDir);
|
|
97
|
-
omittedByLimit += Math.max(0, filtered.length - shown.length);
|
|
98
|
-
const lines = [];
|
|
99
|
-
const subdirs = [];
|
|
100
|
-
// BFS: render all children at this level first, then recurse into subdirs.
|
|
101
|
-
// This guarantees breadth-first budget allocation — shallower entries
|
|
102
|
-
// always take priority over deeper ones.
|
|
103
|
-
for (let index = 0; index < shown.length; index++) {
|
|
104
|
-
if (totalEntries >= maxTotalEntries) {
|
|
105
|
-
omittedByLimit += shown.length - index;
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
const entry = shown[index];
|
|
109
|
-
totalEntries++;
|
|
110
|
-
const isLast = index === shown.length - 1;
|
|
111
|
-
const connector = isLast ? '└─ ' : '├─ ';
|
|
112
|
-
const childPrefix = prefix + (isLast ? ' ' : '│ ');
|
|
113
|
-
const displayName = entry.isDirectory() ? `${entry.name}/` : entry.name;
|
|
114
|
-
lines.push(`${prefix}${connector}${displayName}`);
|
|
115
|
-
if (entry.isDirectory()) {
|
|
116
|
-
if (depth >= maxDepth) {
|
|
117
|
-
lines.push(`${childPrefix}└─ …`);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
subdirs.push({
|
|
121
|
-
path: path.join(dir, entry.name),
|
|
122
|
-
depth: depth + 1,
|
|
123
|
-
prefix: childPrefix,
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
// Now recurse into collected subdirs (BFS step 2: children of children).
|
|
129
|
-
// Each subdir call starts a new breadth-first pass, but since they are
|
|
130
|
-
// processed after all current-level siblings are rendered, the budget
|
|
131
|
-
// naturally fills shallower levels first.
|
|
132
|
-
for (const subdir of subdirs) {
|
|
133
|
-
if (totalEntries >= maxTotalEntries)
|
|
134
|
-
break;
|
|
135
|
-
lines.push(...walk(subdir.path, subdir.depth, subdir.prefix));
|
|
136
|
-
}
|
|
137
|
-
return lines;
|
|
138
|
-
}
|
|
139
|
-
try {
|
|
140
|
-
const lines = ['Project structure:', '.', ...walk(cwd, 1, ''), ''];
|
|
141
|
-
if (omittedByLimit > 0) {
|
|
142
|
-
lines.push(`- Omitted due to limits: ${omittedByLimit}`);
|
|
143
|
-
}
|
|
144
|
-
return lines.join('\n');
|
|
145
|
-
}
|
|
146
|
-
catch (e) {
|
|
147
|
-
return `Project structure:\n[failed to read ${cwd}: ${e.message}]`;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
25
|
export function getEnvInfo(settingsService, executionContext, lite = false) {
|
|
151
26
|
const shellPath = settingsService.get('app.shellPath') || 'unknown';
|
|
152
27
|
const cwd = executionContext?.getCwd() || process.cwd();
|
|
@@ -212,6 +87,7 @@ export const getAgentDefinition = (deps, model) => {
|
|
|
212
87
|
// remote (SSH) execution where the workspace lives on another host.
|
|
213
88
|
const codeContextEnabled = !(executionContext?.isRemote() ?? false);
|
|
214
89
|
const isGpt5 = !liteMode && shouldPreferPatchEditingModel(resolvedModel);
|
|
90
|
+
const sandboxEnabled = settingsService.get('sandbox.enabled');
|
|
215
91
|
const promptSpec = buildPromptSpec({
|
|
216
92
|
model: resolvedModel,
|
|
217
93
|
liteMode,
|
|
@@ -221,6 +97,7 @@ export const getAgentDefinition = (deps, model) => {
|
|
|
221
97
|
searchViaShell,
|
|
222
98
|
codeContextEnabled,
|
|
223
99
|
runSubagentEnabled: Boolean(runSubagent),
|
|
100
|
+
sandboxEnabled,
|
|
224
101
|
executionContext,
|
|
225
102
|
});
|
|
226
103
|
let prompt = resolvePrompt(path.join(BASE_PROMPT_PATH, promptSpec.basePromptFile));
|
|
@@ -253,7 +130,13 @@ export const getAgentDefinition = (deps, model) => {
|
|
|
253
130
|
}
|
|
254
131
|
const tools = [
|
|
255
132
|
createRunSubagentToolDefinition(runSubagent),
|
|
256
|
-
createShellToolDefinition({
|
|
133
|
+
createShellToolDefinition({
|
|
134
|
+
settingsService,
|
|
135
|
+
loggingService,
|
|
136
|
+
executionContext,
|
|
137
|
+
orchestratorMode: true,
|
|
138
|
+
searchViaShell,
|
|
139
|
+
}),
|
|
257
140
|
createReadFileToolDefinition({ executionContext, allowOutsideWorkspace: true, orchestratorMode: true }),
|
|
258
141
|
createGrepToolDefinition({ executionContext, orchestratorMode: true }),
|
|
259
142
|
];
|
|
@@ -273,7 +156,7 @@ export const getAgentDefinition = (deps, model) => {
|
|
|
273
156
|
};
|
|
274
157
|
}
|
|
275
158
|
const tools = [
|
|
276
|
-
createShellToolDefinition({ settingsService, loggingService, executionContext }),
|
|
159
|
+
createShellToolDefinition({ settingsService, loggingService, executionContext, searchViaShell }),
|
|
277
160
|
createWebSearchToolDefinition({
|
|
278
161
|
settingsService,
|
|
279
162
|
loggingService,
|
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":"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"}
|