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
@@ -1 +1 @@
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{g as o,h as s,i as c,n as l,p as u,r as d,s as f,t as p,u as m}from"./dist-BTu7PDzc.js";import{a as h,i as g,n as _,r as v,t as y}from"./dist-NcyjV9Gu.js";var b=t(),x=e(n(),1),S=r(),C=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),w=`VisuallyHidden`,T=x.forwardRef((e,t)=>(0,S.jsx)(m.span,{...e,ref:t,style:{...C,...e.style}}));T.displayName=w;var E=T,[D,ee]=s(`Tooltip`,[h]),O=h(),k=`TooltipProvider`,A=700,j=`tooltip.open`,[M,N]=D(k),P=e=>{let{__scopeTooltip:t,delayDuration:n=A,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=x.useRef(!0),s=x.useRef(!1),c=x.useRef(0);return x.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,S.jsx)(M,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:x.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:x.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:x.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};P.displayName=k;var F=`Tooltip`,[te,I]=D(F),L=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,l=N(F,e.__scopeTooltip),u=O(t),[d,f]=x.useState(null),m=c(),h=x.useRef(0),_=o??l.disableHoverableContent,v=s??l.delayDuration,y=x.useRef(!1),[b,C]=p({prop:r,defaultProp:i??!1,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(j))):l.onClose(),a?.(e)},caller:F}),w=x.useMemo(()=>b?y.current?`delayed-open`:`instant-open`:`closed`,[b]),T=x.useCallback(()=>{window.clearTimeout(h.current),h.current=0,y.current=!1,C(!0)},[C]),E=x.useCallback(()=>{window.clearTimeout(h.current),h.current=0,C(!1)},[C]),D=x.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{y.current=!0,C(!0),h.current=0},v)},[v,C]);return x.useEffect(()=>()=>{h.current&&=(window.clearTimeout(h.current),0)},[]),(0,S.jsx)(g,{...u,children:(0,S.jsx)(te,{scope:t,contentId:m,open:b,stateAttribute:w,trigger:d,onTriggerChange:f,onTriggerEnter:x.useCallback(()=>{l.isOpenDelayedRef.current?D():T()},[l.isOpenDelayedRef,D,T]),onTriggerLeave:x.useCallback(()=>{_?E():(window.clearTimeout(h.current),h.current=0)},[E,_]),onOpen:T,onClose:E,disableHoverableContent:_,children:n})})};L.displayName=F;var R=`TooltipTrigger`,z=x.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,a=I(R,n),s=N(R,n),c=O(n),l=x.useRef(null),u=i(t,l,a.onTriggerChange),d=x.useRef(!1),f=x.useRef(!1),p=x.useCallback(()=>d.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener(`pointerup`,p),[p]),(0,S.jsx)(y,{asChild:!0,...c,children:(0,S.jsx)(m.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:u,onPointerMove:o(e.onPointerMove,e=>{e.pointerType!==`touch`&&!f.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),f.current=!0)}),onPointerLeave:o(e.onPointerLeave,()=>{a.onTriggerLeave(),f.current=!1}),onPointerDown:o(e.onPointerDown,()=>{a.open&&a.onClose(),d.current=!0,document.addEventListener(`pointerup`,p,{once:!0})}),onFocus:o(e.onFocus,()=>{d.current||a.onOpen()}),onBlur:o(e.onBlur,a.onClose),onClick:o(e.onClick,a.onClose)})})});z.displayName=R;var B=`TooltipPortal`,[V,ne]=D(B,{forceMount:void 0}),H=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=I(B,t);return(0,S.jsx)(V,{scope:t,forceMount:n,children:(0,S.jsx)(l,{present:n||a.open,children:(0,S.jsx)(d,{asChild:!0,container:i,children:r})})})};H.displayName=B;var U=`TooltipContent`,W=x.forwardRef((e,t)=>{let n=ne(U,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=I(U,e.__scopeTooltip);return(0,S.jsx)(l,{present:r||o.open,children:o.disableHoverableContent?(0,S.jsx)(Y,{side:i,...a,ref:t}):(0,S.jsx)(G,{side:i,...a,ref:t})})}),G=x.forwardRef((e,t)=>{let n=I(U,e.__scopeTooltip),r=N(U,e.__scopeTooltip),a=x.useRef(null),o=i(t,a),[s,c]=x.useState(null),{trigger:l,onClose:u}=n,d=a.current,{onPointerInTransitChange:f}=r,p=x.useCallback(()=>{c(null),f(!1)},[f]),m=x.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=ie(r,re(r,n.getBoundingClientRect())),a=ae(t.getBoundingClientRect()),o=se([...i,...a]);c(o),f(!0)},[f]);return x.useEffect(()=>()=>p(),[p]),x.useEffect(()=>{if(l&&d){let e=e=>m(e,d),t=e=>m(e,l);return l.addEventListener(`pointerleave`,e),d.addEventListener(`pointerleave`,t),()=>{l.removeEventListener(`pointerleave`,e),d.removeEventListener(`pointerleave`,t)}}},[l,d,m,p]),x.useEffect(()=>{if(s){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||d?.contains(t),i=!oe(n,s);r?p():i&&(p(),u())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[l,d,s,u,p]),(0,S.jsx)(Y,{...e,ref:o})}),[K,q]=D(F,{isInside:!1}),J=u(`TooltipContent`),Y=x.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=I(U,n),l=O(n),{onClose:u}=c;return x.useEffect(()=>(document.addEventListener(j,u),()=>document.removeEventListener(j,u)),[u]),x.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&u()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,u]),(0,S.jsx)(f,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,S.jsxs)(v,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,S.jsx)(J,{children:r}),(0,S.jsx)(K,{scope:n,isInside:!0,children:(0,S.jsx)(E,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});W.displayName=U;var X=`TooltipArrow`,Z=x.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=O(n);return q(X,n).isInside?null:(0,S.jsx)(_,{...i,...r,ref:t})});Z.displayName=X;function re(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function ie(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}function ae(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function oe(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function se(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),ce(t)}function ce(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var le=P,ue=L,de=z,fe=H,Q=W,pe=le,me=ue,he=de,$=x.forwardRef((e,t)=>{let n=(0,b.c)(11),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,sideOffset:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?4:o,c;n[4]===r?c=n[5]:(c=a(`z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-base text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[4]=r,n[5]=c);let l;return n[6]!==i||n[7]!==t||n[8]!==s||n[9]!==c?(l=(0,S.jsx)(fe,{children:(0,S.jsx)(Q,{ref:t,sideOffset:s,className:c,...i})}),n[6]=i,n[7]=t,n[8]=s,n[9]=c,n[10]=l):l=n[10],l});$.displayName=Q.displayName;export{C as a,he as i,$ as n,T as o,pe as r,me as t};
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{c as i,t as a}from"./utils-CqsIXqSC.js";import{g as o,h as s,i as c,n as l,p as u,r as d,s as f,t as p,u as m}from"./dist-AbkJBHH5.js";import{a as h,i as g,n as _,r as v,t as y}from"./dist-2xH_pFmV.js";var b=t(),x=e(n(),1),S=r(),C=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),w=`VisuallyHidden`,T=x.forwardRef((e,t)=>(0,S.jsx)(m.span,{...e,ref:t,style:{...C,...e.style}}));T.displayName=w;var E=T,[D,ee]=s(`Tooltip`,[h]),O=h(),k=`TooltipProvider`,A=700,j=`tooltip.open`,[M,N]=D(k),P=e=>{let{__scopeTooltip:t,delayDuration:n=A,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=x.useRef(!0),s=x.useRef(!1),c=x.useRef(0);return x.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,S.jsx)(M,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:x.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:x.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:x.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};P.displayName=k;var F=`Tooltip`,[te,I]=D(F),L=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,l=N(F,e.__scopeTooltip),u=O(t),[d,f]=x.useState(null),m=c(),h=x.useRef(0),_=o??l.disableHoverableContent,v=s??l.delayDuration,y=x.useRef(!1),[b,C]=p({prop:r,defaultProp:i??!1,onChange:e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(j))):l.onClose(),a?.(e)},caller:F}),w=x.useMemo(()=>b?y.current?`delayed-open`:`instant-open`:`closed`,[b]),T=x.useCallback(()=>{window.clearTimeout(h.current),h.current=0,y.current=!1,C(!0)},[C]),E=x.useCallback(()=>{window.clearTimeout(h.current),h.current=0,C(!1)},[C]),D=x.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>{y.current=!0,C(!0),h.current=0},v)},[v,C]);return x.useEffect(()=>()=>{h.current&&=(window.clearTimeout(h.current),0)},[]),(0,S.jsx)(g,{...u,children:(0,S.jsx)(te,{scope:t,contentId:m,open:b,stateAttribute:w,trigger:d,onTriggerChange:f,onTriggerEnter:x.useCallback(()=>{l.isOpenDelayedRef.current?D():T()},[l.isOpenDelayedRef,D,T]),onTriggerLeave:x.useCallback(()=>{_?E():(window.clearTimeout(h.current),h.current=0)},[E,_]),onOpen:T,onClose:E,disableHoverableContent:_,children:n})})};L.displayName=F;var R=`TooltipTrigger`,z=x.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,a=I(R,n),s=N(R,n),c=O(n),l=x.useRef(null),u=i(t,l,a.onTriggerChange),d=x.useRef(!1),f=x.useRef(!1),p=x.useCallback(()=>d.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener(`pointerup`,p),[p]),(0,S.jsx)(y,{asChild:!0,...c,children:(0,S.jsx)(m.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:u,onPointerMove:o(e.onPointerMove,e=>{e.pointerType!==`touch`&&!f.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),f.current=!0)}),onPointerLeave:o(e.onPointerLeave,()=>{a.onTriggerLeave(),f.current=!1}),onPointerDown:o(e.onPointerDown,()=>{a.open&&a.onClose(),d.current=!0,document.addEventListener(`pointerup`,p,{once:!0})}),onFocus:o(e.onFocus,()=>{d.current||a.onOpen()}),onBlur:o(e.onBlur,a.onClose),onClick:o(e.onClick,a.onClose)})})});z.displayName=R;var B=`TooltipPortal`,[V,ne]=D(B,{forceMount:void 0}),H=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=I(B,t);return(0,S.jsx)(V,{scope:t,forceMount:n,children:(0,S.jsx)(l,{present:n||a.open,children:(0,S.jsx)(d,{asChild:!0,container:i,children:r})})})};H.displayName=B;var U=`TooltipContent`,W=x.forwardRef((e,t)=>{let n=ne(U,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=I(U,e.__scopeTooltip);return(0,S.jsx)(l,{present:r||o.open,children:o.disableHoverableContent?(0,S.jsx)(Y,{side:i,...a,ref:t}):(0,S.jsx)(G,{side:i,...a,ref:t})})}),G=x.forwardRef((e,t)=>{let n=I(U,e.__scopeTooltip),r=N(U,e.__scopeTooltip),a=x.useRef(null),o=i(t,a),[s,c]=x.useState(null),{trigger:l,onClose:u}=n,d=a.current,{onPointerInTransitChange:f}=r,p=x.useCallback(()=>{c(null),f(!1)},[f]),m=x.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=ie(r,re(r,n.getBoundingClientRect())),a=ae(t.getBoundingClientRect()),o=se([...i,...a]);c(o),f(!0)},[f]);return x.useEffect(()=>()=>p(),[p]),x.useEffect(()=>{if(l&&d){let e=e=>m(e,d),t=e=>m(e,l);return l.addEventListener(`pointerleave`,e),d.addEventListener(`pointerleave`,t),()=>{l.removeEventListener(`pointerleave`,e),d.removeEventListener(`pointerleave`,t)}}},[l,d,m,p]),x.useEffect(()=>{if(s){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||d?.contains(t),i=!oe(n,s);r?p():i&&(p(),u())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[l,d,s,u,p]),(0,S.jsx)(Y,{...e,ref:o})}),[K,q]=D(F,{isInside:!1}),J=u(`TooltipContent`),Y=x.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:a,onPointerDownOutside:o,...s}=e,c=I(U,n),l=O(n),{onClose:u}=c;return x.useEffect(()=>(document.addEventListener(j,u),()=>document.removeEventListener(j,u)),[u]),x.useEffect(()=>{if(c.trigger){let e=e=>{e.target?.contains(c.trigger)&&u()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[c.trigger,u]),(0,S.jsx)(f,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:u,children:(0,S.jsxs)(v,{"data-state":c.stateAttribute,...l,...s,ref:t,style:{...s.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,S.jsx)(J,{children:r}),(0,S.jsx)(K,{scope:n,isInside:!0,children:(0,S.jsx)(E,{id:c.contentId,role:`tooltip`,children:i||r})})]})})});W.displayName=U;var X=`TooltipArrow`,Z=x.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=O(n);return q(X,n).isInside?null:(0,S.jsx)(_,{...i,...r,ref:t})});Z.displayName=X;function re(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function ie(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}function ae(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function oe(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function se(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),ce(t)}function ce(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var le=P,ue=L,de=z,fe=H,Q=W,pe=le,me=ue,he=de,$=x.forwardRef((e,t)=>{let n=(0,b.c)(11),r,i,o;n[0]===e?(r=n[1],i=n[2],o=n[3]):({className:r,sideOffset:o,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=o);let s=o===void 0?4:o,c;n[4]===r?c=n[5]:(c=a(`z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-base text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,r),n[4]=r,n[5]=c);let l;return n[6]!==i||n[7]!==t||n[8]!==s||n[9]!==c?(l=(0,S.jsx)(fe,{children:(0,S.jsx)(Q,{ref:t,sideOffset:s,className:c,...i})}),n[6]=i,n[7]=t,n[8]=s,n[9]=c,n[10]=l):l=n[10],l});$.displayName=Q.displayName;export{C as a,he as i,$ as n,T as o,pe as r,me as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n}from"./react-vendor-D61Uve5n.js";import{C as r,b as i,d as a,g as o,l as s,o as c,s as l,y as u}from"./useBaseQuery-yghQO052.js";import{n as d}from"./QueryClientProvider-CYXTUmYo.js";import{t as f}from"./useQuery-DWt09r77.js";import{b as p}from"./dist-D5vgS4RP.js";import{cr as m,ha as h,ni as g,oi as _,rt as v}from"./api-COO2LfdU.js";import{t as y}from"./query-keys-BwswkbMn.js";var b=class extends c{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||x(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=l({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),s.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function x(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var S=class extends r{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),u(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&a(t.mutationKey)!==a(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??x();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){s.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},C=e(n(),1);function w(e,t){let n=d(t),[r]=C.useState(()=>new S(n,e));C.useEffect(()=>{r.setOptions(e)},[r,e]);let a=C.useSyncExternalStore(C.useCallback(e=>r.subscribe(s.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),c=C.useCallback((e,t)=>{r.mutate(e,t).catch(o)},[r]);if(a.error&&i(r.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:c,mutateAsync:a.mutate}}var T=t(),E=p(`auth`);async function D(e){await _(`api/auth/request-code`,{email:e})}async function O(e,t){return _(`api/auth/verify`,{email:e,code:t})}async function k(e){try{await _(`api/auth/revoke`,{token:e})}catch(e){E.error(`Failed to revoke auth token:`,e)}}async function A(){try{return(await g(`api/auth/session`)).session??null}catch(e){return e instanceof Error&&e.message===`Sign in with the account that owns this Tarsk.`||E.error(`Failed to load auth session:`,e),null}}async function j(e){await _(`api/auth/session`,e)}async function M(){await _(`api/auth/logout`,{})}var N={session:null,isLoading:!0},P=new Set;function F(){for(let e of P)e()}function I(){return N}function L(e){return P.add(e),function(){P.delete(e)}}function R(){return typeof window<`u`&&h(window.location.hostname)}var z=null;function B(){return z||=A().then(e=>{N={session:e,isLoading:!1}}).catch(()=>{N={session:null,isLoading:!1}}).finally(()=>{F()}),z}function V(){let e=(0,T.c)(10),{session:t,isLoading:n}=(0,C.useSyncExternalStore)(L,I),r=d(),i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=[],e[0]=i):i=e[0],(0,C.useEffect)(H,i);let a;e[1]===r?a=e[2]:(a=async function(e){R()||await j(e),r.clear(),N={session:e,isLoading:!1},F()},e[1]=r,e[2]=a);let o=a,s;e[3]===r?s=e[4]:(s=async()=>{let e=N.session?.token;e&&await k(e),await M(),r.clear(),N={session:null,isLoading:!1},F()},e[3]=r,e[4]=s);let c=s,l;return e[5]!==n||e[6]!==o||e[7]!==c||e[8]!==t?(l={session:t,isLoading:n,login:o,logout:c},e[5]=n,e[6]=o,e[7]=c,e[8]=t,e[9]=l):l=e[9],l}function H(){B()}function U(){return y.account.settings()}function W(e){return e.invalidateQueries({queryKey:U()})}function G(e){return e.fetchQuery({queryKey:U(),queryFn:v,staleTime:0})}function K(){let e=(0,T.c)(1),{session:t,isLoading:n}=V(),r;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=h(window.location.hostname),e[0]=r):r=e[0],!n&&(t!==null||!r)}function q(){let e=(0,T.c)(3),t=K(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=U(),e[0]=n):n=e[0];let r;return e[1]===t?r=e[2]:(r={queryKey:n,queryFn:v,enabled:t},e[1]=t,e[2]=r),f(r)}function J(){let e=(0,T.c)(2),t=d(),n;return e[0]===t?n=e[1]:(n={mutationFn:Y,onSuccess:e=>{t.setQueryData(U(),e)}},e[0]=t,e[1]=n),w(n)}function Y(e){return m(e)}export{J as a,O as c,q as i,w as l,G as n,V as o,W as r,D as s,U as t,b as u};
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n}from"./react-vendor-D61Uve5n.js";import{C as r,b as i,d as a,g as o,l as s,o as c,s as l,y as u}from"./useBaseQuery-yghQO052.js";import{n as d}from"./QueryClientProvider-CYXTUmYo.js";import{t as f}from"./useQuery-DWt09r77.js";import{x as p}from"./dist-v_MvKS2-.js";import{lr as m,ma as h,ri as g,rt as _,si as v}from"./api-Cp9I7CxD.js";import{t as y}from"./query-keys-CcnonAAG.js";var b=class extends c{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||x(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){let t=()=>{this.#i({type:`continue`})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=l({fn:()=>this.options.mutationFn?this.options.mutationFn(e,n):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let r=this.state.status===`pending`,i=!this.#r.canStart();try{if(r)t();else{this.#i({type:`pending`,variables:e,isPaused:i}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,n);let t=await this.options.onMutate?.(e,n);t!==this.state.context&&this.#i({type:`pending`,context:t,variables:e,isPaused:i})}let a=await this.#r.start();return await this.#n.config.onSuccess?.(a,e,this.state.context,this,n),await this.options.onSuccess?.(a,e,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,e,this.state.context,n),this.#i({type:`success`,data:a}),a}catch(t){try{await this.#n.config.onError?.(t,e,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onError?.(t,e,this.state.context,n)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this,n)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,t,e,this.state.context,n)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:t}),t}finally{this.#n.runNext(this)}}#i(e){let t=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=t(this.state),s.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function x(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}var S=class extends r{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),u(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&a(t.mutationKey)!==a(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??x();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){s.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}},C=e(n(),1);function w(e,t){let n=d(t),[r]=C.useState(()=>new S(n,e));C.useEffect(()=>{r.setOptions(e)},[r,e]);let a=C.useSyncExternalStore(C.useCallback(e=>r.subscribe(s.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),c=C.useCallback((e,t)=>{r.mutate(e,t).catch(o)},[r]);if(a.error&&i(r.options.throwOnError,[a.error]))throw a.error;return{...a,mutate:c,mutateAsync:a.mutate}}var T=t(),E=p(`auth`);async function D(e){await v(`api/auth/request-code`,{email:e})}async function O(e,t){return v(`api/auth/verify`,{email:e,code:t})}async function k(e){try{await v(`api/auth/revoke`,{token:e})}catch(e){E.error(`Failed to revoke auth token:`,e)}}async function A(){try{return(await g(`api/auth/session`)).session??null}catch(e){return e instanceof Error&&e.message===`Sign in with the account that owns this Tarsk.`||E.error(`Failed to load auth session:`,e),null}}async function j(e){await v(`api/auth/session`,e)}async function M(){await v(`api/auth/logout`,{})}var N={session:null,isLoading:!0},P=new Set;function F(){for(let e of P)e()}function I(){return N}function L(e){return P.add(e),function(){P.delete(e)}}function R(){return typeof window<`u`&&h(window.location.hostname)}var z=null;function B(){return z||=A().then(e=>{N={session:e,isLoading:!1}}).catch(()=>{N={session:null,isLoading:!1}}).finally(()=>{F()}),z}function V(){let e=(0,T.c)(10),{session:t,isLoading:n}=(0,C.useSyncExternalStore)(L,I),r=d(),i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=[],e[0]=i):i=e[0],(0,C.useEffect)(H,i);let a;e[1]===r?a=e[2]:(a=async function(e){R()||await j(e),r.clear(),N={session:e,isLoading:!1},F()},e[1]=r,e[2]=a);let o=a,s;e[3]===r?s=e[4]:(s=async()=>{let e=N.session?.token;e&&await k(e),await M(),r.clear(),N={session:null,isLoading:!1},F()},e[3]=r,e[4]=s);let c=s,l;return e[5]!==n||e[6]!==o||e[7]!==c||e[8]!==t?(l={session:t,isLoading:n,login:o,logout:c},e[5]=n,e[6]=o,e[7]=c,e[8]=t,e[9]=l):l=e[9],l}function H(){B()}function U(){return y.account.settings()}function W(e){return e.invalidateQueries({queryKey:U()})}function G(e){return e.fetchQuery({queryKey:U(),queryFn:_,staleTime:0})}function K(){let e=(0,T.c)(1),{session:t,isLoading:n}=V(),r;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=h(window.location.hostname),e[0]=r):r=e[0],!n&&(t!==null||!r)}function q(){let e=(0,T.c)(3),t=K(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=U(),e[0]=n):n=e[0];let r;return e[1]===t?r=e[2]:(r={queryKey:n,queryFn:_,enabled:t},e[1]=t,e[2]=r),f(r)}function J(){let e=(0,T.c)(2),t=d(),n;return e[0]===t?n=e[1]:(n={mutationFn:Y,onSuccess:e=>{t.setQueryData(U(),e)}},e[0]=t,e[1]=n),w(n)}function Y(e){return m(e)}export{J as a,O as c,q as i,w as l,G as n,V as o,W as r,D as s,U as t,b as u};
@@ -1 +1 @@
1
- import{n as e}from"./react-vendor-D61Uve5n.js";import{n as t}from"./chat-dock-context-ymLoO90X.js";var n=e();function r(e){let{instanceId:t,panelId:n,windows:r,expandedWindowId:i,selectedWindowId:a,isLayoutExpanded:o}=e;if(o&&i!==t)return!1;let s=r.filter(e=>e.panelId===n).map(e=>e.id);return s.includes(t)?s.length===1?!0:s.includes(a)?a===t:i&&s.includes(i)?i===t:s[0]===t:!1}function i(e,i){let a=(0,n.c)(7),{windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}=t(),u;return a[0]!==s||a[1]!==e||a[2]!==l||a[3]!==i||a[4]!==c||a[5]!==o?(u=r({instanceId:e,panelId:i,windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}),a[0]=s,a[1]=e,a[2]=l,a[3]=i,a[4]=c,a[5]=o,a[6]=u):u=a[6],u}export{i as t};
1
+ import{n as e}from"./react-vendor-D61Uve5n.js";import{n as t}from"./chat-dock-context-DbiJNr3O.js";var n=e();function r(e){let{instanceId:t,panelId:n,windows:r,expandedWindowId:i,selectedWindowId:a,isLayoutExpanded:o}=e;if(o&&i!==t)return!1;let s=r.filter(e=>e.panelId===n).map(e=>e.id);return s.includes(t)?s.length===1?!0:s.includes(a)?a===t:i&&s.includes(i)?i===t:s[0]===t:!1}function i(e,i){let a=(0,n.c)(7),{windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}=t(),u;return a[0]!==s||a[1]!==e||a[2]!==l||a[3]!==i||a[4]!==c||a[5]!==o?(u=r({instanceId:e,panelId:i,windows:o,expandedWindowId:s,selectedWindowId:c,isLayoutExpanded:l}),a[0]=s,a[1]=e,a[2]=l,a[3]=i,a[4]=c,a[5]=o,a[6]=u):u=a[6],u}export{i as t};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{n as t,o as n}from"./react-vendor-D61Uve5n.js";var r=e(n(),1),i=t(),a=0,o=new Set;function s(){for(let e of o)e()}function c(){a+=1,a===1&&s()}function l(){a!==0&&(--a,!(a>0)&&s())}function u(){return a>0}function d(e){return o.add(e),function(){o.delete(e)}}function f(e){let t=(0,i.c)(3),n,a;t[0]===e?(n=t[1],a=t[2]):(n=()=>{if(e)return c(),function(){l()}},a=[e],t[0]=e,t[1]=n,t[2]=a),(0,r.useEffect)(n,a)}function p(e){let t=(0,i.c)(3),{open:n,defaultOpen:a,onOpenChange:o}=e,[s,c]=(0,r.useState)(a??!1);f(n??s);let l;return t[0]!==o||t[1]!==n?(l=function(e){n===void 0&&c(e),o?.(e)},t[0]=o,t[1]=n,t[2]=l):l=t[2],l}export{d as i,p as n,u as r,f as t};
@@ -1 +1 @@
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{an as o,s}from"./api-COO2LfdU.js";import{t as c}from"./utils-mYB1USG6.js";import{t as l}from"./check-skFQ1X72.js";import{t as u}from"./circle-alert-CC2eO3yt.js";import{t as d}from"./copy-bi9iX3xn.js";import{t as f}from"./external-link-Dcikmdm_.js";import{t as p}from"./loader-circle-CrqRIqdA.js";import{t as m}from"./button-Dp5XDZNR.js";import{ct as h,pr as g}from"./index-CalVAwXj.js";var _={darwin:`macOS`,win32:`Windows`,linux:`Linux`,unknown:`System`},v=t(),y=e(n(),1),b=r(),x=a(`app.git-setup-guide`);function S(e){let t=(0,v.c)(4),{version:n}=e,r,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,b.jsx)(l,{className:`h-5 w-5 text-brand flex-shrink-0 mt-0.5`}),a=(0,b.jsx)(`p`,{className:c(i.label,`text-brand`),children:`Git is installed`}),t[0]=r,t[1]=a):(r=t[0],a=t[1]);let o=n?`Detected Git ${n}. `:``,s;return t[2]===o?s=t[3]:(s=(0,b.jsxs)(h,{variant:`success`,className:`mb-0 flex items-start gap-3`,children:[r,(0,b.jsxs)(`div`,{children:[a,(0,b.jsxs)(`p`,{className:i.bodyMuted,children:[o,`You're all set to use Git features in Tarsk.`]})]})]}),t[2]=o,t[3]=s),s}function C(e){let t=(0,v.c)(27),{platform:n,plan:r,checking:a,onCheckAgain:o,className:s}=e,l;t[0]===s?l=t[1]:(l=c(`mb-0 flex items-start gap-3`,s),t[0]=s,t[1]=l);let d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,b.jsx)(u,{className:`h-5 w-5 text-yellow-600 flex-shrink-0 mt-0.5`}),t[2]=d):d=t[2];let f,g;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,b.jsx)(`p`,{className:i.label,children:`Git is not installed`}),g=c(i.bodyMuted,`mt-1`),t[3]=f,t[4]=g):(f=t[3],g=t[4]);let y=_[n],x;t[5]===y?x=t[6]:(x=(0,b.jsxs)(`p`,{className:g,children:[`Git is required for some features in Tarsk. Run the command below for`,` `,y,`, then check again.`]}),t[5]=y,t[6]=x);let S;t[7]===r?S=t[8]:(S=(0,b.jsx)(w,{plan:r}),t[7]=r,t[8]=S);let C;t[9]===a?C=t[10]:(C=a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p,{className:`h-4 w-4 animate-spin`}),`Checking...`]}):`Check again`,t[9]=a,t[10]=C);let T;t[11]!==a||t[12]!==o||t[13]!==C?(T=(0,b.jsx)(m,{variant:`outline`,size:`sm`,onClick:o,disabled:a,className:`gap-2`,children:C}),t[11]=a,t[12]=o,t[13]=C,t[14]=T):T=t[14];let E=r?.url??null,O;t[15]===E?O=t[16]:(O=(0,b.jsx)(D,{url:E}),t[15]=E,t[16]=O);let k;t[17]!==O||t[18]!==T?(k=(0,b.jsxs)(`div`,{className:`mt-3 flex items-center gap-3`,children:[T,O]}),t[17]=O,t[18]=T,t[19]=k):k=t[19];let A;t[20]!==k||t[21]!==x||t[22]!==S?(A=(0,b.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[f,x,S,k]}),t[20]=k,t[21]=x,t[22]=S,t[23]=A):A=t[23];let j;return t[24]!==l||t[25]!==A?(j=(0,b.jsxs)(h,{variant:`hint`,className:l,children:[d,A]}),t[24]=l,t[25]=A,t[26]=j):j=t[26],j}function w(e){let t=(0,v.c)(11),{plan:n}=e;if(!n)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=c(i.labelMuted,`mb-2`),t[0]=r):r=t[0];let a;t[1]===n.label?a=t[2]:(a=(0,b.jsxs)(`p`,{className:r,children:[`Install with `,n.label]}),t[1]=n.label,t[2]=a);let o;t[3]===n.command?o=t[4]:(o=n.command?(0,b.jsx)(E,{command:n.command}):(0,b.jsx)(`p`,{className:i.bodyMuted,children:`No install command was detected for your system — use the download link below.`}),t[3]=n.command,t[4]=o);let s;t[5]===n.notes?s=t[6]:(s=n.notes.map(T),t[5]=n.notes,t[6]=s);let l;return t[7]!==a||t[8]!==o||t[9]!==s?(l=(0,b.jsxs)(`div`,{className:`mt-3 rounded-lg border border-border bg-background p-3`,children:[a,o,s]}),t[7]=a,t[8]=o,t[9]=s,t[10]=l):l=t[10],l}function T(e){return(0,b.jsxs)(`p`,{className:c(i.caption,`mt-2 flex items-start gap-1.5`),children:[(0,b.jsx)(g,{className:`h-3 w-3 mt-0.5 flex-shrink-0`}),e]},e)}function E(e){let t=(0,v.c)(15),{command:n}=e,[r,i]=(0,y.useState)(!1),a;t[0]===n?a=t[1]:(a=async function(){try{await navigator.clipboard.writeText(n),i(!0),window.setTimeout(()=>i(!1),2e3)}catch(e){let t=e;x.error(`Failed to copy git install command:`,t)}},t[0]=n,t[1]=a);let o=a,s;t[2]===n?s=t[3]:(s=(0,b.jsx)(`code`,{className:`flex-1 min-w-0 break-all rounded-md bg-muted px-3 py-2 font-mono`,children:n}),t[2]=n,t[3]=s);let c;t[4]===o?c=t[5]:(c=()=>void o(),t[4]=o,t[5]=c);let u=r?`Copied`:`Copy command`,f;t[6]===r?f=t[7]:(f=r?(0,b.jsx)(l,{className:`h-4 w-4 text-brand`}):(0,b.jsx)(d,{className:`h-4 w-4`}),t[6]=r,t[7]=f);let p;t[8]!==c||t[9]!==u||t[10]!==f?(p=(0,b.jsx)(m,{variant:`ghost`,size:`icon-sm`,onClick:c,"aria-label":u,children:f}),t[8]=c,t[9]=u,t[10]=f,t[11]=p):p=t[11];let h;return t[12]!==s||t[13]!==p?(h=(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[s,p]}),t[12]=s,t[13]=p,t[14]=h):h=t[14],h}function D(e){let t=(0,v.c)(7),{url:n}=e;if(!n)return null;let r;t[0]===n?r=t[1]:(r=function(e){e.preventDefault(),o(n??``)},t[0]=n,t[1]=r);let a=r,s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=c(i.caption,`text-brand hover:underline inline-flex items-center gap-1`),t[2]=s):s=t[2];let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,b.jsx)(f,{className:`h-3 w-3`}),t[3]=l):l=t[3];let u;return t[4]!==a||t[5]!==n?(u=(0,b.jsxs)(`a`,{href:n,onClick:a,className:s,children:[`Download installer `,l]}),t[4]=a,t[5]=n,t[6]=u):u=t[6],u}var O=a(`app.use-git-check`),k=4e3;function A(e={}){let{enabled:t=!0,pollWhileMissing:n=!0}=e,[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)(!1),d=(0,y.useCallback)(async(e={})=>{if(!u.current){u.current=!0,e.silent||o(!0);try{let e=await s();i(e)}catch(e){O.error(`Failed to check git installation:`,e),i(e=>e??{gitInstalled:!1,version:null,platform:`unknown`,install:null})}finally{u.current=!1,e.silent||o(!1),l(!0)}}},[]),f=(0,y.useRef)(d);return(0,y.useEffect)(()=>{f.current=d},[d]),(0,y.useEffect)(()=>{t&&f.current()},[t]),(0,y.useEffect)(()=>{if(!t||!n||r?.gitInstalled!==!1)return;let e=window.setInterval(()=>{f.current({silent:!0})},k);return()=>{window.clearInterval(e)}},[t,n,r]),{gitInstalled:r?.gitInstalled??null,version:r?.version??null,platform:r?.platform??`unknown`,plan:r?.install??null,loading:a,hasChecked:c,check:d}}export{S as n,C as r,A as t};
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{U as i,x as a}from"./dist-v_MvKS2-.js";import{o,on as s}from"./api-Cp9I7CxD.js";import{t as c}from"./utils-CqsIXqSC.js";import{t as l}from"./check-skFQ1X72.js";import{t as u}from"./circle-alert-CC2eO3yt.js";import{t as d}from"./copy-bi9iX3xn.js";import{t as f}from"./external-link-Dcikmdm_.js";import{t as p}from"./loader-circle-CrqRIqdA.js";import{t as m}from"./button-DDaJhJP1.js";import{ar as h,it as g}from"./index-CcAwxnT5.js";var _={darwin:`macOS`,win32:`Windows`,linux:`Linux`,unknown:`System`},v=t(),y=e(n(),1),b=r(),x=a(`app.git-setup-guide`);function S(e){let t=(0,v.c)(4),{version:n}=e,r,a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,b.jsx)(l,{className:`h-5 w-5 text-brand flex-shrink-0 mt-0.5`}),a=(0,b.jsx)(`p`,{className:c(i.label,`text-brand`),children:`Git is installed`}),t[0]=r,t[1]=a):(r=t[0],a=t[1]);let o=n?`Detected Git ${n}. `:``,s;return t[2]===o?s=t[3]:(s=(0,b.jsxs)(g,{variant:`success`,className:`mb-0 flex items-start gap-3`,children:[r,(0,b.jsxs)(`div`,{children:[a,(0,b.jsxs)(`p`,{className:i.bodyMuted,children:[o,`You're all set to use Git features in Tarsk.`]})]})]}),t[2]=o,t[3]=s),s}function C(e){let t=(0,v.c)(27),{platform:n,plan:r,checking:a,onCheckAgain:o,className:s}=e,l;t[0]===s?l=t[1]:(l=c(`mb-0 flex items-start gap-3`,s),t[0]=s,t[1]=l);let d;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,b.jsx)(u,{className:`h-5 w-5 text-yellow-600 flex-shrink-0 mt-0.5`}),t[2]=d):d=t[2];let f,h;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,b.jsx)(`p`,{className:i.label,children:`Git is not installed`}),h=c(i.bodyMuted,`mt-1`),t[3]=f,t[4]=h):(f=t[3],h=t[4]);let y=_[n],x;t[5]===y?x=t[6]:(x=(0,b.jsxs)(`p`,{className:h,children:[`Git is required for some features in Tarsk. Run the command below for`,` `,y,`, then check again.`]}),t[5]=y,t[6]=x);let S;t[7]===r?S=t[8]:(S=(0,b.jsx)(w,{plan:r}),t[7]=r,t[8]=S);let C;t[9]===a?C=t[10]:(C=a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p,{className:`h-4 w-4 animate-spin`}),`Checking...`]}):`Check again`,t[9]=a,t[10]=C);let T;t[11]!==a||t[12]!==o||t[13]!==C?(T=(0,b.jsx)(m,{variant:`outline`,size:`sm`,onClick:o,disabled:a,className:`gap-2`,children:C}),t[11]=a,t[12]=o,t[13]=C,t[14]=T):T=t[14];let E=r?.url??null,O;t[15]===E?O=t[16]:(O=(0,b.jsx)(D,{url:E}),t[15]=E,t[16]=O);let k;t[17]!==O||t[18]!==T?(k=(0,b.jsxs)(`div`,{className:`mt-3 flex items-center gap-3`,children:[T,O]}),t[17]=O,t[18]=T,t[19]=k):k=t[19];let A;t[20]!==k||t[21]!==x||t[22]!==S?(A=(0,b.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[f,x,S,k]}),t[20]=k,t[21]=x,t[22]=S,t[23]=A):A=t[23];let j;return t[24]!==l||t[25]!==A?(j=(0,b.jsxs)(g,{variant:`hint`,className:l,children:[d,A]}),t[24]=l,t[25]=A,t[26]=j):j=t[26],j}function w(e){let t=(0,v.c)(11),{plan:n}=e;if(!n)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=c(i.labelMuted,`mb-2`),t[0]=r):r=t[0];let a;t[1]===n.label?a=t[2]:(a=(0,b.jsxs)(`p`,{className:r,children:[`Install with `,n.label]}),t[1]=n.label,t[2]=a);let o;t[3]===n.command?o=t[4]:(o=n.command?(0,b.jsx)(E,{command:n.command}):(0,b.jsx)(`p`,{className:i.bodyMuted,children:`No install command was detected for your system — use the download link below.`}),t[3]=n.command,t[4]=o);let s;t[5]===n.notes?s=t[6]:(s=n.notes.map(T),t[5]=n.notes,t[6]=s);let l;return t[7]!==a||t[8]!==o||t[9]!==s?(l=(0,b.jsxs)(`div`,{className:`mt-3 rounded-lg border border-border bg-background p-3`,children:[a,o,s]}),t[7]=a,t[8]=o,t[9]=s,t[10]=l):l=t[10],l}function T(e){return(0,b.jsxs)(`p`,{className:c(i.caption,`mt-2 flex items-start gap-1.5`),children:[(0,b.jsx)(h,{className:`h-3 w-3 mt-0.5 flex-shrink-0`}),e]},e)}function E(e){let t=(0,v.c)(15),{command:n}=e,[r,i]=(0,y.useState)(!1),a;t[0]===n?a=t[1]:(a=async function(){try{await navigator.clipboard.writeText(n),i(!0),window.setTimeout(()=>i(!1),2e3)}catch(e){let t=e;x.error(`Failed to copy git install command:`,t)}},t[0]=n,t[1]=a);let o=a,s;t[2]===n?s=t[3]:(s=(0,b.jsx)(`code`,{className:`flex-1 min-w-0 break-all rounded-md bg-muted px-3 py-2 font-mono`,children:n}),t[2]=n,t[3]=s);let c;t[4]===o?c=t[5]:(c=()=>void o(),t[4]=o,t[5]=c);let u=r?`Copied`:`Copy command`,f;t[6]===r?f=t[7]:(f=r?(0,b.jsx)(l,{className:`h-4 w-4 text-brand`}):(0,b.jsx)(d,{className:`h-4 w-4`}),t[6]=r,t[7]=f);let p;t[8]!==c||t[9]!==u||t[10]!==f?(p=(0,b.jsx)(m,{variant:`ghost`,size:`icon-sm`,onClick:c,"aria-label":u,children:f}),t[8]=c,t[9]=u,t[10]=f,t[11]=p):p=t[11];let h;return t[12]!==s||t[13]!==p?(h=(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[s,p]}),t[12]=s,t[13]=p,t[14]=h):h=t[14],h}function D(e){let t=(0,v.c)(7),{url:n}=e;if(!n)return null;let r;t[0]===n?r=t[1]:(r=function(e){e.preventDefault(),s(n??``)},t[0]=n,t[1]=r);let a=r,o;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=c(i.caption,`text-brand hover:underline inline-flex items-center gap-1`),t[2]=o):o=t[2];let l;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,b.jsx)(f,{className:`h-3 w-3`}),t[3]=l):l=t[3];let u;return t[4]!==a||t[5]!==n?(u=(0,b.jsxs)(`a`,{href:n,onClick:a,className:o,children:[`Download installer `,l]}),t[4]=a,t[5]=n,t[6]=u):u=t[6],u}var O=a(`app.use-git-check`),k=4e3;function A(e={}){let{enabled:t=!0,pollWhileMissing:n=!0}=e,[r,i]=(0,y.useState)(null),[a,s]=(0,y.useState)(!1),[c,l]=(0,y.useState)(!1),u=(0,y.useRef)(!1),d=(0,y.useCallback)(async(e={})=>{if(!u.current){u.current=!0,e.silent||s(!0);try{let e=await o();i(e)}catch(e){O.error(`Failed to check git installation:`,e),i(e=>e??{gitInstalled:!1,version:null,platform:`unknown`,install:null})}finally{u.current=!1,e.silent||s(!1),l(!0)}}},[]),f=(0,y.useRef)(d);return(0,y.useEffect)(()=>{f.current=d},[d]),(0,y.useEffect)(()=>{t&&f.current()},[t]),(0,y.useEffect)(()=>{if(!t||!n||r?.gitInstalled!==!1)return;let e=window.setInterval(()=>{f.current({silent:!0})},k);return()=>{window.clearInterval(e)}},[t,n,r]),{gitInstalled:r?.gitInstalled??null,version:r?.version??null,platform:r?.platform??`unknown`,plan:r?.install??null,loading:a,hasChecked:c,check:d}}export{S as n,C as r,A as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{o as t}from"./react-vendor-D61Uve5n.js";import{Z as n,n as r,r as i}from"./store-CxUwqrZ5.js";import{Dt as a,N as o,R as s,qt as c}from"./api-COO2LfdU.js";import{n as l}from"./explorer-tab-context-BwR8CM8l.js";import{t as u}from"./use-open-chat-dock-panel-w3hc5Vxn.js";import{t as d}from"./use-toast-CKgZ8YeP.js";import{n as f}from"./use-projects-BmhAMgxB.js";var p=e(t(),1),m=new Map;function h(e){let t=m.get(e);return t===void 0?null:t}function g(e,t){m.set(e,t)}function _(e){return m.has(e)}function v(e,t){return`installed-ai-files:${e}:${t??``}`}function y(e){return e===null?null:h(e)}function b(e,t,n){if(e===null)return[];let r=t(e.projectNodes),i=new Set(r.map(e=>e.path));for(let n of t(e.threadNodes))i.has(n.path)||r.push(n);return n&&(r=[...r].sort((e,t)=>e.name.localeCompare(t.name))),r}function x(e){let t=e.children??[];return[e.type,e.path,e.name,e.virtual?`v`:``,e.description??``,e.disableModelInvocation?`dmi`:``,t.map(x)].flat(2).join(`~`)}function S(e,t){return new Set(e.map(e=>`${e.path}${t}`))}async function C(e){try{return await c(e)}catch{return[]}}async function w(e,t){return{projectNodes:await a(e),threadNodes:t===null?[]:await C(t)}}function T(e){return`${e.projectNodes.map(x).join(`|`)}#${e.threadNodes.map(x).join(`|`)}`}function E(e,t){if(e.current!==null)return;let n=y(t);e.current=n===null?null:T(n)}function D({findItems:e,installedPathSuffix:t=``,explorerPathSuffix:a=``,sortByName:c=!1,removedToastTitle:m}){let h=r(),x=i(e=>e.projects),C=i(e=>e.selectedProjectId),D=i(e=>e.selectedThreadId),{handleSelectThread:O}=f(),{openChatDockPanel:k}=u(),{setPendingExplorerPath:A,triggerExplorerRefresh:j,setExplorerClearPath:M}=l(),N=C===null?null:v(C,D??null),[P,F]=(0,p.useState)(N),[I,L]=(0,p.useState)(()=>b(y(N),e,c)),[R,z]=(0,p.useState)(()=>N!==null&&!_(N)),[B,V]=(0,p.useState)(null),[H,U]=(0,p.useState)(!1),[W,G]=(0,p.useState)(()=>S(I,t)),K=(0,p.useRef)(null),q=(0,p.useRef)(0),J=(0,p.useCallback)(function(n){let r=b(n,e,c);L(r),G(S(r,t))},[e,t,c]),Y=(0,p.useCallback)(function(e,t){let n=T(t);n!==K.current&&(K.current=n,g(e,t),J(t))},[J]),X=(0,p.useCallback)(async()=>{if(!C){z(!1);return}let e=q.current+=1,t=v(C,D??null);E(K,t);try{let n=await w(C,D??null);e===q.current&&Y(t,n)}catch{e===q.current&&K.current===null&&J(null)}finally{e===q.current&&z(!1)}},[C,D,Y,J]);return(0,p.useLayoutEffect)(()=>{if(P===N)return;F(N),q.current+=1;let e=y(N);K.current=e===null?null:T(e),J(e),z(N!==null&&e===null)},[P,N,J]),(0,p.useEffect)(()=>{X()},[X]),{selectedProjectId:C,selectedThreadId:D,items:I,loading:R,deleteConfirm:B,setDeleteConfirm:V,deleting:H,installedFilePaths:W,setInstalledFilePaths:G,loadItems:X,handleDelete:(0,p.useCallback)(async e=>{if(!C)return;let n=e.name,r=e.path;U(!0);try{try{await o(C,r)}catch{if(D)await s(D,r);else throw Error(`No thread selected to delete from`)}M(r),j(),G(e=>{let n=new Set(e);return n.delete(`${r}${t}`),n}),d({title:m,description:n}),V(null),await X()}catch(e){d({title:`Error`,description:e instanceof Error?e.message:`Failed to remove item`,variant:`destructive`})}finally{U(!1)}},[C,D,X,j,M,t,m]),handleOpenInExplorer:(0,p.useCallback)(e=>{if(!C)return;let t=x.find(e=>e.projectId===C);if(t){if(h({type:n.OpenProjectPanel,projectId:C}),!t.threads.some(e=>e.threadId===D)){let e=t.threads.find(e=>e.isSelected)??t.threads[0]??null;e&&O(C,e.threadId)}A(`${e}${a}`),k(`explorer`)}},[C,D,x,h,O,A,k,a]),triggerExplorerRefresh:j}}export{g as i,_ as n,h as r,D as t};
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{o as t}from"./react-vendor-D61Uve5n.js";import{Z as n,n as r,r as i}from"./store-W78TGOIO.js";import{Dt as a,Jt as o,N as s,R as c}from"./api-Cp9I7CxD.js";import{t as l}from"./use-toast-CKgZ8YeP.js";import{n as u}from"./explorer-tab-context-BwR8CM8l.js";import{t as d}from"./use-open-chat-dock-panel-CXzpgxVs.js";import{n as f}from"./use-projects-B0xTjTaA.js";var p=e(t(),1),m=new Map;function h(e){let t=m.get(e);return t===void 0?null:t}function g(e,t){m.set(e,t)}function _(e){return m.has(e)}function v(e,t){return`installed-ai-files:${e}:${t??``}`}function y(e){return e===null?null:h(e)}function b(e,t,n){if(e===null)return[];let r=t(e.projectNodes),i=new Set(r.map(e=>e.path));for(let n of t(e.threadNodes))i.has(n.path)||r.push(n);return n&&(r=[...r].sort((e,t)=>e.name.localeCompare(t.name))),r}function x(e){let t=e.children??[];return[e.type,e.path,e.name,e.virtual?`v`:``,e.description??``,e.disableModelInvocation?`dmi`:``,t.map(x)].flat(2).join(`~`)}function S(e,t){return new Set(e.map(e=>`${e.path}${t}`))}async function C(e){try{return await o(e)}catch{return[]}}async function w(e,t){return{projectNodes:await a(e),threadNodes:t===null?[]:await C(t)}}function T(e){return`${e.projectNodes.map(x).join(`|`)}#${e.threadNodes.map(x).join(`|`)}`}function E(e,t){if(e.current!==null)return;let n=y(t);e.current=n===null?null:T(n)}function D({findItems:e,installedPathSuffix:t=``,explorerPathSuffix:a=``,sortByName:o=!1,removedToastTitle:m}){let h=r(),x=i(e=>e.projects),C=i(e=>e.selectedProjectId),D=i(e=>e.selectedThreadId),{handleSelectThread:O}=f(),{openChatDockPanel:k}=d(),{setPendingExplorerPath:A,triggerExplorerRefresh:j,setExplorerClearPath:M}=u(),N=C===null?null:v(C,D??null),[P,F]=(0,p.useState)(N),[I,L]=(0,p.useState)(()=>b(y(N),e,o)),[R,z]=(0,p.useState)(()=>N!==null&&!_(N)),[B,V]=(0,p.useState)(null),[H,U]=(0,p.useState)(!1),[W,G]=(0,p.useState)(()=>S(I,t)),K=(0,p.useRef)(null),q=(0,p.useRef)(0),J=(0,p.useCallback)(function(n){let r=b(n,e,o);L(r),G(S(r,t))},[e,t,o]),Y=(0,p.useCallback)(function(e,t){let n=T(t);n!==K.current&&(K.current=n,g(e,t),J(t))},[J]),X=(0,p.useCallback)(async()=>{if(!C){z(!1);return}let e=q.current+=1,t=v(C,D??null);E(K,t);try{let n=await w(C,D??null);e===q.current&&Y(t,n)}catch{e===q.current&&K.current===null&&J(null)}finally{e===q.current&&z(!1)}},[C,D,Y,J]);return(0,p.useLayoutEffect)(()=>{if(P===N)return;F(N),q.current+=1;let e=y(N);K.current=e===null?null:T(e),J(e),z(N!==null&&e===null)},[P,N,J]),(0,p.useEffect)(()=>{X()},[X]),{selectedProjectId:C,selectedThreadId:D,items:I,loading:R,deleteConfirm:B,setDeleteConfirm:V,deleting:H,installedFilePaths:W,setInstalledFilePaths:G,loadItems:X,handleDelete:(0,p.useCallback)(async e=>{if(!C)return;let n=e.name,r=e.path;U(!0);try{try{await s(C,r)}catch{if(D)await c(D,r);else throw Error(`No thread selected to delete from`)}M(r),j(),G(e=>{let n=new Set(e);return n.delete(`${r}${t}`),n}),l({title:m,description:n}),V(null),await X()}catch(e){l({title:`Error`,description:e instanceof Error?e.message:`Failed to remove item`,variant:`destructive`})}finally{U(!1)}},[C,D,X,j,M,t,m]),handleOpenInExplorer:(0,p.useCallback)(e=>{if(!C)return;let t=x.find(e=>e.projectId===C);if(t){if(h({type:n.OpenProjectPanel,projectId:C}),!t.threads.some(e=>e.threadId===D)){let e=t.threads.find(e=>e.isSelected)??t.threads[0]??null;e&&O(C,e.threadId)}A(`${e}${a}`),k(`explorer`)}},[C,D,x,h,O,A,k,a]),triggerExplorerRefresh:j}}export{g as i,_ as n,h as r,D as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./react-vendor-D61Uve5n.js";import{o as t,s as n}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import"./dist-v_MvKS2-.js";import{$ as r,et as i,r as a}from"./store-W78TGOIO.js";import{n as o}from"./chat-dock-context-DbiJNr3O.js";import{n as s}from"./explorer-tab-context-BwR8CM8l.js";import{n as c}from"./main-tab-context-Dsp4OYi9.js";var l=e(),u=`/review`,d=`/settings`;function f(e){return e.startsWith(`/settings`)||e===`/review`}function p(e,t,n){if(e!==void 0)return e;let r=t&&!n;return i(window.innerWidth)&&!r}function m(e,t,n,r){e===`explorer`?n.refreshExplorer():e===`review`?n.refreshReview(r):e===`tasks`&&t.tasksView&&n.setTasksView(t.tasksView)}function h(e,t,n,i,a,o,s,c,l,u){function d(e){if(u){c(e);return}o(e),s(e)}if(e===`chat`&&!a&&(!i||t))return d(r),r;if(e!==`chat`&&t){let t=n(e);if(t)return d(t.id),t.id}let f=l(e);return d(f),f}function g(){let e=(0,l.c)(18),{findWindowByPanel:r,addWindow:i,revealWindow:u,selectWindow:d,expandWindow:g,hasOpenWindows:v,isLayoutExpanded:y,isPrimaryChatOpen:b,setTasksView:x}=o(),{setActiveMainTab:S,triggerReviewRefresh:C}=c(),{triggerExplorerRefresh:w}=s(),T=a(_),E=n(),D=t(),O;e[0]!==i||e[1]!==g||e[2]!==r||e[3]!==v||e[4]!==y||e[5]!==b||e[6]!==D.pathname||e[7]!==E||e[8]!==u||e[9]!==d||e[10]!==T||e[11]!==S||e[12]!==x||e[13]!==w||e[14]!==C?(O=(e,t)=>{let n=t===void 0?{}:t,a=n.reuseExisting??!0,o=n.navigateToChat??!0;return S(`chat`),o&&f(D.pathname)&&E(`/`),m(e,n,{refreshExplorer:w,refreshReview:C,setTasksView:x},T),h(e,a,r,b,n.forceNewWindow??!1,d,u,g,i,p(n.expand,v,y))},e[0]=i,e[1]=g,e[2]=r,e[3]=v,e[4]=y,e[5]=b,e[6]=D.pathname,e[7]=E,e[8]=u,e[9]=d,e[10]=T,e[11]=S,e[12]=x,e[13]=w,e[14]=C,e[15]=O):O=e[15];let k=O,A;return e[16]===k?A=e[17]:(A={openChatDockPanel:k},e[16]=k,e[17]=A),A}function _(e){return e.selectedThreadId}export{f as i,u as n,d as r,g as t};
@@ -1,2 +1,2 @@
1
- import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{a as t,n,o as r,t as i}from"./react-vendor-D61Uve5n.js";import{o as a,s as o}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{V as s,b as c}from"./dist-D5vgS4RP.js";import{Z as l,i as u,n as d,r as f}from"./store-CxUwqrZ5.js";import{C as p,L as m,Ln as h,M as g,Mt as _,S as v,Yr as y,b,en as x,fn as S,fr as C,on as w,sn as T,x as E,y as D}from"./api-COO2LfdU.js";import{c as O,h as k,i as A,l as j,m as M,n as N,o as P,p as ee,r as te,t as ne}from"./create-project-workspace-C4tXAUWJ.js";import{d as re,s as F,t as I}from"./utils-mYB1USG6.js";import{t as ie}from"./check-skFQ1X72.js";import{t as L}from"./circle-alert-CC2eO3yt.js";import{t as ae}from"./loader-circle-CrqRIqdA.js";import{t as oe}from"./x-ByOPrz5I.js";import{r as se}from"./button-Dp5XDZNR.js";import{a as ce,c as le,d as ue,g as R,h as de,l as z,n as fe,o as pe,r as me,t as he,u as B}from"./dist-BTu7PDzc.js";import{o as ge}from"./tooltip-CJKJfu0l.js";import{t as _e}from"./dist-f54JuzFV.js";import{n as ve}from"./terminal-output-activity-D_FxlE-L.js";import{a as ye,c as be,i as xe,n as Se,o as Ce,r as we,s as Te,t as Ee}from"./alert-dialog-DVaEQlVa.js";import{n as De,t as Oe}from"./use-toast-CKgZ8YeP.js";import{r as ke}from"./suspense-resource-DzlMlIgR.js";import{t as Ae}from"./use-suspense-resource-uCX26gOk.js";var V=e(r(),1),H=n();function je(e,t,n){let r=n.find(e=>e.threadId!==t);return r?{type:l.SelectThread,projectId:e,threadId:r.threadId}:{type:l.SelectProject,projectId:e}}var Me=`root`,Ne=/^cd "([^"]+)" && (.+)$/;function Pe(e){let t=Ne.exec(e);return t?{script:e,command:t[2],folder:t[1],isRoot:!1}:{script:e,command:e,folder:Me,isRoot:!0}}function Fe(e){return e.map(e=>Pe(e))}function Ie(e){return Fe(e).filter(e=>e.isRoot).map(e=>e.script)}function Le(e,t){return Array.from(new Set([e,...t??[]]))}var U=i(),W=[`Removing threads`,`Deleting storage`,`Removing project`];function Re(e){let t=(0,H.c)(32),{progress:n,onRetry:r,onClose:i}=e;if(!n)return null;let{projectName:a,step:o,status:c,errorMessage:l}=n,u=W[Math.min(o,W.length-1)],d=c===`progressing`,f;t[0]!==d||t[1]!==i?(f=e=>{!e&&!d&&i()},t[0]=d,t[1]=i,t[2]=f):f=t[2];let p;t[3]===d?p=t[4]:(p=e=>{d&&e.preventDefault()},t[3]=d,t[4]=p);let m=c===`error`?`Delete Failed`:`Deleting Project`,h;t[5]===m?h=t[6]:(h=(0,U.jsx)(be,{children:m}),t[5]=m,t[6]=h);let g;t[7]!==l||t[8]!==u||t[9]!==a||t[10]!==c?(g=(0,U.jsx)(ye,{children:c===`error`?(0,U.jsxs)(`span`,{className:`text-destructive`,children:[`Failed at: `,u,`. `,l??`An unexpected error occurred.`]}):(0,U.jsxs)(U.Fragment,{children:[`Deleting `,(0,U.jsxs)(`span`,{className:`font-semibold text-foreground`,children:[`"`,a,`"`]}),`. This cannot be undone.`]})}),t[7]=l,t[8]=u,t[9]=a,t[10]=c,t[11]=g):g=t[11];let _;t[12]!==h||t[13]!==g?(_=(0,U.jsxs)(Te,{children:[h,g]}),t[12]=h,t[13]=g,t[14]=_):_=t[14];let v;t[15]!==c||t[16]!==o?(v=W.map((e,t)=>{let n=c===`progressing`&&t===o,r=c===`done`,i=c===`error`&&t===o;return(0,U.jsxs)(`div`,{className:I(`flex items-center gap-2 text-sm`,n&&`text-foreground`,r&&`text-muted-foreground`,t<o&&`text-muted-foreground`),children:[r||t<o?(0,U.jsx)(ie,{className:`h-4 w-4 text-emerald-500`}):i?(0,U.jsx)(L,{className:`h-4 w-4 text-destructive`}):(0,U.jsx)(ae,{className:I(`h-4 w-4 text-muted-foreground`,n&&`animate-spin text-foreground`)}),(0,U.jsxs)(`span`,{className:I(s.body,n&&`font-medium`),children:[e,`…`]})]},e)}),t[15]=c,t[16]=o,t[17]=v):v=t[17];let y;t[18]===v?y=t[19]:(y=(0,U.jsx)(`div`,{className:`flex flex-col gap-2 py-2`,children:v}),t[18]=v,t[19]=y);let b;t[20]!==i||t[21]!==r||t[22]!==c?(b=c===`error`&&(0,U.jsxs)(Ce,{children:[(0,U.jsx)(we,{onClick:i,children:`Close`}),(0,U.jsx)(Se,{onClick:r,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:`Retry`})]}),t[20]=i,t[21]=r,t[22]=c,t[23]=b):b=t[23];let x;t[24]!==p||t[25]!==_||t[26]!==y||t[27]!==b?(x=(0,U.jsxs)(xe,{onEscapeKeyDown:p,children:[_,y,b]}),t[24]=p,t[25]=_,t[26]=y,t[27]=b,t[28]=x):x=t[28];let S;return t[29]!==f||t[30]!==x?(S=(0,U.jsx)(Ee,{open:!0,onOpenChange:f,children:x}),t[29]=f,t[30]=x,t[31]=S):S=t[31],S}var ze=c(`app.use-projects.hook`);function Be(e,t){let n=e.find(e=>e.projectId===t);return{project:n,threadIds:n?.threads.map(e=>e.threadId)??[]}}function Ve(e,t,n){e({type:l.AddDeletingProject,projectId:t});for(let t of n)e({type:l.AddDeletingThread,threadId:t}),e({type:l.ClearChatInputDraft,threadId:t})}function He(e,t,n){e({type:l.RemoveDeletingProject,projectId:t});for(let t of n)e({type:l.RemoveDeletingThread,threadId:t})}function Ue(e){return e instanceof Error?e.message:`Failed to delete project`}async function We({dispatch:e,refreshProjects:t,navigate:n,location:r}){e({type:l.CloseProjectPanel}),e({type:l.SelectThread,threadId:``,projectId:``}),await t(),e({type:l.ConfigUpdated}),r.pathname.startsWith(`/settings/`)&&n(`/`)}async function Ge({projectId:e,projects:t,dispatch:n,refreshProjects:r,navigate:i,location:a,onProgress:o}){let{project:s,threadIds:c}=Be(t,e);Ve(n,e,c);let l=0;o?.({projectId:e,projectName:s?.name??``,step:l,status:`progressing`});let u=window.setInterval(()=>{l=Math.min(l+1,W.length-1),o?.({projectId:e,projectName:s?.name??``,step:l,status:`progressing`})},450);try{await g(e),window.clearInterval(u),await We({dispatch:n,refreshProjects:r,navigate:i,location:a}),o?.({projectId:e,projectName:s?.name??``,step:l,status:`done`})}catch(t){throw window.clearInterval(u),ze.error(`Failed to delete project:`,t),o?.({projectId:e,projectName:s?.name??``,step:l,status:`error`,errorMessage:Ue(t)}),t}finally{He(n,e,c)}}function Ke(e){return e instanceof Error?e.message:`Unknown error`}function qe(e,t){ve(),e({type:l.AppendTerminalLine,line:t})}async function Je(e,t,n,r,i){let a=Pe(t).folder;i({type:`system`,content:`Installing package ${n+1}/${r} in ${a}...`}),i({type:`output`,content:`📦 Installing dependencies in ${a}: ${t}`});let o=await C(e,t,!0);o&&await M(o,{onOutput(e){i({type:`output`,content:e})},onError(e){i({type:`error`,content:e})}})}function Ye(e,t){t||(e({type:`system`,content:``}),e({type:`system`,content:`---`}),e({type:`system`,content:``}))}async function Xe({projectId:e,scripts:t,dispatch:n,refreshProjects:r}){function i(e){qe(n,e)}try{n({type:l.SetCreatingProject,isCreating:!0}),n({type:l.SetTerminalOpen,open:!0}),i({type:`system`,content:`Installing dependencies for ${t.length} package${t.length===1?``:`s`}...`});for(let n=0;n<t.length;n++)await Je(e,t[n],n,t.length,i),Ye(i,n===t.length-1);i({type:`system`,content:`All dependencies installed successfully!`}),n({type:l.SetCreatingProject,isCreating:!1}),await r()}catch(e){n({type:l.SetCreatingProject,isCreating:!1}),ze.error(`Failed to run setup script:`,e),i({type:`error`,content:`Failed to run setup script: ${Ke(e)}`})}}async function Ze({pending:e,selectedScripts:t,setPendingSetupScriptConfirmation:n,dispatch:r,refreshProjects:i}){n(null),e&&t.length!==0&&await Xe({projectId:e.projectId,scripts:t,dispatch:r,refreshProjects:i})}function Qe(e){let t=(0,H.c)(14),{dispatch:n,projects:r,refreshProjects:i,navigate:a,location:o,pendingSetupScriptConfirmation:s,setPendingSetupScriptConfirmation:c}=e,l;t[0]!==n||t[1]!==o||t[2]!==a||t[3]!==r||t[4]!==i?(l=async(e,t)=>{await Ge({projectId:e,projects:r,dispatch:n,refreshProjects:i,navigate:a,location:o,onProgress:t})},t[0]=n,t[1]=o,t[2]=a,t[3]=r,t[4]=i,t[5]=l):l=t[5];let u=l,d;t[6]!==n||t[7]!==s||t[8]!==i||t[9]!==c?(d=async e=>{await Ze({pending:s,selectedScripts:e,setPendingSetupScriptConfirmation:c,dispatch:n,refreshProjects:i})},t[6]=n,t[7]=s,t[8]=i,t[9]=c,t[10]=d):d=t[10];let f=d,p;return t[11]!==u||t[12]!==f?(p={confirmDeleteProject:u,resolveSetupScriptConfirmation:f},t[11]=u,t[12]=f,t[13]=p):p=t[13],p}function $e(e){let t=(0,H.c)(32),{consumeProjectStream:n,activeCreationControllerRef:r,projects:i,dispatch:a,toast:o,refreshProjects:s,onThreadCreateStart:c}=e,l;t[0]===n?l=t[1]:(l=async(e,t)=>{let r=e.split(`/`).pop()?.replace(`.git`,``)??`project`;await n({apiCall:n=>E(e,t,n),initialMessage:`Cloning repository: ${e}...`,optimisticProjectName:r,gitUrl:e,mode:`clone`,includeThreadPath:!0,handleSetupScript:!0,logTag:`create project`,catchErrorPrefix:`Failed to create project`})},t[0]=n,t[1]=l);let u=l,d;t[2]===r?d=t[3]:(d=()=>{r.current?.abort(),r.current=null},t[2]=r,t[3]=d);let f=d,m;t[4]===n?m=t[5]:(m=async(e,t,r)=>{await n({apiCall:n=>p(e,t,r,n),initialMessage:`Creating app "${e}"...`,optimisticProjectName:e,mode:`webapp`,handleSetupScript:!1,logTag:`create web app`,catchErrorPrefix:`Failed to create web app`})},t[4]=n,t[5]=m);let h=m,g;t[6]===n?g=t[7]:(g=async e=>{await n({apiCall:t=>b(e,t),initialMessage:`Creating folder "${e}"...`,optimisticProjectName:e,mode:`folder`,handleSetupScript:!1,logTag:`create folder`,catchErrorPrefix:`Failed to create folder`})},t[6]=n,t[7]=g);let _=g,y;t[8]===n?y=t[9]:(y=async e=>{await n({apiCall:t=>D(e,t),initialMessage:`Creating bot "${e}"...`,optimisticProjectName:e,mode:`folder`,projectType:`bot`,handleSetupScript:!1,logTag:`create bot`,catchErrorPrefix:`Failed to create bot`})},t[8]=n,t[9]=y);let x=y,S;t[10]===n?S=t[11]:(S=async(e,t,r)=>{let i=t.replace(/\.zip$/i,``)||`project`;await n({apiCall:n=>v(e,t,r,n),initialMessage:r?`Replacing project from "${t}"...`:`Creating project from "${t}"...`,optimisticProjectName:i,mode:`zip`,handleSetupScript:!1,logTag:`create project from zip`,catchErrorPrefix:`Failed to create project from zip`})},t[10]=n,t[11]=S);let C=S,O;t[12]!==a||t[13]!==c||t[14]!==i||t[15]!==s||t[16]!==o?(O=async(e,t,n)=>ne({projectId:e,title:t,project:i.find(t=>t.projectId===e),dispatch:a,toast:o,refreshProjects:s,onThreadCreateStart:c,sourceThreadId:n?.sourceThreadId,remoteMachineId:n?.remoteMachineId}),t[12]=a,t[13]=c,t[14]=i,t[15]=s,t[16]=o,t[17]=O):O=t[17];let k=O,A;t[18]===n?A=t[19]:(A=async()=>{await n({apiCall:w,initialMessage:`Opening folder...`,optimisticProjectName:`Opening folder...`,mode:`folder`,handleSetupScript:!0,logTag:`open folder`,catchErrorPrefix:`Failed to open folder`})},t[18]=n,t[19]=A);let j=A,M;t[20]===n?M=t[21]:(M=async e=>{let t=e.split(/[/\\]/).filter(Boolean).pop()??`project`;await n({apiCall:t=>T(e,t),initialMessage:`Opening folder: ${e}...`,optimisticProjectName:t,mode:`folder`,handleSetupScript:!0,logTag:`open path`,catchErrorPrefix:`Failed to open folder path`})},t[20]=n,t[21]=M);let N=M,P;return t[22]!==f||t[23]!==x||t[24]!==_||t[25]!==u||t[26]!==k||t[27]!==h||t[28]!==C||t[29]!==j||t[30]!==N?(P={handleCreateProject:u,cancelProjectCreation:f,handleCreateWebApp:h,handleCreateFolder:_,handleCreateBot:x,handleCreateZip:C,handleCreateThread:k,handleOpenFolder:j,handleOpenPath:N},t[22]=f,t[23]=x,t[24]=_,t[25]=u,t[26]=k,t[27]=h,t[28]=C,t[29]=j,t[30]=N,t[31]=P):P=t[31],P}var et=e(t(),1),G=`ToastProvider`,[K,tt,nt]=_e(`Toast`),[rt,it]=de(`Toast`,[nt]),[at,q]=rt(G),ot=e=>{let{__scopeToast:t,label:n=`Notification`,duration:r=5e3,swipeDirection:i=`right`,swipeThreshold:a=50,children:o}=e,[s,c]=V.useState(null),[l,u]=V.useState(0),d=V.useRef(!1),f=V.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${G}\`. Expected non-empty \`string\`.`),(0,U.jsx)(K.Provider,{scope:t,children:(0,U.jsx)(at,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:a,toastCount:l,viewport:s,onViewportChange:c,onToastAdd:V.useCallback(()=>u(e=>e+1),[]),onToastRemove:V.useCallback(()=>u(e=>e-1),[]),isFocusedToastEscapeKeyDownRef:d,isClosePausedRef:f,children:o})})};ot.displayName=G;var st=`ToastViewport`,ct=[`F8`],J=`toast.viewportPause`,Y=`toast.viewportResume`,lt=V.forwardRef((e,t)=>{let{__scopeToast:n,hotkey:r=ct,label:i=`Notifications ({hotkey})`,...a}=e,o=q(st,n),s=tt(n),c=V.useRef(null),l=V.useRef(null),u=V.useRef(null),d=V.useRef(null),f=F(t,d,o.onViewportChange),p=r.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),m=o.toastCount>0;V.useEffect(()=>{let e=e=>{r.length!==0&&r.every(t=>e[t]||e.code===t)&&d.current?.focus()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]),V.useEffect(()=>{let e=c.current,t=d.current;if(m&&e&&t){let n=()=>{if(!o.isClosePausedRef.current){let e=new CustomEvent(J);t.dispatchEvent(e),o.isClosePausedRef.current=!0}},r=()=>{if(o.isClosePausedRef.current){let e=new CustomEvent(Y);t.dispatchEvent(e),o.isClosePausedRef.current=!1}},i=t=>{e.contains(t.relatedTarget)||r()},a=()=>{e.contains(document.activeElement)||r()};return e.addEventListener(`focusin`,n),e.addEventListener(`focusout`,i),e.addEventListener(`pointermove`,n),e.addEventListener(`pointerleave`,a),window.addEventListener(`blur`,n),window.addEventListener(`focus`,r),()=>{e.removeEventListener(`focusin`,n),e.removeEventListener(`focusout`,i),e.removeEventListener(`pointermove`,n),e.removeEventListener(`pointerleave`,a),window.removeEventListener(`blur`,n),window.removeEventListener(`focus`,r)}}},[m,o.isClosePausedRef]);let h=V.useCallback(({tabbingDirection:e})=>{let t=s().map(t=>{let n=t.ref.current,r=[n,...Pt(n)];return e===`forwards`?r:r.reverse()});return(e===`forwards`?t.reverse():t).flat()},[s]);return V.useEffect(()=>{let e=d.current;if(e){let t=t=>{let n=t.altKey||t.ctrlKey||t.metaKey;if(t.key===`Tab`&&!n){let n=document.activeElement,r=t.shiftKey;if(t.target===e&&r){l.current?.focus();return}let i=h({tabbingDirection:r?`backwards`:`forwards`}),a=i.findIndex(e=>e===n);Ft(i.slice(a+1))?t.preventDefault():r?l.current?.focus():u.current?.focus()}};return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)}},[s,h]),(0,U.jsxs)(pe,{ref:c,role:`region`,"aria-label":i.replace(`{hotkey}`,p),tabIndex:-1,style:{pointerEvents:m?void 0:`none`},children:[m&&(0,U.jsx)(dt,{ref:l,onFocusFromOutsideViewport:()=>{Ft(h({tabbingDirection:`forwards`}))}}),(0,U.jsx)(K.Slot,{scope:n,children:(0,U.jsx)(B.ol,{tabIndex:-1,...a,ref:f})}),m&&(0,U.jsx)(dt,{ref:u,onFocusFromOutsideViewport:()=>{Ft(h({tabbingDirection:`backwards`}))}})]})});lt.displayName=st;var ut=`ToastFocusProxy`,dt=V.forwardRef((e,t)=>{let{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,a=q(ut,n);return(0,U.jsx)(ge,{tabIndex:0,...i,ref:t,style:{position:`fixed`},onFocus:e=>{let t=e.relatedTarget;a.viewport?.contains(t)||r()}})});dt.displayName=ut;var X=`Toast`,ft=`toast.swipeStart`,pt=`toast.swipeMove`,mt=`toast.swipeCancel`,ht=`toast.swipeEnd`,gt=V.forwardRef((e,t)=>{let{forceMount:n,open:r,defaultOpen:i,onOpenChange:a,...o}=e,[s,c]=he({prop:r,defaultProp:i??!0,onChange:a,caller:X});return(0,U.jsx)(fe,{present:n||s,children:(0,U.jsx)(yt,{open:s,...o,ref:t,onClose:()=>c(!1),onPause:z(e.onPause),onResume:z(e.onResume),onSwipeStart:R(e.onSwipeStart,e=>{e.currentTarget.setAttribute(`data-swipe`,`start`)}),onSwipeMove:R(e.onSwipeMove,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`move`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-y`,`${n}px`)}),onSwipeCancel:R(e.onSwipeCancel,e=>{e.currentTarget.setAttribute(`data-swipe`,`cancel`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-y`)}),onSwipeEnd:R(e.onSwipeEnd,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`end`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-y`,`${n}px`),c(!1)})})})});gt.displayName=X;var[_t,vt]=rt(X,{onClose(){}}),yt=V.forwardRef((e,t)=>{let{__scopeToast:n,type:r=`foreground`,duration:i,open:a,onClose:o,onEscapeKeyDown:s,onPause:c,onResume:l,onSwipeStart:u,onSwipeMove:d,onSwipeCancel:f,onSwipeEnd:p,...m}=e,h=q(X,n),[g,_]=V.useState(null),v=F(t,e=>_(e)),y=V.useRef(null),b=V.useRef(null),x=i||h.duration,S=V.useRef(0),C=V.useRef(x),w=V.useRef(0),{onToastAdd:T,onToastRemove:E}=h,D=z(()=>{g?.contains(document.activeElement)&&h.viewport?.focus(),o()}),O=V.useCallback(e=>{e&&e!==1/0&&(window.clearTimeout(w.current),S.current=new Date().getTime(),w.current=window.setTimeout(D,e))},[D]);V.useEffect(()=>{let e=h.viewport;if(e){let t=()=>{O(C.current),l?.()},n=()=>{let e=new Date().getTime()-S.current;C.current-=e,window.clearTimeout(w.current),c?.()};return e.addEventListener(J,n),e.addEventListener(Y,t),()=>{e.removeEventListener(J,n),e.removeEventListener(Y,t)}}},[h.viewport,x,c,l,O]),V.useEffect(()=>{a&&!h.isClosePausedRef.current&&O(x)},[a,x,h.isClosePausedRef,O]),V.useEffect(()=>(T(),()=>E()),[T,E]);let k=V.useMemo(()=>g?At(g):null,[g]);return h.viewport?(0,U.jsxs)(U.Fragment,{children:[k&&(0,U.jsx)(bt,{__scopeToast:n,role:`status`,"aria-live":r===`foreground`?`assertive`:`polite`,children:k}),(0,U.jsx)(_t,{scope:n,onClose:D,children:et.createPortal((0,U.jsx)(K.ItemSlot,{scope:n,children:(0,U.jsx)(le,{asChild:!0,onEscapeKeyDown:R(s,()=>{h.isFocusedToastEscapeKeyDownRef.current||D(),h.isFocusedToastEscapeKeyDownRef.current=!1}),children:(0,U.jsx)(B.li,{tabIndex:0,"data-state":a?`open`:`closed`,"data-swipe-direction":h.swipeDirection,...m,ref:v,style:{userSelect:`none`,touchAction:`none`,...e.style},onKeyDown:R(e.onKeyDown,e=>{e.key===`Escape`&&(s?.(e.nativeEvent),e.nativeEvent.defaultPrevented||(h.isFocusedToastEscapeKeyDownRef.current=!0,D()))}),onPointerDown:R(e.onPointerDown,e=>{e.button===0&&(y.current={x:e.clientX,y:e.clientY})}),onPointerMove:R(e.onPointerMove,e=>{if(!y.current)return;let t=e.clientX-y.current.x,n=e.clientY-y.current.y,r=!!b.current,i=[`left`,`right`].includes(h.swipeDirection),a=[`left`,`up`].includes(h.swipeDirection)?Math.min:Math.max,o=i?a(0,t):0,s=i?0:a(0,n),c=e.pointerType===`touch`?10:2,l={x:o,y:s},f={originalEvent:e,delta:l};r?(b.current=l,Z(pt,d,f,{discrete:!1})):jt(l,h.swipeDirection,c)?(b.current=l,Z(ft,u,f,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>c||Math.abs(n)>c)&&(y.current=null)}),onPointerUp:R(e.onPointerUp,e=>{let t=b.current,n=e.target;if(n.hasPointerCapture(e.pointerId)&&n.releasePointerCapture(e.pointerId),b.current=null,y.current=null,t){let n=e.currentTarget,r={originalEvent:e,delta:t};jt(t,h.swipeDirection,h.swipeThreshold)?Z(ht,p,r,{discrete:!0}):Z(mt,f,r,{discrete:!0}),n.addEventListener(`click`,e=>e.preventDefault(),{once:!0})}})})})}),h.viewport)})]}):null}),bt=e=>{let{__scopeToast:t,children:n,...r}=e,i=q(X,t),[a,o]=V.useState(!1),[s,c]=V.useState(!1);return Mt(()=>o(!0)),V.useEffect(()=>{let e=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(e)},[]),s?null:(0,U.jsx)(me,{asChild:!0,children:(0,U.jsx)(ge,{...r,children:a&&(0,U.jsxs)(U.Fragment,{children:[i.label,` `,n]})})})},xt=`ToastTitle`,St=V.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e;return(0,U.jsx)(B.div,{...r,ref:t})});St.displayName=xt;var Ct=`ToastDescription`,wt=V.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e;return(0,U.jsx)(B.div,{...r,ref:t})});wt.displayName=Ct;var Tt=`ToastAction`,Et=V.forwardRef((e,t)=>{let{altText:n,...r}=e;return n.trim()?(0,U.jsx)(kt,{altText:n,asChild:!0,children:(0,U.jsx)(Ot,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${Tt}\`. Expected non-empty \`string\`.`),null)});Et.displayName=Tt;var Dt=`ToastClose`,Ot=V.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e,i=vt(Dt,n);return(0,U.jsx)(kt,{asChild:!0,children:(0,U.jsx)(B.button,{type:`button`,...r,ref:t,onClick:R(e.onClick,i.onClose)})})});Ot.displayName=Dt;var kt=V.forwardRef((e,t)=>{let{__scopeToast:n,altText:r,...i}=e;return(0,U.jsx)(B.div,{"data-radix-toast-announce-exclude":``,"data-radix-toast-announce-alt":r||void 0,...i,ref:t})});function At(e){let t=[];return Array.from(e.childNodes).forEach(e=>{if(e.nodeType===e.TEXT_NODE&&e.textContent&&t.push(e.textContent),Nt(e)){let n=e.ariaHidden||e.hidden||e.style.display===`none`,r=e.dataset.radixToastAnnounceExclude===``;if(!n){if(r){let n=e.dataset.radixToastAnnounceAlt;n&&t.push(n)}else t.push(...At(e))}}}),t}function Z(e,t,n,{discrete:r}){let i=n.originalEvent.currentTarget,a=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?ue(i,a):i.dispatchEvent(a)}var jt=(e,t,n=0)=>{let r=Math.abs(e.x),i=Math.abs(e.y),a=r>i;return t===`left`||t===`right`?a&&r>n:!a&&i>n};function Mt(e=()=>{}){let t=z(e);ce(()=>{let e=0,n=0;return e=window.requestAnimationFrame(()=>n=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(n)}},[t])}function Nt(e){return e.nodeType===e.ELEMENT_NODE}function Pt(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Ft(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}var It=ot,Lt=lt,Rt=gt,zt=St,Bt=wt,Vt=Et,Ht=Ot,Ut=It,Wt=V.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 a;n[3]===r?a=n[4]:(a=I(`fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(Lt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Wt.displayName=Lt.displayName;var Gt=se(`group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full`,{variants:{variant:{default:`border bg-background text-foreground`,destructive:`destructive group border-destructive bg-destructive text-destructive-foreground`}},defaultVariants:{variant:`default`}}),Kt=V.forwardRef((e,t)=>{let n=(0,H.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,variant:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]!==r||n[5]!==a?(o=I(Gt({variant:a}),r),n[4]=r,n[5]=a,n[6]=o):o=n[6];let s;return n[7]!==i||n[8]!==t||n[9]!==o?(s=(0,U.jsx)(Rt,{ref:t,className:o,...i}),n[7]=i,n[8]=t,n[9]=o,n[10]=s):s=n[10],s});Kt.displayName=Rt.displayName;var qt=V.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 a;n[3]===r?a=n[4]:(a=I(`inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive`,s.body,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(Vt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});qt.displayName=Vt.displayName;var Jt=V.forwardRef((e,t)=>{let n=(0,H.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 a;n[3]===r?a=n[4]:(a=I(`absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,U.jsx)(oe,{className:`h-4 w-4`}),n[5]=o):o=n[5];let s;return n[6]!==i||n[7]!==t||n[8]!==a?(s=(0,U.jsx)(Ht,{ref:t,className:a,"toast-close":``,...i,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=s):s=n[9],s});Jt.displayName=Ht.displayName;var Yt=V.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 a;n[3]===r?a=n[4]:(a=I(s.dialogTitle,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(zt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Yt.displayName=zt.displayName;var Xt=V.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 a;n[3]===r?a=n[4]:(a=I(s.body,`opacity-90 text-muted-foreground group-[.destructive]:text-destructive-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(Bt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Xt.displayName=Bt.displayName;function Zt(e){return(e?.match(/Removing (.+?)\.\.\./))?.[1]?.trim()||void 0}function Qt(e,t){let n=Zt(t),r=e.trim().toLowerCase();return y(e)&&n?{summary:`The connection dropped while Tarsk was deleting files on disk.`,cause:`Removing a large folder can take longer than the browser keeps the progress stream open. WebKit reports this as "Load failed" even though deletion may still be running or may already have finished on the server.`,guidance:[`Refresh the project list and check whether the thread is gone.`,`If the thread is still listed, try deleting again or remove the folder manually: ${n}`],removingPath:n}:y(e)?{summary:`The connection to Tarsk was lost during deletion.`,cause:`The progress stream closed before the server reported completion. This is usually a browser or network timeout, not a message from the delete operation itself.`,guidance:[`Refresh the project list and check whether the thread was removed.`,`Try deleting the thread again if it is still listed.`]}:r.includes(`not found`)?{summary:`Tarsk could not find that thread.`,cause:`The thread may have already been deleted in another window or by a previous attempt.`,guidance:[`Refresh the project list.`,`If the thread is gone, no further action is needed.`]}:r.includes(`failed to remove`)||r.includes(`eperm`)||r.includes(`ebusy`)?{summary:`Tarsk could not remove the thread folder from disk.`,cause:e,guidance:[n?`Close any apps using files in ${n}, then try again.`:`Close any apps using files in the thread folder, then try again.`,`If deletion keeps failing, remove the folder manually and refresh the project list.`],removingPath:n}:{summary:e||`Thread deletion failed for an unknown reason.`,cause:`See the progress output below for where deletion stopped.`,guidance:[`Try deleting the thread again.`,`If the problem persists, check Settings > Logs for details.`],removingPath:n}}function $t(e,t){return[`Thread deletion failed (${e})`,t.summary,`Cause: ${t.cause}`,`What to do: ${t.guidance.join(` `)}`].join(`
2
- `)}function en(e){return typeof e==`string`&&e.trim().length>0}function Q(e,t){let n=e[t];return en(n)?n:void 0}function tn(e,t){let n=Q(e,`stdout`);n!==void 0&&(t.stdout=n);let r=Q(e,`stderr`);r!==void 0&&(t.stderr=r)}function nn(e,t){let n=e.error;if(en(n)){t.details=n;return}if(!n||typeof n!=`object`)return;let r=n,i=Q(r,`message`);if(i!==void 0&&(t.details=i),t.stdout===void 0){let e=Q(r,`stdout`);e!==void 0&&(t.stdout=e)}if(t.stderr===void 0){let e=Q(r,`stderr`);e!==void 0&&(t.stderr=e)}}function rn(e){if(!e||typeof e!=`object`)return{};let t=e,n={};return tn(t,n),en(t.details)?n.details=t.details:nn(t,n),n}function an(e,t,n){let r=crypto.randomUUID(),i=n.message.trim()||`Unknown error`,a=Qt(i,n.progressOutput),o=$t(r,a),s={errorId:r,message:i,summary:a.summary,cause:a.cause,guidance:a.guidance,removingPath:a.removingPath,projectId:n.projectId,threadId:n.threadId,threadTitle:n.threadTitle,output:n.progressOutput,stdout:n.stdout,stderr:n.stderr,details:n.details,...n.cause===void 0?{}:{rawError:n.cause}};return e.error(o,s),S({level:`ERROR`,context:`app.use-projects.hook`,message:o,data:s}),Oe({variant:`destructive`,title:`Failed to delete thread`,description:`Error ID: ${r}\n${a.summary}`,action:(0,U.jsx)(qt,{altText:`Go to Logs`,onClick:()=>{t(`/settings/logs?q=${encodeURIComponent(r)}`)},children:`Go to Logs`})}),r}var on=150,$=c(`app.use-projects.hook`),sn=0;function cn(){let e=Promise.resolve(),t=new Map;function n(n,r,i){let a=t.get(r);if(a)return a;i.reserve(r);let o=(async()=>{let a=e,o=()=>void 0;e=new Promise(e=>{o=e}),await a;try{return await i.deleteThread(n,r)}finally{t.delete(r),i.release(r),o()}})();return t.set(r,o),o}return{runQueuedDeletion:n}}var ln=cn();function un(){let e=(0,H.c)(20),t=d(),n=f(mn),r=f(pn),i=f(fn),a,o;e[0]===i?(a=e[1],o=e[2]):(a=()=>{i>0&&x()},o=[i],e[0]=i,e[1]=a,e[2]=o),(0,V.useLayoutEffect)(a,o);let s=Ae(`projects:bootstrap:${i}`,_),c=(0,V.useRef)(!1),u;e[3]!==s.cloneRootPath||e[4]!==s.projects||e[5]!==t?(u=()=>{t({type:l.SetProjects,projects:s.projects,cloneRootPath:s.cloneRootPath}),t({type:l.SetProjectsLoading,projectsLoading:!1}),k(t)},e[3]=s.cloneRootPath,e[4]=s.projects,e[5]=t,e[6]=u):u=e[6];let p;e[7]!==s||e[8]!==t?(p=[s,t],e[7]=s,e[8]=t,e[9]=p):p=e[9],(0,V.useLayoutEffect)(u,p);let m;e[10]!==s.projects||e[11]!==t||e[12]!==r||e[13]!==n?(m=()=>{if(!c.current){if(n||r){c.current=!0;return}for(let e of s.projects){let n=e.threads.find(dn);if(n){t({type:l.SelectThread,threadId:n.threadId,projectId:e.projectId}),t({type:l.OpenProjectPanel,projectId:e.projectId}),c.current=!0;break}}}},e[10]=s.projects,e[11]=t,e[12]=r,e[13]=n,e[14]=m):m=e[14];let h;return e[15]!==s||e[16]!==t||e[17]!==r||e[18]!==n?(h=[s,t,n,r],e[15]=s,e[16]=t,e[17]=r,e[18]=n,e[19]=h):h=e[19],(0,V.useLayoutEffect)(m,h),null}function dn(e){return e.isSelected}function fn(e){return e.configUpdatedAt}function pn(e){return e.selectedProjectId}function mn(e){return e.selectedThreadId}async function hn(e,t){let{dispatch:n,toast:r,refreshProjects:i,onProjectCreated:a,setPendingSetupScriptConfirmation:o,activeCreationControllerRef:s}=t;n({type:l.SetCreatingProject,isCreating:!0});let c=new AbortController;s.current=c;let u={current:null},d=``,f=!1,p=[],m=null;function h(){if(m&&=(clearTimeout(m),null),p.length===0)return;let e=p.join(``);p.length=0;let t=u.current;t&&N(n,t.toolCallId,t.threadId,e)}function g(e){if(!e)return;let t=`${e}\n`;d+=t,p.push(t),m||=setTimeout(h,on)}let v=null,y=!1,b=null,S=null;function C(t,r){y=!0,b=t,S=r,n({type:l.AddCreatingProject,projectId:t,threadId:r,projectName:e.optimisticProjectName,gitUrl:e.gitUrl??``,projectType:e.projectType}),n({type:l.AddProcessingThread,threadId:r}),a?.(t);let i=te({mode:e.mode,threadId:r,projectId:t,projectName:e.optimisticProjectName});u.current=i,O(n,i,`${e.initialMessage}\n`)}function w(){y&&b&&(n({type:l.RemoveCreatingProject,projectId:b}),S&&n({type:l.RemoveProcessingThread,threadId:S}))}function T(e){!y&&typeof e.threadId==`string`&&typeof e.projectId==`string`&&C(e.projectId,e.threadId),g(typeof e.message==`string`?e.message:``)}function E(t){f=!0;let n=t.project;if(n){if(v=n.id,g(`Project created successfully at: ${e.includeThreadPath&&n.threads&&n.threads.length>0?`${n.path}/${n.threads[0]}`:n.path}`),u.current&&e.mode===`folder`){let t=n.path.split(/[/\\]/).filter(Boolean).pop();t&&t!==e.optimisticProjectName&&(u.current={...u.current,projectName:t})}e.handleSetupScript&&typeof t.suggestedSetupScript==`string`&&o({projectId:n.id,scripts:Le(t.suggestedSetupScript,n.pendingSetupScripts)})}}function D(e){let t=typeof e.message==`string`?e.message:`Unknown error`;w(),g(`Error: ${t}`),u.current||r({title:`Project Creation Failed`,description:t,variant:`destructive`})}function k(t){if(!t||typeof t!=`object`)return;let r=t;try{if(r.type===`progress`)T(r);else if(r.type===`complete`)n({type:l.SetGitAuthRequest,request:null}),E(r);else if(r.type===`error`)n({type:l.SetGitAuthRequest,request:null}),D(r);else if(r.type===`auth_required`){let e=r.auth;e&&n({type:l.SetGitAuthRequest,request:e})}}catch(t){$.error(`Failed to parse ${e.logTag} event`,t)}}async function A(e){if(!v)return;let t=e.projects.find(e=>e.projectId===v);if(t&&t.threads.length>0){let e=t.threads[0].threadId;u.current?.threadId===e?n({type:l.FocusChatInput}):n({type:l.SelectThread,threadId:e,projectId:v,focusInput:!0})}a?.(v)}async function j(){h(),n({type:l.SetCreatingProject,isCreating:!1});let e=u.current;e&&(P(n,e,d,{isError:!f}),n({type:l.RemoveProcessingThread,threadId:e.threadId})),x();let t=await _();n({type:l.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath}),n({type:l.SetProjectsLoading,projectsLoading:!1}),await A(t)}function M(t){$.error(`Failed to ${e.logTag}:`,t);let i=t instanceof Error&&t.name===`AbortError`;h(),n({type:l.SetCreatingProject,isCreating:!1});let a=u.current;if(i){f||w(),a&&(n({type:l.RemoveProcessingThread,threadId:a.threadId}),n({type:l.ClearToolCallProgress,toolCallId:a.toolCallId}));return}let o=`${e.catchErrorPrefix}: ${t instanceof Error?t.message:`Unknown error`}`;a?(g(o),P(n,a,d,{isError:!0}),n({type:l.RemoveProcessingThread,threadId:a.threadId})):r({title:`Project Creation Failed`,description:o,variant:`destructive`})}try{let t=await e.apiCall(c.signal);if(!t){h(),s.current=null,n({type:l.SetCreatingProject,isCreating:!1}),await i();return}await ee(t,k),await j()}catch(e){M(e)}finally{s.current===c&&(s.current=null),n({type:l.SetGitAuthRequest,request:null})}}function gn(e){let t=d(),n=f(e=>e.projects),r=f(e=>e.selectedProjectId),i=f(e=>e.selectedThreadId),{toast:s}=De(),c=o(),p=a(),[g,v]=(0,V.useState)(null),b=(0,V.useRef)(null),S=(0,V.useCallback)(async()=>{let e=++sn;try{t({type:l.SetProjectsLoading,projectsLoading:!0}),x(),ke(`projects:bootstrap:`);let n=await _();return e===sn?(t({type:l.SetProjects,projects:n.projects,cloneRootPath:n.cloneRootPath}),k(t),n.projects):n.projects}catch(e){return $.error(`Failed to refresh projects:`,e),[]}finally{e===sn&&t({type:l.SetProjectsLoading,projectsLoading:!1})}},[t]),C=(0,V.useCallback)(async()=>{let e=await S();if(t({type:l.ConfigUpdated}),!r||!i)return e;let n=e.find(e=>e.projectId===r);return n?(n.threads.some(e=>e.threadId===i)||(t({type:l.ClearThreadCreationSummary,threadId:i}),t(je(r,i,n.threads))),e):(t({type:l.ClearSelection}),e)},[t,S,r,i]),w=u(),T=(0,V.useCallback)((e,n)=>{let{selectedThreadId:r,selectedProjectId:i}=w.getState();(r!==n||i!==e)&&t({type:l.SelectThread,threadId:n,projectId:e}),t({type:l.ClearUnreadAutomatedChat,threadId:n}),h(e,n).catch(e=>{$.error(`Failed to select thread:`,e)})},[t,w]),{handleCreateProject:E,cancelProjectCreation:D,handleCreateWebApp:O,handleCreateFolder:M,handleCreateBot:te,handleCreateZip:ne,handleCreateThread:F,handleOpenFolder:I,handleOpenPath:ie}=$e({consumeProjectStream:(0,V.useCallback)(async n=>{await hn(n,{dispatch:t,toast:s,refreshProjects:S,onProjectCreated:e?.onProjectCreated,setPendingSetupScriptConfirmation:v,activeCreationControllerRef:b})},[t,S,e?.onProjectCreated,s]),activeCreationControllerRef:b,projects:n,dispatch:t,toast:s,refreshProjects:S,onThreadCreateStart:e?.onThreadCreateStart}),L=(0,V.useCallback)(async(e,r)=>{t({type:l.AddDeletingThread,threadId:r}),t({type:l.ClearChatInputDraft,threadId:r});let i=n.find(t=>t.projectId===e),a=i?re(i):`project`,o=i?.threads.find(e=>e.threadId===r)?.title??`thread`,s=w.getState().selectedThreadId===r?A({threadId:r,projectId:e,projectName:a}):null,u=``,d=!0;function f(e){e.trim()&&(u+=`${e}\n`,s&&N(t,s.toolCallId,s.threadId,`${e}\n`))}function p(e){s&&P(t,s,u,{isError:e})}function h(){let n=je(e,r,i?.threads??[]);if(n.type===l.SelectThread){T(n.projectId,n.threadId);return}t(n)}function g(){let n=w.getState().selectedThreadId===r;t({type:l.RemoveThread,projectId:e,threadId:r}),n&&h()}async function _(e){await S(),e&&t({type:l.ConfigUpdated})}s&&j(t,s,`Deleting thread "${o}"...\n`);try{let n=await m(e,r);return n&&await ee(n,t=>{if(!t||typeof t!=`object`)return;let n=t;if(n.type===`progress`)f(typeof n.message==`string`?n.message:``);else if(n.type===`error`){let t=typeof n.message==`string`?n.message:`Unknown error`,i=rn(n);f(`Error: ${t}`),an($,c,{projectId:e,threadId:r,threadTitle:o,message:t,progressOutput:u,...i}),d=!1}}),p(!d),d&&(t({type:l.ClearThreadCreationSummary,threadId:r}),g()),await _(!0),d}catch(t){let n=t instanceof Error?t.message:`Unknown error`,i=rn(t);return y(n)?(f(`Deletion is still running on the server. Open Workspaces to refresh the list.`),p(!1),$.info(`Thread deletion stream disconnected before completion`,{projectId:e,threadId:r,message:n,...i}),!1):n.toLowerCase().includes(`not found`)?(g(),await _(!1),!0):(f(`Error: ${n}`),p(!0),an($,c,{projectId:e,threadId:r,threadTitle:o,message:n,progressOutput:u,cause:t,...i}),!1)}finally{t({type:l.RemoveDeletingThread,threadId:r})}},[T,S,t,c,n,w]),{confirmDeleteProject:ae,resolveSetupScriptConfirmation:oe}=Qe({dispatch:t,projects:n,refreshProjects:S,navigate:c,location:p,pendingSetupScriptConfirmation:g,setPendingSetupScriptConfirmation:v});return{projects:n,selectedProjectId:r,selectedThreadId:i,refreshProjects:S,refreshWorkspaces:C,handleSelectThread:T,handleCreateProject:E,cancelProjectCreation:D,handleCreateWebApp:O,handleCreateFolder:M,handleCreateBot:te,handleCreateZip:ne,handleOpenFolder:I,handleOpenPath:ie,handleCreateThread:F,handleDeleteThread:(0,V.useCallback)(async(e,n)=>ln.runQueuedDeletion(e,n,{reserve(e){t({type:l.AddDeletingThread,threadId:e})},release(e){t({type:l.RemoveDeletingThread,threadId:e})},deleteThread:L}),[t,L]),confirmDeleteProject:ae,pendingSetupScriptConfirmation:g,resolveSetupScriptConfirmation:oe}}export{Jt as a,Yt as c,Ie as d,Fe as f,qt as i,Wt as l,gn as n,Xt as o,Kt as r,Ut as s,un as t,Re as u};
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{a as t,n,o as r,t as i}from"./react-vendor-D61Uve5n.js";import{o as a,s as o}from"./chunk-QFMPRPBF-Cy-_pFSM.js";import{U as s,x as c}from"./dist-v_MvKS2-.js";import{Z as l,i as u,n as d,r as f}from"./store-W78TGOIO.js";import{C as p,L as m,M as h,Mt as g,Rn as _,S as v,Xr as y,b,cn as x,pn as S,pr as C,sn as w,tn as T,x as E,y as D}from"./api-Cp9I7CxD.js";import{c as O,h as k,i as A,l as j,m as M,n as N,o as P,p as ee,r as te,t as ne}from"./create-project-workspace-CJ94yHAB.js";import{c as F,p as re,t as I}from"./utils-CqsIXqSC.js";import{t as ie}from"./check-skFQ1X72.js";import{t as L}from"./circle-alert-CC2eO3yt.js";import{t as ae}from"./loader-circle-CrqRIqdA.js";import{t as oe}from"./x-ByOPrz5I.js";import{r as se}from"./button-DDaJhJP1.js";import{a as ce,c as le,d as ue,g as R,h as de,l as z,n as fe,o as pe,r as me,t as he,u as B}from"./dist-AbkJBHH5.js";import{o as ge}from"./tooltip-CqwCZ7wt.js";import{t as _e}from"./dist-DOz2WXwX.js";import{n as ve,t as ye}from"./use-toast-CKgZ8YeP.js";import{n as be}from"./terminal-output-activity-D_FxlE-L.js";import{a as xe,c as Se,i as Ce,n as we,o as Te,r as Ee,s as De,t as Oe}from"./alert-dialog-BcZULJsX.js";import{r as ke}from"./suspense-resource-DzlMlIgR.js";import{t as Ae}from"./use-suspense-resource-uCX26gOk.js";var V=e(r(),1),H=n();function je(e,t,n){let r=n.find(e=>e.threadId!==t);return r?{type:l.SelectThread,projectId:e,threadId:r.threadId}:{type:l.SelectProject,projectId:e}}var Me=`root`,Ne=/^cd "([^"]+)" && (.+)$/;function Pe(e){let t=Ne.exec(e);return t?{script:e,command:t[2],folder:t[1],isRoot:!1}:{script:e,command:e,folder:Me,isRoot:!0}}function Fe(e){return e.map(e=>Pe(e))}function Ie(e){return Fe(e).filter(e=>e.isRoot).map(e=>e.script)}function Le(e,t){return Array.from(new Set([e,...t??[]]))}var U=i(),W=[`Removing threads`,`Deleting storage`,`Removing project`];function Re(e){let t=(0,H.c)(32),{progress:n,onRetry:r,onClose:i}=e;if(!n)return null;let{projectName:a,step:o,status:c,errorMessage:l}=n,u=W[Math.min(o,W.length-1)],d=c===`progressing`,f;t[0]!==d||t[1]!==i?(f=e=>{!e&&!d&&i()},t[0]=d,t[1]=i,t[2]=f):f=t[2];let p;t[3]===d?p=t[4]:(p=e=>{d&&e.preventDefault()},t[3]=d,t[4]=p);let m=c===`error`?`Delete Failed`:`Deleting Project`,h;t[5]===m?h=t[6]:(h=(0,U.jsx)(Se,{children:m}),t[5]=m,t[6]=h);let g;t[7]!==l||t[8]!==u||t[9]!==a||t[10]!==c?(g=(0,U.jsx)(xe,{children:c===`error`?(0,U.jsxs)(`span`,{className:`text-destructive`,children:[`Failed at: `,u,`. `,l??`An unexpected error occurred.`]}):(0,U.jsxs)(U.Fragment,{children:[`Deleting `,(0,U.jsxs)(`span`,{className:`font-semibold text-foreground`,children:[`"`,a,`"`]}),`. This cannot be undone.`]})}),t[7]=l,t[8]=u,t[9]=a,t[10]=c,t[11]=g):g=t[11];let _;t[12]!==h||t[13]!==g?(_=(0,U.jsxs)(De,{children:[h,g]}),t[12]=h,t[13]=g,t[14]=_):_=t[14];let v;t[15]!==c||t[16]!==o?(v=W.map((e,t)=>{let n=c===`progressing`&&t===o,r=c===`done`,i=c===`error`&&t===o;return(0,U.jsxs)(`div`,{className:I(`flex items-center gap-2 text-sm`,n&&`text-foreground`,r&&`text-muted-foreground`,t<o&&`text-muted-foreground`),children:[r||t<o?(0,U.jsx)(ie,{className:`h-4 w-4 text-emerald-500`}):i?(0,U.jsx)(L,{className:`h-4 w-4 text-destructive`}):(0,U.jsx)(ae,{className:I(`h-4 w-4 text-muted-foreground`,n&&`animate-spin text-foreground`)}),(0,U.jsxs)(`span`,{className:I(s.body,n&&`font-medium`),children:[e,`…`]})]},e)}),t[15]=c,t[16]=o,t[17]=v):v=t[17];let y;t[18]===v?y=t[19]:(y=(0,U.jsx)(`div`,{className:`flex flex-col gap-2 py-2`,children:v}),t[18]=v,t[19]=y);let b;t[20]!==i||t[21]!==r||t[22]!==c?(b=c===`error`&&(0,U.jsxs)(Te,{children:[(0,U.jsx)(Ee,{onClick:i,children:`Close`}),(0,U.jsx)(we,{onClick:r,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:`Retry`})]}),t[20]=i,t[21]=r,t[22]=c,t[23]=b):b=t[23];let x;t[24]!==p||t[25]!==_||t[26]!==y||t[27]!==b?(x=(0,U.jsxs)(Ce,{onEscapeKeyDown:p,children:[_,y,b]}),t[24]=p,t[25]=_,t[26]=y,t[27]=b,t[28]=x):x=t[28];let S;return t[29]!==f||t[30]!==x?(S=(0,U.jsx)(Oe,{open:!0,onOpenChange:f,children:x}),t[29]=f,t[30]=x,t[31]=S):S=t[31],S}var ze=c(`app.use-projects.hook`);function Be(e,t){let n=e.find(e=>e.projectId===t);return{project:n,threadIds:n?.threads.map(e=>e.threadId)??[]}}function Ve(e,t,n){e({type:l.AddDeletingProject,projectId:t});for(let t of n)e({type:l.AddDeletingThread,threadId:t}),e({type:l.ClearChatInputDraft,threadId:t})}function He(e,t,n){e({type:l.RemoveDeletingProject,projectId:t});for(let t of n)e({type:l.RemoveDeletingThread,threadId:t})}function Ue(e){return e instanceof Error?e.message:`Failed to delete project`}async function We({dispatch:e,refreshProjects:t,navigate:n,location:r}){e({type:l.CloseProjectPanel}),e({type:l.SelectThread,threadId:``,projectId:``}),await t(),e({type:l.ConfigUpdated}),r.pathname.startsWith(`/settings/`)&&n(`/`)}async function Ge({projectId:e,projects:t,dispatch:n,refreshProjects:r,navigate:i,location:a,onProgress:o}){let{project:s,threadIds:c}=Be(t,e);Ve(n,e,c);let l=0;o?.({projectId:e,projectName:s?.name??``,step:l,status:`progressing`});let u=window.setInterval(()=>{l=Math.min(l+1,W.length-1),o?.({projectId:e,projectName:s?.name??``,step:l,status:`progressing`})},450);try{await h(e),window.clearInterval(u),await We({dispatch:n,refreshProjects:r,navigate:i,location:a}),o?.({projectId:e,projectName:s?.name??``,step:l,status:`done`})}catch(t){throw window.clearInterval(u),ze.error(`Failed to delete project:`,t),o?.({projectId:e,projectName:s?.name??``,step:l,status:`error`,errorMessage:Ue(t)}),t}finally{He(n,e,c)}}function Ke(e){return e instanceof Error?e.message:`Unknown error`}function qe(e,t){be(),e({type:l.AppendTerminalLine,line:t})}async function Je(e,t,n,r,i){let a=Pe(t).folder;i({type:`system`,content:`Installing package ${n+1}/${r} in ${a}...`}),i({type:`output`,content:`📦 Installing dependencies in ${a}: ${t}`});let o=await C(e,t,!0);o&&await M(o,{onOutput(e){i({type:`output`,content:e})},onError(e){i({type:`error`,content:e})}})}function Ye(e,t){t||(e({type:`system`,content:``}),e({type:`system`,content:`---`}),e({type:`system`,content:``}))}async function Xe({projectId:e,scripts:t,dispatch:n,refreshProjects:r}){function i(e){qe(n,e)}try{n({type:l.SetCreatingProject,isCreating:!0}),n({type:l.SetTerminalOpen,open:!0}),i({type:`system`,content:`Installing dependencies for ${t.length} package${t.length===1?``:`s`}...`});for(let n=0;n<t.length;n++)await Je(e,t[n],n,t.length,i),Ye(i,n===t.length-1);i({type:`system`,content:`All dependencies installed successfully!`}),n({type:l.SetCreatingProject,isCreating:!1}),await r()}catch(e){n({type:l.SetCreatingProject,isCreating:!1}),ze.error(`Failed to run setup script:`,e),i({type:`error`,content:`Failed to run setup script: ${Ke(e)}`})}}async function Ze({pending:e,selectedScripts:t,setPendingSetupScriptConfirmation:n,dispatch:r,refreshProjects:i}){n(null),e&&t.length!==0&&await Xe({projectId:e.projectId,scripts:t,dispatch:r,refreshProjects:i})}function Qe(e){let t=(0,H.c)(14),{dispatch:n,projects:r,refreshProjects:i,navigate:a,location:o,pendingSetupScriptConfirmation:s,setPendingSetupScriptConfirmation:c}=e,l;t[0]!==n||t[1]!==o||t[2]!==a||t[3]!==r||t[4]!==i?(l=async(e,t)=>{await Ge({projectId:e,projects:r,dispatch:n,refreshProjects:i,navigate:a,location:o,onProgress:t})},t[0]=n,t[1]=o,t[2]=a,t[3]=r,t[4]=i,t[5]=l):l=t[5];let u=l,d;t[6]!==n||t[7]!==s||t[8]!==i||t[9]!==c?(d=async e=>{await Ze({pending:s,selectedScripts:e,setPendingSetupScriptConfirmation:c,dispatch:n,refreshProjects:i})},t[6]=n,t[7]=s,t[8]=i,t[9]=c,t[10]=d):d=t[10];let f=d,p;return t[11]!==u||t[12]!==f?(p={confirmDeleteProject:u,resolveSetupScriptConfirmation:f},t[11]=u,t[12]=f,t[13]=p):p=t[13],p}function $e(e){let t=(0,H.c)(32),{consumeProjectStream:n,activeCreationControllerRef:r,projects:i,dispatch:a,toast:o,refreshProjects:s,onThreadCreateStart:c}=e,l;t[0]===n?l=t[1]:(l=async(e,t)=>{let r=e.split(`/`).pop()?.replace(`.git`,``)??`project`;await n({apiCall:n=>E(e,t,n),initialMessage:`Cloning repository: ${e}...`,optimisticProjectName:r,gitUrl:e,mode:`clone`,includeThreadPath:!0,handleSetupScript:!0,logTag:`create project`,catchErrorPrefix:`Failed to create project`})},t[0]=n,t[1]=l);let u=l,d;t[2]===r?d=t[3]:(d=()=>{r.current?.abort(),r.current=null},t[2]=r,t[3]=d);let f=d,m;t[4]===n?m=t[5]:(m=async(e,t,r)=>{await n({apiCall:n=>p(e,t,r,n),initialMessage:`Creating app "${e}"...`,optimisticProjectName:e,mode:`webapp`,handleSetupScript:!1,logTag:`create web app`,catchErrorPrefix:`Failed to create web app`})},t[4]=n,t[5]=m);let h=m,g;t[6]===n?g=t[7]:(g=async e=>{await n({apiCall:t=>b(e,t),initialMessage:`Creating folder "${e}"...`,optimisticProjectName:e,mode:`folder`,handleSetupScript:!1,logTag:`create folder`,catchErrorPrefix:`Failed to create folder`})},t[6]=n,t[7]=g);let _=g,y;t[8]===n?y=t[9]:(y=async e=>{await n({apiCall:t=>D(e,t),initialMessage:`Creating bot "${e}"...`,optimisticProjectName:e,mode:`folder`,projectType:`bot`,handleSetupScript:!1,logTag:`create bot`,catchErrorPrefix:`Failed to create bot`})},t[8]=n,t[9]=y);let S=y,C;t[10]===n?C=t[11]:(C=async(e,t,r)=>{let i=t.replace(/\.zip$/i,``)||`project`;await n({apiCall:n=>v(e,t,r,n),initialMessage:r?`Replacing project from "${t}"...`:`Creating project from "${t}"...`,optimisticProjectName:i,mode:`zip`,handleSetupScript:!1,logTag:`create project from zip`,catchErrorPrefix:`Failed to create project from zip`})},t[10]=n,t[11]=C);let T=C,O;t[12]!==a||t[13]!==c||t[14]!==i||t[15]!==s||t[16]!==o?(O=async(e,t,n)=>ne({projectId:e,title:t,project:i.find(t=>t.projectId===e),dispatch:a,toast:o,refreshProjects:s,onThreadCreateStart:c,sourceThreadId:n?.sourceThreadId,remoteMachineId:n?.remoteMachineId}),t[12]=a,t[13]=c,t[14]=i,t[15]=s,t[16]=o,t[17]=O):O=t[17];let k=O,A;t[18]===n?A=t[19]:(A=async()=>{await n({apiCall:w,initialMessage:`Opening folder...`,optimisticProjectName:`Opening folder...`,mode:`folder`,handleSetupScript:!0,logTag:`open folder`,catchErrorPrefix:`Failed to open folder`})},t[18]=n,t[19]=A);let j=A,M;t[20]===n?M=t[21]:(M=async e=>{let t=e.split(/[/\\]/).filter(Boolean).pop()??`project`;await n({apiCall:t=>x(e,t),initialMessage:`Opening folder: ${e}...`,optimisticProjectName:t,mode:`folder`,handleSetupScript:!0,logTag:`open path`,catchErrorPrefix:`Failed to open folder path`})},t[20]=n,t[21]=M);let N=M,P;return t[22]!==f||t[23]!==S||t[24]!==_||t[25]!==u||t[26]!==k||t[27]!==h||t[28]!==T||t[29]!==j||t[30]!==N?(P={handleCreateProject:u,cancelProjectCreation:f,handleCreateWebApp:h,handleCreateFolder:_,handleCreateBot:S,handleCreateZip:T,handleCreateThread:k,handleOpenFolder:j,handleOpenPath:N},t[22]=f,t[23]=S,t[24]=_,t[25]=u,t[26]=k,t[27]=h,t[28]=T,t[29]=j,t[30]=N,t[31]=P):P=t[31],P}var et=e(t(),1),G=`ToastProvider`,[K,tt,nt]=_e(`Toast`),[rt,it]=de(`Toast`,[nt]),[at,q]=rt(G),ot=e=>{let{__scopeToast:t,label:n=`Notification`,duration:r=5e3,swipeDirection:i=`right`,swipeThreshold:a=50,children:o}=e,[s,c]=V.useState(null),[l,u]=V.useState(0),d=V.useRef(!1),f=V.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${G}\`. Expected non-empty \`string\`.`),(0,U.jsx)(K.Provider,{scope:t,children:(0,U.jsx)(at,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:a,toastCount:l,viewport:s,onViewportChange:c,onToastAdd:V.useCallback(()=>u(e=>e+1),[]),onToastRemove:V.useCallback(()=>u(e=>e-1),[]),isFocusedToastEscapeKeyDownRef:d,isClosePausedRef:f,children:o})})};ot.displayName=G;var st=`ToastViewport`,ct=[`F8`],J=`toast.viewportPause`,Y=`toast.viewportResume`,lt=V.forwardRef((e,t)=>{let{__scopeToast:n,hotkey:r=ct,label:i=`Notifications ({hotkey})`,...a}=e,o=q(st,n),s=tt(n),c=V.useRef(null),l=V.useRef(null),u=V.useRef(null),d=V.useRef(null),f=F(t,d,o.onViewportChange),p=r.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),m=o.toastCount>0;V.useEffect(()=>{let e=e=>{r.length!==0&&r.every(t=>e[t]||e.code===t)&&d.current?.focus()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]),V.useEffect(()=>{let e=c.current,t=d.current;if(m&&e&&t){let n=()=>{if(!o.isClosePausedRef.current){let e=new CustomEvent(J);t.dispatchEvent(e),o.isClosePausedRef.current=!0}},r=()=>{if(o.isClosePausedRef.current){let e=new CustomEvent(Y);t.dispatchEvent(e),o.isClosePausedRef.current=!1}},i=t=>{e.contains(t.relatedTarget)||r()},a=()=>{e.contains(document.activeElement)||r()};return e.addEventListener(`focusin`,n),e.addEventListener(`focusout`,i),e.addEventListener(`pointermove`,n),e.addEventListener(`pointerleave`,a),window.addEventListener(`blur`,n),window.addEventListener(`focus`,r),()=>{e.removeEventListener(`focusin`,n),e.removeEventListener(`focusout`,i),e.removeEventListener(`pointermove`,n),e.removeEventListener(`pointerleave`,a),window.removeEventListener(`blur`,n),window.removeEventListener(`focus`,r)}}},[m,o.isClosePausedRef]);let h=V.useCallback(({tabbingDirection:e})=>{let t=s().map(t=>{let n=t.ref.current,r=[n,...Pt(n)];return e===`forwards`?r:r.reverse()});return(e===`forwards`?t.reverse():t).flat()},[s]);return V.useEffect(()=>{let e=d.current;if(e){let t=t=>{let n=t.altKey||t.ctrlKey||t.metaKey;if(t.key===`Tab`&&!n){let n=document.activeElement,r=t.shiftKey;if(t.target===e&&r){l.current?.focus();return}let i=h({tabbingDirection:r?`backwards`:`forwards`}),a=i.findIndex(e=>e===n);Ft(i.slice(a+1))?t.preventDefault():r?l.current?.focus():u.current?.focus()}};return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)}},[s,h]),(0,U.jsxs)(pe,{ref:c,role:`region`,"aria-label":i.replace(`{hotkey}`,p),tabIndex:-1,style:{pointerEvents:m?void 0:`none`},children:[m&&(0,U.jsx)(dt,{ref:l,onFocusFromOutsideViewport:()=>{Ft(h({tabbingDirection:`forwards`}))}}),(0,U.jsx)(K.Slot,{scope:n,children:(0,U.jsx)(B.ol,{tabIndex:-1,...a,ref:f})}),m&&(0,U.jsx)(dt,{ref:u,onFocusFromOutsideViewport:()=>{Ft(h({tabbingDirection:`backwards`}))}})]})});lt.displayName=st;var ut=`ToastFocusProxy`,dt=V.forwardRef((e,t)=>{let{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,a=q(ut,n);return(0,U.jsx)(ge,{tabIndex:0,...i,ref:t,style:{position:`fixed`},onFocus:e=>{let t=e.relatedTarget;a.viewport?.contains(t)||r()}})});dt.displayName=ut;var X=`Toast`,ft=`toast.swipeStart`,pt=`toast.swipeMove`,mt=`toast.swipeCancel`,ht=`toast.swipeEnd`,gt=V.forwardRef((e,t)=>{let{forceMount:n,open:r,defaultOpen:i,onOpenChange:a,...o}=e,[s,c]=he({prop:r,defaultProp:i??!0,onChange:a,caller:X});return(0,U.jsx)(fe,{present:n||s,children:(0,U.jsx)(yt,{open:s,...o,ref:t,onClose:()=>c(!1),onPause:z(e.onPause),onResume:z(e.onResume),onSwipeStart:R(e.onSwipeStart,e=>{e.currentTarget.setAttribute(`data-swipe`,`start`)}),onSwipeMove:R(e.onSwipeMove,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`move`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-y`,`${n}px`)}),onSwipeCancel:R(e.onSwipeCancel,e=>{e.currentTarget.setAttribute(`data-swipe`,`cancel`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-y`)}),onSwipeEnd:R(e.onSwipeEnd,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`end`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-y`,`${n}px`),c(!1)})})})});gt.displayName=X;var[_t,vt]=rt(X,{onClose(){}}),yt=V.forwardRef((e,t)=>{let{__scopeToast:n,type:r=`foreground`,duration:i,open:a,onClose:o,onEscapeKeyDown:s,onPause:c,onResume:l,onSwipeStart:u,onSwipeMove:d,onSwipeCancel:f,onSwipeEnd:p,...m}=e,h=q(X,n),[g,_]=V.useState(null),v=F(t,e=>_(e)),y=V.useRef(null),b=V.useRef(null),x=i||h.duration,S=V.useRef(0),C=V.useRef(x),w=V.useRef(0),{onToastAdd:T,onToastRemove:E}=h,D=z(()=>{g?.contains(document.activeElement)&&h.viewport?.focus(),o()}),O=V.useCallback(e=>{e&&e!==1/0&&(window.clearTimeout(w.current),S.current=new Date().getTime(),w.current=window.setTimeout(D,e))},[D]);V.useEffect(()=>{let e=h.viewport;if(e){let t=()=>{O(C.current),l?.()},n=()=>{let e=new Date().getTime()-S.current;C.current-=e,window.clearTimeout(w.current),c?.()};return e.addEventListener(J,n),e.addEventListener(Y,t),()=>{e.removeEventListener(J,n),e.removeEventListener(Y,t)}}},[h.viewport,x,c,l,O]),V.useEffect(()=>{a&&!h.isClosePausedRef.current&&O(x)},[a,x,h.isClosePausedRef,O]),V.useEffect(()=>(T(),()=>E()),[T,E]);let k=V.useMemo(()=>g?At(g):null,[g]);return h.viewport?(0,U.jsxs)(U.Fragment,{children:[k&&(0,U.jsx)(bt,{__scopeToast:n,role:`status`,"aria-live":r===`foreground`?`assertive`:`polite`,children:k}),(0,U.jsx)(_t,{scope:n,onClose:D,children:et.createPortal((0,U.jsx)(K.ItemSlot,{scope:n,children:(0,U.jsx)(le,{asChild:!0,onEscapeKeyDown:R(s,()=>{h.isFocusedToastEscapeKeyDownRef.current||D(),h.isFocusedToastEscapeKeyDownRef.current=!1}),children:(0,U.jsx)(B.li,{tabIndex:0,"data-state":a?`open`:`closed`,"data-swipe-direction":h.swipeDirection,...m,ref:v,style:{userSelect:`none`,touchAction:`none`,...e.style},onKeyDown:R(e.onKeyDown,e=>{e.key===`Escape`&&(s?.(e.nativeEvent),e.nativeEvent.defaultPrevented||(h.isFocusedToastEscapeKeyDownRef.current=!0,D()))}),onPointerDown:R(e.onPointerDown,e=>{e.button===0&&(y.current={x:e.clientX,y:e.clientY})}),onPointerMove:R(e.onPointerMove,e=>{if(!y.current)return;let t=e.clientX-y.current.x,n=e.clientY-y.current.y,r=!!b.current,i=[`left`,`right`].includes(h.swipeDirection),a=[`left`,`up`].includes(h.swipeDirection)?Math.min:Math.max,o=i?a(0,t):0,s=i?0:a(0,n),c=e.pointerType===`touch`?10:2,l={x:o,y:s},f={originalEvent:e,delta:l};r?(b.current=l,Z(pt,d,f,{discrete:!1})):jt(l,h.swipeDirection,c)?(b.current=l,Z(ft,u,f,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>c||Math.abs(n)>c)&&(y.current=null)}),onPointerUp:R(e.onPointerUp,e=>{let t=b.current,n=e.target;if(n.hasPointerCapture(e.pointerId)&&n.releasePointerCapture(e.pointerId),b.current=null,y.current=null,t){let n=e.currentTarget,r={originalEvent:e,delta:t};jt(t,h.swipeDirection,h.swipeThreshold)?Z(ht,p,r,{discrete:!0}):Z(mt,f,r,{discrete:!0}),n.addEventListener(`click`,e=>e.preventDefault(),{once:!0})}})})})}),h.viewport)})]}):null}),bt=e=>{let{__scopeToast:t,children:n,...r}=e,i=q(X,t),[a,o]=V.useState(!1),[s,c]=V.useState(!1);return Mt(()=>o(!0)),V.useEffect(()=>{let e=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(e)},[]),s?null:(0,U.jsx)(me,{asChild:!0,children:(0,U.jsx)(ge,{...r,children:a&&(0,U.jsxs)(U.Fragment,{children:[i.label,` `,n]})})})},xt=`ToastTitle`,St=V.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e;return(0,U.jsx)(B.div,{...r,ref:t})});St.displayName=xt;var Ct=`ToastDescription`,wt=V.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e;return(0,U.jsx)(B.div,{...r,ref:t})});wt.displayName=Ct;var Tt=`ToastAction`,Et=V.forwardRef((e,t)=>{let{altText:n,...r}=e;return n.trim()?(0,U.jsx)(kt,{altText:n,asChild:!0,children:(0,U.jsx)(Ot,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${Tt}\`. Expected non-empty \`string\`.`),null)});Et.displayName=Tt;var Dt=`ToastClose`,Ot=V.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e,i=vt(Dt,n);return(0,U.jsx)(kt,{asChild:!0,children:(0,U.jsx)(B.button,{type:`button`,...r,ref:t,onClick:R(e.onClick,i.onClose)})})});Ot.displayName=Dt;var kt=V.forwardRef((e,t)=>{let{__scopeToast:n,altText:r,...i}=e;return(0,U.jsx)(B.div,{"data-radix-toast-announce-exclude":``,"data-radix-toast-announce-alt":r||void 0,...i,ref:t})});function At(e){let t=[];return Array.from(e.childNodes).forEach(e=>{if(e.nodeType===e.TEXT_NODE&&e.textContent&&t.push(e.textContent),Nt(e)){let n=e.ariaHidden||e.hidden||e.style.display===`none`,r=e.dataset.radixToastAnnounceExclude===``;if(!n){if(r){let n=e.dataset.radixToastAnnounceAlt;n&&t.push(n)}else t.push(...At(e))}}}),t}function Z(e,t,n,{discrete:r}){let i=n.originalEvent.currentTarget,a=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?ue(i,a):i.dispatchEvent(a)}var jt=(e,t,n=0)=>{let r=Math.abs(e.x),i=Math.abs(e.y),a=r>i;return t===`left`||t===`right`?a&&r>n:!a&&i>n};function Mt(e=()=>{}){let t=z(e);ce(()=>{let e=0,n=0;return e=window.requestAnimationFrame(()=>n=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(n)}},[t])}function Nt(e){return e.nodeType===e.ELEMENT_NODE}function Pt(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Ft(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}var It=ot,Lt=lt,Rt=gt,zt=St,Bt=wt,Vt=Et,Ht=Ot,Ut=It,Wt=V.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 a;n[3]===r?a=n[4]:(a=I(`fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(Lt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Wt.displayName=Lt.displayName;var Gt=se(`group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full`,{variants:{variant:{default:`border bg-background text-foreground`,destructive:`destructive group border-destructive bg-destructive text-destructive-foreground`}},defaultVariants:{variant:`default`}}),Kt=V.forwardRef((e,t)=>{let n=(0,H.c)(11),r,i,a;n[0]===e?(r=n[1],i=n[2],a=n[3]):({className:r,variant:a,...i}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a);let o;n[4]!==r||n[5]!==a?(o=I(Gt({variant:a}),r),n[4]=r,n[5]=a,n[6]=o):o=n[6];let s;return n[7]!==i||n[8]!==t||n[9]!==o?(s=(0,U.jsx)(Rt,{ref:t,className:o,...i}),n[7]=i,n[8]=t,n[9]=o,n[10]=s):s=n[10],s});Kt.displayName=Rt.displayName;var qt=V.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 a;n[3]===r?a=n[4]:(a=I(`inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive`,s.body,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(Vt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});qt.displayName=Vt.displayName;var Jt=V.forwardRef((e,t)=>{let n=(0,H.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 a;n[3]===r?a=n[4]:(a=I(`absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600`,r),n[3]=r,n[4]=a);let o;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,U.jsx)(oe,{className:`h-4 w-4`}),n[5]=o):o=n[5];let s;return n[6]!==i||n[7]!==t||n[8]!==a?(s=(0,U.jsx)(Ht,{ref:t,className:a,"toast-close":``,...i,children:o}),n[6]=i,n[7]=t,n[8]=a,n[9]=s):s=n[9],s});Jt.displayName=Ht.displayName;var Yt=V.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 a;n[3]===r?a=n[4]:(a=I(s.dialogTitle,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(zt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Yt.displayName=zt.displayName;var Xt=V.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 a;n[3]===r?a=n[4]:(a=I(s.body,`opacity-90 text-muted-foreground group-[.destructive]:text-destructive-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,U.jsx)(Bt,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Xt.displayName=Bt.displayName;function Zt(e){return(e?.match(/Removing (.+?)\.\.\./))?.[1]?.trim()||void 0}function Qt(e,t){let n=Zt(t),r=e.trim().toLowerCase();return y(e)&&n?{summary:`The connection dropped while Tarsk was deleting files on disk.`,cause:`Removing a large folder can take longer than the browser keeps the progress stream open. WebKit reports this as "Load failed" even though deletion may still be running or may already have finished on the server.`,guidance:[`Refresh the project list and check whether the thread is gone.`,`If the thread is still listed, try deleting again or remove the folder manually: ${n}`],removingPath:n}:y(e)?{summary:`The connection to Tarsk was lost during deletion.`,cause:`The progress stream closed before the server reported completion. This is usually a browser or network timeout, not a message from the delete operation itself.`,guidance:[`Refresh the project list and check whether the thread was removed.`,`Try deleting the thread again if it is still listed.`]}:r.includes(`not found`)?{summary:`Tarsk could not find that thread.`,cause:`The thread may have already been deleted in another window or by a previous attempt.`,guidance:[`Refresh the project list.`,`If the thread is gone, no further action is needed.`]}:r.includes(`failed to remove`)||r.includes(`eperm`)||r.includes(`ebusy`)?{summary:`Tarsk could not remove the thread folder from disk.`,cause:e,guidance:[n?`Close any apps using files in ${n}, then try again.`:`Close any apps using files in the thread folder, then try again.`,`If deletion keeps failing, remove the folder manually and refresh the project list.`],removingPath:n}:{summary:e||`Thread deletion failed for an unknown reason.`,cause:`See the progress output below for where deletion stopped.`,guidance:[`Try deleting the thread again.`,`If the problem persists, check Settings > Logs for details.`],removingPath:n}}function $t(e,t){return[`Thread deletion failed (${e})`,t.summary,`Cause: ${t.cause}`,`What to do: ${t.guidance.join(` `)}`].join(`
2
+ `)}function en(e){return typeof e==`string`&&e.trim().length>0}function Q(e,t){let n=e[t];return en(n)?n:void 0}function tn(e,t){let n=Q(e,`stdout`);n!==void 0&&(t.stdout=n);let r=Q(e,`stderr`);r!==void 0&&(t.stderr=r)}function nn(e,t){let n=e.error;if(en(n)){t.details=n;return}if(!n||typeof n!=`object`)return;let r=n,i=Q(r,`message`);if(i!==void 0&&(t.details=i),t.stdout===void 0){let e=Q(r,`stdout`);e!==void 0&&(t.stdout=e)}if(t.stderr===void 0){let e=Q(r,`stderr`);e!==void 0&&(t.stderr=e)}}function rn(e){if(!e||typeof e!=`object`)return{};let t=e,n={};return tn(t,n),en(t.details)?n.details=t.details:nn(t,n),n}function an(e,t,n){let r=crypto.randomUUID(),i=n.message.trim()||`Unknown error`,a=Qt(i,n.progressOutput),o=$t(r,a),s={errorId:r,message:i,summary:a.summary,cause:a.cause,guidance:a.guidance,removingPath:a.removingPath,projectId:n.projectId,threadId:n.threadId,threadTitle:n.threadTitle,output:n.progressOutput,stdout:n.stdout,stderr:n.stderr,details:n.details,...n.cause===void 0?{}:{rawError:n.cause}};return e.error(o,s),S({level:`ERROR`,context:`app.use-projects.hook`,message:o,data:s}),ye({variant:`destructive`,title:`Failed to delete thread`,description:`Error ID: ${r}\n${a.summary}`,action:(0,U.jsx)(qt,{altText:`Go to Logs`,onClick:()=>{t(`/settings/logs?q=${encodeURIComponent(r)}`)},children:`Go to Logs`})}),r}var on=150,$=c(`app.use-projects.hook`),sn=0;function cn(){let e=Promise.resolve(),t=new Map;function n(n,r,i){let a=t.get(r);if(a)return a;i.reserve(r);let o=(async()=>{let a=e,o=()=>void 0;e=new Promise(e=>{o=e}),await a;try{return await i.deleteThread(n,r)}finally{t.delete(r),i.release(r),o()}})();return t.set(r,o),o}return{runQueuedDeletion:n}}var ln=cn();function un(){let e=(0,H.c)(20),t=d(),n=f(mn),r=f(pn),i=f(fn),a,o;e[0]===i?(a=e[1],o=e[2]):(a=()=>{i>0&&T()},o=[i],e[0]=i,e[1]=a,e[2]=o),(0,V.useLayoutEffect)(a,o);let s=Ae(`projects:bootstrap:${i}`,g),c=(0,V.useRef)(!1),u;e[3]!==s.cloneRootPath||e[4]!==s.projects||e[5]!==t?(u=()=>{t({type:l.SetProjects,projects:s.projects,cloneRootPath:s.cloneRootPath}),t({type:l.SetProjectsLoading,projectsLoading:!1}),k(t)},e[3]=s.cloneRootPath,e[4]=s.projects,e[5]=t,e[6]=u):u=e[6];let p;e[7]!==s||e[8]!==t?(p=[s,t],e[7]=s,e[8]=t,e[9]=p):p=e[9],(0,V.useLayoutEffect)(u,p);let m;e[10]!==s.projects||e[11]!==t||e[12]!==r||e[13]!==n?(m=()=>{if(!c.current){if(n||r){c.current=!0;return}for(let e of s.projects){let n=e.threads.find(dn);if(n){t({type:l.SelectThread,threadId:n.threadId,projectId:e.projectId}),t({type:l.OpenProjectPanel,projectId:e.projectId}),c.current=!0;break}}}},e[10]=s.projects,e[11]=t,e[12]=r,e[13]=n,e[14]=m):m=e[14];let h;return e[15]!==s||e[16]!==t||e[17]!==r||e[18]!==n?(h=[s,t,n,r],e[15]=s,e[16]=t,e[17]=r,e[18]=n,e[19]=h):h=e[19],(0,V.useLayoutEffect)(m,h),null}function dn(e){return e.isSelected}function fn(e){return e.configUpdatedAt}function pn(e){return e.selectedProjectId}function mn(e){return e.selectedThreadId}async function hn(e,t){let{dispatch:n,toast:r,refreshProjects:i,onProjectCreated:a,setPendingSetupScriptConfirmation:o,activeCreationControllerRef:s}=t;n({type:l.SetCreatingProject,isCreating:!0});let c=new AbortController;s.current=c;let u={current:null},d=``,f=!1,p=[],m=null;function h(){if(m&&=(clearTimeout(m),null),p.length===0)return;let e=p.join(``);p.length=0;let t=u.current;t&&N(n,t.toolCallId,t.threadId,e)}function _(e){if(!e)return;let t=`${e}\n`;d+=t,p.push(t),m||=setTimeout(h,on)}let v=null,y=!1,b=null,x=null;function S(t,r){y=!0,b=t,x=r,n({type:l.AddCreatingProject,projectId:t,threadId:r,projectName:e.optimisticProjectName,gitUrl:e.gitUrl??``,projectType:e.projectType}),n({type:l.AddProcessingThread,threadId:r}),a?.(t);let i=te({mode:e.mode,threadId:r,projectId:t,projectName:e.optimisticProjectName});u.current=i,O(n,i,`${e.initialMessage}\n`)}function C(){y&&b&&(n({type:l.RemoveCreatingProject,projectId:b}),x&&n({type:l.RemoveProcessingThread,threadId:x}))}function w(e){!y&&typeof e.threadId==`string`&&typeof e.projectId==`string`&&S(e.projectId,e.threadId),_(typeof e.message==`string`?e.message:``)}function E(t){f=!0;let n=t.project;if(n){if(v=n.id,_(`Project created successfully at: ${e.includeThreadPath&&n.threads&&n.threads.length>0?`${n.path}/${n.threads[0]}`:n.path}`),u.current&&e.mode===`folder`){let t=n.path.split(/[/\\]/).filter(Boolean).pop();t&&t!==e.optimisticProjectName&&(u.current={...u.current,projectName:t})}e.handleSetupScript&&typeof t.suggestedSetupScript==`string`&&o({projectId:n.id,scripts:Le(t.suggestedSetupScript,n.pendingSetupScripts)})}}function D(e){let t=typeof e.message==`string`?e.message:`Unknown error`;C(),_(`Error: ${t}`),u.current||r({title:`Project Creation Failed`,description:t,variant:`destructive`})}function k(t){if(!t||typeof t!=`object`)return;let r=t;try{if(r.type===`progress`)w(r);else if(r.type===`complete`)n({type:l.SetGitAuthRequest,request:null}),E(r);else if(r.type===`error`)n({type:l.SetGitAuthRequest,request:null}),D(r);else if(r.type===`auth_required`){let e=r.auth;e&&n({type:l.SetGitAuthRequest,request:e})}}catch(t){$.error(`Failed to parse ${e.logTag} event`,t)}}async function A(e){if(!v)return;let t=e.projects.find(e=>e.projectId===v);if(t&&t.threads.length>0){let e=t.threads[0].threadId;u.current?.threadId===e?n({type:l.FocusChatInput}):n({type:l.SelectThread,threadId:e,projectId:v,focusInput:!0})}a?.(v)}async function j(){h(),n({type:l.SetCreatingProject,isCreating:!1});let e=u.current;e&&(P(n,e,d,{isError:!f}),n({type:l.RemoveProcessingThread,threadId:e.threadId})),T();let t=await g();n({type:l.SetProjects,projects:t.projects,cloneRootPath:t.cloneRootPath}),n({type:l.SetProjectsLoading,projectsLoading:!1}),await A(t)}function M(t){$.error(`Failed to ${e.logTag}:`,t);let i=t instanceof Error&&t.name===`AbortError`;h(),n({type:l.SetCreatingProject,isCreating:!1});let a=u.current;if(i){f||C(),a&&(n({type:l.RemoveProcessingThread,threadId:a.threadId}),n({type:l.ClearToolCallProgress,toolCallId:a.toolCallId}));return}let o=`${e.catchErrorPrefix}: ${t instanceof Error?t.message:`Unknown error`}`;a?(_(o),P(n,a,d,{isError:!0}),n({type:l.RemoveProcessingThread,threadId:a.threadId})):r({title:`Project Creation Failed`,description:o,variant:`destructive`})}try{let t=await e.apiCall(c.signal);if(!t){h(),s.current=null,n({type:l.SetCreatingProject,isCreating:!1}),await i();return}await ee(t,k),await j()}catch(e){M(e)}finally{s.current===c&&(s.current=null),n({type:l.SetGitAuthRequest,request:null})}}function gn(e){let t=d(),n=f(e=>e.projects),r=f(e=>e.selectedProjectId),i=f(e=>e.selectedThreadId),{toast:s}=ve(),c=o(),p=a(),[h,v]=(0,V.useState)(null),b=(0,V.useRef)(null),x=(0,V.useCallback)(async()=>{let e=++sn;try{t({type:l.SetProjectsLoading,projectsLoading:!0}),T(),ke(`projects:bootstrap:`);let n=await g();return e===sn?(t({type:l.SetProjects,projects:n.projects,cloneRootPath:n.cloneRootPath}),k(t),n.projects):n.projects}catch(e){return $.error(`Failed to refresh projects:`,e),[]}finally{e===sn&&t({type:l.SetProjectsLoading,projectsLoading:!1})}},[t]),S=(0,V.useCallback)(async()=>{let e=await x();if(t({type:l.ConfigUpdated}),!r||!i)return e;let n=e.find(e=>e.projectId===r);return n?(n.threads.some(e=>e.threadId===i)||(t({type:l.ClearThreadCreationSummary,threadId:i}),t(je(r,i,n.threads))),e):(t({type:l.ClearSelection}),e)},[t,x,r,i]),C=u(),w=(0,V.useCallback)((e,n)=>{let{selectedThreadId:r,selectedProjectId:i}=C.getState();(r!==n||i!==e)&&t({type:l.SelectThread,threadId:n,projectId:e}),t({type:l.ClearUnreadAutomatedChat,threadId:n}),_(e,n).catch(e=>{$.error(`Failed to select thread:`,e)})},[t,C]),{handleCreateProject:E,cancelProjectCreation:D,handleCreateWebApp:O,handleCreateFolder:M,handleCreateBot:te,handleCreateZip:ne,handleCreateThread:F,handleOpenFolder:I,handleOpenPath:ie}=$e({consumeProjectStream:(0,V.useCallback)(async n=>{await hn(n,{dispatch:t,toast:s,refreshProjects:x,onProjectCreated:e?.onProjectCreated,setPendingSetupScriptConfirmation:v,activeCreationControllerRef:b})},[t,x,e?.onProjectCreated,s]),activeCreationControllerRef:b,projects:n,dispatch:t,toast:s,refreshProjects:x,onThreadCreateStart:e?.onThreadCreateStart}),L=(0,V.useCallback)(async(e,r)=>{t({type:l.AddDeletingThread,threadId:r}),t({type:l.ClearChatInputDraft,threadId:r});let i=n.find(t=>t.projectId===e),a=i?re(i):`project`,o=i?.threads.find(e=>e.threadId===r)?.title??`thread`,s=C.getState().selectedThreadId===r?A({threadId:r,projectId:e,projectName:a}):null,u=``,d=!0;function f(e){e.trim()&&(u+=`${e}\n`,s&&N(t,s.toolCallId,s.threadId,`${e}\n`))}function p(e){s&&P(t,s,u,{isError:e})}function h(){let n=je(e,r,i?.threads??[]);if(n.type===l.SelectThread){w(n.projectId,n.threadId);return}t(n)}function g(){let n=C.getState().selectedThreadId===r;t({type:l.RemoveThread,projectId:e,threadId:r}),n&&h()}async function _(e){await x(),e&&t({type:l.ConfigUpdated})}s&&j(t,s,`Deleting thread "${o}"...\n`);try{let n=await m(e,r);return n&&await ee(n,t=>{if(!t||typeof t!=`object`)return;let n=t;if(n.type===`progress`)f(typeof n.message==`string`?n.message:``);else if(n.type===`error`){let t=typeof n.message==`string`?n.message:`Unknown error`,i=rn(n);f(`Error: ${t}`),an($,c,{projectId:e,threadId:r,threadTitle:o,message:t,progressOutput:u,...i}),d=!1}}),p(!d),d&&(t({type:l.ClearThreadCreationSummary,threadId:r}),g()),await _(!0),d}catch(t){let n=t instanceof Error?t.message:`Unknown error`,i=rn(t);return y(n)?(f(`Deletion is still running on the server. Open Workspaces to refresh the list.`),p(!1),$.info(`Thread deletion stream disconnected before completion`,{projectId:e,threadId:r,message:n,...i}),!1):n.toLowerCase().includes(`not found`)?(g(),await _(!1),!0):(f(`Error: ${n}`),p(!0),an($,c,{projectId:e,threadId:r,threadTitle:o,message:n,progressOutput:u,cause:t,...i}),!1)}finally{t({type:l.RemoveDeletingThread,threadId:r})}},[w,x,t,c,n,C]),{confirmDeleteProject:ae,resolveSetupScriptConfirmation:oe}=Qe({dispatch:t,projects:n,refreshProjects:x,navigate:c,location:p,pendingSetupScriptConfirmation:h,setPendingSetupScriptConfirmation:v});return{projects:n,selectedProjectId:r,selectedThreadId:i,refreshProjects:x,refreshWorkspaces:S,handleSelectThread:w,handleCreateProject:E,cancelProjectCreation:D,handleCreateWebApp:O,handleCreateFolder:M,handleCreateBot:te,handleCreateZip:ne,handleOpenFolder:I,handleOpenPath:ie,handleCreateThread:F,handleDeleteThread:(0,V.useCallback)(async(e,n)=>ln.runQueuedDeletion(e,n,{reserve(e){t({type:l.AddDeletingThread,threadId:e})},release(e){t({type:l.RemoveDeletingThread,threadId:e})},deleteThread:L}),[t,L]),confirmDeleteProject:ae,pendingSetupScriptConfirmation:h,resolveSetupScriptConfirmation:oe}}export{Jt as a,Yt as c,Ie as d,Fe as f,qt as i,Wt as l,gn as n,Xt as o,Kt as r,Ut as s,un as t,Re as u};
@@ -0,0 +1 @@
1
+ import{i as e}from"./rolldown-runtime-Dd_uD5pT.js";import{o as t}from"./react-vendor-D61Uve5n.js";import{$ as n,A as r,E as i,k as a}from"./dist-v_MvKS2-.js";var o=e(t(),1);function s(e,t){if(e===void 0)return t;if(e!==null)return e}function c(e,t){return e===void 0?t:e}function l(e,t){return e===void 0?t:e}function u(e,t){if(e.length===0||t.length===0)return e;let n=new Map(t.map(e=>[e.threadId,e])),r=!1,i=e.map(function(e){let t=e.threads;return t?.some(e=>n.has(e.threadId))?(r=!0,{...e,threads:t.map(function(e){let t=n.get(e.threadId);return t?{...e,remoteMachineName:s(t.remoteMachineName,e.remoteMachineName),remoteUnavailable:t.remoteUnavailable,currentBranch:t.currentBranch||e.currentBranch,gitStatusDot:s(t.gitStatusDot,e.gitStatusDot),prNumber:s(t.prNumber,e.prNumber),currentConversationId:s(t.currentConversationId,e.currentConversationId),chatTitles:s(t.chatTitles,e.chatTitles),conversationModels:s(t.conversationModels,e.conversationModels),model:s(t.model,e.model),modelProvider:s(t.modelProvider,e.modelProvider),hasUnreadAutomatedChat:t.hasUnreadAutomatedChat}:e})}):e});return r?i:e}function d(e,t){if(t.length===0)return e;let n={...e};for(let e of t){let t=n[e.threadId];if(!t){n[e.threadId]=e;continue}n[e.threadId]={threadId:e.threadId,remoteMachineName:l(e.remoteMachineName,t.remoteMachineName),remoteUnavailable:e.remoteUnavailable,currentBranch:e.currentBranch||t.currentBranch,gitStatusDot:l(e.gitStatusDot,t.gitStatusDot),prNumber:c(e.prNumber,t.prNumber),currentConversationId:c(e.currentConversationId,t.currentConversationId),chatTitles:c(e.chatTitles,t.chatTitles),conversationModels:c(e.conversationModels,t.conversationModels),model:c(e.model,t.model),modelProvider:c(e.modelProvider,t.modelProvider),hasUnreadAutomatedChat:e.hasUnreadAutomatedChat}}return n}function f(e){return e.find(e=>r(e))||e.find(e=>a(e))}function p(e){return e.name?e.name:e.gitUrl?.split(`/`).pop()?.replace(`.git`,``)??e.projectId}function m(e){let t=f(e);if(t){let e=p(t).trim();if(e)return e}return i}function h(e,t,r){return t&&a(t)?p(t):r&&a(r)?p(r):!e||e===`build`?i:n(e)}function g(e,t,n){if(!t)return`Chat`;for(let r of e){let e=r.threads.find(e=>e.threadId===t);if(!e)continue;let i=e.chatTitles?.[n]?.trim();if(i)return i.length>50?`${i.substring(0,50)}...`:i}return`Chat`}function _(e,t){if(t)for(let n of e){let e=n.threads.find(e=>e.threadId===t);if(e)return e.currentConversationId?.trim()||void 0}}function v(e,t){return t.map(function(t){let n=e.find(e=>e.projectId===t.projectId);return n?{...t,threads:t.threads.map(function(e){let t=n.threads.find(t=>t.threadId===e.threadId)?.chatTitles;return!t||Object.keys(t).length===0?e:{...e,chatTitles:{...t,...e.chatTitles}}})}:t})}function y(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function b(...e){return t=>{let n=!1,r=e.map(e=>{let r=y(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():y(e[t],null)}}}}function x(...e){return o.useCallback(b(...e),e)}function S(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=S(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function C(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=S(e))&&(r&&(r+=` `),r+=t);return r}var w=`-`,T=e=>{let t=k(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{let n=e.split(w);return n[0]===``&&n.length!==1&&n.shift(),E(n,t)||O(e)},getConflictingClassGroupIds:(e,t)=>{let i=n[e]||[];return t&&r[e]?[...i,...r[e]]:i}}},E=(e,t)=>{if(e.length===0)return t.classGroupId;let n=e[0],r=t.nextPart.get(n),i=r?E(e.slice(1),r):void 0;if(i)return i;if(t.validators.length===0)return;let a=e.join(w);return t.validators.find(({validator:e})=>e(a))?.classGroupId},D=/^\[(.+)\]$/,O=e=>{if(D.test(e)){let t=D.exec(e)[1],n=t?.substring(0,t.indexOf(`:`));if(n)return`arbitrary..`+n}},k=e=>{let{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return N(Object.entries(e.classGroups),n).forEach(([e,n])=>{A(n,r,e,t)}),r},A=(e,t,n,r)=>{e.forEach(e=>{if(typeof e==`string`){let r=e===``?t:j(t,e);r.classGroupId=n;return}if(typeof e==`function`){if(M(e)){A(e(r),t,n,r);return}t.validators.push({validator:e,classGroupId:n});return}Object.entries(e).forEach(([e,i])=>{A(i,j(t,e),n,r)})})},j=(e,t)=>{let n=e;return t.split(w).forEach(e=>{n.nextPart.has(e)||n.nextPart.set(e,{nextPart:new Map,validators:[]}),n=n.nextPart.get(e)}),n},M=e=>e.isThemeGetter,N=(e,t)=>t?e.map(([e,n])=>[e,n.map(e=>typeof e==`string`?t+e:typeof e==`object`?Object.fromEntries(Object.entries(e).map(([e,n])=>[t+e,n])):e)]):e,P=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=new Map,r=new Map,i=(i,a)=>{n.set(i,a),t++,t>e&&(t=0,r=n,n=new Map)};return{get(e){let t=n.get(e);if(t!==void 0)return t;if((t=r.get(e))!==void 0)return i(e,t),t},set(e,t){n.has(e)?n.set(e,t):i(e,t)}}},F=`!`,I=e=>{let{separator:t,experimentalParseClassName:n}=e,r=t.length===1,i=t[0],a=t.length,o=e=>{let n=[],o=0,s=0,c;for(let l=0;l<e.length;l++){let u=e[l];if(o===0){if(u===i&&(r||e.slice(l,l+a)===t)){n.push(e.slice(s,l)),s=l+a;continue}if(u===`/`){c=l;continue}}u===`[`?o++:u===`]`&&o--}let l=n.length===0?e:e.substring(s),u=l.startsWith(F);return{modifiers:n,hasImportantModifier:u,baseClassName:u?l.substring(1):l,maybePostfixModifierPosition:c&&c>s?c-s:void 0}};return n?e=>n({className:e,parseClassName:o}):o},L=e=>{if(e.length<=1)return e;let t=[],n=[];return e.forEach(e=>{e[0]===`[`?(t.push(...n.sort(),e),n=[]):n.push(e)}),t.push(...n.sort()),t},ee=e=>({cache:P(e.cacheSize),parseClassName:I(e),...T(e)}),te=/\s+/,ne=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i}=t,a=[],o=e.trim().split(te),s=``;for(let e=o.length-1;e>=0;--e){let t=o[e],{modifiers:c,hasImportantModifier:l,baseClassName:u,maybePostfixModifierPosition:d}=n(t),f=!!d,p=r(f?u.substring(0,d):u);if(!p){if(!f){s=t+(s.length>0?` `+s:s);continue}if(p=r(u),!p){s=t+(s.length>0?` `+s:s);continue}f=!1}let m=L(c).join(`:`),h=l?m+F:m,g=h+p;if(a.includes(g))continue;a.push(g);let _=i(p,f);for(let e=0;e<_.length;++e){let t=_[e];a.push(h+t)}s=t+(s.length>0?` `+s:s)}return s};function re(){let e=0,t,n,r=``;for(;e<arguments.length;)(t=arguments[e++])&&(n=R(t))&&(r&&(r+=` `),r+=n);return r}var R=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=R(e[r]))&&(n&&(n+=` `),n+=t);return n};function ie(e,...t){let n,r,i,a=o;function o(o){return n=ee(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)}function s(e){let t=r(e);if(t)return t;let a=ne(e,n);return i(e,a),a}return function(){return a(re.apply(null,arguments))}}var z=e=>{let t=t=>t[e]||[];return t.isThemeGetter=!0,t},B=/^\[(?:([a-z-]+):)?(.+)\]$/i,ae=/^\d+\/\d+$/,oe=new Set([`px`,`full`,`screen`]),se=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ce=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,le=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,ue=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,de=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,V=e=>U(e)||oe.has(e)||ae.test(e),H=e=>Y(e,`length`,ye),U=e=>!!e&&!Number.isNaN(Number(e)),W=e=>Y(e,`number`,U),G=e=>!!e&&Number.isInteger(Number(e)),fe=e=>e.endsWith(`%`)&&U(e.slice(0,-1)),K=e=>B.test(e),q=e=>se.test(e),pe=new Set([`length`,`size`,`percentage`]),me=e=>Y(e,pe,X),he=e=>Y(e,`position`,X),ge=new Set([`image`,`url`]),_e=e=>Y(e,ge,xe),ve=e=>Y(e,``,be),J=()=>!0,Y=(e,t,n)=>{let r=B.exec(e);return r?r[1]?typeof t==`string`?r[1]===t:t.has(r[1]):n(r[2]):!1},ye=e=>ce.test(e)&&!le.test(e),X=()=>!1,be=e=>ue.test(e),xe=e=>de.test(e),Se=ie(()=>{let e=z(`colors`),t=z(`spacing`),n=z(`blur`),r=z(`brightness`),i=z(`borderColor`),a=z(`borderRadius`),o=z(`borderSpacing`),s=z(`borderWidth`),c=z(`contrast`),l=z(`grayscale`),u=z(`hueRotate`),d=z(`invert`),f=z(`gap`),p=z(`gradientColorStops`),m=z(`gradientColorStopPositions`),h=z(`inset`),g=z(`margin`),_=z(`opacity`),v=z(`padding`),y=z(`saturate`),b=z(`scale`),x=z(`sepia`),S=z(`skew`),C=z(`space`),w=z(`translate`),T=()=>[`auto`,`contain`,`none`],E=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],D=()=>[`auto`,K,t],O=()=>[K,t],k=()=>[``,V,H],A=()=>[`auto`,U,K],j=()=>[`bottom`,`center`,`left`,`left-bottom`,`left-top`,`right`,`right-bottom`,`right-top`,`top`],M=()=>[`solid`,`dashed`,`dotted`,`double`,`none`],N=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],P=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`],F=()=>[``,`0`,K],I=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],L=()=>[U,K];return{cacheSize:500,separator:`:`,theme:{colors:[J],spacing:[V,H],blur:[`none`,``,q,K],brightness:L(),borderColor:[e],borderRadius:[`none`,``,`full`,q,K],borderSpacing:O(),borderWidth:k(),contrast:L(),grayscale:F(),hueRotate:L(),invert:F(),gap:O(),gradientColorStops:[e],gradientColorStopPositions:[fe,H],inset:D(),margin:D(),opacity:L(),padding:O(),saturate:L(),scale:L(),sepia:F(),skew:L(),space:O(),translate:O()},classGroups:{aspect:[{aspect:[`auto`,`square`,`video`,K]}],container:[`container`],columns:[{columns:[q]}],"break-after":[{"break-after":I()}],"break-before":[{"break-before":I()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:[...j(),K]}],overflow:[{overflow:E()}],"overflow-x":[{"overflow-x":E()}],"overflow-y":[{"overflow-y":E()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:[h]}],"inset-x":[{"inset-x":[h]}],"inset-y":[{"inset-y":[h]}],start:[{start:[h]}],end:[{end:[h]}],top:[{top:[h]}],right:[{right:[h]}],bottom:[{bottom:[h]}],left:[{left:[h]}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[`auto`,G,K]}],basis:[{basis:D()}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`wrap`,`wrap-reverse`,`nowrap`]}],flex:[{flex:[`1`,`auto`,`initial`,`none`,K]}],grow:[{grow:F()}],shrink:[{shrink:F()}],order:[{order:[`first`,`last`,`none`,G,K]}],"grid-cols":[{"grid-cols":[J]}],"col-start-end":[{col:[`auto`,{span:[`full`,G,K]},K]}],"col-start":[{"col-start":A()}],"col-end":[{"col-end":A()}],"grid-rows":[{"grid-rows":[J]}],"row-start-end":[{row:[`auto`,{span:[G,K]},K]}],"row-start":[{"row-start":A()}],"row-end":[{"row-end":A()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":[`auto`,`min`,`max`,`fr`,K]}],"auto-rows":[{"auto-rows":[`auto`,`min`,`max`,`fr`,K]}],gap:[{gap:[f]}],"gap-x":[{"gap-x":[f]}],"gap-y":[{"gap-y":[f]}],"justify-content":[{justify:[`normal`,...P()]}],"justify-items":[{"justify-items":[`start`,`end`,`center`,`stretch`]}],"justify-self":[{"justify-self":[`auto`,`start`,`end`,`center`,`stretch`]}],"align-content":[{content:[`normal`,...P(),`baseline`]}],"align-items":[{items:[`start`,`end`,`center`,`baseline`,`stretch`]}],"align-self":[{self:[`auto`,`start`,`end`,`center`,`stretch`,`baseline`]}],"place-content":[{"place-content":[...P(),`baseline`]}],"place-items":[{"place-items":[`start`,`end`,`center`,`baseline`,`stretch`]}],"place-self":[{"place-self":[`auto`,`start`,`end`,`center`,`stretch`]}],p:[{p:[v]}],px:[{px:[v]}],py:[{py:[v]}],ps:[{ps:[v]}],pe:[{pe:[v]}],pt:[{pt:[v]}],pr:[{pr:[v]}],pb:[{pb:[v]}],pl:[{pl:[v]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[C]}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":[C]}],"space-y-reverse":[`space-y-reverse`],w:[{w:[`auto`,`min`,`max`,`fit`,`svw`,`lvw`,`dvw`,K,t]}],"min-w":[{"min-w":[K,t,`min`,`max`,`fit`]}],"max-w":[{"max-w":[K,t,`none`,`full`,`min`,`max`,`fit`,`prose`,{screen:[q]},q]}],h:[{h:[K,t,`auto`,`min`,`max`,`fit`,`svh`,`lvh`,`dvh`]}],"min-h":[{"min-h":[K,t,`min`,`max`,`fit`,`svh`,`lvh`,`dvh`]}],"max-h":[{"max-h":[K,t,`min`,`max`,`fit`,`svh`,`lvh`,`dvh`]}],size:[{size:[K,t,`auto`,`min`,`max`,`fit`]}],"font-size":[{text:[`base`,q,H]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`,W]}],"font-family":[{font:[J]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`,K]}],"line-clamp":[{"line-clamp":[`none`,U,W]}],leading:[{leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`,V,K]}],"list-image":[{"list-image":[`none`,K]}],"list-style-type":[{list:[`none`,`disc`,`decimal`,K]}],"list-style-position":[{list:[`inside`,`outside`]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[_]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[_]}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...M(),`wavy`]}],"text-decoration-thickness":[{decoration:[`auto`,`from-font`,V,H]}],"underline-offset":[{"underline-offset":[`auto`,V,K]}],"text-decoration-color":[{decoration:[e]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:O()}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,K]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,K]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-opacity":[{"bg-opacity":[_]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:[...j(),he]}],"bg-repeat":[{bg:[`no-repeat`,{repeat:[``,`x`,`y`,`round`,`space`]}]}],"bg-size":[{bg:[`auto`,`cover`,`contain`,me]}],"bg-image":[{bg:[`none`,{"gradient-to":[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},_e]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[p]}],"gradient-via":[{via:[p]}],"gradient-to":[{to:[p]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[_]}],"border-style":[{border:[...M(),`hidden`]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":[`divide-y-reverse`],"divide-opacity":[{"divide-opacity":[_]}],"divide-style":[{divide:M()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:[``,...M()]}],"outline-offset":[{"outline-offset":[V,K]}],"outline-w":[{outline:[V,H]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:k()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[_]}],"ring-offset-w":[{"ring-offset":[V,H]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:[``,`inner`,`none`,q,ve]}],"shadow-color":[{shadow:[J]}],opacity:[{opacity:[_]}],"mix-blend":[{"mix-blend":[...N(),`plus-lighter`,`plus-darker`]}],"bg-blend":[{"bg-blend":N()}],filter:[{filter:[``,`none`]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":[``,`none`,q,K]}],grayscale:[{grayscale:[l]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[d]}],saturate:[{saturate:[y]}],sepia:[{sepia:[x]}],"backdrop-filter":[{"backdrop-filter":[``,`none`]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[l]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[d]}],"backdrop-opacity":[{"backdrop-opacity":[_]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[x]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[`none`,`all`,``,`colors`,`opacity`,`shadow`,`transform`,K]}],duration:[{duration:L()}],ease:[{ease:[`linear`,`in`,`out`,`in-out`,K]}],delay:[{delay:L()}],animate:[{animate:[`none`,`spin`,`ping`,`pulse`,`bounce`,K]}],transform:[{transform:[``,`gpu`,`none`]}],scale:[{scale:[b]}],"scale-x":[{"scale-x":[b]}],"scale-y":[{"scale-y":[b]}],rotate:[{rotate:[G,K]}],"translate-x":[{"translate-x":[w]}],"translate-y":[{"translate-y":[w]}],"skew-x":[{"skew-x":[S]}],"skew-y":[{"skew-y":[S]}],"transform-origin":[{origin:[`center`,`top`,`top-right`,`right`,`bottom-right`,`bottom`,`bottom-left`,`left`,`top-left`,K]}],accent:[{accent:[`auto`,e]}],appearance:[{appearance:[`none`,`auto`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,K]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":[`none`,`auto`]}],resize:[{resize:[`none`,`y`,`x`,``]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,K]}],fill:[{fill:[e,`none`]}],"stroke-w":[{stroke:[V,H,W]}],stroke:[{stroke:[e,`none`]}],sr:[`sr-only`,`not-sr-only`],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-s`,`border-w-e`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-s`,`border-color-e`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]}}}),Z=6e4,Q=60*Z,Ce=24*Q;function $(e,t){if(!e)return null;let n=new Date(e).getTime();return Number.isNaN(n)?null:Math.max(t-n,0)}var we={minute(e){return`${e}m`},hour(e){return`${e}${e===1?`hr`:`hrs`}`},day(e){return`${e}d`}},Te={minute(e){return`${e} ${e===1?`min`:`mins`}`},hour(e){return`${e} ${e===1?`hr`:`hrs`}`},day(e){return`${e} ${e===1?`day`:`days`}`}};function Ee(e,t){return e<Z?`now`:e<Q?t.minute(Math.floor(e/Z)):e<Ce?t.hour(Math.floor(e/Q)):t.day(Math.floor(e/Ce))}function De(e){return e.toFixed(2).replace(/\.00$/,``)}function Oe(e,t=Date.now()){let n=$(e,t);return n===null?``:Ee(n,we)}function ke(e,t=Date.now()){let n=$(e,t);return n===null?``:Ee(n,Te)}function Ae(e,t=Date.now()){let n=$(e,t);if(n===null)return``;let r=Math.floor(n/1e3),i=Math.floor(r/60),a=r%60;return`${i}:${String(a).padStart(2,`0`)}`}function je(...e){return Se(C(e))}export{d as _,Oe as a,x as c,m as d,f,u as g,v as h,Ae as i,g as l,_ as m,ke as n,C as o,p,De as r,b as s,je as t,h as u};
@@ -0,0 +1 @@
1
+ import{t as e}from"./dist-CgbWuuq4.js";var t=class extends e{constructor(){super(),this.handleVisibilityChange=()=>{let e={isActive:document.hidden!==!0};this.notifyListeners(`appStateChange`,e),document.hidden?this.notifyListeners(`pause`,null):this.notifyListeners(`resume`,null)},document.addEventListener(`visibilitychange`,this.handleVisibilityChange,!1)}exitApp(){throw this.unimplemented(`Not implemented on web.`)}async getInfo(){throw this.unimplemented(`Not implemented on web.`)}async getLaunchUrl(){return{url:``}}async getState(){return{isActive:document.hidden!==!0}}async minimizeApp(){throw this.unimplemented(`Not implemented on web.`)}async toggleBackButtonHandler(){throw this.unimplemented(`Not implemented on web.`)}async getAppLanguage(){return{value:navigator.language.split(`-`)[0].toLowerCase()}}};export{t as AppWeb};
@@ -0,0 +1 @@
1
+ import{t as e}from"./dist-CgbWuuq4.js";import{B as t,z as n}from"./index-CcAwxnT5.js";var r=class extends e{constructor(){super(...arguments),this.selectionStarted=!1}async impact(e){let t=this.patternForImpact(e?.style);this.vibrateWithPattern(t)}async notification(e){let t=this.patternForNotification(e?.type);this.vibrateWithPattern(t)}async vibrate(e){let t=e?.duration||300;this.vibrateWithPattern([t])}async selectionStart(){this.selectionStarted=!0}async selectionChanged(){this.selectionStarted&&this.vibrateWithPattern([70])}async selectionEnd(){this.selectionStarted=!1}patternForImpact(e=n.Heavy){return e===n.Medium?[43]:e===n.Light?[20]:[61]}patternForNotification(e=t.Success){return e===t.Warning?[30,40,30,50,60]:e===t.Error?[27,45,50]:[35,65,21]}vibrateWithPattern(e){if(navigator.vibrate)navigator.vibrate(e);else throw this.unavailable(`Browser does not support the vibrate API`)}};export{r as HapticsWeb};
@@ -0,0 +1 @@
1
+ import{t as e}from"./dist-CgbWuuq4.js";var t=class extends e{constructor(){super(...arguments),this.wakeLock=null,this._isSupported=typeof navigator<`u`&&`wakeLock`in navigator,this.handleVisibilityChange=()=>{document.visibilityState===`visible`&&this.keepAwake()}}async keepAwake(){this._isSupported||this.throwUnsupportedError(),this.wakeLock&&await this.allowSleep(),this.wakeLock=await navigator.wakeLock.request(`screen`),document.addEventListener(`visibilitychange`,this.handleVisibilityChange),document.addEventListener(`fullscreenchange`,this.handleVisibilityChange)}async allowSleep(){var e;this._isSupported||this.throwUnsupportedError(),(e=this.wakeLock)==null||e.release(),this.wakeLock=null,document.removeEventListener(`visibilitychange`,this.handleVisibilityChange),document.removeEventListener(`fullscreenchange`,this.handleVisibilityChange)}async isSupported(){return{isSupported:this._isSupported}}async isKeptAwake(){return this._isSupported||this.throwUnsupportedError(),{isKeptAwake:!!this.wakeLock}}throwUnsupportedError(){throw this.unavailable(`Screen Wake Lock API not available in this browser.`)}};export{t as KeepAwakeWeb};
@@ -0,0 +1 @@
1
+ import{t as e}from"./dist-CgbWuuq4.js";import{d as t,f as n,u as r}from"./index-CcAwxnT5.js";var i=class extends e{async stopAndHideScanner(){console.log(window.OSBarcodeWebScanner),window.OSBarcodeWebScanner&&(await window.OSBarcodeWebScanner.stop(),window.OSBarcodeWebScanner=null),document.getElementById(`cap-os-barcode-scanner-container-dialog`).style.display=`none`}buildScannerElement(){if(document.getElementById(`cap-os-barcode-scanner-container`)){document.getElementById(`cap-os-barcode-scanner-container`).className=`scanner-container-display`;return}let e=document.body.appendChild(document.createElement(`div`));e.id=`cap-os-barcode-scanner-container`;let t=document.createElement(`div`);t.id=`cap-os-barcode-scanner-container-dialog`,t.className=`scanner-dialog`;let n=document.createElement(`div`);n.className=`scanner-dialog-inner`;let r=document.createElement(`span`);r.id=`cap-os-barcode-scanner-close-button`,r.className=`close-button`,r.innerHTML=`&times;`,n.appendChild(r);let i=document.createElement(`p`);i.innerHTML=`&nbsp;`,n.appendChild(i);let a=document.createElement(`div`);a.className=`scanner-container-full-width`,a.id=`cap-os-barcode-scanner-container-scanner`,n.appendChild(a),t.appendChild(n),e.appendChild(t)}async scanBarcode(e){return this.buildScannerElement(),document.getElementById(`cap-os-barcode-scanner-container-dialog`).style.display=`block`,new Promise((i,a)=>{let o={facingMode:e.cameraDirection===1?`environment`:`user`,hasScannerButton:!1,scanButton:e.scanButton!==void 0&&e.scanButton,showScanLine:!1,scanInstructions:e.scanInstructions?e.scanInstructions:``,orientation:e.scanOrientation?e.scanOrientation:r.PORTRAIT,showCameraSelection:e.web?.showCameraSelection?e.web.showCameraSelection:!1,typeHint:e.hint===17?void 0:e.hint,scannerFPS:e.web?.scannerFPS?e.web.scannerFPS:50},s=!1,c=document.getElementById(`cap-os-barcode-scanner-close-button`);c&&(c.onclick=async()=>{s||(s=!0,await this.stopAndHideScanner(),a(Error(`Couldn’t scan because the process was cancelled.`)))});let l=document.getElementById(`cap-os-barcode-scanner-container-scanner`);if(!l)throw Error(`Scanner Element is required for web`);window.OSBarcodeWebScanner=new n(l.id,{formatsToSupport:o.typeHint===void 0?void 0:[o.typeHint],verbose:void 0});let u={fps:o.scannerFPS,qrbox:l.getBoundingClientRect().width*(9/16)-10,aspectRatio:16/9,videoConstraints:{focusMode:`continuous`,height:{min:576,ideal:1920},deviceId:void 0,facingMode:o.facingMode}};window.OSBarcodeWebScanner.start({facingMode:o.facingMode},u,(e,n)=>{this.stopAndHideScanner(),i({ScanResult:e,format:n.result.format?.format??t.ALL})},e=>{[`NotFoundException`,`No barcode or QR code detected`,`No MultiFormat Readers were able to detect the code`].find(t=>e.indexOf(t)!==-1)||(this.stopAndHideScanner(),console.error(`[Scanner Web Error] ${e}`),a(e))})})}};export{i as CapacitorBarcodeScannerWeb};
@@ -23,7 +23,7 @@
23
23
 
24
24
  <title>Tarsk</title>
25
25
  <style>#startup-splash{z-index:9999;color:#fff;opacity:1;background:#101010;place-items:center;transition:opacity .5s;display:grid;position:fixed;inset:0}#startup-splash.is-hidden{opacity:0;pointer-events:none}#startup-splash-content{flex-direction:column;align-items:center;gap:16px;font:600 24px/1.2 system-ui,sans-serif;display:flex}#startup-splash img{object-fit:cover;border-radius:50%;width:128px;height:128px}@media (prefers-reduced-motion:reduce){#startup-splash{transition-duration:0s}}</style>
26
- <script type="module" crossorigin src="/assets/index-CalVAwXj.js"></script>
26
+ <script type="module" crossorigin src="/assets/index-CcAwxnT5.js"></script>
27
27
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Dd_uD5pT.js">
28
28
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-D61Uve5n.js">
29
29
  <link rel="modulepreload" crossorigin href="/assets/chunk-QFMPRPBF-Cy-_pFSM.js">
@@ -31,70 +31,70 @@
31
31
  <link rel="modulepreload" crossorigin href="/assets/useBaseQuery-yghQO052.js">
32
32
  <link rel="modulepreload" crossorigin href="/assets/useInfiniteQuery-BpKy1sCq.js">
33
33
  <link rel="modulepreload" crossorigin href="/assets/useQuery-DWt09r77.js">
34
- <link rel="modulepreload" crossorigin href="/assets/dist-D5vgS4RP.js">
35
- <link rel="modulepreload" crossorigin href="/assets/api-COO2LfdU.js">
36
- <link rel="modulepreload" crossorigin href="/assets/query-keys-BwswkbMn.js">
37
- <link rel="modulepreload" crossorigin href="/assets/use-account-settings-query-AUeOqKvo.js">
38
- <link rel="modulepreload" crossorigin href="/assets/utils-mYB1USG6.js">
39
- <link rel="modulepreload" crossorigin href="/assets/store-CxUwqrZ5.js">
34
+ <link rel="modulepreload" crossorigin href="/assets/dist-v_MvKS2-.js">
35
+ <link rel="modulepreload" crossorigin href="/assets/api-Cp9I7CxD.js">
36
+ <link rel="modulepreload" crossorigin href="/assets/query-keys-CcnonAAG.js">
37
+ <link rel="modulepreload" crossorigin href="/assets/use-account-settings-query-D_qL1I4w.js">
38
+ <link rel="modulepreload" crossorigin href="/assets/utils-CqsIXqSC.js">
39
+ <link rel="modulepreload" crossorigin href="/assets/store-W78TGOIO.js">
40
40
  <link rel="modulepreload" crossorigin href="/assets/terminal-output-activity-D_FxlE-L.js">
41
- <link rel="modulepreload" crossorigin href="/assets/create-project-workspace-C4tXAUWJ.js">
41
+ <link rel="modulepreload" crossorigin href="/assets/create-project-workspace-CJ94yHAB.js">
42
+ <link rel="modulepreload" crossorigin href="/assets/suspense-resource-DzlMlIgR.js">
43
+ <link rel="modulepreload" crossorigin href="/assets/task-utils-Cnq9Eszt.js">
44
+ <link rel="modulepreload" crossorigin href="/assets/random-uuid-Dc3UrwVo.js">
45
+ <link rel="modulepreload" crossorigin href="/assets/use-toast-CKgZ8YeP.js">
46
+ <link rel="modulepreload" crossorigin href="/assets/chat-dock-context-DbiJNr3O.js">
47
+ <link rel="modulepreload" crossorigin href="/assets/explorer-tab-context-BwR8CM8l.js">
48
+ <link rel="modulepreload" crossorigin href="/assets/main-tab-context-Dsp4OYi9.js">
49
+ <link rel="modulepreload" crossorigin href="/assets/use-open-chat-dock-panel-CXzpgxVs.js">
50
+ <link rel="modulepreload" crossorigin href="/assets/remote-media-url-C-GdJb-D.js">
51
+ <link rel="modulepreload" crossorigin href="/assets/dist-CgbWuuq4.js">
52
+ <link rel="modulepreload" crossorigin href="/assets/chat-handlers-context-DYU2LQ5V.js">
42
53
  <link rel="modulepreload" crossorigin href="/assets/explorer-media-CRzhs0NW.js">
43
54
  <link rel="modulepreload" crossorigin href="/assets/createLucideIcon-2A3hmV_e.js">
44
55
  <link rel="modulepreload" crossorigin href="/assets/check-skFQ1X72.js">
45
56
  <link rel="modulepreload" crossorigin href="/assets/copy-bi9iX3xn.js">
46
57
  <link rel="modulepreload" crossorigin href="/assets/download-CWhQNGlF.js">
47
- <link rel="modulepreload" crossorigin href="/assets/minus-l6BdrAEk.js">
58
+ <link rel="modulepreload" crossorigin href="/assets/external-link-Dcikmdm_.js">
59
+ <link rel="modulepreload" crossorigin href="/assets/minus-CgQcbBQT.js">
60
+ <link rel="modulepreload" crossorigin href="/assets/x-ByOPrz5I.js">
61
+ <link rel="modulepreload" crossorigin href="/assets/dist-AbkJBHH5.js">
62
+ <link rel="modulepreload" crossorigin href="/assets/es2015-eNVkKfFF.js">
63
+ <link rel="modulepreload" crossorigin href="/assets/dist-DfnQ9YJh.js">
64
+ <link rel="modulepreload" crossorigin href="/assets/use-browser-overlay-block-CO1pUEAZ.js">
65
+ <link rel="modulepreload" crossorigin href="/assets/dialog-D_12AsZd.js">
48
66
  <link rel="modulepreload" crossorigin href="/assets/play-Dn1mbRpD.js">
49
67
  <link rel="modulepreload" crossorigin href="/assets/plus-DoMzejDu.js">
50
68
  <link rel="modulepreload" crossorigin href="/assets/rotate-ccw-Dthg8Pv6.js">
51
- <link rel="modulepreload" crossorigin href="/assets/x-ByOPrz5I.js">
52
- <link rel="modulepreload" crossorigin href="/assets/button-Dp5XDZNR.js">
53
- <link rel="modulepreload" crossorigin href="/assets/dist-BTu7PDzc.js">
54
- <link rel="modulepreload" crossorigin href="/assets/dist-NcyjV9Gu.js">
55
- <link rel="modulepreload" crossorigin href="/assets/tooltip-CJKJfu0l.js">
56
- <link rel="modulepreload" crossorigin href="/assets/es2015-CE7VcoOH.js">
57
- <link rel="modulepreload" crossorigin href="/assets/dist-CqrmQxmV.js">
58
- <link rel="modulepreload" crossorigin href="/assets/browser-overlay-block-CiDtkfup.js">
59
- <link rel="modulepreload" crossorigin href="/assets/use-browser-overlay-block-z9imTmiZ.js">
60
- <link rel="modulepreload" crossorigin href="/assets/dialog-pHPeIGaB.js">
61
- <link rel="modulepreload" crossorigin href="/assets/explorer-tab-context-BwR8CM8l.js">
62
- <link rel="modulepreload" crossorigin href="/assets/random-uuid-Dc3UrwVo.js">
63
- <link rel="modulepreload" crossorigin href="/assets/chat-dock-context-ymLoO90X.js">
64
- <link rel="modulepreload" crossorigin href="/assets/main-tab-context-Dsp4OYi9.js">
65
- <link rel="modulepreload" crossorigin href="/assets/use-open-chat-dock-panel-w3hc5Vxn.js">
66
- <link rel="modulepreload" crossorigin href="/assets/use-toast-CKgZ8YeP.js">
67
- <link rel="modulepreload" crossorigin href="/assets/remote-media-url-B8OFqxOM.js">
68
- <link rel="modulepreload" crossorigin href="/assets/markdown-renderer-DXRBG7uP.js">
69
- <link rel="modulepreload" crossorigin href="/assets/suspense-resource-DzlMlIgR.js">
70
- <link rel="modulepreload" crossorigin href="/assets/task-utils-WAei2PDi.js">
69
+ <link rel="modulepreload" crossorigin href="/assets/button-DDaJhJP1.js">
70
+ <link rel="modulepreload" crossorigin href="/assets/dist-2xH_pFmV.js">
71
+ <link rel="modulepreload" crossorigin href="/assets/tooltip-CqwCZ7wt.js">
72
+ <link rel="modulepreload" crossorigin href="/assets/markdown-renderer-DQONI6WG.js">
71
73
  <link rel="modulepreload" crossorigin href="/assets/chevron-down-Bpo4ncEN.js">
72
74
  <link rel="modulepreload" crossorigin href="/assets/chevron-right-Dga3q1bZ.js">
73
75
  <link rel="modulepreload" crossorigin href="/assets/chevron-up-BxgjX7B3.js">
74
76
  <link rel="modulepreload" crossorigin href="/assets/circle-alert-CC2eO3yt.js">
75
77
  <link rel="modulepreload" crossorigin href="/assets/circle-DQwOli2u.js">
76
- <link rel="modulepreload" crossorigin href="/assets/external-link-Dcikmdm_.js">
77
78
  <link rel="modulepreload" crossorigin href="/assets/grip-vertical-_jCIw8Mw.js">
78
79
  <link rel="modulepreload" crossorigin href="/assets/loader-circle-CrqRIqdA.js">
79
- <link rel="modulepreload" crossorigin href="/assets/dist-lFBinzor.js">
80
- <link rel="modulepreload" crossorigin href="/assets/label-C31qF5zZ.js">
80
+ <link rel="modulepreload" crossorigin href="/assets/square-CtxvwmM2.js">
81
+ <link rel="modulepreload" crossorigin href="/assets/dist-B-h6Wj39.js">
82
+ <link rel="modulepreload" crossorigin href="/assets/label-BCs5CZEs.js">
81
83
  <link rel="modulepreload" crossorigin href="/assets/dist-Dx8OsX8-.js">
82
- <link rel="modulepreload" crossorigin href="/assets/dist-f54JuzFV.js">
83
- <link rel="modulepreload" crossorigin href="/assets/dist-ButPmyjr.js">
84
- <link rel="modulepreload" crossorigin href="/assets/dist-BOfRC57H.js">
85
- <link rel="modulepreload" crossorigin href="/assets/scroll-area-BWc4OPsj.js">
86
- <link rel="modulepreload" crossorigin href="/assets/ai-spinner-DHwhlk4j.js">
87
- <link rel="modulepreload" crossorigin href="/assets/progress-indicator-4zQXqOqP.js">
88
- <link rel="modulepreload" crossorigin href="/assets/alert-dialog-DVaEQlVa.js">
84
+ <link rel="modulepreload" crossorigin href="/assets/dist-DOz2WXwX.js">
85
+ <link rel="modulepreload" crossorigin href="/assets/dist-pCVg1Jdl.js">
86
+ <link rel="modulepreload" crossorigin href="/assets/dist-JGbQ_EJY.js">
87
+ <link rel="modulepreload" crossorigin href="/assets/scroll-area-DGF9wUqQ.js">
88
+ <link rel="modulepreload" crossorigin href="/assets/progress-indicator-hJ74ac5W.js">
89
+ <link rel="modulepreload" crossorigin href="/assets/alert-dialog-BcZULJsX.js">
89
90
  <link rel="modulepreload" crossorigin href="/assets/use-suspense-resource-uCX26gOk.js">
90
- <link rel="modulepreload" crossorigin href="/assets/use-projects-BmhAMgxB.js">
91
- <link rel="modulepreload" crossorigin href="/assets/api-BdebJfuN.js">
92
- <link rel="modulepreload" crossorigin href="/assets/explorer-file-drop-CEbBlDEp.js">
91
+ <link rel="modulepreload" crossorigin href="/assets/use-projects-B0xTjTaA.js">
92
+ <link rel="modulepreload" crossorigin href="/assets/api-8Rp2LlXt.js">
93
+ <link rel="modulepreload" crossorigin href="/assets/explorer-file-drop-DAP7ha-E.js">
93
94
  <link rel="modulepreload" crossorigin href="/assets/dist-CkGJjZXY.js">
94
- <link rel="modulepreload" crossorigin href="/assets/select-B6RizwDW.js">
95
- <link rel="modulepreload" crossorigin href="/assets/mcp-manager-C3K_62H2.js">
96
- <link rel="modulepreload" crossorigin href="/assets/checkbox-D-BV8-Z_.js">
97
- <link rel="stylesheet" crossorigin href="/assets/index-BBLA5zVt.css">
95
+ <link rel="modulepreload" crossorigin href="/assets/select-DMcNYwgt.js">
96
+ <link rel="modulepreload" crossorigin href="/assets/mcp-manager-D2FG-h2e.js">
97
+ <link rel="stylesheet" crossorigin href="/assets/index-dNrgKdYv.css">
98
98
  </head>
99
99
  <body class="font-sans antialiased">
100
100
  <div id="startup-splash" role="status" aria-label="Tarsk is starting">