@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.
Files changed (424) hide show
  1. package/dist/components/chat/ChatInput.d.ts.map +1 -1
  2. package/dist/components/chat/FileMentionPopup.d.ts.map +1 -1
  3. package/dist/components/chat/UnifiedModelSelector.d.ts.map +1 -1
  4. package/dist/components/index.js +25148 -80
  5. package/dist/components/index.js.map +180 -1
  6. package/dist/components/messages/AssistantMessageGroup.d.ts.map +1 -1
  7. package/dist/components/messages/CompactActivityGroup.d.ts +10 -0
  8. package/dist/components/messages/CompactActivityGroup.d.ts.map +1 -0
  9. package/dist/components/messages/MessagePartItem.d.ts.map +1 -1
  10. package/dist/components/messages/MessageThread.d.ts +1 -0
  11. package/dist/components/messages/MessageThread.d.ts.map +1 -1
  12. package/dist/components/messages/MessageThreadContainer.d.ts.map +1 -1
  13. package/dist/components/messages/compactActivity.d.ts +34 -0
  14. package/dist/components/messages/compactActivity.d.ts.map +1 -0
  15. package/dist/components/messages/renderers/EditRenderer.d.ts +1 -1
  16. package/dist/components/messages/renderers/EditRenderer.d.ts.map +1 -1
  17. package/dist/components/messages/renderers/ErrorRenderer.d.ts.map +1 -1
  18. package/dist/components/messages/renderers/index.d.ts.map +1 -1
  19. package/dist/components/messages/renderers/types.d.ts +3 -1
  20. package/dist/components/messages/renderers/types.d.ts.map +1 -1
  21. package/dist/components/onboarding/OnboardingModal.d.ts.map +1 -1
  22. package/dist/components/onboarding/steps/ProviderSetupStep.d.ts +45 -0
  23. package/dist/components/onboarding/steps/ProviderSetupStep.d.ts.map +1 -1
  24. package/dist/components/settings/SettingsSidebar.d.ts.map +1 -1
  25. package/dist/components/settings/SetuTopupModal.d.ts.map +1 -1
  26. package/dist/hooks/index.js +4812 -29
  27. package/dist/hooks/index.js.map +67 -1
  28. package/dist/hooks/useAuthStatus.d.ts +20 -0
  29. package/dist/hooks/useAuthStatus.d.ts.map +1 -1
  30. package/dist/hooks/useConfig.d.ts +2 -0
  31. package/dist/hooks/useConfig.d.ts.map +1 -1
  32. package/dist/hooks/useMCP.d.ts +9 -0
  33. package/dist/hooks/useMCP.d.ts.map +1 -1
  34. package/dist/hooks/usePreferences.d.ts +1 -0
  35. package/dist/hooks/usePreferences.d.ts.map +1 -1
  36. package/dist/hooks/useSessionStream.d.ts.map +1 -1
  37. package/dist/index.js +25918 -7
  38. package/dist/index.js.map +185 -1
  39. package/dist/lib/api-client/approval.d.ts.map +1 -1
  40. package/dist/lib/api-client/auth.d.ts +49 -0
  41. package/dist/lib/api-client/auth.d.ts.map +1 -1
  42. package/dist/lib/api-client/config.d.ts +2 -0
  43. package/dist/lib/api-client/config.d.ts.map +1 -1
  44. package/dist/lib/api-client/index.d.ts +51 -0
  45. package/dist/lib/api-client/index.d.ts.map +1 -1
  46. package/dist/lib/index.js +1007 -5
  47. package/dist/lib/index.js.map +22 -1
  48. package/dist/stores/index.js +693 -22
  49. package/dist/stores/index.js.map +30 -1
  50. package/dist/stores/onboardingStore.d.ts +2 -0
  51. package/dist/stores/onboardingStore.d.ts.map +1 -1
  52. package/dist/stores/toastStore.d.ts +1 -0
  53. package/dist/stores/toastStore.d.ts.map +1 -1
  54. package/dist/types/api.d.ts +2 -0
  55. package/dist/types/api.d.ts.map +1 -1
  56. package/dist/types/api.js +2 -2
  57. package/dist/types/api.js.map +9 -1
  58. package/package.json +4 -4
  59. package/dist/assets/provider-logos.js +0 -43
  60. package/dist/assets/provider-logos.js.map +0 -1
  61. package/dist/components/branch/BranchModal.js +0 -45
  62. package/dist/components/branch/BranchModal.js.map +0 -1
  63. package/dist/components/chat/ChatInput.js +0 -262
  64. package/dist/components/chat/ChatInput.js.map +0 -1
  65. package/dist/components/chat/ChatInputContainer.js +0 -295
  66. package/dist/components/chat/ChatInputContainer.js.map +0 -1
  67. package/dist/components/chat/ChatInputKeyHandler.js +0 -75
  68. package/dist/components/chat/ChatInputKeyHandler.js.map +0 -1
  69. package/dist/components/chat/CommandSuggestionsPopup.js +0 -45
  70. package/dist/components/chat/CommandSuggestionsPopup.js.map +0 -1
  71. package/dist/components/chat/ConfigModal.js +0 -46
  72. package/dist/components/chat/ConfigModal.js.map +0 -1
  73. package/dist/components/chat/ConfigSelector.js +0 -47
  74. package/dist/components/chat/ConfigSelector.js.map +0 -1
  75. package/dist/components/chat/FileMentionPopup.js +0 -138
  76. package/dist/components/chat/FileMentionPopup.js.map +0 -1
  77. package/dist/components/chat/ShortcutsModal.js +0 -275
  78. package/dist/components/chat/ShortcutsModal.js.map +0 -1
  79. package/dist/components/chat/StopButton.js +0 -25
  80. package/dist/components/chat/StopButton.js.map +0 -1
  81. package/dist/components/chat/UnifiedAgentSelector.js +0 -107
  82. package/dist/components/chat/UnifiedAgentSelector.js.map +0 -1
  83. package/dist/components/chat/UnifiedModelSelector.js +0 -197
  84. package/dist/components/chat/UnifiedModelSelector.js.map +0 -1
  85. package/dist/components/common/ProviderLogo.js +0 -30
  86. package/dist/components/common/ProviderLogo.js.map +0 -1
  87. package/dist/components/common/StatusIndicator.js +0 -54
  88. package/dist/components/common/StatusIndicator.js.map +0 -1
  89. package/dist/components/common/UsageModal.js +0 -55
  90. package/dist/components/common/UsageModal.js.map +0 -1
  91. package/dist/components/common/UsageRing.js +0 -22
  92. package/dist/components/common/UsageRing.js.map +0 -1
  93. package/dist/components/file-browser/FileBrowserSidebar.js +0 -50
  94. package/dist/components/file-browser/FileBrowserSidebar.js.map +0 -1
  95. package/dist/components/file-browser/FileBrowserSidebarToggle.js +0 -12
  96. package/dist/components/file-browser/FileBrowserSidebarToggle.js.map +0 -1
  97. package/dist/components/file-browser/FileViewerPanel.js +0 -85
  98. package/dist/components/file-browser/FileViewerPanel.js.map +0 -1
  99. package/dist/components/file-browser/QuickFilePicker.js +0 -118
  100. package/dist/components/file-browser/QuickFilePicker.js.map +0 -1
  101. package/dist/components/git/GitCommitModal.js +0 -70
  102. package/dist/components/git/GitCommitModal.js.map +0 -1
  103. package/dist/components/git/GitDiffPanel.js +0 -60
  104. package/dist/components/git/GitDiffPanel.js.map +0 -1
  105. package/dist/components/git/GitDiffViewer.js +0 -224
  106. package/dist/components/git/GitDiffViewer.js.map +0 -1
  107. package/dist/components/git/GitFileItem.js +0 -145
  108. package/dist/components/git/GitFileItem.js.map +0 -1
  109. package/dist/components/git/GitFileList.js +0 -108
  110. package/dist/components/git/GitFileList.js.map +0 -1
  111. package/dist/components/git/GitSidebar.js +0 -156
  112. package/dist/components/git/GitSidebar.js.map +0 -1
  113. package/dist/components/git/GitSidebarToggle.js +0 -18
  114. package/dist/components/git/GitSidebarToggle.js.map +0 -1
  115. package/dist/components/mcp/AddMCPServerModal.js +0 -166
  116. package/dist/components/mcp/AddMCPServerModal.js.map +0 -1
  117. package/dist/components/mcp/MCPSidebar.js +0 -192
  118. package/dist/components/mcp/MCPSidebar.js.map +0 -1
  119. package/dist/components/mcp/MCPSidebarToggle.js +0 -14
  120. package/dist/components/mcp/MCPSidebarToggle.js.map +0 -1
  121. package/dist/components/mcp/index.js +0 -4
  122. package/dist/components/mcp/index.js.map +0 -1
  123. package/dist/components/messages/AssistantMessageGroup.js +0 -176
  124. package/dist/components/messages/AssistantMessageGroup.js.map +0 -1
  125. package/dist/components/messages/MessagePartItem.js +0 -362
  126. package/dist/components/messages/MessagePartItem.js.map +0 -1
  127. package/dist/components/messages/MessageThread.js +0 -239
  128. package/dist/components/messages/MessageThread.js.map +0 -1
  129. package/dist/components/messages/MessageThreadContainer.js +0 -22
  130. package/dist/components/messages/MessageThreadContainer.js.map +0 -1
  131. package/dist/components/messages/ToolApprovalCard.js +0 -143
  132. package/dist/components/messages/ToolApprovalCard.js.map +0 -1
  133. package/dist/components/messages/TopupApprovalCard.js +0 -52
  134. package/dist/components/messages/TopupApprovalCard.js.map +0 -1
  135. package/dist/components/messages/UserMessageGroup.js +0 -132
  136. package/dist/components/messages/UserMessageGroup.js.map +0 -1
  137. package/dist/components/messages/renderers/ApplyPatchRenderer.js +0 -55
  138. package/dist/components/messages/renderers/ApplyPatchRenderer.js.map +0 -1
  139. package/dist/components/messages/renderers/BashRenderer.js +0 -55
  140. package/dist/components/messages/renderers/BashRenderer.js.map +0 -1
  141. package/dist/components/messages/renderers/DatabaseToolRenderer.js +0 -151
  142. package/dist/components/messages/renderers/DatabaseToolRenderer.js.map +0 -1
  143. package/dist/components/messages/renderers/DebugRenderer.js +0 -5
  144. package/dist/components/messages/renderers/DebugRenderer.js.map +0 -1
  145. package/dist/components/messages/renderers/DiffView.js +0 -206
  146. package/dist/components/messages/renderers/DiffView.js.map +0 -1
  147. package/dist/components/messages/renderers/EditRenderer.js +0 -25
  148. package/dist/components/messages/renderers/EditRenderer.js.map +0 -1
  149. package/dist/components/messages/renderers/ErrorRenderer.js +0 -157
  150. package/dist/components/messages/renderers/ErrorRenderer.js.map +0 -1
  151. package/dist/components/messages/renderers/FinishRenderer.js +0 -7
  152. package/dist/components/messages/renderers/FinishRenderer.js.map +0 -1
  153. package/dist/components/messages/renderers/GenericRenderer.js +0 -50
  154. package/dist/components/messages/renderers/GenericRenderer.js.map +0 -1
  155. package/dist/components/messages/renderers/GitCommitRenderer.js +0 -21
  156. package/dist/components/messages/renderers/GitCommitRenderer.js.map +0 -1
  157. package/dist/components/messages/renderers/GitDiffRenderer.js +0 -34
  158. package/dist/components/messages/renderers/GitDiffRenderer.js.map +0 -1
  159. package/dist/components/messages/renderers/GitStatusRenderer.js +0 -60
  160. package/dist/components/messages/renderers/GitStatusRenderer.js.map +0 -1
  161. package/dist/components/messages/renderers/ListRenderer.js +0 -28
  162. package/dist/components/messages/renderers/ListRenderer.js.map +0 -1
  163. package/dist/components/messages/renderers/LoadMcpToolsRenderer.js +0 -20
  164. package/dist/components/messages/renderers/LoadMcpToolsRenderer.js.map +0 -1
  165. package/dist/components/messages/renderers/McpToolRenderer.js +0 -68
  166. package/dist/components/messages/renderers/McpToolRenderer.js.map +0 -1
  167. package/dist/components/messages/renderers/ProgressUpdateRenderer.js +0 -9
  168. package/dist/components/messages/renderers/ProgressUpdateRenderer.js.map +0 -1
  169. package/dist/components/messages/renderers/ReadRenderer.js +0 -87
  170. package/dist/components/messages/renderers/ReadRenderer.js.map +0 -1
  171. package/dist/components/messages/renderers/ReasoningRenderer.js +0 -34
  172. package/dist/components/messages/renderers/ReasoningRenderer.js.map +0 -1
  173. package/dist/components/messages/renderers/SearchRenderer.js +0 -52
  174. package/dist/components/messages/renderers/SearchRenderer.js.map +0 -1
  175. package/dist/components/messages/renderers/SkillRenderer.js +0 -36
  176. package/dist/components/messages/renderers/SkillRenderer.js.map +0 -1
  177. package/dist/components/messages/renderers/TerminalRenderer.js +0 -84
  178. package/dist/components/messages/renderers/TerminalRenderer.js.map +0 -1
  179. package/dist/components/messages/renderers/TodosRenderer.js +0 -15
  180. package/dist/components/messages/renderers/TodosRenderer.js.map +0 -1
  181. package/dist/components/messages/renderers/ToolErrorDisplay.js +0 -10
  182. package/dist/components/messages/renderers/ToolErrorDisplay.js.map +0 -1
  183. package/dist/components/messages/renderers/TreeRenderer.js +0 -33
  184. package/dist/components/messages/renderers/TreeRenderer.js.map +0 -1
  185. package/dist/components/messages/renderers/WebSearchRenderer.js +0 -29
  186. package/dist/components/messages/renderers/WebSearchRenderer.js.map +0 -1
  187. package/dist/components/messages/renderers/WriteRenderer.js +0 -28
  188. package/dist/components/messages/renderers/WriteRenderer.js.map +0 -1
  189. package/dist/components/messages/renderers/index.js +0 -129
  190. package/dist/components/messages/renderers/index.js.map +0 -1
  191. package/dist/components/messages/renderers/shared/CopyButton.js +0 -27
  192. package/dist/components/messages/renderers/shared/CopyButton.js.map +0 -1
  193. package/dist/components/messages/renderers/shared/ImagePreview.js +0 -14
  194. package/dist/components/messages/renderers/shared/ImagePreview.js.map +0 -1
  195. package/dist/components/messages/renderers/shared/ToolContentBox.js +0 -9
  196. package/dist/components/messages/renderers/shared/ToolContentBox.js.map +0 -1
  197. package/dist/components/messages/renderers/shared/ToolHeader.js +0 -69
  198. package/dist/components/messages/renderers/shared/ToolHeader.js.map +0 -1
  199. package/dist/components/messages/renderers/shared/index.js +0 -5
  200. package/dist/components/messages/renderers/shared/index.js.map +0 -1
  201. package/dist/components/messages/renderers/types.js +0 -2
  202. package/dist/components/messages/renderers/types.js.map +0 -1
  203. package/dist/components/messages/renderers/utils.js +0 -60
  204. package/dist/components/messages/renderers/utils.js.map +0 -1
  205. package/dist/components/onboarding/OnboardingModal.js +0 -22
  206. package/dist/components/onboarding/OnboardingModal.js.map +0 -1
  207. package/dist/components/onboarding/index.js +0 -4
  208. package/dist/components/onboarding/index.js.map +0 -1
  209. package/dist/components/onboarding/steps/DefaultsStep.js +0 -104
  210. package/dist/components/onboarding/steps/DefaultsStep.js.map +0 -1
  211. package/dist/components/onboarding/steps/ProviderSetupStep.js +0 -307
  212. package/dist/components/onboarding/steps/ProviderSetupStep.js.map +0 -1
  213. package/dist/components/research/ResearchSidebar.js +0 -288
  214. package/dist/components/research/ResearchSidebar.js.map +0 -1
  215. package/dist/components/research/ResearchSidebarToggle.js +0 -15
  216. package/dist/components/research/ResearchSidebarToggle.js.map +0 -1
  217. package/dist/components/research/index.js +0 -3
  218. package/dist/components/research/index.js.map +0 -1
  219. package/dist/components/session-files/SessionFilesDiffPanel.js +0 -345
  220. package/dist/components/session-files/SessionFilesDiffPanel.js.map +0 -1
  221. package/dist/components/session-files/SessionFilesSidebar.js +0 -87
  222. package/dist/components/session-files/SessionFilesSidebar.js.map +0 -1
  223. package/dist/components/session-files/SessionFilesSidebarToggle.js +0 -15
  224. package/dist/components/session-files/SessionFilesSidebarToggle.js.map +0 -1
  225. package/dist/components/session-files/index.js +0 -4
  226. package/dist/components/session-files/index.js.map +0 -1
  227. package/dist/components/sessions/EditableTitle.js +0 -40
  228. package/dist/components/sessions/EditableTitle.js.map +0 -1
  229. package/dist/components/sessions/LeanHeader.js +0 -70
  230. package/dist/components/sessions/LeanHeader.js.map +0 -1
  231. package/dist/components/sessions/SessionHeader.js +0 -75
  232. package/dist/components/sessions/SessionHeader.js.map +0 -1
  233. package/dist/components/sessions/SessionItem.js +0 -28
  234. package/dist/components/sessions/SessionItem.js.map +0 -1
  235. package/dist/components/sessions/SessionListContainer.js +0 -86
  236. package/dist/components/sessions/SessionListContainer.js.map +0 -1
  237. package/dist/components/settings/SettingsSidebar.js +0 -211
  238. package/dist/components/settings/SettingsSidebar.js.map +0 -1
  239. package/dist/components/settings/SettingsSidebarToggle.js +0 -12
  240. package/dist/components/settings/SettingsSidebarToggle.js.map +0 -1
  241. package/dist/components/settings/SetuTopupModal.js +0 -306
  242. package/dist/components/settings/SetuTopupModal.js.map +0 -1
  243. package/dist/components/skills/SkillViewerPanel.js +0 -89
  244. package/dist/components/skills/SkillViewerPanel.js.map +0 -1
  245. package/dist/components/skills/SkillsSidebar.js +0 -59
  246. package/dist/components/skills/SkillsSidebar.js.map +0 -1
  247. package/dist/components/skills/SkillsSidebarToggle.js +0 -12
  248. package/dist/components/skills/SkillsSidebarToggle.js.map +0 -1
  249. package/dist/components/skills/index.js +0 -4
  250. package/dist/components/skills/index.js.map +0 -1
  251. package/dist/components/terminals/TerminalPanelToggle.js +0 -13
  252. package/dist/components/terminals/TerminalPanelToggle.js.map +0 -1
  253. package/dist/components/terminals/TerminalTabBar.js +0 -22
  254. package/dist/components/terminals/TerminalTabBar.js.map +0 -1
  255. package/dist/components/terminals/TerminalViewer.js +0 -371
  256. package/dist/components/terminals/TerminalViewer.js.map +0 -1
  257. package/dist/components/terminals/TerminalsPanel.js +0 -134
  258. package/dist/components/terminals/TerminalsPanel.js.map +0 -1
  259. package/dist/components/terminals/index.js +0 -11
  260. package/dist/components/terminals/index.js.map +0 -1
  261. package/dist/components/tunnel/TunnelSidebar.js +0 -55
  262. package/dist/components/tunnel/TunnelSidebar.js.map +0 -1
  263. package/dist/components/tunnel/TunnelSidebarToggle.js +0 -14
  264. package/dist/components/tunnel/TunnelSidebarToggle.js.map +0 -1
  265. package/dist/components/tunnel/index.js +0 -3
  266. package/dist/components/tunnel/index.js.map +0 -1
  267. package/dist/components/ui/Button.js +0 -19
  268. package/dist/components/ui/Button.js.map +0 -1
  269. package/dist/components/ui/Card.js +0 -7
  270. package/dist/components/ui/Card.js.map +0 -1
  271. package/dist/components/ui/ConfirmationDialog.js +0 -72
  272. package/dist/components/ui/ConfirmationDialog.js.map +0 -1
  273. package/dist/components/ui/Input.js +0 -7
  274. package/dist/components/ui/Input.js.map +0 -1
  275. package/dist/components/ui/Modal.js +0 -51
  276. package/dist/components/ui/Modal.js.map +0 -1
  277. package/dist/components/ui/ResizeHandle.js +0 -39
  278. package/dist/components/ui/ResizeHandle.js.map +0 -1
  279. package/dist/components/ui/Textarea.js +0 -7
  280. package/dist/components/ui/Textarea.js.map +0 -1
  281. package/dist/components/ui/Toaster.js +0 -41
  282. package/dist/components/ui/Toaster.js.map +0 -1
  283. package/dist/components/ui/ToolApprovalDialog.js +0 -57
  284. package/dist/components/ui/ToolApprovalDialog.js.map +0 -1
  285. package/dist/hooks/useAuthStatus.js +0 -247
  286. package/dist/hooks/useAuthStatus.js.map +0 -1
  287. package/dist/hooks/useBranch.js +0 -44
  288. package/dist/hooks/useBranch.js.map +0 -1
  289. package/dist/hooks/useCommandSuggestions.js +0 -86
  290. package/dist/hooks/useCommandSuggestions.js.map +0 -1
  291. package/dist/hooks/useConfig.js +0 -32
  292. package/dist/hooks/useConfig.js.map +0 -1
  293. package/dist/hooks/useFileBrowser.js +0 -30
  294. package/dist/hooks/useFileBrowser.js.map +0 -1
  295. package/dist/hooks/useFileMention.js +0 -56
  296. package/dist/hooks/useFileMention.js.map +0 -1
  297. package/dist/hooks/useFileUpload.js +0 -317
  298. package/dist/hooks/useFileUpload.js.map +0 -1
  299. package/dist/hooks/useFiles.js +0 -15
  300. package/dist/hooks/useFiles.js.map +0 -1
  301. package/dist/hooks/useGit.js +0 -149
  302. package/dist/hooks/useGit.js.map +0 -1
  303. package/dist/hooks/useImageUpload.js +0 -197
  304. package/dist/hooks/useImageUpload.js.map +0 -1
  305. package/dist/hooks/useKeyboardShortcuts.js +0 -249
  306. package/dist/hooks/useKeyboardShortcuts.js.map +0 -1
  307. package/dist/hooks/useMCP.js +0 -202
  308. package/dist/hooks/useMCP.js.map +0 -1
  309. package/dist/hooks/useMessages.js +0 -26
  310. package/dist/hooks/useMessages.js.map +0 -1
  311. package/dist/hooks/usePreferences.js +0 -61
  312. package/dist/hooks/usePreferences.js.map +0 -1
  313. package/dist/hooks/useProviderUsage.js +0 -44
  314. package/dist/hooks/useProviderUsage.js.map +0 -1
  315. package/dist/hooks/useQueueState.js +0 -31
  316. package/dist/hooks/useQueueState.js.map +0 -1
  317. package/dist/hooks/useResearch.js +0 -139
  318. package/dist/hooks/useResearch.js.map +0 -1
  319. package/dist/hooks/useSessionFiles.js +0 -15
  320. package/dist/hooks/useSessionFiles.js.map +0 -1
  321. package/dist/hooks/useSessionStream.js +0 -516
  322. package/dist/hooks/useSessionStream.js.map +0 -1
  323. package/dist/hooks/useSessions.js +0 -83
  324. package/dist/hooks/useSessions.js.map +0 -1
  325. package/dist/hooks/useSetuBalance.js +0 -71
  326. package/dist/hooks/useSetuBalance.js.map +0 -1
  327. package/dist/hooks/useSetuPayments.js +0 -171
  328. package/dist/hooks/useSetuPayments.js.map +0 -1
  329. package/dist/hooks/useShareStatus.js +0 -12
  330. package/dist/hooks/useShareStatus.js.map +0 -1
  331. package/dist/hooks/useSkills.js +0 -54
  332. package/dist/hooks/useSkills.js.map +0 -1
  333. package/dist/hooks/useTerminals.js +0 -67
  334. package/dist/hooks/useTerminals.js.map +0 -1
  335. package/dist/hooks/useTheme.js +0 -57
  336. package/dist/hooks/useTheme.js.map +0 -1
  337. package/dist/hooks/useToolApprovalShortcuts.js +0 -88
  338. package/dist/hooks/useToolApprovalShortcuts.js.map +0 -1
  339. package/dist/hooks/useTopupCallback.js +0 -74
  340. package/dist/hooks/useTopupCallback.js.map +0 -1
  341. package/dist/hooks/useTunnel.js +0 -158
  342. package/dist/hooks/useTunnel.js.map +0 -1
  343. package/dist/hooks/useVimMode.js +0 -298
  344. package/dist/hooks/useVimMode.js.map +0 -1
  345. package/dist/hooks/useWorkingDirectory.js +0 -34
  346. package/dist/hooks/useWorkingDirectory.js.map +0 -1
  347. package/dist/lib/api-client/approval.js +0 -25
  348. package/dist/lib/api-client/approval.js.map +0 -1
  349. package/dist/lib/api-client/auth.js +0 -111
  350. package/dist/lib/api-client/auth.js.map +0 -1
  351. package/dist/lib/api-client/branches.js +0 -45
  352. package/dist/lib/api-client/branches.js.map +0 -1
  353. package/dist/lib/api-client/config.js +0 -38
  354. package/dist/lib/api-client/config.js.map +0 -1
  355. package/dist/lib/api-client/files.js +0 -35
  356. package/dist/lib/api-client/files.js.map +0 -1
  357. package/dist/lib/api-client/git.js +0 -154
  358. package/dist/lib/api-client/git.js.map +0 -1
  359. package/dist/lib/api-client/index.js +0 -88
  360. package/dist/lib/api-client/index.js.map +0 -1
  361. package/dist/lib/api-client/sessions.js +0 -106
  362. package/dist/lib/api-client/sessions.js.map +0 -1
  363. package/dist/lib/api-client/setu.js +0 -144
  364. package/dist/lib/api-client/setu.js.map +0 -1
  365. package/dist/lib/api-client/skills.js +0 -31
  366. package/dist/lib/api-client/skills.js.map +0 -1
  367. package/dist/lib/api-client/utils.js +0 -65
  368. package/dist/lib/api-client/utils.js.map +0 -1
  369. package/dist/lib/commands.js +0 -124
  370. package/dist/lib/commands.js.map +0 -1
  371. package/dist/lib/config.js +0 -28
  372. package/dist/lib/config.js.map +0 -1
  373. package/dist/lib/nerd-font.js +0 -55
  374. package/dist/lib/nerd-font.js.map +0 -1
  375. package/dist/lib/open-url.js +0 -9
  376. package/dist/lib/open-url.js.map +0 -1
  377. package/dist/lib/parseResearchContext.js +0 -30
  378. package/dist/lib/parseResearchContext.js.map +0 -1
  379. package/dist/lib/sse-client.js +0 -113
  380. package/dist/lib/sse-client.js.map +0 -1
  381. package/dist/stores/confirmationStore.js +0 -27
  382. package/dist/stores/confirmationStore.js.map +0 -1
  383. package/dist/stores/fileBrowserStore.js +0 -63
  384. package/dist/stores/fileBrowserStore.js.map +0 -1
  385. package/dist/stores/filePickerStore.js +0 -8
  386. package/dist/stores/filePickerStore.js.map +0 -1
  387. package/dist/stores/focusStore.js +0 -12
  388. package/dist/stores/focusStore.js.map +0 -1
  389. package/dist/stores/gitStore.js +0 -63
  390. package/dist/stores/gitStore.js.map +0 -1
  391. package/dist/stores/mcpStore.js +0 -63
  392. package/dist/stores/mcpStore.js.map +0 -1
  393. package/dist/stores/onboardingStore.js +0 -38
  394. package/dist/stores/onboardingStore.js.map +0 -1
  395. package/dist/stores/panelWidthStore.js +0 -12
  396. package/dist/stores/panelWidthStore.js.map +0 -1
  397. package/dist/stores/pendingResearchStore.js +0 -38
  398. package/dist/stores/pendingResearchStore.js.map +0 -1
  399. package/dist/stores/queueStore.js +0 -11
  400. package/dist/stores/queueStore.js.map +0 -1
  401. package/dist/stores/researchStore.js +0 -54
  402. package/dist/stores/researchStore.js.map +0 -1
  403. package/dist/stores/sessionFilesStore.js +0 -62
  404. package/dist/stores/sessionFilesStore.js.map +0 -1
  405. package/dist/stores/settingsStore.js +0 -29
  406. package/dist/stores/settingsStore.js.map +0 -1
  407. package/dist/stores/setuStore.js +0 -29
  408. package/dist/stores/setuStore.js.map +0 -1
  409. package/dist/stores/sidebarStore.js +0 -10
  410. package/dist/stores/sidebarStore.js.map +0 -1
  411. package/dist/stores/skillsStore.js +0 -46
  412. package/dist/stores/skillsStore.js.map +0 -1
  413. package/dist/stores/terminalStore.js +0 -32
  414. package/dist/stores/terminalStore.js.map +0 -1
  415. package/dist/stores/toastStore.js +0 -46
  416. package/dist/stores/toastStore.js.map +0 -1
  417. package/dist/stores/toolApprovalStore.js +0 -16
  418. package/dist/stores/toolApprovalStore.js.map +0 -1
  419. package/dist/stores/topupApprovalStore.js +0 -11
  420. package/dist/stores/topupApprovalStore.js.map +0 -1
  421. package/dist/stores/tunnelStore.js +0 -55
  422. package/dist/stores/tunnelStore.js.map +0 -1
  423. package/dist/stores/usageStore.js +0 -14
  424. package/dist/stores/usageStore.js.map +0 -1
@@ -1,516 +0,0 @@
1
- import { useEffect, useRef } from 'react';
2
- import { useQueryClient } from '@tanstack/react-query';
3
- import { SSEClient } from '../lib/sse-client';
4
- import { apiClient } from '../lib/api-client';
5
- import { useToolApprovalStore } from '../stores/toolApprovalStore';
6
- import { sessionsQueryKey } from './useSessions';
7
- export function useSessionStream(sessionId) {
8
- const queryClient = useQueryClient();
9
- const clientRef = useRef(null);
10
- const assistantMessageIdRef = useRef(null);
11
- const lastInvalidationRef = useRef(0);
12
- const { addPendingApproval, removePendingApproval, updatePendingApproval, setPendingApprovals, } = useToolApprovalStore();
13
- useEffect(() => {
14
- // console.log('[useSessionStream] Hook called with sessionId:', sessionId)
15
- if (!sessionId) {
16
- console.log('[useSessionStream] No sessionId, skipping');
17
- return;
18
- }
19
- assistantMessageIdRef.current = null;
20
- let lastSessionInvalidation = 0;
21
- // Fetch pending approvals from server for this session
22
- apiClient
23
- .getPendingApprovals(sessionId)
24
- .then((result) => {
25
- if (result.ok && result.pending.length > 0) {
26
- setPendingApprovals(result.pending);
27
- }
28
- else {
29
- setPendingApprovals([]);
30
- }
31
- })
32
- .catch(() => {
33
- setPendingApprovals([]);
34
- });
35
- const client = new SSEClient();
36
- clientRef.current = client;
37
- const url = apiClient.getStreamUrl(sessionId);
38
- console.log('[useSessionStream] Connecting to stream:', url);
39
- client.connect(url);
40
- const resolveAssistantTargetIndex = (messages) => {
41
- if (assistantMessageIdRef.current) {
42
- const byId = messages.findIndex((message) => message.id === assistantMessageIdRef.current);
43
- if (byId !== -1)
44
- return byId;
45
- }
46
- for (let i = messages.length - 1; i >= 0; i -= 1) {
47
- const candidate = messages[i];
48
- if (candidate.role === 'assistant' && candidate.status !== 'complete') {
49
- return i;
50
- }
51
- }
52
- return -1;
53
- };
54
- const extractText = (part) => {
55
- if (part.contentJson &&
56
- typeof part.contentJson === 'object' &&
57
- !Array.isArray(part.contentJson) &&
58
- 'text' in part.contentJson) {
59
- return String(part.contentJson.text ?? '');
60
- }
61
- if (typeof part.content === 'string') {
62
- try {
63
- const parsed = JSON.parse(part.content);
64
- if (parsed && typeof parsed.text === 'string')
65
- return parsed.text;
66
- }
67
- catch { }
68
- return part.content;
69
- }
70
- return '';
71
- };
72
- const applyReasoningDelta = (payload) => {
73
- const messageId = typeof payload?.messageId === 'string' ? payload.messageId : null;
74
- const partId = typeof payload?.partId === 'string' ? payload.partId : null;
75
- const delta = typeof payload?.delta === 'string' ? payload.delta : null;
76
- if (!messageId || !partId || delta === null)
77
- return;
78
- queryClient.setQueryData(['messages', sessionId], (oldMessages) => {
79
- if (!oldMessages)
80
- return oldMessages;
81
- const nextMessages = [...oldMessages];
82
- const messageIndex = nextMessages.findIndex((message) => message.id === messageId);
83
- if (messageIndex === -1)
84
- return oldMessages;
85
- const targetMessage = nextMessages[messageIndex];
86
- const parts = targetMessage.parts ? [...targetMessage.parts] : [];
87
- let partIndex = parts.findIndex((part) => part.id === partId);
88
- const stepIndex = typeof payload?.stepIndex === 'number' ? payload.stepIndex : null;
89
- if (partIndex === -1) {
90
- const newPart = {
91
- id: partId,
92
- messageId,
93
- index: parts.length,
94
- stepIndex,
95
- type: 'reasoning',
96
- content: JSON.stringify({ text: delta }),
97
- contentJson: { text: delta },
98
- agent: targetMessage.agent,
99
- provider: targetMessage.provider,
100
- model: targetMessage.model,
101
- startedAt: Date.now(),
102
- completedAt: null,
103
- toolName: null,
104
- toolCallId: null,
105
- toolDurationMs: null,
106
- };
107
- parts.push(newPart);
108
- partIndex = parts.length - 1;
109
- }
110
- else {
111
- const existing = parts[partIndex];
112
- const previous = extractText(existing);
113
- const nextText = `${previous}${delta}`;
114
- parts[partIndex] = {
115
- ...existing,
116
- content: JSON.stringify({ text: nextText }),
117
- contentJson: { text: nextText },
118
- stepIndex: stepIndex ?? existing.stepIndex ?? null,
119
- completedAt: null,
120
- };
121
- }
122
- nextMessages[messageIndex] = { ...targetMessage, parts };
123
- return nextMessages;
124
- });
125
- };
126
- const applyMessageDelta = (payload) => {
127
- const messageId = typeof payload?.messageId === 'string' ? payload.messageId : null;
128
- const partId = typeof payload?.partId === 'string' ? payload.partId : null;
129
- const delta = typeof payload?.delta === 'string' ? payload.delta : null;
130
- if (!messageId || !partId || delta === null)
131
- return;
132
- queryClient.setQueryData(['messages', sessionId], (oldMessages) => {
133
- if (!oldMessages)
134
- return oldMessages;
135
- const nextMessages = [...oldMessages];
136
- const messageIndex = nextMessages.findIndex((message) => message.id === messageId);
137
- if (messageIndex === -1)
138
- return oldMessages;
139
- const targetMessage = nextMessages[messageIndex];
140
- const parts = targetMessage.parts ? [...targetMessage.parts] : [];
141
- let partIndex = parts.findIndex((part) => part.id === partId);
142
- const stepIndex = typeof payload?.stepIndex === 'number' ? payload.stepIndex : null;
143
- if (partIndex === -1) {
144
- const newPart = {
145
- id: partId,
146
- messageId,
147
- index: parts.length,
148
- stepIndex,
149
- type: 'text',
150
- content: JSON.stringify({ text: delta }),
151
- contentJson: { text: delta },
152
- agent: targetMessage.agent,
153
- provider: targetMessage.provider,
154
- model: targetMessage.model,
155
- startedAt: Date.now(),
156
- completedAt: null,
157
- toolName: null,
158
- toolCallId: null,
159
- toolDurationMs: null,
160
- };
161
- parts.push(newPart);
162
- partIndex = parts.length - 1;
163
- }
164
- else {
165
- const existing = parts[partIndex];
166
- const previous = extractText(existing);
167
- const nextText = `${previous}${delta}`;
168
- parts[partIndex] = {
169
- ...existing,
170
- content: JSON.stringify({ text: nextText }),
171
- contentJson: { text: nextText },
172
- stepIndex: stepIndex ?? existing.stepIndex ?? null,
173
- completedAt: null,
174
- };
175
- }
176
- nextMessages[messageIndex] = { ...targetMessage, parts };
177
- return nextMessages;
178
- });
179
- };
180
- const upsertEphemeralToolCall = (payload) => {
181
- if (!payload)
182
- return;
183
- const callId = typeof payload.callId === 'string' ? payload.callId : null;
184
- const name = typeof payload.name === 'string' ? payload.name : null;
185
- if (!name)
186
- return;
187
- queryClient.setQueryData(['messages', sessionId], (oldMessages) => {
188
- if (!oldMessages)
189
- return oldMessages;
190
- const nextMessages = [...oldMessages];
191
- let targetIndex = resolveAssistantTargetIndex(nextMessages);
192
- if (typeof payload.messageId === 'string') {
193
- const explicitIndex = nextMessages.findIndex((message) => message.id === payload.messageId);
194
- if (explicitIndex !== -1)
195
- targetIndex = explicitIndex;
196
- }
197
- if (targetIndex === -1)
198
- return oldMessages;
199
- const targetMessage = nextMessages[targetIndex];
200
- const parts = targetMessage.parts ? [...targetMessage.parts] : [];
201
- let partIndex = -1;
202
- if (callId) {
203
- partIndex = parts.findIndex((part) => part.toolCallId === callId && part.ephemeral);
204
- }
205
- // Only fallback to name match if we don't have a callId
206
- if (partIndex === -1 && !callId) {
207
- partIndex = parts.findIndex((part) => part.ephemeral && part.toolName === name);
208
- }
209
- const args = payload.args;
210
- const stepIndex = typeof payload.stepIndex === 'number' ? payload.stepIndex : null;
211
- const contentJsonBase = { name };
212
- if (callId)
213
- contentJsonBase.callId = callId;
214
- if (args !== undefined)
215
- contentJsonBase.args = args;
216
- if (partIndex === -1) {
217
- const newPart = {
218
- id: callId
219
- ? `ephemeral-tool-call-${callId}`
220
- : `ephemeral-tool-call-${name}-${Date.now()}`,
221
- messageId: targetMessage.id,
222
- index: parts.length,
223
- stepIndex,
224
- type: 'tool_call',
225
- content: JSON.stringify(contentJsonBase),
226
- contentJson: contentJsonBase,
227
- agent: targetMessage.agent,
228
- provider: targetMessage.provider,
229
- model: targetMessage.model,
230
- startedAt: Date.now(),
231
- completedAt: null,
232
- toolName: name,
233
- toolCallId: callId,
234
- toolDurationMs: null,
235
- ephemeral: true,
236
- };
237
- parts.push(newPart);
238
- }
239
- else {
240
- const existing = parts[partIndex];
241
- const nextContentJson = {
242
- ...(typeof existing.contentJson === 'object' &&
243
- !Array.isArray(existing.contentJson)
244
- ? existing.contentJson
245
- : {}),
246
- name,
247
- };
248
- if (callId)
249
- nextContentJson.callId = callId;
250
- if (args !== undefined)
251
- nextContentJson.args = args;
252
- parts[partIndex] = {
253
- ...existing,
254
- content: JSON.stringify(nextContentJson),
255
- contentJson: nextContentJson,
256
- stepIndex: stepIndex ?? existing.stepIndex ?? null,
257
- toolCallId: callId ?? existing.toolCallId,
258
- toolName: name,
259
- };
260
- }
261
- nextMessages[targetIndex] = { ...targetMessage, parts };
262
- return nextMessages;
263
- });
264
- };
265
- const removeEphemeralToolCall = (payload) => {
266
- const callId = typeof payload?.callId === 'string' ? payload.callId : null;
267
- if (!callId)
268
- return;
269
- queryClient.setQueryData(['messages', sessionId], (oldMessages) => {
270
- if (!oldMessages)
271
- return oldMessages;
272
- let changed = false;
273
- const nextMessages = oldMessages.map((message) => {
274
- if (!message.parts?.length)
275
- return message;
276
- const filtered = message.parts.filter((part) => !(part.ephemeral && part.toolCallId === callId));
277
- if (filtered.length === message.parts.length)
278
- return message;
279
- changed = true;
280
- return { ...message, parts: filtered };
281
- });
282
- return changed ? nextMessages : oldMessages;
283
- });
284
- };
285
- const clearEphemeralForMessage = (messageId) => {
286
- if (!messageId)
287
- return;
288
- queryClient.setQueryData(['messages', sessionId], (oldMessages) => {
289
- if (!oldMessages)
290
- return oldMessages;
291
- const targetIndex = oldMessages.findIndex((message) => message.id === messageId);
292
- if (targetIndex === -1)
293
- return oldMessages;
294
- const target = oldMessages[targetIndex];
295
- if (!target.parts?.some((part) => part.ephemeral))
296
- return oldMessages;
297
- const nextMessages = [...oldMessages];
298
- nextMessages[targetIndex] = {
299
- ...target,
300
- parts: target.parts?.filter((part) => !part.ephemeral) ?? [],
301
- };
302
- return nextMessages;
303
- });
304
- };
305
- const markMessageCompleted = (payload) => {
306
- const id = typeof payload?.id === 'string' ? payload.id : null;
307
- if (!id)
308
- return;
309
- queryClient.setQueryData(['messages', sessionId], (oldMessages) => {
310
- if (!oldMessages)
311
- return oldMessages;
312
- const nextMessages = [...oldMessages];
313
- const messageIndex = nextMessages.findIndex((message) => message.id === id);
314
- if (messageIndex === -1)
315
- return oldMessages;
316
- const existing = nextMessages[messageIndex];
317
- nextMessages[messageIndex] = {
318
- ...existing,
319
- status: 'complete',
320
- completedAt: Date.now(),
321
- };
322
- return nextMessages;
323
- });
324
- };
325
- // Throttle invalidations to prevent excessive re-renders
326
- // Only invalidate at most once every 500ms during streaming
327
- const throttledInvalidate = () => {
328
- const now = Date.now();
329
- if (now - lastInvalidationRef.current < 500) {
330
- return; // Skip if we invalidated less than 500ms ago
331
- }
332
- lastInvalidationRef.current = now;
333
- // console.log('[useSessionStream] Invalidating messages query (throttled)');
334
- queryClient.invalidateQueries({ queryKey: ['messages', sessionId] });
335
- };
336
- const invalidatingEvents = new Set([
337
- 'message.completed',
338
- 'message.updated',
339
- 'tool.result',
340
- 'finish-step',
341
- 'error',
342
- ]);
343
- const unsubscribe = client.on('*', (event) => {
344
- // console.log('[useSessionStream] Event received:', event);
345
- const payload = event.payload;
346
- switch (event.type) {
347
- case 'message.created': {
348
- const role = typeof payload?.role === 'string' ? payload.role : null;
349
- const id = typeof payload?.id === 'string' ? payload.id : null;
350
- if (role === 'assistant' && id) {
351
- assistantMessageIdRef.current = id;
352
- }
353
- if (id && role) {
354
- const agent = typeof payload?.agent === 'string' ? payload.agent : '';
355
- const provider = typeof payload?.provider === 'string' ? payload.provider : '';
356
- const model = typeof payload?.model === 'string' ? payload.model : '';
357
- queryClient.setQueryData(['messages', sessionId], (oldMessages) => {
358
- if (!oldMessages)
359
- return oldMessages;
360
- if (oldMessages.some((m) => m.id === id))
361
- return oldMessages;
362
- const newMessage = {
363
- id,
364
- sessionId,
365
- role: role,
366
- status: 'pending',
367
- agent,
368
- provider,
369
- model,
370
- createdAt: Date.now(),
371
- completedAt: null,
372
- latencyMs: null,
373
- promptTokens: null,
374
- completionTokens: null,
375
- totalTokens: null,
376
- error: null,
377
- parts: [],
378
- };
379
- const next = [...oldMessages, newMessage];
380
- next.sort((a, b) => a.createdAt - b.createdAt);
381
- return next;
382
- });
383
- throttledInvalidate();
384
- }
385
- break;
386
- }
387
- case 'message.part.delta': {
388
- applyMessageDelta(payload);
389
- break;
390
- }
391
- case 'reasoning.delta': {
392
- applyReasoningDelta(payload);
393
- break;
394
- }
395
- case 'message.completed': {
396
- const id = typeof payload?.id === 'string' ? payload.id : null;
397
- if (id && assistantMessageIdRef.current === id) {
398
- assistantMessageIdRef.current = null;
399
- }
400
- markMessageCompleted(payload);
401
- clearEphemeralForMessage(id);
402
- queryClient.invalidateQueries({ queryKey: sessionsQueryKey });
403
- break;
404
- }
405
- case 'tool.delta': {
406
- const channel = typeof payload?.channel === 'string' ? payload.channel : null;
407
- if (channel === 'input') {
408
- upsertEphemeralToolCall(payload);
409
- }
410
- break;
411
- }
412
- case 'tool.call': {
413
- upsertEphemeralToolCall(payload);
414
- break;
415
- }
416
- case 'tool.result': {
417
- removeEphemeralToolCall(payload);
418
- break;
419
- }
420
- case 'tool.approval.required': {
421
- const callId = typeof payload?.callId === 'string' ? payload.callId : null;
422
- const toolName = typeof payload?.toolName === 'string' ? payload.toolName : null;
423
- const messageId = typeof payload?.messageId === 'string' ? payload.messageId : null;
424
- const args = payload?.args;
425
- if (callId && toolName && messageId) {
426
- addPendingApproval({
427
- callId,
428
- toolName,
429
- args,
430
- messageId,
431
- createdAt: Date.now(),
432
- });
433
- }
434
- break;
435
- }
436
- case 'tool.approval.resolved': {
437
- const callId = typeof payload?.callId === 'string' ? payload.callId : null;
438
- if (callId) {
439
- removePendingApproval(callId);
440
- }
441
- break;
442
- }
443
- case 'tool.approval.updated': {
444
- const callId = typeof payload?.callId === 'string' ? payload.callId : null;
445
- const args = payload?.args;
446
- if (callId) {
447
- updatePendingApproval(callId, args);
448
- }
449
- break;
450
- }
451
- case 'error': {
452
- removeEphemeralToolCall(payload);
453
- const messageId = typeof payload?.messageId === 'string' ? payload.messageId : null;
454
- if (messageId) {
455
- clearEphemeralForMessage(messageId);
456
- }
457
- break;
458
- }
459
- case 'message.updated': {
460
- const id = typeof payload?.id === 'string' ? payload.id : null;
461
- const status = typeof payload?.status === 'string' ? payload.status : null;
462
- if (id && status) {
463
- queryClient.setQueryData(['messages', sessionId], (oldMessages) => {
464
- if (!oldMessages)
465
- return oldMessages;
466
- const idx = oldMessages.findIndex((m) => m.id === id);
467
- if (idx === -1)
468
- return oldMessages;
469
- const next = [...oldMessages];
470
- next[idx] = {
471
- ...next[idx],
472
- status: status,
473
- };
474
- return next;
475
- });
476
- }
477
- break;
478
- }
479
- case 'queue.updated': {
480
- const queueState = {
481
- currentMessageId: payload?.currentMessageId,
482
- queuedMessages: (payload?.queuedMessages ?? []),
483
- queueLength: (payload?.queueLength ?? 0),
484
- };
485
- queryClient.setQueryData(['queueState', sessionId], queueState);
486
- break;
487
- }
488
- default:
489
- break;
490
- }
491
- if (invalidatingEvents.has(event.type)) {
492
- // Use throttled invalidation instead of immediate
493
- throttledInvalidate();
494
- }
495
- if (event.type === 'finish-step') {
496
- const now = Date.now();
497
- if (now - lastSessionInvalidation >= 2000) {
498
- lastSessionInvalidation = now;
499
- queryClient.invalidateQueries({ queryKey: sessionsQueryKey });
500
- }
501
- }
502
- });
503
- return () => {
504
- unsubscribe();
505
- client.disconnect();
506
- };
507
- }, [
508
- sessionId,
509
- queryClient,
510
- addPendingApproval,
511
- removePendingApproval,
512
- setPendingApprovals,
513
- updatePendingApproval,
514
- ]);
515
- }
516
- //# sourceMappingURL=useSessionStream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSessionStream.js","sourceRoot":"","sources":["../../src/hooks/useSessionStream.ts"],"names":[],"mappings":"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"}
@@ -1,83 +0,0 @@
1
- import { useInfiniteQuery, useMutation, useQueryClient, } from '@tanstack/react-query';
2
- import { useMemo } from 'react';
3
- import { apiClient } from '../lib/api-client';
4
- const SESSIONS_PAGE_SIZE = 50;
5
- export const sessionsQueryKey = ['sessions', 'list'];
6
- export function useSessionsInfinite() {
7
- return useInfiniteQuery({
8
- queryKey: sessionsQueryKey,
9
- queryFn: ({ pageParam = 0 }) => apiClient.getSessionsPage({
10
- limit: SESSIONS_PAGE_SIZE,
11
- offset: pageParam,
12
- }),
13
- getNextPageParam: (lastPage) => lastPage.nextOffset ?? undefined,
14
- initialPageParam: 0,
15
- staleTime: 30_000,
16
- refetchInterval: 30_000,
17
- refetchOnWindowFocus: false,
18
- });
19
- }
20
- export function useSessions() {
21
- const query = useSessionsInfinite();
22
- const data = useMemo(() => {
23
- if (!query.data?.pages)
24
- return [];
25
- return query.data.pages.flatMap((p) => p.items ?? []);
26
- }, [query.data]);
27
- return {
28
- data,
29
- isLoading: query.isLoading,
30
- isError: query.isError,
31
- error: query.error,
32
- hasNextPage: query.hasNextPage,
33
- fetchNextPage: query.fetchNextPage,
34
- isFetchingNextPage: query.isFetchingNextPage,
35
- };
36
- }
37
- export function useSession(sessionId) {
38
- const { data: sessions } = useSessions();
39
- return sessions?.find((s) => s.id === sessionId);
40
- }
41
- export function useCreateSession() {
42
- const queryClient = useQueryClient();
43
- return useMutation({
44
- mutationFn: (data) => apiClient.createSession(data),
45
- onSuccess: (newSession) => {
46
- queryClient.setQueryData(sessionsQueryKey, (old) => {
47
- if (!old)
48
- return old;
49
- const firstPage = old.pages[0];
50
- if (!firstPage)
51
- return old;
52
- return {
53
- ...old,
54
- pages: [
55
- { ...firstPage, items: [newSession, ...firstPage.items] },
56
- ...old.pages.slice(1),
57
- ],
58
- };
59
- });
60
- queryClient.invalidateQueries({ queryKey: sessionsQueryKey });
61
- },
62
- });
63
- }
64
- export function useUpdateSession(sessionId) {
65
- const queryClient = useQueryClient();
66
- return useMutation({
67
- mutationFn: (data) => apiClient.updateSession(sessionId, data),
68
- onSuccess: async () => {
69
- await queryClient.invalidateQueries({ queryKey: sessionsQueryKey });
70
- await queryClient.invalidateQueries({ queryKey: ['session', sessionId] });
71
- },
72
- });
73
- }
74
- export function useDeleteSession() {
75
- const queryClient = useQueryClient();
76
- return useMutation({
77
- mutationFn: (sessionId) => apiClient.deleteSession(sessionId),
78
- onSuccess: () => {
79
- queryClient.invalidateQueries({ queryKey: sessionsQueryKey });
80
- },
81
- });
82
- }
83
- //# sourceMappingURL=useSessions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSessions.js","sourceRoot":"","sources":["../../src/hooks/useSessions.ts"],"names":[],"mappings":"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"}