@ottocode/web-sdk 0.1.225 → 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/ChatInput.d.ts.map +1 -1
- package/dist/components/chat/FileMentionPopup.d.ts.map +1 -1
- package/dist/components/chat/UnifiedModelSelector.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/ErrorRenderer.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/onboarding/OnboardingModal.d.ts.map +1 -1
- package/dist/components/onboarding/steps/ProviderSetupStep.d.ts +45 -0
- package/dist/components/onboarding/steps/ProviderSetupStep.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 +20 -0
- package/dist/hooks/useAuthStatus.d.ts.map +1 -1
- package/dist/hooks/useConfig.d.ts +2 -0
- package/dist/hooks/useConfig.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/api-client/auth.d.ts +49 -0
- package/dist/lib/api-client/auth.d.ts.map +1 -1
- package/dist/lib/api-client/config.d.ts +2 -0
- package/dist/lib/api-client/config.d.ts.map +1 -1
- package/dist/lib/api-client/index.d.ts +51 -0
- package/dist/lib/api-client/index.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/onboardingStore.d.ts +2 -0
- package/dist/stores/onboardingStore.d.ts.map +1 -1
- package/dist/stores/toastStore.d.ts +1 -0
- package/dist/stores/toastStore.d.ts.map +1 -1
- package/dist/types/api.d.ts +2 -0
- package/dist/types/api.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 -262
- 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 -197
- 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 -157
- 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 -307
- 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 -211
- 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 -247
- 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 -516
- 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 -111
- 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 -88
- 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,144 +0,0 @@
|
|
|
1
|
-
import { getSetuBalance as apiGetSetuBalance, getSetuWallet as apiGetSetuWallet, getSetuUsdcBalance as apiGetSetuUsdcBalance, createPolarCheckout as apiCreatePolarCheckout, getPolarTopupEstimate as apiGetPolarTopupEstimate, getPolarTopupStatus as apiGetPolarTopupStatus, getRazorpayTopupEstimate as apiGetRazorpayTopupEstimate, createRazorpayOrder as apiCreateRazorpayOrder, verifyRazorpayPayment as apiVerifyRazorpayPayment, selectTopupMethod as apiSelectTopupMethod, cancelTopup as apiCancelTopup, getPendingTopup as apiGetPendingTopup, } from '@ottocode/api';
|
|
2
|
-
import { extractErrorMessage } from './utils';
|
|
3
|
-
export const setuMixin = {
|
|
4
|
-
async getSetuBalance() {
|
|
5
|
-
try {
|
|
6
|
-
const response = await apiGetSetuBalance();
|
|
7
|
-
if (response.error)
|
|
8
|
-
return null;
|
|
9
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
10
|
-
return response.data;
|
|
11
|
-
}
|
|
12
|
-
catch {
|
|
13
|
-
return null;
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
async getSetuWallet() {
|
|
17
|
-
try {
|
|
18
|
-
const response = await apiGetSetuWallet();
|
|
19
|
-
if (response.error)
|
|
20
|
-
return { configured: false };
|
|
21
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
22
|
-
return response.data;
|
|
23
|
-
}
|
|
24
|
-
catch {
|
|
25
|
-
return { configured: false };
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
async getSetuUsdcBalance(network = 'mainnet') {
|
|
29
|
-
try {
|
|
30
|
-
const response = await apiGetSetuUsdcBalance({
|
|
31
|
-
query: { network },
|
|
32
|
-
});
|
|
33
|
-
if (response.error)
|
|
34
|
-
return null;
|
|
35
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
36
|
-
return response.data;
|
|
37
|
-
}
|
|
38
|
-
catch {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
async getPolarTopupEstimate(amount) {
|
|
43
|
-
try {
|
|
44
|
-
const response = await apiGetPolarTopupEstimate({
|
|
45
|
-
query: { amount },
|
|
46
|
-
});
|
|
47
|
-
if (response.error)
|
|
48
|
-
return null;
|
|
49
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
50
|
-
return response.data;
|
|
51
|
-
}
|
|
52
|
-
catch {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
async createPolarCheckout(amount, successUrl) {
|
|
57
|
-
const response = await apiCreatePolarCheckout({
|
|
58
|
-
body: { amount, successUrl },
|
|
59
|
-
});
|
|
60
|
-
if (response.error)
|
|
61
|
-
throw new Error(extractErrorMessage(response.error));
|
|
62
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
63
|
-
return response.data;
|
|
64
|
-
},
|
|
65
|
-
async selectTopupMethod(sessionId, method) {
|
|
66
|
-
const response = await apiSelectTopupMethod({
|
|
67
|
-
body: { sessionId, method },
|
|
68
|
-
});
|
|
69
|
-
if (response.error)
|
|
70
|
-
throw new Error(extractErrorMessage(response.error));
|
|
71
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
72
|
-
return response.data;
|
|
73
|
-
},
|
|
74
|
-
async cancelTopup(sessionId, reason) {
|
|
75
|
-
const response = await apiCancelTopup({
|
|
76
|
-
body: { sessionId, reason },
|
|
77
|
-
});
|
|
78
|
-
if (response.error)
|
|
79
|
-
throw new Error(extractErrorMessage(response.error));
|
|
80
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
81
|
-
return response.data;
|
|
82
|
-
},
|
|
83
|
-
async getPendingTopup(sessionId) {
|
|
84
|
-
try {
|
|
85
|
-
const response = await apiGetPendingTopup({
|
|
86
|
-
query: { sessionId },
|
|
87
|
-
});
|
|
88
|
-
if (response.error)
|
|
89
|
-
return { hasPending: false };
|
|
90
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
91
|
-
return response.data;
|
|
92
|
-
}
|
|
93
|
-
catch {
|
|
94
|
-
return { hasPending: false };
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
async getPolarTopupStatus(checkoutId) {
|
|
98
|
-
try {
|
|
99
|
-
const response = await apiGetPolarTopupStatus({
|
|
100
|
-
query: { checkoutId },
|
|
101
|
-
});
|
|
102
|
-
if (response.error)
|
|
103
|
-
return null;
|
|
104
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
105
|
-
return response.data;
|
|
106
|
-
}
|
|
107
|
-
catch {
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
async getRazorpayTopupEstimate(amount) {
|
|
112
|
-
try {
|
|
113
|
-
const response = await apiGetRazorpayTopupEstimate({
|
|
114
|
-
query: { amount },
|
|
115
|
-
});
|
|
116
|
-
if (response.error)
|
|
117
|
-
return null;
|
|
118
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
119
|
-
return response.data;
|
|
120
|
-
}
|
|
121
|
-
catch {
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
async createRazorpayOrder(amount) {
|
|
126
|
-
const response = await apiCreateRazorpayOrder({
|
|
127
|
-
body: { amount },
|
|
128
|
-
});
|
|
129
|
-
if (response.error)
|
|
130
|
-
throw new Error(extractErrorMessage(response.error));
|
|
131
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
132
|
-
return response.data;
|
|
133
|
-
},
|
|
134
|
-
async verifyRazorpayPayment(params) {
|
|
135
|
-
const response = await apiVerifyRazorpayPayment({
|
|
136
|
-
body: params,
|
|
137
|
-
});
|
|
138
|
-
if (response.error)
|
|
139
|
-
throw new Error(extractErrorMessage(response.error));
|
|
140
|
-
// biome-ignore lint/suspicious/noExplicitAny: API response structure
|
|
141
|
-
return response.data;
|
|
142
|
-
},
|
|
143
|
-
};
|
|
144
|
-
//# sourceMappingURL=setu.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setu.js","sourceRoot":"","sources":["../../../src/lib/api-client/setu.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { listSkills as apiListSkills, getSkill as apiGetSkill, listSkillFiles as apiListSkillFiles, getSkillFile as apiGetSkillFile, } from '@ottocode/api';
|
|
2
|
-
import { extractErrorMessage } from './utils';
|
|
3
|
-
export const skillsMixin = {
|
|
4
|
-
async listSkills() {
|
|
5
|
-
const response = await apiListSkills();
|
|
6
|
-
if (response.error)
|
|
7
|
-
throw new Error(extractErrorMessage(response.error));
|
|
8
|
-
return response.data;
|
|
9
|
-
},
|
|
10
|
-
async getSkill(name) {
|
|
11
|
-
const response = await apiGetSkill({ path: { name } });
|
|
12
|
-
if (response.error)
|
|
13
|
-
throw new Error(extractErrorMessage(response.error));
|
|
14
|
-
return response.data;
|
|
15
|
-
},
|
|
16
|
-
async getSkillFiles(name) {
|
|
17
|
-
const response = await apiListSkillFiles({ path: { name } });
|
|
18
|
-
if (response.error)
|
|
19
|
-
throw new Error(extractErrorMessage(response.error));
|
|
20
|
-
return response.data;
|
|
21
|
-
},
|
|
22
|
-
async getSkillFileContent(name, filePath) {
|
|
23
|
-
const response = await apiGetSkillFile({
|
|
24
|
-
path: { name, filePath },
|
|
25
|
-
});
|
|
26
|
-
if (response.error)
|
|
27
|
-
throw new Error(extractErrorMessage(response.error));
|
|
28
|
-
return response.data;
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=skills.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../src/lib/api-client/skills.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,IAAI,aAAa,EAC3B,QAAQ,IAAI,WAAW,EACvB,cAAc,IAAI,iBAAiB,EACnC,YAAY,IAAI,eAAe,GAC/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA0B9C,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,KAAK,CAAC,UAAU;QACf,MAAM,QAAQ,GAAG,MAAM,aAAa,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAAkC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QAC1B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAAmB,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC/B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAAkC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,mBAAmB,CACxB,IAAY,EACZ,QAAgB;QAEhB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC;YACtC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACxB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAAyC,CAAC;IAC3D,CAAC;CACD,CAAC"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { client } from '@ottocode/api';
|
|
2
|
-
import { API_BASE_URL } from '../config';
|
|
3
|
-
export function extractErrorMessage(error) {
|
|
4
|
-
if (!error)
|
|
5
|
-
return 'Unknown error';
|
|
6
|
-
if (typeof error === 'string')
|
|
7
|
-
return error;
|
|
8
|
-
if (error && typeof error === 'object') {
|
|
9
|
-
const errObj = error;
|
|
10
|
-
if (errObj.error && typeof errObj.error === 'object') {
|
|
11
|
-
const innerError = errObj.error;
|
|
12
|
-
if (typeof innerError.message === 'string')
|
|
13
|
-
return innerError.message;
|
|
14
|
-
}
|
|
15
|
-
if (typeof errObj.error === 'string')
|
|
16
|
-
return errObj.error;
|
|
17
|
-
if (typeof errObj.message === 'string')
|
|
18
|
-
return errObj.message;
|
|
19
|
-
try {
|
|
20
|
-
return JSON.stringify(error);
|
|
21
|
-
}
|
|
22
|
-
catch {
|
|
23
|
-
return 'Error occurred (unable to parse)';
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return 'Unknown error';
|
|
27
|
-
}
|
|
28
|
-
export function configureApiClient() {
|
|
29
|
-
const win = window;
|
|
30
|
-
const baseURL = win.OTTO_SERVER_URL || API_BASE_URL;
|
|
31
|
-
client.setConfig({ baseURL });
|
|
32
|
-
}
|
|
33
|
-
configureApiClient();
|
|
34
|
-
export function getBaseUrl() {
|
|
35
|
-
const win = window;
|
|
36
|
-
if (win.OTTO_SERVER_URL)
|
|
37
|
-
return win.OTTO_SERVER_URL;
|
|
38
|
-
return API_BASE_URL;
|
|
39
|
-
}
|
|
40
|
-
export function convertSession(apiSession) {
|
|
41
|
-
return {
|
|
42
|
-
...apiSession,
|
|
43
|
-
title: apiSession.title ?? null,
|
|
44
|
-
createdAt: typeof apiSession.createdAt === 'string'
|
|
45
|
-
? new Date(apiSession.createdAt).getTime()
|
|
46
|
-
: apiSession.createdAt,
|
|
47
|
-
lastActiveAt: typeof apiSession.lastActiveAt === 'string'
|
|
48
|
-
? new Date(apiSession.lastActiveAt).getTime()
|
|
49
|
-
: apiSession.lastActiveAt,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
export function convertMessage(apiMessage) {
|
|
53
|
-
return {
|
|
54
|
-
...apiMessage,
|
|
55
|
-
createdAt: typeof apiMessage.createdAt === 'string'
|
|
56
|
-
? new Date(apiMessage.createdAt).getTime()
|
|
57
|
-
: apiMessage.createdAt,
|
|
58
|
-
completedAt: apiMessage.completedAt
|
|
59
|
-
? typeof apiMessage.completedAt === 'string'
|
|
60
|
-
? new Date(apiMessage.completedAt).getTime()
|
|
61
|
-
: apiMessage.completedAt
|
|
62
|
-
: null,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/api-client/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAKvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAOzC,MAAM,UAAU,mBAAmB,CAAC,KAAc;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,eAAe,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAgC,CAAC;YAC3D,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ;gBAAE,OAAO,UAAU,CAAC,OAAO,CAAC;QACvE,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC;QAC1D,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC;QAC9D,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,kCAAkC,CAAC;QAC3C,CAAC;IACF,CAAC;IACD,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,kBAAkB;IACjC,MAAM,GAAG,GAAG,MAAgC,CAAC;IAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,IAAI,YAAY,CAAC;IACpD,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,kBAAkB,EAAE,CAAC;AAErB,MAAM,UAAU,UAAU;IACzB,MAAM,GAAG,GAAG,MAAgC,CAAC;IAC7C,IAAI,GAAG,CAAC,eAAe;QAAE,OAAO,GAAG,CAAC,eAAe,CAAC;IACpD,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAsB;IACpD,OAAO;QACN,GAAG,UAAU;QACb,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,IAAI;QAC/B,SAAS,EACR,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ;YACvC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;YAC1C,CAAC,CAAC,UAAU,CAAC,SAAS;QACxB,YAAY,EACX,OAAO,UAAU,CAAC,YAAY,KAAK,QAAQ;YAC1C,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;YAC7C,CAAC,CAAC,UAAU,CAAC,YAAY;KAChB,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAsB;IACpD,OAAO;QACN,GAAG,UAAU;QACb,SAAS,EACR,OAAO,UAAU,CAAC,SAAS,KAAK,QAAQ;YACvC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;YAC1C,CAAC,CAAC,UAAU,CAAC,SAAS;QACxB,WAAW,EAAE,UAAU,CAAC,WAAW;YAClC,CAAC,CAAC,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ;gBAC3C,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE;gBAC5C,CAAC,CAAC,UAAU,CAAC,WAAW;YACzB,CAAC,CAAC,IAAI;KACI,CAAC;AACd,CAAC"}
|
package/dist/lib/commands.js
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { Terminal, Sparkles, Plus, Keyboard, Code, Brain, StopCircle, GitBranch, Check, Minimize2, Split, Trash2, Share2, RefreshCw, } from 'lucide-react';
|
|
2
|
-
export const COMMANDS = [
|
|
3
|
-
{
|
|
4
|
-
id: 'models',
|
|
5
|
-
label: '/models',
|
|
6
|
-
description: 'Open model selector',
|
|
7
|
-
icon: Sparkles,
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
id: 'agents',
|
|
11
|
-
label: '/agents',
|
|
12
|
-
description: 'Open agent selector',
|
|
13
|
-
icon: Terminal,
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
id: 'new',
|
|
17
|
-
label: '/new',
|
|
18
|
-
description: 'Create new session',
|
|
19
|
-
icon: Plus,
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
id: 'stop',
|
|
23
|
-
label: '/stop',
|
|
24
|
-
description: 'Stop current generation',
|
|
25
|
-
icon: StopCircle,
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
id: 'help',
|
|
29
|
-
label: '/help',
|
|
30
|
-
description: 'Show keyboard shortcuts and help',
|
|
31
|
-
icon: Keyboard,
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
id: 'vim',
|
|
35
|
-
label: '/vim',
|
|
36
|
-
description: (state) => state.vimModeEnabled ? 'Disable Vim mode' : 'Enable Vim mode',
|
|
37
|
-
icon: Code,
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
id: 'reasoning',
|
|
41
|
-
label: '/reasoning',
|
|
42
|
-
description: (state) => state.reasoningEnabled
|
|
43
|
-
? 'Disable extended thinking'
|
|
44
|
-
: 'Enable extended thinking',
|
|
45
|
-
icon: Brain,
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
id: 'stage',
|
|
49
|
-
label: '/stage',
|
|
50
|
-
description: 'Stage all changes (git add -A)',
|
|
51
|
-
icon: GitBranch,
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
id: 'commit',
|
|
55
|
-
label: '/commit',
|
|
56
|
-
description: 'Commit staged changes',
|
|
57
|
-
icon: Check,
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
id: 'compact',
|
|
61
|
-
label: '/compact',
|
|
62
|
-
description: 'Compact conversation to reduce context size',
|
|
63
|
-
icon: Minimize2,
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
id: 'branch',
|
|
67
|
-
label: '/branch',
|
|
68
|
-
description: 'Branch session from last message',
|
|
69
|
-
icon: Split,
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
id: 'delete',
|
|
73
|
-
label: '/delete',
|
|
74
|
-
description: 'Delete current session',
|
|
75
|
-
icon: Trash2,
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
id: 'share',
|
|
79
|
-
label: '/share',
|
|
80
|
-
description: 'Share session publicly',
|
|
81
|
-
icon: Share2,
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
id: 'sync',
|
|
85
|
-
label: '/sync',
|
|
86
|
-
description: 'Sync new messages to shared session',
|
|
87
|
-
icon: RefreshCw,
|
|
88
|
-
},
|
|
89
|
-
];
|
|
90
|
-
export function getCommandDescription(cmd, state) {
|
|
91
|
-
return typeof cmd.description === 'function'
|
|
92
|
-
? cmd.description(state)
|
|
93
|
-
: cmd.description;
|
|
94
|
-
}
|
|
95
|
-
export function filterCommands(query, state) {
|
|
96
|
-
const baseCommands = COMMANDS.filter((cmd) => {
|
|
97
|
-
if (cmd.id === 'share' && state.isShared)
|
|
98
|
-
return false;
|
|
99
|
-
if (cmd.id === 'sync' && !state.isShared)
|
|
100
|
-
return false;
|
|
101
|
-
return true;
|
|
102
|
-
});
|
|
103
|
-
if (!query) {
|
|
104
|
-
return baseCommands;
|
|
105
|
-
}
|
|
106
|
-
const lowerQuery = query.toLowerCase();
|
|
107
|
-
const matches = [];
|
|
108
|
-
for (const cmd of baseCommands) {
|
|
109
|
-
const desc = getCommandDescription(cmd, state);
|
|
110
|
-
const labelMatch = cmd.label.toLowerCase().includes(lowerQuery);
|
|
111
|
-
const descriptionMatch = desc.toLowerCase().includes(lowerQuery);
|
|
112
|
-
if (labelMatch || descriptionMatch) {
|
|
113
|
-
const matchScore = labelMatch ? 10 : 5;
|
|
114
|
-
matches.push({ ...cmd, matchScore });
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return matches.sort((a, b) => {
|
|
118
|
-
const scoreDiff = b.matchScore - a.matchScore;
|
|
119
|
-
if (scoreDiff !== 0)
|
|
120
|
-
return scoreDiff;
|
|
121
|
-
return a.label.localeCompare(b.label);
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=commands.js.map
|
package/dist/lib/commands.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/lib/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
// This function will execute at runtime in the browser
|
|
2
|
-
function computeApiBaseUrl() {
|
|
3
|
-
// Check Vite env var first (for dev mode)
|
|
4
|
-
const envUrl = import.meta.env?.VITE_API_BASE_URL;
|
|
5
|
-
if (envUrl) {
|
|
6
|
-
return envUrl;
|
|
7
|
-
}
|
|
8
|
-
// Check window object for injected values (for production)
|
|
9
|
-
if (typeof window !== 'undefined') {
|
|
10
|
-
const win = window;
|
|
11
|
-
if (win.OTTO_SERVER_URL) {
|
|
12
|
-
return win.OTTO_SERVER_URL;
|
|
13
|
-
}
|
|
14
|
-
if (win.__OTTO_API_URL__) {
|
|
15
|
-
return win.__OTTO_API_URL__;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
// Fallback for standalone dev
|
|
19
|
-
return 'http://localhost:9100';
|
|
20
|
-
}
|
|
21
|
-
export function getRuntimeApiBaseUrl() {
|
|
22
|
-
return computeApiBaseUrl();
|
|
23
|
-
}
|
|
24
|
-
export const API_BASE_URL = computeApiBaseUrl();
|
|
25
|
-
export const config = {
|
|
26
|
-
apiBaseUrl: API_BASE_URL,
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=config.js.map
|
package/dist/lib/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAMA,uDAAuD;AACvD,SAAS,iBAAiB;IACzB,0CAA0C;IAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAClD,IAAI,MAAM,EAAE,CAAC;QACZ,OAAO,MAAM,CAAC;IACf,CAAC;IAED,2DAA2D;IAC3D,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAoB,CAAC;QACjC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,GAAG,CAAC,eAAe,CAAC;QAC5B,CAAC;QACD,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAC,gBAAgB,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,8BAA8B;IAC9B,OAAO,uBAAuB,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,oBAAoB;IACnC,OAAO,iBAAiB,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,EAAE,CAAC;AAEhD,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,UAAU,EAAE,YAAY;CACxB,CAAC"}
|
package/dist/lib/nerd-font.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
export const NERD_FONT_FAMILY = '"JetBrainsMono NFM", monospace';
|
|
2
|
-
let fontsLoaded = false;
|
|
3
|
-
let loadPromise = null;
|
|
4
|
-
export function loadNerdFont() {
|
|
5
|
-
if (fontsLoaded)
|
|
6
|
-
return Promise.resolve();
|
|
7
|
-
if (loadPromise)
|
|
8
|
-
return loadPromise;
|
|
9
|
-
loadPromise = doLoad().then(() => {
|
|
10
|
-
fontsLoaded = true;
|
|
11
|
-
});
|
|
12
|
-
return loadPromise;
|
|
13
|
-
}
|
|
14
|
-
export function isNerdFontLoaded() {
|
|
15
|
-
return fontsLoaded;
|
|
16
|
-
}
|
|
17
|
-
async function doLoad() {
|
|
18
|
-
if (typeof document === 'undefined' || !('FontFace' in window))
|
|
19
|
-
return;
|
|
20
|
-
const variants = [
|
|
21
|
-
{
|
|
22
|
-
file: 'JetBrainsMonoNerdFontMono-Regular.woff2',
|
|
23
|
-
weight: '400',
|
|
24
|
-
style: 'normal',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
file: 'JetBrainsMonoNerdFontMono-Bold.woff2',
|
|
28
|
-
weight: '700',
|
|
29
|
-
style: 'normal',
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
file: 'JetBrainsMonoNerdFontMono-Italic.woff2',
|
|
33
|
-
weight: '400',
|
|
34
|
-
style: 'italic',
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
file: 'JetBrainsMonoNerdFontMono-BoldItalic.woff2',
|
|
38
|
-
weight: '700',
|
|
39
|
-
style: 'italic',
|
|
40
|
-
},
|
|
41
|
-
];
|
|
42
|
-
const loads = variants.map(async (v) => {
|
|
43
|
-
try {
|
|
44
|
-
const url = new URL(`../assets/fonts/${v.file}`, import.meta.url).href;
|
|
45
|
-
const face = new FontFace('JetBrainsMono NFM', `url("${url}") format("woff2")`, { weight: v.weight, style: v.style });
|
|
46
|
-
const loaded = await face.load();
|
|
47
|
-
document.fonts.add(loaded);
|
|
48
|
-
}
|
|
49
|
-
catch {
|
|
50
|
-
// variant not available
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
await Promise.allSettled(loads);
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=nerd-font.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nerd-font.js","sourceRoot":"","sources":["../../src/lib/nerd-font.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;AAEjE,IAAI,WAAW,GAAG,KAAK,CAAC;AACxB,IAAI,WAAW,GAAyB,IAAI,CAAC;AAE7C,MAAM,UAAU,YAAY;IAC3B,IAAI,WAAW;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1C,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,WAAW,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAChC,WAAW,GAAG,IAAI,CAAC;IACpB,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC/B,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,MAAM;IACpB,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC;QAAE,OAAO;IAEvE,MAAM,QAAQ,GAAG;QAChB;YACC,IAAI,EAAE,yCAAyC;YAC/C,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,QAAQ;SACf;QACD;YACC,IAAI,EAAE,sCAAsC;YAC5C,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,QAAQ;SACf;QACD;YACC,IAAI,EAAE,wCAAwC;YAC9C,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,QAAQ;SACf;QACD;YACC,IAAI,EAAE,4CAA4C;YAClD,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,QAAQ;SACf;KACD,CAAC;IAEF,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACvE,MAAM,IAAI,GAAG,IAAI,QAAQ,CACxB,mBAAmB,EACnB,QAAQ,GAAG,oBAAoB,EAC/B,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CACpC,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACjC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACR,wBAAwB;QACzB,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC"}
|
package/dist/lib/open-url.js
DELETED
package/dist/lib/open-url.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"open-url.js","sourceRoot":"","sources":["../../src/lib/open-url.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,OAAO,CAAC,GAAW;IAClC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACP,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACnD,CAAC;AACF,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
const RESEARCH_CONTEXT_REGEX = /<research-context\s+from="([^"]+)"\s+label="([^"]+)"[^>]*>([\s\S]*?)<\/research-context>/g;
|
|
2
|
-
export function parseResearchContext(content) {
|
|
3
|
-
const researchContexts = [];
|
|
4
|
-
let cleanContent = content;
|
|
5
|
-
const regex = new RegExp(RESEARCH_CONTEXT_REGEX);
|
|
6
|
-
let match = regex.exec(content);
|
|
7
|
-
while (match !== null) {
|
|
8
|
-
const [fullMatch, from, label, innerContent] = match;
|
|
9
|
-
researchContexts.push({
|
|
10
|
-
id: from,
|
|
11
|
-
from,
|
|
12
|
-
label,
|
|
13
|
-
content: innerContent.trim(),
|
|
14
|
-
});
|
|
15
|
-
cleanContent = cleanContent.replace(fullMatch, '');
|
|
16
|
-
match = regex.exec(content);
|
|
17
|
-
}
|
|
18
|
-
cleanContent = cleanContent.trim();
|
|
19
|
-
return {
|
|
20
|
-
researchContexts,
|
|
21
|
-
cleanContent,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
export function formatResearchContextForMessage(contexts) {
|
|
25
|
-
if (contexts.length === 0)
|
|
26
|
-
return '';
|
|
27
|
-
// content is already the full XML from server, just join them
|
|
28
|
-
return contexts.map((ctx) => ctx.content).join('\n\n');
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=parseResearchContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parseResearchContext.js","sourceRoot":"","sources":["../../src/lib/parseResearchContext.ts"],"names":[],"mappings":"AAYA,MAAM,sBAAsB,GAC3B,2FAA2F,CAAC;AAE7F,MAAM,UAAU,oBAAoB,CAAC,OAAe;IACnD,MAAM,gBAAgB,GAA4B,EAAE,CAAC;IACrD,IAAI,YAAY,GAAG,OAAO,CAAC;IAE3B,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACjD,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhC,OAAO,KAAK,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC;QACrD,gBAAgB,CAAC,IAAI,CAAC;YACrB,EAAE,EAAE,IAAI;YACR,IAAI;YACJ,KAAK;YACL,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE;SAC5B,CAAC,CAAC;QACH,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACnD,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IAEnC,OAAO;QACN,gBAAgB;QAChB,YAAY;KACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC9C,QAAsE;IAEtE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,8DAA8D;IAC9D,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC"}
|
package/dist/lib/sse-client.js
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
export class SSEClient {
|
|
2
|
-
abortController = null;
|
|
3
|
-
handlers = new Map();
|
|
4
|
-
running = false;
|
|
5
|
-
async connect(url) {
|
|
6
|
-
if (this.abortController) {
|
|
7
|
-
this.abortController.abort();
|
|
8
|
-
}
|
|
9
|
-
this.abortController = new AbortController();
|
|
10
|
-
this.running = true;
|
|
11
|
-
try {
|
|
12
|
-
const response = await fetch(url, {
|
|
13
|
-
headers: { Accept: 'text/event-stream' },
|
|
14
|
-
signal: this.abortController.signal,
|
|
15
|
-
});
|
|
16
|
-
if (!response.ok) {
|
|
17
|
-
console.error('[SSE] Connection failed:', response.status);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
const reader = response.body?.getReader();
|
|
21
|
-
if (!reader) {
|
|
22
|
-
console.error('[SSE] No response body');
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
const decoder = new TextDecoder();
|
|
26
|
-
let buffer = '';
|
|
27
|
-
while (this.running) {
|
|
28
|
-
const { done, value } = await reader.read();
|
|
29
|
-
if (done)
|
|
30
|
-
break;
|
|
31
|
-
buffer += decoder.decode(value, { stream: true });
|
|
32
|
-
let idx = buffer.indexOf('\n\n');
|
|
33
|
-
while (idx !== -1) {
|
|
34
|
-
const raw = buffer.slice(0, idx);
|
|
35
|
-
buffer = buffer.slice(idx + 2);
|
|
36
|
-
const lines = raw.split('\n');
|
|
37
|
-
let eventType = 'message';
|
|
38
|
-
let data = '';
|
|
39
|
-
for (const line of lines) {
|
|
40
|
-
if (line.startsWith('event: ')) {
|
|
41
|
-
eventType = line.slice(7).trim();
|
|
42
|
-
}
|
|
43
|
-
else if (line.startsWith('data: ')) {
|
|
44
|
-
data += (data ? '\n' : '') + line.slice(6);
|
|
45
|
-
}
|
|
46
|
-
else if (line.startsWith(':')) {
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
if (data) {
|
|
50
|
-
try {
|
|
51
|
-
const payload = JSON.parse(data);
|
|
52
|
-
this.emit({ type: eventType, payload });
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
console.error(`[SSE] Failed to parse ${eventType}:`, error);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
idx = buffer.indexOf('\n\n');
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
if (error instanceof Error && error.name === 'AbortError') {
|
|
64
|
-
}
|
|
65
|
-
else if (error instanceof TypeError &&
|
|
66
|
-
error.message === 'Load failed') {
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
console.error('[SSE] Connection error:', error);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
disconnect() {
|
|
74
|
-
this.running = false;
|
|
75
|
-
if (this.abortController) {
|
|
76
|
-
this.abortController.abort();
|
|
77
|
-
this.abortController = null;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
on(eventType, handler) {
|
|
81
|
-
if (!this.handlers.has(eventType)) {
|
|
82
|
-
this.handlers.set(eventType, new Set());
|
|
83
|
-
}
|
|
84
|
-
this.handlers.get(eventType)?.add(handler);
|
|
85
|
-
return () => {
|
|
86
|
-
this.off(eventType, handler);
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
off(eventType, handler) {
|
|
90
|
-
const handlers = this.handlers.get(eventType);
|
|
91
|
-
if (handlers) {
|
|
92
|
-
handlers.delete(handler);
|
|
93
|
-
if (handlers.size === 0) {
|
|
94
|
-
this.handlers.delete(eventType);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
emit(event) {
|
|
99
|
-
const handlers = this.handlers.get(event.type);
|
|
100
|
-
if (handlers) {
|
|
101
|
-
for (const handler of handlers) {
|
|
102
|
-
handler(event);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
const allHandlers = this.handlers.get('*');
|
|
106
|
-
if (allHandlers) {
|
|
107
|
-
for (const handler of allHandlers) {
|
|
108
|
-
handler(event);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=sse-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sse-client.js","sourceRoot":"","sources":["../../src/lib/sse-client.ts"],"names":[],"mappings":"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"}
|