tarsk 0.6.87 → 0.6.89

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 (255) hide show
  1. package/README.md +63 -24
  2. package/dist/bundled-skills/email-me/SKILL.md +15 -0
  3. package/dist/bundled-skills/email-me/scripts/__tests__/email_me.test.js +64 -0
  4. package/dist/bundled-skills/email-me/scripts/email_me.js +45 -0
  5. package/dist/bundled-skills/handoff/SKILL.md +19 -0
  6. package/dist/bundled-skills/tarsk-agent/SKILL.md +372 -0
  7. package/dist/bundled-skills/tarsk-ask-user/SKILL.md +18 -0
  8. package/dist/bundled-skills/tarsk-ask-user/scripts/ask_user.js +101 -0
  9. package/dist/bundled-skills/tarsk-bash/SKILL.md +17 -0
  10. package/dist/bundled-skills/tarsk-bash/scripts/bash.js +248 -0
  11. package/dist/bundled-skills/tarsk-browser/SKILL.md +17 -0
  12. package/dist/bundled-skills/tarsk-browser/scripts/browser.js +252 -0
  13. package/dist/bundled-skills/tarsk-chat-title/SKILL.md +14 -0
  14. package/dist/bundled-skills/tarsk-chat-title/scripts/chat_title.js +37 -0
  15. package/dist/bundled-skills/tarsk-connect-mcp/SKILL.md +23 -0
  16. package/dist/bundled-skills/tarsk-connect-mcp/scripts/__tests__/connect_mcp.test.js +68 -0
  17. package/dist/bundled-skills/tarsk-connect-mcp/scripts/connect_mcp.js +119 -0
  18. package/dist/bundled-skills/tarsk-create-project/SKILL.md +25 -0
  19. package/dist/bundled-skills/tarsk-create-project/scripts/__tests__/create_project.test.js +94 -0
  20. package/dist/bundled-skills/tarsk-create-project/scripts/create_project.js +88 -0
  21. package/dist/bundled-skills/tarsk-edit/SKILL.md +18 -0
  22. package/dist/bundled-skills/tarsk-edit/scripts/edit.js +118 -0
  23. package/dist/bundled-skills/tarsk-execute-skill-script/SKILL.md +19 -0
  24. package/dist/bundled-skills/tarsk-execute-skill-script/scripts/execute_skill_script.js +77 -0
  25. package/dist/bundled-skills/tarsk-fetch/SKILL.md +18 -0
  26. package/dist/bundled-skills/tarsk-fetch/scripts/fetch.js +38 -0
  27. package/dist/bundled-skills/tarsk-find/SKILL.md +16 -0
  28. package/dist/bundled-skills/tarsk-find/scripts/find.js +78 -0
  29. package/dist/bundled-skills/tarsk-find-images/SKILL.md +18 -0
  30. package/dist/bundled-skills/tarsk-find-images/scripts/find_images.js +78 -0
  31. package/dist/bundled-skills/tarsk-generate-image/SKILL.md +18 -0
  32. package/dist/bundled-skills/tarsk-generate-image/scripts/generate_image.js +55 -0
  33. package/dist/bundled-skills/tarsk-get-observation/SKILL.md +19 -0
  34. package/dist/bundled-skills/tarsk-get-observation/scripts/get_observation.js +293 -0
  35. package/dist/bundled-skills/tarsk-grep/SKILL.md +16 -0
  36. package/dist/bundled-skills/tarsk-grep/scripts/grep.js +174 -0
  37. package/dist/bundled-skills/tarsk-history/SKILL.md +15 -0
  38. package/dist/bundled-skills/tarsk-history/scripts/history.js +68 -0
  39. package/dist/bundled-skills/tarsk-improve/SKILL.md +232 -0
  40. package/dist/bundled-skills/tarsk-improve/references/signals.md +16 -0
  41. package/dist/bundled-skills/tarsk-improve/scripts/durable-runs.ts +635 -0
  42. package/dist/bundled-skills/tarsk-improve/scripts/ensure-exported.ts +238 -0
  43. package/dist/bundled-skills/tarsk-improve/scripts/export-tool-skills-lib.ts +299 -0
  44. package/dist/bundled-skills/tarsk-improve/scripts/summarize-session.ts +126 -0
  45. package/dist/bundled-skills/tarsk-jobs/SKILL.md +18 -0
  46. package/dist/bundled-skills/tarsk-jobs/scripts/job_kill.js +45 -0
  47. package/dist/bundled-skills/tarsk-jobs/scripts/job_list.js +64 -0
  48. package/dist/bundled-skills/tarsk-jobs/scripts/job_output.js +66 -0
  49. package/dist/bundled-skills/tarsk-notes/SKILL.md +17 -0
  50. package/dist/bundled-skills/tarsk-notes/scripts/notes.js +86 -0
  51. package/dist/bundled-skills/tarsk-projects/SKILL.md +18 -0
  52. package/dist/bundled-skills/tarsk-projects/scripts/projects.js +54 -0
  53. package/dist/bundled-skills/tarsk-prompt-project/SKILL.md +18 -0
  54. package/dist/bundled-skills/tarsk-prompt-project/scripts/prompt_project.js +58 -0
  55. package/dist/bundled-skills/tarsk-propose-branch/SKILL.md +16 -0
  56. package/dist/bundled-skills/tarsk-propose-branch/scripts/propose_branch.js +45 -0
  57. package/dist/bundled-skills/tarsk-read/SKILL.md +17 -0
  58. package/dist/bundled-skills/tarsk-read/scripts/read.js +331 -0
  59. package/dist/bundled-skills/tarsk-read-skill/SKILL.md +16 -0
  60. package/dist/bundled-skills/tarsk-read-skill/scripts/read_skill.js +37 -0
  61. package/dist/bundled-skills/tarsk-read-skill-reference/SKILL.md +19 -0
  62. package/dist/bundled-skills/tarsk-read-skill-reference/scripts/read_skill_reference.js +60 -0
  63. package/dist/bundled-skills/tarsk-run-js/SKILL.md +18 -0
  64. package/dist/bundled-skills/tarsk-run-js/scripts/run_js.js +192 -0
  65. package/dist/bundled-skills/tarsk-tasks/SKILL.md +18 -0
  66. package/dist/bundled-skills/tarsk-tasks/scripts/tasks.js +96 -0
  67. package/dist/bundled-skills/tarsk-todo/SKILL.md +16 -0
  68. package/dist/bundled-skills/tarsk-todo/scripts/todo.js +165 -0
  69. package/dist/bundled-skills/tarsk-web-search/SKILL.md +15 -0
  70. package/dist/bundled-skills/tarsk-web-search/scripts/web_search.js +120 -0
  71. package/dist/bundled-skills/tarsk-write/SKILL.md +16 -0
  72. package/dist/bundled-skills/tarsk-write/scripts/write.js +57 -0
  73. package/dist/index.js +217754 -211927
  74. package/dist/public/assets/{alert-dialog-DVaEQlVa.js → alert-dialog-BcZULJsX.js} +1 -1
  75. package/dist/public/assets/api-8Rp2LlXt.js +1 -0
  76. package/dist/public/assets/api-Cp9I7CxD.js +2 -0
  77. package/dist/public/assets/{async-error-boundary-DH6Sqgmt.js → async-error-boundary-CFVUPiuG.js} +1 -1
  78. package/dist/public/assets/browser-tab-CPPorbL6.js +12 -0
  79. package/dist/public/assets/button-DDaJhJP1.js +1 -0
  80. package/dist/public/assets/{card-BkOGFps5.js → card-DAc45J1v.js} +1 -1
  81. package/dist/public/assets/chat-dock-context-DbiJNr3O.js +1 -0
  82. package/dist/public/assets/chat-handlers-context-DYU2LQ5V.js +9 -0
  83. package/dist/public/assets/commit-dialog-DPaci3dp.js +1 -0
  84. package/dist/public/assets/{commit-error-dialog-D3S6kRVr.js → commit-error-dialog-Dnlkgb_H.js} +1 -1
  85. package/dist/public/assets/{commit-method-fields-BEKfSRyW.js → commit-method-fields-Xt3vbwUg.js} +1 -1
  86. package/dist/public/assets/conversation-history-view-CqIugfyO.js +1 -0
  87. package/dist/public/assets/{create-project-dialog-nquqlloK.js → create-project-dialog-DStWPoDE.js} +2 -2
  88. package/dist/public/assets/{create-project-workspace-C4tXAUWJ.js → create-project-workspace-CJ94yHAB.js} +2 -2
  89. package/dist/public/assets/create-repo-dialog-B_QiEz-v.js +1 -0
  90. package/dist/public/assets/{delete-confirm-dialog-SpYpU1AX.js → delete-confirm-dialog-D1N86piR.js} +1 -1
  91. package/dist/public/assets/dialog-D_12AsZd.js +1 -0
  92. package/dist/public/assets/diff-view-4koPcOcE.js +4 -0
  93. package/dist/public/assets/{dist-NcyjV9Gu.js → dist-2xH_pFmV.js} +1 -1
  94. package/dist/public/assets/{dist-BTu7PDzc.js → dist-AbkJBHH5.js} +1 -1
  95. package/dist/public/assets/{dist-lFBinzor.js → dist-B-h6Wj39.js} +1 -1
  96. package/dist/public/assets/dist-CgbWuuq4.js +1 -0
  97. package/dist/public/assets/{dist-f54JuzFV.js → dist-DOz2WXwX.js} +1 -1
  98. package/dist/public/assets/{dist-CqrmQxmV.js → dist-DfnQ9YJh.js} +1 -1
  99. package/dist/public/assets/{dist-BOfRC57H.js → dist-JGbQ_EJY.js} +1 -1
  100. package/dist/public/assets/{dist-ButPmyjr.js → dist-pCVg1Jdl.js} +1 -1
  101. package/dist/public/assets/dist-v_MvKS2-.js +2 -0
  102. package/dist/public/assets/{es2015-CE7VcoOH.js → es2015-eNVkKfFF.js} +1 -1
  103. package/dist/public/assets/{explorer-file-drop-CEbBlDEp.js → explorer-file-drop-DAP7ha-E.js} +1 -1
  104. package/dist/public/assets/{explorer-monaco-editor-Bgo9Y1cP.js → explorer-monaco-editor-ChJZBFy5.js} +1 -1
  105. package/dist/public/assets/explorer-tab-view-Bt9hRZUm.js +2 -0
  106. package/dist/public/assets/explorer-tree-CAs89lPz.js +1 -0
  107. package/dist/public/assets/{explorer-view-BuTa_0Uq.js → explorer-view-B1JuejkU.js} +3 -3
  108. package/dist/public/assets/git-history-dialog-Dqj1p35g.js +1 -0
  109. package/dist/public/assets/index-CcAwxnT5.js +97 -0
  110. package/dist/public/assets/index-dNrgKdYv.css +1 -0
  111. package/dist/public/assets/{label-C31qF5zZ.js → label-BCs5CZEs.js} +1 -1
  112. package/dist/public/assets/markdown-renderer-DQONI6WG.js +10 -0
  113. package/dist/public/assets/{mcp-manager-C3K_62H2.js → mcp-manager-D2FG-h2e.js} +1 -1
  114. package/dist/public/assets/{minus-l6BdrAEk.js → minus-CgQcbBQT.js} +1 -1
  115. package/dist/public/assets/{model-list-controls-DwW8S18v.js → model-list-controls-B6ofHWh3.js} +1 -1
  116. package/dist/public/assets/onboarding-dialog-DAut3X4K.js +1 -0
  117. package/dist/public/assets/{pill-tabs-CmvvHdKG.js → pill-tabs-BAhOHad7.js} +1 -1
  118. package/dist/public/assets/progress-indicator-hJ74ac5W.js +1 -0
  119. package/dist/public/assets/project-coding-view-B2FpHeiO.js +1 -0
  120. package/dist/public/assets/{project-danger-zone-view-D18k4pUF.js → project-danger-zone-view-BqP1dcRT.js} +1 -1
  121. package/dist/public/assets/{project-env-vars-view-BWFqoaFD.js → project-env-vars-view-zhigkQFG.js} +1 -1
  122. package/dist/public/assets/project-model-aliases-view-APAVFfym.js +1 -0
  123. package/dist/public/assets/project-settings-view-FnK-LRsv.js +1 -0
  124. package/dist/public/assets/project-tools-view-Dmp5ViRC.js +1 -0
  125. package/dist/public/assets/providers-list-view-Clbp73Hh.js +1 -0
  126. package/dist/public/assets/pull-request-dialog-D40BQPMk.js +1 -0
  127. package/dist/public/assets/pull-with-changes-dialog-pkXK-VP2.js +1 -0
  128. package/dist/public/assets/push-before-pr-dialog-DH91JHEC.js +1 -0
  129. package/dist/public/assets/query-keys-CcnonAAG.js +1 -0
  130. package/dist/public/assets/remote-media-url-C-GdJb-D.js +1 -0
  131. package/dist/public/assets/{scroll-area-BWc4OPsj.js → scroll-area-DGF9wUqQ.js} +1 -1
  132. package/dist/public/assets/{select-B6RizwDW.js → select-DMcNYwgt.js} +1 -1
  133. package/dist/public/assets/settings-general-tabs-view-DBZQbihJ.js +2 -0
  134. package/dist/public/assets/settings-general-view-0dhBET2R.js +1 -0
  135. package/dist/public/assets/{settings-list-D35rpAof.js → settings-list-Co3JPr9w.js} +1 -1
  136. package/dist/public/assets/settings-logs-view-DvHXUDko.js +5 -0
  137. package/dist/public/assets/settings-mcp-servers-view-414Dt5py.js +5 -0
  138. package/dist/public/assets/settings-models-view-ByeR7Enb.js +1 -0
  139. package/dist/public/assets/settings-plugins-view-8te2MPyh.js +2 -0
  140. package/dist/public/assets/settings-providers-view-BAuv9gam.js +2 -0
  141. package/dist/public/assets/settings-remote-machines-view-CHyywazU.js +1 -0
  142. package/dist/public/assets/settings-setup-view-Btp46Vh_.js +2 -0
  143. package/dist/public/assets/settings-skills-view-BNVx4bZl.js +2 -0
  144. package/dist/public/assets/{settings-slack-view-DkclyaBc.js → settings-slack-view-Caly5yGt.js} +1 -1
  145. package/dist/public/assets/settings-slash-commands-view-m6mp1knu.js +1 -0
  146. package/dist/public/assets/{settings-statistics-view-B03ZZjEy.js → settings-statistics-view-BnOxr4sZ.js} +1 -1
  147. package/dist/public/assets/settings-storage-view-Dg8xfpTG.js +1 -0
  148. package/dist/public/assets/settings-subagents-view-CucwEk2A.js +2 -0
  149. package/dist/public/assets/settings-system-prompt-view-CEDU2saT.js +1 -0
  150. package/dist/public/assets/{settings-tab-bar-ajzyt79U.js → settings-tab-bar-CdIbQ0WI.js} +1 -1
  151. package/dist/public/assets/settings-view-XcJhRclT.js +2 -0
  152. package/dist/public/assets/{slug-utils-D2jhPz-o.js → slug-utils-CO6nui1C.js} +1 -1
  153. package/dist/public/assets/square-CtxvwmM2.js +1 -0
  154. package/dist/public/assets/store-W78TGOIO.js +8 -0
  155. package/dist/public/assets/{table-C3Hc0Gwy.js → table-CQMqIW_-.js} +1 -1
  156. package/dist/public/assets/task-utils-Cnq9Eszt.js +1 -0
  157. package/dist/public/assets/tasks-view-B8_jkq_a.js +1 -0
  158. package/dist/public/assets/{terminal-panel-DCKqScJu.js → terminal-panel-xoLVfA-h.js} +2 -2
  159. package/dist/public/assets/{toggle-group-DqSxGqvP.js → toggle-group-CPmseZfb.js} +1 -1
  160. package/dist/public/assets/{tooltip-CJKJfu0l.js → tooltip-CqwCZ7wt.js} +1 -1
  161. package/dist/public/assets/{use-account-settings-query-AUeOqKvo.js → use-account-settings-query-D_qL1I4w.js} +1 -1
  162. package/dist/public/assets/{use-active-dock-panel-instance-BvAhUd_V.js → use-active-dock-panel-instance-kmJOnmL7.js} +1 -1
  163. package/dist/public/assets/use-browser-overlay-block-CO1pUEAZ.js +1 -0
  164. package/dist/public/assets/{use-git-check-B_5Jak2s.js → use-git-check-BD9gdXpK.js} +1 -1
  165. package/dist/public/assets/{use-installed-ai-files-iy_AB0dN.js → use-installed-ai-files-Nn-sN_V2.js} +1 -1
  166. package/dist/public/assets/use-open-chat-dock-panel-CXzpgxVs.js +1 -0
  167. package/dist/public/assets/{use-projects-BmhAMgxB.js → use-projects-B0xTjTaA.js} +2 -2
  168. package/dist/public/assets/utils-CqsIXqSC.js +1 -0
  169. package/dist/public/assets/web-BNWoiS4w.js +1 -0
  170. package/dist/public/assets/web-C1tBQoCB.js +1 -0
  171. package/dist/public/assets/web-Dlo3GwCf.js +1 -0
  172. package/dist/public/assets/web-cJXG33sT.js +1 -0
  173. package/dist/public/fonts/schibsted-grotesk-latin-ext-wght-normal.woff2 +0 -0
  174. package/dist/public/fonts/schibsted-grotesk-latin-wght-normal.woff2 +0 -0
  175. package/dist/public/index.html +46 -46
  176. package/package.json +9 -9
  177. package/dist/public/assets/account-view-5q3pHEHY.js +0 -1
  178. package/dist/public/assets/ai-spinner-DHwhlk4j.js +0 -1
  179. package/dist/public/assets/api-BdebJfuN.js +0 -1
  180. package/dist/public/assets/api-COO2LfdU.js +0 -2
  181. package/dist/public/assets/browser-overlay-block-CiDtkfup.js +0 -1
  182. package/dist/public/assets/browser-tab-CVdYLmW5.js +0 -12
  183. package/dist/public/assets/button-Dp5XDZNR.js +0 -1
  184. package/dist/public/assets/chat-dock-context-ymLoO90X.js +0 -1
  185. package/dist/public/assets/checkbox-D-BV8-Z_.js +0 -1
  186. package/dist/public/assets/commit-dialog-CEbCFh1x.js +0 -1
  187. package/dist/public/assets/conversation-history-view-CVMD8hUU.js +0 -1
  188. package/dist/public/assets/create-repo-dialog-B5IE3pUJ.js +0 -1
  189. package/dist/public/assets/dialog-pHPeIGaB.js +0 -1
  190. package/dist/public/assets/diff-view-Cy6nPdX-.js +0 -4
  191. package/dist/public/assets/dist-D5vgS4RP.js +0 -2
  192. package/dist/public/assets/explorer-tab-view-C-8QZO9S.js +0 -2
  193. package/dist/public/assets/explorer-tree-HrLSFgcI.js +0 -1
  194. package/dist/public/assets/git-history-dialog-ClfF5IOn.js +0 -1
  195. package/dist/public/assets/index-BBLA5zVt.css +0 -1
  196. package/dist/public/assets/index-CalVAwXj.js +0 -104
  197. package/dist/public/assets/markdown-renderer-DXRBG7uP.js +0 -10
  198. package/dist/public/assets/onboarding-dialog-BtLy0wjC.js +0 -1
  199. package/dist/public/assets/progress-indicator-4zQXqOqP.js +0 -1
  200. package/dist/public/assets/project-coding-view-CyJwnJes.js +0 -1
  201. package/dist/public/assets/project-model-aliases-view-D3tYNkkM.js +0 -1
  202. package/dist/public/assets/project-settings-view-0oN9vFvD.js +0 -1
  203. package/dist/public/assets/project-tools-view-DT87KPjE.js +0 -1
  204. package/dist/public/assets/providers-list-view-DCnh0W-5.js +0 -1
  205. package/dist/public/assets/pull-request-dialog-BdJxYQwu.js +0 -1
  206. package/dist/public/assets/pull-with-changes-dialog-Do9x9neW.js +0 -1
  207. package/dist/public/assets/push-before-pr-dialog-C-9z2O0-.js +0 -1
  208. package/dist/public/assets/query-keys-BwswkbMn.js +0 -1
  209. package/dist/public/assets/remote-media-url-B8OFqxOM.js +0 -1
  210. package/dist/public/assets/settings-general-tabs-view-Dcek-ysB.js +0 -2
  211. package/dist/public/assets/settings-general-view-DhA2N6G5.js +0 -1
  212. package/dist/public/assets/settings-logs-view-eEUTIMeb.js +0 -5
  213. package/dist/public/assets/settings-mcp-servers-view-_oeuVkUe.js +0 -5
  214. package/dist/public/assets/settings-models-view-DW-ZmVup.js +0 -1
  215. package/dist/public/assets/settings-plugins-view-DTooco_c.js +0 -2
  216. package/dist/public/assets/settings-providers-view-CEeJkhg9.js +0 -2
  217. package/dist/public/assets/settings-remote-machines-view--UB8GlCK.js +0 -1
  218. package/dist/public/assets/settings-setup-view-DFL6DlYS.js +0 -2
  219. package/dist/public/assets/settings-skills-view-xS569-Kb.js +0 -2
  220. package/dist/public/assets/settings-slash-commands-view-DrCiayfq.js +0 -1
  221. package/dist/public/assets/settings-storage-view-CQnaVOt_.js +0 -1
  222. package/dist/public/assets/settings-subagents-view-DIctUJcE.js +0 -2
  223. package/dist/public/assets/settings-system-prompt-view-BMDbrFRR.js +0 -1
  224. package/dist/public/assets/settings-view-8M6sbGiX.js +0 -2
  225. package/dist/public/assets/store-CxUwqrZ5.js +0 -8
  226. package/dist/public/assets/task-utils-WAei2PDi.js +0 -1
  227. package/dist/public/assets/tasks-view-DKyqgGdE.js +0 -1
  228. package/dist/public/assets/use-browser-overlay-block-z9imTmiZ.js +0 -1
  229. package/dist/public/assets/use-open-chat-dock-panel-w3hc5Vxn.js +0 -1
  230. package/dist/public/assets/utils-mYB1USG6.js +0 -1
  231. package/dist/public/assets/web-C6Gm4nQ0.js +0 -1
  232. package/dist/public/assets/web-DFlyNg8o.js +0 -1
  233. package/dist/public/assets/web-DlEPs8Xe.js +0 -1
  234. package/dist/public/assets/web-Gx3xReQH.js +0 -1
  235. package/dist/public/backgrounds/arctic-tundra.avif +0 -0
  236. package/dist/public/backgrounds/autumn-leaves.avif +0 -0
  237. package/dist/public/backgrounds/coastal-cliff.avif +0 -0
  238. package/dist/public/backgrounds/floating-waterfall.avif +0 -0
  239. package/dist/public/backgrounds/forest-path.avif +0 -0
  240. package/dist/public/backgrounds/garden-path.avif +0 -0
  241. package/dist/public/backgrounds/glow-marsh.avif +0 -0
  242. package/dist/public/backgrounds/golden-wheat.avif +0 -0
  243. package/dist/public/backgrounds/moon-desert.avif +0 -0
  244. package/dist/public/backgrounds/night-pond.avif +0 -0
  245. package/dist/public/backgrounds/prairie-grassland.avif +0 -0
  246. package/dist/public/backgrounds/river-winding.avif +0 -0
  247. package/dist/public/backgrounds/salt-flat.avif +0 -0
  248. package/dist/public/backgrounds/salt-marsh.avif +0 -0
  249. package/dist/public/backgrounds/sandy-beach.avif +0 -0
  250. package/dist/public/backgrounds/snow-river.avif +0 -0
  251. package/dist/public/backgrounds/sunset-pond.avif +0 -0
  252. package/dist/public/fonts/plus-jakarta-sans-cyrillic-ext-wght-normal.woff2 +0 -0
  253. package/dist/public/fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2 +0 -0
  254. package/dist/public/fonts/plus-jakarta-sans-latin-wght-normal.woff2 +0 -0
  255. package/dist/public/fonts/plus-jakarta-sans-vietnamese-wght-normal.woff2 +0 -0
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "tarsk",
3
- "version": "0.6.87",
4
- "description": "CLI for Tarsk - Project Threads Manager",
3
+ "version": "0.6.89",
4
+ "description": "CLI for Tarsk",
5
5
  "keywords": [
6
6
  "cli",
7
7
  "git",
8
- "hono",
9
- "project-management"
8
+ "coding",
9
+ "agent"
10
10
  ],
11
11
  "license": "MIT",
12
12
  "author": "",
@@ -22,9 +22,9 @@
22
22
  "scripts": {
23
23
  "build:app-assets": "cd ../app && bun run build",
24
24
  "build:server": "rm -rf dist && bun scripts/bundle.ts && cp src/scaffold-templates.json dist/ && cp recommended-models.txt dist/ && cp assets/jelly.webp dist/jelly.webp && cp assets/vosk-worker.js.gz dist/vosk-worker.js.gz && cp -R bundled-skills dist/bundled-skills",
25
- "dev": "bun run build:app-assets && TARSK_ELECTROBUN_DEV=1 electrobun dev",
25
+ "dev": "bun run build:app-assets && env -u ELECTROBUN_DEVELOPER_ID -u BETTERSTACK_SOURCE_TOKEN -u BETTERSTACK_INGESTING_HOST TARSK_ELECTROBUN_DEV=1 electrobun dev",
26
26
  "dev:web": "bun run api-serve-462 & cd ../app && bun run dev -- --port 8100 --open; wait",
27
- "dev:watch": "bun run build:app-assets && TARSK_ELECTROBUN_DEV=1 electrobun dev --watch",
27
+ "dev:watch": "bun run build:app-assets && env -u ELECTROBUN_DEVELOPER_ID -u BETTERSTACK_SOURCE_TOKEN -u BETTERSTACK_INGESTING_HOST TARSK_ELECTROBUN_DEV=1 electrobun dev --watch",
28
28
  "build": "bun run build:app-assets && bun run build:server && electrobun build",
29
29
  "build:intel": "bun run build:app-assets && bun run build:server && ELECTROBUN_TARGET_ARCH=x64 electrobun build",
30
30
  "build:unsigned": "bun run build:app-assets && bun run build:server && env -u ELECTROBUN_DEVELOPER_ID electrobun build --no-codesign --no-notarize",
@@ -49,9 +49,9 @@
49
49
  "website": "cd ../site && bunx serve . -l 8080"
50
50
  },
51
51
  "dependencies": {
52
- "@earendil-works/chord": "1.1.0",
53
- "@earendil-works/pi-ai": "1.1.0",
54
- "@earendil-works/pi-durable": "1.1.0",
52
+ "@earendil-works/chord": "1.3.0",
53
+ "@earendil-works/pi-ai": "1.3.0",
54
+ "@earendil-works/pi-durable": "1.3.0",
55
55
  "@hono/node-server": "1.19.13",
56
56
  "@hono/node-ws": "1.3.1",
57
57
  "@libsql/client": "0.17.2",
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{s as i}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{n as a}from"./QueryClientProvider-CYXTUmYo.js";import{t as o}from"./useQuery-DWt09r77.js";import{V as s}from"./dist-D5vgS4RP.js";import{r as c}from"./store-CxUwqrZ5.js";import{an as l,hn as u,k as d,nt as f,ui as p}from"./api-COO2LfdU.js";import{t as m}from"./utils-mYB1USG6.js";import{t as h}from"./check-skFQ1X72.js";import{t as g}from"./button-Dp5XDZNR.js";import{t as _}from"./query-keys-BwswkbMn.js";import{t as v}from"./use-toast-CKgZ8YeP.js";import{$t as y,An as b,Dr as x,bt as S,ct as C,jn as ee,lt as w,or as T}from"./index-CalVAwXj.js";import{t as te}from"./delete-confirm-dialog-SpYpU1AX.js";var E=e(n(),1),D=t();function O(){return _.account.info()}function ne(e){return e.invalidateQueries({queryKey:O()})}function k(){let e=(0,D.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:O(),queryFn:f,refetchOnWindowFocus:!1},e[0]=t):t=e[0],o(t)}var A=r(),j=500;function M(e){let t=(0,D.c)(6),{title:n,description:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a=(0,A.jsx)(w,{title:n,description:r,sticky:!1}),t[0]=r,t[1]=n,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==a?(o=(0,A.jsxs)(S,{children:[a,i]}),t[3]=i,t[4]=a,t[5]=o):o=t[5],o}function N(){let e=(0,D.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsxs)(`div`,{className:`flex-1 space-y-2 rounded-xl border bg-card p-5`,children:[(0,A.jsx)(y,{className:`h-4 w-20`}),(0,A.jsx)(y,{className:`h-9 w-28`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,A.jsxs)(`div`,{className:`flex gap-4 px-6 pb-6 pt-6`,children:[t,(0,A.jsxs)(`div`,{className:`flex-1 space-y-3 rounded-xl border bg-card p-5`,children:[(0,A.jsx)(y,{className:`h-4 w-24`}),(0,A.jsx)(y,{className:`h-6 w-32`}),(0,A.jsx)(y,{className:`h-4 w-full`})]})]}),e[1]=n):n=e[1],n}function P(){let e=(0,D.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,A.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[(0,A.jsx)(y,{className:`h-5 w-28`}),(0,A.jsx)(y,{className:`h-4 w-64`})]}),(0,A.jsx)(y,{className:`h-9 w-28 shrink-0`})]}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,A.jsxs)(`div`,{className:`divide-y divide-table-border`,children:[t,(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[(0,A.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[(0,A.jsx)(y,{className:`h-5 w-36`}),(0,A.jsx)(y,{className:`h-4 w-56`}),(0,A.jsx)(y,{className:`h-4 w-32`})]}),(0,A.jsx)(y,{className:`h-9 w-24 shrink-0`})]})]}),e[1]=n):n=e[1],n}function re(e){let t=(0,D.c)(20),{isPro:n,promptsRemaining:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,A.jsxs)(`div`,{className:m(s.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,A.jsx)(T,{className:`h-4 w-4`}),`Balance`]}),t[0]=i):i=t[0];let a;t[1]!==n||t[2]!==r?(a=(0,A.jsxs)(`div`,{className:`flex-1 space-y-2 rounded-xl border bg-card p-5`,children:[i,(0,A.jsx)(`div`,{className:`flex items-end gap-2`,children:n?(0,A.jsx)(`span`,{className:s.stat,children:`Unlimited`}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(`span`,{className:s.stat,children:r.toLocaleString()}),(0,A.jsx)(`span`,{className:`${s.caption} mb-1`,children:`prompts remaining`})]})})]}),t[1]=n,t[2]=r,t[3]=a):a=t[3];let o;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,A.jsxs)(`div`,{className:m(s.label,`flex items-center gap-2 text-muted-foreground`),children:[(0,A.jsx)(x,{className:`h-4 w-4`}),`Current Plan`]}),t[4]=o):o=t[4];let c=n?`Unlimited Pro`:`Pay as you go`,l;t[5]===c?l=t[6]:(l=(0,A.jsx)(`span`,{className:s.label,children:c}),t[5]=c,t[6]=l);let u;t[7]===n?u=t[8]:(u=n?(0,A.jsx)(`span`,{className:m(s.compact,`rounded-full bg-primary/10 px-2 py-0.5 font-medium text-primary`),children:`Active`}):null,t[7]=n,t[8]=u);let d;t[9]!==l||t[10]!==u?(d=(0,A.jsxs)(`div`,{className:`flex items-center gap-2`,children:[l,u]}),t[9]=l,t[10]=u,t[11]=d):d=t[11];let f=n?`You have unlimited prompts with no restrictions.`:`Purchase prompts as needed. Upgrade to Pro for unlimited access.`,p;t[12]===f?p=t[13]:(p=(0,A.jsx)(`p`,{className:s.bodyMuted,children:f}),t[12]=f,t[13]=p);let h;t[14]!==d||t[15]!==p?(h=(0,A.jsxs)(`div`,{className:`flex-1 space-y-3 rounded-xl border bg-card p-5`,children:[o,d,p]}),t[14]=d,t[15]=p,t[16]=h):h=t[16];let g;return t[17]!==h||t[18]!==a?(g=(0,A.jsxs)(`div`,{className:`flex gap-4 px-6 pb-6 pt-6`,children:[a,h]}),t[17]=h,t[18]=a,t[19]=g):g=t[19],g}function ie(e){let t=(0,D.c)(13),{onPurchasePrompts:n,onUpgradeToPro:r}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,A.jsxs)(`div`,{className:`space-y-1`,children:[(0,A.jsx)(`span`,{className:s.label,children:`1,000 Prompts`}),(0,A.jsx)(`p`,{className:s.bodyMuted,children:`Top up your balance with 1,000 additional prompts for $5.`})]}),t[0]=i):i=t[0];let a;t[1]===n?a=t[2]:(a=(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[i,(0,A.jsx)(g,{onClick:n,className:`shrink-0`,children:`Top Up Balance`})]}),t[1]=n,t[2]=a);let o,c,l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,A.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,A.jsx)(x,{className:`h-4 w-4 text-primary`}),(0,A.jsx)(`span`,{className:s.label,children:`Unlimited Pro Plan`})]}),c=(0,A.jsx)(`p`,{className:s.bodyMuted,children:`Unlimited prompts for $100 and lifetime access to Tarsk.`}),l=m(s.bodyMuted,`space-y-0.5`),t[3]=o,t[4]=c,t[5]=l):(o=t[3],c=t[4],l=t[5]);let u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,A.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,A.jsx)(h,{className:`h-3 w-3 text-primary`}),`Unlimited prompts`]}),t[6]=u):u=t[6];let d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,A.jsxs)(`div`,{className:`space-y-1`,children:[o,c,(0,A.jsxs)(`ul`,{className:l,children:[u,(0,A.jsxs)(`li`,{className:`flex items-center gap-1.5`,children:[(0,A.jsx)(h,{className:`h-3 w-3 text-primary`}),`Priority access`]})]})]}),t[7]=d):d=t[7];let f;t[8]===r?f=t[9]:(f=(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-4 px-6 py-5`,children:[d,(0,A.jsx)(g,{onClick:r,className:`shrink-0`,children:`Purchase`})]}),t[8]=r,t[9]=f);let p;return t[10]!==a||t[11]!==f?(p=(0,A.jsxs)(`div`,{className:`divide-y divide-table-border`,children:[a,f]}),t[10]=a,t[11]=f,t[12]=p):p=t[12],p}function F(){let e=(0,D.c)(41),t=a(),{data:n,isLoading:r,error:o}=k(),[f,m]=(0,E.useState)(!1),[h,_]=(0,E.useState)(!1),y=i(),x=c(oe).reduce(ae,0),S,w;e[0]===o?(S=e[1],w=e[2]):(S=()=>{o&&v({title:`Error`,description:o instanceof Error?o.message:`Failed to load account info`,variant:`destructive`})},w=[o],e[0]=o,e[1]=S,e[2]=w),(0,E.useEffect)(S,w);let T,O;e[3]===t?(T=e[4],O=e[5]):(T=()=>{let e=0,n=function(){if(document.visibilityState!==`visible`)return;let n=Date.now();n-e<j||(e=n,ne(t))};return document.addEventListener(`visibilitychange`,n),window.addEventListener(`focus`,n),()=>{document.removeEventListener(`visibilitychange`,n),window.removeEventListener(`focus`,n)}},O=[t],e[3]=t,e[4]=T,e[5]=O),(0,E.useEffect)(T,O);let F;e[6]===n?.clientReferenceId?F=e[7]:(F=function(){let e=n?.clientReferenceId??``;l(`https://buy.stripe.com/14AcN6feK0Jjbheb2H3Nm03?client_reference_id=${e}`)},e[6]=n?.clientReferenceId,e[7]=F);let I=F,L;e[8]===n?.clientReferenceId?L=e[9]:(L=function(){let e=n?.clientReferenceId??``;l(`https://buy.stripe.com/9B67sMd6CgIh70Y0o33Nm04?client_reference_id=${e}`)},e[8]=n?.clientReferenceId,e[9]=L);let R=L,z;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(z=async function(){_(!0);try{if(await d(),p())try{await u()}catch{}window.close()}catch(e){let t=e;_(!1),m(!1),v({title:`Error`,description:t instanceof Error?t.message:`Failed to delete account`,variant:`destructive`})}},e[10]=z):z=e[10];let se=z,B=n?.plan===`unlimited-pro`,V=r&&n===void 0,H=n===void 0?r:!B,U;e[11]!==n?.promptsRemaining||e[12]!==V||e[13]!==B?(U=(0,A.jsx)(M,{title:`Account`,description:`Manage your Tarsk plan and prompt balance.`,children:V?(0,A.jsx)(N,{}):(0,A.jsx)(re,{isPro:B,promptsRemaining:n?.promptsRemaining??0})}),e[11]=n?.promptsRemaining,e[12]=V,e[13]=B,e[14]=U):U=e[14];let W;e[15]!==I||e[16]!==R||e[17]!==V||e[18]!==H?(W=H?(0,A.jsx)(M,{title:`Add Prompts`,description:`Top up your balance or upgrade to Pro for unlimited access.`,children:V?(0,A.jsx)(P,{}):(0,A.jsx)(ie,{onPurchasePrompts:I,onUpgradeToPro:R})}):null,e[15]=I,e[16]=R,e[17]=V,e[18]=H,e[19]=W):W=e[19];let G;e[20]!==y||e[21]!==x?(G=x>0?(0,A.jsxs)(C,{variant:`error`,children:[(0,A.jsxs)(`span`,{className:`flex items-start gap-2`,children:[(0,A.jsx)(b,{className:`mt-0.5 h-4 w-4 shrink-0`}),(0,A.jsxs)(`span`,{children:[`You have `,x,` workspace`,` `,x===1?`folder`:`folders`,` listed in Storage. Clear`,` `,x===1?`it`:`them`,` first under Storage — deleting your account does not remove those folders.`]})]}),(0,A.jsx)(`div`,{className:`mt-3`,children:(0,A.jsx)(g,{variant:`outline`,size:`sm`,onClick:()=>y(`/settings/storage`),children:`Go to Storage`})})]}):null,e[20]=y,e[21]=x,e[22]=G):G=e[22];let K;e[23]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,A.jsx)(`p`,{className:s.bodyMuted,children:`This removes the Tarsk database and any logs on this machine and cannot be undone.`}),e[23]=K):K=e[23];let q;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,A.jsxs)(g,{variant:`destructive`,onClick:()=>m(!0),children:[(0,A.jsx)(ee,{className:`h-4 w-4`}),`Delete Account`]}),e[24]=q):q=e[24];let J;e[25]===G?J=e[26]:(J=(0,A.jsx)(M,{title:`Delete Account`,description:`Permanently delete the Tarsk database and any logs on this device.`,children:(0,A.jsxs)(`div`,{className:`space-y-4 px-6 pb-6 pt-6`,children:[G,K,q]})}),e[25]=G,e[26]=J);let Y;e[27]!==J||e[28]!==U||e[29]!==W?(Y=(0,A.jsxs)(`div`,{className:`divide-y divide-table-border [&>*]:rounded-none`,children:[U,W,J]}),e[27]=J,e[28]=U,e[29]=W,e[30]=Y):Y=e[30];let X;e[31]===h?X=e[32]:(X=e=>{!e&&!h&&m(!1)},e[31]=h,e[32]=X);let Z;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(Z=()=>void se(),e[33]=Z):Z=e[33];let Q;e[34]!==h||e[35]!==f||e[36]!==X?(Q=(0,A.jsx)(te,{open:f,onOpenChange:X,title:`Delete account?`,description:`This permanently deletes the Tarsk database and any logs on this device. The app will close and you can relaunch it. This action cannot be undone.`,onConfirm:Z,confirming:h,confirmLabel:`Delete Account`,confirmingLabel:`Deleting...`}),e[34]=h,e[35]=f,e[36]=X,e[37]=Q):Q=e[37];let $;return e[38]!==Y||e[39]!==Q?($=(0,A.jsxs)(`div`,{className:`frosted-scrollbar flex h-full min-h-0 flex-col overflow-auto`,children:[Y,Q]}),e[38]=Y,e[39]=Q,e[40]=$):$=e[40],$}function ae(e,t){return e+t.threads.length}function oe(e){return e.projects}export{F as default};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./react-vendor-D61Uve5n.js";import{t as n}from"./utils-mYB1USG6.js";var r=e(),i=t(),a=`/jelly.webp`;function o(e){let t=(0,r.c)(6),{size:o,className:s,"aria-label":c}=e,l=o===void 0?20:o,u;t[0]===s?u=t[1]:(u=n(`shrink-0 select-none`,s),t[0]=s,t[1]=u);let d;return t[2]!==c||t[3]!==l||t[4]!==u?(d=(0,i.jsx)(`img`,{src:a,alt:``,role:`img`,"aria-label":c,width:l,height:l,draggable:!1,className:u}),t[2]=c,t[3]=l,t[4]=u,t[5]=d):d=t[5],d}export{o as t};
@@ -1 +0,0 @@
1
- import{ai as e,ci as t,ei as n,ii as r,ni as i,oi as a,si as o,ti as s}from"./api-COO2LfdU.js";async function c(e,t,n=!1){return i(`api/threads/${s(e)}/explorer?path=${encodeURIComponent(t)}&recursive=${n}`)}async function l(e,t){return i(`api/threads/${s(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function u(e,n,r){return t(`api/threads/${s(e)}/ai-file`,{path:n,content:r})}async function d(e,t){return n(`api/threads/${s(e)}/explorer?path=${encodeURIComponent(t)}`)}async function f(t,n,r){return e(`api/threads/${s(t)}/explorer`,{path:n,newName:r})}async function p(e,t,n){return a(`api/threads/${s(e)}/explorer/file`,{dirPath:t,name:n})}async function m(e,t,n){let r=new URLSearchParams({dirPath:t,name:n.name});return o(`api/threads/${s(e)}/explorer/upload?${r.toString()}`,n)}async function h(e,t){return r(`api/threads/${s(e)}/explorer/media?path=${encodeURIComponent(t)}`)}async function g(e,t,n){return a(`api/threads/${s(e)}/explorer/folder`,{dirPath:t,name:n})}async function _(e,t){return a(`api/threads/${s(e)}/explorer/open`,{path:t})}async function v(e,t){return a(`api/threads/${s(e)}/explorer/print-markdown`,{path:t})}export{l as a,v as c,m as d,h as i,f as l,g as n,c as o,d as r,_ as s,p as t,u};
@@ -1,2 +0,0 @@
1
- import{G as e,Q as t,b as n}from"./dist-D5vgS4RP.js";var r=`order`,i=/^(localhost|127\.0\.0\.1)$/i;function a(e){return i.test(e)}function o(e){return!e||e.startsWith(`data:`)||/^https?:\/\//i.test(e)}function s(e,t){let n=e.trim();if(!n||n.startsWith(`data:`)||!/^https?:\/\//i.test(n))return e;let r;try{r=new URL(n)}catch{return e}if(!a(r.hostname))return e;let i;try{i=new URL(t)}catch{return e}return`${i.origin}${r.pathname}${r.search}${r.hash}`}function c(e,t){return o(e)?e:`${t.replace(/\/$/,``)}${e.startsWith(`/`)?e:`/${e}`}`}function l(e){try{let t=new URL(e,`http://localhost`),n=t.searchParams.get(`path`);if(n){let e=n.split(/[/\\]/).pop();if(e)return e}let r=t.pathname.split(`/`).pop();if(r?.includes(`.`))return r}catch{}}var u=`Uncommitted changes`;function d(e,t){let n=Math.max(t,0),r=Math.max(e-n,0);return n>0&&r>0?`uncommitted changes (${r} modified, ${n} untracked)`:n>0?`untracked files (${n})`:`uncommitted changes (${e} file${e===1?``:`s`})`}function f(e,t){let n=d(e,t);return`${n.charAt(0).toUpperCase()}${n.slice(1)}`}function p(e){return e===`changes`||e===`open-pr`||e===`update-pr`||e===`no-pr`?e:e===!0&&`changes`}function m(e){return typeof e==`number`&&Number.isInteger(e)&&e>0?e:void 0}function h(e){return e===`open-pr`||e===`update-pr`||e===`no-pr`}function g(e){return e===`open-pr`||e===`update-pr`}function _(e){switch(e){case`changes`:return u;case`open-pr`:return`Open pull request`;case`update-pr`:return`Unpushed commits on open pull request`;case`no-pr`:return`Committed changes, no pull request yet`;default:return}}var v=/^(\d{3})\s*:\s*([\s\S]+)$/,ee=new Set([`provider returned error`,`error`]);function y(e){let t=e.trim();if(!t)return t;let n=te(t);if(n)return n;let r=t.match(v);if(r){let e=r[1],t=b(x(r[2]?.trim()??``));if(t)return t;if(e===`429`)return`This model is temporarily rate-limited. Please retry shortly.`}return b(x(t))||t}function te(e){let t=e.lastIndexOf(`}`);if(t===-1||t>=e.length-1)return;let n=e.slice(t+1).trim();if(!n||n.startsWith(`{`)||n.startsWith(`[`))return;let r=e.slice(0,t+1).trim();if(!v.test(r))return;let i=r.match(v);if(i&&x(i[2]?.trim()??``)!==void 0)return n}function b(e){if(!e||typeof e!=`object`)return;let t=e,n=ne(t.metadata);if(n)return n;if(t.error&&typeof t.error==`object`){let e=b(t.error);if(e)return e}if(typeof t.message==`string`){let e=t.message.trim();if(e&&!ee.has(e.toLowerCase()))return e}if(t.code===429||t.code===`429`)return`This model is temporarily rate-limited. Please retry shortly.`}function ne(e){if(!e||typeof e!=`object`)return;let t=e;if(typeof t.raw==`string`&&t.raw.trim())return t.raw.trim();if(Array.isArray(t.previouserrors))for(let e of t.previouserrors){if(!e||typeof e!=`object`)continue;let t=e.raw;if(typeof t==`string`&&t.trim())return t.trim()}}function x(e){if(e)try{return JSON.parse(e)}catch{return}}var re=`home.tarsk.io`,S=`tarsk.net`,ie=`Sign in with the account that owns this Tarsk.`,ae=`abcdefghijkmnpqrstuvwxyz23456789`,oe=10,se=[`off`,`starting`,`ready`,`error`];function ce(e){return se.includes(e)}function le(e){return e.trim().toLowerCase().replace(/:\d+$/,``)}function ue(e){return le(e)===re}function de(e){if(e.length!==oe)return!1;for(let t of e)if(!ae.includes(t))return!1;return!0}function C(e){let t=le(e),n=`.${S}`;if(!t.endsWith(n))return null;let r=t.slice(0,-n.length);return de(r)?r:null}function w(e){return C(e)!==null}function fe(e){return de(e)?`${e}.${S}`:null}function pe(e){let t=fe(e);return t?`https://${t}`:null}var T=function(e){return e.PACKAGE_MANAGER=`tarsk.create-project.packageManager`,e.COMMIT_METHOD=`tarsk.create-project.commitMethod`,e.TEMPLATE_ID=`tarsk.create-project.templateId`,e.CREATE_BRANCH_AFTER_PR=`createBranchAfterPR`,e.CREATE_WORKSPACE_AFTER_PR=`createWorkspaceAfterPR`,e.PRIVATE_REPOSITORY_DEFAULT=`privateRepositoryDefault`,e.NEW_CHAT_ON_NEW_BRANCH=`newChatOnNewBranch`,e.FONT_SCALE=`tarsk.general.fontScale`,e.FROSTED_PANEL_OPACITY=`tarsk.general.frostedPanelOpacity`,e.IMAGE_BACKGROUND=`tarsk.general.imageBackground`,e.WALLPAPER_MODE=`tarsk.general.wallpaperMode`,e.WALLPAPER_COLOR=`tarsk.general.wallpaperColor`,e.BRAND_COLOR=`tarsk.general.brandColor`,e.OPEN_WITH_PROGRAM=`tarsk.general.openWithProgram`,e.SERVER_URL=`tarsk.server.url`,e.SERVER_BIND_MODE=`tarsk.general.serverBindMode`,e.HISTORY_COLUMNS=`tarsk.settings.historyColumns`,e.TASK_LIST_VIEW_MODE=`tarsk.tasks.viewMode`,e.AUTOMATION_LIST_VIEW_MODE=`tarsk.automations.viewMode`,e.LAST_TASK_TAG=`tarsk.tasks.lastTag`,e}({}),E=function(e){return e.MESSAGE_HISTORY=`chat_message_history`,e.BASH_COMMAND_DURATIONS=`tarsk.bash-command-durations`,e.SKILL_CATALOG_PREFIX=`tarsk.skills.catalog.`,e.SKILL_SOURCE_SELECTION=`tarsk.skills.selectedSource`,e.PROJECT_SESSION_OPEN_PREFIX=`tarsk.project-session-open.`,e}({});function D(e){return typeof localStorage>`u`?null:localStorage.getItem(e)}function O(e,t){typeof localStorage<`u`&&localStorage.setItem(e,t)}function me(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function he(e,t){typeof sessionStorage<`u`&&sessionStorage.setItem(e,t)}function ge(e=`npm`){return D(T.PACKAGE_MANAGER)??e}function _e(e){O(T.PACKAGE_MANAGER,e)}function ve(e=`pull-request`){return D(T.COMMIT_METHOD)??e}function ye(e){O(T.COMMIT_METHOD,e)}function be(e=``){return D(T.TEMPLATE_ID)??e}function xe(e){O(T.TEMPLATE_ID,e)}function Se(e=!1){let t=D(T.CREATE_BRANCH_AFTER_PR);return t===null?e:t===`true`}function Ce(e){O(T.CREATE_BRANCH_AFTER_PR,e.toString())}function we(e=!1){let t=D(T.CREATE_WORKSPACE_AFTER_PR);return t===null?e:t===`true`}function Te(e){O(T.CREATE_WORKSPACE_AFTER_PR,e.toString())}function Ee(e=!1){let t=D(T.PRIVATE_REPOSITORY_DEFAULT);return t===null?e:t===`true`}function De(e){O(T.PRIVATE_REPOSITORY_DEFAULT,e.toString())}function Oe(e=!1){let t=D(T.NEW_CHAT_ON_NEW_BRANCH);return t===null?e:t===`true`}function ke(e){O(T.NEW_CHAT_ON_NEW_BRANCH,e.toString())}function Ae(){let e=me(E.MESSAGE_HISTORY);return e?JSON.parse(e):[]}function je(e){let t=Ae();e.trim()&&t[t.length-1]!==e&&(t.push(e),he(E.MESSAGE_HISTORY,JSON.stringify(t)))}function Me(e){return typeof sessionStorage>`u`?null:sessionStorage.getItem(e)}function Ne(e,t){typeof sessionStorage<`u`&&sessionStorage.setItem(e,t)}function Pe(e=`default`){return Me(E.SKILL_SOURCE_SELECTION)??e}function Fe(e){Ne(E.SKILL_SOURCE_SELECTION,e)}function k(e){return`${E.SKILL_CATALOG_PREFIX}${e}`}function Ie(e){let t=Me(k(e));if(!t)return null;try{return JSON.parse(t)}catch{return null}}function Le(e,t){Ne(k(e),JSON.stringify(t))}function Re(e){typeof sessionStorage<`u`&&sessionStorage.removeItem(k(e))}var ze=`tarsk.skills.customSources`;function Be(){if(typeof localStorage>`u`)return[];let e=localStorage.getItem(ze);if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e&&typeof e.id==`string`&&typeof e.title==`string`&&typeof e.url==`string`):[]}catch{return[]}}function Ve(){typeof localStorage<`u`&&localStorage.removeItem(ze)}function He(){typeof localStorage<`u`&&localStorage.removeItem(`tarsk.general.conversationLevel`)}typeof localStorage<`u`&&He();function Ue(e=100){let t=D(T.FONT_SCALE);if(t!==null){let e=Number(t);if(Number.isFinite(e)&&e>=50&&e<=300)return e}return e}function We(e){O(T.FONT_SCALE,String(e))}function Ge(e=80){let t=D(T.FROSTED_PANEL_OPACITY);if(t!==null){let e=Number(t);if(Number.isFinite(e)&&e>=60&&e<=100)return e}return e}function Ke(e){O(T.FROSTED_PANEL_OPACITY,String(e))}var qe=new Set([`image`,`background`,`color`]),A=/^#[0-9a-fA-F]{6}$/,Je=`#1f2937`,Ye=`#82c309`;function Xe(e){return e!==null&&qe.has(e)}function Ze(e=`background`){let t=D(T.WALLPAPER_MODE);if(Xe(t))return t;if(t===`brand`)return`background`;let n=D(T.IMAGE_BACKGROUND);return n===`false`?`background`:n===`true`?`image`:e}function Qe(e){O(T.WALLPAPER_MODE,e)}function $e(e=Je){let t=D(T.WALLPAPER_COLOR);return t!==null&&A.test(t)?t:e}function et(e){A.test(e)&&O(T.WALLPAPER_COLOR,e.toLowerCase())}function tt(e=Ye){let t=D(T.BRAND_COLOR);return t!==null&&A.test(t)?t:e}function nt(e){A.test(e)&&O(T.BRAND_COLOR,e.toLowerCase())}var rt=new Set([`summary`,`list`]);function it(e){return e===`automations`?T.AUTOMATION_LIST_VIEW_MODE:T.TASK_LIST_VIEW_MODE}function at(e){let t=D(it(e));return t!==null&&rt.has(t)?t:null}function ot(e=`tasks`,t=`summary`){let n=at(e);return n===null?e===`automations`?at(`tasks`)??t:t:n}function st(e,t){O(it(e),t)}function ct(){return D(T.LAST_TASK_TAG)}function lt(e){O(T.LAST_TASK_TAG,e)}function ut(e=`VS Code`){return D(T.OPEN_WITH_PROGRAM)??e}function dt(e){O(T.OPEN_WITH_PROGRAM,e)}function ft(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.fetchedAt==`number`&&(t.serverBindMode===`local`||t.serverBindMode===`network`)&&Array.isArray(t.networkAddresses)&&t.networkAddresses.every(e=>typeof e==`string`)}function pt(){let e=D(T.SERVER_BIND_MODE);if(!e)return null;try{let t=JSON.parse(e);return ft(t)?t:null}catch{return null}}function mt(e){O(T.SERVER_BIND_MODE,JSON.stringify({...e,fetchedAt:e.fetchedAt??Date.now()}))}var ht=`641`;function gt(){return typeof window>`u`?null:window.Capacitor?.getPlatform?.()??null}function _t(){return M()&&gt()===`ios`}function j(){return D(T.SERVER_URL)}function vt(e){O(T.SERVER_URL,e)}function yt(e){try{return new URL(e).hostname}catch{return``}}function bt(e){let t=e.trim();if(!t)return``;let n=/^https?:\/\//i.test(t)?t:`https://${t}`;try{let e=new URL(n);if(ue(e.hostname))return``;if(w(e.hostname)){let t=C(e.hostname);return t?pe(t)??``:``}}catch{return``}if(/^https?:\/\//i.test(t))try{let e=new URL(t);return e.protocol!==`http:`&&e.protocol!==`https:`||!e.hostname?``:e.origin}catch{return``}let r=(t.split(`/`)[0]??``).replace(/:\d+$/,``);return r?`http://${r}:${ht}`:``}function M(){if(typeof window>`u`)return!1;if(window.Capacitor?.isNativePlatform?.())return!0;let e=window.location.protocol;return e===`capacitor:`||e===`ionic:`||e===`file:`}function xt(){let e=j();if(e){let t=yt(e);if(t)return t}return M()?``:document.location.hostname}async function St(e){try{return(await fetch(`${e.replace(/\/$/,``)}/health`,{method:`GET`})).ok}catch{return!1}}function Ct(e){let t=bt(e);if(t){if(M()){vt(t),window.location.reload();return}window.location.assign(t)}}function N(){return typeof window<`u`&&`__electrobunWebviewId`in window}function wt(){return typeof document<`u`&&document.location.port===`8100`}function Tt(){if(typeof document>`u`)return null;let{protocol:e,hostname:t,port:n,host:r,origin:i}=document.location;if(e!==`http:`&&e!==`https:`)return null;if(i&&t&&w(t)){let e=C(t);if(e)return pe(e)??i}return i||`${e}//${r??(n?`${t}:${n}`:t)}`}function Et(){if(typeof document>`u`)return`http://localhost:641`;let{hostname:e,port:t}=document.location;return t===`8100`?`http://${e}:462`:Tt()||`http://${e}:641`}function P(){if(N()){let e=Tt();if(e)return e}if(!M())return Et();let e=j();return e?e.replace(/\/$/,``):Et()}function F(e){let t=e.startsWith(`/`)?e:`/${e}`;return`${P()}${t}`}function I(e){if(!e)return`Unknown error`;if(typeof e.message==`string`&&e.message.trim())return e.message.trim();if(typeof e.error==`string`)return e.error.trim()||`Unknown error`;if(e.error&&typeof e.error==`object`){let t=e.error.message;if(typeof t==`string`&&t.trim())return t.trim();let n=e.error.details;return typeof n==`string`&&n.trim()?n.trim():`Unknown error`}return`Unknown error`}async function L(e){try{return I(await e.json())}catch{}return e.statusText||`Unknown error`}function R(e,t,n){let r=Error(e);return n?.error&&typeof n.error==`object`&&(r.details=n.error.details,r.code=n.error.code),r}async function Dt(e){let t;try{t=await e.json()}catch{}throw R(I(t)||e.statusText||`Unknown error`,e,t)}async function z(e,t,n,r){let i=await fetch(F(t),{...r,method:e,headers:{"Content-Type":`application/json`,...r?.headers},body:n?JSON.stringify(n):void 0});if(!i.ok){let e=await L(i);throw Error(e)}return i}async function Ot(e,t){let n=await fetch(F(e),{...t,method:`GET`});if(!n.ok){let e=await L(n);throw Error(e)}return n.blob()}async function B(e,t){let n=await fetch(F(e),{...t,method:`GET`});if(!n.ok){let e=await L(n);throw Error(e)}return n.json()}async function V(e,t,n){return(await z(`POST`,e,t,n)).json()}async function kt(e,t,n){return(await z(`POST`,e,t,n)).blob()}async function At(e,t,n){let r=await fetch(F(e),{...n,method:`POST`,headers:{"Content-Type":`application/octet-stream`,...n?.headers},body:t});if(!r.ok){let e=await L(r);throw Error(e)}return r.json()}async function H(e,t,n){return(await z(`PUT`,e,t,n)).json()}async function U(e,t,n){return(await z(`PATCH`,e,t,n)).json()}async function jt(e,t,n){return(await z(`PUT`,e,t,n)).body}async function W(e,t){let n=await fetch(F(e),{...t,method:`DELETE`});if(!n.ok){let e=await L(n);throw Error(e)}if(n.status!==204)return n.json()}async function Mt(e,t){let n=await fetch(F(e),{...t,method:`DELETE`});if(!n.ok){let e=await L(n);throw Error(e)}return n.body}async function G(e,t,n){let r=await fetch(F(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0,signal:n?.signal});return r.ok||await Dt(r),r.body}async function K(e,t){let n=await fetch(F(e),{...t,method:`GET`});return n.ok||await Dt(n),n.body}async function q(e,t,n){let r=await fetch(F(e),{...n,method:`POST`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e;try{e=await r.json()}catch{}throw R(I(e)||r.statusText||`Unknown error`,r,e)}return r.json()}async function Nt(e,t,n){let r=await fetch(F(e),{...n,method:`PUT`,headers:{"Content-Type":`application/json`,...n?.headers},body:t?JSON.stringify(t):void 0});if(!r.ok){let e;try{e=await r.json()}catch{}throw R(I(e)||r.statusText||`Unknown error`,r,e)}return r.json()}function J(...e){return e.map(e=>encodeURIComponent(String(e))).join(`/`)}var Y=n(`gitops.ttl-cache`),X=new class{cache=new Map;inFlightRequests=new Map;generations=new Map;async get(e,t,n){let r=e.startsWith(`unified-git-status-`),i=r?performance.now():0,a=this.inFlightRequests.get(e);if(a)return r&&Y.debug(`in-flight-reuse`,{key:e}),a;let o=this.cache.get(e);if(o&&Date.now()<o.expires){if(r){let t=Math.round(performance.now()-i);Y.debug(`cache hit`,{key:e,duration:t})}return o.data}r&&Y.debug(`cache miss, fetching`,{key:e});let s=this.generations.get(e)??0,c=t().then(t=>{if((this.generations.get(e)??0)===s){if(this.cache.set(e,{data:t,expires:Date.now()+n}),r){let t=Math.round(performance.now()-i);Y.debug(`stored in cache`,{key:e,duration:t})}}else r&&Y.debug(`skipped stale cache write`,{key:e});return t}).finally(()=>{this.inFlightRequests.get(e)===c&&this.inFlightRequests.delete(e)});return this.inFlightRequests.set(e,c),c}getSync(e){let t=this.cache.get(e);if(t&&Date.now()<t.expires)return t.data}bumpGeneration(e){this.generations.set(e,(this.generations.get(e)??0)+1)}invalidate(e){this.cache.delete(e),this.inFlightRequests.delete(e),this.bumpGeneration(e)}invalidatePattern(e){let t=[];for(let n of this.cache.keys())e.test(n)&&t.push(n);for(let n of this.inFlightRequests.keys())e.test(n)&&!t.includes(n)&&t.push(n);for(let e of t)this.cache.delete(e),this.inFlightRequests.delete(e),this.bumpGeneration(e)}clear(){for(let e of new Set([...this.cache.keys(),...this.inFlightRequests.keys(),...this.generations.keys()]))this.bumpGeneration(e);this.cache.clear(),this.inFlightRequests.clear()}};function Pt(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,r.rel=`noopener`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}function Ft(e,t=`image/png`){let n=atob(e),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return new Blob([r],{type:t})}function It(e){let t=e.indexOf(`,`),n=e.slice(0,t);return Ft(e.slice(t+1),n.match(/^data:([^;]+)/)?.[1]??`image/png`)}async function Lt(e){if(e.imageData)return Ft(e.imageData);if(e.imageUrl){if(e.imageUrl.startsWith(`data:`))return It(e.imageUrl);let t=c(e.imageUrl,P()),n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch image: ${n.status}`);return n.blob()}throw Error(`imageUrl or imageData is required`)}function Rt(e){return!e.imageUrl||o(e.imageUrl)?e:{...e,imageUrl:c(e.imageUrl,P())}}async function zt(e){let t=e.filename??`generated-image-${Date.now()}.png`;try{return Pt(await Lt(e),t),{path:t}}catch{if(!e.imageUrl||e.imageUrl.startsWith(`data:`))throw Error(`imageUrl or imageData is required`);let n=document.createElement(`a`);return n.href=e.imageUrl,n.download=t,n.target=`_blank`,n.rel=`noopener noreferrer`,document.body.appendChild(n),n.click(),document.body.removeChild(n),{path:t}}}async function Bt(e){let t=await Lt(e);if(!navigator.clipboard?.write)throw Error(`Clipboard API not available`);let n=t.type||`image/png`,r=t.type?t:new Blob([t],{type:n});await navigator.clipboard.write([new ClipboardItem({[n]:r})])}async function Vt(e){return N()?V(`api/image/save`,Rt(e)):zt(e)}async function Ht(e){if(N()){await V(`api/image/clipboard`,Rt(e));return}await Bt(e)}function Ut(e){let t=e.trim().toLowerCase();return t===`load failed`||t===`stream ended without a completion frame`||t.includes(`failed to fetch`)||t.includes(`network error`)||t.includes(`network connection was lost`)||t.includes(`networkrequestfailed`)||t.includes(`networkrequest failed`)||t.includes(`socket is not connected`)}function Wt(e){if(e instanceof Error&&`code`in e&&typeof e.code==`string`)return e.code}function Gt(e){if(Wt(e)===`THREAD_BUSY`)return!0;if(!(e instanceof Error))return!1;let t=e.message.toLowerCase();return t.includes(`already processing a message`)||t.includes(`already being processed`)||t.includes(`multiple chat windows are processing`)}function Kt(e,t){return Gt(e)?t?.trim()?!0:e instanceof Error&&!e.message.toLowerCase().includes(`multiple chat windows`):!1}var qt=50;function Jt(e,t,n,r,i){let a=e.getReader(),o=!1;function s(){o=!0,a.cancel().catch(()=>{})}let c=new TextDecoder,l=``,u=0;function d(e){let t=e.content?.trim();if(t)return y(t);let n=e.error?.message?.trim();if(n)return y(n);let r=e.message?.trim();return r?y(r):`Unknown error`}function f(e){if(!e)return!1;let t=e.trim();return t.length>200?!1:[/^Cannot read properties/i,/^Error:/i,/^TypeError:/i,/^ReferenceError:/i,/^SyntaxError:/i,/^failed to/i,/^error:/i,/^forbidden/i,/^unauthorized/i].some(e=>e.test(t))}async function p(){u+=1,!(u<qt)&&(u=0,await new Promise(e=>{setTimeout(e,0)}))}async function m(e){return e.type===`ping`?`continue`:e.type===`error`?(r(d(e)),n(),`stop`):e.type===`message`?(i?.({role:e.role??`assistant`,content:e.content??``,isThinking:e.isThinking}),`continue`):e.type===`complete`?(n(),`stop`):e.type===`result`&&f(e.content)?(r(y(e.content??`Unknown error`)),n(),`stop`):(t(e),await p(),`continue`)}async function h(){if(!l.trim())return`continue`;try{return await m(JSON.parse(l))}catch{return l.trim()&&t({type:`result`,content:l}),`continue`}}async function g(e){let t=e.trim();if(!t)return`continue`;try{return await m(JSON.parse(t))}catch{return`continue`}}async function _(){return o||await h()===`stop`?`stop`:(r(`Stream ended without a completion frame`),n(),`stop`)}async function v(e){l+=c.decode(e,{stream:!0});let t=l.split(`
2
- `);l=t.pop()??``;for(let e of t)if(o||await g(e)===`stop`)return`stop`;return`continue`}async function ee(){try{for(;!o;){let{done:e,value:t}=await a.read();if(e||o){e&&await _();break}if(await v(t)===`stop`)return}}catch(e){o||(r(e instanceof Error?e.message:`Stream error`),n())}}return ee(),s}var Yt=n(`gitops.api`);async function Xt(e,t=!1,n=!1){let r=new URLSearchParams;t&&r.set(`fresh`,`true`),n&&r.set(`asyncRefresh`,`true`);let i=r.toString(),a=i?`api/git/unified-status/${J(e)}?${i}`:`api/git/unified-status/${J(e)}`,o=performance.now();Yt.debug(`getUnifiedGitStatus start`,{threadId:e,fresh:t});try{return await B(a)}finally{let n=Math.round(performance.now()-o);Yt.debug(`getUnifiedGitStatus end`,{threadId:e,fresh:t,duration:n})}}async function Zt(e,t,n){return(await V(`api/git/generate-commit-message/${J(e)}`,{model:t,provider:n})).message}async function Qt(e,t){await V(`api/git/commit/${J(e)}`,{message:t})}async function $t(e){await V(`api/git/push/${J(e)}`)}async function en(e){await V(`api/git/pull/${J(e)}`)}async function tn(e){return V(`api/git/sync-branch/${J(e)}`,{})}async function nn(e,t,n,r){return V(`api/git/generate-pr-info/${J(e)}`,{model:t,provider:n,baseBranch:r})}async function rn(e,t,n,r){return V(`api/git/create-pr/${J(e)}`,{title:t,description:n,baseBranch:r})}async function an(e){await V(`api/git/fetch/${J(e)}`)}async function on(e,t,n){return V(`api/git/create-branch/${J(e)}`,{baseBranch:t,branchName:n})}async function sn(e,t){return V(`api/git/revert-file/${J(e)}`,{filePath:t})}async function cn(e,t=50){return(await B(`api/git/log/${J(e)}?limit=${t}`)).commits}async function ln(e){return B(`api/git/pr-status/${J(e)}`)}async function un(e,t,n,r){return V(`api/git/create-repo/${J(e)}`,{repoName:t,description:n,isPrivate:r})}async function dn(e,t){return V(`api/git/checkpoint/${J(e)}`,{messageId:t})}async function fn(e,t){return V(`api/git/checkpoint-restore/${J(e)}`,{checkpointRef:t})}async function pn(e){return B(`api/git/diff/${J(e)}`)}async function mn(e,t,n){return Ot(`api/git/media/${J(e)}?path=${encodeURIComponent(t)}&version=${n}`)}async function hn(e){return V(`api/git/cleanup-deleted-branches/${J(e)}`)}async function gn(e){return X.get(`workspace-changes-${e}`,async()=>B(`api/git/workspace-changes/${J(e)}`),1e4)}async function _n(){return(await B(`api/skills/popular`)).skills??[]}async function vn(){return(await B(`api/skills/sources`)).sources??[]}async function yn(e){return(await B(`api/skills/catalog?${new URLSearchParams({sourceId:e}).toString()}`)).skills??[]}async function bn(e,t){return V(`api/skills/sources/verify`,{title:e,url:t})}async function xn(e,t,n){return H(`api/skills/sources/${J(e)}`,{title:t,url:n})}async function Sn(e){await W(`api/skills/sources/${J(e)}`)}async function Cn(e){return(await V(`api/skills/sources/import`,{sources:e})).sources??[]}async function wn(e,t){return B(`api/skills/catalog/files?${new URLSearchParams({sourceId:e,skillId:t}).toString()}`)}async function Tn(e,t,n){return B(`api/skills/catalog/file?${new URLSearchParams({sourceId:e,skillId:t,relativePath:n}).toString()}`)}async function En(){return(await B(`api/agents/popular`)).agents??[]}async function Dn(){return(await B(`api/slash-commands/popular`)).commands??[]}async function On(e,t,n,r,i){return V(`api/threads/${J(e)}/ai-files/github-folder`,{gitHubRepo:t,gitHubFolder:n,destPath:r,gitHubRef:i})}async function kn(e,t,n,r){return V(`api/threads/${J(e)}/ai-files/catalog-skill`,{sourceId:t,skillId:n,destPath:r})}var An=n(`gitops.api`),Z=class extends Error{constructor(){super(`No prompts remaining`),this.name=`EmptyBalanceError`}},jn=50;async function Mn(){let{plan:e,promptsRemaining:t}=await Yn();return e===`unlimited-pro`?{isEmpty:!1,isLow:!1,promptsRemaining:-1}:{isEmpty:t<=0,isLow:t>0&&t<=jn,promptsRemaining:t}}var Nn=null,Q=!1;function Pn(e){Nn=e}function Fn(e){Q||(Q=!0,Nn?.(e))}async function In(){return B(`api/scaffold/templates`)}async function Ln(){return(await B(`api/scaffold/check-vp`)).installed}async function Rn(){return V(`api/scaffold/install-vp`,{})}async function zn(e,t,n,r){return G(`api/scaffold`,{projectName:e,templateId:t,packageManager:n},{signal:r})}async function Bn(){return X.get(`providers`,async()=>B(`api/providers`),6e4)}function Vn(e){return`${P()}/api/providers/${J(e)}/logo`}function Hn(e){return`https://models.tarsk.io/svg/${J(e)}.svg`}async function Un(e){return X.get(`provider-credits-${e}`,async()=>B(`api/providers/${J(e)}/credits`),3e4)}async function Wn(){return(await B(`api/providers/openrouter/oauth/start`)).url}async function Gn(e,t){await V(`api/providers/keys`,{providerName:e,apiKey:t}),X.invalidate(`providers`)}async function Kn(e){await V(`api/providers/env`,{values:e}),X.invalidate(`providers`)}function qn(e){return typeof window>`u`?!1:window.open(e,`_blank`,`noopener,noreferrer`)!==null}async function Jn(e){if(typeof window<`u`&&!N()){qn(e);return}try{await V(`api/providers/open-external`,{url:e})}catch(t){if(qn(e))return;throw t instanceof Error?t:Error(`Failed to open URL`)}}async function Yn(){return B(`api/account/info`)}async function Xn(){return V(`api/account/delete`,{})}async function Zn(){return V(`api/account/quit`,{})}async function Qn(){return B(`api/account/spend`)}async function $n(){return B(`api/account/statistics`)}async function er(){return W(`api/account/statistics`)}async function tr(){return B(`api/account/settings`)}async function nr(){return B(`api/slack/settings`)}async function rr(){await W(`api/logs`)}async function ir(e){return K(`api/logs/stream`,e)}async function ar(e){try{await V(`api/logs`,e)}catch(e){An.debug(`Failed to post client log entry`,e)}}async function or(){return B(`api/slack/manifest`)}async function sr(e){return H(`api/slack/tokens`,e)}async function cr(){await W(`api/slack/tokens`)}async function lr(e){return V(`api/slack/bindings`,e)}async function ur(e,t){await W(`api/slack/bindings/${J(e)}/${J(t)}`)}async function dr(e){return H(`api/account/settings`,e)}async function fr(){return B(`api/account/remote-machines`)}async function pr(e){return q(`api/account/remote-machines`,{address:e})}async function mr(e,t){return U(`api/account/remote-machines/${J(e)}`,{machineName:t})}async function hr(e){return W(`api/account/remote-machines/${J(e)}`)}async function gr(){return B(`api/voice-model/status`)}async function _r(e,t){return(await V(`api/voice-model/process-transcript`,{text:e,threadId:t?.threadId,provider:t?.provider,model:t?.model})).text}async function vr(){return X.get(`available-programs`,async()=>(await B(`api/programs`)).programs??[],3e5)}async function yr(){return(await B(`api/processes`)).processes}async function br(e){await V(`api/processes/${J(e)}/kill`)}async function xr(){return X.get(`processing-threads`,async()=>{let e=await B(`api/threads/processing`);return{processingThreadIds:e.processingThreadIds??[],processingRuns:e.processingRuns??[],unavailableThreadIds:e.unavailableThreadIds??[]}},0)}async function Sr(e){let t=new URLSearchParams({since:e.since});return e.ids&&t.set(`ids`,e.ids),X.get(`processing-roster:${t.toString()}`,async()=>(await B(`api/conversations/processing-roster?${t.toString()}`)).conversations??[],0)}async function Cr(){return B(`api/git/auth-status`)}async function wr(){return X.get(`git-user`,async()=>{try{let e=await B(`api/git/user`);return{name:e.name??``,email:e.email??``}}catch{return{name:``,email:``}}},6e5)}async function Tr(){return(await wr()).name}async function Er(){return X.get(`projects`,async()=>{let e=await B(`api/projects`),n=Array.isArray(e)?e:e.projects??[],r=Array.isArray(e)?null:e.cloneRootPath??null;return{projects:(n||[]).map(e=>{let n=e;return{projectId:n.projectId??n.id,name:n.name,gitUrl:n.gitUrl,projectPath:n.projectPath??n.path,threads:n.threads??[],commands:n.commands??[],setupScript:n.setupScript,runCommand:n.runCommand,planPrompt:n.planPrompt,testPrompt:n.testPrompt,reviewPrompt:n.reviewPrompt,customSystemPrompt:n.customSystemPrompt,useCustomSystemPrompt:!!n.useCustomSystemPrompt,allowAllCommands:n.allowAllCommands!==!1,allowedCommandPatterns:n.allowedCommandPatterns??[],defaultChatMode:t(n.defaultChatMode)?n.defaultChatMode:void 0,disabledTools:n.disabledTools??void 0,useBuiltInBrowser:n.useBuiltInBrowser!==!1,projectIcon:n.projectIcon,tasksModifiedCount:Number(n.tasksModifiedCount)||0,type:n.type===`bot`?`bot`:`standard`,builtIn:n.builtIn===!0}}).map(e=>{let t=(e.threads||[]).map(e=>{let t=e,n=t.threadId??t.id;return{threadId:n,title:t.title??n,path:t.path??``,currentBranch:t.currentBranch??``,remoteMachineId:t.remoteMachineId,remoteMachineName:t.remoteMachineName,remotePublicUrl:t.remotePublicUrl,remoteUnavailable:t.remoteUnavailable===!0,currentConversationId:t.currentConversationId,chatTitles:t.chatTitles,conversationModels:t.conversationModels,hasUnreadAutomatedChat:t.hasUnreadAutomatedChat===!0,isSelected:!!t.isSelected,model:t.model??void 0,modelProvider:t.modelProvider??void 0,gitStatusDot:p(t.gitStatusDot),prNumber:m(t.prNumber)}});return{...e,threads:t}}),cloneRootPath:r}},3e4)}async function Dr(){let e=await B(`api/projects/remote-snapshots`);return(Array.isArray(e.snapshots)?e.snapshots:[]).map(function(e){let t=e;return{threadId:t.threadId??``,remoteMachineName:t.remoteMachineName,remoteUnavailable:t.remoteUnavailable===!0,currentBranch:t.currentBranch??``,gitStatusDot:t.gitStatusDot===void 0?void 0:p(t.gitStatusDot),prNumber:t.prNumber===null?null:m(t.prNumber),currentConversationId:t.currentConversationId===null?null:t.currentConversationId,chatTitles:t.chatTitles===null?null:t.chatTitles,conversationModels:t.conversationModels===null?null:t.conversationModels,model:t.model===null?null:t.model??void 0,modelProvider:t.modelProvider===null?null:t.modelProvider??void 0,hasUnreadAutomatedChat:t.hasUnreadAutomatedChat===!0}})}async function Or(e){await V(`api/projects/${J(e)}/tasks/clear-modifications`)}async function kr(e,t,n){return G(`api/projects`,{gitUrl:e,commitMethod:t},{signal:n})}async function Ar(e,t){await V(`api/projects/git-auth/${encodeURIComponent(e)}`,t)}async function jr(e){return G(`api/projects/open-folder`,{},{signal:e})}async function Mr(e,t){return G(`api/projects/open-path`,{path:e},{signal:t})}async function Nr(e,t){return G(`api/projects/new-folder`,{projectName:e},{signal:t})}async function Pr(e,t){return G(`api/projects/new-bot`,{projectName:e},{signal:t})}function Fr(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=typeof r.result==`string`?r.result:``,n=e.indexOf(`,`);t(n>=0?e.slice(n+1):e)},r.onerror=()=>n(r.error),r.readAsDataURL(e)})}async function Ir(e,t,n,r){return G(`api/projects/from-zip`,{data:await Fr(e),name:t,overrideProjectId:n},{signal:r})}async function Lr(e){return X.get(`project-${e}`,async()=>{let t=await B(`api/projects/${J(e)}`);return{...t,projectPath:t.projectPath??t.path}},3e4)}async function Rr(e){return B(`api/projects/${J(e)}/env-vars`)}async function zr(e){return(await B(`api/projects/${J(e)}/window-state`)).state}async function Br(e,t){await Nt(`api/projects/${J(e)}/window-state`,{state:t})}async function Vr(e,t,n){return V(`api/projects/${J(e)}/replace-unique-text`,{oldText:t,newText:n})}async function Hr(e,t){await H(`api/projects/${J(e)}/env-vars`,{vars:t})}async function Ur(e){await W(`api/projects/${J(e)}`),X.invalidate(`projects`)}function Wr(e){X.invalidate(`projects`),e&&X.invalidate(`project-${e}`)}async function Gr(e,t,n){return G(`api/threads`,{projectId:e,title:t,sourceThreadId:n?.sourceThreadId,remoteMachineId:n?.remoteMachineId},{signal:n?.signal})}async function Kr(e,t){let n=await Mt(`api/threads/${J(t)}?stream=true`);return X.invalidate(`projects`),n}async function qr(e,t){await U(`api/threads/${J(e)}`,t),X.invalidate(`thread-${e}`),(`model`in t||`modelProvider`in t||`chatTitles`in t||`diffComments`in t)&&X.invalidate(`projects`)}async function Jr(e,t,n){return(await V(`api/threads/${J(e)}/generate-title`,{prompt:t,provider:n?.provider,model:n?.model})).title}async function Yr(e,t){return V(`api/threads/${J(e)}/fix-comments`,{comments:t})}async function Xr(e,t){await V(`api/threads/${J(t)}/select`)}function Zr(e,t){let n=new URLSearchParams;t&&n.set(`conversationId`,t),n.set(`events`,`recent`);let r=n.toString(),i=`api/threads/${J(e)}/messages`;return r.length>0?`${i}?${r}`:i}async function Qr(e,t){return{threadId:e,messages:await B(Zr(e,t))}}async function $r(t,n,r=1,i=e){let a=new URLSearchParams({offset:String(r),limit:String(i)});return B(`api/threads/${J(t)}/observations/${J(n)}?${a}`)}async function ei(e){return(await B(`api/threads/${J(e)}/conversation-folder-path`)).path}async function ti(e,t,n,r=[],i,a,o,s,c,l,u,d,f,p,m){i?.throwIfAborted();let{isEmpty:h,isLow:g,promptsRemaining:_}=await Mn();if(i?.throwIfAborted(),h)throw new Z;return g?Fn(_):Q=!1,G(`api/chat`,{threadId:e,content:t,model:n,provider:a,planMode:o,ralphMode:s,orchestrateMode:u,autoRoute:d,checkpointRef:c,conversationId:l,goal:f,idempotencyKey:m,perfTraceId:p?.traceId,perfSubmitMs:p?.submitMs,attachments:r.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:0,mimeType:e.mimeType||`application/octet-stream`}))},{signal:i})}async function ni(e,t,n,r=[],i,a,o,s,c){let{isEmpty:l,isLow:u,promptsRemaining:d}=await Mn();if(l)throw new Z;return u?Fn(d):Q=!1,V(`api/chat`,{threadId:e,content:t,model:n,provider:i,planMode:a,ralphMode:o,orchestrateMode:s,autoRoute:c,runInBackground:!0,attachments:r.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:0,mimeType:e.mimeType||`application/octet-stream`}))})}async function ri(e,t,n,r,i,a){await V(`api/chat/${J(e)}/steer`,{messageId:t,content:n,conversationId:r,model:i,attachments:a.map(e=>({name:e.fileName,content:e.content.split(`,`)[1]||e.content,size:0,mimeType:e.mimeType||`application/octet-stream`}))})}async function ii(e,t,n){let r=new URLSearchParams({replay:`compact`}),i=n?.trim();return i&&r.set(`conversationId`,i),K(`api/chat/subscribe/${J(e)}?${r.toString()}`,{signal:t})}async function ai(e){let t=await W(`api/chat/${J(e)}`);return X.invalidate(`thread-${e}`),t?.conversationId||``}async function oi(e,t,n){return V(`api/chat/${J(e)}/agent-note`,{content:t,...n})}async function si(e,t){return q(`api/chat/${J(e)}/compact`,t)}async function ci(e,t){let n=await V(`api/chat/${J(e)}/workspace-handoff`,t);return typeof n.brief==`string`?n.brief:``}async function li(e,t){let n=new URLSearchParams,r=t?.conversationId?.trim();r&&n.set(`conversationId`,r),t?.runId&&n.set(`runId`,t.runId),t?.all&&n.set(`all`,`1`);let i=n.size>0?`?${n.toString()}`:``,a=await q(`api/chat/stop/${J(e)}${i}`);if(a.success!==!0)throw Error(a.message||`Backend did not acknowledge stopping the run`)}async function $(e,t){return t.runNow&&t.setupScript?jt(`api/projects/${J(e)}`,t):(await Nt(`api/projects/${J(e)}`,t),Wr(e),null)}async function ui(e,t){await q(`api/projects/${J(e)}/open`,{program:t})}async function di(e,t){await q(`api/threads/${J(e)}/open`,{program:t})}async function fi(e,t){await $(e,{program:t})}async function pi(e,t,n){return $(e,{setupScript:t,runNow:n})}async function mi(e,t){await $(e,{name:t})}async function hi(e,t){let n=new URLSearchParams({provider:e});t!==void 0&&n.set(`supportedTools`,t?`true`:`false`),n.set(`useCase`,`coding`);let r=`available-models-${n.toString()}`;return X.get(r,async()=>{let e=await B(`api/models?${n.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function gi(e){let t=new URLSearchParams({useCase:e}),n=`available-models-all-${e}`;return X.get(n,async()=>(await B(`api/models/all?${t.toString()}`)).providers??{},12e4)}async function _i(e,t){await V(`api/models/${J(e,t)}/enable`),X.invalidate(`enabled-models`),X.invalidatePattern(/^available-models-/),X.invalidatePattern(/^available-image-models-/)}async function vi(e,t){await V(`api/models/${J(e,t)}/disable`),X.invalidate(`enabled-models`),X.invalidatePattern(/^available-models-/),X.invalidatePattern(/^available-image-models-/)}async function yi(e,t,n){await V(`api/models/${J(e,t)}/settings`,n),X.invalidatePattern(/^available-models-/),X.invalidate(`enabled-models`)}async function bi(){return X.get(`enabled-models`,async()=>(await B(`api/models/enabled?useCase=coding`)).enabledModels??{},12e4)}async function xi(e){let t=new URLSearchParams({provider:e,useCase:`image`}),n=`available-image-models-${e}`;return X.get(n,async()=>{let e=await B(`api/models?${t.toString()}`);return{models:e.models??[],enabledModelIds:e.enabledModelIds??[]}},12e4)}async function Si(){return X.get(`enabled-image-models`,async()=>(await B(`api/models/enabled?useCase=image`)).enabledModels??{},12e4)}async function Ci(e,t){await V(`api/models/${J(e,t)}/enable?useCase=image`),X.invalidate(`enabled-image-models`),X.invalidatePattern(/^available-models-/),X.invalidatePattern(/^available-image-models-/)}async function wi(e,t){await V(`api/models/${J(e,t)}/disable?useCase=image`),X.invalidate(`enabled-image-models`),X.invalidatePattern(/^available-models-/),X.invalidatePattern(/^available-image-models-/)}async function Ti(e,t,n,r,i,a,o=crypto.randomUUID()){function s(){r&&li(r,{conversationId:i,runId:o}).catch(function(){})}a?.addEventListener(`abort`,s,{once:!0});try{a?.aborted&&(s(),a.throwIfAborted());let c=await V(`api/image/generate`,{prompt:e,model:t,provider:n,threadId:r,conversationId:i,runId:o},{signal:a});return a?.throwIfAborted(),c}finally{a?.removeEventListener(`abort`,s)}}async function Ei(e){await Ht(e)}async function Di(e){return Vt(e)}async function Oi(e,t){return kt(`api/projects/${J(e)}/plugin-export`,t)}async function ki(e,t){return V(`api/projects/${J(e)}/plugin-import/preview`,{url:t})}async function Ai(e,t){return V(`api/projects/${J(e)}/plugin-import`,t)}async function ji(e,t){return V(`api/projects/${J(e)}/plugin-upload`,t)}async function Mi(e){let t=await V(`api/models/${J(e)}/refresh`);return X.invalidatePattern(/^available-models-/),X.invalidatePattern(/^available-image-models-/),X.invalidate(`enabled-models`),X.invalidate(`enabled-image-models`),t.modelCount??0}async function Ni(e,t){await V(`api/projects/${J(e)}/commands`,t)}async function Pi(e,t){await W(`api/projects/${J(e)}/commands/${J(t)}`)}async function Fi(e){return B(`api/projects/${J(e)}/package-scripts`)}async function Ii(e){return B(`api/threads/${J(e)}/files`)}async function Li(e){return(await B(`api/threads/${J(e)}/project-scripts`)).scripts}async function Ri(e,t,n,r){let{relativeFolder:i,...a}=r??{},o={scriptName:t,command:n};return i&&(o.relativeFolder=i),G(`api/threads/${J(e)}/project-scripts/run`,o,a)}async function zi(e,t){return V(`api/threads/${J(e)}/project-scripts/stop`,{scriptName:t})}async function Bi(e){return X.get(`thread-${e}`,async()=>B(`api/threads/${e}`),45e3)}async function Vi(e){return V(`api/projects/${J(e)}/run-suggest`,{})}async function Hi(e){return V(`api/projects/${J(e)}/setup-suggest`,{})}async function Ui(e,t,n){return An.info(`Start dev server requested`,{projectId:e,threadId:t}),X.invalidate(`dev-server-running-${e}${t?`-${t}`:``}`),G(`api/projects/${J(e)}/run`,{threadId:t},{signal:n})}async function Wi(e,t){return X.invalidate(`dev-server-running-${e}${t?`-${t}`:``}`),V(`api/projects/${J(e)}/stop`,t?{threadId:t}:{})}async function Gi(e,t,n){return V(`api/projects/${J(e)}/free-port`,{port:t,...n?{threadId:n}:{}})}async function Ki(e,t){return X.get(`dev-server-running-${e}${t?`-${t}`:``}`,async()=>B(`api/projects/${J(e)}/running${t?`?threadId=${encodeURIComponent(t)}`:``}`),3e3)}async function qi(e){return B(`api/projects/${J(e)}/system-prompt`)}async function Ji(){return B(`api/onboarding/status`)}async function Yi(){return B(`api/onboarding/git-check`)}async function Xi(){return V(`api/onboarding/complete`,{})}async function Zi(){return V(`api/onboarding/reset`,{})}async function Qi(){return B(`api/onboarding/recommended-models`)}async function $i(e){return(await B(`api/slash-commands?threadId=${J(e)}`)).commands??[]}async function ea(e){let t=await B(`api/slash-commands?threadId=${J(e)}`);return{commands:t.commands??[],skills:t.skills??[],bundledSkills:t.bundledSkills??[]}}async function ta(e,t,n,r,i){return V(`api/slash-commands`,{name:e,content:t,metadata:n,scope:r,threadId:i})}async function na(e,t){let n=await fetch(`http://localhost:641/api/slash-commands`,{method:`DELETE`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filePath:e,threadId:t})});if(!n.ok)throw Error(`Failed to delete slash command: ${n.statusText}`);return n.json()}async function ra(e){let t=new URLSearchParams;e?.threadId?t.set(`threadId`,e.threadId):e?.projectId&&t.set(`projectId`,e.projectId);let n=t.toString();await W(`api/conversations${n?`?${n}`:``}`)}async function ia(e=7){let t=new URLSearchParams;return t.set(`archivedOnly`,`1`),t.set(`olderThanDays`,String(e)),W(`api/conversations?${t.toString()}`)}async function aa(e=20,t=0,n,i){return B(`api/conversations/recent?limit=${Math.min(Math.max(e,1),100)}&offset=${Math.max(t,0)}${n?`&projectId=${encodeURIComponent(n)}`:``}${i?.unreadOnly?`&unreadOnly=1`:``}${i?.archivedOnly?`&archivedOnly=1`:``}&${r}=${i?.order??`updated`}`)}async function oa(e,t){await q(`api/conversations/${J(e)}/${J(t)}/read`,{})}async function sa(e){return(await B(`api/conversations/${J(e)}/completions`)).conversationIds??[]}async function ca(e){await W(`api/conversations/${J(e)}/complete`)}async function la(e){await V(`api/git/scan-merged-prs/${J(e)}`,{})}async function ua(e,t){await W(`api/conversations/${J(e)}/${J(t)}/read`)}async function da(e,t){await q(`api/conversations/${J(e)}/${J(t)}/archive`,{})}async function fa(e,t){return(await B(`api/conversations/${J(e)}/${J(t)}/sibling`)).hasSibling}async function pa(e,t,n){await U(`api/conversations/${J(e)}/${J(t)}/title`,{title:n})}async function ma(e,t,n){await U(`api/conversations/${J(e)}/${J(t)}/model`,{model:n.model,modelProvider:n.modelProvider})}async function ha(e,t){let n=new URLSearchParams({conversationId:e});return t&&n.set(`threadId`,t),B(`api/goals?${n}`)}async function ga(e,t){return V(`api/goals/${J(e)}/pause`,t?{threadId:t}:{})}async function _a(e,t){return V(`api/goals/${J(e)}/resume`,t?{threadId:t}:{})}async function va(e,t){return V(`api/goals/${J(e)}/end`,t?{threadId:t}:{})}async function ya(e,t){return B(`api/conversations/${J(e)}/${J(t)}/usage`)}async function ba(e,t,n){let r=`context-breakdown-${e}-${t}`;return n?.forceRefresh&&X.invalidate(r),X.get(r,async()=>B(`api/conversations/${J(e)}/${J(t)}/context`),45e3)}async function xa(e,t){return B(`api/conversations/${J(e)}/${J(t)}/context/tool-definitions`)}async function Sa(){try{return await B(`api/update/check`)}catch{return{updateAvailable:!1,supported:!1}}}async function Ca(){return V(`api/update/apply`)}async function wa(e){return(await B(`api/ask-user/pending${e?`?threadId=${encodeURIComponent(e)}`:``}`)).questions??[]}async function Ta(e,t,n){await V(`api/ask-user/respond`,{...typeof t==`string`?{toolCallId:e,answer:t}:{toolCallId:e,answers:t},...n?{threadId:n}:{}})}async function Ea(e){await V(`api/ask-user/credentials`,e)}async function Da(e,t,n){await V(`api/shell-permission/respond`,{toolCallId:e,decision:t,pattern:n?.pattern,projectId:n?.projectId,...n?.threadId?{threadId:n.threadId}:{}})}async function Oa(e,t,n){await V(`api/shell-permission/respond`,{toolCallId:e,escalationScope:t===`skip`?void 0:t,escalationDecision:t===`skip`?`skip`:void 0,...n?{threadId:n}:{}})}async function ka(e,t,n){await V(`api/web-fetch-permission/respond`,{toolCallId:e,decision:t,...n?{threadId:n}:{}})}async function Aa(e,t){await V(`api/browser/ready`,{toolCallId:e,webviewId:t})}async function ja(e,t,n){await V(`api/browser/action-result`,{toolCallId:e,result:t,...n?{threadId:n}:{}})}async function Ma(e){return B(`api/mcp/config?projectPath=${encodeURIComponent(e)}`)}async function Na(e,t,n){return H(`api/mcp/config`,{projectPath:e,serverName:t,serverConfig:n})}async function Pa(e,t){return W(`api/mcp/config/${J(t)}?projectPath=${encodeURIComponent(e)}`)}async function Fa(e,t){return V(`api/mcp/discover`,{projectPath:e,serverName:t})}async function Ia(){return(await B(`api/mcp/popular`)).servers??[]}async function La(e,t){return V(`api/mcp/oauth/authorize`,{projectPath:e,serverName:t})}async function Ra(e,t){return B(`api/mcp/oauth/status?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function za(e,t){return W(`api/mcp/oauth?projectPath=${encodeURIComponent(e)}&serverName=${encodeURIComponent(t)}`)}async function Ba(e){return(await B(`api/projects/${J(e)}/ai-files`)).nodes??[]}async function Va(e,t){return W(`api/projects/${J(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function Ha(e,t){return B(`api/projects/${J(e)}/ai-file?path=${encodeURIComponent(t)}`)}async function Ua(e,t,n){return H(`api/projects/${J(e)}/ai-file`,{path:t,content:n})}async function Wa(e,t,n){return H(`api/projects/${J(e)}/ai-files/skill/model-invocation`,{name:t,disableModelInvocation:n})}async function Ga(e){return(await B(`api/threads/${J(e)}/ai-files`)).nodes??[]}async function Ka(e,t,n){return H(`api/threads/${J(e)}/ai-file`,{path:t,content:n})}async function qa(e,t,n){return V(`api/threads/${J(e)}/ai-files/skill`,{name:t,description:n})}async function Ja(e,t,n){return H(`api/threads/${J(e)}/ai-files/skill/model-invocation`,{name:t,disableModelInvocation:n})}async function Ya(e,t,n,r){return V(`api/threads/${J(e)}/ai-files/agent`,{name:t,description:n,tools:r})}async function Xa(e,t){return W(`api/threads/${J(e)}/ai-file?path=${encodeURIComponent(t)}`)}export{Ti as $,lt as $i,Ea as $n,X as $r,Rn as $t,Pi as A,Ge as Ai,yi as An,un as Ar,qi as At,vi as B,pt as Bi,ma as Bn,Qt as Br,In as Bt,zn as C,a as Ca,Ve as Ci,Ar as Cn,vn as Cr,Sr as Ct,Ya as D,Se as Di,Ni as Dn,xn as Dr,Ba as Dt,Gr as E,ve as Ei,Ri as En,On as Er,Ha as Et,ur as F,Oe as Fi,Ka as Fn,mn as Fr,Vn as Ft,Oi as G,$e as Gi,Ui as Gn,$t as Gr,Qn as Gt,Ci as H,Ie as Hi,Wa as Hn,rn as Hr,nr as Ht,na as I,ge as Ii,la as In,ln as Ir,Bn as It,hi as J,ye as Ji,li as Jn,fn as Jr,Ii as Jt,gi as K,Ze as Ki,Wn as Kn,sn as Kr,Bi as Kt,Kr as L,ut as Li,Xr as Ln,gn as Lr,aa as Lt,Ur as M,Be as Mi,Br as Mn,nn as Mr,Er as Mt,Va as N,D as Ni,Kn as Nn,pn as Nr,Un as Nt,qa as O,we as Oi,Di as On,bn as Or,Rr as Ot,hr as P,Ae as Pi,Gn as Pn,cn as Pr,Hn as Pt,Gi as Q,Ke as Qi,Ta as Qn,Pt as Qr,Ai as Qt,Xa as R,Ee as Ri,ti as Rn,Xt as Rr,Qi as Rt,Ir as S,l as Sa,je as Si,Zi as Sn,yn as Sr,Ia as St,ta as T,tt as Ti,za as Tn,kn as Tr,Lr as Tt,_i as U,ot as Ui,sr as Un,an as Ur,$i as Ut,Fa as V,me as Vi,Pn as Vn,on as Vr,or as Vt,va as W,be as Wi,Ja as Wn,en as Wr,ea as Wt,wa as X,Te as Xi,zi as Xn,Jt as Xr,gr as Xt,sa as Y,Ce as Yi,Wi as Yn,Ut as Yr,xa as Yt,Yr as Z,We as Zi,ir as Zn,Kt as Zr,fa as Zt,Xi as _,y as _a,St as _i,pa as _n,Tn as _r,Ma as _t,La as a,Fe as aa,U as ai,Jn as an,Hi as ar,bi as at,Nr as b,h as ba,T as bi,Aa as bn,_n as br,Ji as bt,Ln as c,Le as ca,H as ci,ui as cn,dr as cr,yr as ct,ra as d,et as da,bt as di,oi as dn,fi as dr,ya as dt,O as ea,W as ei,Wr as en,Oa as er,Jr as et,rr as f,Qe as fa,Ct as fi,ar as fn,pi as fr,Cr as ft,si as g,ce as ga,M as gi,Mi as gn,Sn as gr,$n as gt,ca as h,w as ha,_t as hi,Zn as hn,ji as hr,ha as ht,da as i,De as ia,Ot as ii,oa as in,Vi as ir,Si as it,Pa as j,ct as ji,Ua as jn,Zt as jr,zr as jt,Xn as k,Ue as ki,Na as kn,dn as kr,Li as kt,ia as l,st as la,wt as li,di as ln,$ as lr,ba as lt,cr as m,ie as ma,gt as mi,_r as mn,qr as mr,Tr as mt,pr as n,_e as na,B as ni,br as nn,ka as nr,Yn as nt,Sa as o,mt as oa,V as oi,jr as on,Hr as or,vr as ot,Or as p,S as pa,xt as pi,ki as pn,mr as pr,wr as pt,xi as q,nt as qi,ri as qn,tn as qr,Ga as qt,Ca as r,dt as ra,P as ri,fr as rn,ii as rr,tr as rt,Yi as s,he as sa,At as si,Mr as sn,ua as sr,Qr as st,Z as t,ke as ta,J as ti,Ki as tn,Da as tr,ci as tt,ai as u,xe as ua,N as ui,ga as un,mi as ur,ei as ut,Ei as v,_ as va,Ye as vi,Vr as vn,wn as vr,Ra as vt,lr as w,s as wa,Re as wi,_a as wn,Cn as wr,xr as wt,kr as x,f as xa,E as xi,er as xn,Dn as xr,Fi as xt,Pr as y,g as ya,Je as yi,ja as yn,En as yr,$r as yt,wi as z,Pe as zi,ni as zn,hn as zr,Dr as zt};
@@ -1 +0,0 @@
1
- var e=0,t=new Set;function n(){for(let e of t)e()}function r(){e+=1,e===1&&n()}function i(){e!==0&&(--e,!(e>0)&&n())}function a(){return e>0}function o(e){return t.add(e),function(){t.delete(e)}}export{o as i,i as n,a as r,r as t};
@@ -1,12 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{V as i,b as a}from"./dist-D5vgS4RP.js";import{Z as o,n as s,r as c}from"./store-CxUwqrZ5.js";import{an as l,ui as u,vn as d}from"./api-COO2LfdU.js";import{t as f}from"./utils-mYB1USG6.js";import{t as p}from"./external-link-Dcikmdm_.js";import{t as m}from"./button-Dp5XDZNR.js";import{i as h,n as g,r as _,t as v}from"./tooltip-CJKJfu0l.js";import{i as y,r as b}from"./browser-overlay-block-CiDtkfup.js";import{n as x}from"./chat-dock-context-ymLoO90X.js";import{t as S}from"./use-toast-CKgZ8YeP.js";import{Bn as C,C as w,Cn as T,Et as E,Ft as D,Ir as O,Kn as k,L as A,Lr as j,N as M,Ot as N,Pn as P,S as F,Tt as I,_ as L,ar as R,b as z,g as B,h as V,kn as H,l as U,rr as W,u as G,v as K,w as q,x as J,y as Y}from"./index-CalVAwXj.js";import{t as ee}from"./use-active-dock-panel-instance-BvAhUd_V.js";var X=e(n(),1),Z=t();async function te(e){let{projectId:t,oldText:n,newText:r,selection:i,replaceUnique:a=d}=e;if(n===r)return{kind:`unchanged`};try{let e=await a(t,n,r);if(e.applied&&e.path)return{kind:`replaced`,path:e.path}}catch{}return{kind:`prompt`,prompt:K(i,n,r)}}var Q=r();function ne(e){let t=(0,Z.c)(43),{onCommit:n,onCancelPreview:r}=e,i=s(),a=c(ae),l=c(ie),u=c(re),d;t[0]===a?d=t[1]:(d=e=>a?e.projectModelSelections[a]:void 0,t[0]=a,t[1]=d);let f=c(d),{selectedBrowserElement:p,setSelectedBrowserElement:h,setIsEditModeEnabled:g,setBrowserAgentProcessingThreadId:_}=q(),{handleSend:v}=E(),{paneId:y,conversationId:b}=I(),[x,C]=(0,X.useState)(!1),w;if(t[2]!==u||t[3]!==l){let e;t[5]===l?e=t[6]:(e=e=>e.projectId===l,t[5]=l,t[6]=e),w=u.find(e),t[2]=u,t[3]=l,t[4]=w}else w=t[4];let T=w,D;t[7]===p?D=t[8]:(D=z(p),t[7]=p,t[8]=D);let O=D,k;t[9]!==g||t[10]!==h?(k=()=>{C(!1),g(!1),h(null)},t[9]=g,t[10]=h,t[11]=k):k=t[11];let A=k,j;t[12]!==b||t[13]!==i||t[14]!==A||t[15]!==v||t[16]!==y||t[17]!==T?.lastSelectedModel||t[18]!==T?.lastSelectedModelProvider||t[19]!==l||t[20]!==a||t[21]!==_||t[22]!==f?.id||t[23]!==f?.provider?(j=async e=>{if(!l){S({title:`No project selected`,description:`Open a project to apply text edits.`,variant:`destructive`}),A();return}C(!0);let t=await te({projectId:l,oldText:e.originalText,newText:e.currentText,selection:e.selection});if(t.kind===`unchanged`){S({title:`No text changes detected`}),A();return}if(t.kind===`replaced`){S({title:`Text updated`,description:`Replaced in ${t.path}`}),A();return}let n=f?.id??T?.lastSelectedModel,r=f?.provider??T?.lastSelectedModelProvider;if(!a||!n){S({title:`Could not apply text change`,description:`Select a chat thread and model to send this change as a prompt.`,variant:`destructive`}),C(!1);return}v(y,b,t.prompt,n,[],r),i({type:o.SetChatInputDraft,threadId:y===`primary`?a:`${a}:${y}`,draft:``}),_(a),A()},t[12]=b,t[13]=i,t[14]=A,t[15]=v,t[16]=y,t[17]=T?.lastSelectedModel,t[18]=T?.lastSelectedModelProvider,t[19]=l,t[20]=a,t[21]=_,t[22]=f?.id,t[23]=f?.provider,t[24]=j):j=t[24],T?.lastSelectedModel,T?.lastSelectedModelProvider,f?.id,f?.provider;let M=j,N,P;t[25]===O?(N=t[26],P=t[27]):(N=()=>{O||C(!1)},P=[O],t[25]=O,t[26]=N,t[27]=P),(0,X.useEffect)(N,P);let F,L;t[28]===M?(F=t[29],L=t[30]):(F=()=>{let e=function(e){let t=e.detail;Y(t)&&M(t)},t=function(e){let t=J(e.data);t&&M(t)};return window.addEventListener(V,e),window.addEventListener(`message`,t),function(){window.removeEventListener(V,e),window.removeEventListener(`message`,t)}},L=[M],t[28]=M,t[29]=F,t[30]=L),(0,X.useEffect)(F,L);let R;t[31]!==A||t[32]!==r?(R=function(){r(),A()},t[31]=A,t[32]=r,t[33]=R):R=t[33];let B=R;if(!O)return null;let H;t[34]!==x||t[35]!==n?(H=(0,Q.jsx)(m,{type:`button`,size:`sm`,onClick:n,disabled:x,children:`Apply Changes`}),t[34]=x,t[35]=n,t[36]=H):H=t[36];let U;t[37]!==B||t[38]!==x?(U=(0,Q.jsx)(m,{type:`button`,size:`sm`,variant:`outline`,onClick:B,disabled:x,children:`Cancel`}),t[37]=B,t[38]=x,t[39]=U):U=t[39];let W;return t[40]!==H||t[41]!==U?(W=(0,Q.jsxs)(`div`,{className:`flex shrink-0 items-center justify-center gap-2 border-b border-border px-3 py-2`,children:[H,U]}),t[40]=H,t[41]=U,t[42]=W):W=t[42],W}function re(e){return e.projects}function ie(e){return e.selectedProjectId}function ae(e){return e.selectedThreadId}function oe(e){let t=e.trim();return t?(!t.startsWith(`http://`)&&!t.startsWith(`https://`)&&(t=`http://${t}`),t):``}function se(e){return typeof e==`string`?e:typeof e==`object`&&e&&`url`in e&&typeof e.url==`string`?e.url:``}function ce(e){return e?e.querySelector(`electrobun-webview`):null}function le(e){e.webviewId!=null&&(e.toggleHidden(!0),e.togglePassthrough(!0))}function ue(e){e.webviewId!=null&&(e.toggleHidden(!1),e.togglePassthrough(!1),e.syncDimensions(!0))}function de(e,t){if(t){ue(e);return}le(e)}function fe(e){return e!=null&&e.getClientRects().length>0}function pe(e,t,n){let r=!1,i=0;function a(){if(!r){if(e.webviewId==null){i=requestAnimationFrame(a);return}t&&e.getAttribute(`src`)!==t&&e.loadURL(t),de(e,n())}}return i=requestAnimationFrame(a),function(){r=!0,cancelAnimationFrame(i)}}function me(e){let t=(0,Z.c)(8),{useNativeWebview:n,shouldRenderNativeWebview:r,currentUrl:i,resolveWebview:a}=e,[o,s]=(0,X.useState)(r),c;t[0]!==a||t[1]!==r||t[2]!==n?(c=()=>{if(!n)return;if(r){s(!0);return}let e=a();e&&le(e);let t=requestAnimationFrame(()=>{s(!1)});return function(){cancelAnimationFrame(t)}},t[0]=a,t[1]=r,t[2]=n,t[3]=c):c=t[3];let l;return t[4]!==i||t[5]!==r||t[6]!==n?(l=[r,n,i],t[4]=i,t[5]=r,t[6]=n,t[7]=l):l=t[7],(0,X.useLayoutEffect)(c,l),o}var he=a(`browser.preview-scripting`);function ge(e,t=!1,n=`select`){return`(function () {
2
- const api = window.__tarskBrowserPreview;
3
- if (!api || typeof api.setSelectMode !== "function") {
4
- log.error("[browser-preview] selection API is not available");
5
- return;
6
- }
7
- api.setSelectMode(${e?`true`:`false`}, ${t?`true`:`false`}, ${JSON.stringify(n)});
8
- })();`}function _e(e){let t=e===`commit`?`commitTextEdit`:`cancelTextEdit`;return`(function () {
9
- const api = window.__tarskBrowserPreview;
10
- if (!api || typeof api.${t} !== "function") return;
11
- api.${t}();
12
- })();`}function ve(e,t,n=!1,r=`select`){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);try{e.executeJavascript(ge(t,n,r))}catch(i){throw he.error(`[browser-preview] Failed to toggle native preview selection mode`,{enabled:t,preserveSelection:n,interaction:r,src:e.src,webview_id:e.webviewId,error:i instanceof Error?i.message:String(i),stack:i instanceof Error?i.stack:void 0}),i}}function ye(e,t){if(typeof e.executeJavascript!=`function`)throw Error(`Browser preview webview JS execution is not available`);e.executeJavascript(t)}function be(e,t,n=!1,r=`select`){let i=e.contentWindow;if(!i)throw Error(`Browser preview frame is not ready`);let a=i.__tarskBrowserPreview;if(!a?.setSelectMode)throw Error(`Browser preview selection API is not available in iframe preview`);a.setSelectMode(t,n,r)}function xe(e,t){let n=e.contentWindow?.__tarskBrowserPreview;if(!n||typeof n[t===`commit`?`commitTextEdit`:`cancelTextEdit`]!=`function`){he.warn(`[browser-preview] Preview text-edit API unavailable; action ignored`,{action:t,src:e.src});return}if(t===`commit`){n.commitTextEdit?.();return}n.cancelTextEdit?.()}var Se=a(`app.browser-tab.ui`),Ce=new Set([`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`PageUp`,`PageDown`,`Home`,`End`]),we=new Set([`INPUT`,`TEXTAREA`,`SELECT`]),Te=new Set([`combobox`,`listbox`,`menu`,`menubar`,`menuitem`,`option`,`radiogroup`,`tablist`,`tab`,`grid`,`slider`,`spinbutton`]);function Ee(e){if(we.has(e.tagName)||e.isContentEditable)return!0;let t=e.getAttribute(`role`);return t!==null&&Te.has(t)}function De(e){return e instanceof HTMLElement&&Ee(e)}function Oe(e,t,n){let[r,i]=(0,X.useState)(!0),a=(0,X.useSyncExternalStore)(G,U),o=(0,X.useSyncExternalStore)(y,b),s=t&&(r&&!o||a),c=(0,X.useRef)(s);c.current=s;let l=(0,X.useCallback)(function(){return c.current},[]),u=(0,X.useCallback)(function(){i(fe(e.current))},[]);return(0,X.useLayoutEffect)(u),(0,X.useEffect)(()=>{let t=e.current;if(!t)return;let n=new ResizeObserver(u);return n.observe(t),function(){n.disconnect()}},[u,n]),{shouldShowWebview:s,readWebviewVisibility:l}}function ke({devServerUrl:e,devServerStopped:t,isBrowserActive:n,currentUrl:r,browserResetTrigger:i,webviewRef:a,iframeRef:o,setCurrentUrl:s,setPendingUrl:c,setInputUrl:l,setSelectionModeError:u,setIsSelectModeEnabled:d,setIsEditModeEnabled:f,setSelectedBrowserElement:p,setIsSelectionPromptOpen:m,setBrowserAgentProcessingThreadId:h}){let g=(0,X.useRef)(r),_=(0,X.useRef)(null);g.current=r,(0,X.useEffect)(()=>{s(``),c(``),l(``),u(null),d(!1),f(!1),p(null),m(!1),h(null);let e=a.current;e&&(e.src=``),o.current&&(o.current.src=``)},[i,h,d,f,m,p]),(0,X.useEffect)(()=>{if(t&&!e){s(``),c(``),l(``),u(null),n&&(d(!1),f(!1),p(null),m(!1),h(null));let e=a.current;e&&(e.src=``),o.current&&(o.current.src=``);return}if(!e)return;let r=oe(e);l(r),(!g.current||g.current===_.current)&&(s(r),c(r),_.current=r),u(null),n&&(d(!1),f(!1),p(null),m(!1),h(null))},[e,t,n,h,d,f,m,p])}function Ae(e,t,n,r){let i=(0,Z.c)(9),a;i[0]!==n||i[1]!==e||i[2]!==r||i[3]!==t?(a=()=>{if(!e||!t)return;let i=function(e){Ce.has(e.key)&&(De(e.target)||r.current?.contains(e.target)||(e.preventDefault(),n()))};return document.addEventListener(`keydown`,i,!0),function(){document.removeEventListener(`keydown`,i,!0)}},i[0]=n,i[1]=e,i[2]=r,i[3]=t,i[4]=a):a=i[4];let o;i[5]!==n||i[6]!==e||i[7]!==t?(o=[e,t,n],i[5]=n,i[6]=e,i[7]=t,i[8]=o):o=i[8],(0,X.useEffect)(a,o)}function je(e){let t=(0,Z.c)(13),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,resolveWebview:a,setCurrentUrl:o,setPendingUrl:s,setInputUrl:c,setSelectionModeError:u}=e,d;t[0]!==i||t[1]!==r||t[2]!==a||t[3]!==o||t[4]!==c||t[5]!==s||t[6]!==u||t[7]!==n?(d=()=>{let e=a();if(!n||!e||!r)return;let t=function(e){let t=typeof e.detail==`string`?e.detail:i;t&&(o(t),s(``),c(t))},d=function(e){let t=typeof e.detail==`string`?e.detail:i;t&&(o(t),c(t))},f=function(e){let t=se(e.detail);t&&l(t)},p=function(e){let t=w(e.detail);if(t){L(t);return}let n=F(e.detail);n&&(u(null),B(n))};return e.on(`did-navigate`,t),e.on(`did-navigate-in-page`,d),e.on(`new-window-open`,f),e.on(`host-message`,p),function(){e.off(`did-navigate`,t),e.off(`did-navigate-in-page`,d),e.off(`new-window-open`,f),e.off(`host-message`,p)}},t[0]=i,t[1]=r,t[2]=a,t[3]=o,t[4]=c,t[5]=s,t[6]=u,t[7]=n,t[8]=d):d=t[8];let f;t[9]!==i||t[10]!==r||t[11]!==n?(f=[i,n,r],t[9]=i,t[10]=r,t[11]=n,t[12]=f):f=t[12],(0,X.useEffect)(d,f)}function Me(e){let t=(0,Z.c)(23),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,deviceMode:a,shouldShowWebview:o,pendingUrl:s,readWebviewVisibility:c,resolveWebview:l}=e,u;t[0]!==r||t[1]!==l||t[2]!==o||t[3]!==n?(u=()=>{if(!n||!r)return;let e=l();e&&e.webviewId!=null&&de(e,o)},t[0]=r,t[1]=l,t[2]=o,t[3]=n,t[4]=u):u=t[4];let d;t[5]!==i||t[6]!==a||t[7]!==r||t[8]!==o||t[9]!==n?(d=[r,n,i,a,o],t[5]=i,t[6]=a,t[7]=r,t[8]=o,t[9]=n,t[10]=d):d=t[10],(0,X.useLayoutEffect)(u,d);let f;t[11]!==r||t[12]!==s||t[13]!==c||t[14]!==l||t[15]!==n?(f=()=>{let e=l();if(n&&e&&s&&r)return pe(e,s,c)},t[11]=r,t[12]=s,t[13]=c,t[14]=l,t[15]=n,t[16]=f):f=t[16];let p;t[17]!==i||t[18]!==r||t[19]!==s||t[20]!==c||t[21]!==n?(p=[s,n,i,r,c],t[17]=i,t[18]=r,t[19]=s,t[20]=c,t[21]=n,t[22]=p):p=t[22],(0,X.useEffect)(f,p)}function Ne(e){let t=(0,Z.c)(23),{isBrowserActive:n,currentUrl:r,isSelectModeEnabled:i,isEditModeEnabled:a,isSelectionPromptOpen:o,nativeWebviewMounted:s,useNativeWebview:c,resolveWebview:l,iframeRef:u,setIsSelectModeEnabled:d,setIsEditModeEnabled:f,setSelectionModeError:p}=e,m;t[0]!==r||t[1]!==u||t[2]!==n||t[3]!==a||t[4]!==i||t[5]!==o||t[6]!==s||t[7]!==l||t[8]!==f||t[9]!==d||t[10]!==p||t[11]!==c?(m=()=>{if(!n)return;if(!r){i&&d(!1),a&&f(!1);return}let e=!1,t=i||a,m=a?`edit`:`select`,h=!t&&o;return(function(){try{if(c){let e=l();if(!e||e.webviewId==null||!s)return;ve(e,t,h,m);return}let e=u.current;if(!e)return;be(e,t,h,m)}catch(n){let r=n;if(e||!t)return;let i=r instanceof Error?r.message:`Could not enable element selection.`;Se.error(`Failed to toggle browser selection mode:`,r),p(i),d(!1),f(!1),S({title:`Selection mode unavailable`,description:i,variant:`destructive`})}})(),function(){e=!0}},t[0]=r,t[1]=u,t[2]=n,t[3]=a,t[4]=i,t[5]=o,t[6]=s,t[7]=l,t[8]=f,t[9]=d,t[10]=p,t[11]=c,t[12]=m):m=t[12];let h;t[13]!==r||t[14]!==n||t[15]!==a||t[16]!==i||t[17]!==o||t[18]!==s||t[19]!==f||t[20]!==d||t[21]!==c?(h=[r,n,a,i,o,s,f,d,c],t[13]=r,t[14]=n,t[15]=a,t[16]=i,t[17]=o,t[18]=s,t[19]=f,t[20]=d,t[21]=c,t[22]=h):h=t[22],(0,X.useEffect)(m,h)}function Pe(e){let t=(0,Z.c)(23),n=ee(e,`browser`),{devServerUrl:r,devServerStopped:i}=A(),{browserResetTrigger:a,browserDeviceMode:o,setBrowserDeviceMode:s,isSelectModeEnabled:l,setIsSelectModeEnabled:u,isEditModeEnabled:d,setIsEditModeEnabled:f,selectedBrowserElement:p,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,isSelectionPromptOpen:g,setBrowserAgentProcessingThreadId:_}=q(),v=c(Ie),y=c(Fe),b;if(t[0]!==y||t[1]!==v){let e;t[3]===v?e=t[4]:(e=e=>e.projectId===v,t[3]=v,t[4]=e),b=y.find(e),t[0]=y,t[1]=v,t[2]=b}else b=t[2];let x=b,S;return t[5]!==o||t[6]!==a||t[7]!==i||t[8]!==r||t[9]!==n||t[10]!==d||t[11]!==l||t[12]!==g||t[13]!==p||t[14]!==x||t[15]!==v||t[16]!==_||t[17]!==s||t[18]!==f||t[19]!==u||t[20]!==h||t[21]!==m?(S={isBrowserActive:n,devServerUrl:r,devServerStopped:i,browserResetTrigger:a,browserDeviceMode:o,setBrowserDeviceMode:s,isSelectModeEnabled:l,setIsSelectModeEnabled:u,isEditModeEnabled:d,setIsEditModeEnabled:f,selectedBrowserElement:p,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,isSelectionPromptOpen:g,setBrowserAgentProcessingThreadId:_,selectedProjectId:v,selectedProject:x},t[5]=o,t[6]=a,t[7]=i,t[8]=r,t[9]=n,t[10]=d,t[11]=l,t[12]=g,t[13]=p,t[14]=x,t[15]=v,t[16]=_,t[17]=s,t[18]=f,t[19]=u,t[20]=h,t[21]=m,t[22]=S):S=t[22],S}function Fe(e){return e.projects}function Ie(e){return e.selectedProjectId}function Le(e){let t=(0,Z.c)(33),n=Pe(e),r=Ve(n),i=n.selectedProject?.runCommand,a;t[0]!==n.isEditModeEnabled||t[1]!==n.selectedBrowserElement?(a=n.isEditModeEnabled||z(n.selectedBrowserElement),t[0]=n.isEditModeEnabled,t[1]=n.selectedBrowserElement,t[2]=a):a=t[2];let o=n.isSelectModeEnabled||n.isEditModeEnabled,s;t[3]===r.currentUrl?s=t[4]:(s=()=>void l(r.currentUrl),t[3]=r.currentUrl,t[4]=s);let c;return t[5]!==r.currentUrl||t[6]!==r.deviceMode||t[7]!==r.handleWebviewRef||t[8]!==r.iframeRef||t[9]!==r.inputUrl||t[10]!==r.nativeWebviewMounted||t[11]!==r.previewActions.goBack||t[12]!==r.previewActions.goForward||t[13]!==r.previewActions.handleKeyDown||t[14]!==r.previewActions.refresh||t[15]!==r.previewActions.runPreviewTextEdit||t[16]!==r.previewActions.toggleEditMode||t[17]!==r.previewActions.toggleSelectMode||t[18]!==r.previewActions.updateDeviceMode||t[19]!==r.previewContainerRef||t[20]!==r.previewRpcPreload||t[21]!==r.selectionModeError||t[22]!==r.setInputUrl||t[23]!==r.useNativeWebview||t[24]!==n.devServerStopped||t[25]!==n.isBrowserActive||t[26]!==n.isSelectModeEnabled||t[27]!==n.selectedProjectId||t[28]!==i||t[29]!==a||t[30]!==o||t[31]!==s?(c={isBrowserActive:n.isBrowserActive,devServerStopped:n.devServerStopped,selectedProjectId:n.selectedProjectId,runCommand:i,currentUrl:r.currentUrl,inputUrl:r.inputUrl,setInputUrl:r.setInputUrl,handleKeyDown:r.previewActions.handleKeyDown,deviceMode:r.deviceMode,updateDeviceMode:r.previewActions.updateDeviceMode,selectionModeError:r.selectionModeError,isSelectModeEnabled:n.isSelectModeEnabled,isEditModeActive:a,isSurfaceSelectInteraction:o,toggleSelectMode:r.previewActions.toggleSelectMode,toggleEditMode:r.previewActions.toggleEditMode,refresh:r.previewActions.refresh,goBack:r.previewActions.goBack,goForward:r.previewActions.goForward,openExternal:s,runPreviewTextEdit:r.previewActions.runPreviewTextEdit,previewContainerRef:r.previewContainerRef,iframeRef:r.iframeRef,handleWebviewRef:r.handleWebviewRef,useNativeWebview:r.useNativeWebview,nativeWebviewMounted:r.nativeWebviewMounted,previewRpcPreload:r.previewRpcPreload},t[5]=r.currentUrl,t[6]=r.deviceMode,t[7]=r.handleWebviewRef,t[8]=r.iframeRef,t[9]=r.inputUrl,t[10]=r.nativeWebviewMounted,t[11]=r.previewActions.goBack,t[12]=r.previewActions.goForward,t[13]=r.previewActions.handleKeyDown,t[14]=r.previewActions.refresh,t[15]=r.previewActions.runPreviewTextEdit,t[16]=r.previewActions.toggleEditMode,t[17]=r.previewActions.toggleSelectMode,t[18]=r.previewActions.updateDeviceMode,t[19]=r.previewContainerRef,t[20]=r.previewRpcPreload,t[21]=r.selectionModeError,t[22]=r.setInputUrl,t[23]=r.useNativeWebview,t[24]=n.devServerStopped,t[25]=n.isBrowserActive,t[26]=n.isSelectModeEnabled,t[27]=n.selectedProjectId,t[28]=i,t[29]=a,t[30]=o,t[31]=s,t[32]=c):c=t[32],c}function Re(e,t,n){return(0,X.useCallback)(function(){if(e){t()?.focus();return}n.current?.contentWindow?.focus()},[e])}function ze(e,t,n){return(0,X.useCallback)(function(r){e.current=r,r&&pe(r,t.current,n)},[n])}function Be(e){let[t,n]=(0,X.useState)(``),[r,i]=(0,X.useState)(``),[a,o]=(0,X.useState)(``),[s,c]=(0,X.useState)(e),[l,u]=(0,X.useState)(null),d=(0,X.useRef)(null),f=(0,X.useRef)(a),p=(0,X.useRef)(null),m=(0,X.useRef)(null);return f.current=a,(0,X.useEffect)(()=>{c(e)},[e]),{inputUrl:t,setInputUrl:n,currentUrl:r,setCurrentUrl:i,pendingUrl:a,setPendingUrl:o,deviceMode:s,setDeviceMode:c,selectionModeError:l,setSelectionModeError:u,webviewRef:d,pendingUrlRef:f,iframeRef:p,previewContainerRef:m}}function Ve(e){let t=(0,Z.c)(80),{isBrowserActive:n,devServerUrl:r,devServerStopped:i,browserResetTrigger:a,browserDeviceMode:o,setBrowserDeviceMode:s,isSelectModeEnabled:c,setIsSelectModeEnabled:l,isEditModeEnabled:d,setIsEditModeEnabled:f,selectedBrowserElement:p,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,isSelectionPromptOpen:g,setBrowserAgentProcessingThreadId:_}=e,{inputUrl:v,setInputUrl:y,currentUrl:b,setCurrentUrl:x,pendingUrl:S,setPendingUrl:C,deviceMode:w,setDeviceMode:T,selectionModeError:E,setSelectionModeError:D,webviewRef:O,pendingUrlRef:k,iframeRef:A,previewContainerRef:j}=Be(o),M;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(M=u(),t[0]=M):M=t[0];let P=M,F;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(F=N(),t[1]=F):F=t[1];let I=F,L=P&&!!b,R;t[2]!==j||t[3]!==O?(R=function(){return O.current??ce(j.current)},t[2]=j,t[3]=O,t[4]=R):R=t[4];let z=R,{shouldShowWebview:B,readWebviewVisibility:V}=Oe(j,n,b),H;t[5]!==b||t[6]!==z||t[7]!==L?(H={useNativeWebview:P,shouldRenderNativeWebview:L,currentUrl:b,resolveWebview:z},t[5]=b,t[6]=z,t[7]=L,t[8]=H):H=t[8];let U=me(H),W;t[9]!==a||t[10]!==b||t[11]!==i||t[12]!==r||t[13]!==A||t[14]!==n||t[15]!==_||t[16]!==x||t[17]!==y||t[18]!==f||t[19]!==l||t[20]!==h||t[21]!==C||t[22]!==m||t[23]!==D||t[24]!==O?(W={devServerUrl:r,devServerStopped:i,isBrowserActive:n,currentUrl:b,browserResetTrigger:a,webviewRef:O,iframeRef:A,setCurrentUrl:x,setPendingUrl:C,setInputUrl:y,setSelectionModeError:D,setIsSelectModeEnabled:l,setIsEditModeEnabled:f,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,setBrowserAgentProcessingThreadId:_},t[9]=a,t[10]=b,t[11]=i,t[12]=r,t[13]=A,t[14]=n,t[15]=_,t[16]=x,t[17]=y,t[18]=f,t[19]=l,t[20]=h,t[21]=C,t[22]=m,t[23]=D,t[24]=O,t[25]=W):W=t[25],ke(W),Ae(n,P,Re(P,z,A),j);let G;t[26]!==b||t[27]!==U||t[28]!==z||t[29]!==x||t[30]!==y||t[31]!==C||t[32]!==D?(G={useNativeWebview:P,nativeWebviewMounted:U,currentUrl:b,resolveWebview:z,setCurrentUrl:x,setPendingUrl:C,setInputUrl:y,setSelectionModeError:D},t[26]=b,t[27]=U,t[28]=z,t[29]=x,t[30]=y,t[31]=C,t[32]=D,t[33]=G):G=t[33],je(G);let K;t[34]!==b||t[35]!==w||t[36]!==U||t[37]!==S||t[38]!==V||t[39]!==z||t[40]!==B?(K={useNativeWebview:P,nativeWebviewMounted:U,currentUrl:b,deviceMode:w,shouldShowWebview:B,pendingUrl:S,readWebviewVisibility:V,resolveWebview:z},t[34]=b,t[35]=w,t[36]=U,t[37]=S,t[38]=V,t[39]=z,t[40]=B,t[41]=K):K=t[41],Me(K);let q;t[42]!==b||t[43]!==A||t[44]!==n||t[45]!==d||t[46]!==c||t[47]!==g||t[48]!==U||t[49]!==z||t[50]!==f||t[51]!==l||t[52]!==D?(q={isBrowserActive:n,currentUrl:b,isSelectModeEnabled:c,isEditModeEnabled:d,isSelectionPromptOpen:g,nativeWebviewMounted:U,useNativeWebview:P,resolveWebview:z,iframeRef:A,setIsSelectModeEnabled:l,setIsEditModeEnabled:f,setSelectionModeError:D},t[42]=b,t[43]=A,t[44]=n,t[45]=d,t[46]=c,t[47]=g,t[48]=U,t[49]=z,t[50]=f,t[51]=l,t[52]=D,t[53]=q):q=t[53],Ne(q);let J=ze(O,k,V),Y;t[54]!==A||t[55]!==v||t[56]!==z||t[57]!==p||t[58]!==s||t[59]!==x||t[60]!==T||t[61]!==y||t[62]!==f||t[63]!==l||t[64]!==h||t[65]!==C||t[66]!==m||t[67]!==D?(Y={useNativeWebview:P,inputUrl:v,selectedBrowserElement:p,resolveWebview:z,iframeRef:A,setDeviceMode:T,setBrowserDeviceMode:s,setSelectionModeError:D,setIsSelectModeEnabled:l,setIsEditModeEnabled:f,setSelectedBrowserElement:m,setIsSelectionPromptOpen:h,setInputUrl:y,setCurrentUrl:x,setPendingUrl:C},t[54]=A,t[55]=v,t[56]=z,t[57]=p,t[58]=s,t[59]=x,t[60]=T,t[61]=y,t[62]=f,t[63]=l,t[64]=h,t[65]=C,t[66]=m,t[67]=D,t[68]=Y):Y=t[68];let ee=He(Y),X;return t[69]!==b||t[70]!==w||t[71]!==J||t[72]!==A||t[73]!==v||t[74]!==U||t[75]!==ee||t[76]!==j||t[77]!==E||t[78]!==y?(X={currentUrl:b,inputUrl:v,setInputUrl:y,deviceMode:w,selectionModeError:E,previewContainerRef:j,iframeRef:A,handleWebviewRef:J,useNativeWebview:P,nativeWebviewMounted:U,previewRpcPreload:I,previewActions:ee},t[69]=b,t[70]=w,t[71]=J,t[72]=A,t[73]=v,t[74]=U,t[75]=ee,t[76]=j,t[77]=E,t[78]=y,t[79]=X):X=t[79],X}function He({useNativeWebview:e,inputUrl:t,selectedBrowserElement:n,resolveWebview:r,iframeRef:i,setDeviceMode:a,setBrowserDeviceMode:o,setSelectionModeError:s,setIsSelectModeEnabled:c,setIsEditModeEnabled:l,setSelectedBrowserElement:u,setIsSelectionPromptOpen:d,setInputUrl:f,setCurrentUrl:p,setPendingUrl:m}){function h(e){a(e),o(e)}function g(){s(null),c(!1),l(!1),u(null),d(!1)}function _(t){try{if(e){let e=r();if(!e)return;ye(e,_e(t));return}let n=i.current;if(!n)return;xe(n,t)}catch(e){Se.error(`Failed to run preview text edit action:`,e)}}function v(e){let t=oe(e);t&&(f(t),p(t),m(t),g())}function y(e){e.key===`Enter`&&v(t)}function b(){if(g(),e){let e=r();e&&e.reload();return}let t=i.current;if(!t)return;let n=t.src;t.src=``,requestAnimationFrame(()=>{t.src=n})}function x(){if(g(),e){let e=r();e&&e.executeJavascript(`history.back()`);return}C(-1)}function S(){if(g(),e){let e=r();e&&e.executeJavascript(`history.forward()`);return}C(1)}function C(e){let t=i.current;if(t&&t.contentWindow)try{e<0?t.contentWindow.history.back():t.contentWindow.history.forward()}catch{}}function w(){s(null),l(!1),z(n)&&(_(`cancel`),u(null)),c(e=>!e)}function T(){if(s(null),c(!1),d(!1),z(n)){_(`cancel`),u(null),l(!1);return}l(e=>!e)}return{handleKeyDown:y,updateDeviceMode:h,toggleSelectMode:w,toggleEditMode:T,refresh:b,goBack:x,goForward:S,runPreviewTextEdit:_}}var Ue={desktop:{width:`100%`,height:`100%`},tablet:{width:`768px`,height:`1024px`},mobile:{width:`375px`,height:`667px`}};function We(e){let t=(0,Z.c)(7),{useNativeWebview:n,nativeWebviewMounted:r,currentUrl:i,previewRpcPreload:a,handleWebviewRef:o,iframeRef:s}=e;if(n){if(!r)return null;let e;return t[0]!==i||t[1]!==o||t[2]!==a?(e=(0,X.createElement)(`electrobun-webview`,{ref:o,src:i,preload:a,renderer:`native`,className:`block h-full w-full bg-background`}),t[0]=i,t[1]=o,t[2]=a,t[3]=e):e=t[3],e}let c;return t[4]!==i||t[5]!==s?(c=(0,Q.jsx)(`iframe`,{ref:s,src:i,className:`h-full w-full border-none`,title:`Browser`,sandbox:`allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads`}),t[4]=i,t[5]=s,t[6]=c):c=t[6],c}function Ge(e){let t=(0,Z.c)(18),{selectionModeError:n,isSelectModeEnabled:r,deviceMode:i,currentDeviceConfig:a,previewContainerRef:o,children:s}=e,c;t[0]===n?c=t[1]:(c=n&&(0,Q.jsxs)(`div`,{className:`border-b border-destructive/20 bg-destructive/5 px-3 py-2 text-sm text-destructive`,children:[`Element selection is unavailable: `,n]}),t[0]=n,t[1]=c);let l=r&&`cursor-crosshair`,u;t[2]===l?u=t[3]:(u=f(`flex min-h-0 flex-1 items-center justify-center bg-background`,l),t[2]=l,t[3]=u);let d=`overflow-hidden border border-border bg-background shadow-sm ${i===`desktop`?`h-full w-full rounded-none border-0 shadow-none`:`rounded-lg`}`,p;t[4]!==a.height||t[5]!==a.width?(p={width:a.width,height:a.height,maxWidth:`100%`,maxHeight:`100%`},t[4]=a.height,t[5]=a.width,t[6]=p):p=t[6];let m;t[7]!==s||t[8]!==d||t[9]!==p?(m=(0,Q.jsx)(`div`,{className:d,style:p,children:s}),t[7]=s,t[8]=d,t[9]=p,t[10]=m):m=t[10];let h;t[11]!==o||t[12]!==u||t[13]!==m?(h=(0,Q.jsx)(`div`,{ref:o,className:u,children:m}),t[11]=o,t[12]=u,t[13]=m,t[14]=h):h=t[14];let g;return t[15]!==c||t[16]!==h?(g=(0,Q.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col bg-background`,children:[c,h]}),t[15]=c,t[16]=h,t[17]=g):g=t[17],g}function $(e){let t=(0,Z.c)(16),{onClick:n,label:r,children:i,isActive:a,disabled:o,activeStyle:s}=e,c=a!==void 0&&a,l=o!==void 0&&o,u=s===void 0?`elevated`:s,d=l&&`cursor-not-allowed text-muted-foreground/50`,p=!l&&!c&&`text-muted-foreground hover:bg-background/50 hover:text-foreground`,m=!l&&c&&u===`depressed`&&`bg-muted text-primary shadow-[inset_0_2px_4px_rgba(0,0,0,0.14)] ring-1 ring-inset ring-border/80 dark:shadow-[inset_0_2px_4px_rgba(0,0,0,0.35)]`,_=!l&&c&&u===`elevated`&&`bg-background text-foreground shadow-sm`,y;t[0]!==d||t[1]!==p||t[2]!==m||t[3]!==_?(y=f(`rounded p-1.5 transition-all`,d,p,m,_),t[0]=d,t[1]=p,t[2]=m,t[3]=_,t[4]=y):y=t[4];let b;t[5]!==i||t[6]!==l||t[7]!==c||t[8]!==n||t[9]!==y?(b=(0,Q.jsx)(h,{asChild:!0,children:(0,Q.jsx)(`button`,{type:`button`,onClick:n,disabled:l,"aria-pressed":c,className:y,children:i})}),t[5]=i,t[6]=l,t[7]=c,t[8]=n,t[9]=y,t[10]=b):b=t[10];let x;t[11]===r?x=t[12]:(x=(0,Q.jsx)(g,{children:r}),t[11]=r,t[12]=x);let S;return t[13]!==x||t[14]!==b?(S=(0,Q.jsxs)(v,{children:[b,x]}),t[13]=x,t[14]=b,t[15]=S):S=t[15],S}function Ke(e){let t=(0,Z.c)(43),{controller:n,urlInputRef:r}=e,{currentUrl:i,inputUrl:a,setInputUrl:o,handleKeyDown:s,goBack:c,goForward:l,refresh:u,toggleSelectMode:d,toggleEditMode:m,openExternal:h,updateDeviceMode:g,selectionModeError:_,isSelectModeEnabled:v,isEditModeActive:y,deviceMode:b}=n,x;t[0]!==i||t[1]!==c?(x=i&&(0,Q.jsx)($,{onClick:c,label:`Back`,children:(0,Q.jsx)(j,{size:15})}),t[0]=i,t[1]=c,t[2]=x):x=t[2];let S;t[3]!==i||t[4]!==l?(S=i&&(0,Q.jsx)($,{onClick:l,label:`Forward`,children:(0,Q.jsx)(O,{size:15})}),t[3]=i,t[4]=l,t[5]=S):S=t[5];let w;t[6]===o?w=t[7]:(w=e=>o(e.target.value),t[6]=o,t[7]=w);let E;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(E=f(`flex-1 rounded-full bg-muted font-mono`),t[8]=E):E=t[8];let D;t[9]!==s||t[10]!==a||t[11]!==w||t[12]!==r?(D=(0,Q.jsx)(T,{ref:r,type:`text`,value:a,onChange:w,onKeyDown:s,placeholder:`Enter URL...`,className:E,spellCheck:!1}),t[9]=s,t[10]=a,t[11]=w,t[12]=r,t[13]=D):D=t[13];let A;t[14]!==i||t[15]!==u?(A=i&&(0,Q.jsx)($,{onClick:u,label:`Refresh page`,children:(0,Q.jsx)(k,{size:15})}),t[14]=i,t[15]=u,t[16]=A):A=t[16];let M;t[17]!==i||t[18]!==v||t[19]!==_||t[20]!==d?(M=i&&(0,Q.jsx)($,{onClick:d,label:_?`Select element unavailable: ${_}`:v?`Exit element selection`:`Select element from preview`,isActive:v,activeStyle:`depressed`,children:(0,Q.jsx)(W,{size:15})}),t[17]=i,t[18]=v,t[19]=_,t[20]=d,t[21]=M):M=t[21];let N;t[22]!==i||t[23]!==y||t[24]!==_||t[25]!==m?(N=i&&(0,Q.jsx)($,{onClick:m,label:_?`Edit text unavailable: ${_}`:y?`Exit text editing`:`Edit text from preview`,isActive:y,activeStyle:`depressed`,children:(0,Q.jsx)(H,{size:15})}),t[22]=i,t[23]=y,t[24]=_,t[25]=m,t[26]=N):N=t[26];let F;t[27]!==i||t[28]!==b||t[29]!==g?(F=i&&(0,Q.jsxs)(`div`,{className:`flex items-center rounded-md bg-muted p-0.5`,children:[(0,Q.jsx)($,{onClick:()=>g(`desktop`),label:`Desktop view`,isActive:b===`desktop`,children:(0,Q.jsx)(R,{size:15})}),(0,Q.jsx)($,{onClick:()=>g(`tablet`),label:`Tablet view`,isActive:b===`tablet`,children:(0,Q.jsx)(P,{size:15})}),(0,Q.jsx)($,{onClick:()=>g(`mobile`),label:`Mobile view`,isActive:b===`mobile`,children:(0,Q.jsx)(C,{size:15})})]}),t[27]=i,t[28]=b,t[29]=g,t[30]=F):F=t[30];let I;t[31]!==i||t[32]!==h?(I=i&&(0,Q.jsx)($,{onClick:h,label:`Open in external browser`,children:(0,Q.jsx)(p,{size:15})}),t[31]=i,t[32]=h,t[33]=I):I=t[33];let L;return t[34]!==x||t[35]!==I||t[36]!==S||t[37]!==D||t[38]!==A||t[39]!==M||t[40]!==N||t[41]!==F?(L=(0,Q.jsx)(`div`,{className:`relative shrink-0 border-b border-border`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[x,S,D,A,M,N,F,I]})}),t[34]=x,t[35]=I,t[36]=S,t[37]=D,t[38]=A,t[39]=M,t[40]=N,t[41]=F,t[42]=L):L=t[42],L}function qe(e){let t=(0,Z.c)(6),{devServerStopped:n,selectedProjectId:r,runCommand:a}=e,o=D(),s=c(Je),l;return t[0]!==n||t[1]!==a||t[2]!==r||t[3]!==s||t[4]!==o?(l=(0,Q.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-6 text-muted-foreground`,children:n?(0,Q.jsx)(`p`,{className:i.body,children:`Dev server stopped`}):r&&s&&a&&!o?(0,Q.jsx)(M,{projectId:r,runCommand:a,large:!0}):(0,Q.jsx)(`p`,{className:i.body,children:`Enter a URL to browse`})}),t[0]=n,t[1]=a,t[2]=r,t[3]=s,t[4]=o,t[5]=l):l=t[5],l}function Je(e){return e.selectedThreadId}function Ye(e){let t=(0,Z.c)(24),{instanceId:n}=e,r=Le(n),i=Ue[r.deviceMode],{registerPanelFocus:a}=x(),o=(0,X.useRef)(null),s,c;t[0]!==n||t[1]!==a?(s=()=>a(n,()=>o.current?.focus()),c=[n,a],t[0]=n,t[1]=a,t[2]=s,t[3]=c):(s=t[2],c=t[3]),(0,X.useEffect)(s,c);let l;t[4]!==r.currentUrl||t[5]!==r.handleWebviewRef||t[6]!==r.iframeRef||t[7]!==r.nativeWebviewMounted||t[8]!==r.previewRpcPreload||t[9]!==r.useNativeWebview?(l=(0,Q.jsx)(We,{useNativeWebview:r.useNativeWebview,nativeWebviewMounted:r.nativeWebviewMounted,currentUrl:r.currentUrl,previewRpcPreload:r.previewRpcPreload,handleWebviewRef:r.handleWebviewRef,iframeRef:r.iframeRef}),t[4]=r.currentUrl,t[5]=r.handleWebviewRef,t[6]=r.iframeRef,t[7]=r.nativeWebviewMounted,t[8]=r.previewRpcPreload,t[9]=r.useNativeWebview,t[10]=l):l=t[10];let u=l,d=r.isBrowserActive?`flex h-full min-h-0 flex-col overflow-hidden`:`hidden`,p;t[11]===d?p=t[12]:(p=f(d),t[11]=d,t[12]=p);let m=!r.isBrowserActive,h;t[13]===r?h=t[14]:(h=r.isBrowserActive?(0,Q.jsx)(Ke,{controller:r,urlInputRef:o}):null,t[13]=r,t[14]=h);let g;t[15]!==r||t[16]!==i||t[17]!==u?(g=r.currentUrl?(0,Q.jsxs)(Q.Fragment,{children:[r.isBrowserActive?(0,Q.jsx)(ne,{onCommit:()=>r.runPreviewTextEdit(`commit`),onCancelPreview:()=>r.runPreviewTextEdit(`cancel`)}):null,(0,Q.jsx)(Ge,{selectionModeError:r.selectionModeError,isSelectModeEnabled:r.isSurfaceSelectInteraction,deviceMode:r.deviceMode,currentDeviceConfig:i,previewContainerRef:r.previewContainerRef,children:u})]}):r.isBrowserActive?(0,Q.jsx)(qe,{devServerStopped:r.devServerStopped,selectedProjectId:r.selectedProjectId,runCommand:r.runCommand}):null,t[15]=r,t[16]=i,t[17]=u,t[18]=g):g=t[18];let v;return t[19]!==p||t[20]!==m||t[21]!==h||t[22]!==g?(v=(0,Q.jsx)(_,{children:(0,Q.jsxs)(`div`,{className:p,"aria-hidden":m,children:[h,g]})}),t[19]=p,t[20]=m,t[21]=h,t[22]=g,t[23]=v):v=t[23],v}export{Ye as BrowserTab};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{V as i}from"./dist-D5vgS4RP.js";import{a,o,t as s}from"./utils-mYB1USG6.js";var c=t(),l=e(n(),1),u=r(),d=Symbol.for(`react.lazy`),f=l.use;function p(e){return typeof e==`object`&&!!e&&`then`in e}function m(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===d&&`_payload`in e&&p(e._payload)}function h(e){let t=_(e),n=l.forwardRef((e,n)=>{let{children:r,...i}=e;m(r)&&typeof f==`function`&&(r=f(r._payload));let a=l.Children.toArray(r),o=a.find(y);if(o){let e=o.props.children,r=a.map(t=>t===o?l.Children.count(e)>1?l.Children.only(null):l.isValidElement(e)?e.props.children:null:t);return(0,u.jsx)(t,{...i,ref:n,children:l.isValidElement(e)?l.cloneElement(e,void 0,r):null})}return(0,u.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}var g=h(`Slot`);function _(e){let t=l.forwardRef((e,t)=>{let{children:n,...r}=e;if(m(n)&&typeof f==`function`&&(n=f(n._payload)),l.isValidElement(n)){let e=x(n),i=b(r,n.props);return n.type!==l.Fragment&&(i.ref=t?o(t,e):e),l.cloneElement(n,i)}return l.Children.count(n)>1?l.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var v=Symbol(`radix.slottable`);function y(e){return l.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===v}function b(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function x(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var S=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,C=a,w=(e,t)=>n=>{if(t?.variants==null)return C(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=S(t)||S(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return C(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},T=w(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full ${i.body} font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-foreground hover:text-background transition-colors`,action:`text-muted-foreground hover:bg-foreground hover:text-background transition-colors`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-10 px-6 py-3`,sm:`h-9 rounded-full px-4`,lg:`h-11 rounded-full px-10`,icon:`h-10 w-10 [&_svg]:size-5`,"icon-md":`h-8 w-8 [&_svg]:size-4`,"icon-sm":`h-7 w-7 [&_svg]:size-4`,"icon-xs":`h-5 w-5 [&_svg]:size-3`}},defaultVariants:{variant:`default`,size:`default`}}),E=l.forwardRef((e,t)=>{let n=(0,c.c)(15),r,i,a,o,l;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4],l=n[5]):({className:r,variant:l,size:a,asChild:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o,n[5]=l);let d=o!==void 0&&o?g:`button`,f;n[6]!==r||n[7]!==a||n[8]!==l?(f=s(T({variant:l,size:a,className:r})),n[6]=r,n[7]=a,n[8]=l,n[9]=f):f=n[9];let p;return n[10]!==d||n[11]!==i||n[12]!==t||n[13]!==f?(p=(0,u.jsx)(d,{className:f,ref:t,...i}),n[10]=d,n[11]=i,n[12]=t,n[13]=f,n[14]=p):p=n[14],p});E.displayName=`Button`;export{h as a,g as i,T as n,w as r,E as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{b as i}from"./dist-D5vgS4RP.js";import{$ as a,Z as o,i as s,n as c,r as l}from"./store-CxUwqrZ5.js";import{Mn as u,jt as d}from"./api-COO2LfdU.js";import{t as f}from"./random-uuid-Dc3UrwVo.js";var p=e(n(),1),m=t();function h({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:r,threadMultiPaneStates:i}){let a={};for(let e of r){let t=i[e];t&&Object.keys(t.extraChatPanes).length!==0&&(a[e]={focusedPaneId:t.focusedPane,panes:Object.entries(t.extraChatPanes).map(([e,t])=>({paneId:e,conversationId:t.conversationId}))})}return{version:1,nonChatWindows:e,layout:t===null?`grid`:`expanded`,expandedWindowId:t,selectedWindowId:n,chatPanesByThread:a}}function g(e,t){let n=new Set(t?e.chatPanesByThread[t]?.panes.map(e=>e.paneId)??[]:[]),r=new Set(e.nonChatWindows.map(e=>e.id)),i=n.size>0||r.size>0;function o(e){return e===`primary`||e!==null&&(n.has(e)||r.has(e))}let s=o(e.selectedWindowId)?e.selectedWindowId:a,c=null;return e.layout===`expanded`&&i&&(c=o(e.expandedWindowId)?e.expandedWindowId:a),{nonChatWindows:e.nonChatWindows,expandedWindowId:c,selectedWindowId:s}}var _=i(`app.window-state`);function v(e,t,n){return JSON.stringify({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n})}function y({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,onReset:r,onHydrate:i}){let a=c(),s=l(e=>e.selectedProjectId),f=l(e=>e.projects),m=l(e=>e.threadMultiPaneStates),g=f.find(e=>e.projectId===s),y=(g?.threads.map(e=>e.threadId)??[]).join(`\0`),b=g!==void 0,[x,S]=(0,p.useState)(null),C=(0,p.useRef)(null),w=(0,p.useRef)(Promise.resolve()),T=(0,p.useRef)(null),E=(0,p.useRef)(0),D=(0,p.useRef)(v(e,t,n));D.current=v(e,t,n),(0,p.useEffect)(()=>{let e=T.current!==s;if(T.current=s,!s||!b){r(),S(null),C.current=null;return}e&&(r(),S(null),C.current=null);let t=s,n=y?y.split(`\0`):[],c=D.current,l=++E.current,u=!1;async function f(){try{let e=await d(t);if(u||l!==E.current)return;if(a({type:o.HydrateProjectChatPanes,threadIds:n,chatPanesByThread:e.chatPanesByThread}),D.current!==c){S(t);return}C.current=JSON.stringify(e),i(e),S(t)}catch(e){u||_.error(`Failed to restore project window state`,e)}}return f(),()=>{u=!0}},[a,b,i,r,y,s]),(0,p.useEffect)(()=>{if(!s||s!==x||!b)return;let r=h({nonChatWindows:e,expandedWindowId:t,selectedWindowId:n,threadIds:y?y.split(`\0`):[],threadMultiPaneStates:m}),i=JSON.stringify(r);if(i===C.current)return;let a=s;C.current=i,w.current=w.current.catch(()=>void 0).then(()=>u(a,r)).catch(e=>{_.error(`Failed to save project window state`,e),C.current===i&&(C.current=null)})},[t,b,x,e,s,n,y,m])}var b=r(),x=(0,p.createContext)(null);function S(e){let t=(0,m.c)(19),{windows:n,extraChatPanes:r,primaryChatOpen:i,expandedWindowId:o,selectedWindowId:s,setExpandedWindowId:c,setSelectedWindowId:l}=e,u,d;t[0]!==o||t[1]!==r||t[2]!==i||t[3]!==c||t[4]!==n?(u=()=>{if(o){if(o===`primary`){if(i)return;c(n.length>0?n[0].id:null);return}if(!n.some(e=>e.id===o)&&!r[o]){let e=i?a:n[0]?.id??null;c(e)}}},d=[o,r,i,n,c],t[0]=o,t[1]=r,t[2]=i,t[3]=c,t[4]=n,t[5]=u,t[6]=d):(u=t[5],d=t[6]),(0,p.useEffect)(u,d);let f,h;t[7]!==r||t[8]!==i||t[9]!==s||t[10]!==l||t[11]!==n?(f=()=>{if(s===`primary`){if(i||n.length===0)return;l(n[0].id);return}if(!n.some(e=>e.id===s)&&!r[s]){let e=i?a:n[0]?.id??`primary`;l(e)}},h=[r,i,s,n,l],t[7]=r,t[8]=i,t[9]=s,t[10]=l,t[11]=n,t[12]=f,t[13]=h):(f=t[12],h=t[13]),(0,p.useEffect)(f,h);let g,_;t[14]!==o||t[15]!==c||t[16]!==n.length?(g=()=>{n.length===0&&o!==null&&c(null)},_=[o,n.length,c],t[14]=o,t[15]=c,t[16]=n.length,t[17]=g,t[18]=_):(g=t[17],_=t[18]),(0,p.useEffect)(g,_)}function C(e){return e.filter(e=>e.panelId!==`tasks`)}function w(e,t,n,r){t.panelId===`chat`?n({type:o.RemoveChatPane,paneId:e}):r(t=>t.filter(t=>t.id!==e))}function T(e,t,n,r){if(n.length===1)return null;if(e!==t)return e;let i=n.filter(e=>e.id!==t);return r?a:i[0]?.id??null}function E(e,t,n,r){if(e!==t)return e;let i=n.filter(e=>e.id!==t);return r?a:i[0]?.id??`primary`}function D(e,t,n){return t.length===0?null:e===`primary`?n:e}function O(e,t){return e===`primary`&&t?t:e}function k(){let e=(0,m.c)(24),t=l(N),n=l(M),r;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=[],e[0]=r):r=e[0];let[i,o]=(0,p.useState)(r),[s,c]=(0,p.useState)(!0),[u,d]=(0,p.useState)(null),[f,h]=(0,p.useState)(`half`),[g,_]=(0,p.useState)(`tasks`),[v,y]=(0,p.useState)(a),[b,x]=(0,p.useState)(null),S;e[1]===n?S=e[2]:(S=Object.keys(n).map(j),e[1]=n,e[2]=S);let w=S,T;e[3]!==i||e[4]!==t?(T=t?C(i):i,e[3]=i,e[4]=t,e[5]=T):T=e[5];let E=T,D;e[6]!==w||e[7]!==E?(D=[...w,...E],e[6]=w,e[7]=E,e[8]=D):D=e[8];let O=D,k,P;e[9]===t?(k=e[10],P=e[11]):(k=()=>{t&&o(A)},P=[t],e[9]=t,e[10]=k,e[11]=P),(0,p.useEffect)(k,P);let F;return e[12]!==w||e[13]!==f||e[14]!==u||e[15]!==n||e[16]!==i||e[17]!==b||e[18]!==s||e[19]!==t||e[20]!==v||e[21]!==g||e[22]!==O?(F={selectedThreadId:t,extraChatPanes:n,nonChatWindows:i,setNonChatWindows:o,primaryChatOpen:s,setPrimaryChatOpen:c,expandedWindowId:u,setExpandedWindowId:d,columnWidth:f,setColumnWidth:h,tasksView:g,setTasksView:_,selectedWindowId:v,setSelectedWindowId:y,pendingScrollWindowId:b,setPendingScrollWindowId:x,chatWindows:w,windows:O},e[12]=w,e[13]=f,e[14]=u,e[15]=n,e[16]=i,e[17]=b,e[18]=s,e[19]=t,e[20]=v,e[21]=g,e[22]=O,e[23]=F):F=e[23],F}function A(e){let t=C(e);return t.length===e.length?e:t}function j(e){return{id:e,panelId:`chat`}}function M(e){return e.extraChatPanes}function N(e){return e.selectedThreadId}function P(e,t,n){let r=(0,m.c)(11),i=c(),a;r[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=new Map,r[0]=a):a=r[0];let s=(0,p.useRef)(a),l=(0,p.useRef)(null),u;r[1]===Symbol.for(`react.memo_cache_sentinel`)?(u=(e,t)=>(s.current.set(e,t),()=>{s.current.delete(e)}),r[1]=u):u=r[1];let d=u,f;r[2]!==i||r[3]!==e?(f=t=>{if(t===`primary`){i({type:o.SetFocusedPane,paneId:`primary`}),i({type:o.FocusChatInput});return}if(e.find(e=>e.id===t)?.panelId===`chat`){i({type:o.SetFocusedPane,paneId:t}),i({type:o.FocusChatInput});return}s.current.get(t)?.()},r[2]=i,r[3]=e,r[4]=f):f=r[4];let h=f,g,_;r[5]!==t||r[6]!==h||r[7]!==n?(g=()=>{let e=t??n;if(e===null)return;let r=l.current;l.current=e,r!==null&&r!==e&&h(e)},_=[t,n,h],r[5]=t,r[6]=h,r[7]=n,r[8]=g,r[9]=_):(g=r[8],_=r[9]),(0,p.useEffect)(g,_);let v;return r[10]===Symbol.for(`react.memo_cache_sentinel`)?(v={registerPanelFocus:d,prevActiveWindowRef:l},r[10]=v):v=r[10],v}function F(e){let t=(0,m.c)(53),{dispatch:n,selectedThreadId:r,windows:i,chatWindows:s,nonChatWindows:c,primaryChatOpen:l,setPrimaryChatOpen:u,setExpandedWindowId:d,setSelectedWindowId:p,setPendingScrollWindowId:h,setNonChatWindows:g}=e,_;t[0]===p?_=t[1]:(_=e=>{p(e)},t[0]=p,t[1]=_);let v=_,y;t[2]!==d||t[3]!==u||t[4]!==p?(y=e=>{e===`primary`&&u(!0),p(e),d(e)},t[2]=d,t[3]=u,t[4]=p,t[5]=y):y=t[5];let b=y,x;t[6]===d?x=t[7]:(x=()=>{d(null)},t[6]=d,t[7]=x);let S=x,C;t[8]!==l||t[9]!==d||t[10]!==h||t[11]!==u||t[12]!==i.length?(C=e=>{e===`primary`&&u(!0),d(t=>t===null&&i.length>0||t===null&&l&&e!==`primary`?null:e),h(e)},t[8]=l,t[9]=d,t[10]=h,t[11]=u,t[12]=i.length,t[13]=C):C=t[13];let k=C,A;t[14]===h?A=t[15]:(A=()=>{h(null)},t[14]=h,t[15]=A);let j=A,M;t[16]!==n||t[17]!==k||t[18]!==r||t[19]!==g?(M=e=>{let t=f();return e===`chat`?r?(n({type:o.AddChatPane,paneId:t,conversationId:f()}),k(t),t):t:(g(n=>[...n,{id:t,panelId:e}]),k(t),t)},t[16]=n,t[17]=k,t[18]=r,t[19]=g,t[20]=M):M=t[20];let N=M,P;t[21]!==n||t[22]!==l||t[23]!==d||t[24]!==g||t[25]!==u||t[26]!==p||t[27]!==i?(P=e=>{if(e===`primary`){u(!1);let e=i[0]?.id??null;d(t=>D(t,i,e)),p(t=>O(t,e));return}let t=i.find(t=>t.id===e);t&&(t.panelId!==`chat`||l||i.some(t=>t.panelId===`chat`&&t.id!==e))&&(w(e,t,n,g),d(t=>T(t,e,i,l)),p(t=>E(t,e,i,l)))},t[21]=n,t[22]=l,t[23]=d,t[24]=g,t[25]=u,t[26]=p,t[27]=i,t[28]=P):P=t[28];let F=P,L;t[29]!==n||t[30]!==d||t[31]!==g||t[32]!==u||t[33]!==p||t[34]!==i?(L=()=>{d(null),p(a),u(!0);for(let e of i)e.panelId===`chat`&&n({type:o.RemoveChatPane,paneId:e.id});g([])},t[29]=n,t[30]=d,t[31]=g,t[32]=u,t[33]=p,t[34]=i,t[35]=L):L=t[35];let R=L,z;t[36]!==s||t[37]!==c?(z=e=>e===`chat`?s[0]:c.find(t=>t.panelId===e),t[36]=s,t[37]=c,t[38]=z):z=t[38];let B=z,V;t[39]!==l||t[40]!==i?(V=e=>e===`chat`?l||i.some(I):i.some(t=>t.panelId===e),t[39]=l,t[40]=i,t[41]=V):V=t[41];let H=V,U;return t[42]!==N||t[43]!==j||t[44]!==R||t[45]!==F||t[46]!==S||t[47]!==b||t[48]!==B||t[49]!==H||t[50]!==k||t[51]!==v?(U={selectWindow:v,expandWindow:b,collapseLayout:S,revealWindow:k,clearPendingScrollWindow:j,addWindow:N,closeWindow:F,closeAllWindows:R,findWindowByPanel:B,isPanelOpen:H},t[42]=N,t[43]=j,t[44]=R,t[45]=F,t[46]=S,t[47]=b,t[48]=B,t[49]=H,t[50]=k,t[51]=v,t[52]=U):U=t[52],U}function I(e){return e.panelId===`chat`}function L(e){let t=(0,m.c)(3),{children:n}=e,r=R(),i;return t[0]!==n||t[1]!==r?(i=(0,b.jsx)(x.Provider,{value:r,children:n}),t[0]=n,t[1]=r,t[2]=i):i=t[2],i}function R(){let e=c(),t=s(),{selectedThreadId:n,extraChatPanes:r,nonChatWindows:i,setNonChatWindows:o,primaryChatOpen:l,setPrimaryChatOpen:u,expandedWindowId:d,setExpandedWindowId:f,columnWidth:m,setColumnWidth:h,tasksView:_,setTasksView:v,selectedWindowId:b,setSelectedWindowId:x,pendingScrollWindowId:w,setPendingScrollWindowId:T,chatWindows:E,windows:D}=k(),{registerPanelFocus:O,prevActiveWindowRef:A}=P(D,d,b);y({nonChatWindows:i,expandedWindowId:d,selectedWindowId:b,onReset:(0,p.useCallback)(()=>{A.current=a,o([]),u(!0),f(null),x(a),T(null)},[]),onHydrate:(0,p.useCallback)(e=>{let n=t.getState().selectedThreadId,r=g(e,n),i=n?C(r.nonChatWindows):r.nonChatWindows,s=new Set(r.nonChatWindows.filter(e=>e.panelId===`tasks`).map(e=>e.id)),c=n&&r.expandedWindowId&&s.has(r.expandedWindowId)?a:r.expandedWindowId,l=n&&s.has(r.selectedWindowId)?a:r.selectedWindowId;A.current=c??l,o(i),f(c),x(l),T(null)},[t])}),S({windows:D,extraChatPanes:r,primaryChatOpen:l,expandedWindowId:d,selectedWindowId:b,setExpandedWindowId:f,setSelectedWindowId:x});let{selectWindow:j,expandWindow:M,collapseLayout:N,revealWindow:I,clearPendingScrollWindow:L,addWindow:R,closeWindow:z,closeAllWindows:B,findWindowByPanel:V,isPanelOpen:H}=F({dispatch:e,selectedThreadId:n,windows:D,chatWindows:E,nonChatWindows:i,primaryChatOpen:l,setPrimaryChatOpen:u,setExpandedWindowId:f,setSelectedWindowId:x,setPendingScrollWindowId:T,setNonChatWindows:o}),U=D.length>0,W=d!==null;return(0,p.useMemo)(()=>({windows:D,addWindow:R,closeWindow:z,closeAllWindows:B,isPrimaryChatOpen:l,isPanelOpen:H,findWindowByPanel:V,hasOpenWindows:U,isLayoutExpanded:W,expandedWindowId:d,expandWindow:M,collapseLayout:N,columnWidth:m,setColumnWidth:h,selectedWindowId:b,selectWindow:j,revealWindow:I,pendingScrollWindowId:w,clearPendingScrollWindow:L,tasksView:_,setTasksView:v,registerPanelFocus:O}),[D,R,z,B,l,H,V,U,W,d,M,N,m,h,b,j,I,w,L,_,v,O])}function z(){let e=(0,p.useContext)(x);if(!e)throw Error(`useChatDock must be used within a ChatDockProvider`);return e}function B(){return(0,p.useContext)(x)}export{z as n,B as r,L as t};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{s as i,t as a}from"./utils-mYB1USG6.js";import{t as o}from"./check-skFQ1X72.js";import{g as s,h as c,n as l,t as u,u as d}from"./dist-BTu7PDzc.js";import{o as f}from"./dist-NcyjV9Gu.js";import{t as p}from"./dist-CkGJjZXY.js";var m=t(),h=e(n(),1),g=r(),_=`Checkbox`,[v,y]=c(_),[b,x]=v(_);function S(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:d=`on`,internal_do_not_use_render:f}=e,[p,m]=u({prop:n,defaultProp:i??!1,onChange:c,caller:_}),[v,y]=h.useState(null),[x,S]=h.useState(null),C=h.useRef(!1),w=!v||!!o||!!v.closest(`form`),T={checked:p,disabled:a,setChecked:m,control:v,setControl:y,name:s,form:o,value:d,hasConsumerStoppedPropagationRef:C,required:l,defaultChecked:!j(i)&&i,isFormControl:w,bubbleInput:x,setBubbleInput:S};return(0,g.jsx)(b,{scope:t,...T,children:A(f)?f(T):r})}var C=`CheckboxTrigger`,w=h.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{let{control:o,value:c,disabled:l,checked:u,required:f,setControl:p,setChecked:m,hasConsumerStoppedPropagationRef:_,isFormControl:v,bubbleInput:y}=x(C,e),b=i(a,p),S=h.useRef(u);return h.useEffect(()=>{let e=o?.form;if(e){let t=()=>m(S.current);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[o,m]),(0,g.jsx)(d.button,{type:`button`,role:`checkbox`,"aria-checked":j(u)?`mixed`:u,"aria-required":f,"data-state":M(u),"data-disabled":l?``:void 0,disabled:l,value:c,...r,ref:b,onKeyDown:s(t,e=>{e.key===`Enter`&&e.preventDefault()}),onClick:s(n,e=>{m(e=>j(e)?!0:!e),y&&v&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())})})});w.displayName=C;var T=h.forwardRef((e,t)=>{let{__scopeCheckbox:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,g.jsx)(S,{__scopeCheckbox:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(w,{...d,ref:t,__scopeCheckbox:n}),e&&(0,g.jsx)(k,{__scopeCheckbox:n})]})})});T.displayName=_;var E=`CheckboxIndicator`,D=h.forwardRef((e,t)=>{let{__scopeCheckbox:n,forceMount:r,...i}=e,a=x(E,n);return(0,g.jsx)(l,{present:r||j(a.checked)||a.checked===!0,children:(0,g.jsx)(d.span,{"data-state":M(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t,style:{pointerEvents:`none`,...e.style}})})});D.displayName=E;var O=`CheckboxBubbleInput`,k=h.forwardRef(({__scopeCheckbox:e,...t},n)=>{let{control:r,hasConsumerStoppedPropagationRef:a,checked:o,defaultChecked:s,required:c,disabled:l,name:u,value:m,form:_,bubbleInput:v,setBubbleInput:y}=x(O,e),b=i(n,y),S=p(o),C=f(r);h.useEffect(()=>{let e=v;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=!a.current;if(S!==o&&n){let t=new Event(`click`,{bubbles:r});e.indeterminate=j(o),n.call(e,!j(o)&&o),e.dispatchEvent(t)}},[v,S,o,a]);let w=h.useRef(!j(o)&&o);return(0,g.jsx)(d.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:s??w.current,required:c,disabled:l,name:u,value:m,form:_,...t,tabIndex:-1,ref:b,style:{...t.style,...C,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})});k.displayName=O;function A(e){return typeof e==`function`}function j(e){return e===`indeterminate`}function M(e){return j(e)?`indeterminate`:e?`checked`:`unchecked`}var N=h.forwardRef((e,t)=>{let n=(0,m.c)(10),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let s;n[3]===r?s=n[4]:(s=a(`peer h-4 w-4 shrink-0 rounded-sm border border-primary bg-background ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground`,r),n[3]=r,n[4]=s);let c;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,g.jsx)(D,{className:a(`flex items-center justify-center text-current`),children:(0,g.jsx)(o,{className:`h-4 w-4`})}),n[5]=c):c=n[5];let l;return n[6]!==i||n[7]!==t||n[8]!==s?(l=(0,g.jsx)(T,{ref:t,className:s,...i,children:c}),n[6]=i,n[7]=t,n[8]=s,n[9]=l):l=n[9],l});N.displayName=T.displayName;export{N as t};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./react-vendor-D61Uve5n.js";import{t as n}from"./button-Dp5XDZNR.js";import{i as r,n as i,r as a,t as o}from"./tooltip-CJKJfu0l.js";import{a as s,i as c,o as l,r as u,s as d,t as f}from"./dialog-pHPeIGaB.js";import{t as p}from"./label-C31qF5zZ.js";import{t as m}from"./progress-indicator-4zQXqOqP.js";import{I as h,zn as g}from"./index-CalVAwXj.js";var _=e(),v=t();function y(e){let t=(0,_.c)(41),{open:y,onOpenChange:b,commitMessage:x,onCommitMessageChange:S,isGeneratingMessage:C,isLoading:w,onGenerateMessage:T,onCommit:E,currentBranch:D}=e,O;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,v.jsx)(d,{children:`Commit Changes`}),t[0]=O):O=t[0];let k;t[1]===D?k=t[2]:(k=(0,v.jsxs)(l,{children:[O,(0,v.jsxs)(c,{children:[`Enter a commit message for your changes on branch `,D]})]}),t[1]=D,t[2]=k);let A;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,v.jsx)(p,{htmlFor:`commit-message`,children:`Commit Message`}),t[3]=A):A=t[3];let j;t[4]===S?j=t[5]:(j=e=>S(e.target.value),t[4]=S,t[5]=j);let M;t[6]!==x||t[7]!==C||t[8]!==j?(M=(0,v.jsx)(h,{id:`commit-message`,placeholder:`Enter commit message...`,value:x,onChange:j,disabled:C,className:`pr-10 h-full min-h-[14rem] resize-none`}),t[6]=x,t[7]=C,t[8]=j,t[9]=M):M=t[9];let N=C||w,P;t[10]===C?P=t[11]:(P=C?(0,v.jsx)(m,{}):(0,v.jsx)(g,{className:`h-3.5 w-3.5`}),t[10]=C,t[11]=P);let F;t[12]!==T||t[13]!==N||t[14]!==P?(F=(0,v.jsx)(r,{asChild:!0,children:(0,v.jsx)(n,{type:`button`,variant:`ghost`,size:`icon`,className:`absolute top-2 right-2 h-6 w-6`,onClick:T,disabled:N,children:P})}),t[12]=T,t[13]=N,t[14]=P,t[15]=F):F=t[15];let I=C?`Generating commit message...`:`Generate commit message with AI`,L;t[16]===I?L=t[17]:(L=(0,v.jsx)(i,{children:I}),t[16]=I,t[17]=L);let R;t[18]!==L||t[19]!==F?(R=(0,v.jsx)(a,{children:(0,v.jsxs)(o,{children:[F,L]})}),t[18]=L,t[19]=F,t[20]=R):R=t[20];let z;t[21]!==R||t[22]!==M?(z=(0,v.jsx)(`div`,{className:`grid gap-4 py-4 flex-1 min-h-0`,children:(0,v.jsxs)(`div`,{className:`grid gap-2 flex-1 min-h-0`,children:[A,(0,v.jsxs)(`div`,{className:`relative flex-1 min-h-0`,children:[M,R]})]})}),t[21]=R,t[22]=M,t[23]=z):z=t[23];let B;t[24]!==x||t[25]!==w?(B=w||!x.trim(),t[24]=x,t[25]=w,t[26]=B):B=t[26];let V;t[27]===w?V=t[28]:(V=w?(0,v.jsxs)(v.Fragment,{children:[`Commit`,(0,v.jsx)(m,{size:`sm`})]}):`Commit`,t[27]=w,t[28]=V);let H;t[29]!==E||t[30]!==B||t[31]!==V?(H=(0,v.jsx)(s,{className:`w-full items-center`,children:(0,v.jsx)(n,{className:`ml-auto`,onClick:E,disabled:B,children:V})}),t[29]=E,t[30]=B,t[31]=V,t[32]=H):H=t[32];let U;t[33]!==z||t[34]!==H||t[35]!==k?(U=(0,v.jsxs)(u,{className:`flex max-w-2xl flex-col max-md:top-[max(1rem,env(safe-area-inset-top,0px))] max-md:max-h-[calc(100dvh-2rem)] max-md:translate-y-0 max-md:overflow-y-auto max-md:data-[state=closed]:slide-out-to-top max-md:data-[state=open]:slide-in-from-top max-md:data-[state=closed]:slide-out-to-left-0 max-md:data-[state=open]:slide-in-from-left-0 max-md:data-[state=closed]:zoom-out-100 max-md:data-[state=open]:zoom-in-100 md:h-[min(36rem,85dvh)]`,children:[k,z,H]}),t[33]=z,t[34]=H,t[35]=k,t[36]=U):U=t[36];let W;return t[37]!==b||t[38]!==y||t[39]!==U?(W=(0,v.jsx)(f,{open:y,onOpenChange:b,children:U}),t[37]=b,t[38]=y,t[39]=U,t[40]=W):W=t[40],W}export{y as CommitDialog};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{t as i}from"./useInfiniteQuery-BpKy1sCq.js";import{V as a}from"./dist-D5vgS4RP.js";import{Lt as o,Ni as s,bi as c,d as l,ea as u}from"./api-COO2LfdU.js";import{i as d,t as f}from"./utils-mYB1USG6.js";import{t as p}from"./button-Dp5XDZNR.js";import{t as m}from"./query-keys-BwswkbMn.js";import{t as h}from"./progress-indicator-4zQXqOqP.js";import{n as g}from"./use-toast-CKgZ8YeP.js";import{Bt as _,Pt as v,Sn as y,Tr as b,_n as x,_t as ee,gn as te,hn as ne,jn as re,lt as S,mn as C,or as w,pn as T,vn as E}from"./index-CalVAwXj.js";import{t as D}from"./delete-confirm-dialog-SpYpU1AX.js";import{i as O,r as k}from"./table-C3Hc0Gwy.js";var A=e(n(),1),j=t(),M=25;function ie(){let e=(0,j.c)(12),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={queryKey:m.conversations.recent(),queryFn:N,initialPageParam:0,getNextPageParam(e){let t=e.offset+e.conversations.length;return t<e.total?t:void 0}},e[0]=t):t=e[0];let n=i(t),r;e[1]===n.data?.pages?r=e[2]:(r=n.data?.pages.flatMap(function(e){return e.conversations})??[],e[1]=n.data?.pages,e[2]=r);let a=r,o=n.data?.pages[0]?.total??0,s;return e[3]!==a||e[4]!==n.error||e[5]!==n.fetchNextPage||e[6]!==n.hasNextPage||e[7]!==n.isFetchingNextPage||e[8]!==n.isPending||e[9]!==n.refetch||e[10]!==o?(s={conversations:a,total:o,isInitialLoading:n.isPending,isLoadingMore:n.isFetchingNextPage,error:n.error,hasNextPage:n.hasNextPage,fetchNextPage:n.fetchNextPage,refetch:n.refetch},e[3]=a,e[4]=n.error,e[5]=n.fetchNextPage,e[6]=n.hasNextPage,e[7]=n.isFetchingNextPage,e[8]=n.isPending,e[9]=n.refetch,e[10]=o,e[11]=s):s=e[11],s}function N(e){let{pageParam:t}=e;return o(M,t)}var P=[{id:`turns`,label:`Turns`},{id:`inputTokens`,label:`Input Tokens`},{id:`outputTokens`,label:`Output Tokens`},{id:`model`,label:`Model`},{id:`branch`,label:`Branch`}],F=new Set(P.map(function(e){return e.id}));function I(e){if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(function(e){return typeof e==`string`&&F.has(e)}):[]}catch{return[]}}function L(){return I(s(c.HISTORY_COLUMNS))}function R(){let e=(0,j.c)(6),[t,n]=(0,A.useState)(L),r;e[0]===t?r=e[1]:(r=function(e){return t.includes(e)},e[0]=t,e[1]=r);let i=r,a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=function(e,t){n(function(n){let r=t?n.includes(e)?n:[...n,e]:n.filter(function(t){return t!==e});return u(c.HISTORY_COLUMNS,JSON.stringify(r)),r})},e[2]=a):a=e[2];let o=a,s;return e[3]!==i||e[4]!==t?(s={visibleColumns:t,isColumnVisible:i,setColumnVisible:o},e[3]=i,e[4]=t,e[5]=s):s=e[5],s}var z=r(),B=36,V=3,H=`table-fixed`,U=`h-9 w-48 bg-transparent py-2`,W=`h-9 bg-transparent py-2`,G=`h-9 w-20 bg-transparent py-2 text-right`,K=`h-9 w-28 bg-transparent py-2 text-right`,q=`h-9 w-28 bg-transparent py-2 text-right`,J=`h-9 w-40 bg-transparent py-2`,Y=`h-9 w-32 bg-transparent py-2`,ae=`h-9 w-24 bg-transparent py-2 text-right`,oe=f(a.bodyMuted,`w-48 truncate py-1.5`),se=`py-1.5`,X=f(a.bodyMuted,`w-20 py-1.5 text-right tabular-nums`),Z=f(a.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),Q=f(a.bodyMuted,`w-28 py-1.5 text-right tabular-nums`),$=f(a.bodyMuted,`w-40 truncate py-1.5`),ce=f(a.bodyMuted,`w-32 truncate py-1.5`),le=f(a.bodyMuted,`w-24 py-1.5 text-right tabular-nums`);function ue(e){let t=(0,j.c)(11),n,r;t[0]===e?(n=t[1],r=t[2]):({style:r,...n}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===r?i=t[4]:(i={...r,width:`100%`},t[3]=r,t[4]=i);let o;t[5]===n.className?o=t[6]:(o=f(`w-full caption-bottom select-text`,H,a.body,n.className),t[5]=n.className,t[6]=o);let s;return t[7]!==n||t[8]!==i||t[9]!==o?(s=(0,z.jsx)(`table`,{...n,style:i,className:o}),t[7]=n,t[8]=i,t[9]=o,t[10]=s):s=t[10],s}function de(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=f(`hidden`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`thead`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function fe(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=f(`[&_tr:last-child]:border-0`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`tbody`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function pe(e){let t=(0,j.c)(5),n;t[0]===e.className?n=t[1]:(n=f(`frosted-scrollbar`,e.className),t[0]=e.className,t[1]=n);let r;return t[2]!==e||t[3]!==n?(r=(0,z.jsx)(`div`,{...e,className:n}),t[2]=e,t[3]=n,t[4]=r):r=t[4],r}function me(e){return function(){return(0,z.jsx)(`tr`,{children:(0,z.jsx)(`td`,{colSpan:e,className:`py-3 text-center`,children:(0,z.jsx)(h,{centered:!0,label:`Loading more…`,size:`sm`})})})}}function he(e){switch(e){case`turns`:return(0,z.jsx)(O,{className:G,children:`Turns`},e);case`inputTokens`:return(0,z.jsx)(O,{className:K,children:`Input Tokens`},e);case`outputTokens`:return(0,z.jsx)(O,{className:q,children:`Output Tokens`},e);case`model`:return(0,z.jsx)(O,{className:J,children:`Model`},e);case`branch`:return(0,z.jsx)(O,{className:Y,children:`Branch`},e)}}function ge(e,t){switch(t){case`turns`:return(0,z.jsx)(k,{className:X,children:e.turnCount.toLocaleString()},t);case`inputTokens`:return(0,z.jsx)(k,{className:Z,children:e.inputTokens.toLocaleString()},t);case`outputTokens`:return(0,z.jsx)(k,{className:Q,children:e.outputTokens.toLocaleString()},t);case`model`:return(0,z.jsx)(k,{className:$,children:e.model??`—`},t);case`branch`:return(0,z.jsx)(k,{className:ce,children:e.branch},t)}}function _e(){let{openConversation:e}=_(),{toast:t}=g(),[n,r]=(0,A.useState)(!1),[i,o]=(0,A.useState)(!1),{visibleColumns:s,isColumnVisible:c,setColumnVisible:u}=R(),{conversations:m,isInitialLoading:j,isLoadingMore:M,error:N,hasNextPage:F,fetchNextPage:I,refetch:L}=ie(),G=V+s.length,K=(0,A.useCallback)(function(t){e(t).catch(()=>!1)},[e]),q=(0,A.useCallback)(()=>{F&&!M&&I()},[I,F,M]);async function J(){o(!0);try{await l(),await L(),r(!1),t({title:`Conversation history cleared`})}catch(e){t({title:`Failed to clear conversation history`,description:e instanceof Error?e.message:String(e),variant:`destructive`})}finally{o(!1)}}let Y=(0,A.useMemo)(function(){return function({item:e,...t}){return(0,z.jsx)(`tr`,{...t,className:f(`cursor-pointer border-0 transition-colors hover:bg-muted/50`,t.className),onClick:()=>{e&&K(e)}})}},[K]),X=(0,A.useMemo)(function(){return{Table:ue,TableHead:de,TableBody:fe,TableRow:Y,Scroller:pe,Footer:M?me(G):void 0}},[Y,G,M]);function Z(e,t){return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(k,{className:oe,children:t.projectName}),(0,z.jsx)(k,{className:se,children:(0,z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,z.jsx)(w,{className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,z.jsx)(`span`,{className:f(a.body,`truncate`),children:t.title})]})}),P.map(function(e){return c(e.id)?ge(t,e.id):null}),(0,z.jsx)(k,{className:le,"aria-label":`Last updated ${d(t.lastMessageAt)} ago`,children:d(t.lastMessageAt)})]})}function Q(){return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(O,{className:U,children:`Project`}),(0,z.jsx)(O,{className:W,children:`Chat`}),P.map(function(e){return c(e.id)?he(e.id):null}),(0,z.jsx)(O,{className:ae,children:`Updated`})]})}let $=(0,z.jsx)(`table`,{className:f(`w-full caption-bottom`,H,a.body),children:(0,z.jsx)(`thead`,{className:`[&_tr]:border-b [&_tr]:border-table-border`,children:(0,z.jsx)(`tr`,{children:Q()})})});return(0,z.jsxs)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col`,children:[(0,z.jsxs)(ee,{className:`flex w-full max-w-none min-w-0 min-h-0 flex-1 flex-col pb-0 pt-0`,children:[(0,z.jsx)(S,{title:`History`,description:`Browse recent chats across all projects.`,tableHeader:m.length>0?$:void 0,action:(0,z.jsxs)(T,{children:[(0,z.jsx)(y,{asChild:!0,children:(0,z.jsx)(p,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8`,"aria-label":`Choose columns`,children:(0,z.jsx)(b,{className:`h-4 w-4`})})}),(0,z.jsxs)(ne,{align:`end`,className:`w-48`,children:[(0,z.jsx)(x,{className:a.body,children:`Columns`}),P.map(function(e){return(0,z.jsx)(C,{checked:c(e.id),onCheckedChange:t=>{u(e.id,t===!0)},onSelect:e=>{e.preventDefault()},children:e.label},e.id)}),(0,z.jsx)(E,{}),(0,z.jsxs)(te,{className:f(a.body,`gap-2 text-destructive focus:text-destructive`),disabled:m.length===0,onSelect:()=>r(!0),children:[(0,z.jsx)(re,{className:`h-4 w-4`}),`Clear history`]})]})]})}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-hidden`,children:j?(0,z.jsx)(h,{centered:!0,label:`Loading conversation history...`,size:`lg`}):N?(0,z.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,z.jsxs)(`div`,{className:`max-w-md space-y-4 text-center`,children:[(0,z.jsx)(`p`,{className:a.body,children:N instanceof Error?N.message:`Failed to load conversation history`}),(0,z.jsx)(p,{onClick:()=>void L(),children:`Try again`})]})}):m.length===0?(0,z.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,z.jsxs)(`div`,{className:`max-w-md space-y-2 text-center`,children:[(0,z.jsx)(`h3`,{className:a.emptyStateTitle,children:`No history`}),(0,z.jsx)(`p`,{className:a.bodyMuted,children:`No conversations found yet.`})]})}):(0,z.jsx)(v,{style:{height:`100%`},data:m,computeItemKey:(e,t)=>t.conversationId,itemContent:Z,endReached:q,defaultItemHeight:B,increaseViewportBy:180,components:X})})]}),(0,z.jsx)(D,{open:n,onOpenChange:r,title:`Clear conversation history?`,description:`This permanently clears conversation history across all projects. This action cannot be undone.`,onConfirm:()=>void J(),confirming:i,confirmLabel:`Clear`,confirmingLabel:`Clearing...`})]})}export{_e as default};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./react-vendor-D61Uve5n.js";import{t as n}from"./button-Dp5XDZNR.js";import{a as r,i,o as a,r as o,s,t as c}from"./dialog-pHPeIGaB.js";import{t as l}from"./label-C31qF5zZ.js";import{Cn as u,I as d}from"./index-CalVAwXj.js";import{t as f}from"./pill-tabs-CmvvHdKG.js";var p=e(),m=t();function h(e){let t=(0,p.c)(39),{open:h,onOpenChange:g,repoName:_,onRepoNameChange:v,repoDescription:y,onRepoDescriptionChange:b,isPrivateRepo:x,onPrivateRepoChange:S,isLoading:C,onCreateRepo:w}=e,T;t[0]!==g||t[1]!==b||t[2]!==v?(T=e=>{e||(v(``),b(``)),g(e)},t[0]=g,t[1]=b,t[2]=v,t[3]=T):T=t[3];let E;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,m.jsxs)(a,{children:[(0,m.jsx)(s,{children:`Create GitHub Repository`}),(0,m.jsx)(i,{children:`Create a new GitHub repository and push your local repository`})]}),t[4]=E):E=t[4];let D;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,m.jsx)(l,{htmlFor:`repo-name`,children:`Repository Name (optional)`}),t[5]=D):D=t[5];let O;t[6]===v?O=t[7]:(O=e=>v(e.target.value),t[6]=v,t[7]=O);let k;t[8]!==_||t[9]!==O?(k=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[D,(0,m.jsx)(u,{id:`repo-name`,placeholder:`Leave empty to use current folder name`,value:_,onChange:O})]}),t[8]=_,t[9]=O,t[10]=k):k=t[10];let A;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,m.jsx)(l,{htmlFor:`repo-description`,children:`Description (optional)`}),t[11]=A):A=t[11];let j;t[12]===b?j=t[13]:(j=e=>b(e.target.value),t[12]=b,t[13]=j);let M;t[14]!==y||t[15]!==j?(M=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[A,(0,m.jsx)(d,{id:`repo-description`,placeholder:`Enter repository description...`,value:y,onChange:j,rows:3})]}),t[14]=y,t[15]=j,t[16]=M):M=t[16];let N;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,m.jsx)(l,{children:`Visibility`}),t[17]=N):N=t[17];let P=x?`private`:`public`,F;t[18]===S?F=t[19]:(F=e=>S(e===`private`),t[18]=S,t[19]=F);let I;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(I=[{value:`public`,label:`Public`,tooltip:`Anyone on GitHub can see this repository`},{value:`private`,label:`Private`,tooltip:`Only you and collaborators can see this repository`}],t[20]=I):I=t[20];let L;t[21]!==P||t[22]!==F?(L=(0,m.jsxs)(`div`,{className:`grid gap-2`,children:[N,(0,m.jsx)(f,{value:P,onValueChange:F,options:I})]}),t[21]=P,t[22]=F,t[23]=L):L=t[23];let R;t[24]!==L||t[25]!==k||t[26]!==M?(R=(0,m.jsxs)(`div`,{className:`grid gap-4 py-4`,children:[k,M,L]}),t[24]=L,t[25]=k,t[26]=M,t[27]=R):R=t[27];let z=C?`Creating...`:`Create & Push`,B;t[28]!==C||t[29]!==w||t[30]!==z?(B=(0,m.jsx)(r,{children:(0,m.jsx)(n,{onClick:w,disabled:C,children:z})}),t[28]=C,t[29]=w,t[30]=z,t[31]=B):B=t[31];let V;t[32]!==R||t[33]!==B?(V=(0,m.jsxs)(o,{children:[E,R,B]}),t[32]=R,t[33]=B,t[34]=V):V=t[34];let H;return t[35]!==h||t[36]!==T||t[37]!==V?(H=(0,m.jsx)(c,{open:h,onOpenChange:T,children:V}),t[35]=h,t[36]=T,t[37]=V,t[38]=H):H=t[38],H}export{h as CreateRepoDialog};
@@ -1 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{V as i}from"./dist-D5vgS4RP.js";import{t as a}from"./utils-mYB1USG6.js";import{t as o}from"./x-ByOPrz5I.js";import{a as s,i as c,n as l,o as u,r as d,s as f,t as p}from"./dist-CqrmQxmV.js";import{n as m}from"./use-browser-overlay-block-z9imTmiZ.js";var h=t(),g=e(n(),1),_=r();function v(e){let t=(0,h.c)(15),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({open:r,defaultOpen:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]===i?a=t[5]:(a=e=>i.onOpenChange?.(e),t[4]=i,t[5]=a);let o;t[6]!==n||t[7]!==r||t[8]!==a?(o={open:r,defaultOpen:n,onOpenChange:a},t[6]=n,t[7]=r,t[8]=a,t[9]=o):o=t[9];let s=m(o),c;return t[10]!==n||t[11]!==s||t[12]!==r||t[13]!==i?(c=(0,_.jsx)(u,{...i,open:r,defaultOpen:n,onOpenChange:s}),t[10]=n,t[11]=s,t[12]=r,t[13]=i,t[14]=c):c=t[14],c}var y=s,b=p,x=g.forwardRef((e,t)=>{let n=(0,h.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let o;n[3]===r?o=n[4]:(o=a(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,r),n[3]=r,n[4]=o);let s;return n[5]!==i||n[6]!==t||n[7]!==o?(s=(0,_.jsx)(c,{ref:t,className:o,...i}),n[5]=i,n[6]=t,n[7]=o,n[8]=s):s=n[8],s});x.displayName=c.displayName;var S=g.forwardRef((e,t)=>{let n=(0,h.c)(16),r,i,s,c;n[0]===e?(r=n[1],i=n[2],s=n[3],c=n[4]):({className:i,children:r,hideClose:c,...s}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=s,n[4]=c);let u=c!==void 0&&c,d;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,_.jsx)(x,{}),n[5]=d):d=n[5];let f;n[6]===i?f=n[7]:(f=a(`fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg`,i),n[6]=i,n[7]=f);let m;n[8]===u?m=n[9]:(m=u?null:(0,_.jsxs)(p,{className:`absolute right-4 top-4 z-20 h-7 w-7 rounded-full flex items-center justify-center transition-colors hover:bg-foreground hover:text-background disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,children:[(0,_.jsx)(o,{className:`h-4 w-4`}),(0,_.jsx)(`span`,{className:`sr-only`,children:`Close`})]}),n[8]=u,n[9]=m);let g;return n[10]!==r||n[11]!==s||n[12]!==t||n[13]!==f||n[14]!==m?(g=(0,_.jsxs)(y,{children:[d,(0,_.jsxs)(l,{ref:t,className:f,...s,children:[r,m]})]}),n[10]=r,n[11]=s,n[12]=t,n[13]=f,n[14]=m,n[15]=g):g=n[15],g});S.displayName=l.displayName;var C=e=>{let t=(0,h.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`flex flex-col space-y-1.5 text-center sm:text-left`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,_.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o};C.displayName=`DialogHeader`;var w=e=>{let t=(0,h.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=a(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,n),t[3]=n,t[4]=i);let o;return t[5]!==r||t[6]!==i?(o=(0,_.jsx)(`div`,{className:i,...r}),t[5]=r,t[6]=i,t[7]=o):o=t[7],o};w.displayName=`DialogFooter`;var T=g.forwardRef((e,t)=>{let n=(0,h.c)(9),r,o;n[0]===e?(r=n[1],o=n[2]):({className:r,...o}=e,n[0]=e,n[1]=r,n[2]=o);let s;n[3]===r?s=n[4]:(s=a(i.dialogTitle,r),n[3]=r,n[4]=s);let c;return n[5]!==o||n[6]!==t||n[7]!==s?(c=(0,_.jsx)(f,{ref:t,className:s,...o}),n[5]=o,n[6]=t,n[7]=s,n[8]=c):c=n[8],c});T.displayName=f.displayName;var E=g.forwardRef((e,t)=>{let n=(0,h.c)(9),r,o;n[0]===e?(r=n[1],o=n[2]):({className:r,...o}=e,n[0]=e,n[1]=r,n[2]=o);let s;n[3]===r?s=n[4]:(s=a(i.dialogDescription,r),n[3]=r,n[4]=s);let c;return n[5]!==o||n[6]!==t||n[7]!==s?(c=(0,_.jsx)(d,{ref:t,className:s,...o}),n[5]=o,n[6]=t,n[7]=s,n[8]=c):c=n[8],c});E.displayName=d.displayName;export{w as a,E as i,b as n,C as o,S as r,T as s,v as t};
@@ -1,4 +0,0 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n,t as r}from"./react-vendor-D61Uve5n.js";import{V as i,b as a}from"./dist-D5vgS4RP.js";import{B as o,Z as s,n as c,r as l,z as u}from"./store-CxUwqrZ5.js";import{Fr as d,Kr as f,Kt as p,Nr as m,Z as h,at as g,mr as _}from"./api-COO2LfdU.js";import{t as v}from"./utils-mYB1USG6.js";import{t as y}from"./chevron-right-Dga3q1bZ.js";import{t as b}from"./external-link-Dcikmdm_.js";import{n as x,r as S}from"./minus-l6BdrAEk.js";import{t as C}from"./rotate-ccw-Dthg8Pv6.js";import{t as w}from"./x-ByOPrz5I.js";import{t as T}from"./button-Dp5XDZNR.js";import{i as E,n as D,t as O}from"./tooltip-CJKJfu0l.js";import{a as k,o as A,r as j,s as M,t as N}from"./dialog-pHPeIGaB.js";import{n as P}from"./scroll-area-BWc4OPsj.js";import{n as F}from"./explorer-tab-context-BwR8CM8l.js";import{t as I}from"./use-open-chat-dock-panel-w3hc5Vxn.js";import{t as L}from"./progress-indicator-4zQXqOqP.js";import{n as R}from"./suspense-resource-DzlMlIgR.js";import{t as z}from"./use-suspense-resource-uCX26gOk.js";import{c as B}from"./explorer-file-drop-CEbBlDEp.js";import{D as V,I as H,Jt as U,Kt as W,Lt as ee,M as te,Nr as ne,Qt as re,R as ie,Rt as G,T as ae,Xt as oe,_r as se,er as ce,nn as le,or as K,qt as q,tn as ue,tr as de,vr as fe,wt as pe,yr as J,zt as me}from"./index-CalVAwXj.js";import{t as he}from"./async-error-boundary-DH6Sqgmt.js";import{s as Y}from"./monaco-CWuJkPco.js";import{n as ge}from"./monaco-setup-B4buJsSY.js";var X=e(n(),1),Z=t(),Q=r();function _e(e){let t=(0,Z.c)(12),{children:n,title:r,subtitle:a,headerAction:o,footer:s}=e,c;t[0]!==o||t[1]!==a||t[2]!==r?(c=(r||a||o)&&(0,Q.jsxs)(`div`,{className:`flex shrink-0 flex-col gap-1 border-b border-sidebar-border px-4 py-6`,children:[(r||o)&&(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Q.jsx)(`div`,{className:`flex items-center gap-2`,children:r&&(0,Q.jsx)(`span`,{className:i.sectionTitle,children:r})}),o&&(0,Q.jsx)(`div`,{className:`flex items-center gap-2 ml-auto`,children:o})]}),a]}),t[0]=o,t[1]=a,t[2]=r,t[3]=c):c=t[3];let l;t[4]===n?l=t[5]:(l=(0,Q.jsx)(P,{className:`min-h-0 flex-1`,children:n}),t[4]=n,t[5]=l);let u;t[6]===s?u=t[7]:(u=s&&(0,Q.jsx)(`div`,{className:`border-t border-sidebar-border`,children:s}),t[6]=s,t[7]=u);let d;return t[8]!==c||t[9]!==l||t[10]!==u?(d=(0,Q.jsxs)(`div`,{className:`flex h-full min-h-0 w-full flex-col`,children:[c,l,u]}),t[8]=c,t[9]=l,t[10]=u,t[11]=d):d=t[11],d}function ve(e){let t=(0,Z.c)(30),{node:n,level:r,renderNode:i,defaultOpen:a,indent:o,childContainerClassName:s,openState:c,onToggle:l,forceOpenIds:u}=e,d=!!(n.children&&n.children.length>0),f;t[0]!==a||t[1]!==u||t[2]!==n.id||t[3]!==c?(f=u?.has(n.id)||(c[n.id]??a),t[0]=a,t[1]=u,t[2]=n.id,t[3]=c,t[4]=f):f=t[4];let p=f,m;t[5]!==n.id||t[6]!==l?(m=()=>l(n.id),t[5]=n.id,t[6]=l,t[7]=m):m=t[7];let h=m,g;t[8]!==d||t[9]!==p||t[10]!==r||t[11]!==n||t[12]!==i||t[13]!==h?(g=i(n,{isOpen:p,level:r,toggle:h,hasChildren:d}),t[8]=d,t[9]=p,t[10]=r,t[11]=n,t[12]=i,t[13]=h,t[14]=g):g=t[14];let _;t[15]!==s||t[16]!==a||t[17]!==u||t[18]!==d||t[19]!==o||t[20]!==p||t[21]!==r||t[22]!==n.children||t[23]!==l||t[24]!==c||t[25]!==i?(_=d&&p&&(0,Q.jsx)(`div`,{style:{paddingLeft:o},className:s,children:n.children.map(e=>(0,Q.jsx)(ve,{node:e,level:r+1,renderNode:i,defaultOpen:a,indent:o,childContainerClassName:s,openState:c,onToggle:l,forceOpenIds:u},e.id))}),t[15]=s,t[16]=a,t[17]=u,t[18]=d,t[19]=o,t[20]=p,t[21]=r,t[22]=n.children,t[23]=l,t[24]=c,t[25]=i,t[26]=_):_=t[26];let v;return t[27]!==g||t[28]!==_?(v=(0,Q.jsxs)(`div`,{className:`min-w-0`,children:[g,_]}),t[27]=g,t[28]=_,t[29]=v):v=t[29],v}function ye(e){let t=(0,Z.c)(31),{nodes:n,renderNode:r,resetKey:i,defaultOpen:a,forceOpenIds:o,initialOpenIds:s,indent:c,childContainerClassName:l,className:u}=e,d=a!==void 0&&a,f=c===void 0?16:c,p;t[0]===s?p=t[1]:(p=()=>{let e={};if(s)for(let t of s)e[t]=!0;return e},t[0]=s,t[1]=p);let[m,h]=(0,X.useState)(p),[g,_]=(0,X.useState)(i);if(i!==g){_(i);let e={};if(s)for(let t of s)e[t]=!0;h(e)}let y;t[2]===o?y=t[3]:(y=o?new Set(o):void 0,t[2]=o,t[3]=y);let b=y,x,S;t[4]===o?(x=t[5],S=t[6]):(x=()=>{o?.length&&h(e=>{let t={...e},n=!1;for(let e of o)t[e]!==!0&&(t[e]=!0,n=!0);return n?t:e})},S=[o],t[4]=o,t[5]=x,t[6]=S),(0,X.useEffect)(x,S);let C;t[7]===d?C=t[8]:(C=e=>{h(t=>({...t,[e]:!(t[e]??d)}))},t[7]=d,t[8]=C);let w=C,T;t[9]===u?T=t[10]:(T=v(`min-w-0`,u),t[9]=u,t[10]=T);let E;if(t[11]!==l||t[12]!==d||t[13]!==b||t[14]!==w||t[15]!==f||t[16]!==n||t[17]!==m||t[18]!==r){let e;t[20]!==l||t[21]!==d||t[22]!==b||t[23]!==w||t[24]!==f||t[25]!==m||t[26]!==r?(e=e=>(0,Q.jsx)(ve,{node:e,level:0,renderNode:r,defaultOpen:d,indent:f,childContainerClassName:l,openState:m,onToggle:w,forceOpenIds:b},e.id),t[20]=l,t[21]=d,t[22]=b,t[23]=w,t[24]=f,t[25]=m,t[26]=r,t[27]=e):e=t[27],E=n.map(e),t[11]=l,t[12]=d,t[13]=b,t[14]=w,t[15]=f,t[16]=n,t[17]=m,t[18]=r,t[19]=E}else E=t[19];let D;return t[28]!==T||t[29]!==E?(D=(0,Q.jsx)(`div`,{className:T,children:E}),t[28]=T,t[29]=E,t[30]=D):D=t[30],D}function be(e){let t=[],n={};return e.forEach((e,r)=>{let i=e.path.split(`/`),a=t,o=``;for(let e=0;e<i.length-1;e++){if(o=o?`${o}/${i[e]}`:i[e],!n[o]){let t={id:`dir:${o}`,name:i[e],children:[]};n[o]=t,a.push(t)}a=n[o].children}a.push({id:`file:${e.path}`,name:i[i.length-1],fileIndex:r,status:e.status})}),t}var xe={added:`text-green-500`,deleted:`text-red-500`,untracked:`text-green-500`,renamed:`text-blue-500`,modified:`text-orange-500`},Se={added:`A`,deleted:`D`,untracked:`U`,renamed:`R`,modified:`M`};function Ce(e){return v(v(i.compact,`status-badge font-mono font-semibold`),xe[e]??`text-orange-500`)}function we(e){return Se[e]??`M`}function Te(e){let t=(0,Z.c)(22),{treeData:n,files:r,error:a,selectedFileIndex:o,onFileSelect:s,onRevertFile:c}=e,{setStats:l}=V(),u;t[0]===r?u=t[1]:(u=r.reduce(ke,0),t[0]=r,t[1]=u);let d=u,f;t[2]===r?f=t[3]:(f=r.reduce(Ee,0),t[2]=r,t[3]=f);let p=f,m,h;if(t[4]!==r.length||t[5]!==l||t[6]!==d||t[7]!==p?(m=()=>{l({fileCount:r.length,additions:d,deletions:p})},h=[r.length,d,p,l],t[4]=r.length,t[5]=l,t[6]=d,t[7]=p,t[8]=m,t[9]=h):(m=t[8],h=t[9]),(0,X.useEffect)(m,h),a){let e;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(e=v(i.compact,`text-destructive text-center`),t[10]=e):e=t[10];let n;return t[11]===a?n=t[12]:(n=(0,Q.jsx)(_e,{children:(0,Q.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,Q.jsx)(`p`,{className:e,children:a})})}),t[11]=a,t[12]=n),n}if(r.length===0){let e;return t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(_e,{children:(0,Q.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 pt-7 pb-2`,children:(0,Q.jsx)(`p`,{className:v(i.compact,i.bodyMuted,`text-center`),children:`No changes to review`})})}),t[13]=e):e=t[13],e}let g;t[14]!==r||t[15]!==s||t[16]!==c||t[17]!==o?(g=(e,t)=>{let{isOpen:n,toggle:a}=t,l=!!e.children,u=!l&&e.fileIndex===o,d=(0,Q.jsxs)(ue,{onClick:()=>{l?a():e.fileIndex!==void 0&&s(e.fileIndex)},selected:u,className:v(i.conversationBody,`gap-1.5`),children:[l?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(y,{className:v(`h-3.5 w-3.5 shrink-0 text-muted-foreground transition-transform`,n&&`rotate-90`)}),n?(0,Q.jsx)(fe,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}):(0,Q.jsx)(se,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`})]}):(0,Q.jsx)(J,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`}),(0,Q.jsx)(`span`,{className:`truncate flex-1 min-w-0`,children:e.name}),!l&&e.status&&(0,Q.jsx)(`span`,{className:Ce(e.status),children:we(e.status)})]});return l?d:(0,Q.jsxs)(W,{children:[(0,Q.jsx)(oe,{asChild:!0,children:(0,Q.jsx)(`div`,{children:d})}),(0,Q.jsx)(q,{children:(0,Q.jsxs)(U,{onClick:()=>{e.fileIndex!==void 0&&c?.(r[e.fileIndex])},children:[(0,Q.jsx)(C,{className:`mr-2 h-3.5 w-3.5`}),`Revert Change`]})})]})},t[14]=r,t[15]=s,t[16]=c,t[17]=o,t[18]=g):g=t[18];let _;return t[19]!==g||t[20]!==n?(_=(0,Q.jsx)(_e,{children:(0,Q.jsx)(`div`,{className:`px-1 pt-3 pb-2`,children:(0,Q.jsx)(ye,{nodes:n,defaultOpen:!0,indent:16,childContainerClassName:`ml-4 border-l border-sidebar-border pl-2`,renderNode:g})})}),t[19]=g,t[20]=n,t[21]=_):_=t[21],_}function Ee(e,t){return e+t.hunks.reduce(De,0)}function De(e,t){return e+t.changes.filter(Oe).length}function Oe(e){return e.type===`delete`}function ke(e,t){return e+t.hunks.reduce(Ae,0)}function Ae(e,t){return e+t.changes.filter(je).length}function je(e){return e.type===`add`}function Me(e){let t=(0,Z.c)(36),{open:n,lineNumber:r,lineContent:a,initialComment:o,isEditing:s,onSave:c,onDelete:l,onClose:u}=e,[d,f]=(0,X.useState)((o===void 0?``:o)??``),p;t[0]!==c||t[1]!==d?(p=()=>{d.trim()&&c(d.trim())},t[0]=c,t[1]=d,t[2]=p):p=t[2];let m=p,h;t[3]===m?h=t[4]:(h=e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),m())},t[3]=m,t[4]=h);let g=h,_;t[5]===u?_=t[6]:(_=e=>{e||u()},t[5]=u,t[6]=_);let y;t[7]===r?y=t[8]:(y=(0,Q.jsx)(A,{children:(0,Q.jsxs)(M,{children:[`Comment on line `,r]})}),t[7]=r,t[8]=y);let b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=v(i.compact,`font-mono rounded bg-muted px-3 py-2 text-muted-foreground overflow-x-auto whitespace-pre`),t[9]=b):b=t[9];let x=a||` `,S;t[10]===x?S=t[11]:(S=(0,Q.jsx)(`div`,{className:b,children:x}),t[10]=x,t[11]=S);let C;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>f(e.target.value),t[12]=C):C=t[12];let w;t[13]!==g||t[14]!==d?(w=(0,Q.jsx)(H,{autoFocus:!0,placeholder:`Add a comment... (Cmd+Enter to save)`,value:d,onChange:C,onKeyDown:g,rows:12,className:`resize-none text-base`}),t[13]=g,t[14]=d,t[15]=w):w=t[15];let E;t[16]!==s||t[17]!==l?(E=s&&l&&(0,Q.jsx)(T,{variant:`destructive`,size:`sm`,onClick:l,className:`mr-auto`,children:`Delete`}),t[16]=s,t[17]=l,t[18]=E):E=t[18];let D;t[19]===d?D=t[20]:(D=d.trim(),t[19]=d,t[20]=D);let O=!D,P;t[21]!==m||t[22]!==O?(P=(0,Q.jsx)(T,{size:`sm`,onClick:m,disabled:O,children:`Save`}),t[21]=m,t[22]=O,t[23]=P):P=t[23];let F;t[24]!==E||t[25]!==P?(F=(0,Q.jsxs)(k,{className:`gap-2 sm:gap-0`,children:[E,P]}),t[24]=E,t[25]=P,t[26]=F):F=t[26];let I;t[27]!==w||t[28]!==F||t[29]!==y||t[30]!==S?(I=(0,Q.jsxs)(j,{className:`max-w-2xl`,children:[y,S,w,F]}),t[27]=w,t[28]=F,t[29]=y,t[30]=S,t[31]=I):I=t[31];let L;return t[32]!==n||t[33]!==I||t[34]!==_?(L=(0,Q.jsx)(N,{open:n,onOpenChange:_,children:I}),t[32]=n,t[33]=I,t[34]=_,t[35]=L):L=t[35],L}function Ne(e){let t=c(),n=l(e=>e.diffComments),r=(0,X.useMemo)(()=>n[e]??[],[n,e]),i=(0,X.useCallback)(r=>{let i=n[e]??[],a=typeof r==`function`?r(i):r;t({type:s.SetDiffComments,threadId:e,comments:a})},[t,e,n]),a=(0,X.useRef)(!1);return(0,X.useEffect)(()=>{if((n[e]??[]).length>0){a.current=!0;return}p(e).then(n=>{n.diffComments&&n.diffComments.length>0&&t({type:s.SetDiffComments,threadId:e,comments:n.diffComments}),a.current=!0}).catch(()=>{a.current=!0})},[e]),(0,X.useEffect)(()=>{a.current&&_(e,{diffComments:r}).catch(()=>{})},[e,r]),{comments:r,setComments:i}}function Pe(e,t){return`git-diff:${e}:${t}`}function Fe(e){return e===`dark`?`vs-dark`:`vs-light`}function Ie(e){return v(`bg-transparent`,e&&`h-auto py-3 flex-col items-start gap-3 md:flex-row md:items-center md:h-[71px] md:py-0 md:gap-2 justify-between`)}function Le(e){return v(`flex items-center gap-2`,e?`ml-0`:`ml-auto`,`md:ml-auto`)}function Re(){return Error(`Loading review changes timed out. Please try again.`)}async function ze(e,t=15e3){return Promise.race([m(e),new Promise((e,n)=>{window.setTimeout(()=>n(Re()),t)})])}var Be=2;function Ve(e,t){return t<=0?{min:e,max:e}:{min:e,max:e+t-1}}function He(e,t){return{startLine:Math.max(1,e-Be),endLine:t+Be}}function $(e){if(e.hunks.length===0)return null;let t=1/0,n=0,r=1/0,i=0;for(let a of e.hunks){let e=Ve(a.oldStart,a.oldLines),o=Ve(a.newStart,a.newLines);t=Math.min(t,e.min),n=Math.max(n,e.max),r=Math.min(r,o.min),i=Math.max(i,o.max)}return t===1/0||r===1/0?null:{original:He(t,n),modified:He(r,i)}}function Ue(e,t,n){if(e.length===0)return``;let r=e.endsWith(`
2
- `),i=e.split(`
3
- `);return r&&i.length>0&&i[i.length-1]===``&&i.pop(),i.slice(Math.max(0,t-1),Math.max(t-1,n)).join(`
4
- `)}function We(e){let t=$(e);return!t||t.original.startLine<=1||t.modified.startLine<=1}function Ge(e,t){return t?e-t.startLine+1:e}function Ke(e,t){return t?t.startLine+e-1:e}function qe(e){return{ts:`typescript`,tsx:`typescript`,js:`javascript`,jsx:`javascript`,json:`json`,md:`markdown`,css:`css`,scss:`scss`,html:`html`,py:`python`,rb:`ruby`,go:`go`,rs:`rust`,java:`java`,kt:`kotlin`,swift:`swift`,c:`c`,cpp:`cpp`,h:`c`,hpp:`cpp`,sh:`shell`,yaml:`yaml`,yml:`yaml`,xml:`xml`,sql:`sql`}[e.split(`.`).pop()??``]||`plaintext`}function Je(e){let t=(0,Z.c)(34),{comments:n,activeCommentIndex:r,isFullView:i,selectedFileIndex:a,files:o,selectedFile:s,onLineGutterClick:c}=e,l=(0,X.useRef)(null),u=(0,X.useRef)(n),d=(0,X.useRef)(r),f;t[0]!==o||t[1]!==i||t[2]!==a?(f={isFullView:i,selectedFileIndex:a,files:o},t[0]=o,t[1]=i,t[2]=a,t[3]=f):f=t[3];let p=(0,X.useRef)(f),m;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(m={original:[],modified:[]},t[4]=m):m=t[4];let h=(0,X.useRef)(m),g=(0,X.useRef)(null),_=(0,X.useRef)(!0),v,y;t[5]===n?(v=t[6],y=t[7]):(v=()=>{u.current=n},y=[n],t[5]=n,t[6]=v,t[7]=y),(0,X.useEffect)(v,y);let b,x;t[8]===r?(b=t[9],x=t[10]):(b=()=>{d.current=r},x=[r],t[8]=r,t[9]=b,t[10]=x),(0,X.useEffect)(b,x);let S,C;t[11]!==o||t[12]!==i||t[13]!==a?(S=()=>{p.current={isFullView:i,selectedFileIndex:a,files:o}},C=[i,a,o],t[11]=o,t[12]=i,t[13]=a,t[14]=S,t[15]=C):(S=t[14],C=t[15]),(0,X.useEffect)(S,C);let w;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>{if(!_.current)return;let e=l.current;if(!e)return;let{isFullView:t,selectedFileIndex:n,files:r}=p.current,i=u.current,a=d.current,o=r[n];if(!o)return;let s=(e,r)=>{let s=t?null:$(o),c=s?r===`original`?s.original:s.modified:null,l=i.filter(e=>e.fileIndex===n&&e.side===r),u=new Set(l.map(e=>Ge(e.lineNumber,c))),d=e.getModel()?.getLineCount()??0,f=[];for(let e=1;e<=d;e++)u.has(e)||f.push({range:{startLineNumber:e,startColumn:1,endLineNumber:e,endColumn:1},options:{isWholeLine:!0,glyphMarginClassName:`diff-gutter-add-comment`,glyphMarginHoverMessage:{value:`$(add) Click to add a comment`},stickiness:Y.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges}});let p=l.map(e=>{let t=Ge(e.lineNumber,c);if(t<1)return null;let n=i.indexOf(e)===a;return{range:{startLineNumber:t,startColumn:1,endLineNumber:t,endColumn:1},options:{isWholeLine:!0,className:n?`diff-comment-active-line`:`diff-comment-marked-line`,glyphMarginClassName:n?`diff-comment-glyph-active`:`diff-comment-glyph`,glyphMarginHoverMessage:{value:e.comment},stickiness:Y.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges}}}).filter(Xe);f.push(...p);let m=r===`original`?h.current.original:h.current.modified,g=e.deltaDecorations(m,f);r===`original`?h.current.original=g:h.current.modified=g};s(e.getOriginalEditor(),`original`),s(e.getModifiedEditor(),`modified`)},t[16]=w):w=t[16];let T=w,E;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{let e=g.current;g.current=null,e?.original?.dispose(),e?.modified?.dispose()},t[17]=E):E=t[17];let D=E,O;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(O=()=>{h.current={original:[],modified:[]};let e=setTimeout(()=>T(),150);return()=>clearTimeout(e)},t[18]=O):O=t[18];let k;t[19]===a?k=t[20]:(k=[a,T],t[19]=a,t[20]=k),(0,X.useEffect)(O,k);let A;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(A=()=>{T()},t[21]=A):A=t[21];let j;t[22]!==r||t[23]!==n||t[24]!==i||t[25]!==s||t[26]!==a?(j=[T,n,r,a,i,s],t[22]=r,t[23]=n,t[24]=i,t[25]=s,t[26]=a,t[27]=j):j=t[27],(0,X.useEffect)(A,j);let M,N;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(M=()=>()=>{_.current=!1,l.current=null,h.current={original:[],modified:[]},D()},N=[D],t[28]=M,t[29]=N):(M=t[28],N=t[29]),(0,X.useEffect)(M,N);let P;t[30]===c?P=t[31]:(P=e=>{l.current=e;let t=e.getModel();g.current=t?{original:t.original,modified:t.modified}:null;let n=Ye,r=(e,t)=>{e.onMouseDown(r=>{if(!r.target?.position||!n(r.target.type))return;let i=r.target.position.lineNumber,{isFullView:a,selectedFileIndex:o,files:s}=p.current,l=s[o];if(!l)return;let d=a?null:$(l),f=Ke(i,d?t===`original`?d.original:d.modified:null),m=e.getModel()?.getLineContent(i)??``,h=u.current.find(e=>e.fileIndex===o&&e.lineNumber===f&&e.side===t);c({existing:h,lineNumber:f,lineContent:m,side:t})})};r(e.getOriginalEditor(),`original`),r(e.getModifiedEditor(),`modified`),setTimeout(()=>{l.current===e&&T()},150)},t[30]=c,t[31]=P);let F=P,I;return t[32]===F?I=t[33]:(I={diffEditorRef:l,applyAllDecorations:T,handleEditorDidMount:F},t[32]=F,t[33]=I),I}function Ye(e){return e===Y.MouseTargetType.GUTTER_GLYPH_MARGIN||e===Y.MouseTargetType.GUTTER_LINE_NUMBERS||e===Y.MouseTargetType.GUTTER_LINE_DECORATIONS||e===Y.MouseTargetType.GUTTER_VIEW_ZONE}function Xe(e){return e!==null}function Ze(e){let t=(0,Z.c)(6),{onRetry:n}=e,[r,a]=(0,X.useState)(!1),o,s;if(t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{let e=window.setTimeout(()=>{a(!0)},15e3);return()=>{window.clearTimeout(e)}},s=[],t[0]=o,t[1]=s):(o=t[0],s=t[1]),(0,X.useEffect)(o,s),!r){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(L,{centered:!0,label:`Loading review changes...`}),t[2]=e):e=t[2],e}let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Q.jsx)(`p`,{className:i.bodyMuted,children:`Loading review changes is taking longer than expected.`}),t[3]=c):c=t[3];let l;return t[4]===n?l=t[5]:(l=(0,Q.jsx)(`div`,{className:`flex h-full items-center justify-center p-6`,children:(0,Q.jsxs)(`div`,{className:`space-y-4 text-center`,children:[c,(0,Q.jsx)(T,{variant:`outline`,onClick:n,children:`Retry`})]})}),t[4]=n,t[5]=l),l}function Qe(e,t,n){return`git-media:${e}:${t}:${n}`}function $e(e,t,n){let r=(0,Z.c)(13),i;r[0]!==t||r[1]!==e||r[2]!==n?(i=Qe(e,t,n),r[0]=t,r[1]=e,r[2]=n,r[3]=i):i=r[3];let a;r[4]!==t||r[5]!==e||r[6]!==n?(a=()=>d(e,t,n),r[4]=t,r[5]=e,r[6]=n,r[7]=a):a=r[7];let o=z(i,a),s;r[8]===o?s=r[9]:(s=URL.createObjectURL(o),r[8]=o,r[9]=s);let c=s,l,u;return r[10]===c?(l=r[11],u=r[12]):(l=()=>()=>{URL.revokeObjectURL(c)},u=[c],r[10]=c,r[11]=l,r[12]=u),(0,X.useEffect)(l,u),c}function et(e){let t=(0,Z.c)(9),{threadId:n,filePath:r,version:a,label:o}=e,s=$e(n,r,a),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=v(i.caption,`px-3 py-1.5 border-b text-muted-foreground bg-muted/30`),t[0]=c):c=t[0];let l;t[1]===o?l=t[2]:(l=(0,Q.jsx)(`div`,{className:c,children:o}),t[1]=o,t[2]=l);let u=`${o} - ${r}`,d;t[3]!==s||t[4]!==u?(d=(0,Q.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-4 overflow-auto bg-background`,children:(0,Q.jsx)(`img`,{src:s,alt:u,className:`max-w-full max-h-full object-contain`})}),t[3]=s,t[4]=u,t[5]=d):d=t[5];let f;return t[6]!==l||t[7]!==d?(f=(0,Q.jsxs)(`div`,{className:`flex flex-col h-full`,children:[l,d]}),t[6]=l,t[7]=d,t[8]=f):f=t[8],f}function tt(e){let t=(0,Z.c)(23),{threadId:n,file:r}=e,i=r.status===`modified`||r.status===`deleted`||r.status===`renamed`,a=r.status===`modified`||r.status===`added`||r.status===`untracked`||r.status===`renamed`;if(i&&a){let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(L,{centered:!0,label:`Loading before image...`}),t[0]=e):e=t[0];let i=r.status===`renamed`&&r.oldPath?r.oldPath:r.path,a;t[1]!==i||t[2]!==n?(a=(0,Q.jsx)(`div`,{className:`flex-1 border-r border-border`,children:(0,Q.jsx)(X.Suspense,{fallback:e,children:(0,Q.jsx)(et,{threadId:n,filePath:i,version:`old`,label:`Before`})})}),t[1]=i,t[2]=n,t[3]=a):a=t[3];let o;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Q.jsx)(L,{centered:!0,label:`Loading after image...`}),t[4]=o):o=t[4];let s;t[5]!==r.path||t[6]!==n?(s=(0,Q.jsx)(`div`,{className:`flex-1`,children:(0,Q.jsx)(X.Suspense,{fallback:o,children:(0,Q.jsx)(et,{threadId:n,filePath:r.path,version:`new`,label:`After`})})}),t[5]=r.path,t[6]=n,t[7]=s):s=t[7];let c;return t[8]!==a||t[9]!==s?(c=(0,Q.jsxs)(`div`,{className:`flex h-full`,children:[a,s]}),t[8]=a,t[9]=s,t[10]=c):c=t[10],c}let o=a?`new`:`old`,s=a?`Added`:`Deleted`,c;t[11]===s?c=t[12]:(c=s.toLowerCase(),t[11]=s,t[12]=c);let l=`Loading ${c} image...`,u;t[13]===l?u=t[14]:(u=(0,Q.jsx)(L,{centered:!0,label:l}),t[13]=l,t[14]=u);let d;t[15]!==r.path||t[16]!==s||t[17]!==n||t[18]!==o?(d=(0,Q.jsx)(et,{threadId:n,filePath:r.path,version:o,label:s}),t[15]=r.path,t[16]=s,t[17]=n,t[18]=o,t[19]=d):d=t[19];let f;return t[20]!==u||t[21]!==d?(f=(0,Q.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,Q.jsx)(X.Suspense,{fallback:u,children:d})}),t[20]=u,t[21]=d,t[22]=f):f=t[22],f}function nt(e){let t=(0,Z.c)(21),{comments:n,activeCommentIndex:r,onPrevComment:a,onNextComment:o}=e,s=r??0,c=n.length===1?`1 Comment`:`Comment ${s+1} of ${n.length}`,l=s===0,u;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(ne,{className:`h-3 w-3`}),t[0]=u):u=t[0];let d;t[1]!==a||t[2]!==l?(d=(0,Q.jsx)(E,{asChild:!0,children:(0,Q.jsx)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:a,disabled:l,children:u})}),t[1]=a,t[2]=l,t[3]=d):d=t[3];let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Q.jsx)(D,{children:`Previous comment`}),t[4]=f):f=t[4];let p;t[5]===d?p=t[6]:(p=(0,Q.jsxs)(O,{children:[d,f]}),t[5]=d,t[6]=p);let m;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(m=v(i.caption,`whitespace-nowrap`),t[7]=m):m=t[7];let h;t[8]===c?h=t[9]:(h=(0,Q.jsx)(`span`,{className:m,children:c}),t[8]=c,t[9]=h);let g=s===n.length-1,_;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Q.jsx)(y,{className:`h-3 w-3`}),t[10]=_):_=t[10];let b;t[11]!==o||t[12]!==g?(b=(0,Q.jsx)(E,{asChild:!0,children:(0,Q.jsx)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 rounded-full`,onClick:o,disabled:g,children:_})}),t[11]=o,t[12]=g,t[13]=b):b=t[13];let x;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,Q.jsx)(D,{children:`Next comment`}),t[14]=x):x=t[14];let S;t[15]===b?S=t[16]:(S=(0,Q.jsxs)(O,{children:[b,x]}),t[15]=b,t[16]=S);let C;return t[17]!==S||t[18]!==p||t[19]!==h?(C=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p,h,S]}),t[17]=S,t[18]=p,t[19]=h,t[20]=C):C=t[20],C}function rt(e){let t=(0,Z.c)(12),{isChatOpen:n,onOpenChat:r,onCloseChat:i,focusedPane:a,conversationId:o,paneMessages:s}=e,c;t[0]!==o||t[1]!==a||t[2]!==n||t[3]!==i||t[4]!==s?(c=n&&(0,Q.jsxs)(`div`,{className:`pointer-events-auto w-[min(100%,48rem)] rounded-2xl bg-background/50 p-4 backdrop-blur-md`,children:[(0,Q.jsx)(`div`,{className:`mb-3 flex items-center justify-end`,children:(0,Q.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:i,children:[(0,Q.jsx)(w,{className:`h-4 w-4`}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Close chat`})]})}),(0,Q.jsx)(pe,{paneId:a,conversationId:o,children:(0,Q.jsx)(ie,{children:(0,Q.jsx)(te,{messages:s})})})]}),t[0]=o,t[1]=a,t[2]=n,t[3]=i,t[4]=s,t[5]=c):c=t[5];let l;t[6]!==n||t[7]!==r?(l=!n&&(0,Q.jsxs)(O,{children:[(0,Q.jsx)(E,{asChild:!0,children:(0,Q.jsxs)(T,{size:`icon`,className:`pointer-events-auto h-12 w-12 rounded-full shadow-lg`,onClick:r,children:[(0,Q.jsx)(K,{className:`h-5 w-5`}),(0,Q.jsx)(`span`,{className:`sr-only`,children:`Open review chat`})]})}),(0,Q.jsx)(D,{children:`Chat about this diff`})]}),t[6]=n,t[7]=r,t[8]=l):l=t[8];let u;return t[9]!==c||t[10]!==l?(u=(0,Q.jsxs)(`div`,{className:`pointer-events-none absolute bottom-4 right-4 z-20 flex flex-col items-end gap-3`,children:[c,l]}),t[9]=c,t[10]=l,t[11]=u):u=t[11],u}function it(e){let t=(0,Z.c)(10),{showTreeBackButton:n,isPanelCollapsed:r,onShowTree:i,onTogglePanel:a}=e;if(n){let e,n;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(ce,{className:`h-4 w-4`}),n=(0,Q.jsx)(`span`,{className:`sr-only`,children:`Show file tree`}),t[0]=e,t[1]=n):(e=t[0],n=t[1]);let r;return t[2]===i?r=t[3]:(r=(0,Q.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground shrink-0`,onClick:i,children:[e,n]}),t[2]=i,t[3]=r),r}let o;t[4]===r?o=t[5]:(o=r?(0,Q.jsx)(ce,{className:`h-4 w-4`}):(0,Q.jsx)(de,{className:`h-4 w-4`}),t[4]=r,t[5]=o);let s;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsx)(`span`,{className:`sr-only`,children:`Toggle file tree`}),t[6]=s):s=t[6];let c;return t[7]!==a||t[8]!==o?(c=(0,Q.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-8 w-8 text-muted-foreground shrink-0`,onClick:a,children:[o,s]}),t[7]=a,t[8]=o,t[9]=c):c=t[9],c}function at(e){let t=(0,Z.c)(7),{isImageFile:n,isFullView:r,onToggleFullView:a,selectedFile:o}=e;if(n)return null;let s=!o,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=v(i.compact,`h-8 gap-1 px-2`),t[0]=c):c=t[0];let l;t[1]===r?l=t[2]:(l=r?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(x,{className:`h-3 w-3`}),` Show changes only`]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(S,{className:`h-3 w-3`}),` Show full file`]}),t[1]=r,t[2]=l);let u;return t[3]!==a||t[4]!==s||t[5]!==l?(u=(0,Q.jsx)(T,{variant:`ghost`,size:`sm`,onClick:a,disabled:s,className:c,children:l}),t[3]=a,t[4]=s,t[5]=l,t[6]=u):u=t[6],u}function ot(e){let t=(0,Z.c)(7),{onOpen:n}=e,r,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsx)(b,{className:`h-3.5 w-3.5`}),i=(0,Q.jsx)(`span`,{className:`sr-only`,children:`Open in Files window`}),t[0]=r,t[1]=i):(r=t[0],i=t[1]);let a;t[2]===n?a=t[3]:(a=(0,Q.jsx)(E,{asChild:!0,children:(0,Q.jsxs)(T,{variant:`ghost`,size:`icon`,className:`h-7 w-7 shrink-0 text-muted-foreground`,onClick:n,children:[r,i]})}),t[2]=n,t[3]=a);let o;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Q.jsx)(D,{children:`Open in Files window`}),t[4]=o):o=t[4];let s;return t[5]===a?s=t[6]:(s=(0,Q.jsxs)(O,{children:[a,o]}),t[5]=a,t[6]=s),s}function st(e){let t=(0,Z.c)(9),{selectedFile:n,onOpenInFiles:r}=e,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=v(i.label,`text-foreground`),t[0]=a):a=t[0];let o=n?n.path:`Review Changes`,s;t[1]===o?s=t[2]:(s=(0,Q.jsx)(`span`,{className:a,children:o}),t[1]=o,t[2]=s);let c;t[3]!==r||t[4]!==n?(c=n&&(0,Q.jsx)(ot,{onOpen:r}),t[3]=r,t[4]=n,t[5]=c):c=t[5];let l;return t[6]!==s||t[7]!==c?(l=(0,Q.jsxs)(Q.Fragment,{children:[s,c]}),t[6]=s,t[7]=c,t[8]=l):l=t[8],l}function ct(e){let t=(0,Z.c)(15),{comments:n,activeCommentIndex:r,onPrevComment:a,onNextComment:o,onFixComments:s}=e;if(n.length===0)return null;let c;t[0]!==r||t[1]!==n||t[2]!==o||t[3]!==a?(c=(0,Q.jsx)(nt,{comments:n,activeCommentIndex:r,onPrevComment:a,onNextComment:o}),t[0]=r,t[1]=n,t[2]=o,t[3]=a,t[4]=c):c=t[4];let l,u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=v(i.compact,`h-8 gap-1 px-3 bg-foreground text-background hover:bg-foreground/90`),u=(0,Q.jsx)(K,{className:`h-3 w-3`}),t[5]=l,t[6]=u):(l=t[5],u=t[6]);let d;t[7]===s?d=t[8]:(d=(0,Q.jsx)(E,{asChild:!0,children:(0,Q.jsxs)(T,{size:`sm`,onClick:s,className:l,children:[u,`Fix all comments`]})}),t[7]=s,t[8]=d);let f;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Q.jsx)(D,{children:`Send all comments to Tarsk for resolution`}),t[9]=f):f=t[9];let p;t[10]===d?p=t[11]:(p=(0,Q.jsxs)(O,{children:[d,f]}),t[10]=d,t[11]=p);let m;return t[12]!==c||t[13]!==p?(m=(0,Q.jsxs)(Q.Fragment,{children:[c,p]}),t[12]=c,t[13]=p,t[14]=m):m=t[14],m}function lt(e){let t=(0,Z.c)(10),{isImageFile:n,selectedFile:r,threadId:i,language:a,theme:o,diffOriginal:s,diffModified:c,onEditorMount:l,diffEditorOptions:u}=e;if(n&&r){let e;return t[0]!==r||t[1]!==i?(e=(0,Q.jsx)(tt,{threadId:i,file:r}),t[0]=r,t[1]=i,t[2]=e):e=t[2],e}let d;return t[3]!==u||t[4]!==c||t[5]!==s||t[6]!==a||t[7]!==l||t[8]!==o?(d=(0,Q.jsx)(ge,{height:`100%`,language:a,original:s,modified:c,keepCurrentOriginalModel:!0,keepCurrentModifiedModel:!0,theme:o,onMount:l,options:u}),t[3]=u,t[4]=c,t[5]=s,t[6]=a,t[7]=l,t[8]=o,t[9]=d):d=t[9],d}function ut(){let e=(0,Z.c)(8),t=l(dt),n;e[0]===t?n=e[1]:(n=e=>u(e,t),e[0]=t,e[1]=n);let r=l(n),i;e[2]===t?i=e[3]:(i=e=>o(e,t),e[2]=t,e[3]=i);let a=l(i),s;return e[4]!==r||e[5]!==t||e[6]!==a?(s={focusedPane:t,conversationId:r,paneMessages:a},e[4]=r,e[5]=t,e[6]=a,e[7]=s):s=e[7],s}function dt(e){return e.focusedPane}function ft(e){let t=(0,Z.c)(61),{threadId:n,selectedFile:r,content:i,layout:a,commentControls:o,chatControls:s}=e,{isImageFile:c,diffOriginal:l,diffModified:u,resolvedTheme:d,onEditorMount:f,diffEditorOptions:p,isFullView:m,onToggleFullView:h}=i,{isPanelCollapsed:g,showTreeBackButton:_,onShowTree:v,onTogglePanel:y}=a,{focusedPane:b,conversationId:x,paneMessages:S}=ut(),{openChatDockPanel:C}=I(),{setPendingExplorerPath:w}=F(),T;t[0]!==C||t[1]!==r||t[2]!==w?(T=function(){r&&(w(r.path),C(`explorer`))},t[0]=C,t[1]=r,t[2]=w,t[3]=T):T=t[3];let E=T,D;t[4]===g?D=t[5]:(D=Ie(g),t[4]=g,t[5]=D);let O;t[6]!==g||t[7]!==v||t[8]!==y||t[9]!==_?(O=(0,Q.jsx)(it,{showTreeBackButton:_,isPanelCollapsed:g,onShowTree:v,onTogglePanel:y}),t[6]=g,t[7]=v,t[8]=y,t[9]=_,t[10]=O):O=t[10];let k;t[11]!==E||t[12]!==r?(k=(0,Q.jsx)(st,{selectedFile:r,onOpenInFiles:E}),t[11]=E,t[12]=r,t[13]=k):k=t[13];let A;t[14]!==O||t[15]!==k?(A=(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[O,k]}),t[14]=O,t[15]=k,t[16]=A):A=t[16];let j;t[17]===g?j=t[18]:(j=Le(g),t[17]=g,t[18]=j);let M;t[19]!==m||t[20]!==c||t[21]!==h||t[22]!==r?(M=(0,Q.jsx)(at,{isImageFile:c,isFullView:m,onToggleFullView:h,selectedFile:r}),t[19]=m,t[20]=c,t[21]=h,t[22]=r,t[23]=M):M=t[23];let N;t[24]===o?N=t[25]:(N=(0,Q.jsx)(ct,{...o}),t[24]=o,t[25]=N);let P;t[26]!==j||t[27]!==M||t[28]!==N?(P=(0,Q.jsxs)(`div`,{className:j,children:[M,N]}),t[26]=j,t[27]=M,t[28]=N,t[29]=P):P=t[29];let L;t[30]!==D||t[31]!==A||t[32]!==P?(L=(0,Q.jsxs)(le,{className:D,children:[A,P]}),t[30]=D,t[31]=A,t[32]=P,t[33]=L):L=t[33];let R=r?.path||``,z;t[34]===R?z=t[35]:(z=qe(R),t[34]=R,t[35]=z);let B;t[36]===d?B=t[37]:(B=Fe(d),t[36]=d,t[37]=B);let V;t[38]!==p||t[39]!==u||t[40]!==l||t[41]!==c||t[42]!==f||t[43]!==r||t[44]!==z||t[45]!==B||t[46]!==n?(V=(0,Q.jsx)(lt,{isImageFile:c,selectedFile:r,threadId:n,language:z,theme:B,diffOriginal:l,diffModified:u,onEditorMount:f,diffEditorOptions:p}),t[38]=p,t[39]=u,t[40]=l,t[41]=c,t[42]=f,t[43]=r,t[44]=z,t[45]=B,t[46]=n,t[47]=V):V=t[47];let H;t[48]!==s.isChatOpen||t[49]!==s.onCloseChat||t[50]!==s.onOpenChat||t[51]!==x||t[52]!==b||t[53]!==S?(H=(0,Q.jsx)(rt,{isChatOpen:s.isChatOpen,onOpenChat:s.onOpenChat,onCloseChat:s.onCloseChat,focusedPane:b,conversationId:x,paneMessages:S}),t[48]=s.isChatOpen,t[49]=s.onCloseChat,t[50]=s.onOpenChat,t[51]=x,t[52]=b,t[53]=S,t[54]=H):H=t[54];let U;t[55]!==V||t[56]!==H?(U=(0,Q.jsxs)(`div`,{className:`flex-1 bg-transparent relative`,children:[V,H]}),t[55]=V,t[56]=H,t[57]=U):U=t[57];let W;return t[58]!==L||t[59]!==U?(W=(0,Q.jsxs)(`div`,{className:`diff-editor-panel flex h-full min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden bg-transparent`,children:[L,U]}),t[58]=L,t[59]=U,t[60]=W):W=t[60],W}function pt(){let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(ee,{withHandle:!0,className:`z-10 shrink-0`}),e[0]=t):t=e[0],t}function mt(e){let t=(0,Z.c)(8),{isMobile:n,mobileShowTree:r,panelRef:i,onPanelCollapse:a,onPanelExpand:o,fileTreePanel:s,diffEditorPanel:c}=e,l;return t[0]!==c||t[1]!==s||t[2]!==n||t[3]!==r||t[4]!==a||t[5]!==o||t[6]!==i?(l=(0,Q.jsx)(`div`,{className:`diff-body flex min-h-0 w-full flex-1 overflow-hidden`,children:n?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`div`,{className:v(`flex min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,!r&&`hidden`),children:s}),(0,Q.jsx)(`div`,{className:v(`flex min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,r&&`hidden`),children:c})]}):(0,Q.jsxs)(me,{direction:`horizontal`,children:[(0,Q.jsx)(G,{ref:i,defaultSize:25,minSize:12,maxSize:40,collapsible:!0,collapsedSize:0,onCollapse:a,onExpand:o,className:`overflow-hidden border-r border-transparent`,children:s}),(0,Q.jsx)(pt,{}),(0,Q.jsx)(G,{className:`overflow-hidden border-l border-border bg-transparent`,children:c})]})}),t[0]=c,t[1]=s,t[2]=n,t[3]=r,t[4]=a,t[5]=o,t[6]=i,t[7]=l):l=t[7],l}var ht=a(`app.diff-view.ui`);function gt(e,t){if(!e)return{diffOriginal:``,diffModified:``};if(t)return{diffOriginal:e.oldContent,diffModified:e.newContent};let n=$(e);return n?{diffOriginal:Ue(e.oldContent,n.original.startLine,n.original.endLine),diffModified:Ue(e.newContent,n.modified.startLine,n.modified.endLine)}:{diffOriginal:e.oldContent,diffModified:e.newContent}}function _t(e,t){return!!(e&&(t||We(e)))}function vt(e,t,n){let r=n?null:$(e),i=r?t.side===`original`?r.original:r.modified:null;return Ge(t.lineNumber,i)}async function yt(e,t){let n=t[e];if(n)return n;try{let e=await g(),t=Object.values(e).flat();return t.length>0?t[0]:null}catch(e){return ht.error(`Failed to load models:`,e),null}}function bt(e){let t=(0,Z.c)(7),{treeData:n,files:r,error:i,selectedFileIndex:a,onFileSelect:o,onRevertFile:s}=e,c;return t[0]!==i||t[1]!==r||t[2]!==o||t[3]!==s||t[4]!==a||t[5]!==n?(c=(0,Q.jsx)(`div`,{className:`flex h-full min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden`,children:(0,Q.jsx)(Te,{treeData:n,files:r,error:i,selectedFileIndex:a,onFileSelect:o,onRevertFile:s})}),t[0]=i,t[1]=r,t[2]=o,t[3]=s,t[4]=a,t[5]=n,t[6]=c):c=t[6],c}function xt(e,t){return`${e?e.id:``}-${t?String(t.lineNumber):``}-${t?t.side:``}`}function St(e,t){return e?{lineNumber:e.lineNumber,lineContent:e.lineContent,comment:e.comment}:t?{lineNumber:t.lineNumber,lineContent:t.lineContent,comment:void 0}:{lineNumber:0,lineContent:``,comment:void 0}}function Ct(e,t){return t!==null||e!==null}function wt(e){let t=(0,Z.c)(19),{editingComment:n,pendingLine:r,onSave:i,onDelete:a,onClose:o}=e,s;t[0]!==n||t[1]!==r?(s=St(n,r),t[0]=n,t[1]=r,t[2]=s):s=t[2];let c=s,l;t[3]!==n||t[4]!==r?(l=xt(n,r),t[3]=n,t[4]=r,t[5]=l):l=t[5];let u;t[6]!==n||t[7]!==r?(u=Ct(n,r),t[6]=n,t[7]=r,t[8]=u):u=t[8];let d=n!==null,f;return t[9]!==c.comment||t[10]!==c.lineContent||t[11]!==c.lineNumber||t[12]!==o||t[13]!==a||t[14]!==i||t[15]!==l||t[16]!==u||t[17]!==d?(f=(0,Q.jsx)(Me,{open:u,lineNumber:c.lineNumber,lineContent:c.lineContent,initialComment:c.comment,isEditing:d,onSave:i,onDelete:a,onClose:o},l),t[9]=c.comment,t[10]=c.lineContent,t[11]=c.lineNumber,t[12]=o,t[13]=a,t[14]=i,t[15]=l,t[16]=u,t[17]=d,t[18]=f):f=t[18],f}function Tt(e,t){return Math.min(e,Math.max(t-1,0))}function Et(e,t,n,r){e(r??[]),t(e=>Tt(n??e,r?.length??1))}function Dt(e,t,n){let r=Tt(t,e.length);return n?.files===e&&n.selectedFileIndex===r?n:{files:e,selectedFileIndex:r}}function Ot(e,t,n,r){return{id:`comment-${Date.now()}`,filePath:t.path,fileIndex:n,lineNumber:e.lineNumber,lineContent:e.lineContent,comment:r,side:e.side}}function kt(e,t){return(t%e+e)%e}function At(e,t,n,r){if(!e)return;let i=t[n.fileIndex];if(!i)return;let a=vt(i,n,r);(n.side===`original`?e.getOriginalEditor():e.getModifiedEditor()).revealLineInCenter(Math.max(1,a))}function jt(e,t,n){return{readOnly:!0,renderSideBySide:!e,ignoreTrimWhitespace:!1,renderOverviewRuler:!0,scrollBeyondLastLine:!1,minimap:{enabled:!1},folding:!1,glyphMargin:!0,lineNumbers:_t(t,n)?`on`:`off`,diffWordWrap:`on`,originalEditable:!1,automaticLayout:!0}}function Mt(e,t){e.current&&(t?e.current.expand():e.current.collapse())}async function Nt(e){return(await m(e)).files||[]}async function Pt(e,t,n,r){try{return await f(e,t.path),await Promise.all([n(),r(!0)]),null}catch(e){return e instanceof Error?e.message:`Failed to revert file`}}async function Ft({threadId:e,comments:t,selectedModel:n,clearComments:r,dispatch:i,onExit:a}){try{let{prompt:o}=await h(e,t);r(),i({type:s.SetPendingChatMessage,message:{threadId:e,message:o,model:n.id,provider:n.provider}}),a()}catch(e){ht.error(`Failed to fix comments:`,e),typeof window<`u`&&window.alert(`Failed to process comments. Please try again.`)}}function It(e,t){return e?.files??t??[]}function Lt(e){return e?.selectedFileIndex??0}function Rt(e){return e?.isBinary??!1}function zt(e,t,n,r){Et(e,t,n?.selectedFileIndex,r)}function Bt(e,t,n){n&&n(n=>Dt(e,t,n))}function Vt(e,t,n,r){n(e),t&&r(!1)}async function Ht(e,t,n,r){if(e){r(null);try{let r=await Nt(e);t(r),n(e=>Tt(e,r.length))}catch(e){r(e instanceof Error?e.message:`Failed to load diff`)}}}async function Ut(e,t,n,r,i){let a=await Pt(t,e,n,r);a&&i(a)}function Wt(e,t,n,r,i,a){e?i(e):a({lineNumber:t,lineContent:n,side:r})}function Gt(e,t,n,r,i,a){return t&&r?[...e,Ot(t,r,i,a)]:n?e.map(e=>e.id===n.id?{...e,comment:a}:e):e}function Kt(e,t){return t?e.filter(e=>e.id!==t.id):e}function qt(e,t){if(e.length===0)return null;let n=kt(e.length,t);return{idx:n,comment:e[n]}}function Jt(e,t,n,r,i,a,o,s,c,l){let u=qt(e,t);u&&(n(u.idx),r(u.comment.fileIndex),i&&a(!1),setTimeout(()=>{At(o.current,s,u.comment,c),l()},100))}async function Yt(e,t,n,r,i,a){let o=await yt(e,t);if(!o){ht.error(`No models available to process comments`);return}await Ft({threadId:e,comments:n,selectedModel:o,clearComments:a,dispatch:r,onExit:i})}function Xt(e,t,n,r,i){let a=(0,Z.c)(38),{fetchUnifiedStatus:o}=B(),s;a[0]!==n||a[1]!==t?(s=()=>It(n,t),a[0]=n,a[1]=t,a[2]=s):s=a[2];let[c,l]=(0,X.useState)(s),[u,d]=(0,X.useState)(null),f;a[3]===n?f=a[4]:(f=()=>Lt(n),a[3]=n,a[4]=f);let[p,m]=(0,X.useState)(f),[h,g]=(0,X.useState)(!0),_;a[5]!==n||a[6]!==t?(_=()=>{zt(l,m,n,t)},a[5]=n,a[6]=t,a[7]=_):_=a[7];let v=n?.selectedFileIndex,y;a[8]!==t||a[9]!==v?(y=[v,t],a[8]=t,a[9]=v,a[10]=y):y=a[10],(0,X.useEffect)(_,y);let b;a[11]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>{g(!0)},a[11]=b):b=a[11];let x;a[12]===e?x=a[13]:(x=[e],a[12]=e,a[13]=x),(0,X.useEffect)(b,x);let S,C;a[14]!==c||a[15]!==r||a[16]!==p?(S=()=>{Bt(c,p,r)},C=[c,r,p],a[14]=c,a[15]=r,a[16]=p,a[17]=S,a[18]=C):(S=a[17],C=a[18]),(0,X.useEffect)(S,C);let w;a[19]===i?w=a[20]:(w=e=>{Vt(e,i,m,g)},a[19]=i,a[20]=w);let T=w,E;a[21]===Symbol.for(`react.memo_cache_sentinel`)?(E=()=>{g(!0)},a[21]=E):E=a[21];let D=E,O;a[22]===e?O=a[23]:(O=async()=>{await Ht(e,l,m,d)},a[22]=e,a[23]=O);let k=O,A;a[24]!==o||a[25]!==k||a[26]!==e?(A=async t=>{await Ut(t,e,k,o,d)},a[24]=o,a[25]=k,a[26]=e,a[27]=A):A=a[27];let j=A,M;a[28]===c?M=a[29]:(M=be(c),a[28]=c,a[29]=M);let N=M,P;return a[30]!==u||a[31]!==c||a[32]!==T||a[33]!==j||a[34]!==h||a[35]!==p||a[36]!==N?(P={files:c,error:u,selectedFileIndex:p,mobileShowTree:h,treeData:N,setSelectedFileIndex:m,setMobileShowTree:g,handleFileSelect:T,handleShowTree:D,handleRevertFile:j},a[30]=u,a[31]=c,a[32]=T,a[33]=j,a[34]=h,a[35]=p,a[36]=N,a[37]=P):P=a[37],P}function Zt(e,t,n,r){let i=(0,Z.c)(17),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(null),l;i[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=e=>{let{existing:t,lineNumber:n,lineContent:r,side:i}=e;Wt(t,n,r,i,c,o)},i[0]=l):l=i[0];let u=l,d;i[1]!==e||i[2]!==s||i[3]!==a||i[4]!==n||i[5]!==r||i[6]!==t?(d=i=>{t(Gt(e,a,s,n,r,i)),o(null),c(null)},i[1]=e,i[2]=s,i[3]=a,i[4]=n,i[5]=r,i[6]=t,i[7]=d):d=i[7];let f=d,p;i[8]!==s||i[9]!==t?(p=()=>{t(e=>Kt(e,s)),s&&c(null)},i[8]=s,i[9]=t,i[10]=p):p=i[10];let m=p,h;i[11]===Symbol.for(`react.memo_cache_sentinel`)?(h=()=>{o(null),c(null)},i[11]=h):h=i[11];let g=h,_;return i[12]!==s||i[13]!==m||i[14]!==f||i[15]!==a?(_={pendingLine:a,editingComment:s,handleLineGutterClick:u,handleSaveComment:f,handleDeleteComment:m,handleCloseCommentPopup:g},i[12]=s,i[13]=m,i[14]=f,i[15]=a,i[16]=_):_=i[16],_}function Qt(e){let t=(0,Z.c)(19),{comments:n,files:r,isFullView:i,isMobile:a,activeCommentIndex:o,setActiveCommentIndex:s,setSelectedFileIndex:c,setMobileShowTree:l,diffEditorRef:u,applyAllDecorations:d}=e,f;t[0]!==d||t[1]!==n||t[2]!==u||t[3]!==r||t[4]!==i||t[5]!==a||t[6]!==s||t[7]!==l||t[8]!==c?(f=e=>{Jt(n,e,s,c,a,l,u,r,i,d)},t[0]=d,t[1]=n,t[2]=u,t[3]=r,t[4]=i,t[5]=a,t[6]=s,t[7]=l,t[8]=c,t[9]=f):f=t[9];let p=f,m;t[10]!==o||t[11]!==p?(m=()=>{p((o??0)-1)},t[10]=o,t[11]=p,t[12]=m):m=t[12];let h=m,g;t[13]!==o||t[14]!==p?(g=()=>{p((o??-1)+1)},t[13]=o,t[14]=p,t[15]=g):g=t[15];let _=g,v;return t[16]!==_||t[17]!==h?(v={handlePrevComment:h,handleNextComment:_},t[16]=_,t[17]=h,t[18]=v):v=t[18],v}function $t(e,t,n,r,i,a){let o=(0,Z.c)(9),s;o[0]!==n||o[1]!==r||o[2]!==i||o[3]!==t||o[4]!==a||o[5]!==e?(s=()=>Yt(e,t,n,r,i,()=>a([])),o[0]=n,o[1]=r,o[2]=i,o[3]=t,o[4]=a,o[5]=e,o[6]=s):s=o[6];let c=s,l;return o[7]===c?l=o[8]:(l={handleFixComments:c},o[7]=c,o[8]=l),l}function en({threadId:e,selectedFile:t,isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,diffEditorOptions:s,isPanelCollapsed:c,showTreeBackButton:l,onShowTree:u,onTogglePanel:d,isFullView:f,onToggleFullView:p,comments:m,activeCommentIndex:h,onPrevComment:g,onNextComment:_,onFixComments:v,isChatOpen:y,onOpenChat:b,onCloseChat:x}){return{threadId:e,selectedFile:t,content:{isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,diffEditorOptions:s,isFullView:f,onToggleFullView:p},layout:{isPanelCollapsed:c,showTreeBackButton:l,onShowTree:u,onTogglePanel:d},commentControls:{comments:m,activeCommentIndex:h,onPrevComment:g,onNextComment:_,onFixComments:v},chatControls:{isChatOpen:y,onOpenChat:b,onCloseChat:x}}}function tn({threadId:e,selectedFile:t,isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,isMobile:s,showTreeBackButton:c,onShowTree:l,isFullView:u,onToggleFullView:d,comments:f,activeCommentIndex:p,onPrevComment:m,onNextComment:h,onFixComments:g}){let[_,v]=(0,X.useState)(!1),[y,b]=(0,X.useState)(!1),x=(0,X.useRef)(null),S=(0,X.useCallback)(()=>{Mt(x,_)},[_]);return{panelRef:x,editorPanelProps:en({threadId:e,selectedFile:t,isImageFile:n,diffOriginal:r,diffModified:i,resolvedTheme:a,onEditorMount:o,diffEditorOptions:(0,X.useMemo)(()=>jt(s,t,u),[s,t,u]),isPanelCollapsed:_,showTreeBackButton:c,onShowTree:l,onTogglePanel:S,isFullView:u,onToggleFullView:d,comments:f,activeCommentIndex:p,onPrevComment:m,onNextComment:h,onFixComments:g,isChatOpen:y,onOpenChat:()=>b(!0),onCloseChat:()=>b(!1)}),onPanelCollapse:()=>v(!0),onPanelExpand:()=>v(!1)}}function nn(e){let t=(0,Z.c)(64),{threadId:n,onExit:r,loadVersion:i,cachedState:a,onCachedStateChange:o}=e,s;t[0]!==i||t[1]!==n?(s=Pe(n,i),t[0]=i,t[1]=n,t[2]=s):s=t[2];let u;t[3]===n?u=t[4]:(u=()=>ze(n),t[3]=n,t[4]=u);let d=z(s,u),f=c(),p=l(an),{resolvedTheme:m}=ae(),h=re(),[g,_]=(0,X.useState)(!1),[v,y]=(0,X.useState)(null),{files:b,error:x,selectedFileIndex:S,mobileShowTree:C,treeData:w,setSelectedFileIndex:T,setMobileShowTree:E,handleFileSelect:D,handleShowTree:O,handleRevertFile:k}=Xt(n,d.files,a,o,h),{comments:A,setComments:j}=Ne(n),M=b[S],N;t[5]===M?N=t[6]:(N=Rt(M),t[5]=M,t[6]=N);let P=N,F;t[7]!==g||t[8]!==M?(F=gt(M,g),t[7]=g,t[8]=M,t[9]=F):F=t[9];let{diffOriginal:I,diffModified:L}=F,{pendingLine:R,editingComment:B,handleLineGutterClick:V,handleSaveComment:H,handleDeleteComment:U,handleCloseCommentPopup:W}=Zt(A,j,M,S),ee;t[10]!==v||t[11]!==A||t[12]!==b||t[13]!==V||t[14]!==g||t[15]!==M||t[16]!==S?(ee={comments:A,activeCommentIndex:v,isFullView:g,selectedFileIndex:S,files:b,selectedFile:M,onLineGutterClick:V},t[10]=v,t[11]=A,t[12]=b,t[13]=V,t[14]=g,t[15]=M,t[16]=S,t[17]=ee):ee=t[17];let{diffEditorRef:te,applyAllDecorations:ne,handleEditorDidMount:ie}=Je(ee),G;t[18]!==v||t[19]!==ne||t[20]!==A||t[21]!==te||t[22]!==b||t[23]!==g||t[24]!==h||t[25]!==E||t[26]!==T?(G={comments:A,files:b,isFullView:g,isMobile:h,activeCommentIndex:v,setActiveCommentIndex:y,setSelectedFileIndex:T,setMobileShowTree:E,diffEditorRef:te,applyAllDecorations:ne},t[18]=v,t[19]=ne,t[20]=A,t[21]=te,t[22]=b,t[23]=g,t[24]=h,t[25]=E,t[26]=T,t[27]=G):G=t[27];let{handlePrevComment:oe,handleNextComment:se}=Qt(G),{handleFixComments:ce}=$t(n,p,A,f,r,j),le=h&&!C,K;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(K=()=>_(rn),t[28]=K):K=t[28];let q;t[29]!==v||t[30]!==A||t[31]!==L||t[32]!==I||t[33]!==ie||t[34]!==ce||t[35]!==se||t[36]!==oe||t[37]!==O||t[38]!==g||t[39]!==P||t[40]!==h||t[41]!==m||t[42]!==M||t[43]!==le||t[44]!==n?(q={threadId:n,selectedFile:M,isImageFile:P,diffOriginal:I,diffModified:L,resolvedTheme:m,onEditorMount:ie,isMobile:h,showTreeBackButton:le,onShowTree:O,isFullView:g,onToggleFullView:K,comments:A,activeCommentIndex:v,onPrevComment:oe,onNextComment:se,onFixComments:ce},t[29]=v,t[30]=A,t[31]=L,t[32]=I,t[33]=ie,t[34]=ce,t[35]=se,t[36]=oe,t[37]=O,t[38]=g,t[39]=P,t[40]=h,t[41]=m,t[42]=M,t[43]=le,t[44]=n,t[45]=q):q=t[45];let{panelRef:ue,editorPanelProps:de,onPanelCollapse:fe,onPanelExpand:pe}=tn(q),J;return t[46]!==B||t[47]!==de||t[48]!==x||t[49]!==b||t[50]!==W||t[51]!==U||t[52]!==D||t[53]!==k||t[54]!==H||t[55]!==h||t[56]!==C||t[57]!==fe||t[58]!==pe||t[59]!==ue||t[60]!==R||t[61]!==S||t[62]!==w?(J={isMobile:h,mobileShowTree:C,panelRef:ue,files:b,error:x,selectedFileIndex:S,treeData:w,handleFileSelect:D,handleRevertFile:k,editorPanelProps:de,editingComment:B,pendingLine:R,handleSaveComment:H,handleDeleteComment:U,handleCloseCommentPopup:W,onPanelCollapse:fe,onPanelExpand:pe},t[46]=B,t[47]=de,t[48]=x,t[49]=b,t[50]=W,t[51]=U,t[52]=D,t[53]=k,t[54]=H,t[55]=h,t[56]=C,t[57]=fe,t[58]=pe,t[59]=ue,t[60]=R,t[61]=S,t[62]=w,t[63]=J):J=t[63],J}function rn(e){return!e}function an(e){return e.projectModelSelections}function on(e){let t=(0,Z.c)(26),{isMobile:n,mobileShowTree:r,panelRef:i,files:a,error:o,selectedFileIndex:s,treeData:c,handleFileSelect:l,handleRevertFile:u,editorPanelProps:d,editingComment:f,pendingLine:p,handleSaveComment:m,handleDeleteComment:h,handleCloseCommentPopup:g,onPanelCollapse:_,onPanelExpand:v}=nn(e),y;t[0]!==o||t[1]!==a||t[2]!==l||t[3]!==u||t[4]!==s||t[5]!==c?(y=(0,Q.jsx)(bt,{treeData:c,files:a,error:o,selectedFileIndex:s,onFileSelect:l,onRevertFile:u}),t[0]=o,t[1]=a,t[2]=l,t[3]=u,t[4]=s,t[5]=c,t[6]=y):y=t[6];let b;t[7]===d?b=t[8]:(b=(0,Q.jsx)(ft,{...d}),t[7]=d,t[8]=b);let x;t[9]!==n||t[10]!==r||t[11]!==_||t[12]!==v||t[13]!==i||t[14]!==y||t[15]!==b?(x=(0,Q.jsx)(mt,{isMobile:n,mobileShowTree:r,panelRef:i,onPanelCollapse:_,onPanelExpand:v,fileTreePanel:y,diffEditorPanel:b}),t[9]=n,t[10]=r,t[11]=_,t[12]=v,t[13]=i,t[14]=y,t[15]=b,t[16]=x):x=t[16];let S;t[17]!==f||t[18]!==g||t[19]!==h||t[20]!==m||t[21]!==p?(S=(0,Q.jsx)(wt,{editingComment:f,pendingLine:p,onSave:m,onDelete:h,onClose:g}),t[17]=f,t[18]=g,t[19]=h,t[20]=m,t[21]=p,t[22]=S):S=t[22];let C;return t[23]!==x||t[24]!==S?(C=(0,Q.jsxs)(`div`,{className:`diff-view-root flex h-full min-h-0 w-full flex-col`,children:[x,S]}),t[23]=x,t[24]=S,t[25]=C):C=t[25],C}function sn(e){let t=(0,Z.c)(23),[n,r]=(0,X.useState)(0),[i,a]=(0,X.useState)(0),o=(0,X.useRef)(0),s=!!e.cachedState,c;t[0]===e.threadId?c=t[1]:(c=()=>{r(t=>(R(Pe(e.threadId,t)),t+1)),a(ln)},t[0]=e.threadId,t[1]=c);let l=c,u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=()=>{a(0),r(0),o.current=0},t[2]=u):u=t[2];let d;t[3]===e.threadId?d=t[4]:(d=[e.threadId],t[3]=e.threadId,t[4]=d),(0,X.useEffect)(u,d);let f,p;t[5]!==e.refreshTrigger||t[6]!==e.threadId?(f=()=>{!e.refreshTrigger||e.refreshTrigger<=o.current||(o.current=e.refreshTrigger,r(t=>(R(Pe(e.threadId,t)),t+1)),a(cn))},p=[e.refreshTrigger,e.threadId],t[5]=e.refreshTrigger,t[6]=e.threadId,t[7]=f,t[8]=p):(f=t[7],p=t[8]),(0,X.useEffect)(f,p);let m=`${e.threadId}:${i}`,h;t[9]!==l||t[10]!==s?(h=s?null:(0,Q.jsx)(Ze,{onRetry:l}),t[9]=l,t[10]=s,t[11]=h):h=t[11];let g=`${e.threadId}:${n}`,_;t[12]!==n||t[13]!==e||t[14]!==g?(_=(0,Q.jsx)(on,{...e,loadVersion:n},g),t[12]=n,t[13]=e,t[14]=g,t[15]=_):_=t[15];let v;t[16]!==h||t[17]!==_?(v=(0,Q.jsx)(X.Suspense,{fallback:h,children:_}),t[16]=h,t[17]=_,t[18]=v):v=t[18];let y;return t[19]!==l||t[20]!==m||t[21]!==v?(y=(0,Q.jsx)(he,{fallbackTitle:`Failed to load review changes`,onRetry:l,children:v},m),t[19]=l,t[20]=m,t[21]=v,t[22]=y):y=t[22],y}function cn(e){return e+1}function ln(e){return e+1}export{sn as default};