@ottocode/web-sdk 0.1.226 → 0.1.227

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/dist/components/chat/FileMentionPopup.d.ts.map +1 -1
  2. package/dist/components/index.js +25148 -80
  3. package/dist/components/index.js.map +180 -1
  4. package/dist/components/messages/AssistantMessageGroup.d.ts.map +1 -1
  5. package/dist/components/messages/CompactActivityGroup.d.ts +10 -0
  6. package/dist/components/messages/CompactActivityGroup.d.ts.map +1 -0
  7. package/dist/components/messages/MessagePartItem.d.ts.map +1 -1
  8. package/dist/components/messages/MessageThread.d.ts +1 -0
  9. package/dist/components/messages/MessageThread.d.ts.map +1 -1
  10. package/dist/components/messages/MessageThreadContainer.d.ts.map +1 -1
  11. package/dist/components/messages/compactActivity.d.ts +34 -0
  12. package/dist/components/messages/compactActivity.d.ts.map +1 -0
  13. package/dist/components/messages/renderers/EditRenderer.d.ts +1 -1
  14. package/dist/components/messages/renderers/EditRenderer.d.ts.map +1 -1
  15. package/dist/components/messages/renderers/index.d.ts.map +1 -1
  16. package/dist/components/messages/renderers/types.d.ts +3 -1
  17. package/dist/components/messages/renderers/types.d.ts.map +1 -1
  18. package/dist/components/settings/SettingsSidebar.d.ts.map +1 -1
  19. package/dist/components/settings/SetuTopupModal.d.ts.map +1 -1
  20. package/dist/hooks/index.js +4812 -29
  21. package/dist/hooks/index.js.map +67 -1
  22. package/dist/hooks/useAuthStatus.d.ts.map +1 -1
  23. package/dist/hooks/useMCP.d.ts +9 -0
  24. package/dist/hooks/useMCP.d.ts.map +1 -1
  25. package/dist/hooks/usePreferences.d.ts +1 -0
  26. package/dist/hooks/usePreferences.d.ts.map +1 -1
  27. package/dist/hooks/useSessionStream.d.ts.map +1 -1
  28. package/dist/index.js +25918 -7
  29. package/dist/index.js.map +185 -1
  30. package/dist/lib/api-client/approval.d.ts.map +1 -1
  31. package/dist/lib/index.js +1007 -5
  32. package/dist/lib/index.js.map +22 -1
  33. package/dist/stores/index.js +693 -22
  34. package/dist/stores/index.js.map +30 -1
  35. package/dist/stores/toastStore.d.ts +1 -0
  36. package/dist/stores/toastStore.d.ts.map +1 -1
  37. package/dist/types/api.js +2 -2
  38. package/dist/types/api.js.map +9 -1
  39. package/package.json +4 -4
  40. package/dist/assets/provider-logos.js +0 -43
  41. package/dist/assets/provider-logos.js.map +0 -1
  42. package/dist/components/branch/BranchModal.js +0 -45
  43. package/dist/components/branch/BranchModal.js.map +0 -1
  44. package/dist/components/chat/ChatInput.js +0 -267
  45. package/dist/components/chat/ChatInput.js.map +0 -1
  46. package/dist/components/chat/ChatInputContainer.js +0 -295
  47. package/dist/components/chat/ChatInputContainer.js.map +0 -1
  48. package/dist/components/chat/ChatInputKeyHandler.js +0 -75
  49. package/dist/components/chat/ChatInputKeyHandler.js.map +0 -1
  50. package/dist/components/chat/CommandSuggestionsPopup.js +0 -45
  51. package/dist/components/chat/CommandSuggestionsPopup.js.map +0 -1
  52. package/dist/components/chat/ConfigModal.js +0 -46
  53. package/dist/components/chat/ConfigModal.js.map +0 -1
  54. package/dist/components/chat/ConfigSelector.js +0 -47
  55. package/dist/components/chat/ConfigSelector.js.map +0 -1
  56. package/dist/components/chat/FileMentionPopup.js +0 -138
  57. package/dist/components/chat/FileMentionPopup.js.map +0 -1
  58. package/dist/components/chat/ShortcutsModal.js +0 -275
  59. package/dist/components/chat/ShortcutsModal.js.map +0 -1
  60. package/dist/components/chat/StopButton.js +0 -25
  61. package/dist/components/chat/StopButton.js.map +0 -1
  62. package/dist/components/chat/UnifiedAgentSelector.js +0 -107
  63. package/dist/components/chat/UnifiedAgentSelector.js.map +0 -1
  64. package/dist/components/chat/UnifiedModelSelector.js +0 -209
  65. package/dist/components/chat/UnifiedModelSelector.js.map +0 -1
  66. package/dist/components/common/ProviderLogo.js +0 -30
  67. package/dist/components/common/ProviderLogo.js.map +0 -1
  68. package/dist/components/common/StatusIndicator.js +0 -54
  69. package/dist/components/common/StatusIndicator.js.map +0 -1
  70. package/dist/components/common/UsageModal.js +0 -55
  71. package/dist/components/common/UsageModal.js.map +0 -1
  72. package/dist/components/common/UsageRing.js +0 -22
  73. package/dist/components/common/UsageRing.js.map +0 -1
  74. package/dist/components/file-browser/FileBrowserSidebar.js +0 -50
  75. package/dist/components/file-browser/FileBrowserSidebar.js.map +0 -1
  76. package/dist/components/file-browser/FileBrowserSidebarToggle.js +0 -12
  77. package/dist/components/file-browser/FileBrowserSidebarToggle.js.map +0 -1
  78. package/dist/components/file-browser/FileViewerPanel.js +0 -85
  79. package/dist/components/file-browser/FileViewerPanel.js.map +0 -1
  80. package/dist/components/file-browser/QuickFilePicker.js +0 -118
  81. package/dist/components/file-browser/QuickFilePicker.js.map +0 -1
  82. package/dist/components/git/GitCommitModal.js +0 -70
  83. package/dist/components/git/GitCommitModal.js.map +0 -1
  84. package/dist/components/git/GitDiffPanel.js +0 -60
  85. package/dist/components/git/GitDiffPanel.js.map +0 -1
  86. package/dist/components/git/GitDiffViewer.js +0 -224
  87. package/dist/components/git/GitDiffViewer.js.map +0 -1
  88. package/dist/components/git/GitFileItem.js +0 -145
  89. package/dist/components/git/GitFileItem.js.map +0 -1
  90. package/dist/components/git/GitFileList.js +0 -108
  91. package/dist/components/git/GitFileList.js.map +0 -1
  92. package/dist/components/git/GitSidebar.js +0 -156
  93. package/dist/components/git/GitSidebar.js.map +0 -1
  94. package/dist/components/git/GitSidebarToggle.js +0 -18
  95. package/dist/components/git/GitSidebarToggle.js.map +0 -1
  96. package/dist/components/mcp/AddMCPServerModal.js +0 -166
  97. package/dist/components/mcp/AddMCPServerModal.js.map +0 -1
  98. package/dist/components/mcp/MCPSidebar.js +0 -192
  99. package/dist/components/mcp/MCPSidebar.js.map +0 -1
  100. package/dist/components/mcp/MCPSidebarToggle.js +0 -14
  101. package/dist/components/mcp/MCPSidebarToggle.js.map +0 -1
  102. package/dist/components/mcp/index.js +0 -4
  103. package/dist/components/mcp/index.js.map +0 -1
  104. package/dist/components/messages/AssistantMessageGroup.js +0 -176
  105. package/dist/components/messages/AssistantMessageGroup.js.map +0 -1
  106. package/dist/components/messages/MessagePartItem.js +0 -362
  107. package/dist/components/messages/MessagePartItem.js.map +0 -1
  108. package/dist/components/messages/MessageThread.js +0 -239
  109. package/dist/components/messages/MessageThread.js.map +0 -1
  110. package/dist/components/messages/MessageThreadContainer.js +0 -22
  111. package/dist/components/messages/MessageThreadContainer.js.map +0 -1
  112. package/dist/components/messages/ToolApprovalCard.js +0 -143
  113. package/dist/components/messages/ToolApprovalCard.js.map +0 -1
  114. package/dist/components/messages/TopupApprovalCard.js +0 -52
  115. package/dist/components/messages/TopupApprovalCard.js.map +0 -1
  116. package/dist/components/messages/UserMessageGroup.js +0 -132
  117. package/dist/components/messages/UserMessageGroup.js.map +0 -1
  118. package/dist/components/messages/renderers/ApplyPatchRenderer.js +0 -55
  119. package/dist/components/messages/renderers/ApplyPatchRenderer.js.map +0 -1
  120. package/dist/components/messages/renderers/BashRenderer.js +0 -55
  121. package/dist/components/messages/renderers/BashRenderer.js.map +0 -1
  122. package/dist/components/messages/renderers/DatabaseToolRenderer.js +0 -151
  123. package/dist/components/messages/renderers/DatabaseToolRenderer.js.map +0 -1
  124. package/dist/components/messages/renderers/DebugRenderer.js +0 -5
  125. package/dist/components/messages/renderers/DebugRenderer.js.map +0 -1
  126. package/dist/components/messages/renderers/DiffView.js +0 -206
  127. package/dist/components/messages/renderers/DiffView.js.map +0 -1
  128. package/dist/components/messages/renderers/EditRenderer.js +0 -25
  129. package/dist/components/messages/renderers/EditRenderer.js.map +0 -1
  130. package/dist/components/messages/renderers/ErrorRenderer.js +0 -162
  131. package/dist/components/messages/renderers/ErrorRenderer.js.map +0 -1
  132. package/dist/components/messages/renderers/FinishRenderer.js +0 -7
  133. package/dist/components/messages/renderers/FinishRenderer.js.map +0 -1
  134. package/dist/components/messages/renderers/GenericRenderer.js +0 -50
  135. package/dist/components/messages/renderers/GenericRenderer.js.map +0 -1
  136. package/dist/components/messages/renderers/GitCommitRenderer.js +0 -21
  137. package/dist/components/messages/renderers/GitCommitRenderer.js.map +0 -1
  138. package/dist/components/messages/renderers/GitDiffRenderer.js +0 -34
  139. package/dist/components/messages/renderers/GitDiffRenderer.js.map +0 -1
  140. package/dist/components/messages/renderers/GitStatusRenderer.js +0 -60
  141. package/dist/components/messages/renderers/GitStatusRenderer.js.map +0 -1
  142. package/dist/components/messages/renderers/ListRenderer.js +0 -28
  143. package/dist/components/messages/renderers/ListRenderer.js.map +0 -1
  144. package/dist/components/messages/renderers/LoadMcpToolsRenderer.js +0 -20
  145. package/dist/components/messages/renderers/LoadMcpToolsRenderer.js.map +0 -1
  146. package/dist/components/messages/renderers/McpToolRenderer.js +0 -68
  147. package/dist/components/messages/renderers/McpToolRenderer.js.map +0 -1
  148. package/dist/components/messages/renderers/ProgressUpdateRenderer.js +0 -9
  149. package/dist/components/messages/renderers/ProgressUpdateRenderer.js.map +0 -1
  150. package/dist/components/messages/renderers/ReadRenderer.js +0 -87
  151. package/dist/components/messages/renderers/ReadRenderer.js.map +0 -1
  152. package/dist/components/messages/renderers/ReasoningRenderer.js +0 -34
  153. package/dist/components/messages/renderers/ReasoningRenderer.js.map +0 -1
  154. package/dist/components/messages/renderers/SearchRenderer.js +0 -52
  155. package/dist/components/messages/renderers/SearchRenderer.js.map +0 -1
  156. package/dist/components/messages/renderers/SkillRenderer.js +0 -36
  157. package/dist/components/messages/renderers/SkillRenderer.js.map +0 -1
  158. package/dist/components/messages/renderers/TerminalRenderer.js +0 -84
  159. package/dist/components/messages/renderers/TerminalRenderer.js.map +0 -1
  160. package/dist/components/messages/renderers/TodosRenderer.js +0 -15
  161. package/dist/components/messages/renderers/TodosRenderer.js.map +0 -1
  162. package/dist/components/messages/renderers/ToolErrorDisplay.js +0 -10
  163. package/dist/components/messages/renderers/ToolErrorDisplay.js.map +0 -1
  164. package/dist/components/messages/renderers/TreeRenderer.js +0 -33
  165. package/dist/components/messages/renderers/TreeRenderer.js.map +0 -1
  166. package/dist/components/messages/renderers/WebSearchRenderer.js +0 -29
  167. package/dist/components/messages/renderers/WebSearchRenderer.js.map +0 -1
  168. package/dist/components/messages/renderers/WriteRenderer.js +0 -28
  169. package/dist/components/messages/renderers/WriteRenderer.js.map +0 -1
  170. package/dist/components/messages/renderers/index.js +0 -129
  171. package/dist/components/messages/renderers/index.js.map +0 -1
  172. package/dist/components/messages/renderers/shared/CopyButton.js +0 -27
  173. package/dist/components/messages/renderers/shared/CopyButton.js.map +0 -1
  174. package/dist/components/messages/renderers/shared/ImagePreview.js +0 -14
  175. package/dist/components/messages/renderers/shared/ImagePreview.js.map +0 -1
  176. package/dist/components/messages/renderers/shared/ToolContentBox.js +0 -9
  177. package/dist/components/messages/renderers/shared/ToolContentBox.js.map +0 -1
  178. package/dist/components/messages/renderers/shared/ToolHeader.js +0 -69
  179. package/dist/components/messages/renderers/shared/ToolHeader.js.map +0 -1
  180. package/dist/components/messages/renderers/shared/index.js +0 -5
  181. package/dist/components/messages/renderers/shared/index.js.map +0 -1
  182. package/dist/components/messages/renderers/types.js +0 -2
  183. package/dist/components/messages/renderers/types.js.map +0 -1
  184. package/dist/components/messages/renderers/utils.js +0 -60
  185. package/dist/components/messages/renderers/utils.js.map +0 -1
  186. package/dist/components/onboarding/OnboardingModal.js +0 -22
  187. package/dist/components/onboarding/OnboardingModal.js.map +0 -1
  188. package/dist/components/onboarding/index.js +0 -4
  189. package/dist/components/onboarding/index.js.map +0 -1
  190. package/dist/components/onboarding/steps/DefaultsStep.js +0 -104
  191. package/dist/components/onboarding/steps/DefaultsStep.js.map +0 -1
  192. package/dist/components/onboarding/steps/ProviderSetupStep.js +0 -398
  193. package/dist/components/onboarding/steps/ProviderSetupStep.js.map +0 -1
  194. package/dist/components/research/ResearchSidebar.js +0 -288
  195. package/dist/components/research/ResearchSidebar.js.map +0 -1
  196. package/dist/components/research/ResearchSidebarToggle.js +0 -15
  197. package/dist/components/research/ResearchSidebarToggle.js.map +0 -1
  198. package/dist/components/research/index.js +0 -3
  199. package/dist/components/research/index.js.map +0 -1
  200. package/dist/components/session-files/SessionFilesDiffPanel.js +0 -345
  201. package/dist/components/session-files/SessionFilesDiffPanel.js.map +0 -1
  202. package/dist/components/session-files/SessionFilesSidebar.js +0 -87
  203. package/dist/components/session-files/SessionFilesSidebar.js.map +0 -1
  204. package/dist/components/session-files/SessionFilesSidebarToggle.js +0 -15
  205. package/dist/components/session-files/SessionFilesSidebarToggle.js.map +0 -1
  206. package/dist/components/session-files/index.js +0 -4
  207. package/dist/components/session-files/index.js.map +0 -1
  208. package/dist/components/sessions/EditableTitle.js +0 -40
  209. package/dist/components/sessions/EditableTitle.js.map +0 -1
  210. package/dist/components/sessions/LeanHeader.js +0 -70
  211. package/dist/components/sessions/LeanHeader.js.map +0 -1
  212. package/dist/components/sessions/SessionHeader.js +0 -75
  213. package/dist/components/sessions/SessionHeader.js.map +0 -1
  214. package/dist/components/sessions/SessionItem.js +0 -28
  215. package/dist/components/sessions/SessionItem.js.map +0 -1
  216. package/dist/components/sessions/SessionListContainer.js +0 -86
  217. package/dist/components/sessions/SessionListContainer.js.map +0 -1
  218. package/dist/components/settings/SettingsSidebar.js +0 -212
  219. package/dist/components/settings/SettingsSidebar.js.map +0 -1
  220. package/dist/components/settings/SettingsSidebarToggle.js +0 -12
  221. package/dist/components/settings/SettingsSidebarToggle.js.map +0 -1
  222. package/dist/components/settings/SetuTopupModal.js +0 -306
  223. package/dist/components/settings/SetuTopupModal.js.map +0 -1
  224. package/dist/components/skills/SkillViewerPanel.js +0 -89
  225. package/dist/components/skills/SkillViewerPanel.js.map +0 -1
  226. package/dist/components/skills/SkillsSidebar.js +0 -59
  227. package/dist/components/skills/SkillsSidebar.js.map +0 -1
  228. package/dist/components/skills/SkillsSidebarToggle.js +0 -12
  229. package/dist/components/skills/SkillsSidebarToggle.js.map +0 -1
  230. package/dist/components/skills/index.js +0 -4
  231. package/dist/components/skills/index.js.map +0 -1
  232. package/dist/components/terminals/TerminalPanelToggle.js +0 -13
  233. package/dist/components/terminals/TerminalPanelToggle.js.map +0 -1
  234. package/dist/components/terminals/TerminalTabBar.js +0 -22
  235. package/dist/components/terminals/TerminalTabBar.js.map +0 -1
  236. package/dist/components/terminals/TerminalViewer.js +0 -371
  237. package/dist/components/terminals/TerminalViewer.js.map +0 -1
  238. package/dist/components/terminals/TerminalsPanel.js +0 -134
  239. package/dist/components/terminals/TerminalsPanel.js.map +0 -1
  240. package/dist/components/terminals/index.js +0 -11
  241. package/dist/components/terminals/index.js.map +0 -1
  242. package/dist/components/tunnel/TunnelSidebar.js +0 -55
  243. package/dist/components/tunnel/TunnelSidebar.js.map +0 -1
  244. package/dist/components/tunnel/TunnelSidebarToggle.js +0 -14
  245. package/dist/components/tunnel/TunnelSidebarToggle.js.map +0 -1
  246. package/dist/components/tunnel/index.js +0 -3
  247. package/dist/components/tunnel/index.js.map +0 -1
  248. package/dist/components/ui/Button.js +0 -19
  249. package/dist/components/ui/Button.js.map +0 -1
  250. package/dist/components/ui/Card.js +0 -7
  251. package/dist/components/ui/Card.js.map +0 -1
  252. package/dist/components/ui/ConfirmationDialog.js +0 -72
  253. package/dist/components/ui/ConfirmationDialog.js.map +0 -1
  254. package/dist/components/ui/Input.js +0 -7
  255. package/dist/components/ui/Input.js.map +0 -1
  256. package/dist/components/ui/Modal.js +0 -51
  257. package/dist/components/ui/Modal.js.map +0 -1
  258. package/dist/components/ui/ResizeHandle.js +0 -39
  259. package/dist/components/ui/ResizeHandle.js.map +0 -1
  260. package/dist/components/ui/Textarea.js +0 -7
  261. package/dist/components/ui/Textarea.js.map +0 -1
  262. package/dist/components/ui/Toaster.js +0 -41
  263. package/dist/components/ui/Toaster.js.map +0 -1
  264. package/dist/components/ui/ToolApprovalDialog.js +0 -57
  265. package/dist/components/ui/ToolApprovalDialog.js.map +0 -1
  266. package/dist/hooks/useAuthStatus.js +0 -287
  267. package/dist/hooks/useAuthStatus.js.map +0 -1
  268. package/dist/hooks/useBranch.js +0 -44
  269. package/dist/hooks/useBranch.js.map +0 -1
  270. package/dist/hooks/useCommandSuggestions.js +0 -86
  271. package/dist/hooks/useCommandSuggestions.js.map +0 -1
  272. package/dist/hooks/useConfig.js +0 -32
  273. package/dist/hooks/useConfig.js.map +0 -1
  274. package/dist/hooks/useFileBrowser.js +0 -30
  275. package/dist/hooks/useFileBrowser.js.map +0 -1
  276. package/dist/hooks/useFileMention.js +0 -56
  277. package/dist/hooks/useFileMention.js.map +0 -1
  278. package/dist/hooks/useFileUpload.js +0 -317
  279. package/dist/hooks/useFileUpload.js.map +0 -1
  280. package/dist/hooks/useFiles.js +0 -15
  281. package/dist/hooks/useFiles.js.map +0 -1
  282. package/dist/hooks/useGit.js +0 -149
  283. package/dist/hooks/useGit.js.map +0 -1
  284. package/dist/hooks/useImageUpload.js +0 -197
  285. package/dist/hooks/useImageUpload.js.map +0 -1
  286. package/dist/hooks/useKeyboardShortcuts.js +0 -249
  287. package/dist/hooks/useKeyboardShortcuts.js.map +0 -1
  288. package/dist/hooks/useMCP.js +0 -202
  289. package/dist/hooks/useMCP.js.map +0 -1
  290. package/dist/hooks/useMessages.js +0 -26
  291. package/dist/hooks/useMessages.js.map +0 -1
  292. package/dist/hooks/usePreferences.js +0 -61
  293. package/dist/hooks/usePreferences.js.map +0 -1
  294. package/dist/hooks/useProviderUsage.js +0 -44
  295. package/dist/hooks/useProviderUsage.js.map +0 -1
  296. package/dist/hooks/useQueueState.js +0 -31
  297. package/dist/hooks/useQueueState.js.map +0 -1
  298. package/dist/hooks/useResearch.js +0 -139
  299. package/dist/hooks/useResearch.js.map +0 -1
  300. package/dist/hooks/useSessionFiles.js +0 -15
  301. package/dist/hooks/useSessionFiles.js.map +0 -1
  302. package/dist/hooks/useSessionStream.js +0 -572
  303. package/dist/hooks/useSessionStream.js.map +0 -1
  304. package/dist/hooks/useSessions.js +0 -83
  305. package/dist/hooks/useSessions.js.map +0 -1
  306. package/dist/hooks/useSetuBalance.js +0 -71
  307. package/dist/hooks/useSetuBalance.js.map +0 -1
  308. package/dist/hooks/useSetuPayments.js +0 -171
  309. package/dist/hooks/useSetuPayments.js.map +0 -1
  310. package/dist/hooks/useShareStatus.js +0 -12
  311. package/dist/hooks/useShareStatus.js.map +0 -1
  312. package/dist/hooks/useSkills.js +0 -54
  313. package/dist/hooks/useSkills.js.map +0 -1
  314. package/dist/hooks/useTerminals.js +0 -67
  315. package/dist/hooks/useTerminals.js.map +0 -1
  316. package/dist/hooks/useTheme.js +0 -57
  317. package/dist/hooks/useTheme.js.map +0 -1
  318. package/dist/hooks/useToolApprovalShortcuts.js +0 -88
  319. package/dist/hooks/useToolApprovalShortcuts.js.map +0 -1
  320. package/dist/hooks/useTopupCallback.js +0 -74
  321. package/dist/hooks/useTopupCallback.js.map +0 -1
  322. package/dist/hooks/useTunnel.js +0 -158
  323. package/dist/hooks/useTunnel.js.map +0 -1
  324. package/dist/hooks/useVimMode.js +0 -298
  325. package/dist/hooks/useVimMode.js.map +0 -1
  326. package/dist/hooks/useWorkingDirectory.js +0 -34
  327. package/dist/hooks/useWorkingDirectory.js.map +0 -1
  328. package/dist/lib/api-client/approval.js +0 -25
  329. package/dist/lib/api-client/approval.js.map +0 -1
  330. package/dist/lib/api-client/auth.js +0 -139
  331. package/dist/lib/api-client/auth.js.map +0 -1
  332. package/dist/lib/api-client/branches.js +0 -45
  333. package/dist/lib/api-client/branches.js.map +0 -1
  334. package/dist/lib/api-client/config.js +0 -38
  335. package/dist/lib/api-client/config.js.map +0 -1
  336. package/dist/lib/api-client/files.js +0 -35
  337. package/dist/lib/api-client/files.js.map +0 -1
  338. package/dist/lib/api-client/git.js +0 -154
  339. package/dist/lib/api-client/git.js.map +0 -1
  340. package/dist/lib/api-client/index.js +0 -92
  341. package/dist/lib/api-client/index.js.map +0 -1
  342. package/dist/lib/api-client/sessions.js +0 -106
  343. package/dist/lib/api-client/sessions.js.map +0 -1
  344. package/dist/lib/api-client/setu.js +0 -144
  345. package/dist/lib/api-client/setu.js.map +0 -1
  346. package/dist/lib/api-client/skills.js +0 -31
  347. package/dist/lib/api-client/skills.js.map +0 -1
  348. package/dist/lib/api-client/utils.js +0 -65
  349. package/dist/lib/api-client/utils.js.map +0 -1
  350. package/dist/lib/commands.js +0 -124
  351. package/dist/lib/commands.js.map +0 -1
  352. package/dist/lib/config.js +0 -28
  353. package/dist/lib/config.js.map +0 -1
  354. package/dist/lib/nerd-font.js +0 -55
  355. package/dist/lib/nerd-font.js.map +0 -1
  356. package/dist/lib/open-url.js +0 -9
  357. package/dist/lib/open-url.js.map +0 -1
  358. package/dist/lib/parseResearchContext.js +0 -30
  359. package/dist/lib/parseResearchContext.js.map +0 -1
  360. package/dist/lib/sse-client.js +0 -113
  361. package/dist/lib/sse-client.js.map +0 -1
  362. package/dist/stores/confirmationStore.js +0 -27
  363. package/dist/stores/confirmationStore.js.map +0 -1
  364. package/dist/stores/fileBrowserStore.js +0 -63
  365. package/dist/stores/fileBrowserStore.js.map +0 -1
  366. package/dist/stores/filePickerStore.js +0 -8
  367. package/dist/stores/filePickerStore.js.map +0 -1
  368. package/dist/stores/focusStore.js +0 -12
  369. package/dist/stores/focusStore.js.map +0 -1
  370. package/dist/stores/gitStore.js +0 -63
  371. package/dist/stores/gitStore.js.map +0 -1
  372. package/dist/stores/mcpStore.js +0 -63
  373. package/dist/stores/mcpStore.js.map +0 -1
  374. package/dist/stores/onboardingStore.js +0 -38
  375. package/dist/stores/onboardingStore.js.map +0 -1
  376. package/dist/stores/panelWidthStore.js +0 -12
  377. package/dist/stores/panelWidthStore.js.map +0 -1
  378. package/dist/stores/pendingResearchStore.js +0 -38
  379. package/dist/stores/pendingResearchStore.js.map +0 -1
  380. package/dist/stores/queueStore.js +0 -11
  381. package/dist/stores/queueStore.js.map +0 -1
  382. package/dist/stores/researchStore.js +0 -54
  383. package/dist/stores/researchStore.js.map +0 -1
  384. package/dist/stores/sessionFilesStore.js +0 -62
  385. package/dist/stores/sessionFilesStore.js.map +0 -1
  386. package/dist/stores/settingsStore.js +0 -29
  387. package/dist/stores/settingsStore.js.map +0 -1
  388. package/dist/stores/setuStore.js +0 -29
  389. package/dist/stores/setuStore.js.map +0 -1
  390. package/dist/stores/sidebarStore.js +0 -10
  391. package/dist/stores/sidebarStore.js.map +0 -1
  392. package/dist/stores/skillsStore.js +0 -46
  393. package/dist/stores/skillsStore.js.map +0 -1
  394. package/dist/stores/terminalStore.js +0 -32
  395. package/dist/stores/terminalStore.js.map +0 -1
  396. package/dist/stores/toastStore.js +0 -46
  397. package/dist/stores/toastStore.js.map +0 -1
  398. package/dist/stores/toolApprovalStore.js +0 -16
  399. package/dist/stores/toolApprovalStore.js.map +0 -1
  400. package/dist/stores/topupApprovalStore.js +0 -11
  401. package/dist/stores/topupApprovalStore.js.map +0 -1
  402. package/dist/stores/tunnelStore.js +0 -55
  403. package/dist/stores/tunnelStore.js.map +0 -1
  404. package/dist/stores/usageStore.js +0 -14
  405. package/dist/stores/usageStore.js.map +0 -1
@@ -1,108 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { GitCommit, CheckSquare, AlertTriangle } from 'lucide-react';
3
- import { Button } from '../ui/Button';
4
- import { GitFileItem } from './GitFileItem';
5
- import { useGitStore } from '../../stores/gitStore';
6
- import { useStageFiles, useUnstageFiles } from '../../hooks/useGit';
7
- import { useFocusStore } from '../../stores/focusStore';
8
- import { useEffect, useRef, useMemo } from 'react';
9
- export function GitFileList({ status }) {
10
- const { openCommitModal, openDiff } = useGitStore();
11
- const stageFiles = useStageFiles();
12
- const unstageFiles = useUnstageFiles();
13
- const { currentFocus, gitFileIndex } = useFocusStore();
14
- const itemRefs = useRef(new Map());
15
- const hasConflicts = (status.conflicted?.length ?? 0) > 0;
16
- const hasStaged = status.staged.length > 0;
17
- const hasUnstaged = status.unstaged.length > 0 || status.untracked.length > 0;
18
- const unstagedFiles = [...status.unstaged, ...status.untracked];
19
- const hasUnstagedFiles = unstagedFiles.length > 0;
20
- const _allFiles = useMemo(() => {
21
- return [
22
- ...(status.conflicted ?? []),
23
- ...status.staged,
24
- ...status.unstaged,
25
- ...status.untracked,
26
- ];
27
- }, [status]);
28
- const unstagedPaths = new Set(status.unstaged.map((f) => f.path));
29
- const handleStageAll = () => {
30
- const filesToStage = unstagedFiles.map((f) => f.path);
31
- if (filesToStage.length > 0) {
32
- stageFiles.mutate(filesToStage);
33
- }
34
- };
35
- const _handleUnstageAll = () => {
36
- const filesToUnstage = status.staged.map((f) => f.path);
37
- if (filesToUnstage.length > 0) {
38
- unstageFiles.mutate(filesToUnstage);
39
- }
40
- };
41
- const conflictedLength = status.conflicted?.length ?? 0;
42
- useEffect(() => {
43
- if (currentFocus === 'git' && gitFileIndex >= 0) {
44
- const element = itemRefs.current.get(gitFileIndex);
45
- element?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
46
- const allFiles = [
47
- ...(status.conflicted ?? []),
48
- ...status.staged,
49
- ...status.unstaged,
50
- ...status.untracked,
51
- ];
52
- const focusedFile = allFiles[gitFileIndex];
53
- if (focusedFile) {
54
- const isStaged = status.staged.includes(focusedFile);
55
- openDiff(focusedFile.path, isStaged);
56
- }
57
- }
58
- }, [
59
- currentFocus,
60
- gitFileIndex,
61
- status.conflicted,
62
- status.staged,
63
- status.unstaged,
64
- status.untracked,
65
- openDiff,
66
- ]);
67
- return (_jsxs("div", { className: "flex flex-col", children: [hasConflicts && (_jsxs("div", { className: "border-b border-border", children: [_jsx("div", { className: "px-3 py-2 bg-red-500/10 flex items-center justify-between", children: _jsxs("span", { className: "text-xs font-semibold text-red-500 uppercase flex items-center gap-1.5", children: [_jsx(AlertTriangle, { className: "w-3.5 h-3.5" }), "Conflicts (", conflictedLength, ")"] }) }), _jsx("div", { className: "divide-y divide-border", children: status.conflicted?.map((file, index) => {
68
- const globalIndex = index;
69
- const isFocused = currentFocus === 'git' && gitFileIndex === globalIndex;
70
- return (_jsx("div", { ref: (el) => {
71
- if (el)
72
- itemRefs.current.set(globalIndex, el);
73
- else
74
- itemRefs.current.delete(globalIndex);
75
- }, className: isFocused ? 'ring-1 ring-inset ring-primary/40' : '', children: _jsx(GitFileItem, { file: file, staged: false }) }, file.path));
76
- }) })] })), hasStaged && (_jsxs("div", { className: "border-b border-border", children: [_jsxs("div", { className: "px-3 py-2 bg-muted/50 flex items-center justify-between", children: [_jsxs("span", { className: "text-xs font-semibold text-foreground uppercase", children: ["Staged Changes (", status.staged.length, ")"] }), _jsxs("div", { className: "flex items-center gap-1", children: [status.staged.length > 0 && !hasConflicts && (_jsxs(Button, { variant: "primary", size: "sm", onClick: openCommitModal, className: "h-6 text-xs", children: [_jsx(GitCommit, { className: "w-3 h-3 mr-1" }), "Commit"] })), status.staged.length > 0 && hasConflicts && (_jsx("span", { className: "text-xs text-muted-foreground", children: "Resolve conflicts first" }))] })] }), _jsx("div", { className: "divide-y divide-border", children: status.staged.map((file, index) => {
77
- const globalIndex = conflictedLength + index;
78
- const isFocused = currentFocus === 'git' && gitFileIndex === globalIndex;
79
- return (_jsx("div", { ref: (el) => {
80
- if (el)
81
- itemRefs.current.set(globalIndex, el);
82
- else
83
- itemRefs.current.delete(globalIndex);
84
- }, className: isFocused ? 'ring-1 ring-inset ring-primary/40' : '', children: _jsx(GitFileItem, { file: file, staged: true, showModifiedIndicator: unstagedPaths.has(file.path) }) }, file.path));
85
- }) })] })), hasUnstaged && (_jsxs("div", { children: [_jsxs("div", { className: "px-3 py-2 bg-muted/50 flex items-center justify-between", children: [_jsxs("span", { className: "text-xs font-semibold text-foreground uppercase", children: ["Changes (", status.unstaged.length + status.untracked.length, ")"] }), hasUnstagedFiles && (_jsxs(Button, { variant: "ghost", size: "sm", onClick: handleStageAll, title: "Stage all changes", className: "h-6 text-xs", children: [_jsx(CheckSquare, { className: "w-3 h-3 mr-1" }), "Stage All"] }))] }), _jsxs("div", { className: "divide-y divide-border", children: [status.unstaged.map((file, index) => {
86
- const globalIndex = conflictedLength + status.staged.length + index;
87
- const isFocused = currentFocus === 'git' && gitFileIndex === globalIndex;
88
- return (_jsx("div", { ref: (el) => {
89
- if (el)
90
- itemRefs.current.set(globalIndex, el);
91
- else
92
- itemRefs.current.delete(globalIndex);
93
- }, className: isFocused ? 'ring-1 ring-inset ring-primary/40' : '', children: _jsx(GitFileItem, { file: file, staged: false }) }, file.path));
94
- }), status.untracked.map((file, index) => {
95
- const globalIndex = conflictedLength +
96
- status.staged.length +
97
- status.unstaged.length +
98
- index;
99
- const isFocused = currentFocus === 'git' && gitFileIndex === globalIndex;
100
- return (_jsx("div", { ref: (el) => {
101
- if (el)
102
- itemRefs.current.set(globalIndex, el);
103
- else
104
- itemRefs.current.delete(globalIndex);
105
- }, className: isFocused ? 'ring-1 ring-inset ring-primary/40' : '', children: _jsx(GitFileItem, { file: file, staged: false }) }, file.path));
106
- })] })] })), !hasConflicts && !hasStaged && !hasUnstaged && (_jsx("div", { className: "p-4 text-sm text-muted-foreground text-center", children: "No changes" }))] }));
107
- }
108
- //# sourceMappingURL=GitFileList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitFileList.js","sourceRoot":"","sources":["../../../src/components/git/GitFileList.tsx"],"names":[],"mappings":"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"}
@@ -1,156 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo, useCallback, useEffect, useState } from 'react';
3
- import { FolderGit2, ChevronRight, ChevronDown, Download, GitBranch, Globe, Plus, RefreshCw, Sparkles, Trash2, Upload, X, } from 'lucide-react';
4
- import { useQueryClient } from '@tanstack/react-query';
5
- import { useGitStore } from '../../stores/gitStore';
6
- import { usePanelWidthStore } from '../../stores/panelWidthStore';
7
- import { useGitStatus, usePullChanges, usePushCommits, useGitInit, useGitRemotes, useAddRemote, useRemoveRemote, } from '../../hooks/useGit';
8
- import { Button } from '../ui/Button';
9
- import { GitFileList } from './GitFileList';
10
- import { ResizeHandle } from '../ui/ResizeHandle';
11
- const PANEL_KEY = 'git';
12
- const DEFAULT_WIDTH = 320;
13
- const MIN_WIDTH = 320;
14
- const MAX_WIDTH = 600;
15
- export const GitSidebar = memo(function GitSidebar({ onFixWithAI, }) {
16
- const isExpanded = useGitStore((state) => state.isExpanded);
17
- const collapseSidebar = useGitStore((state) => state.collapseSidebar);
18
- const panelWidth = usePanelWidthStore((s) => s.widths[PANEL_KEY] ?? DEFAULT_WIDTH);
19
- const { data: status, isLoading, error, refetch } = useGitStatus();
20
- const { data: remotes } = useGitRemotes();
21
- const queryClient = useQueryClient();
22
- const pushMutation = usePushCommits();
23
- const pullMutation = usePullChanges();
24
- const initMutation = useGitInit();
25
- const addRemoteMutation = useAddRemote();
26
- const removeRemoteMutation = useRemoveRemote();
27
- const [errors, setErrors] = useState([]);
28
- const [showRemotes, setShowRemotes] = useState(false);
29
- const [showAddRemote, setShowAddRemote] = useState(false);
30
- const [remoteName, setRemoteName] = useState('origin');
31
- const [remoteUrl, setRemoteUrl] = useState('');
32
- const [confirmRemoveRemote, setConfirmRemoveRemote] = useState(null);
33
- useEffect(() => {
34
- if (isExpanded) {
35
- queryClient.invalidateQueries({ queryKey: ['git', 'status'] });
36
- }
37
- }, [isExpanded, queryClient]);
38
- const handleRefresh = () => {
39
- refetch();
40
- };
41
- const addError = useCallback((message, context) => {
42
- const id = `${Date.now()}-${Math.random().toString(36).slice(2, 7)}`;
43
- setErrors((prev) => [...prev, { id, message, context }]);
44
- }, []);
45
- const dismissError = useCallback((id) => {
46
- setErrors((prev) => prev.filter((e) => e.id !== id));
47
- }, []);
48
- const handlePush = async () => {
49
- try {
50
- await pushMutation.mutateAsync();
51
- }
52
- catch (err) {
53
- addError(err instanceof Error ? err.message : 'Failed to push', 'git push');
54
- }
55
- };
56
- const handlePull = async () => {
57
- try {
58
- await pullMutation.mutateAsync();
59
- }
60
- catch (err) {
61
- addError(err instanceof Error ? err.message : 'Failed to pull', 'git pull');
62
- }
63
- };
64
- const handleAddRemote = async () => {
65
- if (!remoteName.trim() || !remoteUrl.trim())
66
- return;
67
- try {
68
- await addRemoteMutation.mutateAsync({
69
- name: remoteName.trim(),
70
- url: remoteUrl.trim(),
71
- });
72
- setRemoteName('origin');
73
- setRemoteUrl('');
74
- setShowAddRemote(false);
75
- }
76
- catch (err) {
77
- addError(err instanceof Error ? err.message : 'Failed to add remote', 'git remote add');
78
- }
79
- };
80
- const handleRemoveRemote = async (name) => {
81
- if (confirmRemoveRemote !== name) {
82
- setConfirmRemoveRemote(name);
83
- return;
84
- }
85
- setConfirmRemoveRemote(null);
86
- try {
87
- await removeRemoteMutation.mutateAsync(name);
88
- }
89
- catch (err) {
90
- addError(err instanceof Error ? err.message : 'Failed to remove remote', 'git remote remove');
91
- }
92
- };
93
- const handleFixWithAI = useCallback((gitError) => {
94
- const prompt = gitError.context
95
- ? `I got a git error during ${gitError.context}:\n\n${gitError.message}\n\nPlease help me fix this.`
96
- : `I got a git error:\n\n${gitError.message}\n\nPlease help me fix this.`;
97
- dismissError(gitError.id);
98
- onFixWithAI?.(prompt);
99
- }, [onFixWithAI, dismissError]);
100
- if (!isExpanded)
101
- return null;
102
- const allFiles = [
103
- ...(status?.conflicted || []),
104
- ...(status?.staged || []),
105
- ...(status?.unstaged || []),
106
- ...(status?.untracked || []),
107
- ];
108
- const totalChanges = allFiles.length;
109
- const hasRemotes = status?.remotes && status.remotes.length > 0;
110
- const hasUpstream = status?.hasUpstream ?? false;
111
- const canPush = status && hasRemotes && (status.ahead > 0 || !hasUpstream);
112
- const _canPull = !!status;
113
- const hasPendingPulls = status && status.behind > 0;
114
- const isActing = pushMutation.isPending || pullMutation.isPending;
115
- const isNotGitRepo = error instanceof Error &&
116
- error.message.toLowerCase().includes('not a git repository');
117
- const pushTitle = !hasRemotes
118
- ? 'No remote configured'
119
- : !hasUpstream
120
- ? 'Publish branch to remote'
121
- : canPush
122
- ? `Push ${status?.ahead} commit(s) to remote`
123
- : 'Nothing to push';
124
- return (_jsxs("div", { className: "border-l border-border bg-background flex h-full relative", style: { width: panelWidth }, children: [_jsx(ResizeHandle, { panelKey: PANEL_KEY, side: "right", minWidth: MIN_WIDTH, maxWidth: MAX_WIDTH, defaultWidth: DEFAULT_WIDTH }), _jsxs("div", { className: "flex-1 flex flex-col h-full min-w-0 w-full", children: [_jsxs("div", { className: "h-14 border-b border-border px-3 flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2 flex-1", children: [_jsx(GitBranch, { className: "w-4 h-4 text-muted-foreground" }), _jsxs("span", { className: "font-medium text-foreground", children: ["Git Changes", totalChanges > 0 && (_jsxs("span", { className: "ml-2 text-xs text-muted-foreground", children: ["(", totalChanges, ")"] }))] })] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: collapseSidebar, title: "Close sidebar", children: _jsx(ChevronRight, { className: "w-4 h-4" }) })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: isLoading ? (_jsx("div", { className: "p-4 text-sm text-muted-foreground", children: "Loading git status..." })) : isNotGitRepo ? (_jsxs("div", { className: "p-4 flex flex-col items-center justify-center gap-3 text-center", children: [_jsx(FolderGit2, { className: "w-10 h-10 text-muted-foreground" }), _jsx("div", { className: "text-sm text-muted-foreground", children: "No git repository found in this directory." }), _jsxs(Button, { variant: "secondary", size: "sm", onClick: () => initMutation.mutate(), disabled: initMutation.isPending, className: "gap-1.5", children: [_jsx(GitBranch, { className: `w-3.5 h-3.5 ${initMutation.isPending ? 'animate-spin' : ''}` }), initMutation.isPending
125
- ? 'Initializing...'
126
- : 'Initialize Repository'] }), initMutation.isError && (_jsx("span", { className: "text-xs text-orange-500", children: initMutation.error instanceof Error
127
- ? initMutation.error.message
128
- : 'Failed to initialize' }))] })) : error ? (_jsx("div", { className: "p-3 text-sm text-muted-foreground", children: _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("span", { className: "text-orange-500", children: error instanceof Error
129
- ? error.message
130
- : 'Failed to load git status' }), _jsx(Button, { variant: "secondary", size: "sm", onClick: handleRefresh, children: "Retry" })] }) })) : !status || totalChanges === 0 ? (_jsx("div", { className: "p-3 text-sm text-muted-foreground", children: "No changes detected" })) : (_jsx(GitFileList, { status: status })) }), status && !isNotGitRepo && !error && (_jsxs("div", { className: "border-t border-border", children: [_jsxs("button", { type: "button", onClick: () => setShowRemotes(!showRemotes), className: "w-full px-3 py-2 flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors", children: [showRemotes ? (_jsx(ChevronDown, { className: "w-3 h-3" })) : (_jsx(ChevronRight, { className: "w-3 h-3" })), _jsx(Globe, { className: "w-3 h-3" }), _jsx("span", { children: "Remotes" }), status.remotes && (_jsx("span", { className: "ml-auto text-[10px] opacity-60", children: status.remotes.length }))] }), showRemotes && (_jsxs("div", { className: "px-3 pb-2 space-y-1", children: [remotes && remotes.length > 0 ? (remotes
131
- .filter((r) => r.type === 'fetch')
132
- .map((remote) => (_jsxs("div", { className: "flex items-center gap-2 text-xs group", children: [_jsx("span", { className: "font-medium text-foreground", children: remote.name }), _jsx("span", { className: "truncate text-muted-foreground flex-1 min-w-0", children: remote.url }), _jsx("button", { type: "button", onClick: () => {
133
- if (confirmRemoveRemote === remote.name) {
134
- handleRemoveRemote(remote.name);
135
- }
136
- else {
137
- setConfirmRemoveRemote(remote.name);
138
- }
139
- }, onBlur: () => setConfirmRemoveRemote(null), disabled: removeRemoteMutation.isPending, className: `${confirmRemoveRemote === remote.name ? 'opacity-100 text-red-500' : 'opacity-0 group-hover:opacity-100 text-muted-foreground hover:text-red-500'} transition-all p-0.5`, title: confirmRemoveRemote === remote.name
140
- ? `Click again to confirm removing ${remote.name}`
141
- : `Remove ${remote.name}`, children: confirmRemoveRemote === remote.name ? (_jsx("span", { className: "text-[10px] font-medium", children: "Remove?" })) : (_jsx(Trash2, { className: "w-3 h-3" })) })] }, remote.name)))) : (_jsx("div", { className: "text-xs text-muted-foreground py-1", children: "No remotes configured" })), showAddRemote ? (_jsxs("div", { className: "space-y-1.5 pt-1", children: [_jsx("input", { type: "text", value: remoteName, onChange: (e) => setRemoteName(e.target.value), placeholder: "Name (e.g. origin)", className: "w-full text-xs px-2 py-1 rounded border border-border bg-background text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary" }), _jsx("input", { type: "text", value: remoteUrl, onChange: (e) => setRemoteUrl(e.target.value), placeholder: "URL (e.g. https://github.com/...)", className: "w-full text-xs px-2 py-1 rounded border border-border bg-background text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary", onKeyDown: (e) => {
142
- if (e.key === 'Enter')
143
- handleAddRemote();
144
- if (e.key === 'Escape')
145
- setShowAddRemote(false);
146
- } }), _jsxs("div", { className: "flex gap-1", children: [_jsx(Button, { variant: "secondary", size: "sm", onClick: handleAddRemote, disabled: addRemoteMutation.isPending ||
147
- !remoteName.trim() ||
148
- !remoteUrl.trim(), className: "flex-1 h-6 text-[10px]", children: addRemoteMutation.isPending ? 'Adding...' : 'Add' }), _jsx(Button, { variant: "ghost", size: "sm", onClick: () => setShowAddRemote(false), className: "h-6 text-[10px]", children: "Cancel" })] })] })) : (_jsxs("button", { type: "button", onClick: () => setShowAddRemote(true), className: "flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors pt-1", children: [_jsx(Plus, { className: "w-3 h-3" }), _jsx("span", { children: "Add remote" })] }))] }))] })), errors.length > 0 && (_jsx("div", { className: "border-t border-border", children: errors.map((gitError) => (_jsxs("div", { className: "px-3 py-2 text-xs border-b border-border last:border-b-0 bg-orange-50 dark:bg-orange-950/20 flex items-start gap-2", children: [_jsx("span", { className: "text-orange-500 flex-1 min-w-0 break-words", children: gitError.message }), _jsxs("div", { className: "flex items-center gap-1 flex-shrink-0", children: [onFixWithAI && (_jsxs("button", { type: "button", onClick: () => handleFixWithAI(gitError), className: "flex items-center gap-1 text-[10px] px-1.5 py-0.5 rounded bg-primary/10 text-primary hover:bg-primary/20 transition-colors", title: "Fix with AI", children: [_jsx(Sparkles, { className: "w-3 h-3" }), "Fix"] })), _jsx("button", { type: "button", onClick: () => dismissError(gitError.id), className: "text-muted-foreground hover:text-foreground transition-colors p-0.5", title: "Dismiss", children: _jsx(X, { className: "w-3 h-3" }) })] })] }, gitError.id))) })), _jsxs("div", { className: "h-12 border-t border-border flex items-center gap-1 px-2", children: [_jsxs(Button, { variant: "secondary", size: "sm", onClick: handlePull, disabled: isActing || !hasRemotes || !hasUpstream, title: !hasRemotes
149
- ? 'No remote configured'
150
- : !hasUpstream
151
- ? 'Branch not published yet'
152
- : hasPendingPulls
153
- ? `Pull ${status?.behind} commit(s) from remote`
154
- : 'Pull from remote', className: "flex-1 h-8 text-xs gap-1.5", children: [_jsx(Download, { className: `w-3.5 h-3.5 ${pullMutation.isPending ? 'animate-pulse' : ''}` }), "Pull", hasPendingPulls && (_jsxs("span", { className: "text-orange-500", children: ["\u2193", status?.behind] }))] }), _jsxs(Button, { variant: "secondary", size: "sm", onClick: handlePush, disabled: !canPush || isActing, title: pushTitle, className: "flex-1 h-8 text-xs gap-1.5", children: [_jsx(Upload, { className: `w-3.5 h-3.5 ${pushMutation.isPending ? 'animate-pulse' : ''}` }), !hasUpstream && hasRemotes ? 'Publish' : 'Push', hasUpstream && status && status.ahead > 0 && (_jsxs("span", { className: "text-green-500", children: ["\u2191", status.ahead] }))] })] }), _jsxs("div", { className: "h-12 px-4 border-t border-border text-xs text-muted-foreground flex items-center justify-between gap-2", children: [_jsxs("div", { className: "flex items-center gap-2 min-w-0 flex-1", children: [_jsx(GitBranch, { className: "w-3 h-3 flex-shrink-0" }), status?.branch && (_jsx("span", { className: "truncate", children: status.branch })), status && !hasUpstream && hasRemotes && (_jsx("span", { className: "text-[10px] text-orange-500 flex-shrink-0", children: "unpublished" }))] }), _jsx(Button, { variant: "ghost", size: "icon", onClick: handleRefresh, title: "Refresh git status", className: "h-6 w-6 flex-shrink-0", disabled: isLoading, children: _jsx(RefreshCw, { className: `w-3 h-3 ${isLoading ? 'animate-spin' : ''}` }) })] })] })] }));
155
- });
156
- //# sourceMappingURL=GitSidebar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitSidebar.js","sourceRoot":"","sources":["../../../src/components/git/GitSidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,EACN,UAAU,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,KAAK,EACL,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACN,CAAC,GACD,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EACN,YAAY,EACZ,cAAc,EACd,cAAc,EACd,UAAU,EACV,aAAa,EACb,YAAY,EACZ,eAAe,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,SAAS,GAAG,GAAG,CAAC;AAYtB,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,UAAU,CAAC,EAClD,WAAW,GACM;IACjB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,kBAAkB,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAC3C,CAAC;IACF,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;IACnE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,cAAc,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,cAAc,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC;IAClC,MAAM,iBAAiB,GAAG,YAAY,EAAE,CAAC;IACzC,MAAM,oBAAoB,GAAG,eAAe,EAAE,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAC7D,IAAI,CACJ,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,UAAU,EAAE,CAAC;YAChB,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;IACF,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9B,MAAM,aAAa,GAAG,GAAG,EAAE;QAC1B,OAAO,EAAE,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,OAAe,EAAE,OAAgB,EAAE,EAAE;QAClE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACrE,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,EAAU,EAAE,EAAE;QAC/C,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC;YACJ,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,QAAQ,CACP,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,EACrD,UAAU,CACV,CAAC;QACH,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC;YACJ,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,QAAQ,CACP,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,EACrD,UAAU,CACV,CAAC;QACH,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;QAClC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YAAE,OAAO;QACpD,IAAI,CAAC;YACJ,MAAM,iBAAiB,CAAC,WAAW,CAAC;gBACnC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE;gBACvB,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE;aACrB,CAAC,CAAC;YACH,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,QAAQ,CACP,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,EAC3D,gBAAgB,CAChB,CAAC;QACH,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;QACjD,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;YAClC,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC7B,OAAO;QACR,CAAC;QACD,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC;YACJ,MAAM,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,QAAQ,CACP,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,EAC9D,mBAAmB,CACnB,CAAC;QACH,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CAClC,CAAC,QAAkB,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO;YAC9B,CAAC,CAAC,4BAA4B,QAAQ,CAAC,OAAO,QAAQ,QAAQ,CAAC,OAAO,8BAA8B;YACpG,CAAC,CAAC,yBAAyB,QAAQ,CAAC,OAAO,8BAA8B,CAAC;QAC3E,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1B,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,WAAW,EAAE,YAAY,CAAC,CAC3B,CAAC;IAEF,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,QAAQ,GAAG;QAChB,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC;QAC3B,GAAG,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC;KAC5B,CAAC;IAEF,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;IACrC,MAAM,UAAU,GAAG,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAChE,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,KAAK,CAAC;IACjD,MAAM,OAAO,GAAG,MAAM,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,MAAM,eAAe,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC;IAClE,MAAM,YAAY,GACjB,KAAK,YAAY,KAAK;QACtB,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAG,CAAC,UAAU;QAC5B,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,OAAO;gBACR,CAAC,CAAC,QAAQ,MAAM,EAAE,KAAK,sBAAsB;gBAC7C,CAAC,CAAC,iBAAiB,CAAC;IAEvB,OAAO,CACN,eACC,SAAS,EAAC,2DAA2D,EACrE,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,aAE5B,KAAC,YAAY,IACZ,QAAQ,EAAE,SAAS,EACnB,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,SAAS,EACnB,QAAQ,EAAE,SAAS,EACnB,YAAY,EAAE,aAAa,GAC1B,EACF,eAAK,SAAS,EAAC,4CAA4C,aAC1D,eAAK,SAAS,EAAC,oEAAoE,aAClF,eAAK,SAAS,EAAC,gCAAgC,aAC9C,KAAC,SAAS,IAAC,SAAS,EAAC,+BAA+B,GAAG,EACvD,gBAAM,SAAS,EAAC,6BAA6B,4BAE3C,YAAY,GAAG,CAAC,IAAI,CACpB,gBAAM,SAAS,EAAC,oCAAoC,kBACjD,YAAY,SACR,CACP,IACK,IACF,EACN,KAAC,MAAM,IACN,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,eAAe,EACxB,KAAK,EAAC,eAAe,YAErB,KAAC,YAAY,IAAC,SAAS,EAAC,SAAS,GAAG,GAC5B,IACJ,EAEN,cAAK,SAAS,EAAC,wBAAwB,YACrC,SAAS,CAAC,CAAC,CAAC,CACZ,cAAK,SAAS,EAAC,mCAAmC,sCAE5C,CACN,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAClB,eAAK,SAAS,EAAC,iEAAiE,aAC/E,KAAC,UAAU,IAAC,SAAS,EAAC,iCAAiC,GAAG,EAC1D,cAAK,SAAS,EAAC,+BAA+B,2DAExC,EACN,MAAC,MAAM,IACN,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,EACpC,QAAQ,EAAE,YAAY,CAAC,SAAS,EAChC,SAAS,EAAC,SAAS,aAEnB,KAAC,SAAS,IACT,SAAS,EAAE,eAAe,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,GACvE,EACD,YAAY,CAAC,SAAS;4CACtB,CAAC,CAAC,iBAAiB;4CACnB,CAAC,CAAC,uBAAuB,IAClB,EACR,YAAY,CAAC,OAAO,IAAI,CACxB,eAAM,SAAS,EAAC,yBAAyB,YACvC,YAAY,CAAC,KAAK,YAAY,KAAK;wCACnC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO;wCAC5B,CAAC,CAAC,sBAAsB,GACnB,CACP,IACI,CACN,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CACX,cAAK,SAAS,EAAC,mCAAmC,YACjD,eAAK,SAAS,EAAC,qBAAqB,aACnC,eAAM,SAAS,EAAC,iBAAiB,YAC/B,KAAK,YAAY,KAAK;4CACtB,CAAC,CAAC,KAAK,CAAC,OAAO;4CACf,CAAC,CAAC,2BAA2B,GACxB,EACP,KAAC,MAAM,IAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,aAAa,sBAEnD,IACJ,GACD,CACN,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CACnC,cAAK,SAAS,EAAC,mCAAmC,oCAE5C,CACN,CAAC,CAAC,CAAC,CACH,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,CAC/B,GACI,EAEL,MAAM,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,CACrC,eAAK,SAAS,EAAC,wBAAwB,aACtC,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,EAC3C,SAAS,EAAC,kIAAkI,aAE3I,WAAW,CAAC,CAAC,CAAC,CACd,KAAC,WAAW,IAAC,SAAS,EAAC,SAAS,GAAG,CACnC,CAAC,CAAC,CAAC,CACH,KAAC,YAAY,IAAC,SAAS,EAAC,SAAS,GAAG,CACpC,EACD,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,GAAG,EAC7B,qCAAoB,EACnB,MAAM,CAAC,OAAO,IAAI,CAClB,eAAM,SAAS,EAAC,gCAAgC,YAC9C,MAAM,CAAC,OAAO,CAAC,MAAM,GAChB,CACP,IACO,EACR,WAAW,IAAI,CACf,eAAK,SAAS,EAAC,qBAAqB,aAClC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAChC,OAAO;yCACL,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;yCACjC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAChB,eAEC,SAAS,EAAC,uCAAuC,aAEjD,eAAM,SAAS,EAAC,6BAA6B,YAC3C,MAAM,CAAC,IAAI,GACN,EACP,eAAM,SAAS,EAAC,+CAA+C,YAC7D,MAAM,CAAC,GAAG,GACL,EACP,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE;oDACb,IAAI,mBAAmB,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;wDACzC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oDACjC,CAAC;yDAAM,CAAC;wDACP,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oDACrC,CAAC;gDACF,CAAC,EACD,MAAM,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAC1C,QAAQ,EAAE,oBAAoB,CAAC,SAAS,EACxC,SAAS,EAAE,GAAG,mBAAmB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,4EAA4E,uBAAuB,EACpL,KAAK,EACJ,mBAAmB,KAAK,MAAM,CAAC,IAAI;oDAClC,CAAC,CAAC,mCAAmC,MAAM,CAAC,IAAI,EAAE;oDAClD,CAAC,CAAC,UAAU,MAAM,CAAC,IAAI,EAAE,YAG1B,mBAAmB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CACtC,eAAM,SAAS,EAAC,yBAAyB,wBAElC,CACP,CAAC,CAAC,CAAC,CACH,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,GAAG,CAC9B,GACO,KAlCJ,MAAM,CAAC,IAAI,CAmCX,CACN,CAAC,CACH,CAAC,CAAC,CAAC,CACH,cAAK,SAAS,EAAC,oCAAoC,sCAE7C,CACN,EACA,aAAa,CAAC,CAAC,CAAC,CAChB,eAAK,SAAS,EAAC,kBAAkB,aAChC,gBACC,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,WAAW,EAAC,oBAAoB,EAChC,SAAS,EAAC,0KAA0K,GACnL,EACF,gBACC,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC7C,WAAW,EAAC,mCAAmC,EAC/C,SAAS,EAAC,0KAA0K,EACpL,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;oDAChB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;wDAAE,eAAe,EAAE,CAAC;oDACzC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;wDAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;gDACjD,CAAC,GACA,EACF,eAAK,SAAS,EAAC,YAAY,aAC1B,KAAC,MAAM,IACN,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,eAAe,EACxB,QAAQ,EACP,iBAAiB,CAAC,SAAS;4DAC3B,CAAC,UAAU,CAAC,IAAI,EAAE;4DAClB,CAAC,SAAS,CAAC,IAAI,EAAE,EAElB,SAAS,EAAC,wBAAwB,YAEjC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GAC1C,EACT,KAAC,MAAM,IACN,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,EACtC,SAAS,EAAC,iBAAiB,uBAGnB,IACJ,IACD,CACN,CAAC,CAAC,CAAC,CACH,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACrC,SAAS,EAAC,oGAAoG,aAE9G,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,GAAG,EAC5B,wCAAuB,IACf,CACT,IACI,CACN,IACI,CACN,EAEA,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,cAAK,SAAS,EAAC,wBAAwB,YACrC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACzB,eAEC,SAAS,EAAC,oHAAoH,aAE9H,eAAM,SAAS,EAAC,4CAA4C,YAC1D,QAAQ,CAAC,OAAO,GACX,EACP,eAAK,SAAS,EAAC,uCAAuC,aACpD,WAAW,IAAI,CACf,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,EACxC,SAAS,EAAC,4HAA4H,EACtI,KAAK,EAAC,aAAa,aAEnB,KAAC,QAAQ,IAAC,SAAS,EAAC,SAAS,GAAG,WAExB,CACT,EACD,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,EACxC,SAAS,EAAC,qEAAqE,EAC/E,KAAK,EAAC,SAAS,YAEf,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,GAAG,GACjB,IACJ,KA1BD,QAAQ,CAAC,EAAE,CA2BX,CACN,CAAC,GACG,CACN,EAED,eAAK,SAAS,EAAC,0DAA0D,aACxE,MAAC,MAAM,IACN,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,QAAQ,IAAI,CAAC,UAAU,IAAI,CAAC,WAAW,EACjD,KAAK,EACJ,CAAC,UAAU;oCACV,CAAC,CAAC,sBAAsB;oCACxB,CAAC,CAAC,CAAC,WAAW;wCACb,CAAC,CAAC,0BAA0B;wCAC5B,CAAC,CAAC,eAAe;4CAChB,CAAC,CAAC,QAAQ,MAAM,EAAE,MAAM,wBAAwB;4CAChD,CAAC,CAAC,kBAAkB,EAExB,SAAS,EAAC,4BAA4B,aAEtC,KAAC,QAAQ,IACR,SAAS,EAAE,eAAe,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,GACxE,UAED,eAAe,IAAI,CACnB,gBAAM,SAAS,EAAC,iBAAiB,uBAAG,MAAM,EAAE,MAAM,IAAQ,CAC1D,IACO,EACT,MAAC,MAAM,IACN,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,CAAC,OAAO,IAAI,QAAQ,EAC9B,KAAK,EAAE,SAAS,EAChB,SAAS,EAAC,4BAA4B,aAEtC,KAAC,MAAM,IACN,SAAS,EAAE,eAAe,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,GACxE,EACD,CAAC,WAAW,IAAI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAC/C,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAC7C,gBAAM,SAAS,EAAC,gBAAgB,uBAAG,MAAM,CAAC,KAAK,IAAQ,CACvD,IACO,IACJ,EAEN,eAAK,SAAS,EAAC,wGAAwG,aACtH,eAAK,SAAS,EAAC,wCAAwC,aACtD,KAAC,SAAS,IAAC,SAAS,EAAC,uBAAuB,GAAG,EAC9C,MAAM,EAAE,MAAM,IAAI,CAClB,eAAM,SAAS,EAAC,UAAU,YAAE,MAAM,CAAC,MAAM,GAAQ,CACjD,EACA,MAAM,IAAI,CAAC,WAAW,IAAI,UAAU,IAAI,CACxC,eAAM,SAAS,EAAC,2CAA2C,4BAEpD,CACP,IACI,EACN,KAAC,MAAM,IACN,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,aAAa,EACtB,KAAK,EAAC,oBAAoB,EAC1B,SAAS,EAAC,uBAAuB,EACjC,QAAQ,EAAE,SAAS,YAEnB,KAAC,SAAS,IACT,SAAS,EAAE,WAAW,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,GACtD,GACM,IACJ,IACD,IACD,CACN,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,18 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { memo } from 'react';
3
- import { GitBranch } from 'lucide-react';
4
- import { useGitStore } from '../../stores/gitStore';
5
- import { useGitStatus } from '../../hooks/useGit';
6
- export const GitSidebarToggle = memo(function GitSidebarToggle() {
7
- // Use selectors to only subscribe to needed state
8
- const isExpanded = useGitStore((state) => state.isExpanded);
9
- const toggleSidebar = useGitStore((state) => state.toggleSidebar);
10
- const { data: status } = useGitStatus();
11
- const totalChanges = (status?.staged?.length ?? 0) +
12
- (status?.unstaged?.length ?? 0) +
13
- (status?.untracked?.length ?? 0);
14
- return (_jsxs("button", { type: "button", onClick: toggleSidebar, className: `relative h-14 w-full transition-colors touch-manipulation flex items-center justify-center border-r-2 ${isExpanded
15
- ? 'bg-muted border-primary'
16
- : 'border-transparent hover:bg-muted/50'}`, title: "Git", children: [_jsx(GitBranch, { className: "w-5 h-5 text-muted-foreground mx-auto" }), totalChanges > 0 && (_jsx("span", { className: "absolute top-1 right-1 w-5 h-5 bg-primary text-primary-foreground text-xs rounded-full flex items-center justify-center font-semibold", children: totalChanges > 9 ? '9+' : totalChanges }))] }));
17
- });
18
- //# sourceMappingURL=GitSidebarToggle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GitSidebarToggle.js","sourceRoot":"","sources":["../../../src/components/git/GitSidebarToggle.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,gBAAgB;IAC7D,kDAAkD;IAClD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IAExC,MAAM,YAAY,GACjB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;QAC7B,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;QAC/B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAElC,OAAO,CACN,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,yGACV,UAAU;YACT,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,sCACJ,EAAE,EACF,KAAK,EAAC,KAAK,aAEX,KAAC,SAAS,IAAC,SAAS,EAAC,uCAAuC,GAAG,EAC9D,YAAY,GAAG,CAAC,IAAI,CACpB,eAAM,SAAS,EAAC,uIAAuI,YACrJ,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,GACjC,CACP,IACO,CACT,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,166 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { memo, useState, useCallback, useRef, useEffect } from 'react';
3
- import { Globe, Laptop, Loader2, FolderDot, Terminal } from 'lucide-react';
4
- import { Modal } from '../ui/Modal';
5
- import { Button } from '../ui/Button';
6
- import { Input } from '../ui/Input';
7
- import { useAddMCPServer } from '../../hooks/useMCP';
8
- function parseCommandString(input) {
9
- const parts = input.trim().split(/\s+/);
10
- return { command: parts[0] ?? '', args: parts.slice(1) };
11
- }
12
- function parseEnv(envStr) {
13
- const trimmed = envStr.trim();
14
- if (!trimmed)
15
- return undefined;
16
- const env = {};
17
- for (const line of trimmed.split('\n')) {
18
- const eq = line.indexOf('=');
19
- if (eq > 0) {
20
- env[line.slice(0, eq).trim()] = line.slice(eq + 1).trim();
21
- }
22
- }
23
- return Object.keys(env).length > 0 ? env : undefined;
24
- }
25
- function parseHeaders(headerStr) {
26
- const trimmed = headerStr.trim();
27
- if (!trimmed)
28
- return undefined;
29
- const headers = {};
30
- for (const line of trimmed.split('\n')) {
31
- const colon = line.indexOf(':');
32
- if (colon > 0) {
33
- headers[line.slice(0, colon).trim()] = line.slice(colon + 1).trim();
34
- }
35
- }
36
- return Object.keys(headers).length > 0 ? headers : undefined;
37
- }
38
- export const AddMCPServerModal = memo(function AddMCPServerModal({ isOpen, onClose, }) {
39
- const [serverMode, setServerMode] = useState('local');
40
- const [name, setName] = useState('');
41
- const [commandStr, setCommandStr] = useState('');
42
- const [url, setUrl] = useState('');
43
- const [transport, setTransport] = useState('http');
44
- const [headersStr, setHeadersStr] = useState('');
45
- const [envStr, setEnvStr] = useState('');
46
- const [scope, setScope] = useState('global');
47
- const [error, setError] = useState(null);
48
- const addServer = useAddMCPServer();
49
- const reset = useCallback(() => {
50
- setName('');
51
- setCommandStr('');
52
- setUrl('');
53
- setTransport('http');
54
- setHeadersStr('');
55
- setEnvStr('');
56
- setScope('global');
57
- setError(null);
58
- setServerMode('local');
59
- }, []);
60
- const handleClose = useCallback(() => {
61
- reset();
62
- onClose();
63
- }, [reset, onClose]);
64
- const handleSubmit = useCallback(async () => {
65
- setError(null);
66
- const trimmedName = name.trim();
67
- if (!trimmedName) {
68
- setError('Server name is required');
69
- return;
70
- }
71
- try {
72
- if (serverMode === 'local') {
73
- const trimmedCmd = commandStr.trim();
74
- if (!trimmedCmd) {
75
- setError('Command is required');
76
- return;
77
- }
78
- if (/^https?:\/\//i.test(trimmedCmd)) {
79
- setError('Local commands cannot be URLs. Switch to Remote (HTTP) for remote servers.');
80
- return;
81
- }
82
- const { command, args } = parseCommandString(trimmedCmd);
83
- await addServer.mutateAsync({
84
- name: trimmedName,
85
- transport: 'stdio',
86
- command,
87
- args,
88
- env: parseEnv(envStr),
89
- scope,
90
- });
91
- }
92
- else {
93
- const trimmedUrl = url.trim();
94
- if (!trimmedUrl) {
95
- setError('URL is required');
96
- return;
97
- }
98
- await addServer.mutateAsync({
99
- name: trimmedName,
100
- transport,
101
- url: trimmedUrl,
102
- headers: parseHeaders(headersStr),
103
- scope,
104
- });
105
- }
106
- handleClose();
107
- }
108
- catch (err) {
109
- setError(err instanceof Error ? err.message : 'Failed to add server');
110
- }
111
- }, [
112
- name,
113
- serverMode,
114
- commandStr,
115
- envStr,
116
- url,
117
- transport,
118
- headersStr,
119
- scope,
120
- addServer,
121
- handleClose,
122
- ]);
123
- const contentRef = useRef(null);
124
- const [contentHeight, setContentHeight] = useState(undefined);
125
- useEffect(() => {
126
- const el = contentRef.current;
127
- if (!el)
128
- return;
129
- const observer = new ResizeObserver(() => {
130
- setContentHeight(el.scrollHeight);
131
- });
132
- observer.observe(el);
133
- return () => observer.disconnect();
134
- }, []);
135
- return (_jsx(Modal, { isOpen: isOpen, onClose: handleClose, title: "Add MCP Server", children: _jsx("div", { className: "overflow-hidden transition-[height] duration-200 ease-in-out", style: { height: contentHeight !== undefined ? contentHeight : 'auto' }, children: _jsxs("div", { ref: contentRef, className: "space-y-4", children: [_jsxs("div", { className: "relative flex w-full rounded-lg bg-muted p-1", children: [_jsx("div", { className: "absolute top-1 bottom-1 rounded-md bg-background shadow-md border border-border transition-all duration-200 ease-in-out", style: {
136
- left: serverMode === 'local' ? '4px' : '50%',
137
- right: serverMode === 'remote' ? '4px' : '50%',
138
- } }), _jsxs("button", { type: "button", onClick: () => setServerMode('local'), className: `relative z-10 flex items-center justify-center gap-2 flex-1 text-sm font-medium py-2 rounded-md transition-colors duration-200 ${serverMode === 'local'
139
- ? 'text-foreground'
140
- : 'text-muted-foreground/50'}`, children: [_jsx(Terminal, { className: "w-4 h-4" }), "Local (stdio)"] }), _jsxs("button", { type: "button", onClick: () => setServerMode('remote'), className: `relative z-10 flex items-center justify-center gap-2 flex-1 text-sm font-medium py-2 rounded-md transition-colors duration-200 ${serverMode === 'remote'
141
- ? 'text-foreground'
142
- : 'text-muted-foreground/50'}`, children: [_jsx(Globe, { className: "w-4 h-4" }), "Remote (HTTP)"] })] }), _jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium mb-1", children: "Name" }), _jsx(Input, { value: name, onChange: (e) => setName(e.target.value), placeholder: "e.g. github, linear, helius", autoFocus: true })] }), serverMode === 'local' ? (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium mb-1", children: "Command" }), _jsx(Input, { value: commandStr, onChange: (e) => setCommandStr(e.target.value), placeholder: "e.g. npx -y @modelcontextprotocol/server-github", onKeyDown: (e) => {
143
- if (e.key === 'Enter')
144
- handleSubmit();
145
- } }), _jsxs("p", { className: "text-xs text-muted-foreground mt-1", children: ["Like", ' ', _jsx("code", { className: "bg-muted px-1 rounded", children: "npx -y helius-mcp@latest" })] })] }), _jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium mb-1", children: "Environment Variables" }), _jsx("textarea", { value: envStr, onChange: (e) => setEnvStr(e.target.value), placeholder: 'GITHUB_TOKEN=ghp_xxx\nAPI_KEY=sk-xxx', rows: 2, className: "w-full bg-muted border border-border rounded-md px-3 py-2 text-sm font-mono resize-none focus:outline-none focus:ring-1 focus:ring-primary" }), _jsx("p", { className: "text-xs text-muted-foreground mt-1", children: "One per line: KEY=VALUE" })] })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium mb-1", children: "URL" }), _jsx(Input, { value: url, onChange: (e) => setUrl(e.target.value), placeholder: "e.g. https://mcp.linear.app/mcp", onKeyDown: (e) => {
146
- if (e.key === 'Enter')
147
- handleSubmit();
148
- } })] }), _jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium mb-1", children: "Transport" }), _jsxs("div", { className: "relative flex w-full rounded-lg border border-border bg-muted/50 p-0.5", children: [_jsx("div", { className: "absolute top-0.5 bottom-0.5 rounded-md bg-background shadow-md border border-border transition-all duration-200 ease-in-out", style: {
149
- left: transport === 'http' ? '2px' : '50%',
150
- right: transport === 'sse' ? '2px' : '50%',
151
- } }), _jsx("button", { type: "button", onClick: () => setTransport('http'), className: `relative z-10 flex items-center justify-center gap-1.5 text-xs font-medium py-1.5 rounded-md flex-1 transition-colors duration-200 ${transport === 'http'
152
- ? 'text-foreground'
153
- : 'text-muted-foreground/50'}`, children: "HTTP (recommended)" }), _jsx("button", { type: "button", onClick: () => setTransport('sse'), className: `relative z-10 flex items-center justify-center gap-1.5 text-xs font-medium py-1.5 rounded-md flex-1 transition-colors duration-200 ${transport === 'sse'
154
- ? 'text-foreground'
155
- : 'text-muted-foreground/50'}`, children: "SSE (legacy)" })] })] }), _jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium mb-1", children: "Headers" }), _jsx("textarea", { value: headersStr, onChange: (e) => setHeadersStr(e.target.value), placeholder: 'Authorization: Bearer xxx', rows: 2, className: "w-full bg-muted border border-border rounded-md px-3 py-2 text-sm font-mono resize-none focus:outline-none focus:ring-1 focus:ring-primary" }), _jsx("p", { className: "text-xs text-muted-foreground mt-1", children: "One per line: Header-Name: value" })] }), _jsx("p", { className: "text-xs text-muted-foreground", children: "For OAuth servers (Linear, Notion, etc.), leave headers empty and authenticate after adding." })] })), _jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium mb-1", children: "Scope" }), _jsxs("div", { className: "relative flex w-full rounded-lg border border-border bg-muted/50 p-0.5", children: [_jsx("div", { className: "absolute top-0.5 bottom-0.5 rounded-md bg-background shadow-md border border-border transition-all duration-200 ease-in-out", style: {
156
- left: scope === 'global' ? '2px' : '50%',
157
- right: scope === 'project' ? '2px' : '50%',
158
- } }), _jsxs("button", { type: "button", onClick: () => setScope('global'), className: `relative z-10 flex items-center justify-center gap-1.5 text-xs font-medium py-1.5 rounded-md flex-1 transition-colors duration-200 ${scope === 'global'
159
- ? 'text-foreground'
160
- : 'text-muted-foreground/50'}`, children: [_jsx(Laptop, { className: "w-3 h-3" }), "All projects"] }), _jsxs("button", { type: "button", onClick: () => setScope('project'), className: `relative z-10 flex items-center justify-center gap-1.5 text-xs font-medium py-1.5 rounded-md flex-1 transition-colors duration-200 ${scope === 'project'
161
- ? 'text-foreground'
162
- : 'text-muted-foreground/50'}`, children: [_jsx(FolderDot, { className: "w-3 h-3" }), "This project only"] })] }), _jsx("p", { className: "text-xs text-muted-foreground mt-1", children: scope === 'global'
163
- ? 'Saved to ~/.config/otto/config.json'
164
- : 'Saved to .otto/config.json (project-local)' })] }), error && (_jsx("div", { className: "text-sm text-red-400 bg-red-500/10 px-3 py-2 rounded", children: error })), _jsxs("div", { className: "flex justify-end gap-2 pt-2", children: [_jsx(Button, { variant: "ghost", onClick: handleClose, children: "Cancel" }), _jsx(Button, { variant: "primary", onClick: handleSubmit, disabled: addServer.isPending, children: addServer.isPending ? (_jsxs(_Fragment, { children: [_jsx(Loader2, { className: "w-3 h-3 animate-spin mr-1" }), "Adding..."] })) : ('Add Server') })] })] }) }) }));
165
- });
166
- //# sourceMappingURL=AddMCPServerModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AddMCPServerModal.js","sourceRoot":"","sources":["../../../src/components/mcp/AddMCPServerModal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAUrD,SAAS,kBAAkB,CAAC,KAAa;IAIxC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc;IAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB;IACtC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,iBAAiB,CAAC,EAChE,MAAM,EACN,OAAO,GACiB;IACxB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAa,OAAO,CAAC,CAAC;IAClE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAiB,MAAM,CAAC,CAAC;IACnE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAW,QAAQ,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IAEpC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,aAAa,CAAC,EAAE,CAAC,CAAC;QAClB,MAAM,CAAC,EAAE,CAAC,CAAC;QACX,YAAY,CAAC,MAAM,CAAC,CAAC;QACrB,aAAa,CAAC,EAAE,CAAC,CAAC;QAClB,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,aAAa,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAErB,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC3C,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAEhC,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,QAAQ,CAAC,yBAAyB,CAAC,CAAC;YACpC,OAAO;QACR,CAAC;QAED,IAAI,CAAC;YACJ,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjB,QAAQ,CAAC,qBAAqB,CAAC,CAAC;oBAChC,OAAO;gBACR,CAAC;gBACD,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,QAAQ,CACP,4EAA4E,CAC5E,CAAC;oBACF,OAAO;gBACR,CAAC;gBACD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBACzD,MAAM,SAAS,CAAC,WAAW,CAAC;oBAC3B,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,OAAO;oBAClB,OAAO;oBACP,IAAI;oBACJ,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC;oBACrB,KAAK;iBACL,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACP,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjB,QAAQ,CAAC,iBAAiB,CAAC,CAAC;oBAC5B,OAAO;gBACR,CAAC;gBACD,MAAM,SAAS,CAAC,WAAW,CAAC;oBAC3B,IAAI,EAAE,WAAW;oBACjB,SAAS;oBACT,GAAG,EAAE,UAAU;oBACf,OAAO,EAAE,YAAY,CAAC,UAAU,CAAC;oBACjC,KAAK;iBACL,CAAC,CAAC;YACJ,CAAC;YACD,WAAW,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;QACvE,CAAC;IACF,CAAC,EAAE;QACF,IAAI;QACJ,UAAU;QACV,UAAU;QACV,MAAM;QACN,GAAG;QACH,SAAS;QACT,UAAU;QACV,KAAK;QACL,SAAS;QACT,WAAW;KACX,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CACjD,SAAS,CACT,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;YACxC,gBAAgB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrB,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACN,KAAC,KAAK,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAC,gBAAgB,YAClE,cACC,SAAS,EAAC,8DAA8D,EACxE,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,YAEvE,eAAK,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,WAAW,aAC1C,eAAK,SAAS,EAAC,8CAA8C,aAC5D,cACC,SAAS,EAAC,yHAAyH,EACnI,KAAK,EAAE;oCACN,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;oCAC5C,KAAK,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;iCAC9C,GACA,EACF,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EACrC,SAAS,EAAE,kIACV,UAAU,KAAK,OAAO;oCACrB,CAAC,CAAC,iBAAiB;oCACnB,CAAC,CAAC,0BACJ,EAAE,aAEF,KAAC,QAAQ,IAAC,SAAS,EAAC,SAAS,GAAG,qBAExB,EACT,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,EACtC,SAAS,EAAE,kIACV,UAAU,KAAK,QAAQ;oCACtB,CAAC,CAAC,iBAAiB;oCACnB,CAAC,CAAC,0BACJ,EAAE,aAEF,KAAC,KAAK,IAAC,SAAS,EAAC,SAAS,GAAG,qBAErB,IACJ,EAEN,0BACC,cAAK,SAAS,EAAC,0BAA0B,qBAAW,EACpD,KAAC,KAAK,IACL,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxC,WAAW,EAAC,6BAA6B,EACzC,SAAS,SACR,IACG,EAEL,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,CACzB,8BACC,0BACC,cAAK,SAAS,EAAC,0BAA0B,wBAAc,EACvD,KAAC,KAAK,IACL,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,WAAW,EAAC,iDAAiD,EAC7D,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;4CAChB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;gDAAE,YAAY,EAAE,CAAC;wCACvC,CAAC,GACA,EACF,aAAG,SAAS,EAAC,oCAAoC,qBAC3C,GAAG,EACR,eAAM,SAAS,EAAC,uBAAuB,yCAEhC,IACJ,IACC,EACN,0BACC,cAAK,SAAS,EAAC,0BAA0B,sCAEnC,EACN,mBACC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,WAAW,EAAE,sCAAsC,EACnD,IAAI,EAAE,CAAC,EACP,SAAS,EAAC,4IAA4I,GACrJ,EACF,YAAG,SAAS,EAAC,oCAAoC,wCAE7C,IACC,IACJ,CACH,CAAC,CAAC,CAAC,CACH,8BACC,0BACC,cAAK,SAAS,EAAC,0BAA0B,oBAAU,EACnD,KAAC,KAAK,IACL,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACvC,WAAW,EAAC,iCAAiC,EAC7C,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;4CAChB,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;gDAAE,YAAY,EAAE,CAAC;wCACvC,CAAC,GACA,IACG,EACN,0BACC,cAAK,SAAS,EAAC,0BAA0B,0BAAgB,EACzD,eAAK,SAAS,EAAC,wEAAwE,aACtF,cACC,SAAS,EAAC,6HAA6H,EACvI,KAAK,EAAE;oDACN,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;oDAC1C,KAAK,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;iDAC1C,GACA,EACF,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,EACnC,SAAS,EAAE,sIACV,SAAS,KAAK,MAAM;oDACnB,CAAC,CAAC,iBAAiB;oDACnB,CAAC,CAAC,0BACJ,EAAE,mCAGM,EACT,iBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAClC,SAAS,EAAE,sIACV,SAAS,KAAK,KAAK;oDAClB,CAAC,CAAC,iBAAiB;oDACnB,CAAC,CAAC,0BACJ,EAAE,6BAGM,IACJ,IACD,EACN,0BACC,cAAK,SAAS,EAAC,0BAA0B,wBAAc,EACvD,mBACC,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,WAAW,EAAE,2BAA2B,EACxC,IAAI,EAAE,CAAC,EACP,SAAS,EAAC,4IAA4I,GACrJ,EACF,YAAG,SAAS,EAAC,oCAAoC,iDAE7C,IACC,EACN,YAAG,SAAS,EAAC,+BAA+B,6GAGxC,IACF,CACH,EAED,0BACC,cAAK,SAAS,EAAC,0BAA0B,sBAAY,EACrD,eAAK,SAAS,EAAC,wEAAwE,aACtF,cACC,SAAS,EAAC,6HAA6H,EACvI,KAAK,EAAE;4CACN,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;4CACxC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;yCAC1C,GACA,EACF,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACjC,SAAS,EAAE,sIACV,KAAK,KAAK,QAAQ;4CACjB,CAAC,CAAC,iBAAiB;4CACnB,CAAC,CAAC,0BACJ,EAAE,aAEF,KAAC,MAAM,IAAC,SAAS,EAAC,SAAS,GAAG,oBAEtB,EACT,kBACC,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAClC,SAAS,EAAE,sIACV,KAAK,KAAK,SAAS;4CAClB,CAAC,CAAC,iBAAiB;4CACnB,CAAC,CAAC,0BACJ,EAAE,aAEF,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,GAAG,yBAEzB,IACJ,EACN,YAAG,SAAS,EAAC,oCAAoC,YAC/C,KAAK,KAAK,QAAQ;oCAClB,CAAC,CAAC,qCAAqC;oCACvC,CAAC,CAAC,4CAA4C,GAC5C,IACC,EAEL,KAAK,IAAI,CACT,cAAK,SAAS,EAAC,sDAAsD,YACnE,KAAK,GACD,CACN,EAED,eAAK,SAAS,EAAC,6BAA6B,aAC3C,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,OAAO,EAAE,WAAW,uBAEnC,EACT,KAAC,MAAM,IACN,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,SAAS,CAAC,SAAS,YAE5B,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CACtB,8BACC,KAAC,OAAO,IAAC,SAAS,EAAC,2BAA2B,GAAG,iBAE/C,CACH,CAAC,CAAC,CAAC,CACH,YAAY,CACZ,GACO,IACJ,IACD,GACD,GACC,CACR,CAAC;AACH,CAAC,CAAC,CAAC"}