@ottocode/web-sdk 0.1.173
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 +187 -0
- package/dist/assets/fonts/JetBrainsMonoNerdFontMono-Bold.woff2 +0 -0
- package/dist/assets/fonts/JetBrainsMonoNerdFontMono-BoldItalic.woff2 +0 -0
- package/dist/assets/fonts/JetBrainsMonoNerdFontMono-Italic.woff2 +0 -0
- package/dist/assets/fonts/JetBrainsMonoNerdFontMono-Regular.woff2 +0 -0
- package/dist/assets/provider-logos.d.ts +12 -0
- package/dist/assets/provider-logos.d.ts.map +1 -0
- package/dist/assets/provider-logos.js +40 -0
- package/dist/assets/provider-logos.js.map +1 -0
- package/dist/components/branch/BranchModal.d.ts +11 -0
- package/dist/components/branch/BranchModal.d.ts.map +1 -0
- package/dist/components/branch/BranchModal.js +45 -0
- package/dist/components/branch/BranchModal.js.map +1 -0
- package/dist/components/chat/ChatInput.d.ts +35 -0
- package/dist/components/chat/ChatInput.d.ts.map +1 -0
- package/dist/components/chat/ChatInput.js +210 -0
- package/dist/components/chat/ChatInput.js.map +1 -0
- package/dist/components/chat/ChatInputContainer.d.ts +12 -0
- package/dist/components/chat/ChatInputContainer.d.ts.map +1 -0
- package/dist/components/chat/ChatInputContainer.js +295 -0
- package/dist/components/chat/ChatInputContainer.js.map +1 -0
- package/dist/components/chat/ChatInputKeyHandler.d.ts +27 -0
- package/dist/components/chat/ChatInputKeyHandler.d.ts.map +1 -0
- package/dist/components/chat/ChatInputKeyHandler.js +75 -0
- package/dist/components/chat/ChatInputKeyHandler.js.map +1 -0
- package/dist/components/chat/CommandSuggestionsPopup.d.ts +11 -0
- package/dist/components/chat/CommandSuggestionsPopup.d.ts.map +1 -0
- package/dist/components/chat/CommandSuggestionsPopup.js +43 -0
- package/dist/components/chat/CommandSuggestionsPopup.js.map +1 -0
- package/dist/components/chat/ConfigModal.d.ts +19 -0
- package/dist/components/chat/ConfigModal.d.ts.map +1 -0
- package/dist/components/chat/ConfigModal.js +47 -0
- package/dist/components/chat/ConfigModal.js.map +1 -0
- package/dist/components/chat/ConfigSelector.d.ts +11 -0
- package/dist/components/chat/ConfigSelector.d.ts.map +1 -0
- package/dist/components/chat/ConfigSelector.js +47 -0
- package/dist/components/chat/ConfigSelector.js.map +1 -0
- package/dist/components/chat/FileMentionPopup.d.ts +15 -0
- package/dist/components/chat/FileMentionPopup.d.ts.map +1 -0
- package/dist/components/chat/FileMentionPopup.js +123 -0
- package/dist/components/chat/FileMentionPopup.js.map +1 -0
- package/dist/components/chat/ShortcutsModal.d.ts +7 -0
- package/dist/components/chat/ShortcutsModal.d.ts.map +1 -0
- package/dist/components/chat/ShortcutsModal.js +275 -0
- package/dist/components/chat/ShortcutsModal.js.map +1 -0
- package/dist/components/chat/StopButton.d.ts +8 -0
- package/dist/components/chat/StopButton.d.ts.map +1 -0
- package/dist/components/chat/StopButton.js +25 -0
- package/dist/components/chat/StopButton.js.map +1 -0
- package/dist/components/chat/UnifiedAgentSelector.d.ts +12 -0
- package/dist/components/chat/UnifiedAgentSelector.d.ts.map +1 -0
- package/dist/components/chat/UnifiedAgentSelector.js +107 -0
- package/dist/components/chat/UnifiedAgentSelector.js.map +1 -0
- package/dist/components/chat/UnifiedModelSelector.d.ts +12 -0
- package/dist/components/chat/UnifiedModelSelector.d.ts.map +1 -0
- package/dist/components/chat/UnifiedModelSelector.js +198 -0
- package/dist/components/chat/UnifiedModelSelector.js.map +1 -0
- package/dist/components/common/ProviderLogo.d.ts +8 -0
- package/dist/components/common/ProviderLogo.d.ts.map +1 -0
- package/dist/components/common/ProviderLogo.js +29 -0
- package/dist/components/common/ProviderLogo.js.map +1 -0
- package/dist/components/common/StatusIndicator.d.ts +10 -0
- package/dist/components/common/StatusIndicator.d.ts.map +1 -0
- package/dist/components/common/StatusIndicator.js +57 -0
- package/dist/components/common/StatusIndicator.js.map +1 -0
- package/dist/components/git/GitCommitModal.d.ts +2 -0
- package/dist/components/git/GitCommitModal.d.ts.map +1 -0
- package/dist/components/git/GitCommitModal.js +70 -0
- package/dist/components/git/GitCommitModal.js.map +1 -0
- package/dist/components/git/GitDiffPanel.d.ts +2 -0
- package/dist/components/git/GitDiffPanel.d.ts.map +1 -0
- package/dist/components/git/GitDiffPanel.js +54 -0
- package/dist/components/git/GitDiffPanel.js.map +1 -0
- package/dist/components/git/GitDiffViewer.d.ts +7 -0
- package/dist/components/git/GitDiffViewer.d.ts.map +1 -0
- package/dist/components/git/GitDiffViewer.js +203 -0
- package/dist/components/git/GitDiffViewer.js.map +1 -0
- package/dist/components/git/GitFileItem.d.ts +9 -0
- package/dist/components/git/GitFileItem.d.ts.map +1 -0
- package/dist/components/git/GitFileItem.js +145 -0
- package/dist/components/git/GitFileItem.js.map +1 -0
- package/dist/components/git/GitFileList.d.ts +7 -0
- package/dist/components/git/GitFileList.d.ts.map +1 -0
- package/dist/components/git/GitFileList.js +108 -0
- package/dist/components/git/GitFileList.js.map +1 -0
- package/dist/components/git/GitSidebar.d.ts +2 -0
- package/dist/components/git/GitSidebar.d.ts.map +1 -0
- package/dist/components/git/GitSidebar.js +52 -0
- package/dist/components/git/GitSidebar.js.map +1 -0
- package/dist/components/git/GitSidebarToggle.d.ts +2 -0
- package/dist/components/git/GitSidebarToggle.d.ts.map +1 -0
- package/dist/components/git/GitSidebarToggle.js +16 -0
- package/dist/components/git/GitSidebarToggle.js.map +1 -0
- package/dist/components/index.d.ts +47 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +60 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/messages/AssistantMessageGroup.d.ts +17 -0
- package/dist/components/messages/AssistantMessageGroup.d.ts.map +1 -0
- package/dist/components/messages/AssistantMessageGroup.js +176 -0
- package/dist/components/messages/AssistantMessageGroup.js.map +1 -0
- package/dist/components/messages/MessagePartItem.d.ts +20 -0
- package/dist/components/messages/MessagePartItem.d.ts.map +1 -0
- package/dist/components/messages/MessagePartItem.js +353 -0
- package/dist/components/messages/MessagePartItem.js.map +1 -0
- package/dist/components/messages/MessageThread.d.ts +12 -0
- package/dist/components/messages/MessageThread.d.ts.map +1 -0
- package/dist/components/messages/MessageThread.js +239 -0
- package/dist/components/messages/MessageThread.js.map +1 -0
- package/dist/components/messages/MessageThreadContainer.d.ts +7 -0
- package/dist/components/messages/MessageThreadContainer.d.ts.map +1 -0
- package/dist/components/messages/MessageThreadContainer.js +22 -0
- package/dist/components/messages/MessageThreadContainer.js.map +1 -0
- package/dist/components/messages/ToolApprovalCard.d.ts +11 -0
- package/dist/components/messages/ToolApprovalCard.d.ts.map +1 -0
- package/dist/components/messages/ToolApprovalCard.js +139 -0
- package/dist/components/messages/ToolApprovalCard.js.map +1 -0
- package/dist/components/messages/TopupApprovalCard.d.ts +9 -0
- package/dist/components/messages/TopupApprovalCard.d.ts.map +1 -0
- package/dist/components/messages/TopupApprovalCard.js +51 -0
- package/dist/components/messages/TopupApprovalCard.js.map +1 -0
- package/dist/components/messages/UserMessageGroup.d.ts +10 -0
- package/dist/components/messages/UserMessageGroup.d.ts.map +1 -0
- package/dist/components/messages/UserMessageGroup.js +132 -0
- package/dist/components/messages/UserMessageGroup.js.map +1 -0
- package/dist/components/messages/renderers/ApplyPatchRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/ApplyPatchRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/ApplyPatchRenderer.js +55 -0
- package/dist/components/messages/renderers/ApplyPatchRenderer.js.map +1 -0
- package/dist/components/messages/renderers/BashRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/BashRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/BashRenderer.js +55 -0
- package/dist/components/messages/renderers/BashRenderer.js.map +1 -0
- package/dist/components/messages/renderers/DatabaseToolRenderer.d.ts +8 -0
- package/dist/components/messages/renderers/DatabaseToolRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/DatabaseToolRenderer.js +151 -0
- package/dist/components/messages/renderers/DatabaseToolRenderer.js.map +1 -0
- package/dist/components/messages/renderers/DebugRenderer.d.ts +5 -0
- package/dist/components/messages/renderers/DebugRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/DebugRenderer.js +5 -0
- package/dist/components/messages/renderers/DebugRenderer.js.map +1 -0
- package/dist/components/messages/renderers/DiffView.d.ts +6 -0
- package/dist/components/messages/renderers/DiffView.d.ts.map +1 -0
- package/dist/components/messages/renderers/DiffView.js +206 -0
- package/dist/components/messages/renderers/DiffView.js.map +1 -0
- package/dist/components/messages/renderers/EditRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/EditRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/EditRenderer.js +25 -0
- package/dist/components/messages/renderers/EditRenderer.js.map +1 -0
- package/dist/components/messages/renderers/ErrorRenderer.d.ts +11 -0
- package/dist/components/messages/renderers/ErrorRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/ErrorRenderer.js +157 -0
- package/dist/components/messages/renderers/ErrorRenderer.js.map +1 -0
- package/dist/components/messages/renderers/FinishRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/FinishRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/FinishRenderer.js +7 -0
- package/dist/components/messages/renderers/FinishRenderer.js.map +1 -0
- package/dist/components/messages/renderers/GenericRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/GenericRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/GenericRenderer.js +45 -0
- package/dist/components/messages/renderers/GenericRenderer.js.map +1 -0
- package/dist/components/messages/renderers/GitCommitRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/GitCommitRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/GitCommitRenderer.js +21 -0
- package/dist/components/messages/renderers/GitCommitRenderer.js.map +1 -0
- package/dist/components/messages/renderers/GitDiffRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/GitDiffRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/GitDiffRenderer.js +34 -0
- package/dist/components/messages/renderers/GitDiffRenderer.js.map +1 -0
- package/dist/components/messages/renderers/GitStatusRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/GitStatusRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/GitStatusRenderer.js +60 -0
- package/dist/components/messages/renderers/GitStatusRenderer.js.map +1 -0
- package/dist/components/messages/renderers/ListRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/ListRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/ListRenderer.js +28 -0
- package/dist/components/messages/renderers/ListRenderer.js.map +1 -0
- package/dist/components/messages/renderers/ProgressUpdateRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/ProgressUpdateRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/ProgressUpdateRenderer.js +9 -0
- package/dist/components/messages/renderers/ProgressUpdateRenderer.js.map +1 -0
- package/dist/components/messages/renderers/ReadRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/ReadRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/ReadRenderer.js +87 -0
- package/dist/components/messages/renderers/ReadRenderer.js.map +1 -0
- package/dist/components/messages/renderers/ReasoningRenderer.d.ts +7 -0
- package/dist/components/messages/renderers/ReasoningRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/ReasoningRenderer.js +34 -0
- package/dist/components/messages/renderers/ReasoningRenderer.js.map +1 -0
- package/dist/components/messages/renderers/SearchRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/SearchRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/SearchRenderer.js +52 -0
- package/dist/components/messages/renderers/SearchRenderer.js.map +1 -0
- package/dist/components/messages/renderers/TodosRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/TodosRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/TodosRenderer.js +15 -0
- package/dist/components/messages/renderers/TodosRenderer.js.map +1 -0
- package/dist/components/messages/renderers/ToolErrorDisplay.d.ts +12 -0
- package/dist/components/messages/renderers/ToolErrorDisplay.d.ts.map +1 -0
- package/dist/components/messages/renderers/ToolErrorDisplay.js +10 -0
- package/dist/components/messages/renderers/ToolErrorDisplay.js.map +1 -0
- package/dist/components/messages/renderers/TreeRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/TreeRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/TreeRenderer.js +33 -0
- package/dist/components/messages/renderers/TreeRenderer.js.map +1 -0
- package/dist/components/messages/renderers/WebSearchRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/WebSearchRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/WebSearchRenderer.js +29 -0
- package/dist/components/messages/renderers/WebSearchRenderer.js.map +1 -0
- package/dist/components/messages/renderers/WriteRenderer.d.ts +3 -0
- package/dist/components/messages/renderers/WriteRenderer.d.ts.map +1 -0
- package/dist/components/messages/renderers/WriteRenderer.js +28 -0
- package/dist/components/messages/renderers/WriteRenderer.js.map +1 -0
- package/dist/components/messages/renderers/index.d.ts +16 -0
- package/dist/components/messages/renderers/index.d.ts.map +1 -0
- package/dist/components/messages/renderers/index.js +114 -0
- package/dist/components/messages/renderers/index.js.map +1 -0
- package/dist/components/messages/renderers/shared/CopyButton.d.ts +8 -0
- package/dist/components/messages/renderers/shared/CopyButton.d.ts.map +1 -0
- package/dist/components/messages/renderers/shared/CopyButton.js +27 -0
- package/dist/components/messages/renderers/shared/CopyButton.js.map +1 -0
- package/dist/components/messages/renderers/shared/ToolContentBox.d.ts +13 -0
- package/dist/components/messages/renderers/shared/ToolContentBox.d.ts.map +1 -0
- package/dist/components/messages/renderers/shared/ToolContentBox.js +9 -0
- package/dist/components/messages/renderers/shared/ToolContentBox.js.map +1 -0
- package/dist/components/messages/renderers/shared/ToolHeader.d.ts +29 -0
- package/dist/components/messages/renderers/shared/ToolHeader.d.ts.map +1 -0
- package/dist/components/messages/renderers/shared/ToolHeader.js +69 -0
- package/dist/components/messages/renderers/shared/ToolHeader.js.map +1 -0
- package/dist/components/messages/renderers/shared/index.d.ts +4 -0
- package/dist/components/messages/renderers/shared/index.d.ts.map +1 -0
- package/dist/components/messages/renderers/shared/index.js +4 -0
- package/dist/components/messages/renderers/shared/index.js.map +1 -0
- package/dist/components/messages/renderers/types.d.ts +118 -0
- package/dist/components/messages/renderers/types.d.ts.map +1 -0
- package/dist/components/messages/renderers/types.js +2 -0
- package/dist/components/messages/renderers/types.js.map +1 -0
- package/dist/components/messages/renderers/utils.d.ts +26 -0
- package/dist/components/messages/renderers/utils.d.ts.map +1 -0
- package/dist/components/messages/renderers/utils.js +60 -0
- package/dist/components/messages/renderers/utils.js.map +1 -0
- package/dist/components/onboarding/OnboardingModal.d.ts +6 -0
- package/dist/components/onboarding/OnboardingModal.d.ts.map +1 -0
- package/dist/components/onboarding/OnboardingModal.js +22 -0
- package/dist/components/onboarding/OnboardingModal.js.map +1 -0
- package/dist/components/onboarding/index.d.ts +4 -0
- package/dist/components/onboarding/index.d.ts.map +1 -0
- package/dist/components/onboarding/index.js +4 -0
- package/dist/components/onboarding/index.js.map +1 -0
- package/dist/components/onboarding/steps/DefaultsStep.d.ts +10 -0
- package/dist/components/onboarding/steps/DefaultsStep.d.ts.map +1 -0
- package/dist/components/onboarding/steps/DefaultsStep.js +99 -0
- package/dist/components/onboarding/steps/DefaultsStep.js.map +1 -0
- package/dist/components/onboarding/steps/ProviderSetupStep.d.ts +31 -0
- package/dist/components/onboarding/steps/ProviderSetupStep.d.ts.map +1 -0
- package/dist/components/onboarding/steps/ProviderSetupStep.js +253 -0
- package/dist/components/onboarding/steps/ProviderSetupStep.js.map +1 -0
- package/dist/components/research/ResearchSidebar.d.ts +7 -0
- package/dist/components/research/ResearchSidebar.d.ts.map +1 -0
- package/dist/components/research/ResearchSidebar.js +271 -0
- package/dist/components/research/ResearchSidebar.js.map +1 -0
- package/dist/components/research/ResearchSidebarToggle.d.ts +6 -0
- package/dist/components/research/ResearchSidebarToggle.d.ts.map +1 -0
- package/dist/components/research/ResearchSidebarToggle.js +13 -0
- package/dist/components/research/ResearchSidebarToggle.js.map +1 -0
- package/dist/components/research/index.d.ts +3 -0
- package/dist/components/research/index.d.ts.map +1 -0
- package/dist/components/research/index.js +3 -0
- package/dist/components/research/index.js.map +1 -0
- package/dist/components/session-files/SessionFilesDiffPanel.d.ts +2 -0
- package/dist/components/session-files/SessionFilesDiffPanel.d.ts.map +1 -0
- package/dist/components/session-files/SessionFilesDiffPanel.js +345 -0
- package/dist/components/session-files/SessionFilesDiffPanel.js.map +1 -0
- package/dist/components/session-files/SessionFilesSidebar.d.ts +6 -0
- package/dist/components/session-files/SessionFilesSidebar.d.ts.map +1 -0
- package/dist/components/session-files/SessionFilesSidebar.js +80 -0
- package/dist/components/session-files/SessionFilesSidebar.js.map +1 -0
- package/dist/components/session-files/SessionFilesSidebarToggle.d.ts +6 -0
- package/dist/components/session-files/SessionFilesSidebarToggle.d.ts.map +1 -0
- package/dist/components/session-files/SessionFilesSidebarToggle.js +15 -0
- package/dist/components/session-files/SessionFilesSidebarToggle.js.map +1 -0
- package/dist/components/session-files/index.d.ts +4 -0
- package/dist/components/session-files/index.d.ts.map +1 -0
- package/dist/components/session-files/index.js +4 -0
- package/dist/components/session-files/index.js.map +1 -0
- package/dist/components/sessions/LeanHeader.d.ts +10 -0
- package/dist/components/sessions/LeanHeader.d.ts.map +1 -0
- package/dist/components/sessions/LeanHeader.js +62 -0
- package/dist/components/sessions/LeanHeader.js.map +1 -0
- package/dist/components/sessions/SessionHeader.d.ts +8 -0
- package/dist/components/sessions/SessionHeader.d.ts.map +1 -0
- package/dist/components/sessions/SessionHeader.js +74 -0
- package/dist/components/sessions/SessionHeader.js.map +1 -0
- package/dist/components/sessions/SessionItem.d.ts +9 -0
- package/dist/components/sessions/SessionItem.d.ts.map +1 -0
- package/dist/components/sessions/SessionItem.js +28 -0
- package/dist/components/sessions/SessionItem.js.map +1 -0
- package/dist/components/sessions/SessionListContainer.d.ts +7 -0
- package/dist/components/sessions/SessionListContainer.d.ts.map +1 -0
- package/dist/components/sessions/SessionListContainer.js +47 -0
- package/dist/components/sessions/SessionListContainer.js.map +1 -0
- package/dist/components/settings/SettingsSidebar.d.ts +2 -0
- package/dist/components/settings/SettingsSidebar.d.ts.map +1 -0
- package/dist/components/settings/SettingsSidebar.js +134 -0
- package/dist/components/settings/SettingsSidebar.js.map +1 -0
- package/dist/components/settings/SettingsSidebarToggle.d.ts +2 -0
- package/dist/components/settings/SettingsSidebarToggle.d.ts.map +1 -0
- package/dist/components/settings/SettingsSidebarToggle.js +10 -0
- package/dist/components/settings/SettingsSidebarToggle.js.map +1 -0
- package/dist/components/settings/SetuTopupModal.d.ts +2 -0
- package/dist/components/settings/SetuTopupModal.d.ts.map +1 -0
- package/dist/components/settings/SetuTopupModal.js +196 -0
- package/dist/components/settings/SetuTopupModal.js.map +1 -0
- package/dist/components/terminals/TerminalList.d.ts +8 -0
- package/dist/components/terminals/TerminalList.d.ts.map +1 -0
- package/dist/components/terminals/TerminalList.js +32 -0
- package/dist/components/terminals/TerminalList.js.map +1 -0
- package/dist/components/terminals/TerminalViewer.d.ts +6 -0
- package/dist/components/terminals/TerminalViewer.d.ts.map +1 -0
- package/dist/components/terminals/TerminalViewer.js +263 -0
- package/dist/components/terminals/TerminalViewer.js.map +1 -0
- package/dist/components/terminals/TerminalsSidebar.d.ts +2 -0
- package/dist/components/terminals/TerminalsSidebar.d.ts.map +1 -0
- package/dist/components/terminals/TerminalsSidebar.js +34 -0
- package/dist/components/terminals/TerminalsSidebar.js.map +1 -0
- package/dist/components/terminals/TerminalsSidebarToggle.d.ts +2 -0
- package/dist/components/terminals/TerminalsSidebarToggle.d.ts.map +1 -0
- package/dist/components/terminals/TerminalsSidebarToggle.js +13 -0
- package/dist/components/terminals/TerminalsSidebarToggle.js.map +1 -0
- package/dist/components/terminals/index.d.ts +5 -0
- package/dist/components/terminals/index.d.ts.map +1 -0
- package/dist/components/terminals/index.js +5 -0
- package/dist/components/terminals/index.js.map +1 -0
- package/dist/components/ui/Button.d.ts +8 -0
- package/dist/components/ui/Button.d.ts.map +1 -0
- package/dist/components/ui/Button.js +19 -0
- package/dist/components/ui/Button.js.map +1 -0
- package/dist/components/ui/Card.d.ts +6 -0
- package/dist/components/ui/Card.d.ts.map +1 -0
- package/dist/components/ui/Card.js +7 -0
- package/dist/components/ui/Card.js.map +1 -0
- package/dist/components/ui/ConfirmationDialog.d.ts +2 -0
- package/dist/components/ui/ConfirmationDialog.d.ts.map +1 -0
- package/dist/components/ui/ConfirmationDialog.js +72 -0
- package/dist/components/ui/ConfirmationDialog.js.map +1 -0
- package/dist/components/ui/Input.d.ts +6 -0
- package/dist/components/ui/Input.d.ts.map +1 -0
- package/dist/components/ui/Input.js +7 -0
- package/dist/components/ui/Input.js.map +1 -0
- package/dist/components/ui/Modal.d.ts +14 -0
- package/dist/components/ui/Modal.d.ts.map +1 -0
- package/dist/components/ui/Modal.js +51 -0
- package/dist/components/ui/Modal.js.map +1 -0
- package/dist/components/ui/Textarea.d.ts +6 -0
- package/dist/components/ui/Textarea.d.ts.map +1 -0
- package/dist/components/ui/Textarea.js +7 -0
- package/dist/components/ui/Textarea.js.map +1 -0
- package/dist/components/ui/Toaster.d.ts +2 -0
- package/dist/components/ui/Toaster.d.ts.map +1 -0
- package/dist/components/ui/Toaster.js +41 -0
- package/dist/components/ui/Toaster.js.map +1 -0
- package/dist/components/ui/ToolApprovalDialog.d.ts +7 -0
- package/dist/components/ui/ToolApprovalDialog.d.ts.map +1 -0
- package/dist/components/ui/ToolApprovalDialog.js +57 -0
- package/dist/components/ui/ToolApprovalDialog.js.map +1 -0
- package/dist/hooks/index.d.ts +23 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +24 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useAuthStatus.d.ts +60 -0
- package/dist/hooks/useAuthStatus.d.ts.map +1 -0
- package/dist/hooks/useAuthStatus.js +247 -0
- package/dist/hooks/useAuthStatus.js.map +1 -0
- package/dist/hooks/useBranch.d.ts +5 -0
- package/dist/hooks/useBranch.d.ts.map +1 -0
- package/dist/hooks/useBranch.js +43 -0
- package/dist/hooks/useBranch.js.map +1 -0
- package/dist/hooks/useCommandSuggestions.d.ts +29 -0
- package/dist/hooks/useCommandSuggestions.d.ts.map +1 -0
- package/dist/hooks/useCommandSuggestions.js +85 -0
- package/dist/hooks/useCommandSuggestions.js.map +1 -0
- package/dist/hooks/useConfig.d.ts +35 -0
- package/dist/hooks/useConfig.d.ts.map +1 -0
- package/dist/hooks/useConfig.js +32 -0
- package/dist/hooks/useConfig.js.map +1 -0
- package/dist/hooks/useFileMention.d.ts +16 -0
- package/dist/hooks/useFileMention.d.ts.map +1 -0
- package/dist/hooks/useFileMention.js +56 -0
- package/dist/hooks/useFileMention.js.map +1 -0
- package/dist/hooks/useFileUpload.d.ts +34 -0
- package/dist/hooks/useFileUpload.d.ts.map +1 -0
- package/dist/hooks/useFileUpload.js +258 -0
- package/dist/hooks/useFileUpload.js.map +1 -0
- package/dist/hooks/useFiles.d.ts +9 -0
- package/dist/hooks/useFiles.d.ts.map +1 -0
- package/dist/hooks/useFiles.js +15 -0
- package/dist/hooks/useFiles.js.map +1 -0
- package/dist/hooks/useGit.d.ts +15 -0
- package/dist/hooks/useGit.d.ts.map +1 -0
- package/dist/hooks/useGit.js +99 -0
- package/dist/hooks/useGit.js.map +1 -0
- package/dist/hooks/useImageUpload.d.ts +28 -0
- package/dist/hooks/useImageUpload.d.ts.map +1 -0
- package/dist/hooks/useImageUpload.js +197 -0
- package/dist/hooks/useImageUpload.js.map +1 -0
- package/dist/hooks/useKeyboardShortcuts.d.ts +27 -0
- package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
- package/dist/hooks/useKeyboardShortcuts.js +242 -0
- package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/hooks/useMessages.d.ts +4 -0
- package/dist/hooks/useMessages.d.ts.map +1 -0
- package/dist/hooks/useMessages.js +25 -0
- package/dist/hooks/useMessages.js.map +1 -0
- package/dist/hooks/usePreferences.d.ts +10 -0
- package/dist/hooks/usePreferences.d.ts.map +1 -0
- package/dist/hooks/usePreferences.js +62 -0
- package/dist/hooks/usePreferences.js.map +1 -0
- package/dist/hooks/useQueueState.d.ts +15 -0
- package/dist/hooks/useQueueState.d.ts.map +1 -0
- package/dist/hooks/useQueueState.js +30 -0
- package/dist/hooks/useQueueState.js.map +1 -0
- package/dist/hooks/useResearch.d.ts +59 -0
- package/dist/hooks/useResearch.d.ts.map +1 -0
- package/dist/hooks/useResearch.js +138 -0
- package/dist/hooks/useResearch.js.map +1 -0
- package/dist/hooks/useSessionFiles.d.ts +2 -0
- package/dist/hooks/useSessionFiles.d.ts.map +1 -0
- package/dist/hooks/useSessionFiles.js +15 -0
- package/dist/hooks/useSessionFiles.js.map +1 -0
- package/dist/hooks/useSessionStream.d.ts +2 -0
- package/dist/hooks/useSessionStream.d.ts.map +1 -0
- package/dist/hooks/useSessionStream.js +455 -0
- package/dist/hooks/useSessionStream.js.map +1 -0
- package/dist/hooks/useSessions.d.ts +9 -0
- package/dist/hooks/useSessions.d.ts.map +1 -0
- package/dist/hooks/useSessions.js +43 -0
- package/dist/hooks/useSessions.js.map +1 -0
- package/dist/hooks/useSetuBalance.d.ts +4 -0
- package/dist/hooks/useSetuBalance.d.ts.map +1 -0
- package/dist/hooks/useSetuBalance.js +59 -0
- package/dist/hooks/useSetuBalance.js.map +1 -0
- package/dist/hooks/useSetuPayments.d.ts +2 -0
- package/dist/hooks/useSetuPayments.d.ts.map +1 -0
- package/dist/hooks/useSetuPayments.js +159 -0
- package/dist/hooks/useSetuPayments.js.map +1 -0
- package/dist/hooks/useShareStatus.d.ts +7 -0
- package/dist/hooks/useShareStatus.d.ts.map +1 -0
- package/dist/hooks/useShareStatus.js +12 -0
- package/dist/hooks/useShareStatus.js.map +1 -0
- package/dist/hooks/useTerminals.d.ts +37 -0
- package/dist/hooks/useTerminals.d.ts.map +1 -0
- package/dist/hooks/useTerminals.js +67 -0
- package/dist/hooks/useTerminals.js.map +1 -0
- package/dist/hooks/useTheme.d.ts +8 -0
- package/dist/hooks/useTheme.d.ts.map +1 -0
- package/dist/hooks/useTheme.js +57 -0
- package/dist/hooks/useTheme.js.map +1 -0
- package/dist/hooks/useToolApprovalShortcuts.d.ts +11 -0
- package/dist/hooks/useToolApprovalShortcuts.d.ts.map +1 -0
- package/dist/hooks/useToolApprovalShortcuts.js +88 -0
- package/dist/hooks/useToolApprovalShortcuts.js.map +1 -0
- package/dist/hooks/useTopupCallback.d.ts +2 -0
- package/dist/hooks/useTopupCallback.d.ts.map +1 -0
- package/dist/hooks/useTopupCallback.js +74 -0
- package/dist/hooks/useTopupCallback.js.map +1 -0
- package/dist/hooks/useVimMode.d.ts +16 -0
- package/dist/hooks/useVimMode.d.ts.map +1 -0
- package/dist/hooks/useVimMode.js +298 -0
- package/dist/hooks/useVimMode.js.map +1 -0
- package/dist/hooks/useWorkingDirectory.d.ts +2 -0
- package/dist/hooks/useWorkingDirectory.d.ts.map +1 -0
- package/dist/hooks/useWorkingDirectory.js +34 -0
- package/dist/hooks/useWorkingDirectory.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api-client.d.ts +245 -0
- package/dist/lib/api-client.d.ts.map +1 -0
- package/dist/lib/api-client.js +783 -0
- package/dist/lib/api-client.js.map +1 -0
- package/dist/lib/commands.d.ts +16 -0
- package/dist/lib/commands.d.ts.map +1 -0
- package/dist/lib/commands.js +124 -0
- package/dist/lib/commands.js.map +1 -0
- package/dist/lib/config.d.ts +6 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +28 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +5 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/open-url.d.ts +2 -0
- package/dist/lib/open-url.d.ts.map +1 -0
- package/dist/lib/open-url.js +9 -0
- package/dist/lib/open-url.js.map +1 -0
- package/dist/lib/parseResearchContext.d.ts +17 -0
- package/dist/lib/parseResearchContext.d.ts.map +1 -0
- package/dist/lib/parseResearchContext.js +30 -0
- package/dist/lib/parseResearchContext.js.map +1 -0
- package/dist/lib/sse-client.d.ts +13 -0
- package/dist/lib/sse-client.d.ts.map +1 -0
- package/dist/lib/sse-client.js +111 -0
- package/dist/lib/sse-client.js.map +1 -0
- package/dist/stores/confirmationStore.d.ts +23 -0
- package/dist/stores/confirmationStore.d.ts.map +1 -0
- package/dist/stores/confirmationStore.js +27 -0
- package/dist/stores/confirmationStore.js.map +1 -0
- package/dist/stores/focusStore.d.ts +14 -0
- package/dist/stores/focusStore.d.ts.map +1 -0
- package/dist/stores/focusStore.js +12 -0
- package/dist/stores/focusStore.js.map +1 -0
- package/dist/stores/gitStore.d.ts +24 -0
- package/dist/stores/gitStore.d.ts.map +1 -0
- package/dist/stores/gitStore.js +57 -0
- package/dist/stores/gitStore.js.map +1 -0
- package/dist/stores/index.d.ts +15 -0
- package/dist/stores/index.d.ts.map +1 -0
- package/dist/stores/index.js +15 -0
- package/dist/stores/index.js.map +1 -0
- package/dist/stores/onboardingStore.d.ts +46 -0
- package/dist/stores/onboardingStore.d.ts.map +1 -0
- package/dist/stores/onboardingStore.js +38 -0
- package/dist/stores/onboardingStore.js.map +1 -0
- package/dist/stores/pendingResearchStore.d.ts +17 -0
- package/dist/stores/pendingResearchStore.d.ts.map +1 -0
- package/dist/stores/pendingResearchStore.js +38 -0
- package/dist/stores/pendingResearchStore.js.map +1 -0
- package/dist/stores/queueStore.d.ts +8 -0
- package/dist/stores/queueStore.d.ts.map +1 -0
- package/dist/stores/queueStore.js +11 -0
- package/dist/stores/queueStore.js.map +1 -0
- package/dist/stores/researchStore.d.ts +14 -0
- package/dist/stores/researchStore.d.ts.map +1 -0
- package/dist/stores/researchStore.js +45 -0
- package/dist/stores/researchStore.js.map +1 -0
- package/dist/stores/sessionFilesStore.d.ts +17 -0
- package/dist/stores/sessionFilesStore.d.ts.map +1 -0
- package/dist/stores/sessionFilesStore.js +53 -0
- package/dist/stores/sessionFilesStore.js.map +1 -0
- package/dist/stores/settingsStore.d.ts +9 -0
- package/dist/stores/settingsStore.d.ts.map +1 -0
- package/dist/stores/settingsStore.js +23 -0
- package/dist/stores/settingsStore.js.map +1 -0
- package/dist/stores/setuStore.d.ts +22 -0
- package/dist/stores/setuStore.d.ts.map +1 -0
- package/dist/stores/setuStore.js +21 -0
- package/dist/stores/setuStore.js.map +1 -0
- package/dist/stores/sidebarStore.d.ts +20 -0
- package/dist/stores/sidebarStore.d.ts.map +1 -0
- package/dist/stores/sidebarStore.js +10 -0
- package/dist/stores/sidebarStore.js.map +1 -0
- package/dist/stores/terminalStore.d.ts +11 -0
- package/dist/stores/terminalStore.d.ts.map +1 -0
- package/dist/stores/terminalStore.js +25 -0
- package/dist/stores/terminalStore.js.map +1 -0
- package/dist/stores/toastStore.d.ts +32 -0
- package/dist/stores/toastStore.d.ts.map +1 -0
- package/dist/stores/toastStore.js +46 -0
- package/dist/stores/toastStore.js.map +1 -0
- package/dist/stores/toolApprovalStore.d.ts +18 -0
- package/dist/stores/toolApprovalStore.d.ts.map +1 -0
- package/dist/stores/toolApprovalStore.js +16 -0
- package/dist/stores/toolApprovalStore.js.map +1 -0
- package/dist/stores/topupApprovalStore.d.ts +20 -0
- package/dist/stores/topupApprovalStore.d.ts.map +1 -0
- package/dist/stores/topupApprovalStore.js +11 -0
- package/dist/stores/topupApprovalStore.js.map +1 -0
- package/dist/types/api.d.ts +269 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +2 -0
- package/dist/types/api.js.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { ChevronRight, AlertCircle } from 'lucide-react';
|
|
3
|
+
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
|
|
4
|
+
import { prism, vscDarkPlus, } from 'react-syntax-highlighter/dist/esm/styles/prism';
|
|
5
|
+
import { formatDuration } from './utils';
|
|
6
|
+
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
7
|
+
function getLanguageFromPath(path) {
|
|
8
|
+
const ext = path.split('.').pop()?.toLowerCase();
|
|
9
|
+
const langMap = {
|
|
10
|
+
js: 'javascript',
|
|
11
|
+
jsx: 'jsx',
|
|
12
|
+
ts: 'typescript',
|
|
13
|
+
tsx: 'tsx',
|
|
14
|
+
py: 'python',
|
|
15
|
+
rb: 'ruby',
|
|
16
|
+
go: 'go',
|
|
17
|
+
rs: 'rust',
|
|
18
|
+
java: 'java',
|
|
19
|
+
c: 'c',
|
|
20
|
+
cpp: 'cpp',
|
|
21
|
+
h: 'c',
|
|
22
|
+
hpp: 'cpp',
|
|
23
|
+
cs: 'csharp',
|
|
24
|
+
php: 'php',
|
|
25
|
+
sh: 'bash',
|
|
26
|
+
bash: 'bash',
|
|
27
|
+
zsh: 'bash',
|
|
28
|
+
sql: 'sql',
|
|
29
|
+
json: 'json',
|
|
30
|
+
yaml: 'yaml',
|
|
31
|
+
yml: 'yaml',
|
|
32
|
+
xml: 'xml',
|
|
33
|
+
html: 'html',
|
|
34
|
+
css: 'css',
|
|
35
|
+
scss: 'scss',
|
|
36
|
+
md: 'markdown',
|
|
37
|
+
txt: 'text',
|
|
38
|
+
};
|
|
39
|
+
return langMap[ext || ''] || 'text';
|
|
40
|
+
}
|
|
41
|
+
function parseLineRange(lineRange) {
|
|
42
|
+
if (!lineRange)
|
|
43
|
+
return undefined;
|
|
44
|
+
const match = lineRange.match(/@(\d+)-(\d+)/);
|
|
45
|
+
if (match) {
|
|
46
|
+
return Number.parseInt(match[1], 10);
|
|
47
|
+
}
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
export function ReadRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, compact, }) {
|
|
51
|
+
const result = contentJson.result || {};
|
|
52
|
+
const args = contentJson.args || {};
|
|
53
|
+
const hasToolError = typeof result === 'object' && 'ok' in result && result.ok === false;
|
|
54
|
+
const errorMessage = hasToolError && 'error' in result && typeof result.error === 'string'
|
|
55
|
+
? result.error
|
|
56
|
+
: null;
|
|
57
|
+
const errorStack = hasToolError && 'stack' in result && typeof result.stack === 'string'
|
|
58
|
+
? result.stack
|
|
59
|
+
: undefined;
|
|
60
|
+
const path = String(result.path || args.path || '');
|
|
61
|
+
const content = String(result.content || '');
|
|
62
|
+
const lineRange = result.lineRange;
|
|
63
|
+
const lines = content.split('\n');
|
|
64
|
+
const timeStr = formatDuration(toolDurationMs);
|
|
65
|
+
const language = getLanguageFromPath(path);
|
|
66
|
+
const syntaxTheme = document?.documentElement.classList.contains('dark')
|
|
67
|
+
? vscDarkPlus
|
|
68
|
+
: prism;
|
|
69
|
+
const startingLineNumber = parseLineRange(lineRange);
|
|
70
|
+
const displayText = lineRange
|
|
71
|
+
? `${path}:${lineRange.replace('@', '')}`
|
|
72
|
+
: path;
|
|
73
|
+
const canExpand = content.length > 0 || hasToolError;
|
|
74
|
+
return (_jsxs("div", { className: "text-xs", children: [_jsxs("button", { type: "button", onClick: () => canExpand && onToggle(), className: `flex items-center gap-2 transition-colors w-full min-w-0 ${hasToolError
|
|
75
|
+
? 'text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200'
|
|
76
|
+
: canExpand
|
|
77
|
+
? 'text-blue-700 dark:text-blue-300 hover:text-blue-600 dark:hover:text-blue-200'
|
|
78
|
+
: 'text-blue-700 dark:text-blue-300'}`, children: [canExpand ? (isExpanded ? (_jsx(ChevronRight, { className: "h-3 w-3 flex-shrink-0 rotate-90 transition-transform" })) : (_jsx(ChevronRight, { className: "h-3 w-3 flex-shrink-0 transition-transform" }))) : (_jsx("div", { className: "w-3 flex-shrink-0" })), hasToolError && (_jsx(AlertCircle, { className: "h-3 w-3 flex-shrink-0 text-red-600 dark:text-red-400" })), _jsxs("span", { className: "font-medium flex-shrink-0", children: ["read", hasToolError ? ' error' : ''] }), !compact && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-muted-foreground/70 flex-shrink-0", children: "\u00B7" }), _jsx("span", { className: "text-foreground/70 min-w-0 flex-shrink overflow-hidden text-ellipsis whitespace-nowrap", dir: "rtl", title: displayText, children: displayText })] })), !hasToolError && lines.length > 0 && !compact && (_jsxs("span", { className: "text-muted-foreground/80 flex-shrink-0 whitespace-nowrap", children: ["\u00B7 ", lines.length, " lines \u00B7 ", timeStr] })), hasToolError && !compact && (_jsxs("span", { className: "text-muted-foreground/80 flex-shrink-0", children: ["\u00B7 ", timeStr] }))] }), isExpanded && hasToolError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded && !hasToolError && content && (_jsx("div", { className: "mt-2 ml-5 bg-card/60 border border-border rounded-lg overflow-hidden max-h-96 overflow-y-auto max-w-full", children: _jsx("div", { className: "overflow-x-auto max-w-full", children: _jsx(SyntaxHighlighter, { language: language, style: syntaxTheme, customStyle: {
|
|
79
|
+
margin: 0,
|
|
80
|
+
padding: '0.75rem',
|
|
81
|
+
fontSize: '0.75rem',
|
|
82
|
+
lineHeight: '1.5',
|
|
83
|
+
background: 'transparent',
|
|
84
|
+
maxWidth: '100%',
|
|
85
|
+
}, showLineNumbers: true, startingLineNumber: startingLineNumber, wrapLines: true, wrapLongLines: true, children: content }) }) }))] }));
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=ReadRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReadRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ReadRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { MessagePart } from '../../../types/api';
|
|
2
|
+
interface ReasoningRendererProps {
|
|
3
|
+
part: MessagePart;
|
|
4
|
+
}
|
|
5
|
+
export declare function ReasoningRenderer({ part }: ReasoningRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=ReasoningRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReasoningRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ReasoningRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,UAAU,sBAAsB;IAC/B,IAAI,EAAE,WAAW,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE,sBAAsB,2CAkEjE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useRef, useEffect } from 'react';
|
|
3
|
+
import { ChevronDown, ChevronRight } from 'lucide-react';
|
|
4
|
+
export function ReasoningRenderer({ part }) {
|
|
5
|
+
const [isExpanded, setIsExpanded] = useState(true);
|
|
6
|
+
const scrollRef = useRef(null);
|
|
7
|
+
const isHoveredRef = useRef(false);
|
|
8
|
+
let content = '';
|
|
9
|
+
const data = part.contentJson || part.content;
|
|
10
|
+
if (data && typeof data === 'object' && 'text' in data) {
|
|
11
|
+
content = String(data.text);
|
|
12
|
+
}
|
|
13
|
+
else if (typeof data === 'string') {
|
|
14
|
+
content = data;
|
|
15
|
+
}
|
|
16
|
+
// biome-ignore lint/correctness/useExhaustiveDependencies: content dependency is intentional - triggers auto-scroll when new reasoning text streams in
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (scrollRef.current &&
|
|
19
|
+
isExpanded &&
|
|
20
|
+
!part.completedAt &&
|
|
21
|
+
!isHoveredRef.current) {
|
|
22
|
+
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
23
|
+
}
|
|
24
|
+
}, [content, isExpanded, part.completedAt]);
|
|
25
|
+
if (!content || !content.trim()) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
return (_jsxs("div", { className: "w-full", children: [_jsxs("button", { type: "button", onClick: () => setIsExpanded(!isExpanded), className: "flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition-colors w-full", children: [isExpanded ? (_jsx(ChevronDown, { className: "h-3 w-3 flex-shrink-0" })) : (_jsx(ChevronRight, { className: "h-3 w-3 flex-shrink-0" })), _jsx("span", { className: "font-medium", children: "Reasoning" }), !part.completedAt && (_jsx("span", { className: "text-muted-foreground/60 animate-pulse", children: "thinking..." }))] }), isExpanded && (_jsx("div", { ref: scrollRef, className: "mt-2 p-3 bg-muted/30 rounded-md border border-border max-h-48 overflow-y-auto", role: "log", onMouseEnter: () => {
|
|
29
|
+
isHoveredRef.current = true;
|
|
30
|
+
}, onMouseLeave: () => {
|
|
31
|
+
isHoveredRef.current = false;
|
|
32
|
+
}, children: _jsx("div", { className: "text-sm text-muted-foreground whitespace-pre-wrap font-mono", children: content }) }))] }));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=ReasoningRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReasoningRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ReasoningRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAOzD,MAAM,UAAU,iBAAiB,CAAC,EAAE,IAAI,EAA0B;IACjE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC;IAC9C,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACxD,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,uJAAuJ;IACvJ,SAAS,CAAC,GAAG,EAAE;QACd,IACC,SAAS,CAAC,OAAO;YACjB,UAAU;YACV,CAAC,IAAI,CAAC,WAAW;YACjB,CAAC,YAAY,CAAC,OAAO,EACpB,CAAC;YACF,SAAS,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;QAC9D,CAAC;IACF,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,CACN,eAAK,SAAS,EAAC,QAAQ,aACtB,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,EACzC,SAAS,EAAC,sGAAsG,aAE/G,UAAU,CAAC,CAAC,CAAC,CACb,KAAC,WAAW,IAAC,SAAS,EAAC,uBAAuB,GAAG,CACjD,CAAC,CAAC,CAAC,CACH,KAAC,YAAY,IAAC,SAAS,EAAC,uBAAuB,GAAG,CAClD,EACD,eAAM,SAAS,EAAC,aAAa,0BAAiB,EAC7C,CAAC,IAAI,CAAC,WAAW,IAAI,CACrB,eAAM,SAAS,EAAC,wCAAwC,4BAEjD,CACP,IACO,EACR,UAAU,IAAI,CACd,cACC,GAAG,EAAE,SAAS,EACd,SAAS,EAAC,+EAA+E,EACzF,IAAI,EAAC,KAAK,EACV,YAAY,EAAE,GAAG,EAAE;oBAClB,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC7B,CAAC,EACD,YAAY,EAAE,GAAG,EAAE;oBAClB,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;gBAC9B,CAAC,YAED,cAAK,SAAS,EAAC,6DAA6D,YAC1E,OAAO,GACH,GACD,CACN,IACI,CACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/SearchRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAW7C,wBAAgB,cAAc,CAAC,EAC9B,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,EACR,OAAO,GACP,EAAE,aAAa,2CAmKf"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Search } from 'lucide-react';
|
|
3
|
+
import { formatDuration, isToolError, getErrorMessage } from './utils';
|
|
4
|
+
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
5
|
+
import { ToolHeader, ToolHeaderSeparator, ToolHeaderDetail, ToolHeaderMeta, ToolContentBox, } from './shared';
|
|
6
|
+
export function SearchRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, compact, }) {
|
|
7
|
+
const result = contentJson.result || {};
|
|
8
|
+
const args = (contentJson.args || {});
|
|
9
|
+
const matches = result.matches || [];
|
|
10
|
+
const files = result.files || [];
|
|
11
|
+
const timeStr = formatDuration(toolDurationMs);
|
|
12
|
+
const hasError = isToolError(result) || !!contentJson.error;
|
|
13
|
+
const errorMessage = getErrorMessage(result) ||
|
|
14
|
+
(typeof contentJson.error === 'string' ? contentJson.error : null);
|
|
15
|
+
const errorStack = result && typeof result === 'object' && 'stack' in result
|
|
16
|
+
? String(result.stack)
|
|
17
|
+
: undefined;
|
|
18
|
+
const itemCount = matches.length > 0 ? matches.length : files.length;
|
|
19
|
+
const itemLabel = matches.length > 0
|
|
20
|
+
? matches.length === 1
|
|
21
|
+
? 'match'
|
|
22
|
+
: 'matches'
|
|
23
|
+
: files.length === 1
|
|
24
|
+
? 'file'
|
|
25
|
+
: 'files';
|
|
26
|
+
const searchTerm = (() => {
|
|
27
|
+
if (typeof args.pattern === 'string')
|
|
28
|
+
return args.pattern;
|
|
29
|
+
if (typeof args.query === 'string')
|
|
30
|
+
return args.query;
|
|
31
|
+
if (typeof args.filePattern === 'string')
|
|
32
|
+
return args.filePattern;
|
|
33
|
+
return '';
|
|
34
|
+
})();
|
|
35
|
+
const searchPath = (() => {
|
|
36
|
+
if (typeof args.path === 'string' && args.path !== '.')
|
|
37
|
+
return args.path;
|
|
38
|
+
return undefined;
|
|
39
|
+
})();
|
|
40
|
+
return (_jsxs("div", { className: "text-xs", children: [_jsxs(ToolHeader, { toolName: "search", isExpanded: isExpanded, onToggle: onToggle, isError: hasError, colorVariant: "amber", canExpand: true, children: [searchTerm && !compact && (_jsxs(_Fragment, { children: [_jsx(ToolHeaderSeparator, {}), _jsxs("span", { className: "font-mono text-foreground/90 text-[11px] truncate min-w-0", title: searchTerm, children: ["\"", searchTerm.length > 30
|
|
41
|
+
? `${searchTerm.slice(0, 30)}…`
|
|
42
|
+
: searchTerm, "\""] })] })), !compact && (_jsxs(_Fragment, { children: [_jsx(ToolHeaderSeparator, {}), _jsxs(ToolHeaderDetail, { children: [itemCount, " ", itemLabel] }), _jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderMeta, { children: timeStr })] }))] }), isExpanded && hasError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded && !hasError && (_jsxs("div", { className: "mt-2 ml-5 flex flex-col gap-2 max-w-full", children: [_jsx(ToolContentBox, { title: "query", icon: _jsx(Search, { className: "h-3 w-3" }), subtitle: searchPath, copyText: searchTerm, maxHeight: "", children: _jsx("div", { className: "px-3 py-2 font-mono text-xs bg-muted/10 break-all", children: searchTerm || '(empty)' }) }), matches.length > 0 && (_jsx(ToolContentBox, { title: "results", copyText: matches
|
|
43
|
+
.map((m) => {
|
|
44
|
+
const match = m;
|
|
45
|
+
return `${match.file}:${match.line}: ${match.text}`;
|
|
46
|
+
})
|
|
47
|
+
.join('\n'), maxHeight: "max-h-80", children: _jsx("div", { className: "divide-y divide-border/50", children: matches.map((match, i) => {
|
|
48
|
+
const m = match;
|
|
49
|
+
return (_jsxs("div", { className: "px-3 py-1.5 font-mono hover:bg-muted/20", children: [_jsxs("div", { className: "text-blue-600 dark:text-blue-400 truncate", children: [m.file, ":", m.line] }), _jsx("div", { className: "text-foreground/80 truncate", children: m.text })] }, `${m.file}-${m.line}-${i}`));
|
|
50
|
+
}) }) })), files.length > 0 && matches.length === 0 && (_jsx(ToolContentBox, { title: "files", copyText: files.map(String).join('\n'), maxHeight: "max-h-80", children: _jsx("div", { className: "divide-y divide-border/50", children: files.map((file) => (_jsx("div", { className: "px-3 py-1 font-mono text-foreground/80 truncate hover:bg-muted/20", children: String(file) }, String(file)))) }) })), itemCount === 0 && (_jsx(ToolContentBox, { title: "results", maxHeight: "", children: _jsx("div", { className: "px-3 py-2 text-muted-foreground/60 italic", children: "No results found" }) }))] }))] }));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=SearchRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/SearchRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TodosRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TodosRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAY7C,wBAAgB,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE,aAAa,2CA+C3D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { CheckCircle2, Circle, ArrowRight, XCircle } from 'lucide-react';
|
|
3
|
+
export function TodosRenderer({ contentJson }) {
|
|
4
|
+
const result = (contentJson.result || {});
|
|
5
|
+
const items = result.items || [];
|
|
6
|
+
const note = result.note;
|
|
7
|
+
return (_jsx("div", { className: "text-xs", children: _jsxs("div", { className: "bg-blue-500/10 border border-blue-500/30 dark:bg-blue-500/5 dark:border-blue-500/20 rounded-lg p-3 space-y-2", children: [note && (_jsx("div", { className: "text-blue-700 dark:text-blue-300 text-sm font-medium mb-3", children: note })), _jsx("div", { className: "space-y-1.5", children: items.map((item, idx) => (_jsxs("div", { className: "flex items-start gap-2", children: [item.status === 'completed' && (_jsx(CheckCircle2, { className: "h-4 w-4 text-emerald-600 dark:text-emerald-300 flex-shrink-0 mt-0.5" })), item.status === 'in_progress' && (_jsx(ArrowRight, { className: "h-4 w-4 text-blue-700 dark:text-blue-300 flex-shrink-0 mt-0.5 animate-pulse" })), item.status === 'pending' && (_jsx(Circle, { className: "h-4 w-4 text-muted-foreground flex-shrink-0 mt-0.5" })), item.status === 'cancelled' && (_jsx(XCircle, { className: "h-4 w-4 text-muted-foreground/50 flex-shrink-0 mt-0.5" })), _jsx("span", { className: `text-sm ${item.status === 'completed'
|
|
8
|
+
? 'text-muted-foreground line-through'
|
|
9
|
+
: item.status === 'in_progress'
|
|
10
|
+
? 'text-foreground'
|
|
11
|
+
: item.status === 'cancelled'
|
|
12
|
+
? 'text-muted-foreground/50 line-through'
|
|
13
|
+
: 'text-muted-foreground/80'}`, children: item.step })] }, `${item.step}-${idx}`))) })] }) }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=TodosRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TodosRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TodosRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAazE,MAAM,UAAU,aAAa,CAAC,EAAE,WAAW,EAAiB;IAC3D,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAgB,CAAC;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAEzB,OAAO,CACN,cAAK,SAAS,EAAC,SAAS,YACvB,eAAK,SAAS,EAAC,8GAA8G,aAC3H,IAAI,IAAI,CACR,cAAK,SAAS,EAAC,2DAA2D,YACxE,IAAI,GACA,CACN,EACD,cAAK,SAAS,EAAC,aAAa,YAC1B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CACzB,eAAiC,SAAS,EAAC,wBAAwB,aACjE,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,CAC/B,KAAC,YAAY,IAAC,SAAS,EAAC,qEAAqE,GAAG,CAChG,EACA,IAAI,CAAC,MAAM,KAAK,aAAa,IAAI,CACjC,KAAC,UAAU,IAAC,SAAS,EAAC,6EAA6E,GAAG,CACtG,EACA,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAC7B,KAAC,MAAM,IAAC,SAAS,EAAC,oDAAoD,GAAG,CACzE,EACA,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,CAC/B,KAAC,OAAO,IAAC,SAAS,EAAC,uDAAuD,GAAG,CAC7E,EACD,eACC,SAAS,EAAE,WACV,IAAI,CAAC,MAAM,KAAK,WAAW;oCAC1B,CAAC,CAAC,oCAAoC;oCACtC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa;wCAC9B,CAAC,CAAC,iBAAiB;wCACnB,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW;4CAC5B,CAAC,CAAC,uCAAuC;4CACzC,CAAC,CAAC,0BACN,EAAE,YAED,IAAI,CAAC,IAAI,GACJ,KAzBE,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE,CA0BzB,CACN,CAAC,GACG,IACD,GACD,CACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface ToolErrorDisplayProps {
|
|
2
|
+
error: string;
|
|
3
|
+
stack?: string;
|
|
4
|
+
showStack?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Shared error display component for tool results with ok: false
|
|
8
|
+
* Matches the structure and colors of ErrorRenderer
|
|
9
|
+
*/
|
|
10
|
+
export declare function ToolErrorDisplay({ error, stack, showStack, }: ToolErrorDisplayProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=ToolErrorDisplay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolErrorDisplay.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ToolErrorDisplay.tsx"],"names":[],"mappings":"AAEA,UAAU,qBAAqB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,SAAiB,GACjB,EAAE,qBAAqB,2CA4BvB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { AlertCircle } from 'lucide-react';
|
|
3
|
+
/**
|
|
4
|
+
* Shared error display component for tool results with ok: false
|
|
5
|
+
* Matches the structure and colors of ErrorRenderer
|
|
6
|
+
*/
|
|
7
|
+
export function ToolErrorDisplay({ error, stack, showStack = false, }) {
|
|
8
|
+
return (_jsx("div", { className: "mt-2 ml-5 p-3 bg-red-50 dark:bg-red-950/20 border border-red-200 dark:border-red-800 rounded text-sm", children: _jsxs("div", { className: "flex items-start gap-2", children: [_jsx(AlertCircle, { className: "h-4 w-4 flex-shrink-0 text-red-600 dark:text-red-400 mt-0.5" }), _jsxs("div", { className: "flex-1 space-y-2", children: [_jsxs("div", { children: [_jsx("div", { className: "font-medium text-red-600 dark:text-red-400", children: "Tool Error:" }), _jsx("div", { className: "mt-1 text-red-900 dark:text-red-200 whitespace-pre-wrap", children: error })] }), showStack && stack && (_jsxs("details", { className: "mt-2", children: [_jsx("summary", { className: "cursor-pointer text-xs text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200", children: "View stack trace" }), _jsx("pre", { className: "mt-2 p-2 bg-red-100/50 dark:bg-red-900/20 rounded text-xs overflow-x-auto text-red-800 dark:text-red-300", children: stack })] }))] })] }) }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ToolErrorDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolErrorDisplay.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ToolErrorDisplay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAQ3C;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAChC,KAAK,EACL,KAAK,EACL,SAAS,GAAG,KAAK,GACM;IACvB,OAAO,CACN,cAAK,SAAS,EAAC,sGAAsG,YACpH,eAAK,SAAS,EAAC,wBAAwB,aACtC,KAAC,WAAW,IAAC,SAAS,EAAC,6DAA6D,GAAG,EACvF,eAAK,SAAS,EAAC,kBAAkB,aAChC,0BACC,cAAK,SAAS,EAAC,4CAA4C,4BAErD,EACN,cAAK,SAAS,EAAC,yDAAyD,YACtE,KAAK,GACD,IACD,EACL,SAAS,IAAI,KAAK,IAAI,CACtB,mBAAS,SAAS,EAAC,MAAM,aACxB,kBAAS,SAAS,EAAC,kGAAkG,iCAE3G,EACV,cAAK,SAAS,EAAC,0GAA0G,YACvH,KAAK,GACD,IACG,CACV,IACI,IACD,GACD,CACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TreeRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAW7C,wBAAgB,YAAY,CAAC,EAC5B,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACR,EAAE,aAAa,2CAiGf"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { FolderTree } from 'lucide-react';
|
|
3
|
+
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
|
|
4
|
+
import { prism, vscDarkPlus, } from 'react-syntax-highlighter/dist/esm/styles/prism';
|
|
5
|
+
import { formatDuration, isToolError, getErrorMessage } from './utils';
|
|
6
|
+
import { ToolHeader, ToolHeaderSeparator, ToolHeaderDetail, ToolHeaderMeta, ToolContentBox, } from './shared';
|
|
7
|
+
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
8
|
+
export function TreeRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, }) {
|
|
9
|
+
const result = contentJson.result || {};
|
|
10
|
+
const args = (contentJson.args || {});
|
|
11
|
+
const hasError = isToolError(result);
|
|
12
|
+
const errorMessage = getErrorMessage(result);
|
|
13
|
+
const errorStack = result && typeof result === 'object' && 'stack' in result
|
|
14
|
+
? String(result.stack)
|
|
15
|
+
: undefined;
|
|
16
|
+
const tree = String(result.tree || '');
|
|
17
|
+
const lines = tree.split('\n').filter((l) => l.length > 0).length;
|
|
18
|
+
const timeStr = formatDuration(toolDurationMs);
|
|
19
|
+
const syntaxTheme = document?.documentElement.classList.contains('dark')
|
|
20
|
+
? vscDarkPlus
|
|
21
|
+
: prism;
|
|
22
|
+
const path = typeof args.path === 'string' ? args.path : '.';
|
|
23
|
+
const depth = typeof args.depth === 'number' ? args.depth : undefined;
|
|
24
|
+
return (_jsxs("div", { className: "text-xs", children: [_jsxs(ToolHeader, { toolName: "tree", isExpanded: isExpanded, onToggle: onToggle, isError: hasError, colorVariant: "cyan", canExpand: true, children: [path && path !== '.' && (_jsxs(_Fragment, { children: [_jsx(ToolHeaderSeparator, {}), _jsx("span", { className: "text-foreground/70 truncate min-w-0", title: path, children: path.length > 30 ? `…${path.slice(-30)}` : path })] })), _jsx(ToolHeaderSeparator, {}), _jsxs(ToolHeaderDetail, { children: [lines, " ", lines === 1 ? 'item' : 'items'] }), _jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderMeta, { children: timeStr })] }), isExpanded && hasError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded && !hasError && (_jsxs("div", { className: "mt-2 ml-5 flex flex-col gap-2 max-w-full", children: [_jsx(ToolContentBox, { title: "path", icon: _jsx(FolderTree, { className: "h-3 w-3" }), subtitle: depth ? `depth: ${depth}` : undefined, copyText: path, maxHeight: "", children: _jsx("div", { className: "px-3 py-2 font-mono text-xs bg-muted/10 break-all", children: path }) }), tree && (_jsx(ToolContentBox, { title: "tree", copyText: tree, maxHeight: "max-h-80", children: _jsx("div", { className: "overflow-x-auto max-w-full", children: _jsx(SyntaxHighlighter, { language: "bash", style: syntaxTheme, customStyle: {
|
|
25
|
+
margin: 0,
|
|
26
|
+
padding: '0.75rem',
|
|
27
|
+
fontSize: '0.75rem',
|
|
28
|
+
lineHeight: '1.5',
|
|
29
|
+
background: 'transparent',
|
|
30
|
+
maxWidth: '100%',
|
|
31
|
+
}, wrapLines: true, wrapLongLines: true, children: tree }) }) })), !tree && (_jsx(ToolContentBox, { title: "tree", maxHeight: "", children: _jsx("div", { className: "px-3 py-2 text-muted-foreground/60 italic", children: "No tree output" }) }))] }))] }));
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=TreeRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TreeRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebSearchRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/WebSearchRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAuB7C,wBAAgB,iBAAiB,CAAC,EACjC,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,GACR,EAAE,aAAa,2CA4Lf"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Globe, ExternalLink, Link } from 'lucide-react';
|
|
3
|
+
import { formatDuration, isToolError, getErrorMessage } from './utils';
|
|
4
|
+
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
5
|
+
import { ToolHeader, ToolHeaderSeparator, ToolHeaderDetail, ToolHeaderMeta, ToolContentBox, } from './shared';
|
|
6
|
+
export function WebSearchRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, }) {
|
|
7
|
+
const result = contentJson.result || {};
|
|
8
|
+
const args = (contentJson.args || {});
|
|
9
|
+
const timeStr = formatDuration(toolDurationMs);
|
|
10
|
+
const hasError = isToolError(result) || !!contentJson.error;
|
|
11
|
+
const errorMessage = getErrorMessage(result) ||
|
|
12
|
+
(typeof contentJson.error === 'string' ? contentJson.error : null);
|
|
13
|
+
const errorStack = result && typeof result === 'object' && 'stack' in result
|
|
14
|
+
? String(result.stack)
|
|
15
|
+
: undefined;
|
|
16
|
+
const isSearch = 'results' in result;
|
|
17
|
+
const searchResults = result.results || [];
|
|
18
|
+
const webContent = result;
|
|
19
|
+
const query = typeof args.query === 'string' ? args.query : undefined;
|
|
20
|
+
const url = typeof args.url === 'string' ? args.url : webContent.url;
|
|
21
|
+
if (isSearch) {
|
|
22
|
+
return (_jsxs("div", { className: "text-xs", children: [_jsxs(ToolHeader, { toolName: "web search", isExpanded: isExpanded, onToggle: onToggle, isError: hasError, colorVariant: "purple", canExpand: true, children: [query && (_jsxs(_Fragment, { children: [_jsx(ToolHeaderSeparator, {}), _jsxs("span", { className: "font-mono text-foreground/90 text-[11px] truncate min-w-0", title: query, children: ["\"", query.length > 25 ? `${query.slice(0, 25)}…` : query, "\""] })] })), _jsx(ToolHeaderSeparator, {}), _jsxs(ToolHeaderDetail, { children: [searchResults.length, ' ', searchResults.length === 1 ? 'result' : 'results'] }), _jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderMeta, { children: timeStr })] }), isExpanded && hasError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded && !hasError && (_jsxs("div", { className: "mt-2 ml-5 flex flex-col gap-2 max-w-full", children: [_jsx(ToolContentBox, { title: "query", icon: _jsx(Globe, { className: "h-3 w-3" }), copyText: query, maxHeight: "", children: _jsx("div", { className: "px-3 py-2 font-mono text-xs bg-muted/10 break-all", children: query || '(empty)' }) }), searchResults.length > 0 && (_jsx(ToolContentBox, { title: "results", copyText: searchResults
|
|
23
|
+
.map((r) => `${r.title}\n${r.url}`)
|
|
24
|
+
.join('\n\n'), maxHeight: "max-h-80", children: _jsx("div", { className: "divide-y divide-border/50", children: searchResults.map((item, i) => (_jsxs("div", { className: "px-3 py-2 hover:bg-muted/20", children: [_jsxs("a", { href: item.url, target: "_blank", rel: "noopener noreferrer", className: "flex items-center gap-1 text-blue-600 dark:text-blue-400 hover:underline font-medium", children: [item.title, _jsx(ExternalLink, { className: "h-3 w-3 flex-shrink-0" })] }), _jsx("p", { className: "text-muted-foreground text-xs mt-0.5", children: item.snippet }), _jsx("p", { className: "text-xs text-muted-foreground/60 truncate mt-0.5", children: item.url })] }, `${item.url}-${i}`))) }) })), searchResults.length === 0 && (_jsx(ToolContentBox, { title: "results", maxHeight: "", children: _jsx("div", { className: "px-3 py-2 text-muted-foreground/60 italic", children: "No results found" }) }))] }))] }));
|
|
25
|
+
}
|
|
26
|
+
const displayUrl = url && url.length > 50 ? `${url.slice(0, 50)}...` : url;
|
|
27
|
+
return (_jsxs("div", { className: "text-xs", children: [_jsxs(ToolHeader, { toolName: "web fetch", isExpanded: isExpanded, onToggle: onToggle, isError: hasError, colorVariant: "purple", canExpand: true, children: [displayUrl && (_jsxs(_Fragment, { children: [_jsx(ToolHeaderSeparator, {}), _jsx("span", { className: "text-foreground/70 truncate min-w-0", title: url, children: displayUrl })] })), _jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderMeta, { children: timeStr })] }), isExpanded && hasError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded && !hasError && (_jsxs("div", { className: "mt-2 ml-5 flex flex-col gap-2 max-w-full", children: [_jsx(ToolContentBox, { title: "url", icon: _jsx(Link, { className: "h-3 w-3" }), copyText: url, maxHeight: "", children: _jsx("div", { className: "px-3 py-2 font-mono text-xs bg-muted/10 break-all", children: _jsx("a", { href: url, target: "_blank", rel: "noopener noreferrer", className: "text-blue-600 dark:text-blue-400 hover:underline", children: url }) }) }), webContent.content && (_jsx(ToolContentBox, { title: "content", copyText: webContent.content, maxHeight: "max-h-80", children: _jsx("div", { className: "px-3 py-2 text-xs text-foreground/80 whitespace-pre-wrap break-words", children: webContent.content }) })), !webContent.content && (_jsx(ToolContentBox, { title: "content", maxHeight: "", children: _jsx("div", { className: "px-3 py-2 text-muted-foreground/60 italic", children: "No content returned" }) }))] }))] }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=WebSearchRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebSearchRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/WebSearchRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/WriteRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK7C,wBAAgB,aAAa,CAAC,EAC7B,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,EACR,OAAO,GACP,EAAE,aAAa,2CAoFf"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { ChevronRight, AlertCircle } from 'lucide-react';
|
|
3
|
+
import { DiffView } from './DiffView';
|
|
4
|
+
import { formatDuration } from './utils';
|
|
5
|
+
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
6
|
+
export function WriteRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, compact, }) {
|
|
7
|
+
const result = contentJson.result || {};
|
|
8
|
+
const args = contentJson.args || {};
|
|
9
|
+
const artifact = contentJson.artifact;
|
|
10
|
+
const hasToolError = typeof result === 'object' && 'ok' in result && result.ok === false;
|
|
11
|
+
const errorMessage = hasToolError && 'error' in result && typeof result.error === 'string'
|
|
12
|
+
? result.error
|
|
13
|
+
: null;
|
|
14
|
+
const errorStack = hasToolError && 'stack' in result && typeof result.stack === 'string'
|
|
15
|
+
? result.stack
|
|
16
|
+
: undefined;
|
|
17
|
+
const path = String(result.path || args.path || '');
|
|
18
|
+
const bytes = Number(result.bytes || 0);
|
|
19
|
+
const patch = artifact?.patch ? String(artifact.patch) : '';
|
|
20
|
+
const timeStr = formatDuration(toolDurationMs);
|
|
21
|
+
const canExpand = patch.length > 0 || hasToolError;
|
|
22
|
+
return (_jsxs("div", { className: "text-xs", children: [_jsxs("button", { type: "button", onClick: () => canExpand && onToggle(), className: `flex items-center gap-2 transition-colors min-w-0 w-full ${hasToolError
|
|
23
|
+
? 'text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200'
|
|
24
|
+
: canExpand
|
|
25
|
+
? 'text-emerald-700 dark:text-emerald-300 hover:text-emerald-600 dark:hover:text-emerald-200'
|
|
26
|
+
: 'text-emerald-700 dark:text-emerald-300'}`, children: [canExpand ? (isExpanded ? (_jsx(ChevronRight, { className: "h-3 w-3 flex-shrink-0 rotate-90 transition-transform" })) : (_jsx(ChevronRight, { className: "h-3 w-3 flex-shrink-0 transition-transform" }))) : (_jsx("div", { className: "w-3 flex-shrink-0" })), hasToolError && (_jsx(AlertCircle, { className: "h-3 w-3 flex-shrink-0 text-red-600 dark:text-red-400" })), _jsxs("span", { className: "font-medium flex-shrink-0", children: ["write", hasToolError ? ' error' : ''] }), !compact && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-muted-foreground/70 flex-shrink-0", children: "\u00B7" }), _jsx("span", { className: "text-foreground/70 min-w-0 flex-shrink overflow-hidden text-ellipsis whitespace-nowrap", dir: "rtl", title: path, children: path })] })), !hasToolError && bytes > 0 && !compact && (_jsxs("span", { className: "text-muted-foreground/80 whitespace-nowrap flex-shrink-0", children: ["\u00B7 ", bytes, " bytes \u00B7 ", timeStr] })), hasToolError && !compact && (_jsxs("span", { className: "text-muted-foreground/80 flex-shrink-0", children: ["\u00B7 ", timeStr] }))] }), isExpanded && hasToolError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded && !hasToolError && patch && (_jsx("div", { className: "mt-2 ml-5", children: _jsx(DiffView, { patch: patch }) }))] }));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=WriteRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WriteRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/WriteRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ContentJson } from './types';
|
|
2
|
+
interface ToolResultRendererProps {
|
|
3
|
+
toolName: string;
|
|
4
|
+
contentJson: ContentJson;
|
|
5
|
+
toolDurationMs?: number | null;
|
|
6
|
+
debug?: boolean;
|
|
7
|
+
onNavigateToSession?: (sessionId: string) => void;
|
|
8
|
+
compact?: boolean;
|
|
9
|
+
sessionId?: string;
|
|
10
|
+
onRetry?: () => void;
|
|
11
|
+
onCompact?: () => void;
|
|
12
|
+
}
|
|
13
|
+
export declare function ToolResultRenderer({ toolName, contentJson, toolDurationMs, debug, onNavigateToSession, compact, sessionId, onRetry, onCompact, }: ToolResultRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export * from './types';
|
|
15
|
+
export { ReasoningRenderer } from './ReasoningRenderer';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAqB3C,UAAU,uBAAuB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAuCD,wBAAgB,kBAAkB,CAAC,EAClC,QAAQ,EACR,WAAW,EACX,cAAc,EACd,KAAK,EACL,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,OAAO,EACP,SAAS,GACT,EAAE,uBAAuB,2CA6EzB;AAED,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { ReadRenderer } from './ReadRenderer';
|
|
4
|
+
import { WriteRenderer } from './WriteRenderer';
|
|
5
|
+
import { EditRenderer } from './EditRenderer';
|
|
6
|
+
import { BashRenderer } from './BashRenderer';
|
|
7
|
+
import { GitStatusRenderer } from './GitStatusRenderer';
|
|
8
|
+
import { GitDiffRenderer } from './GitDiffRenderer';
|
|
9
|
+
import { GitCommitRenderer } from './GitCommitRenderer';
|
|
10
|
+
import { ApplyPatchRenderer } from './ApplyPatchRenderer';
|
|
11
|
+
import { ListRenderer } from './ListRenderer';
|
|
12
|
+
import { TreeRenderer } from './TreeRenderer';
|
|
13
|
+
import { SearchRenderer } from './SearchRenderer';
|
|
14
|
+
import { FinishRenderer } from './FinishRenderer';
|
|
15
|
+
import { GenericRenderer } from './GenericRenderer';
|
|
16
|
+
import { DebugRenderer } from './DebugRenderer';
|
|
17
|
+
import { TodosRenderer } from './TodosRenderer';
|
|
18
|
+
import { ProgressUpdateRenderer } from './ProgressUpdateRenderer';
|
|
19
|
+
import { WebSearchRenderer } from './WebSearchRenderer';
|
|
20
|
+
import { ErrorRenderer } from './ErrorRenderer';
|
|
21
|
+
import { DatabaseToolRenderer } from './DatabaseToolRenderer';
|
|
22
|
+
/**
|
|
23
|
+
* Normalize tool names to canonical form for rendering.
|
|
24
|
+
* Handles both snake_case (canonical) and PascalCase (OAuth) names.
|
|
25
|
+
*/
|
|
26
|
+
const TOOL_NAME_ALIASES = {
|
|
27
|
+
Read: 'read',
|
|
28
|
+
Write: 'write',
|
|
29
|
+
Edit: 'edit',
|
|
30
|
+
Ls: 'ls',
|
|
31
|
+
Tree: 'tree',
|
|
32
|
+
Cd: 'cd',
|
|
33
|
+
Pwd: 'pwd',
|
|
34
|
+
Glob: 'glob',
|
|
35
|
+
Grep: 'ripgrep',
|
|
36
|
+
Bash: 'bash',
|
|
37
|
+
Terminal: 'terminal',
|
|
38
|
+
GitStatus: 'git_status',
|
|
39
|
+
GitDiff: 'git_diff',
|
|
40
|
+
GitCommit: 'git_commit',
|
|
41
|
+
ApplyPatch: 'apply_patch',
|
|
42
|
+
UpdateTodos: 'update_todos',
|
|
43
|
+
UpdatePlan: 'update_todos',
|
|
44
|
+
ProgressUpdate: 'progress_update',
|
|
45
|
+
Finish: 'finish',
|
|
46
|
+
WebSearch: 'websearch',
|
|
47
|
+
};
|
|
48
|
+
function normalizeToolName(name) {
|
|
49
|
+
return TOOL_NAME_ALIASES[name] ?? name;
|
|
50
|
+
}
|
|
51
|
+
export function ToolResultRenderer({ toolName, contentJson, toolDurationMs, debug, onNavigateToSession, compact, sessionId, onRetry, onCompact, }) {
|
|
52
|
+
const [isExpanded, setIsExpanded] = useState(false);
|
|
53
|
+
const normalizedName = normalizeToolName(toolName);
|
|
54
|
+
const handleToggle = () => setIsExpanded(!isExpanded);
|
|
55
|
+
const props = {
|
|
56
|
+
contentJson,
|
|
57
|
+
toolDurationMs: toolDurationMs ?? undefined,
|
|
58
|
+
isExpanded,
|
|
59
|
+
onToggle: handleToggle,
|
|
60
|
+
compact,
|
|
61
|
+
};
|
|
62
|
+
if (debug) {
|
|
63
|
+
return _jsx(DebugRenderer, { ...props, toolName: toolName });
|
|
64
|
+
}
|
|
65
|
+
switch (normalizedName) {
|
|
66
|
+
case 'read':
|
|
67
|
+
return _jsx(ReadRenderer, { ...props });
|
|
68
|
+
case 'write':
|
|
69
|
+
return _jsx(WriteRenderer, { ...props });
|
|
70
|
+
case 'edit':
|
|
71
|
+
return _jsx(EditRenderer, { ...props });
|
|
72
|
+
case 'bash':
|
|
73
|
+
return _jsx(BashRenderer, { ...props });
|
|
74
|
+
case 'git_status':
|
|
75
|
+
return _jsx(GitStatusRenderer, { ...props });
|
|
76
|
+
case 'git_diff':
|
|
77
|
+
return _jsx(GitDiffRenderer, { ...props });
|
|
78
|
+
case 'git_commit':
|
|
79
|
+
return _jsx(GitCommitRenderer, { ...props });
|
|
80
|
+
case 'apply_patch':
|
|
81
|
+
return _jsx(ApplyPatchRenderer, { ...props });
|
|
82
|
+
case 'ls':
|
|
83
|
+
return _jsx(ListRenderer, { ...props });
|
|
84
|
+
case 'tree':
|
|
85
|
+
return _jsx(TreeRenderer, { ...props });
|
|
86
|
+
case 'ripgrep':
|
|
87
|
+
case 'grep':
|
|
88
|
+
case 'glob':
|
|
89
|
+
return _jsx(SearchRenderer, { ...props });
|
|
90
|
+
case 'websearch':
|
|
91
|
+
return _jsx(WebSearchRenderer, { ...props });
|
|
92
|
+
case 'finish':
|
|
93
|
+
return _jsx(FinishRenderer, { ...props });
|
|
94
|
+
case 'update_todos':
|
|
95
|
+
case 'update_plan':
|
|
96
|
+
return _jsx(TodosRenderer, { ...props });
|
|
97
|
+
case 'progress_update':
|
|
98
|
+
return _jsx(ProgressUpdateRenderer, { ...props });
|
|
99
|
+
case 'error':
|
|
100
|
+
return (_jsx(ErrorRenderer, { ...props, sessionId: sessionId, onRetry: onRetry, onCompact: onCompact }));
|
|
101
|
+
case 'query_sessions':
|
|
102
|
+
case 'query_messages':
|
|
103
|
+
case 'search_history':
|
|
104
|
+
case 'get_session_context':
|
|
105
|
+
case 'get_parent_session':
|
|
106
|
+
case 'present_action':
|
|
107
|
+
return (_jsx(DatabaseToolRenderer, { toolName: toolName, ...props, onNavigateToSession: onNavigateToSession }));
|
|
108
|
+
default:
|
|
109
|
+
return _jsx(GenericRenderer, { ...props, toolName: toolName });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
export * from './types';
|
|
113
|
+
export { ReasoningRenderer } from './ReasoningRenderer';
|
|
114
|
+
//# sourceMappingURL=index.js.map
|