@ottocode/web-sdk 0.1.226 → 0.1.228

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