@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,306 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { memo, useState, useEffect, useCallback, useRef } from 'react';
|
|
3
|
-
import { CreditCard, Wallet, Loader2, ExternalLink, RefreshCw, } from 'lucide-react';
|
|
4
|
-
import { Modal } from '../ui/Modal';
|
|
5
|
-
import { useSetuStore } from '../../stores/setuStore';
|
|
6
|
-
import { apiClient } from '../../lib/api-client';
|
|
7
|
-
import { toast } from '../../stores/toastStore';
|
|
8
|
-
import { StatusIndicator } from '../common/StatusIndicator';
|
|
9
|
-
const PRESET_AMOUNTS = [10, 25, 50, 100];
|
|
10
|
-
const MIN_AMOUNT = 5;
|
|
11
|
-
const MIN_AMOUNT_RAZORPAY = 2;
|
|
12
|
-
const MAX_AMOUNT = 500;
|
|
13
|
-
const POLL_INTERVAL = 5000;
|
|
14
|
-
const SUCCESS_PAGE_URL = 'https://share.ottocode.io/checkout/success';
|
|
15
|
-
function loadRazorpayScript() {
|
|
16
|
-
return new Promise((resolve, reject) => {
|
|
17
|
-
if (window.Razorpay) {
|
|
18
|
-
resolve();
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
const script = document.createElement('script');
|
|
22
|
-
script.src = 'https://checkout.razorpay.com/v1/checkout.js';
|
|
23
|
-
script.onload = () => resolve();
|
|
24
|
-
script.onerror = () => reject(new Error('Failed to load Razorpay'));
|
|
25
|
-
document.head.appendChild(script);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
function PolarIcon({ className = 'w-5 h-5' }) {
|
|
29
|
-
return (_jsxs("svg", { className: className, viewBox: "0 0 24 24", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: [_jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M5.08734 21.1119C10.2671 24.6182 17.3085 23.2616 20.8148 18.0818C24.3211 12.9021 22.9645 5.86065 17.7848 2.35436C12.605 -1.15192 5.56353 0.204698 2.05724 5.38446C-1.44904 10.5642 -0.0924184 17.6057 5.08734 21.1119ZM6.58958 21.2045C11.3278 23.6286 17.3384 21.3531 20.0147 16.1221C22.6909 10.891 21.0194 4.68533 16.2811 2.2612C11.543 -0.162919 5.53235 2.11252 2.8561 7.34355C0.179842 12.5745 1.85138 18.7803 6.58958 21.2045Z" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.93988 22.4416C12.2169 23.8337 17.2485 20.1561 19.1782 14.2276C21.1078 8.29898 19.2047 2.3644 14.9276 0.9723C10.6505 -0.419794 5.61905 3.25775 3.68942 9.18633C1.7598 15.1149 3.6628 21.0495 7.93988 22.4416ZM9.24825 21.991C12.868 22.7631 16.7819 18.796 17.9904 13.1305C19.1988 7.46494 17.244 2.24622 13.6243 1.47416C10.0046 0.702105 6.09064 4.66908 4.88222 10.3347C3.67381 16.0002 5.62854 21.2189 9.24825 21.991Z" }), _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M10.2406 22.9252C13.1024 23.2308 15.9585 18.4574 16.6199 12.2635C17.2812 6.06969 15.4974 0.800854 12.6356 0.495275C9.77386 0.189695 6.91772 4.96309 6.25634 11.157C5.59498 17.3508 7.37878 22.6196 10.2406 22.9252ZM11.5798 21.04C13.6508 21.0073 15.264 16.8146 15.1828 11.6754C15.1017 6.53608 13.3568 2.39642 11.2858 2.42914C9.21463 2.46187 7.60148 6.65457 7.68268 11.7939C7.76387 16.9331 9.50864 21.0727 11.5798 21.04Z" })] }));
|
|
30
|
-
}
|
|
31
|
-
function RazorpayIcon({ className = 'w-5 h-5' }) {
|
|
32
|
-
return (_jsx("svg", { className: className, viewBox: "0 0 24 24", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { d: "M22.436 0l-11.91 7.773-1.174 4.276 6.625-4.297L11.65 24h4.391l6.395-24zM14.26 10.098L3.389 17.166 1.564 24h9.008l3.688-13.902Z" }) }));
|
|
33
|
-
}
|
|
34
|
-
export const SetuTopupModal = memo(function SetuTopupModal() {
|
|
35
|
-
const isOpen = useSetuStore((s) => s.isTopupModalOpen);
|
|
36
|
-
const closeModal = useSetuStore((s) => s.closeTopupModal);
|
|
37
|
-
const balance = useSetuStore((s) => s.balance);
|
|
38
|
-
const setBalance = useSetuStore((s) => s.setBalance);
|
|
39
|
-
const usdcBalance = useSetuStore((s) => s.usdcBalance);
|
|
40
|
-
const subscription = useSetuStore((s) => s.subscription);
|
|
41
|
-
const [view, setView] = useState('amount');
|
|
42
|
-
const [gateway, setGateway] = useState('polar');
|
|
43
|
-
const [amount, setAmount] = useState(25);
|
|
44
|
-
const [customAmount, setCustomAmount] = useState('');
|
|
45
|
-
const [isCustom, setIsCustom] = useState(false);
|
|
46
|
-
const [estimate, setEstimate] = useState(null);
|
|
47
|
-
const [razorpayEstimate, setRazorpayEstimate] = useState(null);
|
|
48
|
-
const [isLoadingEstimate, setIsLoadingEstimate] = useState(false);
|
|
49
|
-
const [isCreatingCheckout, setIsCreatingCheckout] = useState(false);
|
|
50
|
-
const [checkoutInfo, setCheckoutInfo] = useState(null);
|
|
51
|
-
const [isPolling, setIsPolling] = useState(false);
|
|
52
|
-
const [confirmedAmount, setConfirmedAmount] = useState(null);
|
|
53
|
-
const [pollCount, setPollCount] = useState(0);
|
|
54
|
-
const [isManualChecking, setIsManualChecking] = useState(false);
|
|
55
|
-
const pollRef = useRef(null);
|
|
56
|
-
const effectiveAmount = isCustom ? parseFloat(customAmount) || 0 : amount;
|
|
57
|
-
const hasGoPlan = !!subscription?.active;
|
|
58
|
-
const minAmount = gateway === 'razorpay' ? MIN_AMOUNT_RAZORPAY : MIN_AMOUNT;
|
|
59
|
-
const fetchEstimate = useCallback(async (amt) => {
|
|
60
|
-
if (amt < minAmount || amt > MAX_AMOUNT) {
|
|
61
|
-
setEstimate(null);
|
|
62
|
-
setRazorpayEstimate(null);
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
setIsLoadingEstimate(true);
|
|
66
|
-
try {
|
|
67
|
-
if (gateway === 'polar') {
|
|
68
|
-
const result = await apiClient.getPolarTopupEstimate(amt);
|
|
69
|
-
setEstimate(result);
|
|
70
|
-
setRazorpayEstimate(null);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
const result = await apiClient.getRazorpayTopupEstimate(amt);
|
|
74
|
-
setRazorpayEstimate(result);
|
|
75
|
-
setEstimate(null);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
setEstimate(null);
|
|
80
|
-
setRazorpayEstimate(null);
|
|
81
|
-
}
|
|
82
|
-
finally {
|
|
83
|
-
setIsLoadingEstimate(false);
|
|
84
|
-
}
|
|
85
|
-
}, [gateway, minAmount]);
|
|
86
|
-
useEffect(() => {
|
|
87
|
-
if (isOpen && effectiveAmount >= minAmount && view === 'amount') {
|
|
88
|
-
const timeout = setTimeout(() => fetchEstimate(effectiveAmount), 300);
|
|
89
|
-
return () => clearTimeout(timeout);
|
|
90
|
-
}
|
|
91
|
-
}, [isOpen, effectiveAmount, fetchEstimate, view, minAmount]);
|
|
92
|
-
const stopPolling = useCallback(() => {
|
|
93
|
-
if (pollRef.current) {
|
|
94
|
-
clearInterval(pollRef.current);
|
|
95
|
-
pollRef.current = null;
|
|
96
|
-
}
|
|
97
|
-
setIsPolling(false);
|
|
98
|
-
}, []);
|
|
99
|
-
useEffect(() => {
|
|
100
|
-
if (!isOpen) {
|
|
101
|
-
stopPolling();
|
|
102
|
-
setView('amount');
|
|
103
|
-
setCheckoutInfo(null);
|
|
104
|
-
setConfirmedAmount(null);
|
|
105
|
-
setPollCount(0);
|
|
106
|
-
}
|
|
107
|
-
}, [isOpen, stopPolling]);
|
|
108
|
-
useEffect(() => {
|
|
109
|
-
return () => stopPolling();
|
|
110
|
-
}, [stopPolling]);
|
|
111
|
-
const startPolling = useCallback((checkoutId) => {
|
|
112
|
-
if (pollRef.current)
|
|
113
|
-
return;
|
|
114
|
-
setIsPolling(true);
|
|
115
|
-
setPollCount(0);
|
|
116
|
-
const check = async () => {
|
|
117
|
-
try {
|
|
118
|
-
const status = await apiClient.getPolarTopupStatus(checkoutId);
|
|
119
|
-
setPollCount((c) => c + 1);
|
|
120
|
-
if (status?.confirmed) {
|
|
121
|
-
stopPolling();
|
|
122
|
-
setConfirmedAmount(status.amountUsd);
|
|
123
|
-
localStorage.removeItem('pendingPolarCheckout');
|
|
124
|
-
const balanceData = await apiClient.getSetuBalance();
|
|
125
|
-
if (balanceData?.balance !== undefined) {
|
|
126
|
-
setBalance(balanceData.balance);
|
|
127
|
-
}
|
|
128
|
-
setView('confirmed');
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
catch {
|
|
132
|
-
setPollCount((c) => c + 1);
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
check();
|
|
136
|
-
pollRef.current = setInterval(check, POLL_INTERVAL);
|
|
137
|
-
}, [stopPolling, setBalance]);
|
|
138
|
-
const handlePresetClick = (preset) => {
|
|
139
|
-
setAmount(preset);
|
|
140
|
-
setIsCustom(false);
|
|
141
|
-
setCustomAmount('');
|
|
142
|
-
};
|
|
143
|
-
const handleCustomAmountChange = (value) => {
|
|
144
|
-
setCustomAmount(value);
|
|
145
|
-
setIsCustom(true);
|
|
146
|
-
};
|
|
147
|
-
const openCheckoutUrl = useCallback((url) => {
|
|
148
|
-
if (window.self !== window.top) {
|
|
149
|
-
window.parent.postMessage({ type: 'otto-open-url', url }, '*');
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
window.open(url, '_blank');
|
|
153
|
-
}
|
|
154
|
-
}, []);
|
|
155
|
-
const handlePolarCheckout = async () => {
|
|
156
|
-
if (effectiveAmount < MIN_AMOUNT || effectiveAmount > MAX_AMOUNT) {
|
|
157
|
-
toast.error(`Amount must be between $${MIN_AMOUNT} and $${MAX_AMOUNT}`);
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
setIsCreatingCheckout(true);
|
|
161
|
-
try {
|
|
162
|
-
const result = await apiClient.createPolarCheckout(effectiveAmount, SUCCESS_PAGE_URL);
|
|
163
|
-
if (result.checkoutUrl && result.checkoutId) {
|
|
164
|
-
const info = {
|
|
165
|
-
url: result.checkoutUrl,
|
|
166
|
-
checkoutId: result.checkoutId,
|
|
167
|
-
creditAmount: result.creditAmount,
|
|
168
|
-
chargeAmount: result.chargeAmount,
|
|
169
|
-
};
|
|
170
|
-
setCheckoutInfo(info);
|
|
171
|
-
localStorage.setItem('pendingPolarCheckout', result.checkoutId);
|
|
172
|
-
setView('checkout');
|
|
173
|
-
openCheckoutUrl(result.checkoutUrl);
|
|
174
|
-
startPolling(result.checkoutId);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
catch (error) {
|
|
178
|
-
toast.error(error instanceof Error ? error.message : 'Failed to create checkout');
|
|
179
|
-
}
|
|
180
|
-
finally {
|
|
181
|
-
setIsCreatingCheckout(false);
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
const handleRazorpayCheckout = async () => {
|
|
185
|
-
if (effectiveAmount < MIN_AMOUNT_RAZORPAY || effectiveAmount > MAX_AMOUNT) {
|
|
186
|
-
toast.error(`Amount must be between $${MIN_AMOUNT_RAZORPAY} and $${MAX_AMOUNT}`);
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
setIsCreatingCheckout(true);
|
|
190
|
-
try {
|
|
191
|
-
await loadRazorpayScript();
|
|
192
|
-
const order = await apiClient.createRazorpayOrder(effectiveAmount);
|
|
193
|
-
setView('razorpay-processing');
|
|
194
|
-
const rzp = new window.Razorpay({
|
|
195
|
-
key: order.keyId,
|
|
196
|
-
amount: order.amount,
|
|
197
|
-
currency: order.currency,
|
|
198
|
-
name: 'Setu',
|
|
199
|
-
description: `Top up $${order.creditAmountUsd.toFixed(2)} credits`,
|
|
200
|
-
order_id: order.orderId,
|
|
201
|
-
handler: async (response) => {
|
|
202
|
-
try {
|
|
203
|
-
const result = await apiClient.verifyRazorpayPayment({
|
|
204
|
-
razorpay_order_id: response.razorpay_order_id,
|
|
205
|
-
razorpay_payment_id: response.razorpay_payment_id,
|
|
206
|
-
razorpay_signature: response.razorpay_signature,
|
|
207
|
-
});
|
|
208
|
-
if (result.success) {
|
|
209
|
-
setConfirmedAmount(result.credited);
|
|
210
|
-
const balanceData = await apiClient.getSetuBalance();
|
|
211
|
-
if (balanceData?.balance !== undefined) {
|
|
212
|
-
setBalance(balanceData.balance);
|
|
213
|
-
}
|
|
214
|
-
setView('confirmed');
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
catch (err) {
|
|
218
|
-
toast.error(err instanceof Error
|
|
219
|
-
? err.message
|
|
220
|
-
: 'Payment verification failed');
|
|
221
|
-
setView('amount');
|
|
222
|
-
}
|
|
223
|
-
},
|
|
224
|
-
modal: {
|
|
225
|
-
ondismiss: () => {
|
|
226
|
-
setView('amount');
|
|
227
|
-
},
|
|
228
|
-
},
|
|
229
|
-
theme: {
|
|
230
|
-
color: '#7c3aed',
|
|
231
|
-
},
|
|
232
|
-
});
|
|
233
|
-
rzp.on('payment.failed', () => {
|
|
234
|
-
toast.error('Payment failed. Please try again.');
|
|
235
|
-
setView('amount');
|
|
236
|
-
});
|
|
237
|
-
rzp.open();
|
|
238
|
-
}
|
|
239
|
-
catch (error) {
|
|
240
|
-
toast.error(error instanceof Error ? error.message : 'Failed to create order');
|
|
241
|
-
setView('amount');
|
|
242
|
-
}
|
|
243
|
-
finally {
|
|
244
|
-
setIsCreatingCheckout(false);
|
|
245
|
-
}
|
|
246
|
-
};
|
|
247
|
-
const handleCheckout = () => {
|
|
248
|
-
if (gateway === 'polar') {
|
|
249
|
-
handlePolarCheckout();
|
|
250
|
-
}
|
|
251
|
-
else {
|
|
252
|
-
handleRazorpayCheckout();
|
|
253
|
-
}
|
|
254
|
-
};
|
|
255
|
-
const handleCheckNow = async () => {
|
|
256
|
-
if (!checkoutInfo)
|
|
257
|
-
return;
|
|
258
|
-
setIsManualChecking(true);
|
|
259
|
-
try {
|
|
260
|
-
const status = await apiClient.getPolarTopupStatus(checkoutInfo.checkoutId);
|
|
261
|
-
if (status?.confirmed) {
|
|
262
|
-
stopPolling();
|
|
263
|
-
setConfirmedAmount(status.amountUsd);
|
|
264
|
-
localStorage.removeItem('pendingPolarCheckout');
|
|
265
|
-
const balanceData = await apiClient.getSetuBalance();
|
|
266
|
-
if (balanceData?.balance !== undefined) {
|
|
267
|
-
setBalance(balanceData.balance);
|
|
268
|
-
}
|
|
269
|
-
setView('confirmed');
|
|
270
|
-
}
|
|
271
|
-
else {
|
|
272
|
-
toast.error('Payment not confirmed yet. Keep waiting or try again.');
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
catch (err) {
|
|
276
|
-
console.error('[SetuTopupModal] Check failed:', err);
|
|
277
|
-
toast.error('Failed to check payment status');
|
|
278
|
-
}
|
|
279
|
-
finally {
|
|
280
|
-
setIsManualChecking(false);
|
|
281
|
-
}
|
|
282
|
-
};
|
|
283
|
-
const handleDone = () => {
|
|
284
|
-
closeModal();
|
|
285
|
-
};
|
|
286
|
-
const isValidAmount = effectiveAmount >= minAmount && effectiveAmount <= MAX_AMOUNT;
|
|
287
|
-
const modalTitle = view === 'confirmed'
|
|
288
|
-
? 'Payment Confirmed'
|
|
289
|
-
: view === 'checkout'
|
|
290
|
-
? 'Waiting for Payment'
|
|
291
|
-
: view === 'razorpay-processing'
|
|
292
|
-
? 'Processing Payment'
|
|
293
|
-
: 'Add Credits';
|
|
294
|
-
return (_jsx(Modal, { isOpen: isOpen, onClose: closeModal, title: modalTitle, maxWidth: "md", children: _jsxs("div", { className: "space-y-6", children: [view === 'confirmed' && (_jsxs(_Fragment, { children: [_jsx("div", { className: "py-4", children: _jsx(StatusIndicator, { status: "success", label: `+$${confirmedAmount?.toFixed(2) ?? checkoutInfo?.creditAmount.toFixed(2)}`, sublabel: "Credits added to your balance" }) }), _jsx("button", { type: "button", onClick: handleDone, className: "w-full h-12 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors flex items-center justify-center gap-2", children: "Done" })] })), view === 'razorpay-processing' && (_jsx("div", { className: "py-8", children: _jsx(StatusIndicator, { status: "loading", label: "Complete payment in the Razorpay window", sublabel: "Do not close this page" }) })), view === 'checkout' && checkoutInfo && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "py-4", children: [_jsx(StatusIndicator, { status: "loading", label: "Complete your payment", sublabel: "A checkout window has been opened" }), _jsxs("div", { className: "flex items-center justify-center gap-2 mt-4 px-3 py-1.5 bg-muted/40 rounded-full w-fit mx-auto", children: [_jsx("div", { className: "w-1.5 h-1.5 rounded-full bg-blue-500 animate-pulse" }), _jsx("span", { className: "text-xs text-muted-foreground font-mono", children: isPolling ? `Checking... (${pollCount})` : 'Paused' })] })] }), _jsxs("div", { className: "space-y-2", children: [_jsxs("button", { type: "button", onClick: handleCheckNow, disabled: isManualChecking, className: "w-full h-12 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors disabled:opacity-50 flex items-center justify-center gap-2", children: [isManualChecking ? (_jsx(Loader2, { className: "w-4 h-4 animate-spin" })) : (_jsx(RefreshCw, { className: "w-4 h-4" })), isManualChecking ? 'Checking...' : 'Check Now'] }), _jsxs("button", { type: "button", onClick: () => openCheckoutUrl(checkoutInfo.url), className: "w-full h-11 bg-transparent border border-border text-foreground rounded-lg font-medium hover:bg-muted/50 transition-colors flex items-center justify-center gap-2", children: [_jsx(ExternalLink, { className: "w-4 h-4" }), "Open Checkout Again"] })] }), _jsx("p", { className: "text-xs text-muted-foreground text-center", children: "Status checks automatically every 5 seconds. You can close this and it will keep checking." })] })), view === 'amount' && (_jsxs(_Fragment, { children: [hasGoPlan && (_jsx("div", { className: "text-xs text-muted-foreground bg-muted/30 border border-border rounded-lg px-3 py-2", children: "You are on GO. Top-ups add extra balance for additional usage." })), _jsxs("div", { className: "flex items-center justify-between py-3 px-4 bg-muted/40 rounded-lg", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "Current Balance" }), _jsxs("span", { className: "text-lg font-mono font-semibold", children: ["$", balance?.toFixed(2) ?? '0.00'] })] }), _jsxs("div", { className: "flex rounded-lg border border-border overflow-hidden", children: [_jsxs("button", { type: "button", onClick: () => setGateway('polar'), className: `flex-1 flex items-center justify-center gap-2 py-2.5 text-sm font-medium transition-colors ${gateway === 'polar'
|
|
295
|
-
? 'bg-foreground text-background'
|
|
296
|
-
: 'bg-transparent text-muted-foreground hover:text-foreground'}`, children: [_jsx(PolarIcon, { className: "w-3.5 h-3.5" }), "Polar"] }), _jsxs("button", { type: "button", onClick: () => setGateway('razorpay'), className: `flex-1 flex items-center justify-center gap-2 py-2.5 text-sm font-medium transition-colors ${gateway === 'razorpay'
|
|
297
|
-
? 'bg-foreground text-background'
|
|
298
|
-
: 'bg-transparent text-muted-foreground hover:text-foreground'}`, children: [_jsx(RazorpayIcon, { className: "w-3.5 h-3.5" }), "Razorpay"] })] }), _jsxs("div", { className: "space-y-4", children: [_jsx("div", { className: "grid grid-cols-4 gap-2", children: PRESET_AMOUNTS.map((preset) => (_jsxs("button", { type: "button", onClick: () => handlePresetClick(preset), className: `h-12 text-base font-mono rounded-lg border-2 transition-all ${!isCustom && amount === preset
|
|
299
|
-
? 'bg-foreground text-background border-foreground'
|
|
300
|
-
: 'bg-transparent border-border text-foreground hover:border-foreground/40'}`, children: ["$", preset] }, preset))) }), _jsxs("div", { className: "relative", children: [_jsx("span", { className: "absolute left-4 top-1/2 -translate-y-1/2 text-muted-foreground text-lg", children: "$" }), _jsx("input", { type: "number", placeholder: "Custom", value: customAmount, onChange: (e) => handleCustomAmountChange(e.target.value), onFocus: () => setIsCustom(true), min: minAmount, max: MAX_AMOUNT, step: "1", className: `w-full h-12 pl-8 pr-4 text-base font-mono bg-transparent border-2 rounded-lg outline-none transition-all ${isCustom
|
|
301
|
-
? 'border-foreground'
|
|
302
|
-
: 'border-border focus:border-foreground/40'}` })] })] }), _jsx("div", { className: `grid transition-all duration-200 ease-out ${isValidAmount
|
|
303
|
-
? 'grid-rows-[1fr] opacity-100'
|
|
304
|
-
: 'grid-rows-[0fr] opacity-0'}`, children: _jsx("div", { className: "overflow-hidden", children: _jsx("div", { className: "space-y-3 py-4 border-t border-border", children: isLoadingEstimate ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "Credits" }), _jsx("div", { className: "h-6 w-16 bg-muted/60 rounded animate-pulse" })] }), _jsxs("div", { className: "flex justify-between items-center", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "Fee" }), _jsx("div", { className: "h-4 w-12 bg-muted/60 rounded animate-pulse" })] }), _jsxs("div", { className: "flex justify-between items-center pt-3 border-t border-border", children: [_jsx("span", { className: "font-medium", children: "Total" }), _jsx("div", { className: "h-7 w-20 bg-muted/60 rounded animate-pulse" })] })] })) : gateway === 'polar' && estimate ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "Credits" }), _jsxs("span", { className: "font-mono text-lg", children: ["$", estimate.creditAmount.toFixed(2)] })] }), _jsxs("div", { className: "flex justify-between items-center", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "Fee" }), _jsxs("span", { className: "font-mono text-sm text-muted-foreground", children: ["+$", estimate.feeAmount.toFixed(2)] })] }), _jsxs("div", { className: "flex justify-between items-center pt-3 border-t border-border", children: [_jsx("span", { className: "font-medium", children: "Total" }), _jsxs("span", { className: "font-mono text-xl font-semibold", children: ["$", estimate.chargeAmount.toFixed(2)] })] })] })) : gateway === 'razorpay' && razorpayEstimate ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex justify-between items-center", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "Credits" }), _jsxs("span", { className: "font-mono text-lg", children: ["$", razorpayEstimate.creditAmountUsd.toFixed(2)] })] }), _jsxs("div", { className: "flex justify-between items-center", children: [_jsx("span", { className: "text-sm text-muted-foreground", children: "Fee" }), _jsxs("span", { className: "font-mono text-sm text-muted-foreground", children: ["+\u20B9", razorpayEstimate.feeAmountInr.toFixed(2)] })] }), _jsxs("div", { className: "flex justify-between items-center pt-3 border-t border-border", children: [_jsx("span", { className: "font-medium", children: "Total" }), _jsxs("span", { className: "font-mono text-xl font-semibold", children: ["\u20B9", razorpayEstimate.chargeAmountInr.toFixed(2)] })] }), _jsxs("p", { className: "text-[10px] text-muted-foreground text-right", children: ["1 USD \u2248 ", razorpayEstimate.exchangeRate, " INR"] })] })) : null }) }) }), _jsxs("button", { type: "button", onClick: handleCheckout, disabled: !isValidAmount || isCreatingCheckout, className: "w-full h-12 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2", children: [isCreatingCheckout ? (_jsx(Loader2, { className: "w-4 h-4 animate-spin" })) : (_jsx(CreditCard, { className: "w-4 h-4" })), gateway === 'polar' ? 'Pay with Card' : 'Pay with Razorpay'] }), _jsxs("div", { className: "relative pt-6", children: [_jsxs("div", { className: "absolute inset-x-0 top-0 flex items-center", children: [_jsx("div", { className: "flex-1 h-px bg-border" }), _jsx("span", { className: "px-3 text-xs text-muted-foreground", children: "OR" }), _jsx("div", { className: "flex-1 h-px bg-border" })] }), _jsxs("div", { className: "flex items-start gap-3 p-4 bg-muted/30 rounded-lg", children: [_jsx(Wallet, { className: "w-5 h-5 text-muted-foreground mt-0.5" }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "font-medium text-sm", children: "Pay with USDC" }), usdcBalance !== null && (_jsxs("span", { className: "text-xs font-mono text-muted-foreground", children: [usdcBalance.toFixed(2), " USDC"] }))] }), _jsx("p", { className: "text-xs text-muted-foreground mt-1", children: "Send USDC to your Setu wallet to increase balance." })] })] })] })] }))] }) }));
|
|
305
|
-
});
|
|
306
|
-
//# sourceMappingURL=SetuTopupModal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SetuTopupModal.js","sourceRoot":"","sources":["../../../src/components/settings/SetuTopupModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { memo, useEffect } from 'react';
|
|
3
|
-
import { X } from 'lucide-react';
|
|
4
|
-
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';
|
|
5
|
-
import { prism, vscDarkPlus, } from 'react-syntax-highlighter/dist/esm/styles/prism';
|
|
6
|
-
import { useSkillsStore } from '../../stores/skillsStore';
|
|
7
|
-
import { useSkillDetail, useSkillFileContent } from '../../hooks/useSkills';
|
|
8
|
-
import { Button } from '../ui/Button';
|
|
9
|
-
const LANGUAGE_MAP = {
|
|
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: 'plaintext',
|
|
38
|
-
toml: 'toml',
|
|
39
|
-
};
|
|
40
|
-
function inferLanguage(path) {
|
|
41
|
-
const ext = path.split('.').pop()?.toLowerCase() ?? '';
|
|
42
|
-
return LANGUAGE_MAP[ext] ?? 'plaintext';
|
|
43
|
-
}
|
|
44
|
-
export const SkillViewerPanel = memo(function SkillViewerPanel() {
|
|
45
|
-
const isViewerOpen = useSkillsStore((s) => s.isViewerOpen);
|
|
46
|
-
const viewingFile = useSkillsStore((s) => s.viewingFile);
|
|
47
|
-
const selectedSkill = useSkillsStore((s) => s.selectedSkill);
|
|
48
|
-
const closeViewer = useSkillsStore((s) => s.closeViewer);
|
|
49
|
-
const { data: skillDetail } = useSkillDetail(selectedSkill);
|
|
50
|
-
const { data: fileData, isLoading: fileLoading } = useSkillFileContent(selectedSkill, viewingFile);
|
|
51
|
-
const isMainFile = viewingFile === null;
|
|
52
|
-
const content = isMainFile ? skillDetail?.content : fileData?.content;
|
|
53
|
-
const isLoading = isMainFile ? !skillDetail : fileLoading;
|
|
54
|
-
const displayPath = isMainFile ? 'SKILL.md' : (viewingFile ?? '');
|
|
55
|
-
const language = inferLanguage(displayPath);
|
|
56
|
-
useEffect(() => {
|
|
57
|
-
const handleEscape = (e) => {
|
|
58
|
-
const target = e.target;
|
|
59
|
-
const isInInput = target.tagName === 'INPUT' ||
|
|
60
|
-
target.tagName === 'TEXTAREA' ||
|
|
61
|
-
target.isContentEditable;
|
|
62
|
-
if ((e.key === 'Escape' || (e.key === 'q' && !isInInput)) &&
|
|
63
|
-
isViewerOpen) {
|
|
64
|
-
closeViewer();
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
document.addEventListener('keydown', handleEscape);
|
|
68
|
-
return () => document.removeEventListener('keydown', handleEscape);
|
|
69
|
-
}, [isViewerOpen, closeViewer]);
|
|
70
|
-
if (!isViewerOpen || !selectedSkill)
|
|
71
|
-
return null;
|
|
72
|
-
const syntaxTheme = document?.documentElement.classList.contains('dark')
|
|
73
|
-
? vscDarkPlus
|
|
74
|
-
: prism;
|
|
75
|
-
return (_jsxs("div", { className: "absolute inset-0 bg-background z-50 flex flex-col animate-in slide-in-from-left duration-300", children: [_jsxs("div", { className: "h-14 border-b border-border px-4 flex items-center gap-3", children: [_jsx(Button, { variant: "ghost", size: "icon", onClick: closeViewer, title: "Close viewer (ESC)", children: _jsx(X, { className: "w-4 h-4" }) }), _jsxs("div", { className: "flex-1 flex items-center gap-2 min-w-0", children: [_jsx("span", { className: "text-xs text-muted-foreground flex-shrink-0", children: selectedSkill }), _jsx("span", { className: "text-xs text-muted-foreground", children: "/" }), _jsx("span", { className: "text-sm font-medium text-foreground font-mono truncate", title: displayPath, children: displayPath })] }), _jsx("span", { className: "text-xs text-muted-foreground", children: language })] }), _jsx("div", { className: "flex-1 overflow-auto", children: isLoading ? (_jsx("div", { className: "h-full flex items-center justify-center text-muted-foreground", children: "Loading..." })) : content ? (_jsx("div", { className: "code-with-line-numbers", children: _jsx(SyntaxHighlighter, { language: language, style: syntaxTheme, wrapLines: true, wrapLongLines: true, lineProps: () => ({
|
|
76
|
-
className: 'code-line',
|
|
77
|
-
}), customStyle: {
|
|
78
|
-
margin: 0,
|
|
79
|
-
padding: '1rem',
|
|
80
|
-
background: 'transparent',
|
|
81
|
-
fontSize: '0.75rem',
|
|
82
|
-
lineHeight: '1.25rem',
|
|
83
|
-
}, codeTagProps: {
|
|
84
|
-
style: {
|
|
85
|
-
flex: 1,
|
|
86
|
-
},
|
|
87
|
-
}, children: content }) })) : (_jsx("div", { className: "h-full flex items-center justify-center text-muted-foreground", children: "Unable to load file" })) })] }));
|
|
88
|
-
});
|
|
89
|
-
//# sourceMappingURL=SkillViewerPanel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SkillViewerPanel.js","sourceRoot":"","sources":["../../../src/components/skills/SkillViewerPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { memo, useMemo } from 'react';
|
|
3
|
-
import { ChevronRight, Sparkles, Loader2, FolderDot, Laptop, Globe, FileText, FileCode, } from 'lucide-react';
|
|
4
|
-
import { Button } from '../ui/Button';
|
|
5
|
-
import { useSkillsStore } from '../../stores/skillsStore';
|
|
6
|
-
import { useSkills, useSkillDetail, useSkillFiles, } from '../../hooks/useSkills';
|
|
7
|
-
const SCOPE_ICONS = {
|
|
8
|
-
cwd: FolderDot,
|
|
9
|
-
parent: FolderDot,
|
|
10
|
-
repo: FolderDot,
|
|
11
|
-
user: Laptop,
|
|
12
|
-
system: Globe,
|
|
13
|
-
};
|
|
14
|
-
const SCOPE_LABELS = {
|
|
15
|
-
cwd: 'Project',
|
|
16
|
-
parent: 'Parent',
|
|
17
|
-
repo: 'Repository',
|
|
18
|
-
user: 'User',
|
|
19
|
-
system: 'System',
|
|
20
|
-
};
|
|
21
|
-
function formatSize(bytes) {
|
|
22
|
-
if (bytes < 1024)
|
|
23
|
-
return `${bytes} B`;
|
|
24
|
-
if (bytes < 1024 * 1024)
|
|
25
|
-
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
26
|
-
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
27
|
-
}
|
|
28
|
-
export const SkillsSidebar = memo(function SkillsSidebar() {
|
|
29
|
-
const isExpanded = useSkillsStore((s) => s.isExpanded);
|
|
30
|
-
const collapseSidebar = useSkillsStore((s) => s.collapseSidebar);
|
|
31
|
-
const skills = useSkillsStore((s) => s.skills);
|
|
32
|
-
const selectedSkill = useSkillsStore((s) => s.selectedSkill);
|
|
33
|
-
const selectSkill = useSkillsStore((s) => s.selectSkill);
|
|
34
|
-
const openViewer = useSkillsStore((s) => s.openViewer);
|
|
35
|
-
const viewingFile = useSkillsStore((s) => s.viewingFile);
|
|
36
|
-
const { isLoading } = useSkills();
|
|
37
|
-
const { data: skillDetail } = useSkillDetail(selectedSkill);
|
|
38
|
-
const { data: skillFilesData } = useSkillFiles(selectedSkill);
|
|
39
|
-
const skillFiles = skillFilesData?.files ?? [];
|
|
40
|
-
const groupedSkills = useMemo(() => {
|
|
41
|
-
const groups = new Map();
|
|
42
|
-
for (const skill of skills) {
|
|
43
|
-
const list = groups.get(skill.scope) ?? [];
|
|
44
|
-
list.push(skill);
|
|
45
|
-
groups.set(skill.scope, list);
|
|
46
|
-
}
|
|
47
|
-
return groups;
|
|
48
|
-
}, [skills]);
|
|
49
|
-
if (!isExpanded)
|
|
50
|
-
return null;
|
|
51
|
-
return (_jsxs("div", { className: "w-80 border-l border-border bg-background flex flex-col h-full", children: [_jsxs("div", { className: "h-14 flex items-center justify-between px-3 border-b border-border", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Sparkles, { className: "w-4 h-4 text-muted-foreground" }), _jsx("span", { className: "font-medium text-sm", children: "Skills" })] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: collapseSidebar, title: "Close sidebar", children: _jsx(ChevronRight, { className: "w-4 h-4" }) })] }), selectedSkill && skillDetail ? (_jsxs("div", { className: "flex-1 overflow-y-auto", children: [_jsx("div", { className: "p-3 border-b border-border", children: _jsx("button", { type: "button", onClick: () => selectSkill(null), className: "text-xs text-muted-foreground hover:text-foreground transition-colors", children: "\u2190 Back to list" }) }), _jsxs("div", { className: "px-3 py-3 border-b border-border", children: [_jsx("h3", { className: "font-medium text-sm mb-1", children: skillDetail.name }), _jsx("p", { className: "text-xs text-muted-foreground mb-2", children: skillDetail.description }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-[10px] px-1.5 py-0.5 rounded bg-muted text-muted-foreground", children: SCOPE_LABELS[skillDetail.scope] ?? skillDetail.scope }), skillDetail.license && (_jsx("span", { className: "text-[10px] px-1.5 py-0.5 rounded bg-muted text-muted-foreground", children: skillDetail.license }))] })] }), _jsxs("div", { className: "py-1", children: [_jsx("div", { className: "flex items-center gap-1.5 px-3 py-2 text-[10px] uppercase tracking-wider text-muted-foreground font-medium", children: "Files" }), _jsx("button", { type: "button", onClick: () => openViewer(null), className: `w-full text-left px-3 py-2 hover:bg-accent transition-colors ${viewingFile === null ? 'bg-accent' : ''}`, children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FileText, { className: "w-3.5 h-3.5 flex-shrink-0 text-muted-foreground" }), _jsx("span", { className: "text-sm font-mono truncate flex-1", children: "SKILL.md" })] }) }), skillFiles.map((file) => (_jsx("button", { type: "button", onClick: () => openViewer(file.relativePath), className: `w-full text-left px-3 py-2 hover:bg-accent transition-colors ${viewingFile === file.relativePath ? 'bg-accent' : ''}`, children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FileCode, { className: "w-3.5 h-3.5 flex-shrink-0 text-muted-foreground" }), _jsx("span", { className: "text-sm font-mono truncate flex-1", children: file.relativePath }), _jsx("span", { className: "text-[10px] text-muted-foreground flex-shrink-0", children: formatSize(file.size) })] }) }, file.relativePath)))] })] })) : (_jsx("div", { className: "flex-1 overflow-y-auto", children: isLoading ? (_jsx("div", { className: "flex items-center justify-center py-8", children: _jsx(Loader2, { className: "w-4 h-4 animate-spin text-muted-foreground" }) })) : skills.length === 0 ? (_jsxs("div", { className: "flex flex-col items-center justify-center h-full text-center p-4", children: [_jsx(Sparkles, { className: "w-12 h-12 text-muted-foreground/30 mb-4" }), _jsx("h3", { className: "text-sm font-medium mb-2", children: "No skills found" }), _jsxs("p", { className: "text-xs text-muted-foreground max-w-[220px]", children: ["Create skills in", ' ', _jsx("code", { className: "text-[10px] bg-muted px-1 rounded", children: ".otto/skills/" }), ' ', "or", ' ', _jsx("code", { className: "text-[10px] bg-muted px-1 rounded", children: "~/.config/otto/skills/" })] })] })) : (_jsx("div", { className: "py-1", children: ['cwd', 'parent', 'repo', 'user', 'system'].map((scope) => {
|
|
52
|
-
const scopeSkills = groupedSkills.get(scope);
|
|
53
|
-
if (!scopeSkills?.length)
|
|
54
|
-
return null;
|
|
55
|
-
const ScopeIcon = SCOPE_ICONS[scope] ?? Globe;
|
|
56
|
-
return (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-1.5 px-3 py-2 text-[10px] uppercase tracking-wider text-muted-foreground font-medium", children: [_jsx(ScopeIcon, { className: "w-3 h-3" }), SCOPE_LABELS[scope] ?? scope] }), scopeSkills.map((skill) => (_jsx("button", { type: "button", onClick: () => selectSkill(skill.name), className: `w-full text-left px-3 py-2 hover:bg-accent transition-colors ${selectedSkill === skill.name ? 'bg-accent' : ''}`, children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(FileText, { className: "w-3.5 h-3.5 flex-shrink-0 text-muted-foreground" }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-sm font-medium truncate", children: skill.name }), _jsx("div", { className: "text-xs text-muted-foreground truncate", children: skill.description })] })] }) }, `${skill.scope}-${skill.name}`)))] }, scope));
|
|
57
|
-
}) })) }))] }));
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=SkillsSidebar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SkillsSidebar.js","sourceRoot":"","sources":["../../../src/components/skills/SkillsSidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { memo } from 'react';
|
|
3
|
-
import { Sparkles } from 'lucide-react';
|
|
4
|
-
import { useSkillsStore } from '../../stores/skillsStore';
|
|
5
|
-
export const SkillsSidebarToggle = memo(function SkillsSidebarToggle() {
|
|
6
|
-
const isExpanded = useSkillsStore((state) => state.isExpanded);
|
|
7
|
-
const toggleSidebar = useSkillsStore((state) => state.toggleSidebar);
|
|
8
|
-
return (_jsx("button", { type: "button", onClick: toggleSidebar, className: `relative h-14 w-full transition-colors touch-manipulation flex items-center justify-center border-r-2 ${isExpanded
|
|
9
|
-
? 'bg-muted border-primary'
|
|
10
|
-
: 'border-transparent hover:bg-muted/50'}`, title: "Skills", children: _jsx(Sparkles, { className: "w-5 h-5 text-muted-foreground mx-auto" }) }));
|
|
11
|
-
});
|
|
12
|
-
//# sourceMappingURL=SkillsSidebarToggle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SkillsSidebarToggle.js","sourceRoot":"","sources":["../../../src/components/skills/SkillsSidebarToggle.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,mBAAmB;IACnE,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAErE,OAAO,CACN,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,yGACV,UAAU;YACT,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,sCACJ,EAAE,EACF,KAAK,EAAC,QAAQ,YAEd,KAAC,QAAQ,IAAC,SAAS,EAAC,uCAAuC,GAAG,GACtD,CACT,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/skills/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { memo } from 'react';
|
|
3
|
-
import { Terminal } from 'lucide-react';
|
|
4
|
-
import { useTerminalStore } from '../../stores/terminalStore';
|
|
5
|
-
import { useTerminals } from '../../hooks/useTerminals';
|
|
6
|
-
export const TerminalPanelToggle = memo(function TerminalPanelToggle() {
|
|
7
|
-
const isOpen = useTerminalStore((s) => s.isOpen);
|
|
8
|
-
const togglePanel = useTerminalStore((s) => s.togglePanel);
|
|
9
|
-
const { data } = useTerminals();
|
|
10
|
-
const count = data?.count ?? 0;
|
|
11
|
-
return (_jsxs("button", { type: "button", onClick: togglePanel, className: `relative h-14 w-full transition-colors touch-manipulation flex items-center justify-center ${isOpen ? 'bg-muted border-r-2 border-primary' : 'hover:bg-muted/50'}`, title: "Terminals", children: [_jsx(Terminal, { className: "w-5 h-5 text-muted-foreground mx-auto" }), count > 0 && (_jsx("span", { className: "absolute top-1 right-1 w-5 h-5 bg-primary text-primary-foreground text-xs rounded-full flex items-center justify-center font-semibold", children: count > 9 ? '9+' : count }))] }));
|
|
12
|
-
});
|
|
13
|
-
//# sourceMappingURL=TerminalPanelToggle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TerminalPanelToggle.js","sourceRoot":"","sources":["../../../src/components/terminals/TerminalPanelToggle.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,mBAAmB;IACnE,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,EAAE,CAAC;IAEhC,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;IAE/B,OAAO,CACN,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,8FACV,MAAM,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,mBACjD,EAAE,EACF,KAAK,EAAC,WAAW,aAEjB,KAAC,QAAQ,IAAC,SAAS,EAAC,uCAAuC,GAAG,EAC7D,KAAK,GAAG,CAAC,IAAI,CACb,eAAM,SAAS,EAAC,uIAAuI,YACrJ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GACnB,CACP,IACO,CACT,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { memo } from 'react';
|
|
3
|
-
import { Plus, X, Bot, User } from 'lucide-react';
|
|
4
|
-
import { useTerminalStore } from '../../stores/terminalStore';
|
|
5
|
-
export const TerminalTabBar = memo(function TerminalTabBar({ terminals, onNewTerminal, onKillTerminal, isCreating, }) {
|
|
6
|
-
const activeTabId = useTerminalStore((s) => s.activeTabId);
|
|
7
|
-
const selectTab = useTerminalStore((s) => s.selectTab);
|
|
8
|
-
return (_jsxs("div", { className: "flex items-center gap-0 overflow-x-auto scrollbar-none", children: [terminals.map((t) => {
|
|
9
|
-
const isActive = t.id === activeTabId;
|
|
10
|
-
const isRunning = t.status === 'running';
|
|
11
|
-
return (_jsxs("div", { className: `group flex items-center gap-1.5 px-3 h-9 border-r border-border cursor-pointer select-none shrink-0 transition-colors ${isActive
|
|
12
|
-
? 'bg-background text-foreground'
|
|
13
|
-
: 'bg-muted/30 text-muted-foreground hover:bg-muted/60'}`, onClick: () => selectTab(t.id), onKeyDown: (e) => {
|
|
14
|
-
if (e.key === 'Enter')
|
|
15
|
-
selectTab(t.id);
|
|
16
|
-
}, role: "tab", "aria-selected": isActive, tabIndex: 0, children: [_jsx("span", { className: "shrink-0", children: t.createdBy === 'llm' ? (_jsx(Bot, { className: "w-3 h-3 text-blue-500" })) : (_jsx(User, { className: "w-3 h-3 text-green-500" })) }), _jsx("span", { className: "text-xs font-medium truncate max-w-[120px]", children: t.title || t.purpose }), !isRunning && (_jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-orange-500 shrink-0" })), _jsx("button", { type: "button", className: "shrink-0 p-0.5 rounded opacity-0 group-hover:opacity-100 hover:bg-muted transition-opacity", onClick: (e) => {
|
|
17
|
-
e.stopPropagation();
|
|
18
|
-
onKillTerminal(t.id);
|
|
19
|
-
}, title: "Close terminal", children: _jsx(X, { className: "w-3 h-3" }) })] }, t.id));
|
|
20
|
-
}), _jsx("button", { type: "button", className: "flex items-center justify-center w-8 h-9 shrink-0 text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors", onClick: onNewTerminal, disabled: isCreating, title: "New terminal", children: _jsx(Plus, { className: "w-3.5 h-3.5" }) })] }));
|
|
21
|
-
});
|
|
22
|
-
//# sourceMappingURL=TerminalTabBar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TerminalTabBar.js","sourceRoot":"","sources":["../../../src/components/terminals/TerminalTabBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAU9D,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,cAAc,CAAC,EAC1D,SAAS,EACT,aAAa,EACb,cAAc,EACd,UAAU,GACW;IACrB,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAEvD,OAAO,CACN,eAAK,SAAS,EAAC,wDAAwD,aACrE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpB,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC;gBACtC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;gBAEzC,OAAO,CACN,eAEC,SAAS,EAAE,yHACV,QAAQ;wBACP,CAAC,CAAC,+BAA+B;wBACjC,CAAC,CAAC,qDACJ,EAAE,EACF,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAC9B,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wBAChB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;4BAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACxC,CAAC,EACD,IAAI,EAAC,KAAK,mBACK,QAAQ,EACvB,QAAQ,EAAE,CAAC,aAEX,eAAM,SAAS,EAAC,UAAU,YACxB,CAAC,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CACxB,KAAC,GAAG,IAAC,SAAS,EAAC,uBAAuB,GAAG,CACzC,CAAC,CAAC,CAAC,CACH,KAAC,IAAI,IAAC,SAAS,EAAC,wBAAwB,GAAG,CAC3C,GACK,EACP,eAAM,SAAS,EAAC,4CAA4C,YAC1D,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,OAAO,GACf,EACN,CAAC,SAAS,IAAI,CACd,eAAM,SAAS,EAAC,iDAAiD,GAAG,CACpE,EACD,iBACC,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,4FAA4F,EACtG,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gCACd,CAAC,CAAC,eAAe,EAAE,CAAC;gCACpB,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACtB,CAAC,EACD,KAAK,EAAC,gBAAgB,YAEtB,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,GAAG,GACjB,KArCJ,CAAC,CAAC,EAAE,CAsCJ,CACN,CAAC;YACH,CAAC,CAAC,EACF,iBACC,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mIAAmI,EAC7I,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,UAAU,EACpB,KAAK,EAAC,cAAc,YAEpB,KAAC,IAAI,IAAC,SAAS,EAAC,aAAa,GAAG,GACxB,IACJ,CACN,CAAC;AACH,CAAC,CAAC,CAAC"}
|