@ottocode/web-sdk 0.1.226 → 0.1.227
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/components/chat/FileMentionPopup.d.ts.map +1 -1
- package/dist/components/index.js +25148 -80
- package/dist/components/index.js.map +180 -1
- package/dist/components/messages/AssistantMessageGroup.d.ts.map +1 -1
- package/dist/components/messages/CompactActivityGroup.d.ts +10 -0
- package/dist/components/messages/CompactActivityGroup.d.ts.map +1 -0
- package/dist/components/messages/MessagePartItem.d.ts.map +1 -1
- package/dist/components/messages/MessageThread.d.ts +1 -0
- package/dist/components/messages/MessageThread.d.ts.map +1 -1
- package/dist/components/messages/MessageThreadContainer.d.ts.map +1 -1
- package/dist/components/messages/compactActivity.d.ts +34 -0
- package/dist/components/messages/compactActivity.d.ts.map +1 -0
- package/dist/components/messages/renderers/EditRenderer.d.ts +1 -1
- package/dist/components/messages/renderers/EditRenderer.d.ts.map +1 -1
- package/dist/components/messages/renderers/index.d.ts.map +1 -1
- package/dist/components/messages/renderers/types.d.ts +3 -1
- package/dist/components/messages/renderers/types.d.ts.map +1 -1
- package/dist/components/settings/SettingsSidebar.d.ts.map +1 -1
- package/dist/components/settings/SetuTopupModal.d.ts.map +1 -1
- package/dist/hooks/index.js +4812 -29
- package/dist/hooks/index.js.map +67 -1
- package/dist/hooks/useAuthStatus.d.ts.map +1 -1
- package/dist/hooks/useMCP.d.ts +9 -0
- package/dist/hooks/useMCP.d.ts.map +1 -1
- package/dist/hooks/usePreferences.d.ts +1 -0
- package/dist/hooks/usePreferences.d.ts.map +1 -1
- package/dist/hooks/useSessionStream.d.ts.map +1 -1
- package/dist/index.js +25918 -7
- package/dist/index.js.map +185 -1
- package/dist/lib/api-client/approval.d.ts.map +1 -1
- package/dist/lib/index.js +1007 -5
- package/dist/lib/index.js.map +22 -1
- package/dist/stores/index.js +693 -22
- package/dist/stores/index.js.map +30 -1
- package/dist/stores/toastStore.d.ts +1 -0
- package/dist/stores/toastStore.d.ts.map +1 -1
- package/dist/types/api.js +2 -2
- package/dist/types/api.js.map +9 -1
- package/package.json +4 -4
- package/dist/assets/provider-logos.js +0 -43
- package/dist/assets/provider-logos.js.map +0 -1
- package/dist/components/branch/BranchModal.js +0 -45
- package/dist/components/branch/BranchModal.js.map +0 -1
- package/dist/components/chat/ChatInput.js +0 -267
- package/dist/components/chat/ChatInput.js.map +0 -1
- package/dist/components/chat/ChatInputContainer.js +0 -295
- package/dist/components/chat/ChatInputContainer.js.map +0 -1
- package/dist/components/chat/ChatInputKeyHandler.js +0 -75
- package/dist/components/chat/ChatInputKeyHandler.js.map +0 -1
- package/dist/components/chat/CommandSuggestionsPopup.js +0 -45
- package/dist/components/chat/CommandSuggestionsPopup.js.map +0 -1
- package/dist/components/chat/ConfigModal.js +0 -46
- package/dist/components/chat/ConfigModal.js.map +0 -1
- package/dist/components/chat/ConfigSelector.js +0 -47
- package/dist/components/chat/ConfigSelector.js.map +0 -1
- package/dist/components/chat/FileMentionPopup.js +0 -138
- package/dist/components/chat/FileMentionPopup.js.map +0 -1
- package/dist/components/chat/ShortcutsModal.js +0 -275
- package/dist/components/chat/ShortcutsModal.js.map +0 -1
- package/dist/components/chat/StopButton.js +0 -25
- package/dist/components/chat/StopButton.js.map +0 -1
- package/dist/components/chat/UnifiedAgentSelector.js +0 -107
- package/dist/components/chat/UnifiedAgentSelector.js.map +0 -1
- package/dist/components/chat/UnifiedModelSelector.js +0 -209
- package/dist/components/chat/UnifiedModelSelector.js.map +0 -1
- package/dist/components/common/ProviderLogo.js +0 -30
- package/dist/components/common/ProviderLogo.js.map +0 -1
- package/dist/components/common/StatusIndicator.js +0 -54
- package/dist/components/common/StatusIndicator.js.map +0 -1
- package/dist/components/common/UsageModal.js +0 -55
- package/dist/components/common/UsageModal.js.map +0 -1
- package/dist/components/common/UsageRing.js +0 -22
- package/dist/components/common/UsageRing.js.map +0 -1
- package/dist/components/file-browser/FileBrowserSidebar.js +0 -50
- package/dist/components/file-browser/FileBrowserSidebar.js.map +0 -1
- package/dist/components/file-browser/FileBrowserSidebarToggle.js +0 -12
- package/dist/components/file-browser/FileBrowserSidebarToggle.js.map +0 -1
- package/dist/components/file-browser/FileViewerPanel.js +0 -85
- package/dist/components/file-browser/FileViewerPanel.js.map +0 -1
- package/dist/components/file-browser/QuickFilePicker.js +0 -118
- package/dist/components/file-browser/QuickFilePicker.js.map +0 -1
- package/dist/components/git/GitCommitModal.js +0 -70
- package/dist/components/git/GitCommitModal.js.map +0 -1
- package/dist/components/git/GitDiffPanel.js +0 -60
- package/dist/components/git/GitDiffPanel.js.map +0 -1
- package/dist/components/git/GitDiffViewer.js +0 -224
- package/dist/components/git/GitDiffViewer.js.map +0 -1
- package/dist/components/git/GitFileItem.js +0 -145
- package/dist/components/git/GitFileItem.js.map +0 -1
- package/dist/components/git/GitFileList.js +0 -108
- package/dist/components/git/GitFileList.js.map +0 -1
- package/dist/components/git/GitSidebar.js +0 -156
- package/dist/components/git/GitSidebar.js.map +0 -1
- package/dist/components/git/GitSidebarToggle.js +0 -18
- package/dist/components/git/GitSidebarToggle.js.map +0 -1
- package/dist/components/mcp/AddMCPServerModal.js +0 -166
- package/dist/components/mcp/AddMCPServerModal.js.map +0 -1
- package/dist/components/mcp/MCPSidebar.js +0 -192
- package/dist/components/mcp/MCPSidebar.js.map +0 -1
- package/dist/components/mcp/MCPSidebarToggle.js +0 -14
- package/dist/components/mcp/MCPSidebarToggle.js.map +0 -1
- package/dist/components/mcp/index.js +0 -4
- package/dist/components/mcp/index.js.map +0 -1
- package/dist/components/messages/AssistantMessageGroup.js +0 -176
- package/dist/components/messages/AssistantMessageGroup.js.map +0 -1
- package/dist/components/messages/MessagePartItem.js +0 -362
- package/dist/components/messages/MessagePartItem.js.map +0 -1
- package/dist/components/messages/MessageThread.js +0 -239
- package/dist/components/messages/MessageThread.js.map +0 -1
- package/dist/components/messages/MessageThreadContainer.js +0 -22
- package/dist/components/messages/MessageThreadContainer.js.map +0 -1
- package/dist/components/messages/ToolApprovalCard.js +0 -143
- package/dist/components/messages/ToolApprovalCard.js.map +0 -1
- package/dist/components/messages/TopupApprovalCard.js +0 -52
- package/dist/components/messages/TopupApprovalCard.js.map +0 -1
- package/dist/components/messages/UserMessageGroup.js +0 -132
- package/dist/components/messages/UserMessageGroup.js.map +0 -1
- package/dist/components/messages/renderers/ApplyPatchRenderer.js +0 -55
- package/dist/components/messages/renderers/ApplyPatchRenderer.js.map +0 -1
- package/dist/components/messages/renderers/BashRenderer.js +0 -55
- package/dist/components/messages/renderers/BashRenderer.js.map +0 -1
- package/dist/components/messages/renderers/DatabaseToolRenderer.js +0 -151
- package/dist/components/messages/renderers/DatabaseToolRenderer.js.map +0 -1
- package/dist/components/messages/renderers/DebugRenderer.js +0 -5
- package/dist/components/messages/renderers/DebugRenderer.js.map +0 -1
- package/dist/components/messages/renderers/DiffView.js +0 -206
- package/dist/components/messages/renderers/DiffView.js.map +0 -1
- package/dist/components/messages/renderers/EditRenderer.js +0 -25
- package/dist/components/messages/renderers/EditRenderer.js.map +0 -1
- package/dist/components/messages/renderers/ErrorRenderer.js +0 -162
- package/dist/components/messages/renderers/ErrorRenderer.js.map +0 -1
- package/dist/components/messages/renderers/FinishRenderer.js +0 -7
- package/dist/components/messages/renderers/FinishRenderer.js.map +0 -1
- package/dist/components/messages/renderers/GenericRenderer.js +0 -50
- package/dist/components/messages/renderers/GenericRenderer.js.map +0 -1
- package/dist/components/messages/renderers/GitCommitRenderer.js +0 -21
- package/dist/components/messages/renderers/GitCommitRenderer.js.map +0 -1
- package/dist/components/messages/renderers/GitDiffRenderer.js +0 -34
- package/dist/components/messages/renderers/GitDiffRenderer.js.map +0 -1
- package/dist/components/messages/renderers/GitStatusRenderer.js +0 -60
- package/dist/components/messages/renderers/GitStatusRenderer.js.map +0 -1
- package/dist/components/messages/renderers/ListRenderer.js +0 -28
- package/dist/components/messages/renderers/ListRenderer.js.map +0 -1
- package/dist/components/messages/renderers/LoadMcpToolsRenderer.js +0 -20
- package/dist/components/messages/renderers/LoadMcpToolsRenderer.js.map +0 -1
- package/dist/components/messages/renderers/McpToolRenderer.js +0 -68
- package/dist/components/messages/renderers/McpToolRenderer.js.map +0 -1
- package/dist/components/messages/renderers/ProgressUpdateRenderer.js +0 -9
- package/dist/components/messages/renderers/ProgressUpdateRenderer.js.map +0 -1
- package/dist/components/messages/renderers/ReadRenderer.js +0 -87
- package/dist/components/messages/renderers/ReadRenderer.js.map +0 -1
- package/dist/components/messages/renderers/ReasoningRenderer.js +0 -34
- package/dist/components/messages/renderers/ReasoningRenderer.js.map +0 -1
- package/dist/components/messages/renderers/SearchRenderer.js +0 -52
- package/dist/components/messages/renderers/SearchRenderer.js.map +0 -1
- package/dist/components/messages/renderers/SkillRenderer.js +0 -36
- package/dist/components/messages/renderers/SkillRenderer.js.map +0 -1
- package/dist/components/messages/renderers/TerminalRenderer.js +0 -84
- package/dist/components/messages/renderers/TerminalRenderer.js.map +0 -1
- package/dist/components/messages/renderers/TodosRenderer.js +0 -15
- package/dist/components/messages/renderers/TodosRenderer.js.map +0 -1
- package/dist/components/messages/renderers/ToolErrorDisplay.js +0 -10
- package/dist/components/messages/renderers/ToolErrorDisplay.js.map +0 -1
- package/dist/components/messages/renderers/TreeRenderer.js +0 -33
- package/dist/components/messages/renderers/TreeRenderer.js.map +0 -1
- package/dist/components/messages/renderers/WebSearchRenderer.js +0 -29
- package/dist/components/messages/renderers/WebSearchRenderer.js.map +0 -1
- package/dist/components/messages/renderers/WriteRenderer.js +0 -28
- package/dist/components/messages/renderers/WriteRenderer.js.map +0 -1
- package/dist/components/messages/renderers/index.js +0 -129
- package/dist/components/messages/renderers/index.js.map +0 -1
- package/dist/components/messages/renderers/shared/CopyButton.js +0 -27
- package/dist/components/messages/renderers/shared/CopyButton.js.map +0 -1
- package/dist/components/messages/renderers/shared/ImagePreview.js +0 -14
- package/dist/components/messages/renderers/shared/ImagePreview.js.map +0 -1
- package/dist/components/messages/renderers/shared/ToolContentBox.js +0 -9
- package/dist/components/messages/renderers/shared/ToolContentBox.js.map +0 -1
- package/dist/components/messages/renderers/shared/ToolHeader.js +0 -69
- package/dist/components/messages/renderers/shared/ToolHeader.js.map +0 -1
- package/dist/components/messages/renderers/shared/index.js +0 -5
- package/dist/components/messages/renderers/shared/index.js.map +0 -1
- package/dist/components/messages/renderers/types.js +0 -2
- package/dist/components/messages/renderers/types.js.map +0 -1
- package/dist/components/messages/renderers/utils.js +0 -60
- package/dist/components/messages/renderers/utils.js.map +0 -1
- package/dist/components/onboarding/OnboardingModal.js +0 -22
- package/dist/components/onboarding/OnboardingModal.js.map +0 -1
- package/dist/components/onboarding/index.js +0 -4
- package/dist/components/onboarding/index.js.map +0 -1
- package/dist/components/onboarding/steps/DefaultsStep.js +0 -104
- package/dist/components/onboarding/steps/DefaultsStep.js.map +0 -1
- package/dist/components/onboarding/steps/ProviderSetupStep.js +0 -398
- package/dist/components/onboarding/steps/ProviderSetupStep.js.map +0 -1
- package/dist/components/research/ResearchSidebar.js +0 -288
- package/dist/components/research/ResearchSidebar.js.map +0 -1
- package/dist/components/research/ResearchSidebarToggle.js +0 -15
- package/dist/components/research/ResearchSidebarToggle.js.map +0 -1
- package/dist/components/research/index.js +0 -3
- package/dist/components/research/index.js.map +0 -1
- package/dist/components/session-files/SessionFilesDiffPanel.js +0 -345
- package/dist/components/session-files/SessionFilesDiffPanel.js.map +0 -1
- package/dist/components/session-files/SessionFilesSidebar.js +0 -87
- package/dist/components/session-files/SessionFilesSidebar.js.map +0 -1
- package/dist/components/session-files/SessionFilesSidebarToggle.js +0 -15
- package/dist/components/session-files/SessionFilesSidebarToggle.js.map +0 -1
- package/dist/components/session-files/index.js +0 -4
- package/dist/components/session-files/index.js.map +0 -1
- package/dist/components/sessions/EditableTitle.js +0 -40
- package/dist/components/sessions/EditableTitle.js.map +0 -1
- package/dist/components/sessions/LeanHeader.js +0 -70
- package/dist/components/sessions/LeanHeader.js.map +0 -1
- package/dist/components/sessions/SessionHeader.js +0 -75
- package/dist/components/sessions/SessionHeader.js.map +0 -1
- package/dist/components/sessions/SessionItem.js +0 -28
- package/dist/components/sessions/SessionItem.js.map +0 -1
- package/dist/components/sessions/SessionListContainer.js +0 -86
- package/dist/components/sessions/SessionListContainer.js.map +0 -1
- package/dist/components/settings/SettingsSidebar.js +0 -212
- package/dist/components/settings/SettingsSidebar.js.map +0 -1
- package/dist/components/settings/SettingsSidebarToggle.js +0 -12
- package/dist/components/settings/SettingsSidebarToggle.js.map +0 -1
- package/dist/components/settings/SetuTopupModal.js +0 -306
- package/dist/components/settings/SetuTopupModal.js.map +0 -1
- package/dist/components/skills/SkillViewerPanel.js +0 -89
- package/dist/components/skills/SkillViewerPanel.js.map +0 -1
- package/dist/components/skills/SkillsSidebar.js +0 -59
- package/dist/components/skills/SkillsSidebar.js.map +0 -1
- package/dist/components/skills/SkillsSidebarToggle.js +0 -12
- package/dist/components/skills/SkillsSidebarToggle.js.map +0 -1
- package/dist/components/skills/index.js +0 -4
- package/dist/components/skills/index.js.map +0 -1
- package/dist/components/terminals/TerminalPanelToggle.js +0 -13
- package/dist/components/terminals/TerminalPanelToggle.js.map +0 -1
- package/dist/components/terminals/TerminalTabBar.js +0 -22
- package/dist/components/terminals/TerminalTabBar.js.map +0 -1
- package/dist/components/terminals/TerminalViewer.js +0 -371
- package/dist/components/terminals/TerminalViewer.js.map +0 -1
- package/dist/components/terminals/TerminalsPanel.js +0 -134
- package/dist/components/terminals/TerminalsPanel.js.map +0 -1
- package/dist/components/terminals/index.js +0 -11
- package/dist/components/terminals/index.js.map +0 -1
- package/dist/components/tunnel/TunnelSidebar.js +0 -55
- package/dist/components/tunnel/TunnelSidebar.js.map +0 -1
- package/dist/components/tunnel/TunnelSidebarToggle.js +0 -14
- package/dist/components/tunnel/TunnelSidebarToggle.js.map +0 -1
- package/dist/components/tunnel/index.js +0 -3
- package/dist/components/tunnel/index.js.map +0 -1
- package/dist/components/ui/Button.js +0 -19
- package/dist/components/ui/Button.js.map +0 -1
- package/dist/components/ui/Card.js +0 -7
- package/dist/components/ui/Card.js.map +0 -1
- package/dist/components/ui/ConfirmationDialog.js +0 -72
- package/dist/components/ui/ConfirmationDialog.js.map +0 -1
- package/dist/components/ui/Input.js +0 -7
- package/dist/components/ui/Input.js.map +0 -1
- package/dist/components/ui/Modal.js +0 -51
- package/dist/components/ui/Modal.js.map +0 -1
- package/dist/components/ui/ResizeHandle.js +0 -39
- package/dist/components/ui/ResizeHandle.js.map +0 -1
- package/dist/components/ui/Textarea.js +0 -7
- package/dist/components/ui/Textarea.js.map +0 -1
- package/dist/components/ui/Toaster.js +0 -41
- package/dist/components/ui/Toaster.js.map +0 -1
- package/dist/components/ui/ToolApprovalDialog.js +0 -57
- package/dist/components/ui/ToolApprovalDialog.js.map +0 -1
- package/dist/hooks/useAuthStatus.js +0 -287
- package/dist/hooks/useAuthStatus.js.map +0 -1
- package/dist/hooks/useBranch.js +0 -44
- package/dist/hooks/useBranch.js.map +0 -1
- package/dist/hooks/useCommandSuggestions.js +0 -86
- package/dist/hooks/useCommandSuggestions.js.map +0 -1
- package/dist/hooks/useConfig.js +0 -32
- package/dist/hooks/useConfig.js.map +0 -1
- package/dist/hooks/useFileBrowser.js +0 -30
- package/dist/hooks/useFileBrowser.js.map +0 -1
- package/dist/hooks/useFileMention.js +0 -56
- package/dist/hooks/useFileMention.js.map +0 -1
- package/dist/hooks/useFileUpload.js +0 -317
- package/dist/hooks/useFileUpload.js.map +0 -1
- package/dist/hooks/useFiles.js +0 -15
- package/dist/hooks/useFiles.js.map +0 -1
- package/dist/hooks/useGit.js +0 -149
- package/dist/hooks/useGit.js.map +0 -1
- package/dist/hooks/useImageUpload.js +0 -197
- package/dist/hooks/useImageUpload.js.map +0 -1
- package/dist/hooks/useKeyboardShortcuts.js +0 -249
- package/dist/hooks/useKeyboardShortcuts.js.map +0 -1
- package/dist/hooks/useMCP.js +0 -202
- package/dist/hooks/useMCP.js.map +0 -1
- package/dist/hooks/useMessages.js +0 -26
- package/dist/hooks/useMessages.js.map +0 -1
- package/dist/hooks/usePreferences.js +0 -61
- package/dist/hooks/usePreferences.js.map +0 -1
- package/dist/hooks/useProviderUsage.js +0 -44
- package/dist/hooks/useProviderUsage.js.map +0 -1
- package/dist/hooks/useQueueState.js +0 -31
- package/dist/hooks/useQueueState.js.map +0 -1
- package/dist/hooks/useResearch.js +0 -139
- package/dist/hooks/useResearch.js.map +0 -1
- package/dist/hooks/useSessionFiles.js +0 -15
- package/dist/hooks/useSessionFiles.js.map +0 -1
- package/dist/hooks/useSessionStream.js +0 -572
- package/dist/hooks/useSessionStream.js.map +0 -1
- package/dist/hooks/useSessions.js +0 -83
- package/dist/hooks/useSessions.js.map +0 -1
- package/dist/hooks/useSetuBalance.js +0 -71
- package/dist/hooks/useSetuBalance.js.map +0 -1
- package/dist/hooks/useSetuPayments.js +0 -171
- package/dist/hooks/useSetuPayments.js.map +0 -1
- package/dist/hooks/useShareStatus.js +0 -12
- package/dist/hooks/useShareStatus.js.map +0 -1
- package/dist/hooks/useSkills.js +0 -54
- package/dist/hooks/useSkills.js.map +0 -1
- package/dist/hooks/useTerminals.js +0 -67
- package/dist/hooks/useTerminals.js.map +0 -1
- package/dist/hooks/useTheme.js +0 -57
- package/dist/hooks/useTheme.js.map +0 -1
- package/dist/hooks/useToolApprovalShortcuts.js +0 -88
- package/dist/hooks/useToolApprovalShortcuts.js.map +0 -1
- package/dist/hooks/useTopupCallback.js +0 -74
- package/dist/hooks/useTopupCallback.js.map +0 -1
- package/dist/hooks/useTunnel.js +0 -158
- package/dist/hooks/useTunnel.js.map +0 -1
- package/dist/hooks/useVimMode.js +0 -298
- package/dist/hooks/useVimMode.js.map +0 -1
- package/dist/hooks/useWorkingDirectory.js +0 -34
- package/dist/hooks/useWorkingDirectory.js.map +0 -1
- package/dist/lib/api-client/approval.js +0 -25
- package/dist/lib/api-client/approval.js.map +0 -1
- package/dist/lib/api-client/auth.js +0 -139
- package/dist/lib/api-client/auth.js.map +0 -1
- package/dist/lib/api-client/branches.js +0 -45
- package/dist/lib/api-client/branches.js.map +0 -1
- package/dist/lib/api-client/config.js +0 -38
- package/dist/lib/api-client/config.js.map +0 -1
- package/dist/lib/api-client/files.js +0 -35
- package/dist/lib/api-client/files.js.map +0 -1
- package/dist/lib/api-client/git.js +0 -154
- package/dist/lib/api-client/git.js.map +0 -1
- package/dist/lib/api-client/index.js +0 -92
- package/dist/lib/api-client/index.js.map +0 -1
- package/dist/lib/api-client/sessions.js +0 -106
- package/dist/lib/api-client/sessions.js.map +0 -1
- package/dist/lib/api-client/setu.js +0 -144
- package/dist/lib/api-client/setu.js.map +0 -1
- package/dist/lib/api-client/skills.js +0 -31
- package/dist/lib/api-client/skills.js.map +0 -1
- package/dist/lib/api-client/utils.js +0 -65
- package/dist/lib/api-client/utils.js.map +0 -1
- package/dist/lib/commands.js +0 -124
- package/dist/lib/commands.js.map +0 -1
- package/dist/lib/config.js +0 -28
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/nerd-font.js +0 -55
- package/dist/lib/nerd-font.js.map +0 -1
- package/dist/lib/open-url.js +0 -9
- package/dist/lib/open-url.js.map +0 -1
- package/dist/lib/parseResearchContext.js +0 -30
- package/dist/lib/parseResearchContext.js.map +0 -1
- package/dist/lib/sse-client.js +0 -113
- package/dist/lib/sse-client.js.map +0 -1
- package/dist/stores/confirmationStore.js +0 -27
- package/dist/stores/confirmationStore.js.map +0 -1
- package/dist/stores/fileBrowserStore.js +0 -63
- package/dist/stores/fileBrowserStore.js.map +0 -1
- package/dist/stores/filePickerStore.js +0 -8
- package/dist/stores/filePickerStore.js.map +0 -1
- package/dist/stores/focusStore.js +0 -12
- package/dist/stores/focusStore.js.map +0 -1
- package/dist/stores/gitStore.js +0 -63
- package/dist/stores/gitStore.js.map +0 -1
- package/dist/stores/mcpStore.js +0 -63
- package/dist/stores/mcpStore.js.map +0 -1
- package/dist/stores/onboardingStore.js +0 -38
- package/dist/stores/onboardingStore.js.map +0 -1
- package/dist/stores/panelWidthStore.js +0 -12
- package/dist/stores/panelWidthStore.js.map +0 -1
- package/dist/stores/pendingResearchStore.js +0 -38
- package/dist/stores/pendingResearchStore.js.map +0 -1
- package/dist/stores/queueStore.js +0 -11
- package/dist/stores/queueStore.js.map +0 -1
- package/dist/stores/researchStore.js +0 -54
- package/dist/stores/researchStore.js.map +0 -1
- package/dist/stores/sessionFilesStore.js +0 -62
- package/dist/stores/sessionFilesStore.js.map +0 -1
- package/dist/stores/settingsStore.js +0 -29
- package/dist/stores/settingsStore.js.map +0 -1
- package/dist/stores/setuStore.js +0 -29
- package/dist/stores/setuStore.js.map +0 -1
- package/dist/stores/sidebarStore.js +0 -10
- package/dist/stores/sidebarStore.js.map +0 -1
- package/dist/stores/skillsStore.js +0 -46
- package/dist/stores/skillsStore.js.map +0 -1
- package/dist/stores/terminalStore.js +0 -32
- package/dist/stores/terminalStore.js.map +0 -1
- package/dist/stores/toastStore.js +0 -46
- package/dist/stores/toastStore.js.map +0 -1
- package/dist/stores/toolApprovalStore.js +0 -16
- package/dist/stores/toolApprovalStore.js.map +0 -1
- package/dist/stores/topupApprovalStore.js +0 -11
- package/dist/stores/topupApprovalStore.js.map +0 -1
- package/dist/stores/tunnelStore.js +0 -55
- package/dist/stores/tunnelStore.js.map +0 -1
- package/dist/stores/usageStore.js +0 -14
- package/dist/stores/usageStore.js.map +0 -1
|
@@ -1,87 +0,0 @@
|
|
|
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: `\u2066${displayText}\u2069` })] })), !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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReadRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ReadRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,52 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/SearchRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { ChevronRight, AlertCircle, BookOpen, FileText, ShieldAlert, } from 'lucide-react';
|
|
3
|
-
import { formatDuration } from './utils';
|
|
4
|
-
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
5
|
-
export function SkillRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, compact, }) {
|
|
6
|
-
const result = contentJson.result || {};
|
|
7
|
-
const timeStr = formatDuration(toolDurationMs);
|
|
8
|
-
const hasToolError = typeof result === 'object' && 'ok' in result && result.ok === false;
|
|
9
|
-
const errorMessage = hasToolError && 'error' in result && typeof result.error === 'string'
|
|
10
|
-
? result.error
|
|
11
|
-
: null;
|
|
12
|
-
const name = result.name;
|
|
13
|
-
const description = result.description;
|
|
14
|
-
const content = result.content;
|
|
15
|
-
const scope = result.scope;
|
|
16
|
-
const availableFiles = result.availableFiles;
|
|
17
|
-
const securityNotices = result.securityNotices;
|
|
18
|
-
const isSubFile = description?.startsWith('Sub-file:');
|
|
19
|
-
const fileCount = availableFiles?.length ?? 0;
|
|
20
|
-
const noticeCount = securityNotices?.length ?? 0;
|
|
21
|
-
const canExpand = !!content || hasToolError;
|
|
22
|
-
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
|
|
23
|
-
? 'text-red-700 dark:text-red-300 hover:text-red-600 dark:hover:text-red-200'
|
|
24
|
-
: canExpand
|
|
25
|
-
? 'text-violet-700 dark:text-violet-300 hover:text-violet-600 dark:hover:text-violet-200'
|
|
26
|
-
: 'text-violet-700 dark:text-violet-300'}`, children: [canExpand ? (_jsx(ChevronRight, { className: `h-3 w-3 flex-shrink-0 transition-transform ${isExpanded ? 'rotate-90' : ''}` })) : (_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" })), isSubFile ? (_jsx(FileText, { className: "h-3 w-3 flex-shrink-0" })) : (_jsx(BookOpen, { className: "h-3 w-3 flex-shrink-0" })), _jsxs("span", { className: "font-medium flex-shrink-0", children: ["skill", hasToolError ? ' error' : ''] }), name && !compact && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-muted-foreground/70 flex-shrink-0", children: "\u00B7" }), _jsx("span", { className: "text-foreground/70 truncate", children: isSubFile ? description?.replace('Sub-file: ', '') : name })] })), scope && !compact && !isSubFile && (_jsxs("span", { className: "text-muted-foreground/80 flex-shrink-0", children: ["\u00B7 ", scope] })), fileCount > 0 && !compact && (_jsxs("span", { className: "text-muted-foreground/80 flex-shrink-0", children: ["\u00B7 ", fileCount, " file", fileCount !== 1 ? 's' : ''] })), noticeCount > 0 && !compact && (_jsxs("span", { className: "text-amber-600 dark:text-amber-400 flex-shrink-0 flex items-center gap-0.5", children: ["\u00B7 ", _jsx(ShieldAlert, { className: "h-3 w-3 inline" }), " ", noticeCount] })), timeStr && !compact && (_jsxs("span", { className: "text-muted-foreground/80 flex-shrink-0", children: ["\u00B7 ", timeStr] }))] }), isExpanded && hasToolError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage })), isExpanded && !hasToolError && (_jsxs("div", { className: "mt-2 ml-5 space-y-2", children: [noticeCount > 0 && securityNotices && (_jsxs("div", { className: "bg-amber-50 dark:bg-amber-950/30 border border-amber-200 dark:border-amber-800 rounded-lg p-2.5 space-y-1", children: [_jsxs("div", { className: "flex items-center gap-1.5 text-amber-700 dark:text-amber-300 font-medium text-[11px]", children: [_jsx(ShieldAlert, { className: "h-3 w-3" }), "Security Notice", noticeCount > 1 ? 's' : ''] }), securityNotices.map((notice, i) => (_jsxs("div", { className: "text-amber-600 dark:text-amber-400 text-[11px] leading-snug", children: [_jsx("span", { className: "font-mono bg-amber-100 dark:bg-amber-900/40 rounded px-1 py-0.5", children: notice.type }), ' ', notice.description] }, `${notice.type}-${notice.line ?? i}`)))] })), description && !isSubFile && (_jsx("p", { className: "text-muted-foreground italic", children: description })), content && (_jsx("div", { className: "bg-card/60 border border-border rounded-lg overflow-hidden max-h-96 overflow-y-auto max-w-full", children: _jsx("div", { className: "p-3 whitespace-pre-wrap font-mono text-xs leading-relaxed", children: content }) })), fileCount > 0 && availableFiles && (_jsxs("details", { className: "group", children: [_jsxs("summary", { className: "text-muted-foreground cursor-pointer hover:text-foreground/80 text-[11px] select-none", children: [fileCount, " available sub-file", fileCount !== 1 ? 's' : ''] }), _jsx("div", { className: "mt-1.5 bg-card/40 border border-border rounded-lg p-2 space-y-0.5 max-h-48 overflow-y-auto", children: availableFiles.map((f) => (_jsxs("div", { className: "flex items-center justify-between gap-2 font-mono text-[11px]", children: [_jsx("span", { className: "text-foreground/80 truncate", children: f.relativePath }), _jsx("span", { className: "text-muted-foreground/60 flex-shrink-0 tabular-nums", children: formatFileSize(f.size) })] }, f.relativePath))) })] }))] }))] }));
|
|
27
|
-
}
|
|
28
|
-
function formatFileSize(bytes) {
|
|
29
|
-
if (bytes < 1024)
|
|
30
|
-
return `${bytes}B`;
|
|
31
|
-
const kb = bytes / 1024;
|
|
32
|
-
if (kb < 1024)
|
|
33
|
-
return `${kb.toFixed(1)}KB`;
|
|
34
|
-
return `${(kb / 1024).toFixed(1)}MB`;
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=SkillRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SkillRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/SkillRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useState } from 'react';
|
|
3
|
-
import { Terminal } from 'lucide-react';
|
|
4
|
-
import { NERD_FONT_FAMILY, loadNerdFont } from '../../../lib/nerd-font';
|
|
5
|
-
import { formatDuration } from './utils';
|
|
6
|
-
import { ToolErrorDisplay } from './ToolErrorDisplay';
|
|
7
|
-
import { ToolHeader, ToolHeaderSeparator, ToolHeaderMeta, ToolHeaderSuccess, ToolContentBox, } from './shared';
|
|
8
|
-
const ANSI_RE = /[\x1B\x9B][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nq-uy=><~]/g;
|
|
9
|
-
const CONTROL_RE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/g;
|
|
10
|
-
function cleanTerminalOutput(raw) {
|
|
11
|
-
return raw
|
|
12
|
-
.replace(ANSI_RE, '')
|
|
13
|
-
.replace(CONTROL_RE, '')
|
|
14
|
-
.replace(/\\n/g, '\n')
|
|
15
|
-
.replace(/\r\n/g, '\n')
|
|
16
|
-
.replace(/\r/g, '\n');
|
|
17
|
-
}
|
|
18
|
-
export function TerminalRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, compact, }) {
|
|
19
|
-
const [, setFontReady] = useState(false);
|
|
20
|
-
useEffect(() => {
|
|
21
|
-
loadNerdFont().then(() => setFontReady(true));
|
|
22
|
-
}, []);
|
|
23
|
-
const result = contentJson.result || {};
|
|
24
|
-
const args = contentJson.args || {};
|
|
25
|
-
const operation = String(args.operation || args.command || '');
|
|
26
|
-
const hasToolError = typeof result === 'object' && 'ok' in result && result.ok === false;
|
|
27
|
-
const errorMessage = hasToolError && 'error' in result && typeof result.error === 'string'
|
|
28
|
-
? result.error
|
|
29
|
-
: null;
|
|
30
|
-
const errorStack = hasToolError && 'stack' in result && typeof result.stack === 'string'
|
|
31
|
-
? result.stack
|
|
32
|
-
: undefined;
|
|
33
|
-
const timeStr = formatDuration(toolDurationMs);
|
|
34
|
-
const terminalId = String(result.terminalId || args.terminalId || '');
|
|
35
|
-
const shortId = terminalId.length > 12 ? `${terminalId.slice(0, 12)}…` : terminalId;
|
|
36
|
-
const purpose = String(result.purpose || args.purpose || '');
|
|
37
|
-
const command = String(result.command || args.command || '');
|
|
38
|
-
const renderStartResult = () => {
|
|
39
|
-
const pid = result.pid ? `PID ${result.pid}` : '';
|
|
40
|
-
return (_jsxs("div", { className: "mt-2 ml-5 flex flex-col gap-1 text-xs", children: [command && (_jsxs("div", { className: "flex items-center gap-2 text-foreground/70", children: [_jsx(Terminal, { className: "h-3 w-3" }), _jsx("code", { className: "font-mono", children: command })] })), purpose && _jsx("div", { className: "text-muted-foreground/70", children: purpose }), _jsxs("div", { className: "flex items-center gap-2 text-muted-foreground/60", children: [shortId && _jsx("span", { className: "font-mono", children: shortId }), pid && (_jsxs(_Fragment, { children: [_jsx("span", { children: "\u00B7" }), _jsx("span", { children: pid })] }))] })] }));
|
|
41
|
-
};
|
|
42
|
-
const renderReadResult = () => {
|
|
43
|
-
const rawOutput = String(result.text || result.output || '');
|
|
44
|
-
const output = cleanTerminalOutput(rawOutput);
|
|
45
|
-
const status = String(result.status || '');
|
|
46
|
-
const exitCode = result.exitCode;
|
|
47
|
-
const lineCount = typeof result.lines === 'number' ? result.lines : 0;
|
|
48
|
-
return (_jsxs("div", { className: "mt-2 ml-5 flex flex-col gap-2 max-w-full", children: [_jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground/70", children: [shortId && _jsx("span", { className: "font-mono", children: shortId }), _jsx("span", { children: "\u00B7" }), _jsxs("span", { children: [lineCount, " lines"] }), _jsx("span", { children: "\u00B7" }), _jsxs("span", { className: status === 'running'
|
|
49
|
-
? 'text-emerald-600 dark:text-emerald-400'
|
|
50
|
-
: '', children: [status, status === 'exited' && exitCode !== undefined
|
|
51
|
-
? ` (${exitCode})`
|
|
52
|
-
: ''] })] }), output.trim() && (_jsx(ToolContentBox, { title: "output", copyText: output, maxHeight: "max-h-[30rem]", children: _jsx("pre", { className: "px-3 py-2 text-xs text-foreground/85 whitespace-pre-wrap break-words overflow-x-auto", style: { fontFamily: NERD_FONT_FAMILY }, children: output }) }))] }));
|
|
53
|
-
};
|
|
54
|
-
const renderListResult = () => {
|
|
55
|
-
const terminals = Array.isArray(result.terminals) ? result.terminals : [];
|
|
56
|
-
const count = typeof result.count === 'number' ? result.count : terminals.length;
|
|
57
|
-
return (_jsxs("div", { className: "mt-2 ml-5 flex flex-col gap-1 text-xs", children: [_jsxs("div", { className: "text-muted-foreground/70", children: [count, " terminal", count !== 1 ? 's' : ''] }), terminals.slice(0, 8).map((t, i) => (_jsxs("div", { className: "flex items-center gap-2 text-foreground/70 font-mono", children: [_jsx("span", { className: `h-2 w-2 rounded-full ${t.status === 'running' ? 'bg-emerald-500' : 'bg-muted-foreground/40'}` }), _jsx("span", { className: "truncate max-w-[100px]", children: String(t.id || '').slice(0, 12) }), _jsx("span", { className: "text-muted-foreground/60 truncate", children: String(t.purpose || '') })] }, String(t.id || i))))] }));
|
|
58
|
-
};
|
|
59
|
-
const renderWriteResult = () => {
|
|
60
|
-
const written = String(args.input || '');
|
|
61
|
-
return written ? (_jsx("div", { className: "mt-2 ml-5 text-xs", children: _jsx("code", { className: "font-mono text-foreground/70 whitespace-pre-wrap", children: written }) })) : null;
|
|
62
|
-
};
|
|
63
|
-
const label = operation || 'terminal';
|
|
64
|
-
const headerLabel = `terminal ${label}`;
|
|
65
|
-
const hasContent = !hasToolError &&
|
|
66
|
-
(operation === 'start' ||
|
|
67
|
-
operation === 'read' ||
|
|
68
|
-
operation === 'list' ||
|
|
69
|
-
(operation === 'write' && (args.input || result.message)));
|
|
70
|
-
return (_jsxs("div", { className: "text-xs", children: [_jsxs(ToolHeader, { toolName: headerLabel, isExpanded: isExpanded, onToggle: onToggle, isError: !!hasToolError, colorVariant: "amber", canExpand: !!hasContent || !!hasToolError, children: [!compact && shortId && (_jsxs(_Fragment, { children: [_jsx(ToolHeaderSeparator, {}), _jsx("span", { className: "text-foreground/70 font-mono text-[11px]", children: shortId })] })), !compact && purpose && !shortId && (_jsxs(_Fragment, { children: [_jsx(ToolHeaderSeparator, {}), _jsx("span", { className: "text-foreground/70 text-[11px] truncate max-w-xs", children: purpose })] })), !hasToolError && !compact && (_jsxs(_Fragment, { children: [_jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderSuccess, { children: "ok" }), _jsx(ToolHeaderSeparator, {}), _jsx(ToolHeaderMeta, { children: timeStr })] })), hasToolError && !compact && (_jsxs(ToolHeaderMeta, { children: ["\u00B7 ", timeStr] }))] }), isExpanded && hasToolError && errorMessage && (_jsx(ToolErrorDisplay, { error: errorMessage, stack: errorStack, showStack: true })), isExpanded &&
|
|
71
|
-
!hasToolError &&
|
|
72
|
-
operation === 'start' &&
|
|
73
|
-
renderStartResult(), isExpanded &&
|
|
74
|
-
!hasToolError &&
|
|
75
|
-
operation === 'read' &&
|
|
76
|
-
renderReadResult(), isExpanded &&
|
|
77
|
-
!hasToolError &&
|
|
78
|
-
operation === 'list' &&
|
|
79
|
-
renderListResult(), isExpanded &&
|
|
80
|
-
!hasToolError &&
|
|
81
|
-
operation === 'write' &&
|
|
82
|
-
renderWriteResult()] }));
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=TerminalRenderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TerminalRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TerminalRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,33 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TreeRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/TreeRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebSearchRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/WebSearchRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
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: `\u2066${path}\u2069` })] })), !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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WriteRenderer.js","sourceRoot":"","sources":["../../../../src/components/messages/renderers/WriteRenderer.tsx"],"names":[],"mappings":"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"}
|