@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.
Files changed (405) hide show
  1. package/dist/components/chat/FileMentionPopup.d.ts.map +1 -1
  2. package/dist/components/index.js +25148 -80
  3. package/dist/components/index.js.map +180 -1
  4. package/dist/components/messages/AssistantMessageGroup.d.ts.map +1 -1
  5. package/dist/components/messages/CompactActivityGroup.d.ts +10 -0
  6. package/dist/components/messages/CompactActivityGroup.d.ts.map +1 -0
  7. package/dist/components/messages/MessagePartItem.d.ts.map +1 -1
  8. package/dist/components/messages/MessageThread.d.ts +1 -0
  9. package/dist/components/messages/MessageThread.d.ts.map +1 -1
  10. package/dist/components/messages/MessageThreadContainer.d.ts.map +1 -1
  11. package/dist/components/messages/compactActivity.d.ts +34 -0
  12. package/dist/components/messages/compactActivity.d.ts.map +1 -0
  13. package/dist/components/messages/renderers/EditRenderer.d.ts +1 -1
  14. package/dist/components/messages/renderers/EditRenderer.d.ts.map +1 -1
  15. package/dist/components/messages/renderers/index.d.ts.map +1 -1
  16. package/dist/components/messages/renderers/types.d.ts +3 -1
  17. package/dist/components/messages/renderers/types.d.ts.map +1 -1
  18. package/dist/components/settings/SettingsSidebar.d.ts.map +1 -1
  19. package/dist/components/settings/SetuTopupModal.d.ts.map +1 -1
  20. package/dist/hooks/index.js +4812 -29
  21. package/dist/hooks/index.js.map +67 -1
  22. package/dist/hooks/useAuthStatus.d.ts.map +1 -1
  23. package/dist/hooks/useMCP.d.ts +9 -0
  24. package/dist/hooks/useMCP.d.ts.map +1 -1
  25. package/dist/hooks/usePreferences.d.ts +1 -0
  26. package/dist/hooks/usePreferences.d.ts.map +1 -1
  27. package/dist/hooks/useSessionStream.d.ts.map +1 -1
  28. package/dist/index.js +25918 -7
  29. package/dist/index.js.map +185 -1
  30. package/dist/lib/api-client/approval.d.ts.map +1 -1
  31. package/dist/lib/index.js +1007 -5
  32. package/dist/lib/index.js.map +22 -1
  33. package/dist/stores/index.js +693 -22
  34. package/dist/stores/index.js.map +30 -1
  35. package/dist/stores/toastStore.d.ts +1 -0
  36. package/dist/stores/toastStore.d.ts.map +1 -1
  37. package/dist/types/api.js +2 -2
  38. package/dist/types/api.js.map +9 -1
  39. package/package.json +4 -4
  40. package/dist/assets/provider-logos.js +0 -43
  41. package/dist/assets/provider-logos.js.map +0 -1
  42. package/dist/components/branch/BranchModal.js +0 -45
  43. package/dist/components/branch/BranchModal.js.map +0 -1
  44. package/dist/components/chat/ChatInput.js +0 -267
  45. package/dist/components/chat/ChatInput.js.map +0 -1
  46. package/dist/components/chat/ChatInputContainer.js +0 -295
  47. package/dist/components/chat/ChatInputContainer.js.map +0 -1
  48. package/dist/components/chat/ChatInputKeyHandler.js +0 -75
  49. package/dist/components/chat/ChatInputKeyHandler.js.map +0 -1
  50. package/dist/components/chat/CommandSuggestionsPopup.js +0 -45
  51. package/dist/components/chat/CommandSuggestionsPopup.js.map +0 -1
  52. package/dist/components/chat/ConfigModal.js +0 -46
  53. package/dist/components/chat/ConfigModal.js.map +0 -1
  54. package/dist/components/chat/ConfigSelector.js +0 -47
  55. package/dist/components/chat/ConfigSelector.js.map +0 -1
  56. package/dist/components/chat/FileMentionPopup.js +0 -138
  57. package/dist/components/chat/FileMentionPopup.js.map +0 -1
  58. package/dist/components/chat/ShortcutsModal.js +0 -275
  59. package/dist/components/chat/ShortcutsModal.js.map +0 -1
  60. package/dist/components/chat/StopButton.js +0 -25
  61. package/dist/components/chat/StopButton.js.map +0 -1
  62. package/dist/components/chat/UnifiedAgentSelector.js +0 -107
  63. package/dist/components/chat/UnifiedAgentSelector.js.map +0 -1
  64. package/dist/components/chat/UnifiedModelSelector.js +0 -209
  65. package/dist/components/chat/UnifiedModelSelector.js.map +0 -1
  66. package/dist/components/common/ProviderLogo.js +0 -30
  67. package/dist/components/common/ProviderLogo.js.map +0 -1
  68. package/dist/components/common/StatusIndicator.js +0 -54
  69. package/dist/components/common/StatusIndicator.js.map +0 -1
  70. package/dist/components/common/UsageModal.js +0 -55
  71. package/dist/components/common/UsageModal.js.map +0 -1
  72. package/dist/components/common/UsageRing.js +0 -22
  73. package/dist/components/common/UsageRing.js.map +0 -1
  74. package/dist/components/file-browser/FileBrowserSidebar.js +0 -50
  75. package/dist/components/file-browser/FileBrowserSidebar.js.map +0 -1
  76. package/dist/components/file-browser/FileBrowserSidebarToggle.js +0 -12
  77. package/dist/components/file-browser/FileBrowserSidebarToggle.js.map +0 -1
  78. package/dist/components/file-browser/FileViewerPanel.js +0 -85
  79. package/dist/components/file-browser/FileViewerPanel.js.map +0 -1
  80. package/dist/components/file-browser/QuickFilePicker.js +0 -118
  81. package/dist/components/file-browser/QuickFilePicker.js.map +0 -1
  82. package/dist/components/git/GitCommitModal.js +0 -70
  83. package/dist/components/git/GitCommitModal.js.map +0 -1
  84. package/dist/components/git/GitDiffPanel.js +0 -60
  85. package/dist/components/git/GitDiffPanel.js.map +0 -1
  86. package/dist/components/git/GitDiffViewer.js +0 -224
  87. package/dist/components/git/GitDiffViewer.js.map +0 -1
  88. package/dist/components/git/GitFileItem.js +0 -145
  89. package/dist/components/git/GitFileItem.js.map +0 -1
  90. package/dist/components/git/GitFileList.js +0 -108
  91. package/dist/components/git/GitFileList.js.map +0 -1
  92. package/dist/components/git/GitSidebar.js +0 -156
  93. package/dist/components/git/GitSidebar.js.map +0 -1
  94. package/dist/components/git/GitSidebarToggle.js +0 -18
  95. package/dist/components/git/GitSidebarToggle.js.map +0 -1
  96. package/dist/components/mcp/AddMCPServerModal.js +0 -166
  97. package/dist/components/mcp/AddMCPServerModal.js.map +0 -1
  98. package/dist/components/mcp/MCPSidebar.js +0 -192
  99. package/dist/components/mcp/MCPSidebar.js.map +0 -1
  100. package/dist/components/mcp/MCPSidebarToggle.js +0 -14
  101. package/dist/components/mcp/MCPSidebarToggle.js.map +0 -1
  102. package/dist/components/mcp/index.js +0 -4
  103. package/dist/components/mcp/index.js.map +0 -1
  104. package/dist/components/messages/AssistantMessageGroup.js +0 -176
  105. package/dist/components/messages/AssistantMessageGroup.js.map +0 -1
  106. package/dist/components/messages/MessagePartItem.js +0 -362
  107. package/dist/components/messages/MessagePartItem.js.map +0 -1
  108. package/dist/components/messages/MessageThread.js +0 -239
  109. package/dist/components/messages/MessageThread.js.map +0 -1
  110. package/dist/components/messages/MessageThreadContainer.js +0 -22
  111. package/dist/components/messages/MessageThreadContainer.js.map +0 -1
  112. package/dist/components/messages/ToolApprovalCard.js +0 -143
  113. package/dist/components/messages/ToolApprovalCard.js.map +0 -1
  114. package/dist/components/messages/TopupApprovalCard.js +0 -52
  115. package/dist/components/messages/TopupApprovalCard.js.map +0 -1
  116. package/dist/components/messages/UserMessageGroup.js +0 -132
  117. package/dist/components/messages/UserMessageGroup.js.map +0 -1
  118. package/dist/components/messages/renderers/ApplyPatchRenderer.js +0 -55
  119. package/dist/components/messages/renderers/ApplyPatchRenderer.js.map +0 -1
  120. package/dist/components/messages/renderers/BashRenderer.js +0 -55
  121. package/dist/components/messages/renderers/BashRenderer.js.map +0 -1
  122. package/dist/components/messages/renderers/DatabaseToolRenderer.js +0 -151
  123. package/dist/components/messages/renderers/DatabaseToolRenderer.js.map +0 -1
  124. package/dist/components/messages/renderers/DebugRenderer.js +0 -5
  125. package/dist/components/messages/renderers/DebugRenderer.js.map +0 -1
  126. package/dist/components/messages/renderers/DiffView.js +0 -206
  127. package/dist/components/messages/renderers/DiffView.js.map +0 -1
  128. package/dist/components/messages/renderers/EditRenderer.js +0 -25
  129. package/dist/components/messages/renderers/EditRenderer.js.map +0 -1
  130. package/dist/components/messages/renderers/ErrorRenderer.js +0 -162
  131. package/dist/components/messages/renderers/ErrorRenderer.js.map +0 -1
  132. package/dist/components/messages/renderers/FinishRenderer.js +0 -7
  133. package/dist/components/messages/renderers/FinishRenderer.js.map +0 -1
  134. package/dist/components/messages/renderers/GenericRenderer.js +0 -50
  135. package/dist/components/messages/renderers/GenericRenderer.js.map +0 -1
  136. package/dist/components/messages/renderers/GitCommitRenderer.js +0 -21
  137. package/dist/components/messages/renderers/GitCommitRenderer.js.map +0 -1
  138. package/dist/components/messages/renderers/GitDiffRenderer.js +0 -34
  139. package/dist/components/messages/renderers/GitDiffRenderer.js.map +0 -1
  140. package/dist/components/messages/renderers/GitStatusRenderer.js +0 -60
  141. package/dist/components/messages/renderers/GitStatusRenderer.js.map +0 -1
  142. package/dist/components/messages/renderers/ListRenderer.js +0 -28
  143. package/dist/components/messages/renderers/ListRenderer.js.map +0 -1
  144. package/dist/components/messages/renderers/LoadMcpToolsRenderer.js +0 -20
  145. package/dist/components/messages/renderers/LoadMcpToolsRenderer.js.map +0 -1
  146. package/dist/components/messages/renderers/McpToolRenderer.js +0 -68
  147. package/dist/components/messages/renderers/McpToolRenderer.js.map +0 -1
  148. package/dist/components/messages/renderers/ProgressUpdateRenderer.js +0 -9
  149. package/dist/components/messages/renderers/ProgressUpdateRenderer.js.map +0 -1
  150. package/dist/components/messages/renderers/ReadRenderer.js +0 -87
  151. package/dist/components/messages/renderers/ReadRenderer.js.map +0 -1
  152. package/dist/components/messages/renderers/ReasoningRenderer.js +0 -34
  153. package/dist/components/messages/renderers/ReasoningRenderer.js.map +0 -1
  154. package/dist/components/messages/renderers/SearchRenderer.js +0 -52
  155. package/dist/components/messages/renderers/SearchRenderer.js.map +0 -1
  156. package/dist/components/messages/renderers/SkillRenderer.js +0 -36
  157. package/dist/components/messages/renderers/SkillRenderer.js.map +0 -1
  158. package/dist/components/messages/renderers/TerminalRenderer.js +0 -84
  159. package/dist/components/messages/renderers/TerminalRenderer.js.map +0 -1
  160. package/dist/components/messages/renderers/TodosRenderer.js +0 -15
  161. package/dist/components/messages/renderers/TodosRenderer.js.map +0 -1
  162. package/dist/components/messages/renderers/ToolErrorDisplay.js +0 -10
  163. package/dist/components/messages/renderers/ToolErrorDisplay.js.map +0 -1
  164. package/dist/components/messages/renderers/TreeRenderer.js +0 -33
  165. package/dist/components/messages/renderers/TreeRenderer.js.map +0 -1
  166. package/dist/components/messages/renderers/WebSearchRenderer.js +0 -29
  167. package/dist/components/messages/renderers/WebSearchRenderer.js.map +0 -1
  168. package/dist/components/messages/renderers/WriteRenderer.js +0 -28
  169. package/dist/components/messages/renderers/WriteRenderer.js.map +0 -1
  170. package/dist/components/messages/renderers/index.js +0 -129
  171. package/dist/components/messages/renderers/index.js.map +0 -1
  172. package/dist/components/messages/renderers/shared/CopyButton.js +0 -27
  173. package/dist/components/messages/renderers/shared/CopyButton.js.map +0 -1
  174. package/dist/components/messages/renderers/shared/ImagePreview.js +0 -14
  175. package/dist/components/messages/renderers/shared/ImagePreview.js.map +0 -1
  176. package/dist/components/messages/renderers/shared/ToolContentBox.js +0 -9
  177. package/dist/components/messages/renderers/shared/ToolContentBox.js.map +0 -1
  178. package/dist/components/messages/renderers/shared/ToolHeader.js +0 -69
  179. package/dist/components/messages/renderers/shared/ToolHeader.js.map +0 -1
  180. package/dist/components/messages/renderers/shared/index.js +0 -5
  181. package/dist/components/messages/renderers/shared/index.js.map +0 -1
  182. package/dist/components/messages/renderers/types.js +0 -2
  183. package/dist/components/messages/renderers/types.js.map +0 -1
  184. package/dist/components/messages/renderers/utils.js +0 -60
  185. package/dist/components/messages/renderers/utils.js.map +0 -1
  186. package/dist/components/onboarding/OnboardingModal.js +0 -22
  187. package/dist/components/onboarding/OnboardingModal.js.map +0 -1
  188. package/dist/components/onboarding/index.js +0 -4
  189. package/dist/components/onboarding/index.js.map +0 -1
  190. package/dist/components/onboarding/steps/DefaultsStep.js +0 -104
  191. package/dist/components/onboarding/steps/DefaultsStep.js.map +0 -1
  192. package/dist/components/onboarding/steps/ProviderSetupStep.js +0 -398
  193. package/dist/components/onboarding/steps/ProviderSetupStep.js.map +0 -1
  194. package/dist/components/research/ResearchSidebar.js +0 -288
  195. package/dist/components/research/ResearchSidebar.js.map +0 -1
  196. package/dist/components/research/ResearchSidebarToggle.js +0 -15
  197. package/dist/components/research/ResearchSidebarToggle.js.map +0 -1
  198. package/dist/components/research/index.js +0 -3
  199. package/dist/components/research/index.js.map +0 -1
  200. package/dist/components/session-files/SessionFilesDiffPanel.js +0 -345
  201. package/dist/components/session-files/SessionFilesDiffPanel.js.map +0 -1
  202. package/dist/components/session-files/SessionFilesSidebar.js +0 -87
  203. package/dist/components/session-files/SessionFilesSidebar.js.map +0 -1
  204. package/dist/components/session-files/SessionFilesSidebarToggle.js +0 -15
  205. package/dist/components/session-files/SessionFilesSidebarToggle.js.map +0 -1
  206. package/dist/components/session-files/index.js +0 -4
  207. package/dist/components/session-files/index.js.map +0 -1
  208. package/dist/components/sessions/EditableTitle.js +0 -40
  209. package/dist/components/sessions/EditableTitle.js.map +0 -1
  210. package/dist/components/sessions/LeanHeader.js +0 -70
  211. package/dist/components/sessions/LeanHeader.js.map +0 -1
  212. package/dist/components/sessions/SessionHeader.js +0 -75
  213. package/dist/components/sessions/SessionHeader.js.map +0 -1
  214. package/dist/components/sessions/SessionItem.js +0 -28
  215. package/dist/components/sessions/SessionItem.js.map +0 -1
  216. package/dist/components/sessions/SessionListContainer.js +0 -86
  217. package/dist/components/sessions/SessionListContainer.js.map +0 -1
  218. package/dist/components/settings/SettingsSidebar.js +0 -212
  219. package/dist/components/settings/SettingsSidebar.js.map +0 -1
  220. package/dist/components/settings/SettingsSidebarToggle.js +0 -12
  221. package/dist/components/settings/SettingsSidebarToggle.js.map +0 -1
  222. package/dist/components/settings/SetuTopupModal.js +0 -306
  223. package/dist/components/settings/SetuTopupModal.js.map +0 -1
  224. package/dist/components/skills/SkillViewerPanel.js +0 -89
  225. package/dist/components/skills/SkillViewerPanel.js.map +0 -1
  226. package/dist/components/skills/SkillsSidebar.js +0 -59
  227. package/dist/components/skills/SkillsSidebar.js.map +0 -1
  228. package/dist/components/skills/SkillsSidebarToggle.js +0 -12
  229. package/dist/components/skills/SkillsSidebarToggle.js.map +0 -1
  230. package/dist/components/skills/index.js +0 -4
  231. package/dist/components/skills/index.js.map +0 -1
  232. package/dist/components/terminals/TerminalPanelToggle.js +0 -13
  233. package/dist/components/terminals/TerminalPanelToggle.js.map +0 -1
  234. package/dist/components/terminals/TerminalTabBar.js +0 -22
  235. package/dist/components/terminals/TerminalTabBar.js.map +0 -1
  236. package/dist/components/terminals/TerminalViewer.js +0 -371
  237. package/dist/components/terminals/TerminalViewer.js.map +0 -1
  238. package/dist/components/terminals/TerminalsPanel.js +0 -134
  239. package/dist/components/terminals/TerminalsPanel.js.map +0 -1
  240. package/dist/components/terminals/index.js +0 -11
  241. package/dist/components/terminals/index.js.map +0 -1
  242. package/dist/components/tunnel/TunnelSidebar.js +0 -55
  243. package/dist/components/tunnel/TunnelSidebar.js.map +0 -1
  244. package/dist/components/tunnel/TunnelSidebarToggle.js +0 -14
  245. package/dist/components/tunnel/TunnelSidebarToggle.js.map +0 -1
  246. package/dist/components/tunnel/index.js +0 -3
  247. package/dist/components/tunnel/index.js.map +0 -1
  248. package/dist/components/ui/Button.js +0 -19
  249. package/dist/components/ui/Button.js.map +0 -1
  250. package/dist/components/ui/Card.js +0 -7
  251. package/dist/components/ui/Card.js.map +0 -1
  252. package/dist/components/ui/ConfirmationDialog.js +0 -72
  253. package/dist/components/ui/ConfirmationDialog.js.map +0 -1
  254. package/dist/components/ui/Input.js +0 -7
  255. package/dist/components/ui/Input.js.map +0 -1
  256. package/dist/components/ui/Modal.js +0 -51
  257. package/dist/components/ui/Modal.js.map +0 -1
  258. package/dist/components/ui/ResizeHandle.js +0 -39
  259. package/dist/components/ui/ResizeHandle.js.map +0 -1
  260. package/dist/components/ui/Textarea.js +0 -7
  261. package/dist/components/ui/Textarea.js.map +0 -1
  262. package/dist/components/ui/Toaster.js +0 -41
  263. package/dist/components/ui/Toaster.js.map +0 -1
  264. package/dist/components/ui/ToolApprovalDialog.js +0 -57
  265. package/dist/components/ui/ToolApprovalDialog.js.map +0 -1
  266. package/dist/hooks/useAuthStatus.js +0 -287
  267. package/dist/hooks/useAuthStatus.js.map +0 -1
  268. package/dist/hooks/useBranch.js +0 -44
  269. package/dist/hooks/useBranch.js.map +0 -1
  270. package/dist/hooks/useCommandSuggestions.js +0 -86
  271. package/dist/hooks/useCommandSuggestions.js.map +0 -1
  272. package/dist/hooks/useConfig.js +0 -32
  273. package/dist/hooks/useConfig.js.map +0 -1
  274. package/dist/hooks/useFileBrowser.js +0 -30
  275. package/dist/hooks/useFileBrowser.js.map +0 -1
  276. package/dist/hooks/useFileMention.js +0 -56
  277. package/dist/hooks/useFileMention.js.map +0 -1
  278. package/dist/hooks/useFileUpload.js +0 -317
  279. package/dist/hooks/useFileUpload.js.map +0 -1
  280. package/dist/hooks/useFiles.js +0 -15
  281. package/dist/hooks/useFiles.js.map +0 -1
  282. package/dist/hooks/useGit.js +0 -149
  283. package/dist/hooks/useGit.js.map +0 -1
  284. package/dist/hooks/useImageUpload.js +0 -197
  285. package/dist/hooks/useImageUpload.js.map +0 -1
  286. package/dist/hooks/useKeyboardShortcuts.js +0 -249
  287. package/dist/hooks/useKeyboardShortcuts.js.map +0 -1
  288. package/dist/hooks/useMCP.js +0 -202
  289. package/dist/hooks/useMCP.js.map +0 -1
  290. package/dist/hooks/useMessages.js +0 -26
  291. package/dist/hooks/useMessages.js.map +0 -1
  292. package/dist/hooks/usePreferences.js +0 -61
  293. package/dist/hooks/usePreferences.js.map +0 -1
  294. package/dist/hooks/useProviderUsage.js +0 -44
  295. package/dist/hooks/useProviderUsage.js.map +0 -1
  296. package/dist/hooks/useQueueState.js +0 -31
  297. package/dist/hooks/useQueueState.js.map +0 -1
  298. package/dist/hooks/useResearch.js +0 -139
  299. package/dist/hooks/useResearch.js.map +0 -1
  300. package/dist/hooks/useSessionFiles.js +0 -15
  301. package/dist/hooks/useSessionFiles.js.map +0 -1
  302. package/dist/hooks/useSessionStream.js +0 -572
  303. package/dist/hooks/useSessionStream.js.map +0 -1
  304. package/dist/hooks/useSessions.js +0 -83
  305. package/dist/hooks/useSessions.js.map +0 -1
  306. package/dist/hooks/useSetuBalance.js +0 -71
  307. package/dist/hooks/useSetuBalance.js.map +0 -1
  308. package/dist/hooks/useSetuPayments.js +0 -171
  309. package/dist/hooks/useSetuPayments.js.map +0 -1
  310. package/dist/hooks/useShareStatus.js +0 -12
  311. package/dist/hooks/useShareStatus.js.map +0 -1
  312. package/dist/hooks/useSkills.js +0 -54
  313. package/dist/hooks/useSkills.js.map +0 -1
  314. package/dist/hooks/useTerminals.js +0 -67
  315. package/dist/hooks/useTerminals.js.map +0 -1
  316. package/dist/hooks/useTheme.js +0 -57
  317. package/dist/hooks/useTheme.js.map +0 -1
  318. package/dist/hooks/useToolApprovalShortcuts.js +0 -88
  319. package/dist/hooks/useToolApprovalShortcuts.js.map +0 -1
  320. package/dist/hooks/useTopupCallback.js +0 -74
  321. package/dist/hooks/useTopupCallback.js.map +0 -1
  322. package/dist/hooks/useTunnel.js +0 -158
  323. package/dist/hooks/useTunnel.js.map +0 -1
  324. package/dist/hooks/useVimMode.js +0 -298
  325. package/dist/hooks/useVimMode.js.map +0 -1
  326. package/dist/hooks/useWorkingDirectory.js +0 -34
  327. package/dist/hooks/useWorkingDirectory.js.map +0 -1
  328. package/dist/lib/api-client/approval.js +0 -25
  329. package/dist/lib/api-client/approval.js.map +0 -1
  330. package/dist/lib/api-client/auth.js +0 -139
  331. package/dist/lib/api-client/auth.js.map +0 -1
  332. package/dist/lib/api-client/branches.js +0 -45
  333. package/dist/lib/api-client/branches.js.map +0 -1
  334. package/dist/lib/api-client/config.js +0 -38
  335. package/dist/lib/api-client/config.js.map +0 -1
  336. package/dist/lib/api-client/files.js +0 -35
  337. package/dist/lib/api-client/files.js.map +0 -1
  338. package/dist/lib/api-client/git.js +0 -154
  339. package/dist/lib/api-client/git.js.map +0 -1
  340. package/dist/lib/api-client/index.js +0 -92
  341. package/dist/lib/api-client/index.js.map +0 -1
  342. package/dist/lib/api-client/sessions.js +0 -106
  343. package/dist/lib/api-client/sessions.js.map +0 -1
  344. package/dist/lib/api-client/setu.js +0 -144
  345. package/dist/lib/api-client/setu.js.map +0 -1
  346. package/dist/lib/api-client/skills.js +0 -31
  347. package/dist/lib/api-client/skills.js.map +0 -1
  348. package/dist/lib/api-client/utils.js +0 -65
  349. package/dist/lib/api-client/utils.js.map +0 -1
  350. package/dist/lib/commands.js +0 -124
  351. package/dist/lib/commands.js.map +0 -1
  352. package/dist/lib/config.js +0 -28
  353. package/dist/lib/config.js.map +0 -1
  354. package/dist/lib/nerd-font.js +0 -55
  355. package/dist/lib/nerd-font.js.map +0 -1
  356. package/dist/lib/open-url.js +0 -9
  357. package/dist/lib/open-url.js.map +0 -1
  358. package/dist/lib/parseResearchContext.js +0 -30
  359. package/dist/lib/parseResearchContext.js.map +0 -1
  360. package/dist/lib/sse-client.js +0 -113
  361. package/dist/lib/sse-client.js.map +0 -1
  362. package/dist/stores/confirmationStore.js +0 -27
  363. package/dist/stores/confirmationStore.js.map +0 -1
  364. package/dist/stores/fileBrowserStore.js +0 -63
  365. package/dist/stores/fileBrowserStore.js.map +0 -1
  366. package/dist/stores/filePickerStore.js +0 -8
  367. package/dist/stores/filePickerStore.js.map +0 -1
  368. package/dist/stores/focusStore.js +0 -12
  369. package/dist/stores/focusStore.js.map +0 -1
  370. package/dist/stores/gitStore.js +0 -63
  371. package/dist/stores/gitStore.js.map +0 -1
  372. package/dist/stores/mcpStore.js +0 -63
  373. package/dist/stores/mcpStore.js.map +0 -1
  374. package/dist/stores/onboardingStore.js +0 -38
  375. package/dist/stores/onboardingStore.js.map +0 -1
  376. package/dist/stores/panelWidthStore.js +0 -12
  377. package/dist/stores/panelWidthStore.js.map +0 -1
  378. package/dist/stores/pendingResearchStore.js +0 -38
  379. package/dist/stores/pendingResearchStore.js.map +0 -1
  380. package/dist/stores/queueStore.js +0 -11
  381. package/dist/stores/queueStore.js.map +0 -1
  382. package/dist/stores/researchStore.js +0 -54
  383. package/dist/stores/researchStore.js.map +0 -1
  384. package/dist/stores/sessionFilesStore.js +0 -62
  385. package/dist/stores/sessionFilesStore.js.map +0 -1
  386. package/dist/stores/settingsStore.js +0 -29
  387. package/dist/stores/settingsStore.js.map +0 -1
  388. package/dist/stores/setuStore.js +0 -29
  389. package/dist/stores/setuStore.js.map +0 -1
  390. package/dist/stores/sidebarStore.js +0 -10
  391. package/dist/stores/sidebarStore.js.map +0 -1
  392. package/dist/stores/skillsStore.js +0 -46
  393. package/dist/stores/skillsStore.js.map +0 -1
  394. package/dist/stores/terminalStore.js +0 -32
  395. package/dist/stores/terminalStore.js.map +0 -1
  396. package/dist/stores/toastStore.js +0 -46
  397. package/dist/stores/toastStore.js.map +0 -1
  398. package/dist/stores/toolApprovalStore.js +0 -16
  399. package/dist/stores/toolApprovalStore.js.map +0 -1
  400. package/dist/stores/topupApprovalStore.js +0 -11
  401. package/dist/stores/topupApprovalStore.js.map +0 -1
  402. package/dist/stores/tunnelStore.js +0 -55
  403. package/dist/stores/tunnelStore.js.map +0 -1
  404. package/dist/stores/usageStore.js +0 -14
  405. 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":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EACN,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACN,SAAS,EACT,cAAc,EACd,aAAa,GACb,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,GAAqC;IACrD,GAAG,EAAE,SAAS;IACd,MAAM,EAAE,SAAS;IACjB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,KAAK;CACb,CAAC;AAEF,MAAM,YAAY,GAA2B;IAC5C,GAAG,EAAE,SAAS;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;CAChB,CAAC;AAEF,SAAS,UAAU,CAAC,KAAa;IAChC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,aAAa;IACvD,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEzD,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IAClC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC5D,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC;IAE/C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,OAAO,CACN,eAAK,SAAS,EAAC,gEAAgE,aAC9E,eAAK,SAAS,EAAC,oEAAoE,aAClF,eAAK,SAAS,EAAC,yBAAyB,aACvC,KAAC,QAAQ,IAAC,SAAS,EAAC,+BAA+B,GAAG,EACtD,eAAM,SAAS,EAAC,qBAAqB,uBAAc,IAC9C,EACN,KAAC,MAAM,IACN,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,eAAe,EACxB,KAAK,EAAC,eAAe,YAErB,KAAC,YAAY,IAAC,SAAS,EAAC,SAAS,GAAG,GAC5B,IACJ,EAEL,aAAa,IAAI,WAAW,CAAC,CAAC,CAAC,CAC/B,eAAK,SAAS,EAAC,wBAAwB,aACtC,cAAK,SAAS,EAAC,4BAA4B,YAC1C,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAChC,SAAS,EAAC,uEAAuE,oCAGzE,GACJ,EACN,eAAK,SAAS,EAAC,kCAAkC,aAChD,aAAI,SAAS,EAAC,0BAA0B,YAAE,WAAW,CAAC,IAAI,GAAM,EAChE,YAAG,SAAS,EAAC,oCAAoC,YAC/C,WAAW,CAAC,WAAW,GACrB,EACJ,eAAK,SAAS,EAAC,yBAAyB,aACvC,eAAM,SAAS,EAAC,kEAAkE,YAChF,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,GAC/C,EACN,WAAW,CAAC,OAAO,IAAI,CACvB,eAAM,SAAS,EAAC,kEAAkE,YAChF,WAAW,CAAC,OAAO,GACd,CACP,IACI,IACD,EAEN,eAAK,SAAS,EAAC,MAAM,aACpB,cAAK,SAAS,EAAC,4GAA4G,sBAErH,EACN,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAC/B,SAAS,EAAE,gEACV,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EACtC,EAAE,YAEF,eAAK,SAAS,EAAC,yBAAyB,aACvC,KAAC,QAAQ,IAAC,SAAS,EAAC,iDAAiD,GAAG,EACxE,eAAM,SAAS,EAAC,mCAAmC,yBAE5C,IACF,GACE,EACR,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,iBACC,IAAI,EAAC,QAAQ,EAEb,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAC5C,SAAS,EAAE,gEACV,WAAW,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EACnD,EAAE,YAEF,eAAK,SAAS,EAAC,yBAAyB,aACvC,KAAC,QAAQ,IAAC,SAAS,EAAC,iDAAiD,GAAG,EACxE,eAAM,SAAS,EAAC,mCAAmC,YACjD,IAAI,CAAC,YAAY,GACZ,EACP,eAAM,SAAS,EAAC,iDAAiD,YAC/D,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAChB,IACF,IAdD,IAAI,CAAC,YAAY,CAed,CACT,CAAC,IACG,IACD,CACN,CAAC,CAAC,CAAC,CACH,cAAK,SAAS,EAAC,wBAAwB,YACrC,SAAS,CAAC,CAAC,CAAC,CACZ,cAAK,SAAS,EAAC,uCAAuC,YACrD,KAAC,OAAO,IAAC,SAAS,EAAC,4CAA4C,GAAG,GAC7D,CACN,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACzB,eAAK,SAAS,EAAC,kEAAkE,aAChF,KAAC,QAAQ,IAAC,SAAS,EAAC,yCAAyC,GAAG,EAChE,aAAI,SAAS,EAAC,0BAA0B,gCAAqB,EAC7D,aAAG,SAAS,EAAC,6CAA6C,iCACxC,GAAG,EACpB,eAAM,SAAS,EAAC,mCAAmC,8BAE5C,EAAC,GAAG,QACR,GAAG,EACN,eAAM,SAAS,EAAC,mCAAmC,uCAE5C,IACJ,IACC,CACN,CAAC,CAAC,CAAC,CACH,cAAK,SAAS,EAAC,MAAM,YACnB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC1D,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAC7C,IAAI,CAAC,WAAW,EAAE,MAAM;4BAAE,OAAO,IAAI,CAAC;wBACtC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;wBAC9C,OAAO,CACN,0BACC,eAAK,SAAS,EAAC,4GAA4G,aAC1H,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,GAAG,EAChC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,IACxB,EACL,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3B,iBACC,IAAI,EAAC,QAAQ,EAEb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EACtC,SAAS,EAAE,gEACV,aAAa,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAC9C,EAAE,YAEF,eAAK,SAAS,EAAC,yBAAyB,aACvC,KAAC,QAAQ,IAAC,SAAS,EAAC,iDAAiD,GAAG,EACxE,eAAK,SAAS,EAAC,gBAAgB,aAC9B,cAAK,SAAS,EAAC,8BAA8B,YAC3C,KAAK,CAAC,IAAI,GACN,EACN,cAAK,SAAS,EAAC,wCAAwC,YACrD,KAAK,CAAC,WAAW,GACb,IACD,IACD,IAhBD,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAiB3B,CACT,CAAC,KA1BO,KAAK,CA2BT,CACN,CAAC;oBACH,CAAC,CAAC,GACG,CACN,GACI,CACN,IACI,CACN,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -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,4 +0,0 @@
1
- export * from './SkillsSidebar';
2
- export * from './SkillsSidebarToggle';
3
- export * from './SkillViewerPanel';
4
- //# sourceMappingURL=index.js.map
@@ -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"}