@qduc/term2 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.d.ts +9 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +138 -69
- package/dist/agent.js.map +1 -1
- package/dist/agent.test.js +165 -15
- package/dist/agent.test.js.map +1 -1
- package/dist/app.d.ts +14 -3
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +168 -28
- package/dist/app.js.map +1 -1
- package/dist/app.large-uncached-warning.test.d.ts +2 -0
- package/dist/app.large-uncached-warning.test.d.ts.map +1 -0
- package/dist/app.large-uncached-warning.test.js +15 -0
- package/dist/app.large-uncached-warning.test.js.map +1 -0
- package/dist/app.startup-banner.test.js +3 -19
- package/dist/app.startup-banner.test.js.map +1 -1
- package/dist/cli.js +139 -69
- package/dist/cli.js.map +1 -1
- package/dist/components/Banner.d.ts.map +1 -1
- package/dist/components/Banner.js +35 -17
- package/dist/components/Banner.js.map +1 -1
- package/dist/components/BottomArea.d.ts +7 -1
- package/dist/components/BottomArea.d.ts.map +1 -1
- package/dist/components/BottomArea.js +8 -6
- package/dist/components/BottomArea.js.map +1 -1
- package/dist/components/BottomArea.test.js +14 -1
- package/dist/components/BottomArea.test.js.map +1 -1
- package/dist/components/CommandMessage.d.ts.map +1 -1
- package/dist/components/CommandMessage.js +31 -1
- package/dist/components/CommandMessage.js.map +1 -1
- package/dist/components/CommandMessage.test.js +150 -31
- package/dist/components/CommandMessage.test.js.map +1 -1
- package/dist/components/Common/MenuContainer.d.ts +20 -0
- package/dist/components/Common/MenuContainer.d.ts.map +1 -0
- package/dist/components/Common/MenuContainer.js +52 -0
- package/dist/components/Common/MenuContainer.js.map +1 -0
- package/dist/components/Common/ScrollableTabBar.d.ts +26 -0
- package/dist/components/Common/ScrollableTabBar.d.ts.map +1 -0
- package/dist/components/Common/ScrollableTabBar.js +26 -0
- package/dist/components/Common/ScrollableTabBar.js.map +1 -0
- package/dist/components/Common/compute-visible-tabs.d.ts +16 -0
- package/dist/components/Common/compute-visible-tabs.d.ts.map +1 -0
- package/dist/components/Common/compute-visible-tabs.js +53 -0
- package/dist/components/Common/compute-visible-tabs.js.map +1 -0
- package/dist/components/Common/compute-visible-tabs.test.d.ts +2 -0
- package/dist/components/Common/compute-visible-tabs.test.d.ts.map +1 -0
- package/dist/components/Common/compute-visible-tabs.test.js +97 -0
- package/dist/components/Common/compute-visible-tabs.test.js.map +1 -0
- package/dist/components/HandoffConfirmationPrompt.d.ts +9 -0
- package/dist/components/HandoffConfirmationPrompt.d.ts.map +1 -0
- package/dist/components/HandoffConfirmationPrompt.js +38 -0
- package/dist/components/HandoffConfirmationPrompt.js.map +1 -0
- package/dist/components/HandoffConfirmationPrompt.test.d.ts +2 -0
- package/dist/components/HandoffConfirmationPrompt.test.d.ts.map +1 -0
- package/dist/components/HandoffConfirmationPrompt.test.js +12 -0
- package/dist/components/HandoffConfirmationPrompt.test.js.map +1 -0
- package/dist/components/Input/PopupManager.d.ts +5 -1
- package/dist/components/Input/PopupManager.d.ts.map +1 -1
- package/dist/components/Input/PopupManager.js +2 -2
- package/dist/components/Input/PopupManager.js.map +1 -1
- package/dist/components/Input/popup-key-navigation.js +2 -2
- package/dist/components/Input/popup-key-navigation.js.map +1 -1
- package/dist/components/Input/popup-key-navigation.test.js +5 -3
- package/dist/components/Input/popup-key-navigation.test.js.map +1 -1
- package/dist/components/Input/popup-props.d.ts.map +1 -1
- package/dist/components/Input/popup-props.js +4 -0
- package/dist/components/Input/popup-props.js.map +1 -1
- package/dist/components/Input/popup-props.test.d.ts +2 -0
- package/dist/components/Input/popup-props.test.d.ts.map +1 -0
- package/dist/components/Input/popup-props.test.js +70 -0
- package/dist/components/Input/popup-props.test.js.map +1 -0
- package/dist/components/InputBox.d.ts +0 -1
- package/dist/components/InputBox.d.ts.map +1 -1
- package/dist/components/InputBox.js +66 -14
- package/dist/components/InputBox.js.map +1 -1
- package/dist/components/InputBox.test.js +192 -12
- package/dist/components/InputBox.test.js.map +1 -1
- package/dist/components/MessageList.d.ts +1 -0
- package/dist/components/MessageList.d.ts.map +1 -1
- package/dist/components/MessageList.js.map +1 -1
- package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
- package/dist/components/ModelSelectionMenu.debug.test.d.ts +2 -0
- package/dist/components/ModelSelectionMenu.debug.test.d.ts.map +1 -0
- package/dist/components/ModelSelectionMenu.debug.test.js.map +1 -0
- package/dist/components/ModelSelectionMenu.js +29 -125
- package/dist/components/ModelSelectionMenu.js.map +1 -1
- package/dist/components/ModelSelectionMenu.test.js +9 -5
- package/dist/components/ModelSelectionMenu.test.js.map +1 -1
- package/dist/components/PathSelectionMenu.d.ts.map +1 -1
- package/dist/components/PathSelectionMenu.js +15 -55
- package/dist/components/PathSelectionMenu.js.map +1 -1
- package/dist/components/SettingsSelectionMenu.d.ts +4 -1
- package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
- package/dist/components/SettingsSelectionMenu.js +48 -104
- package/dist/components/SettingsSelectionMenu.js.map +1 -1
- package/dist/components/SettingsSelectionMenu.scroll.test.js +140 -0
- package/dist/components/SettingsSelectionMenu.scroll.test.js.map +1 -1
- package/dist/components/SettingsSelectionMenu.test.js +38 -5
- package/dist/components/SettingsSelectionMenu.test.js.map +1 -1
- package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
- package/dist/components/SettingsValueSelectionMenu.js +24 -51
- package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
- package/dist/components/SlashCommandMenu.d.ts +1 -0
- package/dist/components/SlashCommandMenu.d.ts.map +1 -1
- package/dist/components/SlashCommandMenu.js +11 -14
- package/dist/components/SlashCommandMenu.js.map +1 -1
- package/dist/components/StatusBar.d.ts +2 -0
- package/dist/components/StatusBar.d.ts.map +1 -1
- package/dist/components/StatusBar.js +35 -2
- package/dist/components/StatusBar.js.map +1 -1
- package/dist/components/StatusBar.test.js +32 -0
- package/dist/components/StatusBar.test.js.map +1 -1
- package/dist/components/UndoSelectionMenu.d.ts.map +1 -1
- package/dist/components/UndoSelectionMenu.js +6 -33
- package/dist/components/UndoSelectionMenu.js.map +1 -1
- package/dist/context/InputContext.stability.test.js +9 -7
- package/dist/context/InputContext.stability.test.js.map +1 -1
- package/dist/env-setup.js +1 -0
- package/dist/env-setup.js.map +1 -1
- package/dist/hooks/use-app-commands.d.ts +22 -2
- package/dist/hooks/use-app-commands.d.ts.map +1 -1
- package/dist/hooks/use-app-commands.js +43 -3
- package/dist/hooks/use-app-commands.js.map +1 -1
- package/dist/hooks/use-app-commands.test.js +135 -1
- package/dist/hooks/use-app-commands.test.js.map +1 -1
- package/dist/hooks/use-conversation.clear.test.js +12 -7
- package/dist/hooks/use-conversation.clear.test.js.map +1 -1
- package/dist/hooks/use-conversation.d.ts +21 -1
- package/dist/hooks/use-conversation.d.ts.map +1 -1
- package/dist/hooks/use-conversation.js +81 -9
- package/dist/hooks/use-conversation.js.map +1 -1
- package/dist/hooks/use-escape-key.d.ts +8 -1
- package/dist/hooks/use-escape-key.d.ts.map +1 -1
- package/dist/hooks/use-escape-key.js +15 -4
- package/dist/hooks/use-escape-key.js.map +1 -1
- package/dist/hooks/use-escape-key.test.js +135 -28
- package/dist/hooks/use-escape-key.test.js.map +1 -1
- package/dist/hooks/use-input-history.test.js +14 -8
- package/dist/hooks/use-input-history.test.js.map +1 -1
- package/dist/hooks/use-mode-handlers.d.ts +12 -1
- package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
- package/dist/hooks/use-mode-handlers.js +31 -1
- package/dist/hooks/use-mode-handlers.js.map +1 -1
- package/dist/hooks/use-model-selection.d.ts +6 -1
- package/dist/hooks/use-model-selection.d.ts.map +1 -1
- package/dist/hooks/use-model-selection.js +50 -8
- package/dist/hooks/use-model-selection.js.map +1 -1
- package/dist/hooks/use-model-selection.test.js +306 -50
- package/dist/hooks/use-model-selection.test.js.map +1 -1
- package/dist/hooks/use-path-completion.d.ts +4 -0
- package/dist/hooks/use-path-completion.d.ts.map +1 -1
- package/dist/hooks/use-path-completion.js +23 -17
- package/dist/hooks/use-path-completion.js.map +1 -1
- package/dist/hooks/use-path-completion.test.d.ts +2 -0
- package/dist/hooks/use-path-completion.test.d.ts.map +1 -0
- package/dist/hooks/use-path-completion.test.js +54 -0
- package/dist/hooks/use-path-completion.test.js.map +1 -0
- package/dist/hooks/use-runtime-settings.d.ts.map +1 -1
- package/dist/hooks/use-runtime-settings.js +7 -2
- package/dist/hooks/use-runtime-settings.js.map +1 -1
- package/dist/hooks/use-runtime-settings.test.d.ts +2 -0
- package/dist/hooks/use-runtime-settings.test.d.ts.map +1 -0
- package/dist/hooks/use-runtime-settings.test.js +45 -0
- package/dist/hooks/use-runtime-settings.test.js.map +1 -0
- package/dist/hooks/use-selection.d.ts +6 -2
- package/dist/hooks/use-selection.d.ts.map +1 -1
- package/dist/hooks/use-selection.js +53 -16
- package/dist/hooks/use-selection.js.map +1 -1
- package/dist/hooks/use-selection.test.d.ts +2 -0
- package/dist/hooks/use-selection.test.d.ts.map +1 -0
- package/dist/hooks/use-selection.test.js +132 -0
- package/dist/hooks/use-selection.test.js.map +1 -0
- package/dist/hooks/use-settings-completion.d.ts +19 -0
- package/dist/hooks/use-settings-completion.d.ts.map +1 -1
- package/dist/hooks/use-settings-completion.js +106 -18
- package/dist/hooks/use-settings-completion.js.map +1 -1
- package/dist/hooks/use-settings-completion.scroll.test.js +68 -29
- package/dist/hooks/use-settings-completion.scroll.test.js.map +1 -1
- package/dist/hooks/use-settings-completion.test.js +36 -1
- package/dist/hooks/use-settings-completion.test.js.map +1 -1
- package/dist/hooks/use-settings-value-completion.d.ts +7 -1
- package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
- package/dist/hooks/use-settings-value-completion.js +18 -7
- package/dist/hooks/use-settings-value-completion.js.map +1 -1
- package/dist/hooks/use-slash-commands.d.ts +5 -0
- package/dist/hooks/use-slash-commands.d.ts.map +1 -1
- package/dist/hooks/use-slash-commands.js +22 -2
- package/dist/hooks/use-slash-commands.js.map +1 -1
- package/dist/hooks/use-trigger-detection.test.js +9 -6
- package/dist/hooks/use-trigger-detection.test.js.map +1 -1
- package/dist/hooks/use-undo-selection.d.ts +4 -0
- package/dist/hooks/use-undo-selection.d.ts.map +1 -1
- package/dist/hooks/use-undo-selection.js +18 -1
- package/dist/hooks/use-undo-selection.js.map +1 -1
- package/dist/inspect_zod.d.ts +2 -0
- package/dist/inspect_zod.d.ts.map +1 -0
- package/dist/inspect_zod.js +16 -0
- package/dist/inspect_zod.js.map +1 -0
- package/dist/lib/openai-agent-client.d.ts +10 -3
- package/dist/lib/openai-agent-client.d.ts.map +1 -1
- package/dist/lib/openai-agent-client.js +191 -37
- package/dist/lib/openai-agent-client.js.map +1 -1
- package/dist/lib/openai-agent-client.public-methods.test.js +193 -0
- package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
- package/dist/lib/openai-agent-client.test.js +71 -1
- package/dist/lib/openai-agent-client.test.js.map +1 -1
- package/dist/lib/tool-invoke.d.ts +3 -2
- package/dist/lib/tool-invoke.d.ts.map +1 -1
- package/dist/lib/tool-invoke.js +213 -10
- package/dist/lib/tool-invoke.js.map +1 -1
- package/dist/lib/tool-invoke.test.js +103 -0
- package/dist/lib/tool-invoke.test.js.map +1 -1
- package/dist/prompts/codex.md +105 -97
- package/dist/prompts/fragments/gpt-5.3-codex.md +7 -0
- package/dist/prompts/fragments/gpt-5.4-small.md +6 -0
- package/dist/prompts/fragments/gpt-5.4.md +7 -0
- package/dist/prompts/fragments/gpt-5.5.md +7 -0
- package/dist/prompts/gpt-5-modern.md +96 -54
- package/dist/prompts/gpt-5.md +7 -4
- package/dist/prompts/plan-mode-info.md +14 -3
- package/dist/prompts/prompt-constructor.d.ts +19 -0
- package/dist/prompts/prompt-constructor.d.ts.map +1 -0
- package/dist/prompts/prompt-constructor.js +53 -0
- package/dist/prompts/prompt-constructor.js.map +1 -0
- package/dist/prompts/prompt-constructor.test.d.ts +2 -0
- package/dist/prompts/prompt-constructor.test.d.ts.map +1 -0
- package/dist/prompts/prompt-constructor.test.js +99 -0
- package/dist/prompts/prompt-constructor.test.js.map +1 -0
- package/dist/prompts/prompt-constructor.test.ts +112 -0
- package/dist/prompts/prompt-constructor.ts +91 -0
- package/dist/prompts/prompt-profiles.d.ts +17 -0
- package/dist/prompts/prompt-profiles.d.ts.map +1 -0
- package/dist/prompts/prompt-profiles.js +61 -0
- package/dist/prompts/prompt-profiles.js.map +1 -0
- package/dist/prompts/prompt-profiles.ts +77 -0
- package/dist/prompts/prompt-selector.d.ts.map +1 -1
- package/dist/prompts/prompt-selector.js +3 -21
- package/dist/prompts/prompt-selector.js.map +1 -1
- package/dist/prompts/prompt-selector.ts +3 -25
- package/dist/prompts/reasoning-efficiency.d.ts.map +1 -1
- package/dist/prompts/reasoning-efficiency.js +2 -0
- package/dist/prompts/reasoning-efficiency.js.map +1 -1
- package/dist/prompts/reasoning-efficiency.test.d.ts +2 -0
- package/dist/prompts/reasoning-efficiency.test.d.ts.map +1 -0
- package/dist/prompts/reasoning-efficiency.test.js +11 -0
- package/dist/prompts/reasoning-efficiency.test.js.map +1 -0
- package/dist/prompts/reasoning-efficiency.test.ts +12 -0
- package/dist/prompts/reasoning-efficiency.ts +2 -0
- package/dist/prompts/search-via-shell.test.js +19 -16
- package/dist/prompts/search-via-shell.test.js.map +1 -1
- package/dist/prompts/search-via-shell.test.ts +20 -16
- package/dist/prompts/subagent-delegation.test.js +12 -10
- package/dist/prompts/subagent-delegation.test.js.map +1 -1
- package/dist/prompts/subagent-delegation.test.ts +13 -10
- package/dist/prompts/worktree-hygiene.md +9 -0
- package/dist/providers/ai-sdk-logging-fetch.d.ts.map +1 -1
- package/dist/providers/ai-sdk-logging-fetch.js +78 -3
- package/dist/providers/ai-sdk-logging-fetch.js.map +1 -1
- package/dist/providers/ai-sdk-logging-fetch.test.js +143 -0
- package/dist/providers/ai-sdk-logging-fetch.test.js.map +1 -1
- package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +0 -2
- package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -1
- package/dist/providers/ai-sdk-openai-compatible.provider.js +4 -8
- package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
- package/dist/providers/ai-sdk-openai-compatible.provider.test.js +1 -119
- package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
- package/dist/providers/codex-responses-model.d.ts +20 -0
- package/dist/providers/codex-responses-model.d.ts.map +1 -0
- package/dist/providers/codex-responses-model.js +170 -0
- package/dist/providers/codex-responses-model.js.map +1 -0
- package/dist/providers/codex-responses-model.test.d.ts +2 -0
- package/dist/providers/codex-responses-model.test.d.ts.map +1 -0
- package/dist/providers/codex-responses-model.test.js +240 -0
- package/dist/providers/codex-responses-model.test.js.map +1 -0
- package/dist/providers/codex.provider.d.ts +29 -0
- package/dist/providers/codex.provider.d.ts.map +1 -0
- package/dist/providers/codex.provider.js +486 -0
- package/dist/providers/codex.provider.js.map +1 -0
- package/dist/providers/codex.provider.test.d.ts +2 -0
- package/dist/providers/codex.provider.test.d.ts.map +1 -0
- package/dist/providers/codex.provider.test.js +634 -0
- package/dist/providers/codex.provider.test.js.map +1 -0
- package/dist/providers/custom-provider-adapter.test.js +56 -0
- package/dist/providers/custom-provider-adapter.test.js.map +1 -1
- package/dist/providers/fallback-responses-model.d.ts +20 -0
- package/dist/providers/fallback-responses-model.d.ts.map +1 -0
- package/dist/providers/fallback-responses-model.js +277 -0
- package/dist/providers/fallback-responses-model.js.map +1 -0
- package/dist/providers/fallback-responses-model.test.d.ts +2 -0
- package/dist/providers/fallback-responses-model.test.d.ts.map +1 -0
- package/dist/providers/fallback-responses-model.test.js +279 -0
- package/dist/providers/fallback-responses-model.test.js.map +1 -0
- package/dist/providers/fetch/compose.d.ts +7 -0
- package/dist/providers/fetch/compose.d.ts.map +1 -0
- package/dist/providers/fetch/compose.js +20 -0
- package/dist/providers/fetch/compose.js.map +1 -0
- package/dist/providers/fetch/composer.d.ts +13 -0
- package/dist/providers/fetch/composer.d.ts.map +1 -0
- package/dist/providers/fetch/composer.js +15 -0
- package/dist/providers/fetch/composer.js.map +1 -0
- package/dist/providers/fetch/composer.test.d.ts +2 -0
- package/dist/providers/fetch/composer.test.d.ts.map +1 -0
- package/dist/providers/fetch/composer.test.js +448 -0
- package/dist/providers/fetch/composer.test.js.map +1 -0
- package/dist/providers/fetch/logging-middleware.d.ts +16 -0
- package/dist/providers/fetch/logging-middleware.d.ts.map +1 -0
- package/dist/providers/fetch/logging-middleware.js +214 -0
- package/dist/providers/fetch/logging-middleware.js.map +1 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/llama-cpp.provider.d.ts +3 -0
- package/dist/providers/llama-cpp.provider.d.ts.map +1 -0
- package/dist/providers/llama-cpp.provider.js +34 -0
- package/dist/providers/llama-cpp.provider.js.map +1 -0
- package/dist/providers/openai-compatible-behavior-gate.test.js +1 -42
- package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -1
- package/dist/providers/openai-compatible-middleware.d.ts +7 -0
- package/dist/providers/openai-compatible-middleware.d.ts.map +1 -0
- package/dist/providers/openai-compatible-middleware.js +133 -0
- package/dist/providers/openai-compatible-middleware.js.map +1 -0
- package/dist/providers/openai-compatible-models.d.ts +6 -0
- package/dist/providers/openai-compatible-models.d.ts.map +1 -0
- package/dist/providers/openai-compatible-models.js +17 -0
- package/dist/providers/openai-compatible-models.js.map +1 -0
- package/dist/providers/openai-compatible-response-normalizer.d.ts +7 -0
- package/dist/providers/openai-compatible-response-normalizer.d.ts.map +1 -0
- package/dist/providers/openai-compatible-response-normalizer.js +58 -0
- package/dist/providers/openai-compatible-response-normalizer.js.map +1 -0
- package/dist/providers/openai-compatible.provider.d.ts +4 -1
- package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
- package/dist/providers/openai-compatible.provider.js +68 -324
- package/dist/providers/openai-compatible.provider.js.map +1 -1
- package/dist/providers/openai-compatible.provider.test.js +106 -1
- package/dist/providers/openai-compatible.provider.test.js.map +1 -1
- package/dist/providers/openai.provider.js +42 -10
- package/dist/providers/openai.provider.js.map +1 -1
- package/dist/providers/openai.provider.test.d.ts +2 -0
- package/dist/providers/openai.provider.test.d.ts.map +1 -0
- package/dist/providers/openai.provider.test.js +22 -0
- package/dist/providers/openai.provider.test.js.map +1 -0
- package/dist/providers/opencode.provider.d.ts +19 -0
- package/dist/providers/opencode.provider.d.ts.map +1 -0
- package/dist/providers/opencode.provider.js +45 -0
- package/dist/providers/opencode.provider.js.map +1 -0
- package/dist/providers/openrouter.provider.d.ts +2 -3
- package/dist/providers/openrouter.provider.d.ts.map +1 -1
- package/dist/providers/openrouter.provider.js +23 -24
- package/dist/providers/openrouter.provider.js.map +1 -1
- package/dist/providers/openrouter.provider.request-preprocessing.test.js +12 -9
- package/dist/providers/openrouter.provider.request-preprocessing.test.js.map +1 -1
- package/dist/providers/registry.d.ts +1 -0
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/registry.test.js +6 -22
- package/dist/providers/registry.test.js.map +1 -1
- package/dist/scripts/eval-auto-approval/dataset.d.ts +2 -2
- package/dist/services/approval-flow-coordinator.d.ts.map +1 -1
- package/dist/services/approval-flow-coordinator.js +17 -1
- package/dist/services/approval-flow-coordinator.js.map +1 -1
- package/dist/services/approval-flow-coordinator.test.js +22 -0
- package/dist/services/approval-flow-coordinator.test.js.map +1 -1
- package/dist/services/command-message-streaming.d.ts.map +1 -1
- package/dist/services/command-message-streaming.js +0 -3
- package/dist/services/command-message-streaming.js.map +1 -1
- package/dist/services/command-message-streaming.test.js +4 -2
- package/dist/services/command-message-streaming.test.js.map +1 -1
- package/dist/services/conversation-clear-save.test.js +38 -66
- package/dist/services/conversation-clear-save.test.js.map +1 -1
- package/dist/services/conversation-events.d.ts +44 -1
- package/dist/services/conversation-events.d.ts.map +1 -1
- package/dist/services/conversation-integration.test.js +3 -1
- package/dist/services/conversation-integration.test.js.map +1 -1
- package/dist/services/conversation-log-events.d.ts +107 -0
- package/dist/services/conversation-log-events.d.ts.map +1 -0
- package/dist/services/conversation-log-events.js +12 -0
- package/dist/services/conversation-log-events.js.map +1 -0
- package/dist/services/conversation-log-writer.d.ts +40 -0
- package/dist/services/conversation-log-writer.d.ts.map +1 -0
- package/dist/services/conversation-log-writer.js +264 -0
- package/dist/services/conversation-log-writer.js.map +1 -0
- package/dist/services/conversation-persistence-types.d.ts +14 -0
- package/dist/services/conversation-persistence-types.d.ts.map +1 -0
- package/dist/services/conversation-persistence-types.js +2 -0
- package/dist/services/conversation-persistence-types.js.map +1 -0
- package/dist/services/conversation-persistence.d.ts +38 -39
- package/dist/services/conversation-persistence.d.ts.map +1 -1
- package/dist/services/conversation-persistence.js +270 -82
- package/dist/services/conversation-persistence.js.map +1 -1
- package/dist/services/conversation-persistence.test.js +472 -637
- package/dist/services/conversation-persistence.test.js.map +1 -1
- package/dist/services/conversation-replay.d.ts +26 -0
- package/dist/services/conversation-replay.d.ts.map +1 -0
- package/dist/services/conversation-replay.js +252 -0
- package/dist/services/conversation-replay.js.map +1 -0
- package/dist/services/conversation-replay.test.d.ts +2 -0
- package/dist/services/conversation-replay.test.d.ts.map +1 -0
- package/dist/services/conversation-replay.test.js +153 -0
- package/dist/services/conversation-replay.test.js.map +1 -0
- package/dist/services/conversation-result-builder.d.ts.map +1 -1
- package/dist/services/conversation-result-builder.js +8 -2
- package/dist/services/conversation-result-builder.js.map +1 -1
- package/dist/services/conversation-result-builder.test.js +53 -0
- package/dist/services/conversation-result-builder.test.js.map +1 -1
- package/dist/services/conversation-retry-policy.d.ts +17 -0
- package/dist/services/conversation-retry-policy.d.ts.map +1 -1
- package/dist/services/conversation-retry-policy.js +35 -5
- package/dist/services/conversation-retry-policy.js.map +1 -1
- package/dist/services/conversation-retry-policy.test.js +56 -1
- package/dist/services/conversation-retry-policy.test.js.map +1 -1
- package/dist/services/conversation-service.d.ts +9 -0
- package/dist/services/conversation-service.d.ts.map +1 -1
- package/dist/services/conversation-service.js +18 -0
- package/dist/services/conversation-service.js.map +1 -1
- package/dist/services/conversation-session.d.ts +14 -0
- package/dist/services/conversation-session.d.ts.map +1 -1
- package/dist/services/conversation-session.js +426 -51
- package/dist/services/conversation-session.js.map +1 -1
- package/dist/services/input-surge-guard.d.ts +4 -0
- package/dist/services/input-surge-guard.d.ts.map +1 -1
- package/dist/services/input-surge-guard.js +2 -2
- package/dist/services/input-surge-guard.js.map +1 -1
- package/dist/services/input-surge-guard.test.js +15 -1
- package/dist/services/input-surge-guard.test.js.map +1 -1
- package/dist/services/large-uncached-input-guard.d.ts +35 -0
- package/dist/services/large-uncached-input-guard.d.ts.map +1 -0
- package/dist/services/large-uncached-input-guard.js +127 -0
- package/dist/services/large-uncached-input-guard.js.map +1 -0
- package/dist/services/large-uncached-input-guard.test.d.ts +2 -0
- package/dist/services/large-uncached-input-guard.test.d.ts.map +1 -0
- package/dist/services/large-uncached-input-guard.test.js +160 -0
- package/dist/services/large-uncached-input-guard.test.js.map +1 -0
- package/dist/services/model-service.d.ts +2 -0
- package/dist/services/model-service.d.ts.map +1 -1
- package/dist/services/model-service.js +7 -0
- package/dist/services/model-service.js.map +1 -1
- package/dist/services/provider-traffic.d.ts.map +1 -1
- package/dist/services/provider-traffic.js +82 -24
- package/dist/services/provider-traffic.js.map +1 -1
- package/dist/services/provider-traffic.test.js +98 -6
- package/dist/services/provider-traffic.test.js.map +1 -1
- package/dist/services/rtk-service.d.ts.map +1 -1
- package/dist/services/rtk-service.js +1 -2
- package/dist/services/rtk-service.js.map +1 -1
- package/dist/services/settings-schema.d.ts +36 -28
- package/dist/services/settings-schema.d.ts.map +1 -1
- package/dist/services/settings-schema.js +7 -2
- package/dist/services/settings-schema.js.map +1 -1
- package/dist/services/settings-sources.d.ts.map +1 -1
- package/dist/services/settings-sources.js +1 -0
- package/dist/services/settings-sources.js.map +1 -1
- package/dist/services/stream-event-processor.d.ts +4 -0
- package/dist/services/stream-event-processor.d.ts.map +1 -1
- package/dist/services/stream-event-processor.js +78 -39
- package/dist/services/stream-event-processor.js.map +1 -1
- package/dist/services/stream-event-processor.test.js +71 -0
- package/dist/services/stream-event-processor.test.js.map +1 -1
- package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
- package/dist/services/subagents/subagent-manager.js +88 -16
- package/dist/services/subagents/subagent-manager.js.map +1 -1
- package/dist/services/subagents/subagent-manager.test.js +354 -0
- package/dist/services/subagents/subagent-manager.test.js.map +1 -1
- package/dist/services/terminal-result-collector.d.ts.map +1 -1
- package/dist/services/terminal-result-collector.js +6 -1
- package/dist/services/terminal-result-collector.js.map +1 -1
- package/dist/services/tool-call-arguments.d.ts +20 -0
- package/dist/services/tool-call-arguments.d.ts.map +1 -0
- package/dist/services/tool-call-arguments.js +49 -0
- package/dist/services/tool-call-arguments.js.map +1 -0
- package/dist/services/tool-execution-ledger.d.ts +35 -0
- package/dist/services/tool-execution-ledger.d.ts.map +1 -0
- package/dist/services/tool-execution-ledger.js +204 -0
- package/dist/services/tool-execution-ledger.js.map +1 -0
- package/dist/services/tool-execution-ledger.test.d.ts +2 -0
- package/dist/services/tool-execution-ledger.test.d.ts.map +1 -0
- package/dist/services/tool-execution-ledger.test.js +96 -0
- package/dist/services/tool-execution-ledger.test.js.map +1 -0
- package/dist/tools/apply-patch.d.ts +8 -0
- package/dist/tools/apply-patch.d.ts.map +1 -1
- package/dist/tools/apply-patch.js +157 -2
- package/dist/tools/apply-patch.js.map +1 -1
- package/dist/tools/apply-patch.test.js +81 -0
- package/dist/tools/apply-patch.test.js.map +1 -1
- package/dist/tools/search-replace.d.ts.map +1 -1
- package/dist/tools/search-replace.js +92 -140
- package/dist/tools/search-replace.js.map +1 -1
- package/dist/utils/conversation-event-handler.d.ts.map +1 -1
- package/dist/utils/conversation-event-handler.js +33 -1
- package/dist/utils/conversation-event-handler.js.map +1 -1
- package/dist/utils/conversation-event-handler.test.js +103 -0
- package/dist/utils/conversation-event-handler.test.js.map +1 -1
- package/dist/utils/error-helpers.d.ts +1 -0
- package/dist/utils/error-helpers.d.ts.map +1 -1
- package/dist/utils/error-helpers.js +61 -0
- package/dist/utils/error-helpers.js.map +1 -1
- package/dist/utils/error-helpers.test.js +13 -1
- package/dist/utils/error-helpers.test.js.map +1 -1
- package/dist/utils/ink-render-options.d.ts +1 -1
- package/dist/utils/ink-render-options.d.ts.map +1 -1
- package/dist/utils/ink-render-options.js +1 -1
- package/dist/utils/ink-render-options.js.map +1 -1
- package/dist/utils/project-tree.d.ts +14 -0
- package/dist/utils/project-tree.d.ts.map +1 -0
- package/dist/utils/project-tree.js +111 -0
- package/dist/utils/project-tree.js.map +1 -0
- package/dist/utils/project-tree.test.d.ts +2 -0
- package/dist/utils/project-tree.test.d.ts.map +1 -0
- package/dist/utils/project-tree.test.js +149 -0
- package/dist/utils/project-tree.test.js.map +1 -0
- package/dist/utils/streaming-session-factory.d.ts +2 -0
- package/dist/utils/streaming-session-factory.d.ts.map +1 -1
- package/dist/utils/streaming-session-factory.js +4 -0
- package/dist/utils/streaming-session-factory.js.map +1 -1
- package/dist/utils/terminal-clear.d.ts +7 -0
- package/dist/utils/terminal-clear.d.ts.map +1 -0
- package/dist/utils/terminal-clear.js +5 -0
- package/dist/utils/terminal-clear.js.map +1 -0
- package/dist/utils/terminal-clear.test.d.ts +2 -0
- package/dist/utils/terminal-clear.test.d.ts.map +1 -0
- package/dist/utils/terminal-clear.test.js +13 -0
- package/dist/utils/terminal-clear.test.js.map +1 -0
- package/package.json +2 -2
- package/dist/agent.lite-mode.test.d.ts +0 -2
- package/dist/agent.lite-mode.test.d.ts.map +0 -1
- package/dist/agent.lite-mode.test.js +0 -39
- package/dist/agent.lite-mode.test.js.map +0 -1
- package/dist/components/ApprovalPrompt.test.d.ts +0 -2
- package/dist/components/ApprovalPrompt.test.d.ts.map +0 -1
- package/dist/components/ApprovalPrompt.test.js +0 -23
- package/dist/components/ApprovalPrompt.test.js.map +0 -1
- package/dist/components/LiveResponse.test.d.ts +0 -2
- package/dist/components/LiveResponse.test.d.ts.map +0 -1
- package/dist/components/LiveResponse.test.js +0 -13
- package/dist/components/LiveResponse.test.js.map +0 -1
- package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +0 -2
- package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +0 -1
- package/dist/components/ModelSelectionMenu.error-tabs.test.js +0 -18
- package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +0 -1
- package/dist/components/TextInput.d.ts +0 -42
- package/dist/components/TextInput.d.ts.map +0 -1
- package/dist/components/TextInput.js +0 -398
- package/dist/components/TextInput.js.map +0 -1
- package/dist/components/TextInput.test.d.ts +0 -2
- package/dist/components/TextInput.test.d.ts.map +0 -1
- package/dist/components/TextInput.test.js +0 -75
- package/dist/components/TextInput.test.js.map +0 -1
- package/dist/debug_ask_mentor.d.ts +0 -2
- package/dist/debug_ask_mentor.d.ts.map +0 -1
- package/dist/debug_ask_mentor.js +0 -73
- package/dist/debug_ask_mentor.js.map +0 -1
- package/dist/hooks/use-conversation.max-turns-undo.test.d.ts +0 -2
- package/dist/hooks/use-conversation.max-turns-undo.test.d.ts.map +0 -1
- package/dist/hooks/use-conversation.max-turns-undo.test.js +0 -118
- package/dist/hooks/use-conversation.max-turns-undo.test.js.map +0 -1
- package/dist/lib/shell.d.ts +0 -7
- package/dist/lib/shell.d.ts.map +0 -1
- package/dist/lib/shell.js +0 -56
- package/dist/lib/shell.js.map +0 -1
- package/dist/modes/companion/command-index.d.ts +0 -26
- package/dist/modes/companion/command-index.d.ts.map +0 -1
- package/dist/modes/companion/command-index.js +0 -50
- package/dist/modes/companion/command-index.js.map +0 -1
- package/dist/modes/companion/command-index.test.d.ts +0 -2
- package/dist/modes/companion/command-index.test.d.ts.map +0 -1
- package/dist/modes/companion/command-index.test.js +0 -86
- package/dist/modes/companion/command-index.test.js.map +0 -1
- package/dist/modes/companion/companion-app.d.ts +0 -12
- package/dist/modes/companion/companion-app.d.ts.map +0 -1
- package/dist/modes/companion/companion-app.js +0 -297
- package/dist/modes/companion/companion-app.js.map +0 -1
- package/dist/modes/companion/companion-session.d.ts +0 -63
- package/dist/modes/companion/companion-session.d.ts.map +0 -1
- package/dist/modes/companion/companion-session.js +0 -146
- package/dist/modes/companion/companion-session.js.map +0 -1
- package/dist/modes/companion/companion-session.test.d.ts +0 -2
- package/dist/modes/companion/companion-session.test.d.ts.map +0 -1
- package/dist/modes/companion/companion-session.test.js +0 -28
- package/dist/modes/companion/companion-session.test.js.map +0 -1
- package/dist/modes/companion/components/status-bar.d.ts +0 -13
- package/dist/modes/companion/components/status-bar.d.ts.map +0 -1
- package/dist/modes/companion/components/status-bar.js +0 -26
- package/dist/modes/companion/components/status-bar.js.map +0 -1
- package/dist/modes/companion/context-buffer.d.ts +0 -65
- package/dist/modes/companion/context-buffer.d.ts.map +0 -1
- package/dist/modes/companion/context-buffer.js +0 -156
- package/dist/modes/companion/context-buffer.js.map +0 -1
- package/dist/modes/companion/context-buffer.test.d.ts +0 -2
- package/dist/modes/companion/context-buffer.test.d.ts.map +0 -1
- package/dist/modes/companion/context-buffer.test.js +0 -154
- package/dist/modes/companion/context-buffer.test.js.map +0 -1
- package/dist/modes/companion/event-detector.d.ts +0 -46
- package/dist/modes/companion/event-detector.d.ts.map +0 -1
- package/dist/modes/companion/event-detector.js +0 -169
- package/dist/modes/companion/event-detector.js.map +0 -1
- package/dist/modes/companion/event-detector.test.d.ts +0 -2
- package/dist/modes/companion/event-detector.test.d.ts.map +0 -1
- package/dist/modes/companion/event-detector.test.js +0 -121
- package/dist/modes/companion/event-detector.test.js.map +0 -1
- package/dist/modes/companion/index.d.ts +0 -33
- package/dist/modes/companion/index.d.ts.map +0 -1
- package/dist/modes/companion/index.js +0 -21
- package/dist/modes/companion/index.js.map +0 -1
- package/dist/modes/companion/input-key-mapper.d.ts +0 -3
- package/dist/modes/companion/input-key-mapper.d.ts.map +0 -1
- package/dist/modes/companion/input-key-mapper.js +0 -31
- package/dist/modes/companion/input-key-mapper.js.map +0 -1
- package/dist/modes/companion/input-key-mapper.test.d.ts +0 -2
- package/dist/modes/companion/input-key-mapper.test.d.ts.map +0 -1
- package/dist/modes/companion/input-key-mapper.test.js +0 -26
- package/dist/modes/companion/input-key-mapper.test.js.map +0 -1
- package/dist/modes/companion/input-parser.d.ts +0 -53
- package/dist/modes/companion/input-parser.d.ts.map +0 -1
- package/dist/modes/companion/input-parser.js +0 -114
- package/dist/modes/companion/input-parser.js.map +0 -1
- package/dist/modes/companion/input-parser.test.d.ts +0 -2
- package/dist/modes/companion/input-parser.test.d.ts.map +0 -1
- package/dist/modes/companion/input-parser.test.js +0 -123
- package/dist/modes/companion/input-parser.test.js.map +0 -1
- package/dist/modes/companion/mode-manager.d.ts +0 -41
- package/dist/modes/companion/mode-manager.d.ts.map +0 -1
- package/dist/modes/companion/mode-manager.js +0 -56
- package/dist/modes/companion/mode-manager.js.map +0 -1
- package/dist/modes/companion/mode-manager.test.d.ts +0 -2
- package/dist/modes/companion/mode-manager.test.d.ts.map +0 -1
- package/dist/modes/companion/mode-manager.test.js +0 -65
- package/dist/modes/companion/mode-manager.test.js.map +0 -1
- package/dist/modes/companion/output-classifier.d.ts +0 -15
- package/dist/modes/companion/output-classifier.d.ts.map +0 -1
- package/dist/modes/companion/output-classifier.js +0 -77
- package/dist/modes/companion/output-classifier.js.map +0 -1
- package/dist/modes/companion/output-classifier.test.d.ts +0 -2
- package/dist/modes/companion/output-classifier.test.d.ts.map +0 -1
- package/dist/modes/companion/output-classifier.test.js +0 -133
- package/dist/modes/companion/output-classifier.test.js.map +0 -1
- package/dist/modes/companion/pty-wrapper.d.ts +0 -46
- package/dist/modes/companion/pty-wrapper.d.ts.map +0 -1
- package/dist/modes/companion/pty-wrapper.js +0 -143
- package/dist/modes/companion/pty-wrapper.js.map +0 -1
- package/dist/modes/companion/safety-classifier.d.ts +0 -31
- package/dist/modes/companion/safety-classifier.d.ts.map +0 -1
- package/dist/modes/companion/safety-classifier.js +0 -140
- package/dist/modes/companion/safety-classifier.js.map +0 -1
- package/dist/modes/companion/safety-classifier.test.d.ts +0 -2
- package/dist/modes/companion/safety-classifier.test.d.ts.map +0 -1
- package/dist/modes/companion/safety-classifier.test.js +0 -151
- package/dist/modes/companion/safety-classifier.test.js.map +0 -1
- package/dist/modes/companion/summarizer.d.ts +0 -24
- package/dist/modes/companion/summarizer.d.ts.map +0 -1
- package/dist/modes/companion/summarizer.js +0 -132
- package/dist/modes/companion/summarizer.js.map +0 -1
- package/dist/modes/companion/terminal-history.d.ts +0 -27
- package/dist/modes/companion/terminal-history.d.ts.map +0 -1
- package/dist/modes/companion/terminal-history.js +0 -142
- package/dist/modes/companion/terminal-history.js.map +0 -1
- package/dist/prompts/simple-mentor.md +0 -215
- package/dist/providers/ai-sdk-openai.provider.d.ts +0 -14
- package/dist/providers/ai-sdk-openai.provider.d.ts.map +0 -1
- package/dist/providers/ai-sdk-openai.provider.js +0 -18
- package/dist/providers/ai-sdk-openai.provider.js.map +0 -1
- package/dist/providers/github-copilot/converters.d.ts +0 -45
- package/dist/providers/github-copilot/converters.d.ts.map +0 -1
- package/dist/providers/github-copilot/converters.js +0 -118
- package/dist/providers/github-copilot/converters.js.map +0 -1
- package/dist/providers/github-copilot/converters.test.d.ts +0 -2
- package/dist/providers/github-copilot/converters.test.d.ts.map +0 -1
- package/dist/providers/github-copilot/converters.test.js +0 -162
- package/dist/providers/github-copilot/converters.test.js.map +0 -1
- package/dist/providers/github-copilot/github-copilot.provider.d.ts +0 -2
- package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +0 -1
- package/dist/providers/github-copilot/github-copilot.provider.js +0 -75
- package/dist/providers/github-copilot/github-copilot.provider.js.map +0 -1
- package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +0 -2
- package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +0 -1
- package/dist/providers/github-copilot/github-copilot.provider.test.js +0 -26
- package/dist/providers/github-copilot/github-copilot.provider.test.js.map +0 -1
- package/dist/providers/github-copilot/index.d.ts +0 -4
- package/dist/providers/github-copilot/index.d.ts.map +0 -1
- package/dist/providers/github-copilot/index.js +0 -4
- package/dist/providers/github-copilot/index.js.map +0 -1
- package/dist/providers/github-copilot/model.d.ts +0 -24
- package/dist/providers/github-copilot/model.d.ts.map +0 -1
- package/dist/providers/github-copilot/model.delta.test.d.ts +0 -2
- package/dist/providers/github-copilot/model.delta.test.d.ts.map +0 -1
- package/dist/providers/github-copilot/model.delta.test.js +0 -15
- package/dist/providers/github-copilot/model.delta.test.js.map +0 -1
- package/dist/providers/github-copilot/model.js +0 -498
- package/dist/providers/github-copilot/model.js.map +0 -1
- package/dist/providers/github-copilot/model.test.d.ts +0 -2
- package/dist/providers/github-copilot/model.test.d.ts.map +0 -1
- package/dist/providers/github-copilot/model.test.js +0 -63
- package/dist/providers/github-copilot/model.test.js.map +0 -1
- package/dist/providers/github-copilot/provider.d.ts +0 -15
- package/dist/providers/github-copilot/provider.d.ts.map +0 -1
- package/dist/providers/github-copilot/provider.js +0 -25
- package/dist/providers/github-copilot/provider.js.map +0 -1
- package/dist/providers/github-copilot/provider.test.d.ts +0 -2
- package/dist/providers/github-copilot/provider.test.d.ts.map +0 -1
- package/dist/providers/github-copilot/provider.test.js +0 -52
- package/dist/providers/github-copilot/provider.test.js.map +0 -1
- package/dist/providers/github-copilot/utils.d.ts +0 -20
- package/dist/providers/github-copilot/utils.d.ts.map +0 -1
- package/dist/providers/github-copilot/utils.js +0 -142
- package/dist/providers/github-copilot/utils.js.map +0 -1
- package/dist/providers/github-copilot/utils.test.d.ts +0 -2
- package/dist/providers/github-copilot/utils.test.d.ts.map +0 -1
- package/dist/providers/github-copilot/utils.test.js +0 -21
- package/dist/providers/github-copilot/utils.test.js.map +0 -1
- package/dist/providers/openai-compatible/api.d.ts +0 -17
- package/dist/providers/openai-compatible/api.d.ts.map +0 -1
- package/dist/providers/openai-compatible/api.js +0 -58
- package/dist/providers/openai-compatible/api.js.map +0 -1
- package/dist/providers/openai-compatible/model.d.ts +0 -17
- package/dist/providers/openai-compatible/model.d.ts.map +0 -1
- package/dist/providers/openai-compatible/model.js +0 -473
- package/dist/providers/openai-compatible/model.js.map +0 -1
- package/dist/providers/openai-compatible/provider.d.ts +0 -22
- package/dist/providers/openai-compatible/provider.d.ts.map +0 -1
- package/dist/providers/openai-compatible/provider.js +0 -43
- package/dist/providers/openai-compatible/provider.js.map +0 -1
- package/dist/providers/openai-compatible/reasoning-content.test.d.ts +0 -2
- package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +0 -1
- package/dist/providers/openai-compatible/reasoning-content.test.js +0 -258
- package/dist/providers/openai-compatible/reasoning-content.test.js.map +0 -1
- package/dist/providers/openai-compatible/utils.d.ts +0 -3
- package/dist/providers/openai-compatible/utils.d.ts.map +0 -1
- package/dist/providers/openai-compatible/utils.js +0 -11
- package/dist/providers/openai-compatible/utils.js.map +0 -1
- package/dist/providers/openrouter/api.d.ts +0 -39
- package/dist/providers/openrouter/api.d.ts.map +0 -1
- package/dist/providers/openrouter/api.js +0 -164
- package/dist/providers/openrouter/api.js.map +0 -1
- package/dist/providers/openrouter/converters.d.ts +0 -8
- package/dist/providers/openrouter/converters.d.ts.map +0 -1
- package/dist/providers/openrouter/converters.js +0 -391
- package/dist/providers/openrouter/converters.js.map +0 -1
- package/dist/providers/openrouter/converters.test.d.ts +0 -2
- package/dist/providers/openrouter/converters.test.d.ts.map +0 -1
- package/dist/providers/openrouter/converters.test.js +0 -179
- package/dist/providers/openrouter/converters.test.js.map +0 -1
- package/dist/providers/openrouter/index.d.ts +0 -4
- package/dist/providers/openrouter/index.d.ts.map +0 -1
- package/dist/providers/openrouter/index.js +0 -4
- package/dist/providers/openrouter/index.js.map +0 -1
- package/dist/providers/openrouter/model.d.ts +0 -14
- package/dist/providers/openrouter/model.d.ts.map +0 -1
- package/dist/providers/openrouter/model.js +0 -457
- package/dist/providers/openrouter/model.js.map +0 -1
- package/dist/providers/openrouter/provider.d.ts +0 -15
- package/dist/providers/openrouter/provider.d.ts.map +0 -1
- package/dist/providers/openrouter/provider.js +0 -21
- package/dist/providers/openrouter/provider.js.map +0 -1
- package/dist/providers/openrouter/reasoning-content.test.d.ts +0 -2
- package/dist/providers/openrouter/reasoning-content.test.d.ts.map +0 -1
- package/dist/providers/openrouter/reasoning-content.test.js +0 -122
- package/dist/providers/openrouter/reasoning-content.test.js.map +0 -1
- package/dist/providers/openrouter/utils.d.ts +0 -11
- package/dist/providers/openrouter/utils.d.ts.map +0 -1
- package/dist/providers/openrouter/utils.js +0 -29
- package/dist/providers/openrouter/utils.js.map +0 -1
- package/dist/providers/openrouter.api.retry.test.d.ts +0 -2
- package/dist/providers/openrouter.api.retry.test.d.ts.map +0 -1
- package/dist/providers/openrouter.api.retry.test.js +0 -148
- package/dist/providers/openrouter.api.retry.test.js.map +0 -1
- package/dist/providers/openrouter.test.d.ts +0 -2
- package/dist/providers/openrouter.test.d.ts.map +0 -1
- package/dist/providers/openrouter.test.js +0 -1449
- package/dist/providers/openrouter.test.js.map +0 -1
- package/dist/safety-checker.js +0 -57
- package/dist/services/check_mock.d.ts +0 -2
- package/dist/services/check_mock.d.ts.map +0 -1
- package/dist/services/check_mock.js +0 -22
- package/dist/services/check_mock.js.map +0 -1
- package/dist/services/conversation-service.test.d.ts +0 -2
- package/dist/services/conversation-service.test.d.ts.map +0 -1
- package/dist/services/conversation-service.test.js +0 -156
- package/dist/services/conversation-service.test.js.map +0 -1
- package/dist/services/subagents/reasoning-inheritance.test.d.ts +0 -2
- package/dist/services/subagents/reasoning-inheritance.test.d.ts.map +0 -1
- package/dist/services/subagents/reasoning-inheritance.test.js +0 -73
- package/dist/services/subagents/reasoning-inheritance.test.js.map +0 -1
- package/dist/tools/bash.d.ts +0 -10
- package/dist/tools/bash.d.ts.map +0 -1
- package/dist/tools/bash.js +0 -55
- package/dist/tools/bash.js.map +0 -1
- package/dist/utils/command-safety.d.ts +0 -21
- package/dist/utils/command-safety.d.ts.map +0 -1
- package/dist/utils/command-safety.devnull.test.d.ts +0 -2
- package/dist/utils/command-safety.devnull.test.d.ts.map +0 -1
- package/dist/utils/command-safety.devnull.test.js +0 -13
- package/dist/utils/command-safety.devnull.test.js.map +0 -1
- package/dist/utils/command-safety.js +0 -348
- package/dist/utils/command-safety.js.map +0 -1
- package/dist/utils/extract-command-messages.test.d.ts +0 -2
- package/dist/utils/extract-command-messages.test.d.ts.map +0 -1
- package/dist/utils/provider-traffic-extractor.repro.test.d.ts +0 -2
- package/dist/utils/provider-traffic-extractor.repro.test.d.ts.map +0 -1
- package/dist/utils/provider-traffic-extractor.repro.test.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-events.d.ts","sourceRoot":"","sources":["../../source/services/conversation-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,mBAAmB,GACnB,gBAAgB,GAChB,mBAAmB,GACnB,qBAAqB,GACrB,gBAAgB,GAChB,kBAAkB,GAClB,UAAU,GACV,UAAU,GACV,oBAAoB,GACpB,wBAAwB,GACxB,2BAA2B,GAC3B,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-events.d.ts","sourceRoot":"","sources":["../../source/services/conversation-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -120,7 +120,9 @@ test('integration: approval round-trip (approval_required -> continue -> final)'
|
|
|
120
120
|
t.is(final?.type === 'response' ? final.finalText : '', 'Approved run');
|
|
121
121
|
t.deepEqual(approvalState.approved, [interruption]);
|
|
122
122
|
t.deepEqual(approvalState.rejected, []);
|
|
123
|
-
t.
|
|
123
|
+
t.truthy(continueOptions);
|
|
124
|
+
t.is(continueOptions.previousResponseId, 'resp-before-approval');
|
|
125
|
+
t.is(continueOptions.sessionId, 'default');
|
|
124
126
|
});
|
|
125
127
|
test('integration: hallucination retry retries once and succeeds', async (t) => {
|
|
126
128
|
let startCalls = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-integration.test.js","sourceRoot":"","sources":["../../source/services/conversation-integration.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"conversation-integration.test.js","sourceRoot":"","sources":["../../source/services/conversation-integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { AgentInputItem } from '@openai/agents';
|
|
2
|
+
import type { NormalizedUsage } from '../utils/token-usage.js';
|
|
3
|
+
import type { CommandMessage } from '../tools/types.js';
|
|
4
|
+
import type { SubagentResult } from './subagents/types.js';
|
|
5
|
+
import type { SavedToolExecution } from './tool-execution-ledger.js';
|
|
6
|
+
import type { SavedAppMode, SavedMessage } from './conversation-persistence-types.js';
|
|
7
|
+
export declare const LOG_ENVELOPE_VERSION = 1;
|
|
8
|
+
export interface StateSnapshot {
|
|
9
|
+
history: AgentInputItem[];
|
|
10
|
+
previousResponseId: string | null;
|
|
11
|
+
toolLedger: SavedToolExecution[];
|
|
12
|
+
model?: string;
|
|
13
|
+
provider?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SessionInitEvent {
|
|
16
|
+
type: 'session_init';
|
|
17
|
+
id: string;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
projectPath?: string;
|
|
20
|
+
sshHost?: string;
|
|
21
|
+
appMode?: SavedAppMode;
|
|
22
|
+
model?: string;
|
|
23
|
+
provider?: string;
|
|
24
|
+
reasoningEffort?: string;
|
|
25
|
+
forkedFrom?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface SettingsChangedEvent {
|
|
28
|
+
type: 'settings_changed';
|
|
29
|
+
key: string;
|
|
30
|
+
value: unknown;
|
|
31
|
+
}
|
|
32
|
+
export interface UserMessageEvent {
|
|
33
|
+
type: 'user_message';
|
|
34
|
+
message: SavedMessage;
|
|
35
|
+
}
|
|
36
|
+
export interface ToolStartedLogEvent {
|
|
37
|
+
type: 'tool_started';
|
|
38
|
+
toolCallId: string;
|
|
39
|
+
toolName: string;
|
|
40
|
+
arguments: unknown;
|
|
41
|
+
}
|
|
42
|
+
export interface ToolResultLogEvent {
|
|
43
|
+
type: 'tool_result';
|
|
44
|
+
callId: string;
|
|
45
|
+
toolName: string;
|
|
46
|
+
status: 'completed' | 'failed' | 'aborted';
|
|
47
|
+
output?: unknown;
|
|
48
|
+
historyItems?: unknown[];
|
|
49
|
+
}
|
|
50
|
+
export interface CommandMessageLogEvent {
|
|
51
|
+
type: 'command_message';
|
|
52
|
+
message: CommandMessage;
|
|
53
|
+
}
|
|
54
|
+
export interface ApprovalRequiredLogEvent {
|
|
55
|
+
type: 'approval_required';
|
|
56
|
+
approval: {
|
|
57
|
+
callId?: string;
|
|
58
|
+
toolName: string;
|
|
59
|
+
argumentsText?: string;
|
|
60
|
+
agentName?: string;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export interface ApprovalResolvedLogEvent {
|
|
64
|
+
type: 'approval_resolved';
|
|
65
|
+
answer: 'y' | 'n';
|
|
66
|
+
rejectionReason?: string;
|
|
67
|
+
}
|
|
68
|
+
export interface SubagentStartedLogEvent {
|
|
69
|
+
type: 'subagent_started';
|
|
70
|
+
agentId: string;
|
|
71
|
+
role: string;
|
|
72
|
+
task: string;
|
|
73
|
+
}
|
|
74
|
+
export interface SubagentCompletedLogEvent {
|
|
75
|
+
type: 'subagent_completed';
|
|
76
|
+
result: SubagentResult;
|
|
77
|
+
}
|
|
78
|
+
export interface ErrorLogEvent {
|
|
79
|
+
type: 'error';
|
|
80
|
+
message: string;
|
|
81
|
+
kind?: string;
|
|
82
|
+
}
|
|
83
|
+
export interface AssistantFinalEvent {
|
|
84
|
+
type: 'assistant_final';
|
|
85
|
+
message: SavedMessage;
|
|
86
|
+
finalText: string;
|
|
87
|
+
reasoningText?: string;
|
|
88
|
+
usage?: NormalizedUsage;
|
|
89
|
+
snapshot: StateSnapshot;
|
|
90
|
+
}
|
|
91
|
+
export interface UndoEvent {
|
|
92
|
+
type: 'undo';
|
|
93
|
+
removedUserTurns: number;
|
|
94
|
+
snapshot: StateSnapshot;
|
|
95
|
+
}
|
|
96
|
+
export interface SessionClearedEvent {
|
|
97
|
+
type: 'session_cleared';
|
|
98
|
+
}
|
|
99
|
+
export type LogEvent = SessionInitEvent | SettingsChangedEvent | UserMessageEvent | ToolStartedLogEvent | ToolResultLogEvent | CommandMessageLogEvent | ApprovalRequiredLogEvent | ApprovalResolvedLogEvent | SubagentStartedLogEvent | SubagentCompletedLogEvent | ErrorLogEvent | AssistantFinalEvent | UndoEvent | SessionClearedEvent;
|
|
100
|
+
export interface LogEnvelope {
|
|
101
|
+
v: typeof LOG_ENVELOPE_VERSION;
|
|
102
|
+
seq: number;
|
|
103
|
+
ts: string;
|
|
104
|
+
event: LogEvent;
|
|
105
|
+
}
|
|
106
|
+
export declare const AGENT_AFFECTING_SETTINGS: Set<string>;
|
|
107
|
+
//# sourceMappingURL=conversation-log-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-log-events.d.ts","sourceRoot":"","sources":["../../source/services/conversation-log-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export const LOG_ENVELOPE_VERSION = 1;
|
|
2
|
+
export const AGENT_AFFECTING_SETTINGS = new Set([
|
|
3
|
+
'agent.model',
|
|
4
|
+
'agent.provider',
|
|
5
|
+
'agent.reasoningEffort',
|
|
6
|
+
'agent.temperature',
|
|
7
|
+
'app.mentorMode',
|
|
8
|
+
'app.liteMode',
|
|
9
|
+
'app.planMode',
|
|
10
|
+
'app.orchestratorMode',
|
|
11
|
+
]);
|
|
12
|
+
//# sourceMappingURL=conversation-log-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-log-events.js","sourceRoot":"","sources":["../../source/services/conversation-log-events.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAmItC,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAS;IACtD,aAAa;IACb,gBAAgB;IAChB,uBAAuB;IACvB,mBAAmB;IACnB,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,sBAAsB;CACvB,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ILoggingService } from './service-interfaces.js';
|
|
2
|
+
import { type LogEvent, type SessionInitEvent } from './conversation-log-events.js';
|
|
3
|
+
export interface ConversationLogWriter {
|
|
4
|
+
readonly sessionId: string;
|
|
5
|
+
init(meta: Omit<SessionInitEvent, 'type'>): void;
|
|
6
|
+
append(event: LogEvent): void;
|
|
7
|
+
rotate(newSessionId: string, meta: Omit<SessionInitEvent, 'type'>): void;
|
|
8
|
+
flush(): Promise<void>;
|
|
9
|
+
close(): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export declare class LockConflictError extends Error {
|
|
12
|
+
readonly sessionId: string;
|
|
13
|
+
readonly lockPath: string;
|
|
14
|
+
readonly lockInfo: {
|
|
15
|
+
pid: number;
|
|
16
|
+
startedAt: string;
|
|
17
|
+
host: string;
|
|
18
|
+
} | null;
|
|
19
|
+
constructor(sessionId: string, lockPath: string, lockInfo: {
|
|
20
|
+
pid: number;
|
|
21
|
+
startedAt: string;
|
|
22
|
+
host: string;
|
|
23
|
+
} | null);
|
|
24
|
+
}
|
|
25
|
+
interface WriterOptions {
|
|
26
|
+
sessionId: string;
|
|
27
|
+
dir: string;
|
|
28
|
+
logger: ILoggingService;
|
|
29
|
+
}
|
|
30
|
+
declare function truncateForLog(event: LogEvent): LogEvent;
|
|
31
|
+
declare function acquireLock(dir: string, sessionId: string): void;
|
|
32
|
+
declare function releaseLock(dir: string, sessionId: string): void;
|
|
33
|
+
export declare function createConversationLogWriter(opts: WriterOptions): ConversationLogWriter;
|
|
34
|
+
export declare const __testing: {
|
|
35
|
+
truncateForLog: typeof truncateForLog;
|
|
36
|
+
acquireLock: typeof acquireLock;
|
|
37
|
+
releaseLock: typeof releaseLock;
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=conversation-log-writer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-log-writer.d.ts","sourceRoot":"","sources":["../../source/services/conversation-log-writer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAMtC,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACjD,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACzE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;gBAC/D,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAWnH;AAED,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,eAAe,CAAC;CACzB;AAuDD,iBAAS,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CA+BjD;AAED,iBAAS,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAwBzD;AAED,iBAAS,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAQzD;AAwHD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,aAAa,GAAG,qBAAqB,CAEtF;AAED,eAAO,MAAM,SAAS;;;;CAIrB,CAAC"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import os from 'os';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import { LOG_ENVELOPE_VERSION, } from './conversation-log-events.js';
|
|
5
|
+
import { saveLastConversation } from './conversation-persistence.js';
|
|
6
|
+
const FSYNC_EVENTS = new Set(['user_message', 'assistant_final', 'undo', 'session_init']);
|
|
7
|
+
const MAX_EVENT_BYTES = 256 * 1024;
|
|
8
|
+
export class LockConflictError extends Error {
|
|
9
|
+
sessionId;
|
|
10
|
+
lockPath;
|
|
11
|
+
lockInfo;
|
|
12
|
+
constructor(sessionId, lockPath, lockInfo) {
|
|
13
|
+
super(lockInfo
|
|
14
|
+
? `Conversation ${sessionId} is locked (pid ${lockInfo.pid}, started ${lockInfo.startedAt}, host ${lockInfo.host}).`
|
|
15
|
+
: `Conversation ${sessionId} is locked.`);
|
|
16
|
+
this.name = 'LockConflictError';
|
|
17
|
+
this.sessionId = sessionId;
|
|
18
|
+
this.lockPath = lockPath;
|
|
19
|
+
this.lockInfo = lockInfo;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function logPath(dir, sessionId) {
|
|
23
|
+
return path.join(dir, `${sessionId}.jsonl`);
|
|
24
|
+
}
|
|
25
|
+
function lockPath(dir, sessionId) {
|
|
26
|
+
return path.join(dir, `${sessionId}.lock`);
|
|
27
|
+
}
|
|
28
|
+
function ensureDir(dir) {
|
|
29
|
+
if (!fs.existsSync(dir)) {
|
|
30
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function sanitizeSubagentResult(value) {
|
|
34
|
+
if (!value) {
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
if (typeof value === 'string') {
|
|
38
|
+
const trimmed = value.trim();
|
|
39
|
+
if (trimmed.startsWith('{') && trimmed.endsWith('}')) {
|
|
40
|
+
try {
|
|
41
|
+
const parsed = JSON.parse(trimmed);
|
|
42
|
+
if (parsed && typeof parsed === 'object') {
|
|
43
|
+
const sanitized = sanitizeSubagentResult(parsed);
|
|
44
|
+
return JSON.stringify(sanitized);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
// Return original string
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return value;
|
|
52
|
+
}
|
|
53
|
+
if (Array.isArray(value)) {
|
|
54
|
+
return value.map(sanitizeSubagentResult);
|
|
55
|
+
}
|
|
56
|
+
if (typeof value === 'object') {
|
|
57
|
+
const obj = { ...value };
|
|
58
|
+
if ('nestedRunResult' in obj) {
|
|
59
|
+
delete obj.nestedRunResult;
|
|
60
|
+
}
|
|
61
|
+
for (const key of Object.keys(obj)) {
|
|
62
|
+
obj[key] = sanitizeSubagentResult(obj[key]);
|
|
63
|
+
}
|
|
64
|
+
return obj;
|
|
65
|
+
}
|
|
66
|
+
return value;
|
|
67
|
+
}
|
|
68
|
+
function truncateForLog(event) {
|
|
69
|
+
const serialized = JSON.stringify(event);
|
|
70
|
+
if (serialized.length <= MAX_EVENT_BYTES) {
|
|
71
|
+
return event;
|
|
72
|
+
}
|
|
73
|
+
const truncate = (value) => {
|
|
74
|
+
if (typeof value === 'string' && value.length > 1024) {
|
|
75
|
+
return value.slice(0, 1024) + '…[truncated for log]';
|
|
76
|
+
}
|
|
77
|
+
if (Array.isArray(value)) {
|
|
78
|
+
return value.map(truncate);
|
|
79
|
+
}
|
|
80
|
+
if (value && typeof value === 'object') {
|
|
81
|
+
const out = {};
|
|
82
|
+
for (const [k, v] of Object.entries(value)) {
|
|
83
|
+
out[k] = truncate(v);
|
|
84
|
+
}
|
|
85
|
+
return out;
|
|
86
|
+
}
|
|
87
|
+
return value;
|
|
88
|
+
};
|
|
89
|
+
const truncated = truncate(event);
|
|
90
|
+
const reserialized = JSON.stringify(truncated);
|
|
91
|
+
if (reserialized.length <= MAX_EVENT_BYTES) {
|
|
92
|
+
return truncated;
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
type: event.type,
|
|
96
|
+
truncated: true,
|
|
97
|
+
originalSize: serialized.length,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function acquireLock(dir, sessionId) {
|
|
101
|
+
const lp = lockPath(dir, sessionId);
|
|
102
|
+
const payload = JSON.stringify({ pid: process.pid, startedAt: new Date().toISOString(), host: os.hostname() });
|
|
103
|
+
let fd;
|
|
104
|
+
try {
|
|
105
|
+
fd = fs.openSync(lp, 'wx');
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
if (err?.code === 'EEXIST') {
|
|
109
|
+
let info = null;
|
|
110
|
+
try {
|
|
111
|
+
info = JSON.parse(fs.readFileSync(lp, 'utf-8'));
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
info = null;
|
|
115
|
+
}
|
|
116
|
+
throw new LockConflictError(sessionId, lp, info);
|
|
117
|
+
}
|
|
118
|
+
throw err;
|
|
119
|
+
}
|
|
120
|
+
try {
|
|
121
|
+
fs.writeSync(fd, payload);
|
|
122
|
+
fs.fsyncSync(fd);
|
|
123
|
+
}
|
|
124
|
+
finally {
|
|
125
|
+
fs.closeSync(fd);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function releaseLock(dir, sessionId) {
|
|
129
|
+
try {
|
|
130
|
+
fs.unlinkSync(lockPath(dir, sessionId));
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
if (err?.code !== 'ENOENT') {
|
|
134
|
+
// best-effort
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
class ConversationLogWriterImpl {
|
|
139
|
+
#sessionId;
|
|
140
|
+
#dir;
|
|
141
|
+
#logger;
|
|
142
|
+
#fd = null;
|
|
143
|
+
#seq = 0;
|
|
144
|
+
#closed = false;
|
|
145
|
+
#writeErrorLogged = false;
|
|
146
|
+
#projectPath;
|
|
147
|
+
#sshHost;
|
|
148
|
+
constructor(opts) {
|
|
149
|
+
this.#sessionId = opts.sessionId;
|
|
150
|
+
this.#dir = opts.dir;
|
|
151
|
+
this.#logger = opts.logger;
|
|
152
|
+
}
|
|
153
|
+
get sessionId() {
|
|
154
|
+
return this.#sessionId;
|
|
155
|
+
}
|
|
156
|
+
init(meta) {
|
|
157
|
+
this.#projectPath = meta.projectPath;
|
|
158
|
+
this.#sshHost = meta.sshHost;
|
|
159
|
+
ensureDir(this.#dir);
|
|
160
|
+
acquireLock(this.#dir, this.#sessionId);
|
|
161
|
+
this.#fd = fs.openSync(logPath(this.#dir, this.#sessionId), 'a');
|
|
162
|
+
this.append({ type: 'session_init', ...meta });
|
|
163
|
+
}
|
|
164
|
+
append(event) {
|
|
165
|
+
if (this.#closed || this.#fd === null) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
const sanitizedEvent = sanitizeSubagentResult(event);
|
|
169
|
+
const safeEvent = truncateForLog(sanitizedEvent);
|
|
170
|
+
const envelope = {
|
|
171
|
+
v: LOG_ENVELOPE_VERSION,
|
|
172
|
+
seq: ++this.#seq,
|
|
173
|
+
ts: new Date().toISOString(),
|
|
174
|
+
event: safeEvent,
|
|
175
|
+
};
|
|
176
|
+
const line = JSON.stringify(envelope) + '\n';
|
|
177
|
+
try {
|
|
178
|
+
fs.writeSync(this.#fd, line);
|
|
179
|
+
if (FSYNC_EVENTS.has(sanitizedEvent.type)) {
|
|
180
|
+
try {
|
|
181
|
+
fs.fsyncSync(this.#fd);
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
// ignore fsync errors; data is in kernel buffer
|
|
185
|
+
}
|
|
186
|
+
saveLastConversation(this.#sessionId, this.#projectPath, this.#sshHost);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
if (!this.#writeErrorLogged) {
|
|
191
|
+
this.#writeErrorLogged = true;
|
|
192
|
+
this.#logger.error('Conversation log write failed', {
|
|
193
|
+
eventType: 'conversation_log.write_failed',
|
|
194
|
+
category: 'persistence',
|
|
195
|
+
sessionId: this.#sessionId,
|
|
196
|
+
errorMessage: err instanceof Error ? err.message : String(err),
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
rotate(newSessionId, meta) {
|
|
202
|
+
if (this.#fd !== null) {
|
|
203
|
+
try {
|
|
204
|
+
fs.fsyncSync(this.#fd);
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
// ignore
|
|
208
|
+
}
|
|
209
|
+
try {
|
|
210
|
+
fs.closeSync(this.#fd);
|
|
211
|
+
}
|
|
212
|
+
catch {
|
|
213
|
+
// ignore
|
|
214
|
+
}
|
|
215
|
+
this.#fd = null;
|
|
216
|
+
}
|
|
217
|
+
releaseLock(this.#dir, this.#sessionId);
|
|
218
|
+
this.#sessionId = newSessionId;
|
|
219
|
+
this.#seq = 0;
|
|
220
|
+
this.#writeErrorLogged = false;
|
|
221
|
+
this.init(meta);
|
|
222
|
+
}
|
|
223
|
+
async flush() {
|
|
224
|
+
if (this.#fd !== null) {
|
|
225
|
+
try {
|
|
226
|
+
fs.fsyncSync(this.#fd);
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
// ignore
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
async close() {
|
|
234
|
+
if (this.#closed)
|
|
235
|
+
return;
|
|
236
|
+
this.#closed = true;
|
|
237
|
+
if (this.#fd !== null) {
|
|
238
|
+
try {
|
|
239
|
+
fs.fsyncSync(this.#fd);
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
// ignore
|
|
243
|
+
}
|
|
244
|
+
try {
|
|
245
|
+
fs.closeSync(this.#fd);
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
// ignore
|
|
249
|
+
}
|
|
250
|
+
this.#fd = null;
|
|
251
|
+
}
|
|
252
|
+
saveLastConversation(this.#sessionId, this.#projectPath, this.#sshHost);
|
|
253
|
+
releaseLock(this.#dir, this.#sessionId);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
export function createConversationLogWriter(opts) {
|
|
257
|
+
return new ConversationLogWriterImpl(opts);
|
|
258
|
+
}
|
|
259
|
+
export const __testing = {
|
|
260
|
+
truncateForLog,
|
|
261
|
+
acquireLock,
|
|
262
|
+
releaseLock,
|
|
263
|
+
};
|
|
264
|
+
//# sourceMappingURL=conversation-log-writer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-log-writer.js","sourceRoot":"","sources":["../../source/services/conversation-log-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface SavedMessage {
|
|
2
|
+
id: string;
|
|
3
|
+
sender: string;
|
|
4
|
+
text?: string;
|
|
5
|
+
[key: string]: unknown;
|
|
6
|
+
}
|
|
7
|
+
export interface SavedAppMode {
|
|
8
|
+
mentorMode: boolean;
|
|
9
|
+
liteMode: boolean;
|
|
10
|
+
planMode: boolean;
|
|
11
|
+
/** Optional: absent in saves from before orchestrator mode was introduced. Treat undefined as false. */
|
|
12
|
+
orchestratorMode?: boolean;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=conversation-persistence-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-persistence-types.d.ts","sourceRoot":"","sources":["../../source/services/conversation-persistence-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,wGAAwG;IACxG,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-persistence-types.js","sourceRoot":"","sources":["../../source/services/conversation-persistence-types.ts"],"names":[],"mappings":""}
|
|
@@ -1,55 +1,54 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
sender: string;
|
|
5
|
-
text?: string;
|
|
6
|
-
[key: string]: unknown;
|
|
7
|
-
}
|
|
8
|
-
export interface SavedAppMode {
|
|
9
|
-
mentorMode: boolean;
|
|
10
|
-
liteMode: boolean;
|
|
11
|
-
planMode: boolean;
|
|
12
|
-
/** Optional: absent in saves from before orchestrator mode was introduced. Treat undefined as false. */
|
|
13
|
-
orchestratorMode?: boolean;
|
|
14
|
-
}
|
|
15
|
-
export interface SavedConversation {
|
|
16
|
-
id: string;
|
|
17
|
-
createdAt: string;
|
|
18
|
-
updatedAt: string;
|
|
19
|
-
projectPath?: string;
|
|
20
|
-
sshHost?: string;
|
|
21
|
-
appMode?: SavedAppMode;
|
|
22
|
-
model?: string;
|
|
23
|
-
provider?: string;
|
|
24
|
-
reasoningEffort?: string;
|
|
25
|
-
previousResponseId: string | null;
|
|
26
|
-
history: unknown[];
|
|
27
|
-
messages: SavedMessage[];
|
|
28
|
-
historyRepair?: ConversationHistoryRepairSummary;
|
|
29
|
-
}
|
|
1
|
+
import { type RestoredState } from './conversation-replay.js';
|
|
2
|
+
export type { SavedAppMode, SavedMessage } from './conversation-persistence-types.js';
|
|
3
|
+
export type { RestoredState } from './conversation-replay.js';
|
|
30
4
|
export type LoadConversationForProjectResult = {
|
|
31
5
|
status: 'loaded';
|
|
32
|
-
conversation:
|
|
6
|
+
conversation: RestoredState;
|
|
33
7
|
} | {
|
|
34
8
|
status: 'not_found';
|
|
35
9
|
} | {
|
|
36
10
|
status: 'project_mismatch';
|
|
37
|
-
conversation:
|
|
11
|
+
conversation: RestoredState;
|
|
12
|
+
} | {
|
|
13
|
+
status: 'locked';
|
|
14
|
+
lockPath: string;
|
|
15
|
+
lockInfo: {
|
|
16
|
+
pid: number;
|
|
17
|
+
startedAt: string;
|
|
18
|
+
host: string;
|
|
19
|
+
} | null;
|
|
38
20
|
};
|
|
39
|
-
/**
|
|
40
|
-
* Expose the conversations directory for testing purposes.
|
|
41
|
-
*/
|
|
42
21
|
export declare function getConversationsDirForTest(): string;
|
|
43
22
|
export declare function setConversationsDirForTest(dir: string | null): void;
|
|
23
|
+
declare function getConversationPath(id: string): string;
|
|
24
|
+
declare function getLockPath(id: string): string;
|
|
44
25
|
export declare function generateId(): string;
|
|
45
|
-
export declare function
|
|
46
|
-
export declare function loadConversation(id: string, expectedProjectPath?: string, expectedSshHost?: string): SavedConversation | null;
|
|
26
|
+
export declare function loadConversation(id: string, expectedProjectPath?: string, expectedSshHost?: string): RestoredState | null;
|
|
47
27
|
export declare function loadConversationForProject(id: string, expectedProjectPath: string, expectedSshHost?: string): LoadConversationForProjectResult;
|
|
48
|
-
export declare function loadLastConversation(expectedProjectPath?: string, expectedSshHost?: string):
|
|
28
|
+
export declare function loadLastConversation(expectedProjectPath?: string, expectedSshHost?: string): RestoredState | null;
|
|
29
|
+
export declare function isConversationLocked(id: string): {
|
|
30
|
+
pid: number;
|
|
31
|
+
startedAt: string;
|
|
32
|
+
host: string;
|
|
33
|
+
} | null;
|
|
49
34
|
export declare function deleteConversation(id: string): boolean;
|
|
50
|
-
|
|
35
|
+
interface ConversationListEntry {
|
|
51
36
|
id: string;
|
|
52
37
|
updatedAt: string;
|
|
53
|
-
|
|
38
|
+
projectPath?: string;
|
|
39
|
+
sshHost?: string;
|
|
40
|
+
}
|
|
41
|
+
export declare function listConversations(): ConversationListEntry[];
|
|
54
42
|
export declare function getResumeCommand(id: string, sshHost?: string, remoteDir?: string, sshPort?: number): string;
|
|
43
|
+
/**
|
|
44
|
+
* Fork a conversation: copy <sourceId>.jsonl to <newId>.jsonl and return the new id.
|
|
45
|
+
* The source is untouched. The new file is ready to be opened by a fresh writer.
|
|
46
|
+
*/
|
|
47
|
+
export declare function forkConversation(sourceId: string, newId: string): boolean;
|
|
48
|
+
export declare function hasConversationContent(id: string): boolean;
|
|
49
|
+
export declare function saveLastConversation(id: string, projectPath?: string, sshHost?: string): void;
|
|
50
|
+
export declare const __testing: {
|
|
51
|
+
getConversationPath: typeof getConversationPath;
|
|
52
|
+
getLockPath: typeof getLockPath;
|
|
53
|
+
};
|
|
55
54
|
//# sourceMappingURL=conversation-persistence.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-persistence.d.ts","sourceRoot":"","sources":["../../source/services/conversation-persistence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conversation-persistence.d.ts","sourceRoot":"","sources":["../../source/services/conversation-persistence.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE5E,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACtF,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAM9D,MAAM,MAAM,gCAAgC,GACxC;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,YAAY,EAAE,aAAa,CAAA;CAAE,GACjD;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,YAAY,EAAE,aAAa,CAAA;CAAE,GAC3D;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,CAAC;AAM9G,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEnE;AAUD,iBAAS,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,iBAAS,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEvC;AA+CD,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAkCD,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,MAAM,EACV,mBAAmB,CAAC,EAAE,MAAM,EAC5B,eAAe,CAAC,EAAE,MAAM,GACvB,aAAa,GAAG,IAAI,CAmBtB;AAED,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,MAAM,EACV,mBAAmB,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,GACvB,gCAAgC,CAelC;AAED,wBAAgB,oBAAoB,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAiBjH;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAUxG;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAkCtD;AAED,UAAU,qBAAqB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,IAAI,qBAAqB,EAAE,CA+B3D;AAyBD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAa3G;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CASzE;AAUD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAmB1D;AAgFD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAc7F;AAED,eAAO,MAAM,SAAS;;;CAGrB,CAAC"}
|