@ottocode/web-sdk 0.1.173

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 (574) hide show
  1. package/README.md +187 -0
  2. package/dist/assets/fonts/JetBrainsMonoNerdFontMono-Bold.woff2 +0 -0
  3. package/dist/assets/fonts/JetBrainsMonoNerdFontMono-BoldItalic.woff2 +0 -0
  4. package/dist/assets/fonts/JetBrainsMonoNerdFontMono-Italic.woff2 +0 -0
  5. package/dist/assets/fonts/JetBrainsMonoNerdFontMono-Regular.woff2 +0 -0
  6. package/dist/assets/provider-logos.d.ts +12 -0
  7. package/dist/assets/provider-logos.d.ts.map +1 -0
  8. package/dist/assets/provider-logos.js +40 -0
  9. package/dist/assets/provider-logos.js.map +1 -0
  10. package/dist/components/branch/BranchModal.d.ts +11 -0
  11. package/dist/components/branch/BranchModal.d.ts.map +1 -0
  12. package/dist/components/branch/BranchModal.js +45 -0
  13. package/dist/components/branch/BranchModal.js.map +1 -0
  14. package/dist/components/chat/ChatInput.d.ts +35 -0
  15. package/dist/components/chat/ChatInput.d.ts.map +1 -0
  16. package/dist/components/chat/ChatInput.js +210 -0
  17. package/dist/components/chat/ChatInput.js.map +1 -0
  18. package/dist/components/chat/ChatInputContainer.d.ts +12 -0
  19. package/dist/components/chat/ChatInputContainer.d.ts.map +1 -0
  20. package/dist/components/chat/ChatInputContainer.js +295 -0
  21. package/dist/components/chat/ChatInputContainer.js.map +1 -0
  22. package/dist/components/chat/ChatInputKeyHandler.d.ts +27 -0
  23. package/dist/components/chat/ChatInputKeyHandler.d.ts.map +1 -0
  24. package/dist/components/chat/ChatInputKeyHandler.js +75 -0
  25. package/dist/components/chat/ChatInputKeyHandler.js.map +1 -0
  26. package/dist/components/chat/CommandSuggestionsPopup.d.ts +11 -0
  27. package/dist/components/chat/CommandSuggestionsPopup.d.ts.map +1 -0
  28. package/dist/components/chat/CommandSuggestionsPopup.js +43 -0
  29. package/dist/components/chat/CommandSuggestionsPopup.js.map +1 -0
  30. package/dist/components/chat/ConfigModal.d.ts +19 -0
  31. package/dist/components/chat/ConfigModal.d.ts.map +1 -0
  32. package/dist/components/chat/ConfigModal.js +47 -0
  33. package/dist/components/chat/ConfigModal.js.map +1 -0
  34. package/dist/components/chat/ConfigSelector.d.ts +11 -0
  35. package/dist/components/chat/ConfigSelector.d.ts.map +1 -0
  36. package/dist/components/chat/ConfigSelector.js +47 -0
  37. package/dist/components/chat/ConfigSelector.js.map +1 -0
  38. package/dist/components/chat/FileMentionPopup.d.ts +15 -0
  39. package/dist/components/chat/FileMentionPopup.d.ts.map +1 -0
  40. package/dist/components/chat/FileMentionPopup.js +123 -0
  41. package/dist/components/chat/FileMentionPopup.js.map +1 -0
  42. package/dist/components/chat/ShortcutsModal.d.ts +7 -0
  43. package/dist/components/chat/ShortcutsModal.d.ts.map +1 -0
  44. package/dist/components/chat/ShortcutsModal.js +275 -0
  45. package/dist/components/chat/ShortcutsModal.js.map +1 -0
  46. package/dist/components/chat/StopButton.d.ts +8 -0
  47. package/dist/components/chat/StopButton.d.ts.map +1 -0
  48. package/dist/components/chat/StopButton.js +25 -0
  49. package/dist/components/chat/StopButton.js.map +1 -0
  50. package/dist/components/chat/UnifiedAgentSelector.d.ts +12 -0
  51. package/dist/components/chat/UnifiedAgentSelector.d.ts.map +1 -0
  52. package/dist/components/chat/UnifiedAgentSelector.js +107 -0
  53. package/dist/components/chat/UnifiedAgentSelector.js.map +1 -0
  54. package/dist/components/chat/UnifiedModelSelector.d.ts +12 -0
  55. package/dist/components/chat/UnifiedModelSelector.d.ts.map +1 -0
  56. package/dist/components/chat/UnifiedModelSelector.js +198 -0
  57. package/dist/components/chat/UnifiedModelSelector.js.map +1 -0
  58. package/dist/components/common/ProviderLogo.d.ts +8 -0
  59. package/dist/components/common/ProviderLogo.d.ts.map +1 -0
  60. package/dist/components/common/ProviderLogo.js +29 -0
  61. package/dist/components/common/ProviderLogo.js.map +1 -0
  62. package/dist/components/common/StatusIndicator.d.ts +10 -0
  63. package/dist/components/common/StatusIndicator.d.ts.map +1 -0
  64. package/dist/components/common/StatusIndicator.js +57 -0
  65. package/dist/components/common/StatusIndicator.js.map +1 -0
  66. package/dist/components/git/GitCommitModal.d.ts +2 -0
  67. package/dist/components/git/GitCommitModal.d.ts.map +1 -0
  68. package/dist/components/git/GitCommitModal.js +70 -0
  69. package/dist/components/git/GitCommitModal.js.map +1 -0
  70. package/dist/components/git/GitDiffPanel.d.ts +2 -0
  71. package/dist/components/git/GitDiffPanel.d.ts.map +1 -0
  72. package/dist/components/git/GitDiffPanel.js +54 -0
  73. package/dist/components/git/GitDiffPanel.js.map +1 -0
  74. package/dist/components/git/GitDiffViewer.d.ts +7 -0
  75. package/dist/components/git/GitDiffViewer.d.ts.map +1 -0
  76. package/dist/components/git/GitDiffViewer.js +203 -0
  77. package/dist/components/git/GitDiffViewer.js.map +1 -0
  78. package/dist/components/git/GitFileItem.d.ts +9 -0
  79. package/dist/components/git/GitFileItem.d.ts.map +1 -0
  80. package/dist/components/git/GitFileItem.js +145 -0
  81. package/dist/components/git/GitFileItem.js.map +1 -0
  82. package/dist/components/git/GitFileList.d.ts +7 -0
  83. package/dist/components/git/GitFileList.d.ts.map +1 -0
  84. package/dist/components/git/GitFileList.js +108 -0
  85. package/dist/components/git/GitFileList.js.map +1 -0
  86. package/dist/components/git/GitSidebar.d.ts +2 -0
  87. package/dist/components/git/GitSidebar.d.ts.map +1 -0
  88. package/dist/components/git/GitSidebar.js +52 -0
  89. package/dist/components/git/GitSidebar.js.map +1 -0
  90. package/dist/components/git/GitSidebarToggle.d.ts +2 -0
  91. package/dist/components/git/GitSidebarToggle.d.ts.map +1 -0
  92. package/dist/components/git/GitSidebarToggle.js +16 -0
  93. package/dist/components/git/GitSidebarToggle.js.map +1 -0
  94. package/dist/components/index.d.ts +47 -0
  95. package/dist/components/index.d.ts.map +1 -0
  96. package/dist/components/index.js +60 -0
  97. package/dist/components/index.js.map +1 -0
  98. package/dist/components/messages/AssistantMessageGroup.d.ts +17 -0
  99. package/dist/components/messages/AssistantMessageGroup.d.ts.map +1 -0
  100. package/dist/components/messages/AssistantMessageGroup.js +176 -0
  101. package/dist/components/messages/AssistantMessageGroup.js.map +1 -0
  102. package/dist/components/messages/MessagePartItem.d.ts +20 -0
  103. package/dist/components/messages/MessagePartItem.d.ts.map +1 -0
  104. package/dist/components/messages/MessagePartItem.js +353 -0
  105. package/dist/components/messages/MessagePartItem.js.map +1 -0
  106. package/dist/components/messages/MessageThread.d.ts +12 -0
  107. package/dist/components/messages/MessageThread.d.ts.map +1 -0
  108. package/dist/components/messages/MessageThread.js +239 -0
  109. package/dist/components/messages/MessageThread.js.map +1 -0
  110. package/dist/components/messages/MessageThreadContainer.d.ts +7 -0
  111. package/dist/components/messages/MessageThreadContainer.d.ts.map +1 -0
  112. package/dist/components/messages/MessageThreadContainer.js +22 -0
  113. package/dist/components/messages/MessageThreadContainer.js.map +1 -0
  114. package/dist/components/messages/ToolApprovalCard.d.ts +11 -0
  115. package/dist/components/messages/ToolApprovalCard.d.ts.map +1 -0
  116. package/dist/components/messages/ToolApprovalCard.js +139 -0
  117. package/dist/components/messages/ToolApprovalCard.js.map +1 -0
  118. package/dist/components/messages/TopupApprovalCard.d.ts +9 -0
  119. package/dist/components/messages/TopupApprovalCard.d.ts.map +1 -0
  120. package/dist/components/messages/TopupApprovalCard.js +51 -0
  121. package/dist/components/messages/TopupApprovalCard.js.map +1 -0
  122. package/dist/components/messages/UserMessageGroup.d.ts +10 -0
  123. package/dist/components/messages/UserMessageGroup.d.ts.map +1 -0
  124. package/dist/components/messages/UserMessageGroup.js +132 -0
  125. package/dist/components/messages/UserMessageGroup.js.map +1 -0
  126. package/dist/components/messages/renderers/ApplyPatchRenderer.d.ts +3 -0
  127. package/dist/components/messages/renderers/ApplyPatchRenderer.d.ts.map +1 -0
  128. package/dist/components/messages/renderers/ApplyPatchRenderer.js +55 -0
  129. package/dist/components/messages/renderers/ApplyPatchRenderer.js.map +1 -0
  130. package/dist/components/messages/renderers/BashRenderer.d.ts +3 -0
  131. package/dist/components/messages/renderers/BashRenderer.d.ts.map +1 -0
  132. package/dist/components/messages/renderers/BashRenderer.js +55 -0
  133. package/dist/components/messages/renderers/BashRenderer.js.map +1 -0
  134. package/dist/components/messages/renderers/DatabaseToolRenderer.d.ts +8 -0
  135. package/dist/components/messages/renderers/DatabaseToolRenderer.d.ts.map +1 -0
  136. package/dist/components/messages/renderers/DatabaseToolRenderer.js +151 -0
  137. package/dist/components/messages/renderers/DatabaseToolRenderer.js.map +1 -0
  138. package/dist/components/messages/renderers/DebugRenderer.d.ts +5 -0
  139. package/dist/components/messages/renderers/DebugRenderer.d.ts.map +1 -0
  140. package/dist/components/messages/renderers/DebugRenderer.js +5 -0
  141. package/dist/components/messages/renderers/DebugRenderer.js.map +1 -0
  142. package/dist/components/messages/renderers/DiffView.d.ts +6 -0
  143. package/dist/components/messages/renderers/DiffView.d.ts.map +1 -0
  144. package/dist/components/messages/renderers/DiffView.js +206 -0
  145. package/dist/components/messages/renderers/DiffView.js.map +1 -0
  146. package/dist/components/messages/renderers/EditRenderer.d.ts +3 -0
  147. package/dist/components/messages/renderers/EditRenderer.d.ts.map +1 -0
  148. package/dist/components/messages/renderers/EditRenderer.js +25 -0
  149. package/dist/components/messages/renderers/EditRenderer.js.map +1 -0
  150. package/dist/components/messages/renderers/ErrorRenderer.d.ts +11 -0
  151. package/dist/components/messages/renderers/ErrorRenderer.d.ts.map +1 -0
  152. package/dist/components/messages/renderers/ErrorRenderer.js +157 -0
  153. package/dist/components/messages/renderers/ErrorRenderer.js.map +1 -0
  154. package/dist/components/messages/renderers/FinishRenderer.d.ts +3 -0
  155. package/dist/components/messages/renderers/FinishRenderer.d.ts.map +1 -0
  156. package/dist/components/messages/renderers/FinishRenderer.js +7 -0
  157. package/dist/components/messages/renderers/FinishRenderer.js.map +1 -0
  158. package/dist/components/messages/renderers/GenericRenderer.d.ts +3 -0
  159. package/dist/components/messages/renderers/GenericRenderer.d.ts.map +1 -0
  160. package/dist/components/messages/renderers/GenericRenderer.js +45 -0
  161. package/dist/components/messages/renderers/GenericRenderer.js.map +1 -0
  162. package/dist/components/messages/renderers/GitCommitRenderer.d.ts +3 -0
  163. package/dist/components/messages/renderers/GitCommitRenderer.d.ts.map +1 -0
  164. package/dist/components/messages/renderers/GitCommitRenderer.js +21 -0
  165. package/dist/components/messages/renderers/GitCommitRenderer.js.map +1 -0
  166. package/dist/components/messages/renderers/GitDiffRenderer.d.ts +3 -0
  167. package/dist/components/messages/renderers/GitDiffRenderer.d.ts.map +1 -0
  168. package/dist/components/messages/renderers/GitDiffRenderer.js +34 -0
  169. package/dist/components/messages/renderers/GitDiffRenderer.js.map +1 -0
  170. package/dist/components/messages/renderers/GitStatusRenderer.d.ts +3 -0
  171. package/dist/components/messages/renderers/GitStatusRenderer.d.ts.map +1 -0
  172. package/dist/components/messages/renderers/GitStatusRenderer.js +60 -0
  173. package/dist/components/messages/renderers/GitStatusRenderer.js.map +1 -0
  174. package/dist/components/messages/renderers/ListRenderer.d.ts +3 -0
  175. package/dist/components/messages/renderers/ListRenderer.d.ts.map +1 -0
  176. package/dist/components/messages/renderers/ListRenderer.js +28 -0
  177. package/dist/components/messages/renderers/ListRenderer.js.map +1 -0
  178. package/dist/components/messages/renderers/ProgressUpdateRenderer.d.ts +3 -0
  179. package/dist/components/messages/renderers/ProgressUpdateRenderer.d.ts.map +1 -0
  180. package/dist/components/messages/renderers/ProgressUpdateRenderer.js +9 -0
  181. package/dist/components/messages/renderers/ProgressUpdateRenderer.js.map +1 -0
  182. package/dist/components/messages/renderers/ReadRenderer.d.ts +3 -0
  183. package/dist/components/messages/renderers/ReadRenderer.d.ts.map +1 -0
  184. package/dist/components/messages/renderers/ReadRenderer.js +87 -0
  185. package/dist/components/messages/renderers/ReadRenderer.js.map +1 -0
  186. package/dist/components/messages/renderers/ReasoningRenderer.d.ts +7 -0
  187. package/dist/components/messages/renderers/ReasoningRenderer.d.ts.map +1 -0
  188. package/dist/components/messages/renderers/ReasoningRenderer.js +34 -0
  189. package/dist/components/messages/renderers/ReasoningRenderer.js.map +1 -0
  190. package/dist/components/messages/renderers/SearchRenderer.d.ts +3 -0
  191. package/dist/components/messages/renderers/SearchRenderer.d.ts.map +1 -0
  192. package/dist/components/messages/renderers/SearchRenderer.js +52 -0
  193. package/dist/components/messages/renderers/SearchRenderer.js.map +1 -0
  194. package/dist/components/messages/renderers/TodosRenderer.d.ts +3 -0
  195. package/dist/components/messages/renderers/TodosRenderer.d.ts.map +1 -0
  196. package/dist/components/messages/renderers/TodosRenderer.js +15 -0
  197. package/dist/components/messages/renderers/TodosRenderer.js.map +1 -0
  198. package/dist/components/messages/renderers/ToolErrorDisplay.d.ts +12 -0
  199. package/dist/components/messages/renderers/ToolErrorDisplay.d.ts.map +1 -0
  200. package/dist/components/messages/renderers/ToolErrorDisplay.js +10 -0
  201. package/dist/components/messages/renderers/ToolErrorDisplay.js.map +1 -0
  202. package/dist/components/messages/renderers/TreeRenderer.d.ts +3 -0
  203. package/dist/components/messages/renderers/TreeRenderer.d.ts.map +1 -0
  204. package/dist/components/messages/renderers/TreeRenderer.js +33 -0
  205. package/dist/components/messages/renderers/TreeRenderer.js.map +1 -0
  206. package/dist/components/messages/renderers/WebSearchRenderer.d.ts +3 -0
  207. package/dist/components/messages/renderers/WebSearchRenderer.d.ts.map +1 -0
  208. package/dist/components/messages/renderers/WebSearchRenderer.js +29 -0
  209. package/dist/components/messages/renderers/WebSearchRenderer.js.map +1 -0
  210. package/dist/components/messages/renderers/WriteRenderer.d.ts +3 -0
  211. package/dist/components/messages/renderers/WriteRenderer.d.ts.map +1 -0
  212. package/dist/components/messages/renderers/WriteRenderer.js +28 -0
  213. package/dist/components/messages/renderers/WriteRenderer.js.map +1 -0
  214. package/dist/components/messages/renderers/index.d.ts +16 -0
  215. package/dist/components/messages/renderers/index.d.ts.map +1 -0
  216. package/dist/components/messages/renderers/index.js +114 -0
  217. package/dist/components/messages/renderers/index.js.map +1 -0
  218. package/dist/components/messages/renderers/shared/CopyButton.d.ts +8 -0
  219. package/dist/components/messages/renderers/shared/CopyButton.d.ts.map +1 -0
  220. package/dist/components/messages/renderers/shared/CopyButton.js +27 -0
  221. package/dist/components/messages/renderers/shared/CopyButton.js.map +1 -0
  222. package/dist/components/messages/renderers/shared/ToolContentBox.d.ts +13 -0
  223. package/dist/components/messages/renderers/shared/ToolContentBox.d.ts.map +1 -0
  224. package/dist/components/messages/renderers/shared/ToolContentBox.js +9 -0
  225. package/dist/components/messages/renderers/shared/ToolContentBox.js.map +1 -0
  226. package/dist/components/messages/renderers/shared/ToolHeader.d.ts +29 -0
  227. package/dist/components/messages/renderers/shared/ToolHeader.d.ts.map +1 -0
  228. package/dist/components/messages/renderers/shared/ToolHeader.js +69 -0
  229. package/dist/components/messages/renderers/shared/ToolHeader.js.map +1 -0
  230. package/dist/components/messages/renderers/shared/index.d.ts +4 -0
  231. package/dist/components/messages/renderers/shared/index.d.ts.map +1 -0
  232. package/dist/components/messages/renderers/shared/index.js +4 -0
  233. package/dist/components/messages/renderers/shared/index.js.map +1 -0
  234. package/dist/components/messages/renderers/types.d.ts +118 -0
  235. package/dist/components/messages/renderers/types.d.ts.map +1 -0
  236. package/dist/components/messages/renderers/types.js +2 -0
  237. package/dist/components/messages/renderers/types.js.map +1 -0
  238. package/dist/components/messages/renderers/utils.d.ts +26 -0
  239. package/dist/components/messages/renderers/utils.d.ts.map +1 -0
  240. package/dist/components/messages/renderers/utils.js +60 -0
  241. package/dist/components/messages/renderers/utils.js.map +1 -0
  242. package/dist/components/onboarding/OnboardingModal.d.ts +6 -0
  243. package/dist/components/onboarding/OnboardingModal.d.ts.map +1 -0
  244. package/dist/components/onboarding/OnboardingModal.js +22 -0
  245. package/dist/components/onboarding/OnboardingModal.js.map +1 -0
  246. package/dist/components/onboarding/index.d.ts +4 -0
  247. package/dist/components/onboarding/index.d.ts.map +1 -0
  248. package/dist/components/onboarding/index.js +4 -0
  249. package/dist/components/onboarding/index.js.map +1 -0
  250. package/dist/components/onboarding/steps/DefaultsStep.d.ts +10 -0
  251. package/dist/components/onboarding/steps/DefaultsStep.d.ts.map +1 -0
  252. package/dist/components/onboarding/steps/DefaultsStep.js +99 -0
  253. package/dist/components/onboarding/steps/DefaultsStep.js.map +1 -0
  254. package/dist/components/onboarding/steps/ProviderSetupStep.d.ts +31 -0
  255. package/dist/components/onboarding/steps/ProviderSetupStep.d.ts.map +1 -0
  256. package/dist/components/onboarding/steps/ProviderSetupStep.js +253 -0
  257. package/dist/components/onboarding/steps/ProviderSetupStep.js.map +1 -0
  258. package/dist/components/research/ResearchSidebar.d.ts +7 -0
  259. package/dist/components/research/ResearchSidebar.d.ts.map +1 -0
  260. package/dist/components/research/ResearchSidebar.js +271 -0
  261. package/dist/components/research/ResearchSidebar.js.map +1 -0
  262. package/dist/components/research/ResearchSidebarToggle.d.ts +6 -0
  263. package/dist/components/research/ResearchSidebarToggle.d.ts.map +1 -0
  264. package/dist/components/research/ResearchSidebarToggle.js +13 -0
  265. package/dist/components/research/ResearchSidebarToggle.js.map +1 -0
  266. package/dist/components/research/index.d.ts +3 -0
  267. package/dist/components/research/index.d.ts.map +1 -0
  268. package/dist/components/research/index.js +3 -0
  269. package/dist/components/research/index.js.map +1 -0
  270. package/dist/components/session-files/SessionFilesDiffPanel.d.ts +2 -0
  271. package/dist/components/session-files/SessionFilesDiffPanel.d.ts.map +1 -0
  272. package/dist/components/session-files/SessionFilesDiffPanel.js +345 -0
  273. package/dist/components/session-files/SessionFilesDiffPanel.js.map +1 -0
  274. package/dist/components/session-files/SessionFilesSidebar.d.ts +6 -0
  275. package/dist/components/session-files/SessionFilesSidebar.d.ts.map +1 -0
  276. package/dist/components/session-files/SessionFilesSidebar.js +80 -0
  277. package/dist/components/session-files/SessionFilesSidebar.js.map +1 -0
  278. package/dist/components/session-files/SessionFilesSidebarToggle.d.ts +6 -0
  279. package/dist/components/session-files/SessionFilesSidebarToggle.d.ts.map +1 -0
  280. package/dist/components/session-files/SessionFilesSidebarToggle.js +15 -0
  281. package/dist/components/session-files/SessionFilesSidebarToggle.js.map +1 -0
  282. package/dist/components/session-files/index.d.ts +4 -0
  283. package/dist/components/session-files/index.d.ts.map +1 -0
  284. package/dist/components/session-files/index.js +4 -0
  285. package/dist/components/session-files/index.js.map +1 -0
  286. package/dist/components/sessions/LeanHeader.d.ts +10 -0
  287. package/dist/components/sessions/LeanHeader.d.ts.map +1 -0
  288. package/dist/components/sessions/LeanHeader.js +62 -0
  289. package/dist/components/sessions/LeanHeader.js.map +1 -0
  290. package/dist/components/sessions/SessionHeader.d.ts +8 -0
  291. package/dist/components/sessions/SessionHeader.d.ts.map +1 -0
  292. package/dist/components/sessions/SessionHeader.js +74 -0
  293. package/dist/components/sessions/SessionHeader.js.map +1 -0
  294. package/dist/components/sessions/SessionItem.d.ts +9 -0
  295. package/dist/components/sessions/SessionItem.d.ts.map +1 -0
  296. package/dist/components/sessions/SessionItem.js +28 -0
  297. package/dist/components/sessions/SessionItem.js.map +1 -0
  298. package/dist/components/sessions/SessionListContainer.d.ts +7 -0
  299. package/dist/components/sessions/SessionListContainer.d.ts.map +1 -0
  300. package/dist/components/sessions/SessionListContainer.js +47 -0
  301. package/dist/components/sessions/SessionListContainer.js.map +1 -0
  302. package/dist/components/settings/SettingsSidebar.d.ts +2 -0
  303. package/dist/components/settings/SettingsSidebar.d.ts.map +1 -0
  304. package/dist/components/settings/SettingsSidebar.js +134 -0
  305. package/dist/components/settings/SettingsSidebar.js.map +1 -0
  306. package/dist/components/settings/SettingsSidebarToggle.d.ts +2 -0
  307. package/dist/components/settings/SettingsSidebarToggle.d.ts.map +1 -0
  308. package/dist/components/settings/SettingsSidebarToggle.js +10 -0
  309. package/dist/components/settings/SettingsSidebarToggle.js.map +1 -0
  310. package/dist/components/settings/SetuTopupModal.d.ts +2 -0
  311. package/dist/components/settings/SetuTopupModal.d.ts.map +1 -0
  312. package/dist/components/settings/SetuTopupModal.js +196 -0
  313. package/dist/components/settings/SetuTopupModal.js.map +1 -0
  314. package/dist/components/terminals/TerminalList.d.ts +8 -0
  315. package/dist/components/terminals/TerminalList.d.ts.map +1 -0
  316. package/dist/components/terminals/TerminalList.js +32 -0
  317. package/dist/components/terminals/TerminalList.js.map +1 -0
  318. package/dist/components/terminals/TerminalViewer.d.ts +6 -0
  319. package/dist/components/terminals/TerminalViewer.d.ts.map +1 -0
  320. package/dist/components/terminals/TerminalViewer.js +263 -0
  321. package/dist/components/terminals/TerminalViewer.js.map +1 -0
  322. package/dist/components/terminals/TerminalsSidebar.d.ts +2 -0
  323. package/dist/components/terminals/TerminalsSidebar.d.ts.map +1 -0
  324. package/dist/components/terminals/TerminalsSidebar.js +34 -0
  325. package/dist/components/terminals/TerminalsSidebar.js.map +1 -0
  326. package/dist/components/terminals/TerminalsSidebarToggle.d.ts +2 -0
  327. package/dist/components/terminals/TerminalsSidebarToggle.d.ts.map +1 -0
  328. package/dist/components/terminals/TerminalsSidebarToggle.js +13 -0
  329. package/dist/components/terminals/TerminalsSidebarToggle.js.map +1 -0
  330. package/dist/components/terminals/index.d.ts +5 -0
  331. package/dist/components/terminals/index.d.ts.map +1 -0
  332. package/dist/components/terminals/index.js +5 -0
  333. package/dist/components/terminals/index.js.map +1 -0
  334. package/dist/components/ui/Button.d.ts +8 -0
  335. package/dist/components/ui/Button.d.ts.map +1 -0
  336. package/dist/components/ui/Button.js +19 -0
  337. package/dist/components/ui/Button.js.map +1 -0
  338. package/dist/components/ui/Card.d.ts +6 -0
  339. package/dist/components/ui/Card.d.ts.map +1 -0
  340. package/dist/components/ui/Card.js +7 -0
  341. package/dist/components/ui/Card.js.map +1 -0
  342. package/dist/components/ui/ConfirmationDialog.d.ts +2 -0
  343. package/dist/components/ui/ConfirmationDialog.d.ts.map +1 -0
  344. package/dist/components/ui/ConfirmationDialog.js +72 -0
  345. package/dist/components/ui/ConfirmationDialog.js.map +1 -0
  346. package/dist/components/ui/Input.d.ts +6 -0
  347. package/dist/components/ui/Input.d.ts.map +1 -0
  348. package/dist/components/ui/Input.js +7 -0
  349. package/dist/components/ui/Input.js.map +1 -0
  350. package/dist/components/ui/Modal.d.ts +14 -0
  351. package/dist/components/ui/Modal.d.ts.map +1 -0
  352. package/dist/components/ui/Modal.js +51 -0
  353. package/dist/components/ui/Modal.js.map +1 -0
  354. package/dist/components/ui/Textarea.d.ts +6 -0
  355. package/dist/components/ui/Textarea.d.ts.map +1 -0
  356. package/dist/components/ui/Textarea.js +7 -0
  357. package/dist/components/ui/Textarea.js.map +1 -0
  358. package/dist/components/ui/Toaster.d.ts +2 -0
  359. package/dist/components/ui/Toaster.d.ts.map +1 -0
  360. package/dist/components/ui/Toaster.js +41 -0
  361. package/dist/components/ui/Toaster.js.map +1 -0
  362. package/dist/components/ui/ToolApprovalDialog.d.ts +7 -0
  363. package/dist/components/ui/ToolApprovalDialog.d.ts.map +1 -0
  364. package/dist/components/ui/ToolApprovalDialog.js +57 -0
  365. package/dist/components/ui/ToolApprovalDialog.js.map +1 -0
  366. package/dist/hooks/index.d.ts +23 -0
  367. package/dist/hooks/index.d.ts.map +1 -0
  368. package/dist/hooks/index.js +24 -0
  369. package/dist/hooks/index.js.map +1 -0
  370. package/dist/hooks/useAuthStatus.d.ts +60 -0
  371. package/dist/hooks/useAuthStatus.d.ts.map +1 -0
  372. package/dist/hooks/useAuthStatus.js +247 -0
  373. package/dist/hooks/useAuthStatus.js.map +1 -0
  374. package/dist/hooks/useBranch.d.ts +5 -0
  375. package/dist/hooks/useBranch.d.ts.map +1 -0
  376. package/dist/hooks/useBranch.js +43 -0
  377. package/dist/hooks/useBranch.js.map +1 -0
  378. package/dist/hooks/useCommandSuggestions.d.ts +29 -0
  379. package/dist/hooks/useCommandSuggestions.d.ts.map +1 -0
  380. package/dist/hooks/useCommandSuggestions.js +85 -0
  381. package/dist/hooks/useCommandSuggestions.js.map +1 -0
  382. package/dist/hooks/useConfig.d.ts +35 -0
  383. package/dist/hooks/useConfig.d.ts.map +1 -0
  384. package/dist/hooks/useConfig.js +32 -0
  385. package/dist/hooks/useConfig.js.map +1 -0
  386. package/dist/hooks/useFileMention.d.ts +16 -0
  387. package/dist/hooks/useFileMention.d.ts.map +1 -0
  388. package/dist/hooks/useFileMention.js +56 -0
  389. package/dist/hooks/useFileMention.js.map +1 -0
  390. package/dist/hooks/useFileUpload.d.ts +34 -0
  391. package/dist/hooks/useFileUpload.d.ts.map +1 -0
  392. package/dist/hooks/useFileUpload.js +258 -0
  393. package/dist/hooks/useFileUpload.js.map +1 -0
  394. package/dist/hooks/useFiles.d.ts +9 -0
  395. package/dist/hooks/useFiles.d.ts.map +1 -0
  396. package/dist/hooks/useFiles.js +15 -0
  397. package/dist/hooks/useFiles.js.map +1 -0
  398. package/dist/hooks/useGit.d.ts +15 -0
  399. package/dist/hooks/useGit.d.ts.map +1 -0
  400. package/dist/hooks/useGit.js +99 -0
  401. package/dist/hooks/useGit.js.map +1 -0
  402. package/dist/hooks/useImageUpload.d.ts +28 -0
  403. package/dist/hooks/useImageUpload.d.ts.map +1 -0
  404. package/dist/hooks/useImageUpload.js +197 -0
  405. package/dist/hooks/useImageUpload.js.map +1 -0
  406. package/dist/hooks/useKeyboardShortcuts.d.ts +27 -0
  407. package/dist/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  408. package/dist/hooks/useKeyboardShortcuts.js +242 -0
  409. package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
  410. package/dist/hooks/useMessages.d.ts +4 -0
  411. package/dist/hooks/useMessages.d.ts.map +1 -0
  412. package/dist/hooks/useMessages.js +25 -0
  413. package/dist/hooks/useMessages.js.map +1 -0
  414. package/dist/hooks/usePreferences.d.ts +10 -0
  415. package/dist/hooks/usePreferences.d.ts.map +1 -0
  416. package/dist/hooks/usePreferences.js +62 -0
  417. package/dist/hooks/usePreferences.js.map +1 -0
  418. package/dist/hooks/useQueueState.d.ts +15 -0
  419. package/dist/hooks/useQueueState.d.ts.map +1 -0
  420. package/dist/hooks/useQueueState.js +30 -0
  421. package/dist/hooks/useQueueState.js.map +1 -0
  422. package/dist/hooks/useResearch.d.ts +59 -0
  423. package/dist/hooks/useResearch.d.ts.map +1 -0
  424. package/dist/hooks/useResearch.js +138 -0
  425. package/dist/hooks/useResearch.js.map +1 -0
  426. package/dist/hooks/useSessionFiles.d.ts +2 -0
  427. package/dist/hooks/useSessionFiles.d.ts.map +1 -0
  428. package/dist/hooks/useSessionFiles.js +15 -0
  429. package/dist/hooks/useSessionFiles.js.map +1 -0
  430. package/dist/hooks/useSessionStream.d.ts +2 -0
  431. package/dist/hooks/useSessionStream.d.ts.map +1 -0
  432. package/dist/hooks/useSessionStream.js +455 -0
  433. package/dist/hooks/useSessionStream.js.map +1 -0
  434. package/dist/hooks/useSessions.d.ts +9 -0
  435. package/dist/hooks/useSessions.d.ts.map +1 -0
  436. package/dist/hooks/useSessions.js +43 -0
  437. package/dist/hooks/useSessions.js.map +1 -0
  438. package/dist/hooks/useSetuBalance.d.ts +4 -0
  439. package/dist/hooks/useSetuBalance.d.ts.map +1 -0
  440. package/dist/hooks/useSetuBalance.js +59 -0
  441. package/dist/hooks/useSetuBalance.js.map +1 -0
  442. package/dist/hooks/useSetuPayments.d.ts +2 -0
  443. package/dist/hooks/useSetuPayments.d.ts.map +1 -0
  444. package/dist/hooks/useSetuPayments.js +159 -0
  445. package/dist/hooks/useSetuPayments.js.map +1 -0
  446. package/dist/hooks/useShareStatus.d.ts +7 -0
  447. package/dist/hooks/useShareStatus.d.ts.map +1 -0
  448. package/dist/hooks/useShareStatus.js +12 -0
  449. package/dist/hooks/useShareStatus.js.map +1 -0
  450. package/dist/hooks/useTerminals.d.ts +37 -0
  451. package/dist/hooks/useTerminals.d.ts.map +1 -0
  452. package/dist/hooks/useTerminals.js +67 -0
  453. package/dist/hooks/useTerminals.js.map +1 -0
  454. package/dist/hooks/useTheme.d.ts +8 -0
  455. package/dist/hooks/useTheme.d.ts.map +1 -0
  456. package/dist/hooks/useTheme.js +57 -0
  457. package/dist/hooks/useTheme.js.map +1 -0
  458. package/dist/hooks/useToolApprovalShortcuts.d.ts +11 -0
  459. package/dist/hooks/useToolApprovalShortcuts.d.ts.map +1 -0
  460. package/dist/hooks/useToolApprovalShortcuts.js +88 -0
  461. package/dist/hooks/useToolApprovalShortcuts.js.map +1 -0
  462. package/dist/hooks/useTopupCallback.d.ts +2 -0
  463. package/dist/hooks/useTopupCallback.d.ts.map +1 -0
  464. package/dist/hooks/useTopupCallback.js +74 -0
  465. package/dist/hooks/useTopupCallback.js.map +1 -0
  466. package/dist/hooks/useVimMode.d.ts +16 -0
  467. package/dist/hooks/useVimMode.d.ts.map +1 -0
  468. package/dist/hooks/useVimMode.js +298 -0
  469. package/dist/hooks/useVimMode.js.map +1 -0
  470. package/dist/hooks/useWorkingDirectory.d.ts +2 -0
  471. package/dist/hooks/useWorkingDirectory.d.ts.map +1 -0
  472. package/dist/hooks/useWorkingDirectory.js +34 -0
  473. package/dist/hooks/useWorkingDirectory.js.map +1 -0
  474. package/dist/index.d.ts +7 -0
  475. package/dist/index.d.ts.map +1 -0
  476. package/dist/index.js +9 -0
  477. package/dist/index.js.map +1 -0
  478. package/dist/lib/api-client.d.ts +245 -0
  479. package/dist/lib/api-client.d.ts.map +1 -0
  480. package/dist/lib/api-client.js +783 -0
  481. package/dist/lib/api-client.js.map +1 -0
  482. package/dist/lib/commands.d.ts +16 -0
  483. package/dist/lib/commands.d.ts.map +1 -0
  484. package/dist/lib/commands.js +124 -0
  485. package/dist/lib/commands.js.map +1 -0
  486. package/dist/lib/config.d.ts +6 -0
  487. package/dist/lib/config.d.ts.map +1 -0
  488. package/dist/lib/config.js +28 -0
  489. package/dist/lib/config.js.map +1 -0
  490. package/dist/lib/index.d.ts +4 -0
  491. package/dist/lib/index.d.ts.map +1 -0
  492. package/dist/lib/index.js +5 -0
  493. package/dist/lib/index.js.map +1 -0
  494. package/dist/lib/open-url.d.ts +2 -0
  495. package/dist/lib/open-url.d.ts.map +1 -0
  496. package/dist/lib/open-url.js +9 -0
  497. package/dist/lib/open-url.js.map +1 -0
  498. package/dist/lib/parseResearchContext.d.ts +17 -0
  499. package/dist/lib/parseResearchContext.d.ts.map +1 -0
  500. package/dist/lib/parseResearchContext.js +30 -0
  501. package/dist/lib/parseResearchContext.js.map +1 -0
  502. package/dist/lib/sse-client.d.ts +13 -0
  503. package/dist/lib/sse-client.d.ts.map +1 -0
  504. package/dist/lib/sse-client.js +111 -0
  505. package/dist/lib/sse-client.js.map +1 -0
  506. package/dist/stores/confirmationStore.d.ts +23 -0
  507. package/dist/stores/confirmationStore.d.ts.map +1 -0
  508. package/dist/stores/confirmationStore.js +27 -0
  509. package/dist/stores/confirmationStore.js.map +1 -0
  510. package/dist/stores/focusStore.d.ts +14 -0
  511. package/dist/stores/focusStore.d.ts.map +1 -0
  512. package/dist/stores/focusStore.js +12 -0
  513. package/dist/stores/focusStore.js.map +1 -0
  514. package/dist/stores/gitStore.d.ts +24 -0
  515. package/dist/stores/gitStore.d.ts.map +1 -0
  516. package/dist/stores/gitStore.js +57 -0
  517. package/dist/stores/gitStore.js.map +1 -0
  518. package/dist/stores/index.d.ts +15 -0
  519. package/dist/stores/index.d.ts.map +1 -0
  520. package/dist/stores/index.js +15 -0
  521. package/dist/stores/index.js.map +1 -0
  522. package/dist/stores/onboardingStore.d.ts +46 -0
  523. package/dist/stores/onboardingStore.d.ts.map +1 -0
  524. package/dist/stores/onboardingStore.js +38 -0
  525. package/dist/stores/onboardingStore.js.map +1 -0
  526. package/dist/stores/pendingResearchStore.d.ts +17 -0
  527. package/dist/stores/pendingResearchStore.d.ts.map +1 -0
  528. package/dist/stores/pendingResearchStore.js +38 -0
  529. package/dist/stores/pendingResearchStore.js.map +1 -0
  530. package/dist/stores/queueStore.d.ts +8 -0
  531. package/dist/stores/queueStore.d.ts.map +1 -0
  532. package/dist/stores/queueStore.js +11 -0
  533. package/dist/stores/queueStore.js.map +1 -0
  534. package/dist/stores/researchStore.d.ts +14 -0
  535. package/dist/stores/researchStore.d.ts.map +1 -0
  536. package/dist/stores/researchStore.js +45 -0
  537. package/dist/stores/researchStore.js.map +1 -0
  538. package/dist/stores/sessionFilesStore.d.ts +17 -0
  539. package/dist/stores/sessionFilesStore.d.ts.map +1 -0
  540. package/dist/stores/sessionFilesStore.js +53 -0
  541. package/dist/stores/sessionFilesStore.js.map +1 -0
  542. package/dist/stores/settingsStore.d.ts +9 -0
  543. package/dist/stores/settingsStore.d.ts.map +1 -0
  544. package/dist/stores/settingsStore.js +23 -0
  545. package/dist/stores/settingsStore.js.map +1 -0
  546. package/dist/stores/setuStore.d.ts +22 -0
  547. package/dist/stores/setuStore.d.ts.map +1 -0
  548. package/dist/stores/setuStore.js +21 -0
  549. package/dist/stores/setuStore.js.map +1 -0
  550. package/dist/stores/sidebarStore.d.ts +20 -0
  551. package/dist/stores/sidebarStore.d.ts.map +1 -0
  552. package/dist/stores/sidebarStore.js +10 -0
  553. package/dist/stores/sidebarStore.js.map +1 -0
  554. package/dist/stores/terminalStore.d.ts +11 -0
  555. package/dist/stores/terminalStore.d.ts.map +1 -0
  556. package/dist/stores/terminalStore.js +25 -0
  557. package/dist/stores/terminalStore.js.map +1 -0
  558. package/dist/stores/toastStore.d.ts +32 -0
  559. package/dist/stores/toastStore.d.ts.map +1 -0
  560. package/dist/stores/toastStore.js +46 -0
  561. package/dist/stores/toastStore.js.map +1 -0
  562. package/dist/stores/toolApprovalStore.d.ts +18 -0
  563. package/dist/stores/toolApprovalStore.d.ts.map +1 -0
  564. package/dist/stores/toolApprovalStore.js +16 -0
  565. package/dist/stores/toolApprovalStore.js.map +1 -0
  566. package/dist/stores/topupApprovalStore.d.ts +20 -0
  567. package/dist/stores/topupApprovalStore.d.ts.map +1 -0
  568. package/dist/stores/topupApprovalStore.js +11 -0
  569. package/dist/stores/topupApprovalStore.js.map +1 -0
  570. package/dist/types/api.d.ts +269 -0
  571. package/dist/types/api.d.ts.map +1 -0
  572. package/dist/types/api.js +2 -0
  573. package/dist/types/api.js.map +1 -0
  574. package/package.json +94 -0
@@ -0,0 +1,783 @@
1
+ import { client, listSessions as apiListSessions, createSession as apiCreateSession, listMessages as apiListMessages, createMessage as apiCreateMessage, abortSession as apiAbortSession, getConfig as apiGetConfig, getProviderModels as apiGetProviderModels, listFiles as apiListFiles, getGitStatus as apiGetGitStatus, getGitDiff as apiGetGitDiff, getGitBranch as apiGetGitBranch, stageFiles as apiStageFiles, unstageFiles as apiUnstageFiles, restoreFiles as apiRestoreFiles, deleteFiles as apiDeleteFiles, commitChanges as apiCommitChanges, generateCommitMessage as apiGenerateCommitMessage, pushCommits as apiPushCommits, } from '@ottocode/api';
2
+ import { API_BASE_URL } from './config';
3
+ /**
4
+ * Extract error message from API error response
5
+ * Handles both string errors and structured error objects
6
+ */
7
+ function extractErrorMessage(error) {
8
+ if (!error) {
9
+ return 'Unknown error';
10
+ }
11
+ // If it's a string, return it
12
+ if (typeof error === 'string') {
13
+ return error;
14
+ }
15
+ // If it's an error object with our standardized structure
16
+ if (error && typeof error === 'object') {
17
+ const errObj = error;
18
+ // New standardized format: { error: { message, type, ... } }
19
+ if (errObj.error && typeof errObj.error === 'object') {
20
+ const innerError = errObj.error;
21
+ if (typeof innerError.message === 'string') {
22
+ return innerError.message;
23
+ }
24
+ }
25
+ // Legacy format: { error: "message" }
26
+ if (typeof errObj.error === 'string') {
27
+ return errObj.error;
28
+ }
29
+ // Direct message property
30
+ if (typeof errObj.message === 'string') {
31
+ return errObj.message;
32
+ }
33
+ // Try to JSON stringify if it's a complex object
34
+ try {
35
+ return JSON.stringify(error);
36
+ }
37
+ catch {
38
+ return 'Error occurred (unable to parse)';
39
+ }
40
+ }
41
+ return 'Unknown error';
42
+ }
43
+ /**
44
+ * Configure the API client with the correct base URL
45
+ * This should be called once at application startup
46
+ */
47
+ export function configureApiClient() {
48
+ const win = window;
49
+ const baseURL = win.OTTO_SERVER_URL || API_BASE_URL;
50
+ client.setConfig({
51
+ baseURL,
52
+ });
53
+ }
54
+ // Configure the client immediately when this module is imported
55
+ configureApiClient();
56
+ // Type conversion helpers
57
+ function convertSession(apiSession) {
58
+ return {
59
+ ...apiSession,
60
+ title: apiSession.title ?? null,
61
+ createdAt: typeof apiSession.createdAt === 'string'
62
+ ? new Date(apiSession.createdAt).getTime()
63
+ : apiSession.createdAt,
64
+ lastActiveAt: typeof apiSession.lastActiveAt === 'string'
65
+ ? new Date(apiSession.lastActiveAt).getTime()
66
+ : apiSession.lastActiveAt,
67
+ };
68
+ }
69
+ function convertMessage(apiMessage) {
70
+ return {
71
+ ...apiMessage,
72
+ createdAt: typeof apiMessage.createdAt === 'string'
73
+ ? new Date(apiMessage.createdAt).getTime()
74
+ : apiMessage.createdAt,
75
+ completedAt: apiMessage.completedAt
76
+ ? typeof apiMessage.completedAt === 'string'
77
+ ? new Date(apiMessage.completedAt).getTime()
78
+ : apiMessage.completedAt
79
+ : null,
80
+ };
81
+ }
82
+ class ApiClient {
83
+ get baseUrl() {
84
+ // Always check for injected URL at runtime
85
+ const win = window;
86
+ if (win.OTTO_SERVER_URL) {
87
+ return win.OTTO_SERVER_URL;
88
+ }
89
+ return API_BASE_URL;
90
+ }
91
+ // Session methods using new API
92
+ async getSessions() {
93
+ const response = await apiListSessions();
94
+ if (response.error) {
95
+ throw new Error(extractErrorMessage(response.error));
96
+ }
97
+ return (response.data || []).map(convertSession);
98
+ }
99
+ async createSession(data) {
100
+ const response = await apiCreateSession({
101
+ body: data,
102
+ });
103
+ if (response.error) {
104
+ throw new Error(extractErrorMessage(response.error));
105
+ }
106
+ if (!response.data) {
107
+ throw new Error('No data returned from create session');
108
+ }
109
+ return convertSession(response.data);
110
+ }
111
+ async updateSession(sessionId, data) {
112
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}`, {
113
+ method: 'PATCH',
114
+ headers: {
115
+ 'Content-Type': 'application/json',
116
+ },
117
+ body: JSON.stringify(data),
118
+ });
119
+ if (!response.ok) {
120
+ const errorData = await response
121
+ .json()
122
+ .catch(() => ({ error: 'Failed to update session' }));
123
+ throw new Error(extractErrorMessage(errorData));
124
+ }
125
+ const sessionData = await response.json();
126
+ return convertSession(sessionData);
127
+ }
128
+ async deleteSession(sessionId) {
129
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}`, {
130
+ method: 'DELETE',
131
+ headers: {
132
+ 'Content-Type': 'application/json',
133
+ },
134
+ });
135
+ if (!response.ok) {
136
+ const errorData = await response
137
+ .json()
138
+ .catch(() => ({ error: 'Failed to delete session' }));
139
+ throw new Error(extractErrorMessage(errorData));
140
+ }
141
+ return await response.json();
142
+ }
143
+ async abortSession(sessionId) {
144
+ const response = await apiAbortSession({
145
+ path: { sessionId },
146
+ });
147
+ if (response.error) {
148
+ throw new Error(extractErrorMessage(response.error));
149
+ }
150
+ return response.data;
151
+ }
152
+ async abortMessage(sessionId, messageId) {
153
+ const baseUrl = this.baseUrl;
154
+ const response = await fetch(`${baseUrl}/v1/sessions/${sessionId}/abort`, {
155
+ method: 'DELETE',
156
+ headers: { 'Content-Type': 'application/json' },
157
+ body: JSON.stringify({ messageId }),
158
+ });
159
+ if (!response.ok) {
160
+ throw new Error('Failed to abort message');
161
+ }
162
+ return response.json();
163
+ }
164
+ async getQueueState(sessionId) {
165
+ const baseUrl = this.baseUrl;
166
+ const response = await fetch(`${baseUrl}/v1/sessions/${sessionId}/queue`);
167
+ if (!response.ok) {
168
+ throw new Error('Failed to get queue state');
169
+ }
170
+ return response.json();
171
+ }
172
+ async removeFromQueue(sessionId, messageId) {
173
+ const baseUrl = this.baseUrl;
174
+ const response = await fetch(`${baseUrl}/v1/sessions/${sessionId}/queue/${messageId}`, { method: 'DELETE' });
175
+ if (!response.ok) {
176
+ throw new Error('Failed to remove from queue');
177
+ }
178
+ return response.json();
179
+ }
180
+ async getMessages(sessionId) {
181
+ const response = await apiListMessages({
182
+ path: { id: sessionId },
183
+ });
184
+ if (response.error) {
185
+ throw new Error(extractErrorMessage(response.error));
186
+ }
187
+ return (response.data || []).map(convertMessage);
188
+ }
189
+ async sendMessage(sessionId, data) {
190
+ const response = await apiCreateMessage({
191
+ path: { id: sessionId },
192
+ body: data,
193
+ });
194
+ if (response.error) {
195
+ throw new Error(extractErrorMessage(response.error));
196
+ }
197
+ return response.data;
198
+ }
199
+ getStreamUrl(sessionId) {
200
+ return `${this.baseUrl}/v1/sessions/${sessionId}/stream`;
201
+ }
202
+ // Config methods using new API
203
+ async getConfig() {
204
+ const response = await apiGetConfig();
205
+ if (response.error) {
206
+ throw new Error(extractErrorMessage(response.error));
207
+ }
208
+ return response.data;
209
+ }
210
+ async getModels(providerId) {
211
+ const response = await apiGetProviderModels({
212
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch between client and server
213
+ path: { provider: providerId },
214
+ });
215
+ if (response.error) {
216
+ throw new Error(extractErrorMessage(response.error));
217
+ }
218
+ return response.data;
219
+ }
220
+ async getAllModels() {
221
+ const response = await fetch(`${this.baseUrl}/v1/config/models`, {
222
+ method: 'GET',
223
+ headers: {
224
+ 'Content-Type': 'application/json',
225
+ },
226
+ });
227
+ if (!response.ok) {
228
+ const errorData = await response
229
+ .json()
230
+ .catch(() => ({ error: 'Failed to fetch models' }));
231
+ throw new Error(extractErrorMessage(errorData));
232
+ }
233
+ return await response.json();
234
+ }
235
+ async updateDefaults(data) {
236
+ const response = await fetch(`${this.baseUrl}/v1/config/defaults`, {
237
+ method: 'PATCH',
238
+ headers: {
239
+ 'Content-Type': 'application/json',
240
+ },
241
+ body: JSON.stringify(data),
242
+ });
243
+ if (!response.ok) {
244
+ const errorData = await response
245
+ .json()
246
+ .catch(() => ({ error: 'Failed to update defaults' }));
247
+ throw new Error(extractErrorMessage(errorData));
248
+ }
249
+ return await response.json();
250
+ }
251
+ // Git methods using new API
252
+ async getGitStatus() {
253
+ const response = await apiGetGitStatus();
254
+ if (response.error) {
255
+ throw new Error(extractErrorMessage(response.error));
256
+ }
257
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure mismatch
258
+ return response.data?.data;
259
+ }
260
+ async getGitDiff(file, staged = false) {
261
+ const response = await apiGetGitDiff({
262
+ query: {
263
+ file,
264
+ staged: staged ? 'true' : 'false',
265
+ },
266
+ });
267
+ if (response.error) {
268
+ throw new Error(extractErrorMessage(response.error));
269
+ }
270
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure mismatch
271
+ return response.data?.data;
272
+ }
273
+ async generateCommitMessage(sessionId) {
274
+ const response = await apiGenerateCommitMessage({
275
+ body: sessionId ? { sessionId } : {},
276
+ });
277
+ if (response.error) {
278
+ throw new Error(extractErrorMessage(response.error));
279
+ }
280
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure mismatch
281
+ return response.data?.data;
282
+ }
283
+ async stageFiles(files) {
284
+ const response = await apiStageFiles({
285
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch between client and server
286
+ body: { files },
287
+ });
288
+ if (response.error) {
289
+ throw new Error(extractErrorMessage(response.error));
290
+ }
291
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure mismatch
292
+ return response.data?.data;
293
+ }
294
+ async unstageFiles(files) {
295
+ const response = await apiUnstageFiles({
296
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch between client and server
297
+ body: { files },
298
+ });
299
+ if (response.error) {
300
+ throw new Error(extractErrorMessage(response.error));
301
+ }
302
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure mismatch
303
+ return response.data?.data;
304
+ }
305
+ async restoreFiles(files) {
306
+ const response = await apiRestoreFiles({
307
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch between client and server
308
+ body: { files },
309
+ });
310
+ if (response.error) {
311
+ throw new Error(extractErrorMessage(response.error));
312
+ }
313
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure mismatch
314
+ return response.data?.data;
315
+ }
316
+ async deleteFiles(files) {
317
+ const response = await apiDeleteFiles({
318
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch between client and server
319
+ body: { files },
320
+ });
321
+ if (response.error) {
322
+ throw new Error(extractErrorMessage(response.error));
323
+ }
324
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure mismatch
325
+ return response.data?.data;
326
+ }
327
+ async commitChanges(message) {
328
+ const response = await apiCommitChanges({
329
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch between client and server
330
+ body: { message },
331
+ });
332
+ if (response.error) {
333
+ throw new Error(extractErrorMessage(response.error));
334
+ }
335
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure mismatch
336
+ return response.data?.data;
337
+ }
338
+ async getGitBranch() {
339
+ const response = await apiGetGitBranch();
340
+ if (response.error) {
341
+ throw new Error(extractErrorMessage(response.error));
342
+ }
343
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure mismatch
344
+ return response.data?.data;
345
+ }
346
+ async pushCommits() {
347
+ const response = await apiPushCommits({
348
+ // biome-ignore lint/suspicious/noExplicitAny: API type mismatch between client and server
349
+ body: {},
350
+ });
351
+ if (response.error) {
352
+ throw new Error(extractErrorMessage(response.error));
353
+ }
354
+ // biome-ignore lint/suspicious/noExplicitAny: API response structure mismatch
355
+ return response.data?.data;
356
+ }
357
+ async listFiles() {
358
+ const response = await apiListFiles();
359
+ if (response.error) {
360
+ throw new Error(extractErrorMessage(response.error));
361
+ }
362
+ return response.data;
363
+ }
364
+ async getSessionFiles(sessionId) {
365
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}/files`, {
366
+ method: 'GET',
367
+ headers: {
368
+ 'Content-Type': 'application/json',
369
+ },
370
+ });
371
+ if (!response.ok) {
372
+ const errorData = await response
373
+ .json()
374
+ .catch(() => ({ error: 'Failed to fetch session files' }));
375
+ throw new Error(extractErrorMessage(errorData));
376
+ }
377
+ return await response.json();
378
+ }
379
+ async createBranch(sessionId, data) {
380
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}/branch`, {
381
+ method: 'POST',
382
+ headers: {
383
+ 'Content-Type': 'application/json',
384
+ },
385
+ body: JSON.stringify(data),
386
+ });
387
+ if (!response.ok) {
388
+ const errorData = await response
389
+ .json()
390
+ .catch(() => ({ error: 'Failed to create branch' }));
391
+ throw new Error(extractErrorMessage(errorData));
392
+ }
393
+ return await response.json();
394
+ }
395
+ async listBranches(sessionId) {
396
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}/branches`, {
397
+ method: 'GET',
398
+ headers: {
399
+ 'Content-Type': 'application/json',
400
+ },
401
+ });
402
+ if (!response.ok) {
403
+ const errorData = await response
404
+ .json()
405
+ .catch(() => ({ error: 'Failed to list branches' }));
406
+ throw new Error(extractErrorMessage(errorData));
407
+ }
408
+ return await response.json();
409
+ }
410
+ async getParentSession(sessionId) {
411
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}/parent`, {
412
+ method: 'GET',
413
+ headers: {
414
+ 'Content-Type': 'application/json',
415
+ },
416
+ });
417
+ if (!response.ok) {
418
+ const errorData = await response
419
+ .json()
420
+ .catch(() => ({ error: 'Failed to get parent session' }));
421
+ throw new Error(extractErrorMessage(errorData));
422
+ }
423
+ return await response.json();
424
+ }
425
+ async getSetuBalance() {
426
+ try {
427
+ const response = await fetch(`${this.baseUrl}/v1/setu/balance`, {
428
+ method: 'GET',
429
+ headers: {
430
+ 'Content-Type': 'application/json',
431
+ },
432
+ });
433
+ if (!response.ok) {
434
+ return null;
435
+ }
436
+ return await response.json();
437
+ }
438
+ catch {
439
+ return null;
440
+ }
441
+ }
442
+ async getSetuWallet() {
443
+ try {
444
+ const response = await fetch(`${this.baseUrl}/v1/setu/wallet`, {
445
+ method: 'GET',
446
+ headers: {
447
+ 'Content-Type': 'application/json',
448
+ },
449
+ });
450
+ if (!response.ok) {
451
+ return { configured: false };
452
+ }
453
+ return await response.json();
454
+ }
455
+ catch {
456
+ return { configured: false };
457
+ }
458
+ }
459
+ async getSetuUsdcBalance(network = 'mainnet') {
460
+ try {
461
+ const response = await fetch(`${this.baseUrl}/v1/setu/usdc-balance?network=${network}`, {
462
+ method: 'GET',
463
+ headers: {
464
+ 'Content-Type': 'application/json',
465
+ },
466
+ });
467
+ if (!response.ok) {
468
+ return null;
469
+ }
470
+ return await response.json();
471
+ }
472
+ catch {
473
+ return null;
474
+ }
475
+ }
476
+ async getShareStatus(sessionId) {
477
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}/share`, {
478
+ method: 'GET',
479
+ headers: {
480
+ 'Content-Type': 'application/json',
481
+ },
482
+ });
483
+ if (!response.ok) {
484
+ return { shared: false };
485
+ }
486
+ return await response.json();
487
+ }
488
+ async shareSession(sessionId) {
489
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}/share`, {
490
+ method: 'POST',
491
+ headers: {
492
+ 'Content-Type': 'application/json',
493
+ },
494
+ });
495
+ if (!response.ok) {
496
+ const errorData = await response
497
+ .json()
498
+ .catch(() => ({ error: 'Failed to share session' }));
499
+ throw new Error(extractErrorMessage(errorData));
500
+ }
501
+ return await response.json();
502
+ }
503
+ async syncSession(sessionId) {
504
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}/share`, {
505
+ method: 'PUT',
506
+ headers: {
507
+ 'Content-Type': 'application/json',
508
+ },
509
+ });
510
+ if (!response.ok) {
511
+ const errorData = await response
512
+ .json()
513
+ .catch(() => ({ error: 'Failed to sync session' }));
514
+ throw new Error(extractErrorMessage(errorData));
515
+ }
516
+ return await response.json();
517
+ }
518
+ async approveToolCall(sessionId, callId, approved) {
519
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}/approval`, {
520
+ method: 'POST',
521
+ headers: { 'Content-Type': 'application/json' },
522
+ body: JSON.stringify({ callId, approved }),
523
+ });
524
+ if (!response.ok) {
525
+ throw new Error('Failed to send tool approval');
526
+ }
527
+ return await response.json();
528
+ }
529
+ async getPendingApprovals(sessionId) {
530
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}/approval/pending`, {
531
+ method: 'GET',
532
+ headers: { 'Content-Type': 'application/json' },
533
+ });
534
+ if (!response.ok) {
535
+ return { ok: false, pending: [] };
536
+ }
537
+ return await response.json();
538
+ }
539
+ async getPolarTopupEstimate(amount) {
540
+ try {
541
+ const response = await fetch(`${this.baseUrl}/v1/setu/topup/polar/estimate?amount=${amount}`, {
542
+ method: 'GET',
543
+ headers: { 'Content-Type': 'application/json' },
544
+ });
545
+ if (!response.ok) {
546
+ return null;
547
+ }
548
+ return await response.json();
549
+ }
550
+ catch {
551
+ return null;
552
+ }
553
+ }
554
+ async createPolarCheckout(amount, successUrl) {
555
+ const response = await fetch(`${this.baseUrl}/v1/setu/topup/polar`, {
556
+ method: 'POST',
557
+ headers: { 'Content-Type': 'application/json' },
558
+ body: JSON.stringify({ amount, successUrl }),
559
+ });
560
+ if (!response.ok) {
561
+ const errorData = await response
562
+ .json()
563
+ .catch(() => ({ error: 'Failed to create checkout' }));
564
+ throw new Error(extractErrorMessage(errorData));
565
+ }
566
+ return await response.json();
567
+ }
568
+ async selectTopupMethod(sessionId, method) {
569
+ const response = await fetch(`${this.baseUrl}/v1/setu/topup/select`, {
570
+ method: 'POST',
571
+ headers: { 'Content-Type': 'application/json' },
572
+ body: JSON.stringify({ sessionId, method }),
573
+ });
574
+ if (!response.ok) {
575
+ const errorData = await response
576
+ .json()
577
+ .catch(() => ({ error: 'Failed to select topup method' }));
578
+ throw new Error(extractErrorMessage(errorData));
579
+ }
580
+ return await response.json();
581
+ }
582
+ async cancelTopup(sessionId, reason) {
583
+ const response = await fetch(`${this.baseUrl}/v1/setu/topup/cancel`, {
584
+ method: 'POST',
585
+ headers: { 'Content-Type': 'application/json' },
586
+ body: JSON.stringify({ sessionId, reason }),
587
+ });
588
+ if (!response.ok) {
589
+ const errorData = await response
590
+ .json()
591
+ .catch(() => ({ error: 'Failed to cancel topup' }));
592
+ throw new Error(extractErrorMessage(errorData));
593
+ }
594
+ return await response.json();
595
+ }
596
+ async getPendingTopup(sessionId) {
597
+ try {
598
+ const response = await fetch(`${this.baseUrl}/v1/setu/topup/pending?sessionId=${sessionId}`, {
599
+ method: 'GET',
600
+ headers: { 'Content-Type': 'application/json' },
601
+ });
602
+ if (!response.ok) {
603
+ return { hasPending: false };
604
+ }
605
+ return await response.json();
606
+ }
607
+ catch {
608
+ return { hasPending: false };
609
+ }
610
+ }
611
+ async getPolarTopupStatus(checkoutId) {
612
+ try {
613
+ const response = await fetch(`${this.baseUrl}/v1/setu/topup/polar/status?checkoutId=${checkoutId}`, {
614
+ method: 'GET',
615
+ headers: { 'Content-Type': 'application/json' },
616
+ });
617
+ if (!response.ok) {
618
+ return null;
619
+ }
620
+ return await response.json();
621
+ }
622
+ catch {
623
+ return null;
624
+ }
625
+ }
626
+ async retryMessage(sessionId, messageId) {
627
+ const response = await fetch(`${this.baseUrl}/v1/sessions/${sessionId}/messages/${messageId}/retry`, {
628
+ method: 'POST',
629
+ headers: { 'Content-Type': 'application/json' },
630
+ });
631
+ if (!response.ok) {
632
+ const errorData = await response
633
+ .json()
634
+ .catch(() => ({ error: 'Failed to retry message' }));
635
+ throw new Error(extractErrorMessage(errorData));
636
+ }
637
+ return await response.json();
638
+ }
639
+ async getAuthStatus() {
640
+ const response = await fetch(`${this.baseUrl}/v1/auth/status`, {
641
+ method: 'GET',
642
+ headers: { 'Content-Type': 'application/json' },
643
+ });
644
+ if (!response.ok) {
645
+ const errorData = await response
646
+ .json()
647
+ .catch(() => ({ error: 'Failed to get auth status' }));
648
+ throw new Error(extractErrorMessage(errorData));
649
+ }
650
+ return await response.json();
651
+ }
652
+ async setupSetuWallet() {
653
+ const response = await fetch(`${this.baseUrl}/v1/auth/setu/setup`, {
654
+ method: 'POST',
655
+ headers: { 'Content-Type': 'application/json' },
656
+ });
657
+ if (!response.ok) {
658
+ const errorData = await response
659
+ .json()
660
+ .catch(() => ({ error: 'Failed to setup wallet' }));
661
+ throw new Error(extractErrorMessage(errorData));
662
+ }
663
+ return await response.json();
664
+ }
665
+ async importSetuWallet(privateKey) {
666
+ const response = await fetch(`${this.baseUrl}/v1/auth/setu/import`, {
667
+ method: 'POST',
668
+ headers: { 'Content-Type': 'application/json' },
669
+ body: JSON.stringify({ privateKey }),
670
+ });
671
+ if (!response.ok) {
672
+ const errorData = await response
673
+ .json()
674
+ .catch(() => ({ error: 'Failed to import wallet' }));
675
+ throw new Error(extractErrorMessage(errorData));
676
+ }
677
+ return await response.json();
678
+ }
679
+ async addProvider(provider, apiKey) {
680
+ const response = await fetch(`${this.baseUrl}/v1/auth/${provider}`, {
681
+ method: 'POST',
682
+ headers: { 'Content-Type': 'application/json' },
683
+ body: JSON.stringify({ apiKey }),
684
+ });
685
+ if (!response.ok) {
686
+ const errorData = await response
687
+ .json()
688
+ .catch(() => ({ error: 'Failed to add provider' }));
689
+ throw new Error(extractErrorMessage(errorData));
690
+ }
691
+ return await response.json();
692
+ }
693
+ async removeProvider(provider) {
694
+ const response = await fetch(`${this.baseUrl}/v1/auth/${provider}`, {
695
+ method: 'DELETE',
696
+ headers: { 'Content-Type': 'application/json' },
697
+ });
698
+ if (!response.ok) {
699
+ const errorData = await response
700
+ .json()
701
+ .catch(() => ({ error: 'Failed to remove provider' }));
702
+ throw new Error(extractErrorMessage(errorData));
703
+ }
704
+ return await response.json();
705
+ }
706
+ async completeOnboarding() {
707
+ const response = await fetch(`${this.baseUrl}/v1/auth/onboarding/complete`, {
708
+ method: 'POST',
709
+ headers: { 'Content-Type': 'application/json' },
710
+ });
711
+ if (!response.ok) {
712
+ const errorData = await response
713
+ .json()
714
+ .catch(() => ({ error: 'Failed to complete onboarding' }));
715
+ throw new Error(extractErrorMessage(errorData));
716
+ }
717
+ return await response.json();
718
+ }
719
+ getOAuthStartUrl(provider, mode) {
720
+ const baseUrl = `${this.baseUrl}/v1/auth/${provider}/oauth/start`;
721
+ if (mode) {
722
+ return `${baseUrl}?mode=${mode}`;
723
+ }
724
+ return baseUrl;
725
+ }
726
+ async getOAuthUrl(provider, mode) {
727
+ const response = await fetch(`${this.baseUrl}/v1/auth/${provider}/oauth/url`, {
728
+ method: 'POST',
729
+ headers: { 'Content-Type': 'application/json' },
730
+ body: JSON.stringify({ mode }),
731
+ });
732
+ if (!response.ok) {
733
+ const errorData = await response
734
+ .json()
735
+ .catch(() => ({ error: 'Failed to get OAuth URL' }));
736
+ throw new Error(extractErrorMessage(errorData));
737
+ }
738
+ return await response.json();
739
+ }
740
+ async exchangeOAuthCode(provider, code, sessionId) {
741
+ const response = await fetch(`${this.baseUrl}/v1/auth/${provider}/oauth/exchange`, {
742
+ method: 'POST',
743
+ headers: { 'Content-Type': 'application/json' },
744
+ body: JSON.stringify({ code, sessionId }),
745
+ });
746
+ if (!response.ok) {
747
+ const errorData = await response
748
+ .json()
749
+ .catch(() => ({ error: 'Failed to exchange OAuth code' }));
750
+ throw new Error(extractErrorMessage(errorData));
751
+ }
752
+ return await response.json();
753
+ }
754
+ async startCopilotDeviceFlow() {
755
+ const response = await fetch(`${this.baseUrl}/v1/auth/copilot/device/start`, {
756
+ method: 'POST',
757
+ headers: { 'Content-Type': 'application/json' },
758
+ });
759
+ if (!response.ok) {
760
+ const errorData = await response
761
+ .json()
762
+ .catch(() => ({ error: 'Failed to start Copilot device flow' }));
763
+ throw new Error(extractErrorMessage(errorData));
764
+ }
765
+ return await response.json();
766
+ }
767
+ async pollCopilotDeviceFlow(sessionId) {
768
+ const response = await fetch(`${this.baseUrl}/v1/auth/copilot/device/poll`, {
769
+ method: 'POST',
770
+ headers: { 'Content-Type': 'application/json' },
771
+ body: JSON.stringify({ sessionId }),
772
+ });
773
+ if (!response.ok) {
774
+ const errorData = await response
775
+ .json()
776
+ .catch(() => ({ error: 'Poll failed' }));
777
+ throw new Error(extractErrorMessage(errorData));
778
+ }
779
+ return await response.json();
780
+ }
781
+ }
782
+ export const apiClient = new ApiClient();
783
+ //# sourceMappingURL=api-client.js.map