@bryanhu/codexly 0.26.0 → 0.26.1

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 (240) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/README.md +2 -0
  3. package/README.zh-CN.md +2 -0
  4. package/dist/{chunk-SVPC5JYN.js → chunk-FX332BZJ.js} +295 -173
  5. package/dist/{chunk-WP6LVYP6.js → chunk-GGX2MAHU.js} +1 -1
  6. package/dist/cli.js +3 -3
  7. package/dist/providers/codex/index.js +1 -1
  8. package/dist/server/index.js +2 -2
  9. package/dist/web/.vite/manifest.json +123 -129
  10. package/dist/web/.vite/manifest.json.br +0 -0
  11. package/dist/web/.vite/manifest.json.gz +0 -0
  12. package/dist/web/assets/{agent-settings-panel-3vNJzYxy.js → agent-settings-panel-8_RUBhs0.js} +1 -1
  13. package/dist/web/assets/agent-settings-panel-8_RUBhs0.js.br +0 -0
  14. package/dist/web/assets/agent-settings-panel-8_RUBhs0.js.gz +0 -0
  15. package/dist/web/assets/attachments-udHAnE7I.js +1 -0
  16. package/dist/web/assets/attachments-udHAnE7I.js.br +0 -0
  17. package/dist/web/assets/attachments-udHAnE7I.js.gz +0 -0
  18. package/dist/web/assets/{background-image-picker-BnN4byHx.js → background-image-picker-Df3_zQb2.js} +1 -1
  19. package/dist/web/assets/background-image-picker-Df3_zQb2.js.br +0 -0
  20. package/dist/web/assets/background-image-picker-Df3_zQb2.js.gz +0 -0
  21. package/dist/web/assets/{bing-wallpaper-queries-DBfS-J9B.js → bing-wallpaper-queries-DVucugQO.js} +1 -1
  22. package/dist/web/assets/bing-wallpaper-queries-DVucugQO.js.br +0 -0
  23. package/dist/web/assets/bing-wallpaper-queries-DVucugQO.js.gz +0 -0
  24. package/dist/web/assets/{button-group-D12I7ve_.js → button-group-CirVWfjl.js} +1 -1
  25. package/dist/web/assets/button-group-CirVWfjl.js.br +0 -0
  26. package/dist/web/assets/button-group-CirVWfjl.js.gz +0 -0
  27. package/dist/web/assets/{code-block-D1uYiL_F.js → code-block-DLfTLy00.js} +1 -1
  28. package/dist/web/assets/code-block-DLfTLy00.js.br +0 -0
  29. package/dist/web/assets/code-block-DLfTLy00.js.gz +0 -0
  30. package/dist/web/assets/{commit-settings-panel-BL8cUz7m.js → commit-settings-panel-BP7fUf97.js} +1 -1
  31. package/dist/web/assets/commit-settings-panel-BP7fUf97.js.br +0 -0
  32. package/dist/web/assets/commit-settings-panel-BP7fUf97.js.gz +0 -0
  33. package/dist/web/assets/{context-menu-DTan8DZT.js → context-menu-BfQCu_3I.js} +1 -1
  34. package/dist/web/assets/context-menu-BfQCu_3I.js.br +0 -0
  35. package/dist/web/assets/context-menu-BfQCu_3I.js.gz +0 -0
  36. package/dist/web/assets/{file-review-dialog-C8FuVq6z.js → file-review-dialog-DmW8vvTf.js} +1 -1
  37. package/dist/web/assets/file-review-dialog-DmW8vvTf.js.br +0 -0
  38. package/dist/web/assets/file-review-dialog-DmW8vvTf.js.gz +0 -0
  39. package/dist/web/assets/{git-history-panel-S8KZ3GRO.js → git-history-panel-5IJPBbLW.js} +1 -1
  40. package/dist/web/assets/git-history-panel-5IJPBbLW.js.br +0 -0
  41. package/dist/web/assets/git-history-panel-5IJPBbLW.js.gz +0 -0
  42. package/dist/web/assets/{global-search-dialog-B2A_CKa6.js → global-search-dialog-DqzqxQHS.js} +2 -2
  43. package/dist/web/assets/global-search-dialog-DqzqxQHS.js.br +0 -0
  44. package/dist/web/assets/global-search-dialog-DqzqxQHS.js.gz +0 -0
  45. package/dist/web/assets/{global-settings-about-C4XFeahF.js → global-settings-about-7PSpoz5W.js} +1 -1
  46. package/dist/web/assets/global-settings-about-7PSpoz5W.js.br +0 -0
  47. package/dist/web/assets/global-settings-about-7PSpoz5W.js.gz +0 -0
  48. package/dist/web/assets/{global-settings-fields-1OYz34rQ.js → global-settings-fields-xvQeQJr1.js} +1 -1
  49. package/dist/web/assets/global-settings-fields-xvQeQJr1.js.br +0 -0
  50. package/dist/web/assets/global-settings-fields-xvQeQJr1.js.gz +0 -0
  51. package/dist/web/assets/{global-settings-model-CkNPJqQo.js → global-settings-model-DMYn1Bt6.js} +1 -1
  52. package/dist/web/assets/global-settings-model-DMYn1Bt6.js.br +0 -0
  53. package/dist/web/assets/global-settings-model-DMYn1Bt6.js.gz +0 -0
  54. package/dist/web/assets/{global-settings-page-DxD6yU4k.js → global-settings-page-C6T65JVw.js} +2 -2
  55. package/dist/web/assets/global-settings-page-C6T65JVw.js.br +0 -0
  56. package/dist/web/assets/global-settings-page-C6T65JVw.js.gz +0 -0
  57. package/dist/web/assets/{global-settings-pets-dz0Z49Au.js → global-settings-pets-TOCiCPMA.js} +1 -1
  58. package/dist/web/assets/global-settings-pets-TOCiCPMA.js.br +0 -0
  59. package/dist/web/assets/global-settings-pets-TOCiCPMA.js.gz +0 -0
  60. package/dist/web/assets/{history-task-timeline-CXIVfjfN.js → history-task-timeline-BjSZCOe5.js} +1 -1
  61. package/dist/web/assets/history-task-timeline-BjSZCOe5.js.br +0 -0
  62. package/dist/web/assets/history-task-timeline-BjSZCOe5.js.gz +0 -0
  63. package/dist/web/assets/index-Bh1ViCgq.css +2 -0
  64. package/dist/web/assets/index-Bh1ViCgq.css.br +0 -0
  65. package/dist/web/assets/index-Bh1ViCgq.css.gz +0 -0
  66. package/dist/web/assets/index-DulCmWgc.js +4 -0
  67. package/dist/web/assets/index-DulCmWgc.js.br +0 -0
  68. package/dist/web/assets/index-DulCmWgc.js.gz +0 -0
  69. package/dist/web/assets/{installed-skills-pane-DrDfE7aK.js → installed-skills-pane-B4PSRw8n.js} +1 -1
  70. package/dist/web/assets/installed-skills-pane-B4PSRw8n.js.br +0 -0
  71. package/dist/web/assets/installed-skills-pane-B4PSRw8n.js.gz +0 -0
  72. package/dist/web/assets/lazy-message-response-C6MEVPZ6.js +2 -0
  73. package/dist/web/assets/lazy-message-response-C6MEVPZ6.js.br +0 -0
  74. package/dist/web/assets/lazy-message-response-C6MEVPZ6.js.gz +0 -0
  75. package/dist/web/assets/{mcp-management-pane-B-KELtkr.js → mcp-management-pane-DISZ6zAo.js} +1 -1
  76. package/dist/web/assets/mcp-management-pane-DISZ6zAo.js.br +0 -0
  77. package/dist/web/assets/mcp-management-pane-DISZ6zAo.js.gz +0 -0
  78. package/dist/web/assets/{message-response-9LYhGlVh.js → message-response-COcV-sme.js} +2 -2
  79. package/dist/web/assets/message-response-COcV-sme.js.br +0 -0
  80. package/dist/web/assets/message-response-COcV-sme.js.gz +0 -0
  81. package/dist/web/assets/{official-plugins-pane-stB5fq6p.js → official-plugins-pane-DZXRsviv.js} +1 -1
  82. package/dist/web/assets/official-plugins-pane-DZXRsviv.js.br +0 -0
  83. package/dist/web/assets/official-plugins-pane-DZXRsviv.js.gz +0 -0
  84. package/dist/web/assets/{personalization-settings-panel-DRNKBGTV.js → personalization-settings-panel-DPn5C34w.js} +1 -1
  85. package/dist/web/assets/personalization-settings-panel-DPn5C34w.js.br +0 -0
  86. package/dist/web/assets/personalization-settings-panel-DPn5C34w.js.gz +0 -0
  87. package/dist/web/assets/{project-file-popup-page-BRFUG0CW.js → project-file-popup-page-Ck0bKSWm.js} +1 -1
  88. package/dist/web/assets/project-file-popup-page-Ck0bKSWm.js.br +0 -0
  89. package/dist/web/assets/project-file-popup-page-Ck0bKSWm.js.gz +0 -0
  90. package/dist/web/assets/{project-source-dialog-D1KMgF48.js → project-source-dialog-B-MQYJ3E.js} +1 -1
  91. package/dist/web/assets/project-source-dialog-B-MQYJ3E.js.br +0 -0
  92. package/dist/web/assets/project-source-dialog-B-MQYJ3E.js.gz +0 -0
  93. package/dist/web/assets/{project-source-panel-bumoDklb.js → project-source-panel-CsLDvhDw.js} +1 -1
  94. package/dist/web/assets/project-source-panel-CsLDvhDw.js.br +0 -0
  95. package/dist/web/assets/project-source-panel-CsLDvhDw.js.gz +0 -0
  96. package/dist/web/assets/{prompt-input-CXZBM7yg.js → prompt-input-CDL7WoS0.js} +1 -1
  97. package/dist/web/assets/prompt-input-CDL7WoS0.js.br +0 -0
  98. package/dist/web/assets/prompt-input-CDL7WoS0.js.gz +0 -0
  99. package/dist/web/assets/prompt-input-controls-QVtFSyXt.js +1 -0
  100. package/dist/web/assets/prompt-input-controls-QVtFSyXt.js.br +0 -0
  101. package/dist/web/assets/prompt-input-controls-QVtFSyXt.js.gz +0 -0
  102. package/dist/web/assets/{message-file-download-B0Yykdg4.js → prompt-reference-token-B6xz1rK0.js} +1 -1
  103. package/dist/web/assets/prompt-reference-token-B6xz1rK0.js.br +0 -0
  104. package/dist/web/assets/prompt-reference-token-B6xz1rK0.js.gz +0 -0
  105. package/dist/web/assets/{scheduled-task-date-time-picker-D5kkkH0J.js → scheduled-task-date-time-picker-Bz4CMtuJ.js} +1 -1
  106. package/dist/web/assets/scheduled-task-date-time-picker-Bz4CMtuJ.js.br +0 -0
  107. package/dist/web/assets/scheduled-task-date-time-picker-Bz4CMtuJ.js.gz +0 -0
  108. package/dist/web/assets/{scheduled-task-schedule-bzu0AAs6.js → scheduled-task-schedule-WjXySwP5.js} +1 -1
  109. package/dist/web/assets/scheduled-task-schedule-WjXySwP5.js.br +0 -0
  110. package/dist/web/assets/scheduled-task-schedule-WjXySwP5.js.gz +0 -0
  111. package/dist/web/assets/{scheduled-tasks-container-CkBw4tiQ.js → scheduled-tasks-container-CRRPfXJV.js} +2 -2
  112. package/dist/web/assets/scheduled-tasks-container-CRRPfXJV.js.br +0 -0
  113. package/dist/web/assets/scheduled-tasks-container-CRRPfXJV.js.gz +0 -0
  114. package/dist/web/assets/{settings-personalization-pnuLPt34.js → settings-personalization-r7Vj4sxv.js} +1 -1
  115. package/dist/web/assets/settings-personalization-r7Vj4sxv.js.br +0 -0
  116. package/dist/web/assets/settings-personalization-r7Vj4sxv.js.gz +0 -0
  117. package/dist/web/assets/{sheet-DiMxIv8P.js → sheet-CT_gmFL4.js} +1 -1
  118. package/dist/web/assets/sheet-CT_gmFL4.js.br +0 -0
  119. package/dist/web/assets/sheet-CT_gmFL4.js.gz +0 -0
  120. package/dist/web/assets/{skills-market-container-D-EJNYqj.js → skills-market-container-Diw6kUxR.js} +2 -2
  121. package/dist/web/assets/skills-market-container-Diw6kUxR.js.br +0 -0
  122. package/dist/web/assets/skills-market-container-Diw6kUxR.js.gz +0 -0
  123. package/dist/web/assets/task-timeline-store-jFYcKgsk.js +6 -0
  124. package/dist/web/assets/task-timeline-store-jFYcKgsk.js.br +0 -0
  125. package/dist/web/assets/task-timeline-store-jFYcKgsk.js.gz +0 -0
  126. package/dist/web/assets/{third-party-marketplace-pane-rC9NGfhR.js → third-party-marketplace-pane-BZREKs5z.js} +1 -1
  127. package/dist/web/assets/third-party-marketplace-pane-BZREKs5z.js.br +0 -0
  128. package/dist/web/assets/third-party-marketplace-pane-BZREKs5z.js.gz +0 -0
  129. package/dist/web/assets/workbench-composer-B4cbples.js +4 -0
  130. package/dist/web/assets/workbench-composer-B4cbples.js.br +0 -0
  131. package/dist/web/assets/workbench-composer-B4cbples.js.gz +0 -0
  132. package/dist/web/assets/{workbench-inspector-changes-lyYWVbsH.js → workbench-inspector-changes-CqCm9o_7.js} +2 -2
  133. package/dist/web/assets/workbench-inspector-changes-CqCm9o_7.js.br +0 -0
  134. package/dist/web/assets/workbench-inspector-changes-CqCm9o_7.js.gz +0 -0
  135. package/dist/web/assets/{workbench-pet-canvas-GtLypdG1.js → workbench-pet-canvas-BOk8JcmK.js} +1 -1
  136. package/dist/web/assets/workbench-pet-canvas-BOk8JcmK.js.br +0 -0
  137. package/dist/web/assets/workbench-pet-canvas-BOk8JcmK.js.gz +0 -0
  138. package/dist/web/assets/{workbench-shell-L9PpBWL7.js → workbench-shell-BNNM6Nh_.js} +3 -3
  139. package/dist/web/assets/workbench-shell-BNNM6Nh_.js.br +0 -0
  140. package/dist/web/assets/workbench-shell-BNNM6Nh_.js.gz +0 -0
  141. package/dist/web/index.html +2 -2
  142. package/dist/web/index.html.br +0 -0
  143. package/dist/web/index.html.gz +0 -0
  144. package/package.json +4 -3
  145. package/dist/web/assets/agent-settings-panel-3vNJzYxy.js.br +0 -0
  146. package/dist/web/assets/agent-settings-panel-3vNJzYxy.js.gz +0 -0
  147. package/dist/web/assets/attachments-BF0J6h1n.js +0 -1
  148. package/dist/web/assets/attachments-BF0J6h1n.js.br +0 -0
  149. package/dist/web/assets/attachments-BF0J6h1n.js.gz +0 -0
  150. package/dist/web/assets/background-image-picker-BnN4byHx.js.br +0 -0
  151. package/dist/web/assets/background-image-picker-BnN4byHx.js.gz +0 -0
  152. package/dist/web/assets/bing-wallpaper-queries-DBfS-J9B.js.br +0 -0
  153. package/dist/web/assets/bing-wallpaper-queries-DBfS-J9B.js.gz +0 -0
  154. package/dist/web/assets/button-group-D12I7ve_.js.br +0 -0
  155. package/dist/web/assets/button-group-D12I7ve_.js.gz +0 -0
  156. package/dist/web/assets/code-block-D1uYiL_F.js.br +0 -0
  157. package/dist/web/assets/code-block-D1uYiL_F.js.gz +0 -0
  158. package/dist/web/assets/commit-settings-panel-BL8cUz7m.js.br +0 -0
  159. package/dist/web/assets/commit-settings-panel-BL8cUz7m.js.gz +0 -0
  160. package/dist/web/assets/context-menu-DTan8DZT.js.br +0 -0
  161. package/dist/web/assets/context-menu-DTan8DZT.js.gz +0 -0
  162. package/dist/web/assets/file-review-dialog-C8FuVq6z.js.br +0 -0
  163. package/dist/web/assets/file-review-dialog-C8FuVq6z.js.gz +0 -0
  164. package/dist/web/assets/git-history-panel-S8KZ3GRO.js.br +0 -0
  165. package/dist/web/assets/git-history-panel-S8KZ3GRO.js.gz +0 -0
  166. package/dist/web/assets/global-search-dialog-B2A_CKa6.js.br +0 -0
  167. package/dist/web/assets/global-search-dialog-B2A_CKa6.js.gz +0 -0
  168. package/dist/web/assets/global-settings-about-C4XFeahF.js.br +0 -0
  169. package/dist/web/assets/global-settings-about-C4XFeahF.js.gz +0 -0
  170. package/dist/web/assets/global-settings-fields-1OYz34rQ.js.br +0 -0
  171. package/dist/web/assets/global-settings-fields-1OYz34rQ.js.gz +0 -0
  172. package/dist/web/assets/global-settings-model-CkNPJqQo.js.br +0 -0
  173. package/dist/web/assets/global-settings-model-CkNPJqQo.js.gz +0 -0
  174. package/dist/web/assets/global-settings-page-DxD6yU4k.js.br +0 -0
  175. package/dist/web/assets/global-settings-page-DxD6yU4k.js.gz +0 -0
  176. package/dist/web/assets/global-settings-pets-dz0Z49Au.js.br +0 -0
  177. package/dist/web/assets/global-settings-pets-dz0Z49Au.js.gz +0 -0
  178. package/dist/web/assets/history-task-timeline-CXIVfjfN.js.br +0 -0
  179. package/dist/web/assets/history-task-timeline-CXIVfjfN.js.gz +0 -0
  180. package/dist/web/assets/index-D-vXfAxU.css +0 -2
  181. package/dist/web/assets/index-D-vXfAxU.css.br +0 -0
  182. package/dist/web/assets/index-D-vXfAxU.css.gz +0 -0
  183. package/dist/web/assets/index-DvbRlATw.js +0 -4
  184. package/dist/web/assets/index-DvbRlATw.js.br +0 -0
  185. package/dist/web/assets/index-DvbRlATw.js.gz +0 -0
  186. package/dist/web/assets/installed-skills-pane-DrDfE7aK.js.br +0 -0
  187. package/dist/web/assets/installed-skills-pane-DrDfE7aK.js.gz +0 -0
  188. package/dist/web/assets/lazy-message-response-DaxWaQQB.js +0 -2
  189. package/dist/web/assets/lazy-message-response-DaxWaQQB.js.br +0 -0
  190. package/dist/web/assets/lazy-message-response-DaxWaQQB.js.gz +0 -0
  191. package/dist/web/assets/mcp-management-pane-B-KELtkr.js.br +0 -0
  192. package/dist/web/assets/mcp-management-pane-B-KELtkr.js.gz +0 -0
  193. package/dist/web/assets/message-file-download-B0Yykdg4.js.br +0 -1
  194. package/dist/web/assets/message-file-download-B0Yykdg4.js.gz +0 -0
  195. package/dist/web/assets/message-response-9LYhGlVh.js.br +0 -0
  196. package/dist/web/assets/message-response-9LYhGlVh.js.gz +0 -0
  197. package/dist/web/assets/official-plugins-pane-stB5fq6p.js.br +0 -0
  198. package/dist/web/assets/official-plugins-pane-stB5fq6p.js.gz +0 -0
  199. package/dist/web/assets/personalization-settings-panel-DRNKBGTV.js.br +0 -0
  200. package/dist/web/assets/personalization-settings-panel-DRNKBGTV.js.gz +0 -0
  201. package/dist/web/assets/project-file-popup-page-BRFUG0CW.js.br +0 -0
  202. package/dist/web/assets/project-file-popup-page-BRFUG0CW.js.gz +0 -0
  203. package/dist/web/assets/project-source-dialog-D1KMgF48.js.br +0 -0
  204. package/dist/web/assets/project-source-dialog-D1KMgF48.js.gz +0 -0
  205. package/dist/web/assets/project-source-panel-bumoDklb.js.br +0 -0
  206. package/dist/web/assets/project-source-panel-bumoDklb.js.gz +0 -0
  207. package/dist/web/assets/prompt-input-CXZBM7yg.js.br +0 -0
  208. package/dist/web/assets/prompt-input-CXZBM7yg.js.gz +0 -0
  209. package/dist/web/assets/prompt-input-controls-DDBFb1Bv.js +0 -1
  210. package/dist/web/assets/prompt-input-controls-DDBFb1Bv.js.br +0 -0
  211. package/dist/web/assets/prompt-input-controls-DDBFb1Bv.js.gz +0 -0
  212. package/dist/web/assets/prompt-reference-token-Cxx6C-IR.js +0 -1
  213. package/dist/web/assets/prompt-reference-token-Cxx6C-IR.js.br +0 -0
  214. package/dist/web/assets/prompt-reference-token-Cxx6C-IR.js.gz +0 -0
  215. package/dist/web/assets/scheduled-task-date-time-picker-D5kkkH0J.js.br +0 -0
  216. package/dist/web/assets/scheduled-task-date-time-picker-D5kkkH0J.js.gz +0 -0
  217. package/dist/web/assets/scheduled-task-schedule-bzu0AAs6.js.br +0 -0
  218. package/dist/web/assets/scheduled-task-schedule-bzu0AAs6.js.gz +0 -0
  219. package/dist/web/assets/scheduled-tasks-container-CkBw4tiQ.js.br +0 -0
  220. package/dist/web/assets/scheduled-tasks-container-CkBw4tiQ.js.gz +0 -0
  221. package/dist/web/assets/settings-personalization-pnuLPt34.js.br +0 -0
  222. package/dist/web/assets/settings-personalization-pnuLPt34.js.gz +0 -0
  223. package/dist/web/assets/sheet-DiMxIv8P.js.br +0 -0
  224. package/dist/web/assets/sheet-DiMxIv8P.js.gz +0 -0
  225. package/dist/web/assets/skills-market-container-D-EJNYqj.js.br +0 -0
  226. package/dist/web/assets/skills-market-container-D-EJNYqj.js.gz +0 -0
  227. package/dist/web/assets/task-timeline-store-Ca-wQLgJ.js +0 -6
  228. package/dist/web/assets/task-timeline-store-Ca-wQLgJ.js.br +0 -0
  229. package/dist/web/assets/task-timeline-store-Ca-wQLgJ.js.gz +0 -0
  230. package/dist/web/assets/third-party-marketplace-pane-rC9NGfhR.js.br +0 -0
  231. package/dist/web/assets/third-party-marketplace-pane-rC9NGfhR.js.gz +0 -0
  232. package/dist/web/assets/workbench-composer-AfRXx4Ec.js +0 -8
  233. package/dist/web/assets/workbench-composer-AfRXx4Ec.js.br +0 -0
  234. package/dist/web/assets/workbench-composer-AfRXx4Ec.js.gz +0 -0
  235. package/dist/web/assets/workbench-inspector-changes-lyYWVbsH.js.br +0 -0
  236. package/dist/web/assets/workbench-inspector-changes-lyYWVbsH.js.gz +0 -0
  237. package/dist/web/assets/workbench-pet-canvas-GtLypdG1.js.br +0 -0
  238. package/dist/web/assets/workbench-pet-canvas-GtLypdG1.js.gz +0 -0
  239. package/dist/web/assets/workbench-shell-L9PpBWL7.js.br +0 -0
  240. package/dist/web/assets/workbench-shell-L9PpBWL7.js.gz +0 -0
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-CNC7AqOf.js";import{i as t,t as n}from"./react-runtime-DaCTDC27.js";import{l as r,o as i,r as a,t as o}from"./initial-deps-CB2J2rjl.js";import{E as s,J as c,et as l,it as u,m as d}from"./initial-deps-E80pA8LY.js";import{t as f}from"./download-DMNchNW0.js";import{t as p}from"./external-link-DcCR8cO8.js";import{t as m}from"./sparkles-B6-DOZ3B.js";import{G as h,J as g,K as _,Rt as v,X as y,Y as b,Z as x,vt as S}from"./index-DvbRlATw.js";import{a as C,i as w,n as T,o as E,r as D,t as O}from"./sheet-DiMxIv8P.js";var k=l(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),A=l(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),j=e(t(),1),M=n();function N(e){try{let t=new URL(e);t.protocol===`https:`&&window.open(t.href,`_blank`,`noopener,noreferrer`)}catch{}}function P({client:e,currentProjectId:t,currentRootPath:n,installedSkills:r,installingScope:a,onClose:o,onInstall:c,projects:l,skill:d}){let{t:v}=u(`workbench`),[x,A]=(0,j.useState)(l.some(e=>e.id===t)?t:l[0]?.id),P=l.find(e=>e.id===x),F=P!==void 0&&P.id===t&&n!==void 0&&P.roots.some(e=>e.path===n)?n:P?.roots[0]?.path,I=i({queryFn:()=>e.getClawhubSkill(d.owner,d.slug),queryKey:[`extensions`,`marketplace`,`detail`,d.owner,d.slug],staleTime:5*6e4}),L=I.data,R=e=>r.find(t=>t.marketplace?.owner===d.owner&&t.marketplace.slug===d.slug&&(e===`user`?t.scope===`user`:t.scope===`repo`&&t.projectId===x))?.marketplace?.installedVersion,z=e=>{let t=R(e);return t===d.latestVersion?v(`skillsMarket.current`):v(t===void 0?e===`user`?`skillsMarket.installGlobal`:`skillsMarket.installProject`:`skillsMarket.update`)},B=a!==null,V=L?.scanStatus!==`clean`;return(0,M.jsx)(O,{open:!0,onOpenChange:e=>{e||o()},children:(0,M.jsxs)(T,{className:`skills-market-detail third-party-skill-sheet`,closeLabel:v(`skillsMarket.closeSkillDetails`),children:[(0,M.jsxs)(C,{className:`skills-market-detail__header`,children:[(0,M.jsx)(`div`,{className:`skills-market-detail__mark`,"aria-hidden":`true`,children:(0,M.jsx)(m,{})}),(0,M.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,M.jsx)(E,{className:`truncate text-title`,children:d.displayName}),(0,M.jsxs)(D,{children:[`@`,d.owner,` / `,d.slug]})]}),L===void 0?null:(0,M.jsxs)(`span`,{className:`skills-market-scan`,children:[(0,M.jsx)(k,{"aria-hidden":`true`}),v(`skillsMarket.codexCompatible`)]})]}),(0,M.jsxs)(`div`,{className:`skills-market-detail__facts`,children:[(0,M.jsx)(`span`,{children:v(`skillsMarket.version`,{version:d.latestVersion})}),(0,M.jsx)(`span`,{children:v(`skillsMarket.downloads`,{count:d.downloads})}),(0,M.jsx)(`span`,{children:v(`skillsMarket.stars`,{count:d.stars})}),L===void 0?null:(0,M.jsx)(`span`,{children:v(`skillsMarket.scan`,{status:L.scanStatus})})]}),(0,M.jsx)(`div`,{className:`skills-market-detail__body third-party-skill-sheet__body`,children:I.isPending?(0,M.jsx)(`div`,{className:`skills-market-state`,role:`status`,children:v(`skillsMarket.loadingDetail`)}):I.error===null?(0,M.jsx)(`pre`,{className:`skills-market-readme`,children:L?.readme}):(0,M.jsx)(`div`,{className:`skills-market-state`,role:`alert`,children:v(`skillsMarket.loadError`)})}),(0,M.jsxs)(w,{className:`skills-market-detail__footer third-party-skill-sheet__footer`,children:[(0,M.jsxs)(S,{className:`third-party-skill-sheet__market-link`,onClick:()=>{N(d.canonicalUrl)},type:`button`,variant:`ghost`,children:[(0,M.jsx)(p,{"aria-hidden":`true`}),v(`skillsMarket.openMarketplace`)]}),(0,M.jsxs)(`div`,{className:`third-party-skill-sheet__actions`,children:[P===void 0||F===void 0?null:(0,M.jsxs)(`div`,{className:`skills-market-project-target`,children:[(0,M.jsxs)(h,{onValueChange:A,value:P.id,children:[(0,M.jsx)(b,{"aria-label":v(`skillsMarket.projectTarget`),size:`sm`,title:P.name,children:(0,M.jsx)(y,{})}),(0,M.jsx)(_,{align:`end`,position:`popper`,children:l.map(e=>(0,M.jsx)(g,{value:e.id,children:e.name},e.id))})]}),(0,M.jsxs)(S,{disabled:V||B||R(`project`)===d.latestVersion,onClick:()=>{c(d,`project`,{projectId:P.id,rootPath:F})},type:`button`,variant:`outline`,children:[a===`project`?(0,M.jsx)(s,{"aria-hidden":`true`,className:`animate-spin`,"data-icon":`loading`}):(0,M.jsx)(f,{"aria-hidden":`true`}),z(`project`)]})]}),(0,M.jsxs)(S,{disabled:V||B||R(`user`)===d.latestVersion,onClick:()=>{c(d,`user`,{})},type:`button`,children:[a===`user`?(0,M.jsx)(s,{"aria-hidden":`true`,className:`animate-spin`,"data-icon":`loading`}):(0,M.jsx)(f,{"aria-hidden":`true`}),z(`user`)]})]})]})]})})}function F(e){let[t,n]=(0,j.useState)(e);return(0,j.useEffect)(()=>{let t=window.setTimeout(()=>{n(e)},250);return()=>{window.clearTimeout(t)}},[e]),t}function I({skill:e,onOpen:t}){return(0,M.jsxs)(`button`,{className:`skills-market-card`,onClick:()=>{t(e)},type:`button`,children:[(0,M.jsxs)(`span`,{className:`skills-market-card__topline`,children:[(0,M.jsx)(`span`,{className:`skills-market-glyph`,"data-tone":`marketplace`,"aria-hidden":`true`,children:(0,M.jsx)(c,{})}),(0,M.jsxs)(`span`,{className:`min-w-0 flex-1 text-left`,children:[(0,M.jsx)(`strong`,{className:`block truncate text-body-small`,children:e.displayName}),(0,M.jsxs)(`span`,{className:`block truncate text-label text-muted-foreground`,children:[`@`,e.owner]})]}),(0,M.jsxs)(`span`,{className:`skills-version`,children:[`v`,e.latestVersion]})]}),(0,M.jsx)(`span`,{className:`skills-market-card__summary`,children:e.summary}),(0,M.jsxs)(`span`,{className:`skills-market-card__footer`,children:[(0,M.jsxs)(`span`,{children:[(0,M.jsx)(f,{"aria-hidden":`true`}),e.downloads.toLocaleString()]}),(0,M.jsxs)(`span`,{children:[(0,M.jsx)(A,{"aria-hidden":`true`}),e.stars.toLocaleString()]})]})]})}function L({projectId:e,rootPath:t}){let{t:n}=u(`workbench`),{client:s,projects:c}=v(),l=r(),[f,p]=(0,j.useState)(``),[m,C]=(0,j.useState)(`recommended`),[w,T]=(0,j.useState)(null),E=F(f.trim()),D=i({queryFn:()=>s.listInstalledSkills(),queryKey:[`extensions`,`skills`]}),O=o({getNextPageParam:e=>e.nextCursor??void 0,initialPageParam:null,queryFn:({pageParam:e})=>s.listClawhubSkills(E,e,m),queryKey:[`extensions`,`marketplace`,`clawhub`,E,m],staleTime:2*6e4}),k=a({meta:{actionNotification:{successMessage:n(`skillsMarket.installComplete`)}},mutationFn:({projectId:e,rootPath:t,scope:n,skill:r})=>s.installClawhubSkill(r.owner,r.slug,n,e,t),onSuccess:e=>{T(null),l.setQueryData([`extensions`,`skills`],e.installedSkills)}}),A=O.data?.pages.flatMap(e=>e.items)??[];return(0,M.jsxs)(`div`,{className:`skills-market-pane`,role:`tabpanel`,children:[(0,M.jsxs)(`div`,{className:`skills-market-toolbar`,children:[(0,M.jsxs)(`div`,{className:`skills-market-search`,children:[(0,M.jsx)(d,{"aria-hidden":`true`}),(0,M.jsx)(x,{"aria-label":n(`skillsMarket.search`),onChange:e=>{p(e.currentTarget.value)},placeholder:n(`skillsMarket.search`),value:f})]}),(0,M.jsxs)(h,{onValueChange:C,value:m,children:[(0,M.jsx)(b,{"aria-label":n(`skillsMarket.sort`),children:(0,M.jsx)(y,{})}),(0,M.jsxs)(_,{children:[(0,M.jsx)(g,{value:`recommended`,children:n(`skillsMarket.sortRecommended`)}),(0,M.jsx)(g,{value:`downloads`,children:n(`skillsMarket.sortDownloads`)}),(0,M.jsx)(g,{value:`updated`,children:n(`skillsMarket.sortUpdated`)})]})]})]}),O.isPending?(0,M.jsx)(`div`,{className:`skills-market-state`,role:`status`,children:n(`skillsMarket.loadingMarket`)}):O.error===null?A.length===0?(0,M.jsx)(`div`,{className:`skills-market-state`,children:n(`skillsMarket.emptyMarket`)}):(0,M.jsx)(`div`,{className:`skills-market-grid`,children:A.map(e=>(0,M.jsx)(I,{onOpen:T,skill:e},e.id))}):(0,M.jsx)(`div`,{className:`skills-market-state`,role:`alert`,children:n(`skillsMarket.marketError`)}),O.hasNextPage?(0,M.jsx)(S,{className:`mx-auto`,disabled:O.isFetchingNextPage,onClick:()=>void O.fetchNextPage(),type:`button`,variant:`outline`,children:n(O.isFetchingNextPage?`skillsMarket.loading`:`skillsMarket.loadMore`)}):null,w===null?null:(0,M.jsx)(P,{client:s,currentProjectId:e,currentRootPath:t,installedSkills:D.data?.data??[],installingScope:k.isPending?k.variables.scope:null,onClose:()=>{T(null)},onInstall:(e,t,n)=>{k.mutate({scope:t,skill:e,...n})},projects:c,skill:w})]})}export{L as ThirdPartyMarketplacePane};
1
+ import{a as e}from"./rolldown-runtime-CNC7AqOf.js";import{i as t,t as n}from"./react-runtime-DaCTDC27.js";import{l as r,o as i,r as a,t as o}from"./initial-deps-CB2J2rjl.js";import{E as s,J as c,et as l,it as u,m as d}from"./initial-deps-E80pA8LY.js";import{t as f}from"./download-DMNchNW0.js";import{t as p}from"./external-link-DcCR8cO8.js";import{t as m}from"./sparkles-B6-DOZ3B.js";import{G as h,J as g,K as _,Rt as v,X as y,Y as b,Z as x,vt as S}from"./index-DulCmWgc.js";import{a as C,i as w,n as T,o as E,r as D,t as O}from"./sheet-CT_gmFL4.js";var k=l(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),A=l(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),j=e(t(),1),M=n();function N(e){try{let t=new URL(e);t.protocol===`https:`&&window.open(t.href,`_blank`,`noopener,noreferrer`)}catch{}}function P({client:e,currentProjectId:t,currentRootPath:n,installedSkills:r,installingScope:a,onClose:o,onInstall:c,projects:l,skill:d}){let{t:v}=u(`workbench`),[x,A]=(0,j.useState)(l.some(e=>e.id===t)?t:l[0]?.id),P=l.find(e=>e.id===x),F=P!==void 0&&P.id===t&&n!==void 0&&P.roots.some(e=>e.path===n)?n:P?.roots[0]?.path,I=i({queryFn:()=>e.getClawhubSkill(d.owner,d.slug),queryKey:[`extensions`,`marketplace`,`detail`,d.owner,d.slug],staleTime:5*6e4}),L=I.data,R=e=>r.find(t=>t.marketplace?.owner===d.owner&&t.marketplace.slug===d.slug&&(e===`user`?t.scope===`user`:t.scope===`repo`&&t.projectId===x))?.marketplace?.installedVersion,z=e=>{let t=R(e);return t===d.latestVersion?v(`skillsMarket.current`):v(t===void 0?e===`user`?`skillsMarket.installGlobal`:`skillsMarket.installProject`:`skillsMarket.update`)},B=a!==null,V=L?.scanStatus!==`clean`;return(0,M.jsx)(O,{open:!0,onOpenChange:e=>{e||o()},children:(0,M.jsxs)(T,{className:`skills-market-detail third-party-skill-sheet`,closeLabel:v(`skillsMarket.closeSkillDetails`),children:[(0,M.jsxs)(C,{className:`skills-market-detail__header`,children:[(0,M.jsx)(`div`,{className:`skills-market-detail__mark`,"aria-hidden":`true`,children:(0,M.jsx)(m,{})}),(0,M.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,M.jsx)(E,{className:`truncate text-title`,children:d.displayName}),(0,M.jsxs)(D,{children:[`@`,d.owner,` / `,d.slug]})]}),L===void 0?null:(0,M.jsxs)(`span`,{className:`skills-market-scan`,children:[(0,M.jsx)(k,{"aria-hidden":`true`}),v(`skillsMarket.codexCompatible`)]})]}),(0,M.jsxs)(`div`,{className:`skills-market-detail__facts`,children:[(0,M.jsx)(`span`,{children:v(`skillsMarket.version`,{version:d.latestVersion})}),(0,M.jsx)(`span`,{children:v(`skillsMarket.downloads`,{count:d.downloads})}),(0,M.jsx)(`span`,{children:v(`skillsMarket.stars`,{count:d.stars})}),L===void 0?null:(0,M.jsx)(`span`,{children:v(`skillsMarket.scan`,{status:L.scanStatus})})]}),(0,M.jsx)(`div`,{className:`skills-market-detail__body third-party-skill-sheet__body`,children:I.isPending?(0,M.jsx)(`div`,{className:`skills-market-state`,role:`status`,children:v(`skillsMarket.loadingDetail`)}):I.error===null?(0,M.jsx)(`pre`,{className:`skills-market-readme`,children:L?.readme}):(0,M.jsx)(`div`,{className:`skills-market-state`,role:`alert`,children:v(`skillsMarket.loadError`)})}),(0,M.jsxs)(w,{className:`skills-market-detail__footer third-party-skill-sheet__footer`,children:[(0,M.jsxs)(S,{className:`third-party-skill-sheet__market-link`,onClick:()=>{N(d.canonicalUrl)},type:`button`,variant:`ghost`,children:[(0,M.jsx)(p,{"aria-hidden":`true`}),v(`skillsMarket.openMarketplace`)]}),(0,M.jsxs)(`div`,{className:`third-party-skill-sheet__actions`,children:[P===void 0||F===void 0?null:(0,M.jsxs)(`div`,{className:`skills-market-project-target`,children:[(0,M.jsxs)(h,{onValueChange:A,value:P.id,children:[(0,M.jsx)(b,{"aria-label":v(`skillsMarket.projectTarget`),size:`sm`,title:P.name,children:(0,M.jsx)(y,{})}),(0,M.jsx)(_,{align:`end`,position:`popper`,children:l.map(e=>(0,M.jsx)(g,{value:e.id,children:e.name},e.id))})]}),(0,M.jsxs)(S,{disabled:V||B||R(`project`)===d.latestVersion,onClick:()=>{c(d,`project`,{projectId:P.id,rootPath:F})},type:`button`,variant:`outline`,children:[a===`project`?(0,M.jsx)(s,{"aria-hidden":`true`,className:`animate-spin`,"data-icon":`loading`}):(0,M.jsx)(f,{"aria-hidden":`true`}),z(`project`)]})]}),(0,M.jsxs)(S,{disabled:V||B||R(`user`)===d.latestVersion,onClick:()=>{c(d,`user`,{})},type:`button`,children:[a===`user`?(0,M.jsx)(s,{"aria-hidden":`true`,className:`animate-spin`,"data-icon":`loading`}):(0,M.jsx)(f,{"aria-hidden":`true`}),z(`user`)]})]})]})]})})}function F(e){let[t,n]=(0,j.useState)(e);return(0,j.useEffect)(()=>{let t=window.setTimeout(()=>{n(e)},250);return()=>{window.clearTimeout(t)}},[e]),t}function I({skill:e,onOpen:t}){return(0,M.jsxs)(`button`,{className:`skills-market-card`,onClick:()=>{t(e)},type:`button`,children:[(0,M.jsxs)(`span`,{className:`skills-market-card__topline`,children:[(0,M.jsx)(`span`,{className:`skills-market-glyph`,"data-tone":`marketplace`,"aria-hidden":`true`,children:(0,M.jsx)(c,{})}),(0,M.jsxs)(`span`,{className:`min-w-0 flex-1 text-left`,children:[(0,M.jsx)(`strong`,{className:`block truncate text-body-small`,children:e.displayName}),(0,M.jsxs)(`span`,{className:`block truncate text-label text-muted-foreground`,children:[`@`,e.owner]})]}),(0,M.jsxs)(`span`,{className:`skills-version`,children:[`v`,e.latestVersion]})]}),(0,M.jsx)(`span`,{className:`skills-market-card__summary`,children:e.summary}),(0,M.jsxs)(`span`,{className:`skills-market-card__footer`,children:[(0,M.jsxs)(`span`,{children:[(0,M.jsx)(f,{"aria-hidden":`true`}),e.downloads.toLocaleString()]}),(0,M.jsxs)(`span`,{children:[(0,M.jsx)(A,{"aria-hidden":`true`}),e.stars.toLocaleString()]})]})]})}function L({projectId:e,rootPath:t}){let{t:n}=u(`workbench`),{client:s,projects:c}=v(),l=r(),[f,p]=(0,j.useState)(``),[m,C]=(0,j.useState)(`recommended`),[w,T]=(0,j.useState)(null),E=F(f.trim()),D=i({queryFn:()=>s.listInstalledSkills(),queryKey:[`extensions`,`skills`]}),O=o({getNextPageParam:e=>e.nextCursor??void 0,initialPageParam:null,queryFn:({pageParam:e})=>s.listClawhubSkills(E,e,m),queryKey:[`extensions`,`marketplace`,`clawhub`,E,m],staleTime:2*6e4}),k=a({meta:{actionNotification:{successMessage:n(`skillsMarket.installComplete`)}},mutationFn:({projectId:e,rootPath:t,scope:n,skill:r})=>s.installClawhubSkill(r.owner,r.slug,n,e,t),onSuccess:e=>{T(null),l.setQueryData([`extensions`,`skills`],e.installedSkills)}}),A=O.data?.pages.flatMap(e=>e.items)??[];return(0,M.jsxs)(`div`,{className:`skills-market-pane`,role:`tabpanel`,children:[(0,M.jsxs)(`div`,{className:`skills-market-toolbar`,children:[(0,M.jsxs)(`div`,{className:`skills-market-search`,children:[(0,M.jsx)(d,{"aria-hidden":`true`}),(0,M.jsx)(x,{"aria-label":n(`skillsMarket.search`),onChange:e=>{p(e.currentTarget.value)},placeholder:n(`skillsMarket.search`),value:f})]}),(0,M.jsxs)(h,{onValueChange:C,value:m,children:[(0,M.jsx)(b,{"aria-label":n(`skillsMarket.sort`),children:(0,M.jsx)(y,{})}),(0,M.jsxs)(_,{children:[(0,M.jsx)(g,{value:`recommended`,children:n(`skillsMarket.sortRecommended`)}),(0,M.jsx)(g,{value:`downloads`,children:n(`skillsMarket.sortDownloads`)}),(0,M.jsx)(g,{value:`updated`,children:n(`skillsMarket.sortUpdated`)})]})]})]}),O.isPending?(0,M.jsx)(`div`,{className:`skills-market-state`,role:`status`,children:n(`skillsMarket.loadingMarket`)}):O.error===null?A.length===0?(0,M.jsx)(`div`,{className:`skills-market-state`,children:n(`skillsMarket.emptyMarket`)}):(0,M.jsx)(`div`,{className:`skills-market-grid`,children:A.map(e=>(0,M.jsx)(I,{onOpen:T,skill:e},e.id))}):(0,M.jsx)(`div`,{className:`skills-market-state`,role:`alert`,children:n(`skillsMarket.marketError`)}),O.hasNextPage?(0,M.jsx)(S,{className:`mx-auto`,disabled:O.isFetchingNextPage,onClick:()=>void O.fetchNextPage(),type:`button`,variant:`outline`,children:n(O.isFetchingNextPage?`skillsMarket.loading`:`skillsMarket.loadMore`)}):null,w===null?null:(0,M.jsx)(P,{client:s,currentProjectId:e,currentRootPath:t,installedSkills:D.data?.data??[],installingScope:k.isPending?k.variables.scope:null,onClose:()=>{T(null)},onInstall:(e,t,n)=>{k.mutate({scope:t,skill:e,...n})},projects:c,skill:w})]})}export{L as ThirdPartyMarketplacePane};
@@ -0,0 +1,4 @@
1
+ import{a as e}from"./rolldown-runtime-CNC7AqOf.js";import{i as t,t as n}from"./react-runtime-DaCTDC27.js";import{a as r,b as i,f as a,l as o,o as s,s as c}from"./initial-deps-CB2J2rjl.js";import{c as l,l as u,u as d}from"./initial-deps-BM3gt1hz.js";import{a as f,d as p,f as m,m as h,n as g,p as _,u as v}from"./initial-deps-DrhykaPS.js";import{E as y,G as b,H as x,K as S,O as C,U as w,W as T,Y as E,b as ee,et as D,g as te,it as O,j as ne,n as k,p as A,s as j,st as M,t as N,u as P,v as re}from"./initial-deps-E80pA8LY.js";import{a as ie,c as F,i as ae,n as I,r as L,s as R,t as z}from"./attachments-udHAnE7I.js";import{t as oe}from"./file-pen-line-Dm4cCdyM.js";import{S as se,_ as ce,a as B,c as le,d as V,f as ue,g as de,i as H,l as fe,m as pe,n as me,o as he,p as ge,r as _e,s as U,t as ve,u as ye,v as be,x as xe}from"./prompt-input-controls-QVtFSyXt.js";import{t as Se}from"./git-fork-93orhLsV.js";import{t as Ce}from"./sparkles-B6-DOZ3B.js";import{G as we,K as Te,U as Ee,W as De,at as Oe,ct as ke,dt as Ae,ft as je,gt as Me,ht as Ne,it as Pe,lt as Fe,ot as Ie,pt as Le,st as Re,ut as ze}from"./initial-deps-BYSU0u1N.js";import{$ as Be,A as Ve,D as He,Et as W,G as Ue,H as G,J as We,K as Ge,M as Ke,N as qe,O as K,P as Je,Pt as Ye,Q as Xe,R as Ze,Rt as Qe,Tt as q,U as J,V as $e,W as Y,X as et,Y as tt,Z as nt,_n as rt,bt as it,c as at,ct as ot,et as st,j as ct,k as X,l as lt,lt as ut,nt as dt,o as ft,ot as pt,rt as mt,s as ht,tt as gt,u as _t,vn as vt,vt as Z,yt}from"./index-DulCmWgc.js";import{n as bt,t as xt}from"./approval-mode-CKJY6q52.js";import{t as St}from"./prompt-input-CDL7WoS0.js";var Ct=D(`bug`,[[`path`,{d:`M12 20v-9`,key:`1qisl0`}],[`path`,{d:`M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z`,key:`uouzyp`}],[`path`,{d:`M14.12 3.88 16 2`,key:`qol33r`}],[`path`,{d:`M21 21a4 4 0 0 0-3.81-4`,key:`1b0z45`}],[`path`,{d:`M21 5a4 4 0 0 1-3.55 3.97`,key:`5cxbf6`}],[`path`,{d:`M22 13h-4`,key:`1jl80f`}],[`path`,{d:`M3 21a4 4 0 0 1 3.81-4`,key:`1fjd4g`}],[`path`,{d:`M3 5a4 4 0 0 0 3.55 3.97`,key:`1d7oge`}],[`path`,{d:`M6 13H2`,key:`82j7cp`}],[`path`,{d:`m8 2 1.88 1.88`,key:`fmnt4t`}],[`path`,{d:`M9 7.13V6a3 3 0 1 1 6 0v1.13`,key:`1vgav8`}]]),wt=D(`circle-gauge`,[[`path`,{d:`M15.6 2.7a10 10 0 1 0 5.7 5.7`,key:`1e0p6d`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}],[`path`,{d:`M13.4 10.6 19 5`,key:`1kr7tw`}]]),Tt=D(`folder-kanban`,[[`path`,{d:`M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z`,key:`1fr9dc`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M12 10v2`,key:`hh53o1`}],[`path`,{d:`M16 10v6`,key:`1d6xys`}]]),Et=D(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),Dt=D(`lightbulb`,[[`path`,{d:`M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5`,key:`1gvzjb`}],[`path`,{d:`M9 18h6`,key:`x1upvd`}],[`path`,{d:`M10 22h4`,key:`ceow96`}]]),Ot=D(`message-circle-question-mark`,[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),kt=D(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),At=D(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),jt=D(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),Mt=D(`send-horizontal`,[[`path`,{d:`M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z`,key:`117uat`}],[`path`,{d:`M6 12h16`,key:`s4cdu5`}]]),Nt=D(`target`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`6`,key:`1vlfrh`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),Pt=D(`zap`,[[`path`,{d:`M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z`,key:`1xq2db`}]]),Q=e(t(),1),$=n(),Ft=Object.defineProperty,It=(e,t)=>Ft(e,`name`,{value:t,configurable:!0}),Lt=`Popover`,[Rt,zt]=je(Lt,[Te]),Bt=Te(),[Vt,Ht]=Rt(Lt),Ut=It(e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=Bt(t),c=Q.useRef(null),[l,u]=Q.useState(!1),[d,f]=ze({prop:r,defaultProp:i??!1,onChange:a,caller:Lt});return(0,$.jsx)(we,{...s,children:(0,$.jsx)(Vt,{scope:t,contentId:ke(),triggerRef:c,open:d,onOpenChange:f,onOpenToggle:Q.useCallback(()=>f(e=>!e),[f]),hasCustomAnchor:l,onCustomAnchorAdd:Q.useCallback(()=>u(!0),[]),onCustomAnchorRemove:Q.useCallback(()=>u(!1),[]),modal:o,children:n})})},`Popover`),Wt=`PopoverTrigger`,Gt=Q.forwardRef(It(function(e,t){let{__scopePopover:n,...r}=e,i=Ht(Wt,n),a=Bt(n),o=Me(t,i.triggerRef),s=(0,$.jsx)(Le.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":nn(i.open),...r,ref:o,onClick:Ae(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:(0,$.jsx)(Ee,{asChild:!0,...a,children:s})},`PopoverTrigger`)),Kt=`PopoverPortal`,[qt,Jt]=Rt(Kt,{forceMount:void 0}),Yt=It(e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=Ht(Kt,t);return(0,$.jsx)(qt,{scope:t,forceMount:n,children:(0,$.jsx)(Fe,{present:n||a.open,children:(0,$.jsx)(Oe,{asChild:!0,container:i,children:r})})})},`PopoverPortal`),Xt=`PopoverContent`,Zt=Q.forwardRef(It(function(e,t){let n=Jt(Xt,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=Ht(Xt,e.__scopePopover);return(0,$.jsx)(Fe,{present:r||a.open,children:a.modal?(0,$.jsx)($t,{...i,ref:t}):(0,$.jsx)(en,{...i,ref:t})})},`PopoverContent`)),Qt=Ne(`PopoverContent.RemoveScroll`),$t=Q.forwardRef(It(function(e,t){let n=Ht(Xt,e.__scopePopover),r=Q.useRef(null),i=Me(t,r),a=Q.useRef(!1);return Q.useEffect(()=>{let e=r.current;if(e)return N(e)},[]),(0,$.jsx)(k,{as:Qt,allowPinchZoom:!0,children:(0,$.jsx)(tn,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ae(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:Ae(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;a.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:Ae(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})},`PopoverContentModal`)),en=Q.forwardRef(It(function(e,t){let n=Ht(Xt,e.__scopePopover),r=Q.useRef(!1),i=Q.useRef(!1);return(0,$.jsx)(tn,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})},`PopoverContentNonModal`)),tn=Q.forwardRef(It(function(e,t){let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...d}=e,f=Ht(Xt,n),p=Bt(n);return Pe(),(0,$.jsx)(Ie,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,$.jsx)(Re,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>f.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,$.jsx)(De,{"data-state":nn(f.open),role:`dialog`,id:f.contentId,...p,...d,ref:t,style:{...d.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})},`PopoverContentImpl`));function nn(e){return e?`open`:`closed`}It(nn,`getState`);var rn=Ut,an=Gt,on=Yt,sn=Zt;function cn(e=``){return e===``?[]:[{text:e,type:`text`}]}function ln(e,t){return un([...t.flatMap(e=>[{skill:e,type:`skill`},{text:` `,type:`text`}]),...e===``?[]:[{text:e,type:`text`}]])}function un(e){let t=[];for(let n of e){if(n.type===`text`){if(n.text===``)continue;let e=t.at(-1);e?.type===`text`?t[t.length-1]={text:e.text+n.text,type:`text`}:t.push(n);continue}t.push(n)}return t}function dn(e){return`$${e.name}`}function fn(e){return`${e.rootId}\u0000${e.path}`}function pn(e){let t=e.rootPath.includes(`\\`)&&!e.rootPath.includes(`/`),n=t?`\\`:`/`;return`@${e.rootPath.replace(/[\\/]+$/u,``)}${n}${t?e.path.replace(/\//gu,`\\`).replace(/^\\+/u,``):e.path.replace(/\\/gu,`/`).replace(/^\/+/u,``)}`}function mn(e){return e.type===`text`?e.text.length:e.type===`skill`?dn(e.skill).length:pn(e.file).length}function hn(e,t){let n=[],r=[],i=0;for(let a of e){let e=mn(a),o=i+e;if(t<=i)r.push(a);else if(t>=o)n.push(a);else if(a.type===`text`){let e=t-i;n.push({text:a.text.slice(0,e),type:`text`}),r.push({text:a.text.slice(e),type:`text`})}else(t-i<e/2?r:n).push(a);i=o}return[un(n),un(r)]}function gn(e,t){let n=0;for(let r of e){let e=n+mn(r);if(t.start>=n&&t.end<=e)return r.type===`text`;n=e}return!1}function _n(e,t,n){let[r]=hn(e,t.start),[,i]=hn(e,t.end),a=e.some(e=>e.type===`skill`&&e.skill.id===n.id);return un([...r,...a?[]:[{skill:n,type:`skill`}],...i])}function vn(e,t,n){let[r]=hn(e,t.start),[,i]=hn(e,t.end),a=e.some(e=>e.type===`file`&&fn(e.file)===fn(n));return un([...r,...a?[]:[{file:n,type:`file`}],...a||Sn(i).startsWith(` `)?[]:[{text:` `,type:`text`}],...i])}function yn(e,t){if(e.some(e=>e.type===`file`&&fn(e.file)===fn(t)))return e;let n=Sn(e);return un([...e,...n===``||/\s$/u.test(n)?[]:[{text:` `,type:`text`}],{file:t,type:`file`},{text:` `,type:`text`}])}function bn(e,t){let n=new Map(t.map(e=>[e.name,e])),r=[],i=!1;for(let t of e){if(t.type!==`text`){r.push(t);continue}let e=0;for(let a of t.text.matchAll(/\$([^\s$]+)/gu)){let o=a.index,s=a[1],c=t.text[o-1],l=s===void 0?void 0:n.get(s);if(l===void 0||c!==void 0&&!/\s/u.test(c))continue;let u=o+a[0].length;r.push({text:t.text.slice(e,o),type:`text`}),r.push({skill:l,type:`skill`}),e=u,i=!0}r.push({text:t.text.slice(e),type:`text`})}return i?un(r):e}function xn(e,t){let[n]=hn(e,t.start),[,r]=hn(e,t.end);return un([...n,...r])}function Sn(e){return e.map(e=>e.type===`text`?e.text:e.type===`skill`?dn(e.skill):pn(e.file)).join(``)}function Cn(e){let t=[],n=new Set,r=``,i=!1;for(let a of e){if(a.type===`skill`){n.has(a.skill.id)||(t.push(a.skill),n.add(a.skill.id));continue}let e=a.type===`file`?pn(a.file):a.text;e!==``&&((a.type===`file`&&r!==``&&!/\s$/u.test(r)||i&&!/^\s/u.test(e))&&(r+=` `),r+=e,i=a.type===`file`)}return{skills:t,text:r.trim()}}function wn(e){let t=Cn(e);return t.text===``&&t.skills.length===0}function Tn(e,t){let n=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{if(e===null){n.current=!1;return}n.current||(n.current=!0,q(t))},[e,t])}function En(e,t,n){let r=o(),i=[`async-questions`,e,t],[a,c]=(0,Q.useState)(!1);return{groups:s({queryKey:i,enabled:t!==void 0,queryFn:({signal:n})=>rt.listAsyncQuestions(e,t??``,{signal:n}),refetchInterval:2e3,retry:!1}).data?.data??[],answer:async(a,o)=>{if(t===void 0)return!1;let s=n();try{let n=await rt.answerAsyncQuestion(e,t,a,o);return await r.cancelQueries({queryKey:i}),r.setQueryData(i,n.questions),s(n),!0}catch(e){throw q(e),await r.invalidateQueries({queryKey:i}),e}},dismiss:async n=>{if(!(t===void 0||a||n.length===0)){c(!0);try{let a=await rt.dismissAsyncQuestions(e,t,n);r.setQueryData(i,a)}catch(e){q(e),await r.invalidateQueries({queryKey:i})}finally{c(!1)}}},dismissing:a}}var Dn=()=>u(()=>({drafts:new Map})),On=(0,Q.createContext)(null);function kn({children:e,enabled:t,submit:n}){let[r]=(0,Q.useState)(Dn),i=(0,Q.useMemo)(()=>({enabled:t,store:r,submit:n}),[t,r,n]);return(0,$.jsx)(On,{value:i,children:e})}var An=()=>(0,Q.useContext)(On);function jn(e,t,n){e.setState(e=>{let r=new Map(e.drafts);if(r.delete(t),r.set(t,n),r.size>128){for(let[e,n]of r)if(e!==t&&n.status!==`sending`){r.delete(e);break}}return{drafts:r}})}function Mn({item:e}){let{t}=O(`conversation`),n=An(),[r]=(0,Q.useState)(Dn),i=n?.store??r,a=l(i,t=>t.drafts.get(e.id)),[o]=(0,Q.useState)(()=>({answers:e.questions.map(e=>({choice:e.options===null?null:0,text:``})),status:`editing`})),s=a??o,c=(0,Q.useId)(),u=e.questions,d=n?.enabled!==!0||s.status!==`editing`||e.status!==`pending`,f=u.map((e,t)=>{let n=s.answers[t];return n?.choice===null?n.text.trim():e.options?.[n?.choice??0]??``}),p=f.every(e=>e.length>0&&e.length<=4e3),m=(t,n)=>{jn(i,e.id,{...s,answers:s.answers.map((e,r)=>r===t?{...e,...n}:e)})},h=async()=>{let t=i.getState().drafts.get(e.id)?.status??`editing`;if(!p||n?.enabled!==!0||t!==`editing`)return;jn(i,e.id,{...s,status:`sending`});let r=!1;try{r=await n.submit(e.id,f)}catch{}jn(i,e.id,{...s,status:r?`sent`:`editing`})};return(0,$.jsxs)(`form`,{className:`min-w-0 space-y-4 border-l-2 border-brand pl-3`,onSubmit:e=>{e.preventDefault(),d||h()},children:[u.map((e,n)=>{let r=s.answers[n];return(0,$.jsxs)(`fieldset`,{className:`min-w-0 space-y-2`,disabled:d,children:[(0,$.jsx)(`legend`,{className:`mb-2 w-full min-w-0 whitespace-pre-wrap [overflow-wrap:anywhere] text-body font-medium`,children:e.title}),e.options?.map((e,t)=>(0,$.jsxs)(`label`,{className:`flex min-w-0 cursor-pointer items-start gap-2 text-body`,children:[(0,$.jsx)(`input`,{className:`mt-1 shrink-0 accent-brand`,type:`radio`,name:`${c}-${String(n)}`,checked:r?.choice===t,onChange:()=>{m(n,{choice:t})}}),(0,$.jsx)(`span`,{className:`min-w-0 whitespace-pre-wrap [overflow-wrap:anywhere]`,children:e})]},t)),e.options===null?null:(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-body`,children:[(0,$.jsx)(`input`,{className:`accent-brand`,type:`radio`,name:`${c}-${String(n)}`,checked:r?.choice===null,onChange:()=>{m(n,{choice:null})}}),t(`asyncQuestions.other`)]}),(0,$.jsx)(`textarea`,{"aria-label":t(`asyncQuestions.answer`,{question:e.title}),className:`block min-h-16 w-full resize-y rounded-control border border-separator bg-control px-2 py-1.5 text-body outline-none focus:border-brand disabled:opacity-60`,maxLength:4e3,rows:2,value:r?.text??``,onChange:e=>{m(n,{choice:null,text:e.currentTarget.value})}})]},n)}),(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(Z,{disabled:d||!p,type:`submit`,size:`sm`,children:[s.status===`sending`?(0,$.jsx)(y,{className:`size-3.5 animate-spin`}):s.status===`sent`?(0,$.jsx)(S,{className:`size-3.5`}):(0,$.jsx)(A,{className:`size-3.5`}),t(s.status===`sent`?`asyncQuestions.sent`:`asyncQuestions.send`)]})})]})}function Nn({groups:e,dismiss:t,dismissing:n}){let{t:r}=O(`conversation`),[i,a]=(0,Q.useState)(),[o,s]=(0,Q.useState)(!1),c=(0,Q.useId)(),l=Math.max(0,e.findIndex(e=>e.id===i)),u=e[l];return u===void 0?null:(0,$.jsxs)(`section`,{"aria-label":r(`asyncQuestions.pending`),className:`mb-2 min-w-0 rounded-control border border-separator bg-control px-3 pb-2`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 pt-2 pb-1`,children:[(0,$.jsx)(Ot,{"aria-hidden":`true`,className:`size-3.5 shrink-0 text-brand`}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium`,children:r(`asyncQuestions.pendingCount`,{count:e.length})}),e.length<2?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Pn,{label:r(`asyncQuestions.previous`),disabled:l===0,onClick:()=>{a(e[l-1]?.id)},children:(0,$.jsx)(T,{className:`size-3.5`})}),(0,$.jsxs)(`span`,{className:`min-w-12 text-center text-caption tabular-nums`,children:[l+1,`/`,e.length]}),(0,$.jsx)(Pn,{label:r(`asyncQuestions.next`),disabled:l===e.length-1,onClick:()=>{a(e[l+1]?.id)},children:(0,$.jsx)(w,{className:`size-3.5`})})]}),(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsx)(Z,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-controls":c,"aria-expanded":!o,"aria-label":r(o?`asyncQuestions.expand`:`asyncQuestions.collapse`),onClick:()=>{s(e=>!e)},children:o?(0,$.jsx)(x,{className:`size-3.5`}):(0,$.jsx)(b,{className:`size-3.5`})})}),(0,$.jsx)(J,{children:r(o?`asyncQuestions.expand`:`asyncQuestions.collapse`)})]}),(0,$.jsx)(Pn,{label:r(`asyncQuestions.close`),disabled:n||!e.some(e=>e.status===`pending`),onClick:()=>{t(e.filter(e=>e.status===`pending`).map(e=>e.id)),s(!1)},children:(0,$.jsx)(j,{className:`size-3.5`})})]}),(0,$.jsxs)(`div`,{id:c,hidden:o,className:`max-h-[min(32vh,20rem)] overflow-y-auto overscroll-contain py-2`,children:[u.status===`answering`?(0,$.jsx)(`p`,{role:`status`,className:`mb-2 text-label`,children:r(`asyncQuestions.deliveryPending`)}):null,(0,$.jsx)(Mn,{item:u},u.id)]})]})}function Pn({label:e,disabled:t,onClick:n,children:r}){return(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsx)(Z,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":e,disabled:t,onClick:n,children:r})}),(0,$.jsx)(J,{children:e})]})}function Fn({enabled:e,projectId:t,taskId:n,onAnswered:r}){let i=En(t,n,r);return(0,$.jsx)(kn,{enabled:e,submit:i.answer,children:(0,$.jsx)(Nn,{groups:i.groups,dismiss:i.dismiss,dismissing:i.dismissing})})}function In(e,t){return e.map(e=>({...e,previewUrl:e.kind===`image`?t(e.id):``}))}function Ln(e,t,n,r){let i=new Map(r.map(e=>[e.id,e]));return{files:e.attachments.map(e=>({attachment:e,...e,previewUrl:n(t,e.id),source:`host`})),id:e.id,skills:e.skills.map(e=>i.get(e.id)??{description:``,displayName:e.name,id:e.id,name:e.name,scope:`repo`}),status:e.status,text:e.text}}function Rn(e,t,n){let r={files:t.files,id:t.id??n(),skills:t.skills,status:`awaiting-response`,text:t.text,turnId:t.turnId,userMessageIds:t.userMessageIds};return t.id===void 0||!e.some(e=>e.id===t.id)?[...e,r]:e.map(e=>e.id===t.id?r:e)}function zn(e){return e.flatMap(e=>e.type===`message`&&e.role===`user`?[e.id]:[])}function Bn(e,t){if(t===void 0)return[];let n=e?.turns.find(e=>e.id===t);return zn(n?.items??[])}function Vn(e,t){return t===void 0?[]:zn((e.itemKeysByTurnId[t]??[]).flatMap(t=>{let n=e.getItemByKey(t);return n===void 0?[]:[n]}))}function Hn(e,t){if(e.status!==`awaiting-response`)return!1;let n=new Set(e.userMessageIds);return t.some(e=>!n.has(e))}function Un(e,t,n){return n===`interrupted`||Hn(e,t)}function Wn(e,t){return e.status===`awaiting-response`&&Un(e,Vn(t,e.turnId),t.turnsById[e.turnId]?.status)}function Gn(e){return e.status===`queued`||e.status===`editing`?{files:e.files,skills:e.skills,text:e.text}:void 0}function Kn({controller:e,requestScope:t,store:n,onDirectSubmission:r,onTurnStarted:i,onSteerAccepted:a}){return()=>{let o=n?.getState(),s=new Map(o?.turnIds.map(e=>[e,Vn(o,e)]));return n=>{e.isCurrentScope(t)&&(r?.(),n.turn===null?a({id:n.messageId,files:[],skills:[],text:n.input.text,turnId:n.turnId,userMessageIds:s.get(n.turnId)??[]}):(e.setSubmittedTurnState({scope:t,turnId:n.turn.id}),i?.(n.turn,n.input,[])))}}}function qn({active:e,query:t,children:n}){let{t:r}=O(`workbench`);return!e||t.isSuccess?n:(0,$.jsxs)(`div`,{role:`status`,className:`p-4 text-sm text-muted-foreground`,children:[t.error?.message??r(`taskBoard.loading`),t.isError&&(0,$.jsx)(`button`,{type:`button`,onClick:()=>void t.refetch(),children:r(`composer.retryTodoLoad`)})]})}function Jn({routeScope:e,fastModeSelected:t,onSettingsChange:n,isCurrentScope:r,setSettingsOverride:i,setMutationError:a}){let o=(0,Q.useRef)(0);return(s,c)=>{let l=++o.current;i({scope:e,settings:s}),a(null),Promise.resolve(n(s,c,t)).catch(t=>{r(e)&&o.current===l&&(i(void 0),a(t instanceof Error?t:Error(`Task settings update failed`)))})}}function Yn({closeCommandMenu:e,closeFileMenu:t,commandMenuOpen:n,commandSurfaceRef:r,fileMenuOpen:i,turnControlsDisabled:a}){(0,Q.useEffect)(()=>{a&&(e(),t())},[e,t,a]),(0,Q.useEffect)(()=>{if(!n&&!i)return;let a=n=>{n.key===`Escape`&&(n.preventDefault(),e(),t())},o=n=>{let i=n.target;i instanceof Node&&!r.current?.contains(i)&&(e(),t())};return document.addEventListener(`keydown`,a,!0),document.addEventListener(`pointerdown`,o,!0),()=>{document.removeEventListener(`keydown`,a,!0),document.removeEventListener(`pointerdown`,o,!0)}},[e,t,n,r,i])}function Xn(e,t){let n=t?.model??e.model,r=t?.reasoningEffort??e.reasoningEffort;return n===e.model&&r===e.reasoningEffort?e:{...e,model:n,reasoningEffort:r}}var Zn=1e3,Qn=`Pasted text.txt`;function $n(e){return e===void 0?M.t(`composer.placeholder`,{ns:`workbench`}):M.t(`composer.followUpPlaceholder`,{ns:`workbench`})}function er(e,t,n=d){return e?.fingerprint===t?e:{fingerprint:t,key:n()}}function tr(e,t){if(e!==void 0)return e.supportedReasoningEfforts.some(e=>e.id===t)?t:e.defaultReasoningEffort}function nr(e){return bt(e)}function rr(e,t){return xt(e,t)}function ir(e,t){return{canInterrupt:e?.turns.interrupt??!1,canSubmit:e?.turns.start===!0&&(t||e.tasks.start),canSteer:e?.turns.steer===!0&&t}}function ar(e,t,n,r){return e===`running`?t?n===`queue`?`queue`:r?`steer`:`blocked`:`interrupt`:t?`start`:`blocked`}function or(e){return e.isSubmitting===!0?`submitting`:e.connectionState===`closed`||e.connectionState===`connecting`||e.connectionState===`reconnecting`?`reconnecting`:e.activeTurnId===void 0?e.mutationFailed===!0?`failed`:`idle`:`running`}function sr(e){return{attachmentsDisabled:e===`submitting`,draftInputDisabled:e===`submitting`,turnControlsDisabled:e===`reconnecting`||e===`submitting`}}async function cr(e,t){let n=await e.submitTask(t.projectId,{type:`prompt`,...t.taskId===void 0?{}:{taskId:t.taskId},input:t.input,options:t.turnOptions},{idempotencyKey:t.idempotencyKey});return n.createdTask!==void 0&&t.onTaskCreated?.(n.createdTask),n}async function lr(e,t){let n=await e.submitTask(t.projectId,{type:`review`,target:t.target,...t.taskId===void 0?{}:{taskId:t.taskId}},{idempotencyKey:t.idempotencyKey});return n.createdTask!==void 0&&t.onTaskCreated?.(n.createdTask),n}function ur(e,t,n,r,i){return e.interruptTurn(t,n,r,{idempotencyKey:i})}function dr(e,t,n,r,i,a){return e.steerTurn(t,n,r,i,{idempotencyKey:a})}var fr=(0,Q.forwardRef)(function({content:e,onChange:t,onKeyDown:n,scope:r,skills:i,...a},o){let s=(0,Q.useRef)(null),c=(0,Q.useRef)(e),l=(0,Q.useRef)(i),u=(0,Q.useRef)(t),d=(0,Q.useRef)(void 0),f=(0,Q.useRef)(void 0);l.current=i,u.current=t;let p=(0,Q.useCallback)((e,t)=>{let n=s.current;if(c.current=e,n===null)return;let r=Sn(e);n.value=r,n.dataset.serializedValue=r,t!==void 0&&n.setSelectionRange(t,t)},[]),m=(0,Q.useCallback)(e=>{if(Sn(c.current)===e.value)return c.current;let t=bn(cn(e.value),l.current);return c.current=t,e.dataset.serializedValue=e.value,u.current(t,e.value,e.selectionStart),t},[]);(0,Q.useImperativeHandle)(o,()=>({focus(e){let t=s.current;t?.focus(),e!==void 0&&t?.setSelectionRange(e,e)},getContent(){let e=s.current;return e===null?c.current:m(e)},replace:p}),[m,p]),(0,Q.useLayoutEffect)(()=>{d.current!==r&&(d.current=r,p(e))},[e,p,r]),(0,Q.useLayoutEffect)(()=>{if(f.current!==r){f.current=r;return}let e=s.current;if(e===null||i.length===0)return;let t=bn(cn(e.value),i);c.current=t,u.current(t,e.value,e.selectionStart)},[r,i]);let h=e=>{m(e)};return(0,$.jsx)(ge,{...a,"data-prompt-skill-editor":``,"data-serialized-value":Sn(e),defaultValue:Sn(e),onChange:e=>{h(e.currentTarget)},onKeyDown:e=>{if(n?.(e),e.defaultPrevented||!ce(e))return;e.preventDefault();let t=e.currentTarget,r=t.selectionStart+1;t.setRangeText(`
2
+ `,t.selectionStart,t.selectionEnd,`end`),t.setSelectionRange(r,r),h(t)},ref:s})}),pr=(e,t)=>[`projects`,e,t,`git-status`],mr=(e,t)=>[`projects`,e,t,`git-worktrees`];function hr(e,t,n,r){e.setQueryData([`projects`],r.projects),e.setQueryData(mr(t,n),r.worktrees)}async function gr(e,t,n,r,i,a){if(i.repositoryMode!==`root`||i.branch===a||!i.branches.includes(a))return!1;let o=pr(n,r);await t.cancelQueries({exact:!0,queryKey:o});let s=await e.switchProjectBranch(n,r,{branch:a,expectedSnapshot:i.snapshot});return t.setQueryData(o,s),!0}async function _r(e,t,n,r,i,a){let o=a.trim();if(i.repositoryMode!==`root`||o.length===0||i.branches.includes(o))return!1;let s=pr(n,r);await t.cancelQueries({exact:!0,queryKey:s});let c=await e.createProjectBranch(n,r,{branch:o,expectedSnapshot:i.snapshot});return t.setQueryData(s,c),!0}async function vr(e,t,n,r,i,a){let o=a.trim();if(i.repositoryMode!==`root`||o.length===0)return;let s=await e.createProjectWorktree(n,r,{branch:o,expectedSnapshot:i.snapshot});return hr(t,n,r,s),t.setQueryData(pr(n,r),s.status),s.project}async function yr(e,t,n,r,i,a){if(i.find(e=>e.path===a&&!e.current)===void 0)return;let o=await e.switchProjectWorktree(n,r,{path:a});return hr(t,n,r,o),o.project}function br({client:e,gitStatus:t,isCurrentScope:n,projectId:r,routeScope:a,rootPath:c}){let l=i(),u=o(),{projects:d}=Qe(),f=(0,Q.useRef)(Ye()),[p,m]=(0,Q.useState)(),[h,g]=(0,Q.useState)(),[_,v]=(0,Q.useState)(),[y,b]=(0,Q.useState)(),[x,S]=(0,Q.useState)(),C=p!==void 0||h!==void 0||_!==void 0||y!==void 0,w=s({enabled:t?.repositoryMode===`root`,queryFn:({signal:t})=>e.listProjectWorktrees(r,c,{signal:t}),queryKey:mr(r,c),staleTime:5e3}).data?.worktrees??[];return(0,Q.useEffect)(()=>{let e=x?.routeScope===a?x.projectId:void 0;e===void 0||!d.some(t=>t.id===e)||l({params:{projectId:e},to:`/p/$projectId`})},[l,d,a,x]),(0,Q.useEffect)(()=>{m(void 0),g(void 0),v(void 0),b(void 0),S(void 0)},[a]),{createBranch:async i=>{let o=a;return t===void 0||C?!1:await f.current.run(async()=>{m(i);try{let n=await _r(e,u,r,c,t,i);return n&&W(),n}catch(e){return q(e),await u.invalidateQueries({exact:!0,queryKey:pr(r,c)}).catch(()=>void 0),!1}finally{n(o)&&m(void 0)}})??!1},creatingBranch:p,createWorktree:async i=>{let o=a;return t===void 0||C?!1:await f.current.run(async()=>{g(i);try{let n=await vr(e,u,r,c,t,i);return n===void 0?!1:(W(),S({projectId:n.id,routeScope:o}),!0)}catch(e){return q(e),await u.invalidateQueries({exact:!0,queryKey:mr(r,c)}).catch(()=>void 0),!1}finally{n(o)&&g(void 0)}})??!1},creatingWorktree:h,switchBranch:async i=>{let o=a;t===void 0||C||await f.current.run(async()=>{v(i);try{await gr(e,u,r,c,t,i)&&W()}catch(e){q(e),await u.invalidateQueries({exact:!0,queryKey:pr(r,c)}).catch(()=>void 0)}finally{n(o)&&v(void 0)}})},switchingBranch:_,switchWorktree:async t=>{let i=a;C||await f.current.run(async()=>{b(t);try{let n=await yr(e,u,r,c,w,t);if(n===void 0)return;W(),S({projectId:n.id,routeScope:i})}catch(e){q(e),await u.invalidateQueries({exact:!0,queryKey:mr(r,c)}).catch(()=>void 0)}finally{n(i)&&b(void 0)}})},switchingWorktree:y,worktrees:w}}function xr({client:e,handleAttachmentsChange:t,projectId:n,replacePromptContent:r,routeScope:i,runtime:a,skillEditorRef:c,skills:l,taskId:u}){let p=o(),m=vt(n,u??``),h=s({enabled:u!==void 0,queryFn:({signal:t})=>e.listQueuedSubmissions(n,u??``,{signal:t}).then(e=>e.data),queryKey:m,staleTime:1/0}),[_,v]=(0,Q.useState)([]),y=(0,Q.useMemo)(()=>u===void 0?[]:(h.data??[]).map(e=>Ln(e,n,(e,t)=>g(``,e,t),l)),[n,h.data,l,u]),b=_.filter(e=>e.scope===i).map(e=>e.prompt),x=new Set(b.map(e=>e.id)),S=y.find(e=>e.status===`editing`)?.id,C=[...y.filter(e=>!x.has(e.id)),...b];(0,Q.useEffect)(()=>{let e=a?.store;if(e!==void 0)return e.subscribe(e=>{v(t=>t.filter(t=>t.scope!==i||t.prompt.status!==`awaiting-response`||!Wn(t.prompt,e)))})},[i,a?.store]);let w=e=>{p.setQueryData(m,e.data)},T=async(t,r)=>{if(u===void 0)return!1;if(S===void 0){let i=await e.addQueuedSubmission(n,u,t,r,{idempotencyKey:d()});w(i.queue)}else{let r=await e.updateQueuedSubmission(n,u,S,t,`queued`,{idempotencyKey:d()});w(r.queue)}return!0},E=async t=>{if(u===void 0)return;let r=await e.deleteQueuedSubmission(n,u,t,{idempotencyKey:d()});w(r.queue)},ee=async i=>{let a=Gn(i);if(a===void 0)return;let o=ln(a.text,a.skills);if(u===void 0||i.status!==`queued`)return;let s=e.updateQueuedSubmission(n,u,i.id,{attachments:a.files.flatMap(e=>e.source===`host`?[{id:e.attachment.id}]:[]),skills:a.skills.map(({id:e,name:t})=>({id:e,name:t})),text:a.text,type:`prompt`},`editing`,{idempotencyKey:d()});r(o,Sn(o).length),t(a.files),requestAnimationFrame(()=>{c.current?.focus(Sn(o).length)}),w((await s).queue)},D=e=>{v(t=>{let n=Rn(t.filter(e=>e.scope===i).map(e=>e.prompt),e,d);return[...t.filter(e=>e.scope!==i),...n.map(e=>({prompt:e,scope:i}))]})};return{editQueuedPrompt:ee,editingId:S,moveQueuedPrompt:async(t,r)=>{if(u===void 0)return;let i=y.map(e=>e.id),a=i.indexOf(t),o=a+r;if(a<0||o<0||o>=i.length)return;let s=i[a],c=i[o];if(s===void 0||c===void 0)return;i[a]=c,i[o]=s;let l=await e.reorderQueuedSubmissions(n,u,i,{idempotencyKey:d()});w(l.queue)},onSteerAccepted:D,queueError:h.error,queuedPrompts:C,removeQueuedPrompt:E,saveQueuedSubmission:T,sendQueuedPrompt:async t=>{let r=y.findIndex(e=>e.id===t.id),i=y.findIndex(e=>e.status===`editing`);if(t.status!==`queued`||u===void 0||i>=0&&r>=i)return;let o=a?.readSnapshot(),s=await e.startQueuedSubmission(n,u,t.id,{idempotencyKey:d()});D({files:In(t.files,e=>f(``,n,u,e)),id:t.id,skills:t.skills,text:t.text,turnId:s.turn.id,userMessageIds:Bn(o,s.turn.id)}),w(s.queue)}}}function Sr(e,t){let n=ht(),r=ft(e),i=at(e),[a,o]=(0,Q.useState)(t!==void 0&&n.read(e,t)!==void 0?{projectId:e,todoId:t}:void 0),s=a?.projectId===e?a.todoId:void 0;(0,Q.useEffect)(()=>{o(t!==void 0&&n.read(e,t)!==void 0?{projectId:e,todoId:t}:void 0)},[t,e,n,r.isSuccess]);let c=()=>{o(void 0)};return{complete:c,discardIfEmpty:t=>{s===void 0||t||(n.discardWorking(e,s),c())},editingTodoId:s,projectTodos:n,remove:async t=>{try{await n.remove(e,t),s===t&&c()}catch(e){q(e instanceof Error?e:Error(String(e)))}},restore:(t,r)=>{n.read(e,t)!==void 0&&(s===void 0&&r(),o({projectId:e,todoId:t}))},todos:i,query:r}}function Cr({projectToolsEnabled:e=!0}={}){let t=e=>M.t(e,{ns:`workbench`}),n=[{action:`review`,description:t(`promptCommand.review.description`),id:`review-code`,keywords:[`review`,`code review`,`审查`,`代码审查`],label:t(`promptCommand.review.label`)},{action:`initialize`,description:t(`promptCommand.initialize.description`),id:`initialize`,keywords:[`init`,`initialize`,`初始化`,`AGENTS.md`],label:t(`promptCommand.initialize.label`)},{action:`compact`,description:t(`promptCommand.compact.description`),id:`compact`,keywords:[`compact`,`context`,`压缩`,`上下文`],label:t(`promptCommand.compact.label`)},{action:`fork`,description:t(`promptCommand.fork.description`),id:`copy-task`,keywords:[`fork`,`copy`,`复制`,`任务`],label:t(`promptCommand.fork.label`)},{action:`plan`,description:t(`promptCommand.plan.description`),id:`plan`,keywords:[`plan`,`planning`,`计划`,`规划`],label:t(`promptCommand.plan.label`)},{action:`goal`,description:t(`promptCommand.goal.description`),id:`goal`,keywords:[`goal`,`objective`,`目标`,`长期任务`],label:t(`promptCommand.goal.label`)}];return e?n:n.filter(e=>e.action!==`review`&&e.action!==`initialize`)}function wr(e,t,n){return t===void 0?{available:!1,reason:M.t(`promptCommand.availability.notReady`,{ns:`workbench`})}:e.action!==`initialize`&&e.action!==`goal`&&e.action!==`plan`&&e.action!==`review`&&!n?{available:!1,reason:M.t(`promptCommand.availability.noTask`,{ns:`workbench`})}:(e.action===`initialize`?t.turns.start&&(n||t.tasks.start):e.action===`review`?t.turns.review&&(n||t.tasks.start):e.action===`compact`?t.turns.compact:e.action===`goal`?t.goals.update&&t.turns.start:e.action===`plan`?t.turns.start:t.tasks.fork)?{available:!0}:{available:!1,reason:M.t(`promptCommand.availability.unsupported`,{ns:`workbench`})}}function Tr(e,t,n){if(t<0||t>e.length)return null;let r=e.slice(0,t),i=r.lastIndexOf(n);if(i<0)return null;let a=r[i-1],o=r.slice(i+1);return a!==void 0&&!/\s/u.test(a)||/\s/u.test(o)?null:{end:t,query:o,start:i}}function Er(e,t){return Tr(e,t,`/`)}function Dr(e,t){return Tr(e,t,`@`)}function Or(e,t){let n=t.trim().toLocaleLowerCase();return n===``?e:e.filter(e=>[e.label,...e.keywords].some(e=>e.toLocaleLowerCase().includes(n)))}function kr(e,t){let n=t.trim().toLocaleLowerCase();return n===``?e:e.filter(e=>[e.displayName,e.name,e.description].some(e=>e.toLocaleLowerCase().includes(n)))}function Ar(e,t,n){return n===0?0:(e+t+n)%n}function jr({capabilities:e,client:t,onRequestNotificationPermission:n,onTaskCreated:r,onTaskStarted:i,projectId:a,session:o,submitPrompt:s,t:c,taskId:l}){let{activeCommandIndex:u,activeTaskId:d,baseBranches:f,closeCommandMenu:p,commandSlashCommand:m,composerController:h,filteredCommands:g,filteredSkills:_,pendingTask:v,promptContent:y,replacePromptContent:b,reviewMenuMode:x,routeScope:S,selectActiveFileReference:C,setActiveCommandIndex:w,setCommandMenuOpen:T,setCommandQuery:E,setCommandSlashCommand:ee,setComposerModeState:D,setReviewMenuMode:te,skillEditorRef:O,state:ne}=o,{actionLock:k,commandAttempts:A,isCurrentScope:j,setIsSubmitting:M,setMutationError:N,setPendingTaskState:P,setSubmittedTurnState:re}=h,ie=e=>{requestAnimationFrame(()=>{O.current?.focus(e)})},F=t=>{let n=wr(t,e,d!==void 0);return n.available&&ne===`running`?{available:!1,reason:c(`composer.taskRunning`)}:n},ae=async e=>{let r=S;if(F(e).available){if(e.action===`plan`||e.action===`goal`){let t=m;if(t===void 0)return;let n=O.current?.getContent()??y;b(xn(n,t),t.start),D({mode:e.action,scope:S}),p(),ie(t.start);return}if(E(``),ee(void 0),b([]),e.action===`review`){w(0),te(`scopes`);return}if(T(!1),te(null),e.action===`initialize`){await s({files:[],text:c(`composer.initializingAgentsPrompt`)},[]);return}d!==void 0&&await k.run(async()=>{e.action===`compact`&&n(),M(!0),N(null);let o=er(A.current.get(e.action),`${e.action}:${d}`);A.current.set(e.action,o);try{e.action===`compact`?(await t.compactTask(a,d,{idempotencyKey:o.key}),j(r)&&W(c(`composer.compacting`))):i((await t.forkTask(a,d,{},{idempotencyKey:o.key})).task),j(r)&&A.current.delete(e.action)}catch(e){j(r)&&N(e instanceof Error?e:Error(`Task command failed`))}finally{j(r)&&M(!1)}})}},I=e=>k.run(async()=>{let o=S;n(),p(),M(!0),N(null);let s=er(A.current.get(`review`),JSON.stringify({target:e,taskId:d??a}));A.current.set(`review`,s);try{let n=await lr(t,{idempotencyKey:s.key,onTaskCreated(e){j(o)&&(P({scope:o,task:e}),r?.(e))},projectId:a,target:e,...d===void 0?{}:{taskId:d}});if(j(o)&&(A.current.delete(`review`),re({scope:o,turnId:n.turn.id}),W(c(`composer.reviewStarted`)),l===void 0)){let e=n.createdTask??v;e!==void 0&&i(e,n.turn)}}catch(e){j(o)&&N(e instanceof Error?e:Error(`Review command failed`))}finally{j(o)&&M(!1)}}),L=e=>{let t=m;if(t===void 0)return;let n=_n(O.current?.getContent()??y,t,e),r=t.start+`$${e.name}`.length;b(n,r),T(!1),E(``),ee(void 0),ie(r)};return{executePromptCommand:ae,executeReviewTarget:I,getCommandAvailability:F,selectActiveCommandItem:()=>{if(C())return;if(x===`scopes`){u===0?I({type:`uncommitted_changes`}):u===1&&f.length>0&&(w(0),te(`branches`));return}if(x===`branches`){let e=f[u];e!==void 0&&I({branch:e,type:`base_branch`});return}let e=g[u];if(e!==void 0){ae(e);return}let t=_[u-g.length];t!==void 0&&L(t)},selectSkill:L}}function Mr(e,t,n,r,i){return{...e,...r===`plan`?{collaborationMode:`plan`}:{},...r===`goal`?{goalMode:!0}:{},...i?{fastMode:!0}:{},model:t,reasoningEffort:n??e.reasoningEffort}}async function Nr(e,t){return e.source===`host`?e.attachment:t(e)}async function Pr(e,t,n){let r=Array(t.length),i=0;return await Promise.all(Array.from({length:Math.min(2,t.length)},async()=>{for(;i<t.length;){let a=i;i+=1;let o=t[a];if(o===void 0)continue;let s=await Nr(o,n);r[a]={attachment:s,...s,previewUrl:s.kind===`image`?g(``,e,s.id):``,source:`host`}}})),r}function Fr(e,t,n){return n.map(n=>({attachment:n,...n,previewUrl:n.kind===`image`?f(``,e,t,n.id):``,source:`host`}))}function Ir({actionLock:e,attachments:t,clearComposerInput:n,client:r,editingTodoId:i,fallbackError:a,hasComposerInput:o,isCurrentScope:s,isSubmitting:c,onEditingComplete:l,projectId:u,projectTodos:f,promptContent:p,routeScope:m,setIsSubmitting:h,setMutationError:g,skillEditorRef:_,submitPrompt:v,uploadAttempts:y={current:new Map},uploadedAttachments:b={current:new Map}}){let x=async e=>{let t=b.current.get(e.id);if(t!==void 0)return t;let n=y.current.get(e.id)??d();y.current.set(e.id,n);let i=await r.uploadAttachment(u,{content:e.file,kind:e.kind,name:e.name},{idempotencyKey:n});return b.current.set(e.id,i.attachment),i.attachment};return{save:async()=>{!o||c||await e.run(async()=>{h(!0),g(null);try{let e={attachments:await Pr(u,t,x),content:_.current?.getContent()??p};i===void 0?(await f.create(u,e),s(m)&&n()):(await f.save(u,i,e),s(m)&&l())}catch(e){s(m)&&g(e instanceof Error?e:Error(a))}finally{s(m)&&h(!1)}})},submit:async e=>{await v(e)&&i!==void 0&&(await f.remove(u,i),l())}}}var Lr={attachments:[],content:[]};function Rr(e,t){return JSON.stringify([e,`project-todo`,t])}function zr(e,t){return e.routeScope!==t.routeScope||e.storageScope!==t.storageScope}function Br({composerDrafts:e,editingTodoId:t,projectId:n,projectTodos:r,taskId:i}){if(t===void 0){let t=lt(n,i);return{clear:()=>{e.clear(t)},read:()=>e.read(t),scope:t,update:n=>{e.update(t,n)}}}let a=Rr(n,t),o=()=>{let e=r.read(n,t);return e?.workingDraft??e?.draft??Lr};return{clear:()=>{r.updateWorking(n,t,Lr)},read:o,scope:a,update:e=>{r.updateWorking(n,t,e(o()))}}}function Vr(e,t){return e===t}function Hr(e,t){let[n,r]=(0,Q.useState)(!1),[i,a]=(0,Q.useState)(null),[o,s]=(0,Q.useState)(),[c,l]=(0,Q.useState)(),u=(0,Q.useRef)(e);u.current=e;let d=(0,Q.useRef)(void 0),f=(0,Q.useRef)(void 0),p=(0,Q.useRef)(void 0),m=(0,Q.useRef)(new Map),h=(0,Q.useRef)(new Map),g=(0,Q.useRef)(new Map),_=(0,Q.useMemo)(()=>Ye(),[e]);(0,Q.useEffect)(()=>{t?.(n)},[n,t]),(0,Q.useEffect)(()=>()=>{t?.(!1)},[t]);let v=(0,Q.useCallback)(e=>Vr(u.current,e),[]),y=(0,Q.useCallback)(e=>{a(e),e!==null&&q(e)},[]);return{actionLock:_,commandAttempts:g,interruptAttempt:p,isCurrentScope:v,isSubmitting:n,mutationError:i,pendingTaskState:o,reset:(0,Q.useCallback)(e=>{r(!1),y(null),e&&(s(void 0),l(void 0)),d.current=void 0,f.current=void 0,p.current=void 0,m.current.clear(),h.current.clear(),g.current.clear()},[y]),setIsSubmitting:r,setMutationError:y,setPendingTaskState:s,setSubmittedTurnState:l,startTurnAttempt:d,steerTurnAttempt:f,submittedTurnState:c,uploadAttempts:h,uploadedAttachments:m}}function Ur(e,t,n,i,o,s){return r({enabled:s,placeholderData:a,queryFn:({signal:r})=>e.searchProjectFiles(t,n,o,i,{signal:r}),queryKey:[`projects`,t,n,`file-search`,i,o],staleTime:3e4})}function Wr(e,t,n,r){e.stopProjectFileSearch(t,n,r).catch(()=>void 0)}function Gr(e,t,n,r,i){let a=(0,Q.useMemo)(()=>({enabled:i,id:d(),projectId:t,rootPath:n}),[i,t,n]).id,[o,c]=(0,Q.useState)({enabled:!1,query:r});(0,Q.useEffect)(()=>{if(!i){c(e=>!e.enabled&&e.query===r?e:{enabled:!1,query:r});return}let e=setTimeout(()=>{c({enabled:!0,query:r})},150);return()=>{clearTimeout(e)}},[i,r]),(0,Q.useEffect)(()=>{if(i)return()=>{Wr(e,t,n,a)}},[e,i,t,n,a]);let l=o.enabled&&o.query===r;return s(Ur(e,t,n,a,o.query,i&&l))}function Kr(e,t){let n=new Map(t.map(e=>[e.name,e])),r=[];for(let t=e.turnIds.length-1;t>=0;--t){let i=e.turnIds[t];if(i===void 0)continue;let a=e.itemKeysByTurnId[i]??[];for(let t=a.length-1;t>=0;--t){let i=a[t];qr(r,i===void 0?void 0:e.getItemByKey(i),n)}}return r}function qr(e,t,n){if(t?.type!==`message`||t.role!==`user`)return;let r=t.skills??[];if(t.text===``&&r.length===0)return;let i=[];for(let[e,a]of r.entries()){let o=n.get(a.name);i.push(o===void 0?{text:`$${a.name}`,type:`text`}:{skill:o,type:`skill`}),(e<r.length-1||t.text!==``)&&i.push({text:` `,type:`text`})}t.text!==``&&i.push({text:t.text,type:`text`}),e.push(un(i))}function Jr(e,t,n){return n===0||e===null&&t===`next`?null:e===null?0:t===`previous`?Math.min(e+1,n-1):e===0?null:e-1}function Yr(e,t,n){let r=Math.max(0,Math.min(t,e.length));if(n===`previous`){let t=e.indexOf(`
3
+ `);return t<0||r<=t}return r>=e.lastIndexOf(`
4
+ `)+1}var Xr=[];function Zr({capabilities:e,composerDraftId:t,client:n,editingTodoId:r,gitStatus:i,models:a,initialDraft:o,onSubmissionStateChange:s,projectId:c,projectPath:l,projectToolsEnabled:u,projectTodos:d,runtime:f,settings:p,skills:m,taskId:h}){let g=`${c}:${t??h??`draft`}:${l}`,_=_t(),v=(0,Q.useMemo)(()=>Br({composerDrafts:_,editingTodoId:r,projectId:c,projectTodos:d,taskId:t??h}),[t,_,r,c,d,h]),y=v.scope,b=o??v.read(),[x,S]=(0,Q.useState)(),[C,w]=(0,Q.useState)(0),[T,E]=(0,Q.useState)(b.attachments),[ee,D]=(0,Q.useState)(),[te,O]=(0,Q.useState)(!1),[ne,k]=(0,Q.useState)(!1),[A,j]=(0,Q.useState)(),[M,N]=(0,Q.useState)(``),[P,re]=(0,Q.useState)(null),[ie,F]=(0,Q.useState)(``),[ae,I]=(0,Q.useState)(),[L,R]=(0,Q.useState)(b.content),[z,oe]=(0,Q.useState)(null),[se,ce]=(0,Q.useState)(),B=Hr(g,s),{isSubmitting:le,mutationError:V,pendingTaskState:ue,reset:de,setIsSubmitting:H,setMutationError:fe,setPendingTaskState:pe,setSubmittedTurnState:me,submittedTurnState:he}=B,ge=(0,Q.useId)(),_e=(0,Q.useRef)(null),U=(0,Q.useRef)(null),ve=(0,Q.useRef)(b.content),ye=(0,Q.useRef)(g),be=(0,Q.useRef)(y),xe=he?.scope===g?he.turnId:void 0,Se=ue?.scope===g?ue.task:void 0,Ce=xe===void 0?void 0:f?.store?.getState().turnsById[xe]?.status,we=f?.activeTurnId??(xe!==void 0&&(Ce===void 0||Ce===`running`)?xe:void 0),Te=h??Se?.id,{canInterrupt:Ee,canSubmit:De,canSteer:Oe}=ir(e,Te!==void 0),ke=f?.connectionState??`connected`,Ae=or({activeTurnId:we,connectionState:ke,isSubmitting:le,mutationFailed:V!==null||f?.error!==null}),je=Cn(L),Me=f?.metadata?.threadConfiguration,Ne=(0,Q.useMemo)(()=>x?.scope===g?x.settings:Xn(p,Me),[g,p,x,Me]),Pe=se?.scope===g?se.mode:void 0,Fe=a.find(e=>e.id===Ne.model)??a.find(e=>e.isDefault)??a[0],Ie=tr(Fe,Ne.reasoningEffort),Le=f?.metadata?.contextUsage,Re=(0,Q.useMemo)(()=>f?.store===void 0?[]:Kr(f.store.getState(),m),[f,m]),ze=T.length,{attachmentsDisabled:Be,draftInputDisabled:Ve,turnControlsDisabled:He}=sr(Ae),W=Gr(n,c,l,M,ne&&u&&!He),Ue=W.data?.data??Xr,G=kr(e?.skills.use===!0?m:[],ie),We=Or(Cr({projectToolsEnabled:u}),ie),Ge=i?.baseBranches??[],Ke=ne?Ue.length:P===`scopes`?2:P===`branches`?Ge.length:G.length+We.length,qe=!te&&!ne||Ke===0?void 0:`${ge}-item-${String(C)}`,K=(0,Q.useCallback)(e=>{E(e),v.update(t=>({...t,attachments:e}))},[v]),Je=(0,Q.useCallback)(()=>{O(!1),F(``),I(void 0),re(null)},[]),Ye=(0,Q.useCallback)(()=>{k(!1),j(void 0),N(``)},[]),Xe=(0,Q.useCallback)((e,t)=>{R(e),v.update(t=>({...t,content:e})),U.current?.replace(e,t)},[v]),Ze=(0,Q.useCallback)(e=>{let t=Jr(z,e,Re.length);if(t===null&&z===null)return!1;z===null&&(ve.current=U.current?.getContent()??L);let n=t===null?ve.current:Re[t];return n===void 0?!1:(oe(t),Xe(n,Sn(n).length),!0)},[L,Re,z,Xe]),Qe=(0,Q.useCallback)(e=>{if(A===void 0)return;let t=vn(U.current?.getContent()??L,A,e),n=A.start+pn(e).length+1;Xe(t,n),Ye(),requestAnimationFrame(()=>{U.current?.focus(n)})},[Ye,A,L,Xe]),q=(0,Q.useCallback)(e=>{let t=yn(U.current?.getContent()??L,e),n=Sn(t).length;Je(),Ye(),oe(null),Xe(t,n),requestAnimationFrame(()=>{U.current?.focus(n)})},[Je,Ye,L,Xe]),J=(0,Q.useCallback)(()=>{if(!ne)return!1;let e=Ue[C];return e!==void 0&&Qe(e),!0},[C,ne,Ue,Qe]),$e=(0,Q.useCallback)((e,t,n)=>{R(e),oe(null),v.update(t=>({...t,content:e}));let r=Dr(t,n);if(u&&r!==null&&gn(e,r)){w(0),O(!1),F(``),I(void 0),re(null),k(!0),j(r),N(r.query);return}Ye();let i=Er(t,n);if(i===null){O(!1),re(null),F(``),I(void 0);return}w(0),O(!0),re(null),F(i.query),I(i)},[Ye,v,u]),Y=(0,Q.useCallback)(()=>{R([]),oe(null),ve.current=[],E([]),U.current?.replace([]),v.clear()},[v]);return(0,Q.useLayoutEffect)(()=>{if(!zr({routeScope:ye.current,storageScope:be.current},{routeScope:g,storageScope:y}))return;ye.current=g;let e=be.current!==y;if(e){be.current=y;let e=v.read();R(e.content),oe(null),ve.current=e.content,E(e.attachments),D(void 0),U.current?.replace(e.content),S(void 0),ce(void 0),w(0),O(!1),k(!1),j(void 0),N(``),re(null),F(``),I(void 0)}de(e)},[v,y,de,g]),{activeCommandIndex:C,activeCommandItemId:qe,activeSettings:Ne,activeTaskId:Te,activeTurnId:we,attachmentCount:ze,attachmentPickerKind:ee,attachments:T,attachmentsDisabled:Be,baseBranches:Ge,canInterrupt:Ee,canSteer:Oe,canSubmit:De,clearComposerInput:Y,closeCommandMenu:Je,closeFileMenu:Ye,commandMenuId:ge,commandMenuOpen:te,commandSlashCommand:ae,commandSurfaceRef:_e,composerController:B,composerScope:y,connectionState:ke,contextUsage:Le,draftInputDisabled:Ve,filteredCommands:We,filteredSkills:G,fileMenuOpen:ne,fileMention:A,fileQuery:M,fileSearchError:W.error,fileSearchPending:W.isPending,fileSearchResults:Ue,handleAttachmentsChange:K,handlePromptChange:$e,isSubmitting:le,menuItemCount:Ke,mutationError:V,navigatePromptHistory:Ze,pendingTask:Se,composerMode:Pe,promptContent:L,promptSubmission:je,referenceProjectPath:q,replacePromptContent:Xe,reviewMenuMode:P,routeScope:g,selectedModel:Fe,selectedReasoningEffort:Ie,selectActiveFileReference:J,selectFileReference:Qe,setActiveCommandIndex:w,setAttachmentPickerKind:D,setAttachments:E,setCommandMenuOpen:O,setFileMenuOpen:k,setFileMention:j,setFileQuery:N,setCommandQuery:F,setCommandSlashCommand:I,setIsSubmitting:H,setMutationError:fe,setPendingTaskState:pe,setComposerModeState:ce,setPromptContent:R,setReviewMenuMode:re,setSettingsOverride:S,setSubmittedTurnState:me,skillEditorRef:U,state:Ae,turnControlsDisabled:He}}function Qr({activeUserMessageIds:e,activeSettings:t,activeTaskId:n,activeTurnId:r,canSteer:i,canSubmit:a,clearComposerInput:o,client:s,controller:c,followUpBehavior:l,editingQueuedSubmission:u,fastMode:f,onDirectSubmission:p,onCaptureSubmission:m,onRequestNotificationPermission:h,onTaskCreated:g,onTaskStarted:_,onTurnStarted:v,pendingTask:y,composerMode:b,onGoalStarted:x,onSteerAccepted:S,projectId:C,promptContent:w,routeScope:T,saveQueuedSubmission:E,selectedModel:ee,selectedReasoningEffort:D,skillEditorRef:te,state:O,taskId:ne,t:k,turnControlsDisabled:A}){let{actionLock:j,isCurrentScope:M,setIsSubmitting:N,setMutationError:P,setPendingTaskState:re,setSubmittedTurnState:ie,startTurnAttempt:F,steerTurnAttempt:ae,uploadAttempts:I,uploadedAttachments:L}=c,R=async(c,j,R={})=>{let z=T,oe=j===void 0?Cn(te.current?.getContent()??w):void 0,se=(oe?.text??c.text).trim(),ce=R.composerMode===null?void 0:R.composerMode??b;if(ce===`goal`&&(se.length===0||se.length>4e3))return P(Error(k(se.length===0?`composer.goalObjectiveRequired`:`composer.goalObjectiveTooLong`))),!1;let B=j??oe?.skills??[];if(ce===`goal`&&(c.files.length>0||B.length>0))return P(Error(k(`composer.goalStructuredInputUnsupported`))),!1;let le=se!==``||c.files.length>0||B.length>0,V=R.forceAction??(u?`queue`:ar(O,le,l,i));if(V===`blocked`||V===`interrupt`||!le||ee===void 0||D===void 0||A||m===void 0&&V!==`steer`&&!a||V===`steer`&&(!i||n===void 0||r===void 0))return!1;m===void 0&&V!==`queue`&&R.requestTimelineScroll!==!1&&p?.(),m===void 0&&h(),N(!0),P(null);let ue,de;try{de=await Promise.all(c.files.map(e=>Nr(e,async e=>{let t=L.current.get(e.id);if(t!==void 0)return t;let n=I.current.get(e.id)??d();I.current.set(e.id,n);let r=await s.uploadAttachment(C,{content:e.file,kind:e.kind,name:e.name},{idempotencyKey:n});return M(z)&&L.current.set(e.id,r.attachment),r.attachment}))),ue={attachments:de.map(e=>({id:e.id})),skills:B.map(e=>({id:e.id,name:e.name})),text:se,type:`prompt`}}catch(e){return M(z)&&(P(e instanceof Error?e:Error(k(`composer.attachmentUploadFailed`))),N(!1)),!1}let H=Mr(t,ee.id,D,ce,f);if(m!==void 0)try{return await m(ue,H,de),!0}catch(e){return M(z)&&P(e instanceof Error?e:Error(`Prompt capture failed`)),!1}finally{M(z)&&N(!1)}if(V===`queue`)try{let e=await E(ue,d());return e&&M(z)&&(o(),L.current.clear(),I.current.clear()),e}catch(e){return M(z)&&P(e instanceof Error?e:Error(`Prompt queueing failed`)),!1}finally{M(z)&&N(!1)}if(V===`steer`){if(n===void 0||r===void 0)return!1;let t=er(ae.current,JSON.stringify({input:ue,taskId:n,turnId:r}));ae.current=t;try{return await dr(s,C,n,r,ue,t.key),M(z)&&(S({files:Fr(C,n,de),skills:B,text:se,turnId:r,userMessageIds:e}),R.clearInputOnSuccess!==!1&&o(),ae.current=void 0,L.current.clear(),I.current.clear()),!0}catch(e){return M(z)&&P(e instanceof Error?e:Error(`Prompt steering failed`)),!1}finally{M(z)&&N(!1)}}let fe=er(F.current,JSON.stringify({projectId:C,taskId:n,input:ue,options:H}));F.current=fe;try{let e=await cr(s,{idempotencyKey:fe.key,input:ue,onTaskCreated(e){M(z)&&(re({scope:z,task:e}),g?.(e))},projectId:C,...n===void 0?{}:{taskId:n},turnOptions:H});if(M(z)&&(R.clearInputOnSuccess!==!1&&o(),H.goalMode===!0&&x(),ie({scope:z,turnId:e.turn.id})),v?.(e.turn,ue,de),M(z)&&(F.current=void 0,L.current.clear(),I.current.clear()),ne===void 0){let t=e.createdTask??y;t!==void 0&&_(t,e.turn,ue,H,de,e.checkpoint)}return!0}catch(e){return M(z)&&P(e instanceof Error?e:Error(`Prompt submission failed`)),!1}finally{M(z)&&N(!1)}};return(e,t,n={})=>j.run(()=>R(e,t,n)).then(e=>e??!1)}function $r({directoryStates:e,entries:t,expandedPaths:n,onRetry:r}){let{t:i}=O(`workbench`);return t.map(t=>{if(t.type===`file`)return(0,$.jsx)(ot,{name:t.name,path:t.path},t.path);let a=e.get(t.path),o=n.has(t.path);return(0,$.jsx)(ut,{name:t.name,path:t.path,trailing:o&&a?.isFetching===!0?(0,$.jsx)(y,{"aria-hidden":`true`,className:`size-3.5 animate-spin`}):void 0,children:o?a?.error!==null&&a?.error!==void 0?(0,$.jsxs)(`div`,{className:`flex min-h-9 items-center justify-between gap-2 px-2 py-1`,children:[(0,$.jsx)(`p`,{className:`min-w-0 text-caption text-danger`,role:`alert`,children:i(`hostAttachmentPicker.loadBranchError`)}),(0,$.jsxs)(Z,{className:`shrink-0`,onClick:()=>{r(t.path)},size:`sm`,type:`button`,variant:`ghost`,children:[(0,$.jsx)(te,{"aria-hidden":`true`,"data-icon":`inline-start`}),i(`actions.retry`)]})]}):a?.data===void 0?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-caption text-muted-foreground`,role:`status`,children:i(`hostAttachmentPicker.loadingBranch`)}):a.data.entries.length===0?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-caption text-muted-foreground`,children:i(`hostAttachmentPicker.empty`)}):(0,$.jsx)($r,{directoryStates:e,entries:a.data.entries,expandedPaths:n,onRetry:r}):null},t.path)})}function ei({directoryStates:e,expandedPaths:t,listing:n,onExpandedChange:r,onRetry:i,onSelect:a,selectedPath:o}){let{t:s}=O(`workbench`),c=(0,Q.useMemo)(()=>new Map(e.map(e=>[e.path,e])),[e]);return(0,$.jsx)(pt,{"aria-label":s(`hostAttachmentPicker.treeLabel`),expanded:t,onExpandedChange:r,onSelect:a,...o===void 0?{}:{selectedPath:o},children:(0,$.jsx)($r,{directoryStates:c,entries:n.entries,expandedPaths:t,onRetry:i})})}function ti({client:e,kind:t,onAdd:n,onClose:r,projectId:i}){let{t:a}=O(`workbench`),[o,l]=(0,Q.useState)(),[u,d]=(0,Q.useState)(),[f,p]=(0,Q.useState)(!1),[m,h]=(0,Q.useState)(()=>new Set),[_,v]=(0,Q.useState)(),[b,x]=(0,Q.useState)(!1),S=(0,Q.useRef)(!1),C=(0,Q.useRef)(void 0),w=s({queryFn:({signal:n})=>e.listHostFiles(t,o,{includeHidden:f,signal:n}),queryKey:[`host-files`,t,o??null,f],staleTime:3e4}),T=w.data,E=(0,Q.useMemo)(()=>[...m],[m]),ee=c({queries:E.map(n=>({queryFn:({signal:r})=>e.listHostFiles(t,n,{includeHidden:f,signal:r}),queryKey:[`host-files`,t,n,f],staleTime:3e4}))}),D=E.map((e,t)=>{let n=ee[t];return{...n?.data===void 0?{}:{data:n.data},error:n?.error??null,isFetching:n?.isFetching??!1,path:e}}),ne=(0,Q.useMemo)(()=>new Set([T,...D.map(e=>e.data)].filter(e=>e!==void 0).flatMap(e=>e.entries.flatMap(e=>e.type===`file`?[e.path]:[]))),[D,T]),k=u??o??T?.path??``,A=()=>{let e=T?.parentPath;e!=null&&(l(e),d(void 0),h(new Set),v(void 0))},j=e=>{l(e),d(void 0),h(new Set),v(void 0)},M=()=>{let e=k.trim();e.length!==0&&(l(e),d(void 0),h(new Set),v(void 0))},N=()=>{p(e=>!e),v(void 0)},P=async()=>{if(_===void 0||S.current)return;S.current=!0,x(!0);let r=er(C.current,`${i}:${t}:${_}`);C.current=r;try{let a=await e.importHostAttachment(i,t,_,{idempotencyKey:r.key});if(a.attachment.kind!==t)throw TypeError(`Imported attachment kind does not match the selection`);n({attachment:a.attachment,...a.attachment,previewUrl:t===`image`?g(``,i,a.attachment.id):``,source:`host`}),C.current=void 0,W()}catch(e){q(e)}finally{S.current=!1,x(!1)}};return(0,$.jsx)(Xe,{onOpenChange:e=>{!e&&!b&&r()},open:!0,children:(0,$.jsxs)(Be,{"aria-labelledby":`host-attachment-picker-title`,className:`grid h-[min(84dvh,42rem)] max-w-2xl grid-rows-[auto_auto_minmax(0,1fr)_auto] gap-0 overflow-hidden p-0`,onEscapeKeyDown:e=>{b&&e.preventDefault()},onInteractOutside:e=>{b&&e.preventDefault()},children:[(0,$.jsxs)(dt,{className:`px-4 pb-3 pt-4 sm:px-5 sm:pt-5`,children:[(0,$.jsx)(mt,{id:`host-attachment-picker-title`,children:a(t===`image`?`hostAttachmentPicker.imageTitle`:`hostAttachmentPicker.fileTitle`)}),(0,$.jsx)(st,{className:`sr-only`,children:a(`hostAttachmentPicker.description`)})]}),(0,$.jsx)($e,{disabled:b,includeHidden:f,labels:{filesystemRoot:a(`hostAttachmentPicker.filesystemRoot`),goToPath:a(`hostAttachmentPicker.goToPath`),hideHidden:a(`hostAttachmentPicker.hideHidden`),parent:a(`hostAttachmentPicker.parent`),pathLabel:a(`hostAttachmentPicker.pathLabel`),pathPlaceholder:a(`hostAttachmentPicker.pathPlaceholder`),showHidden:a(`hostAttachmentPicker.showHidden`)},listing:T,onNavigateParent:A,onNavigatePath:M,onNavigateRoot:j,onPathChange:d,onToggleHidden:N,path:k}),(0,$.jsx)(`div`,{className:`min-h-0 overflow-y-auto px-3 py-2 sm:px-4`,children:w.isPending?(0,$.jsxs)(`p`,{className:`flex min-h-32 items-center justify-center gap-2 text-body-small text-muted-foreground`,role:`status`,children:[(0,$.jsx)(y,{"aria-hidden":`true`,className:`size-4 animate-spin`}),a(`hostAttachmentPicker.loading`)]}):w.error===null?T===void 0?null:T.entries.length===0?(0,$.jsx)(`p`,{className:`grid min-h-32 place-items-center text-body-small text-muted-foreground`,children:a(`hostAttachmentPicker.empty`)}):(0,$.jsx)(ei,{directoryStates:D,expandedPaths:m,listing:T,onExpandedChange:h,onRetry:e=>{let t=E.indexOf(e);ee[t]?.refetch()},onSelect:e=>{ne.has(e)&&v(e)},..._===void 0?{}:{selectedPath:_}}):(0,$.jsxs)(`div`,{className:`flex min-h-32 flex-col items-center justify-center gap-3 text-center`,children:[(0,$.jsx)(`p`,{className:`text-body-small text-danger`,role:`alert`,children:a(`hostAttachmentPicker.loadError`)}),(0,$.jsxs)(Z,{onClick:()=>void w.refetch(),type:`button`,variant:`outline`,children:[(0,$.jsx)(te,{"aria-hidden":`true`,"data-icon":`inline-start`}),a(`actions.retry`)]})]})}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-3 border-t border-separator bg-raised px-4 py-3 sm:flex-row sm:items-center sm:px-5`,children:[(0,$.jsx)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:(0,$.jsx)(`p`,{"aria-live":`polite`,className:`truncate font-mono text-caption text-foreground`,title:_,children:_??a(`hostAttachmentPicker.noSelection`)})}),(0,$.jsxs)(gt,{className:`w-full flex-col-reverse sm:w-auto sm:flex-row`,children:[(0,$.jsx)(Z,{className:`h-10 w-full sm:h-8 sm:w-auto`,disabled:b,onClick:r,type:`button`,variant:`outline`,children:a(`actions.cancel`)}),(0,$.jsxs)(Z,{className:`h-10 w-full sm:h-8 sm:w-auto`,disabled:_===void 0||b,onClick:()=>void P(),type:`button`,children:[b?(0,$.jsx)(y,{"aria-hidden":`true`,className:`animate-spin`,"data-icon":`inline-start`}):t===`image`?(0,$.jsx)(xe,{"aria-hidden":`true`,"data-icon":`inline-start`}):(0,$.jsx)(se,{"aria-hidden":`true`,"data-icon":`inline-start`}),a(b?`hostAttachmentPicker.importing`:`hostAttachmentPicker.add`)]})]})]})]})})}function ni({active:e,kind:t,onAdd:n,...r}){return t===void 0?null:(0,$.jsx)(ti,{...r,kind:t,onAdd:t=>{e&&(n(t),r.onClose())}})}var ri=(0,Q.createContext)(null);function ii(){let e=(0,Q.useContext)(ri);if(e===null)throw Error(`Context components must be used within Context`);return e}function ai({children:e,className:t=``,maxTokens:n,usedTokens:r,...i}){let a=(0,Q.useMemo)(()=>({maxTokens:n,usedTokens:r}),[n,r]);return(0,$.jsx)(ri.Provider,{value:a,children:(0,$.jsx)(`span`,{className:`inline-flex shrink-0 ${t}`,...i,children:e})})}function oi(e){let{maxTokens:t,usedTokens:n}=e;if(t==null||t<=0||n===void 0)return{accessibleLabel:M.t(`agentComponents.contextUnknown`,{ns:`conversation`}),percentage:null,summary:M.t(`agentComponents.contextWaiting`,{ns:`conversation`}),tokenCount:n===void 0?null:`${si(n)} tokens`};let r=Math.min(100,Math.max(0,Math.round(n/t*100)));return{accessibleLabel:M.t(`agentComponents.contextPercent`,{ns:`conversation`,percentage:r}),percentage:r,summary:M.t(`agentComponents.contextSummary`,{ns:`conversation`,percentage:r}),tokenCount:`${si(n)} / ${si(t)} tokens`}}function si(e){return new Intl.NumberFormat(`en-US`,{maximumFractionDigits:1,notation:`compact`}).format(e)}var ci=7,li=2*Math.PI*ci;function ui(){O(`conversation`);let e=li*(1-(oi(ii()).percentage??0)/100);return(0,$.jsxs)(`svg`,{className:`size-4.5 -rotate-90`,viewBox:`0 0 20 20`,"aria-hidden":`true`,children:[(0,$.jsx)(`circle`,{cx:`10`,cy:`10`,fill:`none`,r:ci,stroke:`currentColor`,strokeOpacity:`0.24`,strokeWidth:`3`}),(0,$.jsx)(`circle`,{cx:`10`,cy:`10`,fill:`none`,r:ci,stroke:`currentColor`,strokeDasharray:li,strokeDashoffset:e,strokeLinecap:`round`,strokeWidth:`3`})]})}function di({children:e,className:t=``,...n}){return(0,$.jsx)(`span`,{className:`flex flex-col gap-0.5 px-0.5 py-0.5 tabular-nums ${t}`,...n,children:e})}function fi({children:e,className:t=``,...n}){O(`conversation`);let r=oi(ii());return(0,$.jsx)(`span`,{className:`contents ${t}`,...n,children:e??(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`text-body-small font-medium`,children:r.summary}),r.tokenCount===null?null:(0,$.jsx)(`span`,{className:`text-label text-muted-foreground`,children:r.tokenCount})]})})}function pi({children:e,className:t=``,...n}){O(`conversation`);let r=oi(ii());return(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsx)(Z,{...n,"aria-label":r.accessibleLabel,className:`tabular-nums ${t}`,size:`toolbar`,type:n.type??`button`,variant:`ghost`,children:e??(0,$.jsxs)($.Fragment,{children:[r.percentage===null?null:(0,$.jsxs)(`span`,{children:[r.percentage,`%`]}),(0,$.jsx)(ui,{})]})})}),(0,$.jsx)(J,{className:`bg-raised text-foreground`,children:(0,$.jsx)(di,{children:(0,$.jsx)(fi,{})})})]})}function mi({isPending:e,onClose:t,onCreate:n}){let{t:r}=O(`workbench`),[i,a]=(0,Q.useState)(``),o=(0,Q.useRef)(!1),s=i.trim();return(0,$.jsx)(Xe,{onOpenChange:n=>{!n&&!e&&!o.current&&t()},open:!0,children:(0,$.jsx)(Be,{"aria-labelledby":`create-branch-title`,className:`max-w-96 p-4`,onEscapeKeyDown:t=>{(e||o.current)&&t.preventDefault()},onInteractOutside:t=>{(e||o.current)&&t.preventDefault()},children:(0,$.jsxs)(`form`,{className:`grid gap-4`,onSubmit:e=>{e.preventDefault(),!(s.length===0||o.current)&&(o.current=!0,n(s).then(e=>{o.current=!1,e&&t()}))},children:[(0,$.jsxs)(dt,{children:[(0,$.jsx)(mt,{id:`create-branch-title`,children:r(`composer.createBranch`)}),(0,$.jsx)(st,{children:r(`composer.createBranchDescription`)})]}),(0,$.jsxs)(`label`,{className:`grid gap-1.5 text-label font-medium text-foreground`,htmlFor:`create-branch-name`,children:[r(`composer.branchName`),(0,$.jsx)(nt,{autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,autoFocus:!0,disabled:e,id:`create-branch-name`,maxLength:1024,name:`branch`,onChange:e=>{a(e.currentTarget.value)},placeholder:`feat/my-feature`,spellCheck:!1,value:i,variant:`outline`})]}),(0,$.jsxs)(gt,{children:[(0,$.jsx)(Z,{disabled:e,onClick:t,type:`button`,variant:`ghost`,children:r(`actions.cancel`)}),(0,$.jsx)(Z,{disabled:e||s.length===0,type:`submit`,children:r(`composer.createAndSwitchBranch`)})]})]})})})}function hi({isPending:e,onClose:t,onCreate:n}){let{t:r}=O(`workbench`),[i,a]=(0,Q.useState)(``),o=(0,Q.useRef)(!1),s=i.trim();return(0,$.jsx)(Xe,{onOpenChange:n=>{!n&&!e&&!o.current&&t()},open:!0,children:(0,$.jsx)(Be,{"aria-labelledby":`create-worktree-title`,className:`max-w-96 p-4`,onEscapeKeyDown:t=>{(e||o.current)&&t.preventDefault()},onInteractOutside:t=>{(e||o.current)&&t.preventDefault()},children:(0,$.jsxs)(`form`,{className:`grid gap-4`,onSubmit:e=>{e.preventDefault(),!(s.length===0||o.current)&&(o.current=!0,n(s).then(e=>{o.current=!1,e&&t()}))},children:[(0,$.jsxs)(dt,{children:[(0,$.jsx)(mt,{id:`create-worktree-title`,children:r(`composer.createWorktree`)}),(0,$.jsx)(st,{children:r(`composer.createWorktreeDescription`)})]}),(0,$.jsxs)(`label`,{className:`grid gap-1.5 text-label font-medium text-foreground`,htmlFor:`create-worktree-branch`,children:[r(`composer.branchName`),(0,$.jsx)(nt,{autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,autoFocus:!0,disabled:e,id:`create-worktree-branch`,maxLength:1024,name:`branch`,onChange:e=>{a(e.currentTarget.value)},placeholder:`feat/my-feature`,spellCheck:!1,value:i,variant:`outline`})]}),(0,$.jsxs)(gt,{children:[(0,$.jsx)(Z,{disabled:e,onClick:t,type:`button`,variant:`ghost`,children:r(`actions.cancel`)}),(0,$.jsx)(Z,{disabled:e||s.length===0,type:`submit`,children:r(`composer.createAndSwitchWorktree`)})]})]})})})}function gi(e,t,n){return{branches:e.filter(e=>e!==t),worktrees:n.filter(e=>!e.current)}}function _i({creatingBranch:e,creatingWorktree:t,gitStatus:n,onBranchChange:r,onBranchCreate:i,onWorktreeChange:a,onWorktreeCreate:o,switchingBranch:s,switchingWorktree:c,worktrees:l}){let{t:u}=O(`workbench`),[d,f]=(0,Q.useState)(!1),[p,m]=(0,Q.useState)(!1);if(n===void 0||n.repositoryMode===`none`)return null;let h=n.branch,g=n.repositoryMode===`root`&&h!==null,_=h??u(`composer.gitBranchMissing`),v=s!==void 0||e!==void 0||c!==void 0||t!==void 0,b=gi(n.branches,h,l);return g?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(He,{children:[(0,$.jsx)(Ze,{asChild:!0,children:(0,$.jsxs)(Z,{"aria-label":u(`composer.branchSwitcherLabel`,{branch:h}),className:`inline-flex h-6 max-w-28 min-w-0 items-center gap-1 rounded-control px-1 text-caption text-muted-foreground hover:bg-control-hover hover:text-foreground sm:max-w-40`,disabled:v,type:`button`,variant:`ghost`,children:[v?(0,$.jsx)(y,{"aria-hidden":`true`,className:`size-3 shrink-0 animate-spin`,"data-icon":`inline-start`}):(0,$.jsx)(Et,{"aria-hidden":`true`,className:`size-3 shrink-0`,"data-icon":`inline-start`}),(0,$.jsx)(`span`,{className:`truncate`,children:_}),(0,$.jsx)(R,{"aria-hidden":`true`,className:`size-3 shrink-0`,"data-icon":`inline-end`})]})}),(0,$.jsxs)(K,{align:`start`,className:`max-h-72 w-72 max-w-[calc(100vw-1rem)] overflow-y-auto`,side:`top`,children:[b.branches.length===0?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(X,{children:(0,$.jsx)(ct,{children:u(`composer.branchSwitcherMenu`)})}),(0,$.jsx)(Ke,{onValueChange:r,children:b.branches.map(e=>(0,$.jsx)(qe,{disabled:v,title:e,value:e,children:(0,$.jsx)(`span`,{className:`truncate`,children:e})},e))}),(0,$.jsx)(Je,{})]}),b.worktrees.length===0?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(X,{children:[(0,$.jsx)(ct,{children:u(`composer.worktreeSwitcherMenu`)}),b.worktrees.map(e=>(0,$.jsxs)(Ve,{disabled:v,onSelect:()=>{a(e.path)},title:e.path,children:[(0,$.jsx)(Se,{"aria-hidden":`true`,className:`size-3.5`}),(0,$.jsxs)(`span`,{className:`grid min-w-0 flex-1`,children:[(0,$.jsx)(`span`,{className:`truncate`,children:e.branch??u(`composer.detachedHead`)}),(0,$.jsx)(`span`,{className:`truncate text-caption text-muted-foreground`,children:e.path})]})]},e.path))]}),(0,$.jsx)(Je,{})]}),(0,$.jsxs)(Ve,{disabled:v,onSelect:()=>{f(!0)},children:[(0,$.jsx)(re,{"aria-hidden":`true`,className:`size-3.5 text-muted-foreground`}),u(`composer.createBranch`)]}),(0,$.jsxs)(Ve,{disabled:v,onSelect:()=>{m(!0)},children:[(0,$.jsx)(Se,{"aria-hidden":`true`,className:`size-3.5 text-muted-foreground`}),u(`composer.createWorktree`)]})]})]}),d?(0,$.jsx)(mi,{isPending:e!==void 0,onClose:()=>{f(!1)},onCreate:i}):null,p?(0,$.jsx)(hi,{isPending:t!==void 0,onClose:()=>{m(!1)},onCreate:o}):null]}):(0,$.jsxs)(`span`,{className:`inline-flex min-w-0 shrink items-center gap-1`,children:[(0,$.jsx)(Et,{"aria-hidden":`true`,className:`size-3 shrink-0`}),(0,$.jsx)(`span`,{className:`truncate`,children:_})]})}function vi(){return(0,$.jsx)(jt,{"aria-hidden":`true`})}function yi({accessibleLabel:e,disabled:t,label:n,slot:r,...i}){return(0,$.jsxs)(Z,{...i,"aria-label":e,className:`min-w-0 max-w-36 max-workbench:shrink max-workbench:gap-0.5 max-workbench:px-1`,"data-slot":r,disabled:t,size:`sm`,type:`button`,variant:`ghost`,children:[(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:n}),(0,$.jsx)(b,{"aria-hidden":`true`,className:`size-3 shrink-0 text-muted-foreground`})]})}function bi(e,t,n){let r=e.find(e=>e.id===n),i=tr(r,t.reasoningEffort);if(!(r===void 0||i===void 0))return{...t,model:r.id,reasoningEffort:i}}function xi(e,t,n){if(e?.supportedReasoningEfforts.some(e=>e.id===n))return{...t,reasoningEffort:n}}function Si({activeSettings:e,disabled:t,models:n,modelsPending:r,onSettingsChange:i,selectedModel:a,selectedReasoningEffort:o}){let{t:s}=O([`workbench`,`settings`]),c=a?.displayName??s(r?`composer.modelLoading`:`composer.noModels`),l=o===void 0?``:s(`settings:effort.${o}`,{defaultValue:o}),u=t||r||a===void 0,d=t=>{let r=bi(n,e,t);r!==void 0&&i(r,`model`)},f=t=>{let n=xi(a,e,t);n!==void 0&&i(n,`reasoningEffort`)};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(He,{children:[(0,$.jsx)(Ze,{asChild:!0,children:(0,$.jsx)(yi,{accessibleLabel:s(`composer.modelSelectCurrent`,{model:c}),disabled:u,label:c,slot:`composer-model-selector`})}),(0,$.jsx)(K,{align:`end`,"aria-label":s(`composer.modelSelect`),className:`w-40 max-w-[calc(100vw-1rem)]`,side:`top`,children:(0,$.jsx)(Ke,{onValueChange:d,...a===void 0?{}:{value:a.id},children:n.map(e=>(0,$.jsx)(qe,{indicator:`check`,value:e.id,children:(0,$.jsx)(`span`,{className:`min-w-0 truncate`,title:e.displayName,children:e.displayName})},e.id))})})]}),(0,$.jsxs)(He,{children:[(0,$.jsx)(Ze,{asChild:!0,children:(0,$.jsx)(yi,{accessibleLabel:s(`composer.reasonEffortSelectCurrent`,{effort:l}),disabled:u||o===void 0,label:l,slot:`composer-reasoning-selector`})}),(0,$.jsx)(K,{align:`end`,"aria-label":s(`composer.reasonEffortSelect`),className:`w-28 min-w-0 max-w-[calc(100vw-1rem)]`,side:`top`,children:(0,$.jsx)(Ke,{onValueChange:f,...o===void 0?{}:{value:o},children:a?.supportedReasoningEfforts.map(e=>(0,$.jsx)(qe,{indicator:`check`,value:e.id,children:(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:s(`settings:effort.${e.id}`,{defaultValue:e.id})})},e.id))})})]})]})}function Ci(e){return(0,$.jsx)(rn,{"data-slot":`popover`,...e})}function wi(e){return(0,$.jsx)(an,{"data-slot":`popover-trigger`,...e})}function Ti({align:e=`start`,children:t,className:n,collisionPadding:r=8,sideOffset:i=4,...a}){let o=(0,$.jsx)(sn,{align:e,className:yt(`z-50 rounded-surface border border-separator-strong bg-raised text-foreground shadow-floating outline-none`,n),collisionPadding:r,"data-slot":`popover-content`,sideOffset:i,...a,children:t});return typeof document>`u`?o:(0,$.jsx)(on,{children:o})}function Ei(e,t){return Sn(e.draft.content).trim()||t}function Di({disabled:e,editing:t,onSave:n}){let{t:r}=O(`workbench`),i=r(t?`composer.saveTodoChanges`:`composer.saveAsTodo`);return(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsx)(_e,{"aria-label":i,disabled:e,onClick:n,children:(0,$.jsx)(t?oe:se,{"aria-hidden":`true`,className:`size-3.5`})})}),(0,$.jsx)(J,{children:i})]})}function Oi({composerHasInput:e,onDelete:t,onRestore:n,projectName:r,todos:i}){let{t:a,i18n:o}=O(`workbench`),[s,c]=(0,Q.useState)(!1),[l,u]=(0,Q.useState)();if(i.length===0)return null;let d=t=>{c(!1),e?u(t):n(t)};return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(Ci,{onOpenChange:c,open:s,children:[(0,$.jsx)(wi,{asChild:!0,children:(0,$.jsx)(Z,{"aria-label":a(`composer.todoCount`,{count:i.length}),className:`h-6 px-1.5 text-caption`,size:`toolbar`,type:`button`,variant:`ghost`,children:a(`composer.todoCount`,{count:i.length})})}),(0,$.jsxs)(Ti,{"aria-label":a(`composer.todoList`,{project:r}),className:`w-96 max-w-[calc(100vw-2rem)] overflow-hidden p-0`,role:`dialog`,side:`top`,children:[(0,$.jsx)(`div`,{className:`border-b border-separator px-3 py-2 text-label font-medium`,children:a(`composer.todoList`,{project:r})}),(0,$.jsx)(`div`,{className:`max-h-72 overflow-y-auto p-1`,role:`list`,children:i.map(e=>{let n=Ei(e,a(`composer.attachmentCount`,{count:e.draft.attachments.length}));return(0,$.jsxs)(`div`,{className:`group flex h-11 min-w-0 items-center gap-1`,role:`listitem`,children:[(0,$.jsx)(Z,{"aria-label":n,className:`h-full min-w-0 flex-1 px-2 py-1`,contentAlign:`start`,onClick:()=>{d(e.id)},type:`button`,variant:`ghost`,children:(0,$.jsxs)(`span`,{className:`min-w-0 flex-1 overflow-hidden`,children:[(0,$.jsx)(`span`,{className:`block truncate text-body-small text-foreground`,children:n}),(0,$.jsxs)(`span`,{className:`mt-px flex min-w-0 items-center gap-2 text-caption text-muted-foreground`,children:[(0,$.jsx)(`span`,{className:`truncate`,children:new Date(e.updatedAt).toLocaleString(o.language)}),e.workingDraft===void 0?null:(0,$.jsx)(`span`,{className:`shrink-0 text-brand`,children:a(`composer.todoHasChanges`)})]})]})}),(0,$.jsx)(Z,{"aria-label":a(`composer.deleteTodo`,{summary:n}),className:`mr-1 shrink-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,onClick:()=>{t(e.id)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(P,{"aria-hidden":`true`,className:`size-3.5`})})]},e.id)})})]})]}),(0,$.jsx)(Xe,{onOpenChange:e=>{e||u(void 0)},open:l!==void 0,children:(0,$.jsxs)(Be,{className:`max-w-96 p-4`,children:[(0,$.jsxs)(dt,{children:[(0,$.jsx)(mt,{children:a(`composer.applyTodoTitle`)}),(0,$.jsx)(st,{children:a(`composer.applyTodoDescription`)})]}),(0,$.jsxs)(gt,{children:[(0,$.jsx)(Z,{onClick:()=>{u(void 0)},type:`button`,variant:`ghost`,children:a(`actions.cancel`)}),(0,$.jsx)(Z,{onClick:()=>{let e=l;u(void 0),e!==void 0&&n(e)},type:`button`,children:a(`composer.applyTodo`)})]})]})})]})}function ki({disabled:e,onSettingsChange:t,sandboxModeSelectable:n,settings:r}){let{t:i}=O([`workbench`,`settings`]);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(V,{"aria-label":i(`composer.approvalMode`),className:`max-workbench:px-0.5`,disabled:e,onChange:e=>{t(rr(r,e.currentTarget.value),`approvalPolicy`)},value:nr(r),children:[(0,$.jsx)(`option`,{value:`on-request`,children:i(`settings:approval.onRequest`)}),(0,$.jsx)(`option`,{value:`auto-review`,children:i(`settings:approval.autoReview`)}),(0,$.jsx)(`option`,{value:`never`,children:i(`settings:approval.never`)})]}),n?(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(V,{"aria-label":i(`composer.sandboxMode`),className:`max-workbench:px-0.5`,disabled:e,onChange:e=>{t({...r,sandboxMode:e.currentTarget.value},`sandboxMode`)},value:r.sandboxMode,children:[(0,$.jsx)(`option`,{value:`read-only`,children:i(`settings:sandbox.readOnly`)}),(0,$.jsx)(`option`,{value:`workspace-write`,children:i(`settings:sandbox.workspaceWrite`)}),(0,$.jsx)(`option`,{value:`danger-full-access`,children:i(`settings:sandbox.dangerFullAccess`)})]})}):null]})}function Ai(e){return e.split(/[\\/]/u).filter(Boolean).at(-1)??e}function ji({onChange:e,roots:t,value:n}){let{t:r}=O(`workbench`);if(t.length<2)return null;let i=t.find(e=>e.id===n)??t[0];return i===void 0?null:(0,$.jsxs)(Ue,{onValueChange:e,value:n,children:[(0,$.jsxs)(tt,{"aria-label":r(`shell.selectProjectRoot`),className:`min-w-0 max-w-28 shrink border-0 bg-transparent shadow-none hover:bg-control-hover sm:max-w-40`,size:`toolbar`,title:i.path,children:[(0,$.jsx)(Tt,{"aria-hidden":`true`}),(0,$.jsx)(et,{children:Ai(i.path)})]}),(0,$.jsx)(Ge,{position:`popper`,children:t.map((e,t)=>(0,$.jsx)(We,{textValue:e.path,value:e.id,children:(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,$.jsx)(`span`,{className:`truncate`,children:Ai(e.path)}),(0,$.jsxs)(`span`,{className:`truncate font-mono text-caption text-muted-foreground`,children:[t===0?`${r(`projectPicker.primaryRoot`)} · `:``,e.path]})]})},e.id))})]})}function Mi({action:e}){let t=`size-4 shrink-0 text-brand`;switch(e){case`review`:return(0,$.jsx)(Ct,{"aria-hidden":`true`,className:t});case`initialize`:return(0,$.jsx)(se,{"aria-hidden":`true`,className:t});case`compact`:return(0,$.jsx)(wt,{"aria-hidden":`true`,className:t});case`fork`:return(0,$.jsx)(Se,{"aria-hidden":`true`,className:t});case`plan`:return(0,$.jsx)(Dt,{"aria-hidden":`true`,className:t});case`goal`:return(0,$.jsx)(Nt,{"aria-hidden":`true`,className:t})}}function Ni({disabled:e,mode:t,onRemove:n}){let{t:r}=O(`workbench`),i=t===`goal`,a=r(i?`composer.goalMode`:`composer.planMode`),o=r(i?`composer.cancelGoalMode`:`composer.cancelPlanMode`),s=i?Nt:Dt;return(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsxs)(_e,{"aria-label":o,className:`group/composer-mode gap-1 px-1.5 text-foreground max-workbench:gap-0.5`,...i?{"data-goal-mode":``}:{"data-plan-mode":``},disabled:e,onClick:n,children:[(0,$.jsx)(s,{"aria-hidden":`true`,className:`size-3.5 shrink-0 text-brand`}),(0,$.jsx)(`span`,{className:`max-workbench:hidden`,children:a}),(0,$.jsx)(j,{"aria-hidden":`true`,className:`size-3 shrink-0 opacity-0 transition-opacity group-hover/composer-mode:opacity-100 group-focus-visible/composer-mode:opacity-100`})]})}),(0,$.jsx)(J,{children:o})]})}function Pi({goal:e}){let{t}=O(`workbench`);if(e.status===`complete`)return null;let n=t(`composer.goalStatus.${e.status}`);return(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsxs)(`span`,{"aria-label":t(`composer.goalStatusLabel`,{objective:e.objective,status:n}),className:`inline-flex h-8 min-w-0 items-center gap-1 px-1.5 text-body-small text-foreground max-workbench:gap-0.5`,"data-goal-status":e.status,children:[(0,$.jsx)(Nt,{"aria-hidden":`true`,className:`size-3.5 shrink-0 text-brand`}),(0,$.jsx)(`span`,{className:`max-workbench:hidden`,children:n})]})}),(0,$.jsx)(J,{className:`max-w-72 break-words`,children:e.objective})]})}function Fi({disabled:e,enabled:t,onChange:n}){let{t:r}=O(`workbench`),i=r(t?`composer.disableFastMode`:`composer.enableFastMode`);return(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsx)(_e,{"aria-label":i,"aria-pressed":t,className:t?`text-brand`:`text-muted-foreground`,"data-fast-mode":``,disabled:e,onClick:()=>{n(!t)},children:(0,$.jsx)(Pt,{"aria-hidden":`true`,className:`size-3.5`})})}),(0,$.jsx)(J,{children:i})]})}function Ii(){let{t:e}=O(`workbench`),t=be();return t.files.length===0?null:(0,$.jsx)(ye,{children:(0,$.jsx)(ie,{"aria-label":e(`composer.addedAttachments`),children:t.files.map(e=>(0,$.jsxs)(z,{data:e,onRemove:()=>{t.remove(e.id)},children:[(0,$.jsx)(L,{}),(0,$.jsx)(I,{}),(0,$.jsx)(ae,{disabled:t.disabled})]},e.id))})})}function Li({props:e}){let{t}=O(`workbench`);return!e.commandMenuOpen||e.turnControlsDisabled?null:(0,$.jsx)(H,{"aria-label":t(`composer.commandInput`),className:`absolute inset-x-0 bottom-full z-20 mb-2`,id:e.commandMenuId,children:(0,$.jsx)(le,{children:e.reviewMenuMode===`scopes`?(0,$.jsxs)(he,{label:t(`composer.reviewScopeGroup`),children:[(0,$.jsxs)(U,{active:e.activeCommandIndex===0,id:`${e.commandMenuId}-item-0`,onClick:()=>{e.onExecuteReview({type:`uncommitted_changes`})},children:[(0,$.jsx)(Ct,{"aria-hidden":`true`,className:`size-4 shrink-0 text-brand`}),(0,$.jsx)(`span`,{className:`font-medium`,children:t(`composer.reviewUncommitted`)})]}),(0,$.jsxs)(U,{active:e.activeCommandIndex===1,"aria-description":e.baseBranches.length===0?t(`composer.noBaseBranch`):e.baseBranches[0],disabled:e.baseBranches.length===0,id:`${e.commandMenuId}-item-1`,onClick:e.onOpenReviewBranches,children:[(0,$.jsx)(Et,{"aria-hidden":`true`,className:`size-4 shrink-0 text-brand`}),(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,$.jsx)(`span`,{className:`font-medium`,children:t(`composer.baseBranchReview`)}),(0,$.jsx)(`span`,{className:`truncate text-caption text-muted-foreground`,children:e.baseBranches[0]??t(`composer.noBaseBranch`)})]})]})]}):e.reviewMenuMode===`branches`?(0,$.jsx)(he,{label:t(`composer.reviewBaseBranchGroup`),children:e.baseBranches.map((t,n)=>(0,$.jsxs)(U,{active:e.activeCommandIndex===n,id:`${e.commandMenuId}-item-${String(n)}`,onClick:()=>{e.onExecuteReview({branch:t,type:`base_branch`})},children:[(0,$.jsx)(Et,{"aria-hidden":`true`,className:`size-4 shrink-0 text-brand`}),(0,$.jsx)(`span`,{className:`truncate font-medium`,children:t})]},t))}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(he,{label:t(`composer.commandGroup`),children:e.filteredCommands.map((t,n)=>{let r=e.getCommandAvailability(t);return(0,$.jsxs)(U,{active:n===e.activeCommandIndex,"aria-description":r.reason,disabled:!r.available,id:`${e.commandMenuId}-item-${String(n)}`,onClick:()=>{e.onExecuteCommand(t)},children:[(0,$.jsx)(Mi,{action:t.action}),(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,$.jsx)(`span`,{className:`font-medium`,children:t.label}),(0,$.jsx)(`span`,{className:`text-caption text-muted-foreground`,children:r.reason??t.description})]})]},t.id)})}),e.filteredSkills.length===0?null:(0,$.jsx)(he,{label:`Skills`,children:e.filteredSkills.map((t,n)=>{let r=e.filteredCommands.length+n;return(0,$.jsxs)(U,{active:r===e.activeCommandIndex,id:`${e.commandMenuId}-item-${String(r)}`,onClick:()=>{e.onSelectSkill(t)},children:[(0,$.jsx)(Ce,{"aria-hidden":`true`,className:`size-4 shrink-0 text-brand`}),(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,$.jsx)(`span`,{className:`font-medium text-brand`,children:t.displayName}),(0,$.jsxs)(`span`,{className:`block max-w-full truncate text-caption text-muted-foreground`,children:[`/`,t.name,` · `,t.description]})]})]},t.id)})}),e.menuItemCount===0?(0,$.jsx)(B,{children:t(`composer.commandNoMatch`)}):null]})})})}function Ri(e,t){let n=e.slice(0,Math.max(0,e.length-t.length)).replace(/\/$/u,``);return n===``?`.`:n}function zi({props:e}){let{t}=O(`workbench`);return!e.fileMenuOpen||e.turnControlsDisabled?null:(0,$.jsx)(H,{"aria-label":t(`composer.fileSearch`),className:`absolute inset-x-0 bottom-full z-20 mb-2`,id:e.commandMenuId,children:(0,$.jsx)(le,{children:e.fileSearchPending?(0,$.jsx)(B,{children:t(`composer.fileSearchLoading`)}):e.fileSearchError===null?e.fileSearchResults.length===0?(0,$.jsx)(B,{children:t(`composer.fileSearchEmpty`)}):(0,$.jsx)(he,{label:t(`composer.fileSearchGroup`),children:e.fileSearchResults.map((t,n)=>(0,$.jsxs)(U,{active:n===e.activeCommandIndex,id:`${e.commandMenuId}-item-${String(n)}`,onClick:()=>{e.onSelectFileReference(t)},children:[(0,$.jsx)(ne,{"aria-hidden":`true`,className:`size-4 shrink-0 text-muted-foreground`}),(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-1 items-baseline gap-2`,children:[(0,$.jsx)(`span`,{className:`shrink-0 font-medium text-foreground`,children:t.name}),(0,$.jsx)(`span`,{className:`min-w-0 truncate text-caption text-muted-foreground`,children:Ri(t.path,t.name)})]})]},t.path))}):(0,$.jsx)(B,{children:t(`composer.fileSearchFailed`)})})})}function Bi(e,t){return e.text||e.skills.map(e=>`$${e.name}`).join(` `)||t}function Vi({disabled:e,onOpen:t,projectPath:n}){let{t:r}=O(`workbench`),i=r(`composer.openProjectFolder`);return(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsxs)(Z,{"aria-label":i,className:`h-6 w-fit min-w-0 max-w-full shrink gap-1 rounded-control px-1 text-caption text-muted-foreground hover:bg-control-hover hover:text-foreground`,contentAlign:`start`,disabled:e,onClick:t,type:`button`,variant:`ghost`,children:[(0,$.jsx)(C,{"aria-hidden":`true`,className:`size-3 shrink-0`}),(0,$.jsx)(`span`,{className:`truncate`,children:n})]})}),(0,$.jsx)(J,{children:i})]})}function Hi({onOpen:e,onRootChange:t,projectPath:n,projectPathOpenAvailable:r=!0,projectPathOpenDisabled:i,roots:a,selectedRootId:o}){return(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1`,"data-composer-project-root-controls":``,children:[(0,$.jsx)(ji,{onChange:t,roots:a,value:o}),r?(0,$.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,$.jsx)(Vi,{disabled:i,onOpen:e,projectPath:n})}):null]})}function Ui(e){let{t}=O([`workbench`,`settings`]),n=e.queuedPrompts.findIndex(e=>e.status===`editing`);return(0,$.jsxs)(`section`,{className:`shrink-0 bg-content px-1 pb-2 max-[360px]:px-0 sm:px-5`,"aria-label":t(`composer.landmark`),children:[(0,$.jsxs)(`div`,{className:`relative mx-auto w-full max-w-content`,ref:e.commandSurfaceRef,children:[(0,$.jsx)(Li,{props:e}),(0,$.jsx)(zi,{props:e}),e.asyncQuestions,e.queuedPrompts.length===0?null:(0,$.jsx)(`div`,{"aria-label":t(`composer.queuedMessages`),className:`mb-2 space-y-1.5`,role:`list`,children:e.queuedPrompts.map((r,i)=>{let a=n>=0&&i>=n,o=Bi(r,t(`composer.attachmentCount`,{count:r.files.length}));return(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 rounded-control border border-separator bg-control px-2 py-1.5`,role:`listitem`,children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label text-foreground`,children:o}),r.status===`awaiting-response`?(0,$.jsxs)(`span`,{"aria-label":t(`composer.waitingToSend`),className:`inline-flex shrink-0 items-center gap-1 text-caption text-muted-foreground`,role:`status`,children:[(0,$.jsx)(y,{"aria-hidden":`true`,className:`size-3.5 animate-spin`}),t(`composer.waitingToSend`)]}):r.status===`editing`?(0,$.jsxs)(`span`,{"aria-label":t(`composer.editingQueued`),className:`inline-flex shrink-0 items-center gap-1 text-caption text-brand`,role:`status`,children:[(0,$.jsx)(ee,{"aria-hidden":`true`,className:`size-3.5`}),t(`composer.editingQueued`)]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsx)(Z,{"aria-label":t(`composer.moveQueuedUp`,{summary:o}),disabled:e.isSubmitting||a||i===0,onClick:()=>{e.moveQueuedPrompt(r.id,-1)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(E,{"aria-hidden":`true`,className:`size-3.5`})})}),(0,$.jsx)(J,{children:t(`composer.moveQueuedUpTooltip`)})]}),(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsx)(Z,{"aria-label":t(`composer.moveQueuedDown`,{summary:o}),disabled:e.isSubmitting||i===e.queuedPrompts.length-1||a,onClick:()=>{e.moveQueuedPrompt(r.id,1)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(F,{"aria-hidden":`true`,className:`size-3.5`})})}),(0,$.jsx)(J,{children:t(`composer.moveQueuedDownTooltip`)})]}),(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsx)(Z,{"aria-label":t(`composer.editQueued`,{summary:o}),disabled:e.isSubmitting||n>=0,onClick:()=>{e.editQueuedPrompt(r)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(ee,{"aria-hidden":`true`,className:`size-3.5`})})}),(0,$.jsx)(J,{children:t(`composer.editQueuedTooltip`)})]}),(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsx)(Z,{"aria-label":t(`composer.steerNow`,{summary:o}),className:`hover:text-brand`,disabled:e.isSubmitting||a||e.taskId===void 0||(e.activeTurnId===void 0?!e.canSubmit:!e.canSteer),onClick:()=>{e.steerQueuedPrompt(r)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(Mt,{"aria-hidden":`true`,className:`size-3.5`})})}),(0,$.jsx)(J,{children:t(`composer.steerNowTooltip`)})]}),(0,$.jsxs)(G,{children:[(0,$.jsx)(Y,{asChild:!0,children:(0,$.jsx)(Z,{"aria-label":t(`composer.cancelQueued`,{summary:o}),className:`hover:text-danger`,disabled:e.isSubmitting,onClick:()=>{e.removeQueuedPrompt(r.id)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(j,{"aria-hidden":`true`,className:`size-3.5`})})}),(0,$.jsx)(J,{children:t(`composer.cancelQueuedTooltip`)})]})]})]},r.id)})}),(0,$.jsxs)(St,{attachments:e.attachments,"aria-busy":e.state===`submitting`||e.state===`reconnecting`,className:`w-full`,"data-state":e.state,disabled:e.attachmentsDisabled,fileAccept:``,globalDrop:!0,imageAccept:v,largePasteCharacterThreshold:Zn,maxFileSize:p,maxFileTotalSize:m,maxImageSize:_,maxImages:20,maxImageTotalSize:h,multiple:!0,onAttachmentsChange:e.onAttachmentsChange,onError:t=>{e.onViewError(Error(t.message))},onSubmit:e.onSubmit,pastedTextFileName:Qn,children:[(0,$.jsx)(Ii,{}),(0,$.jsxs)(me,{children:[(0,$.jsx)(`input`,{name:`message`,type:`hidden`,value:e.promptSubmissionText}),(0,$.jsx)(fr,{"aria-activedescendant":e.activeCommandItemId,"aria-controls":e.commandMenuOpen||e.fileMenuOpen?e.commandMenuId:void 0,"aria-expanded":e.commandMenuOpen||e.fileMenuOpen,"aria-haspopup":`listbox`,"aria-label":t(`composer.taskInput`),content:e.promptContent,disabled:e.draftInputDisabled,onChange:e.onPromptChange,onKeyDown:t=>{if(!de(t.nativeEvent)){if(e.commandMenuOpen||e.fileMenuOpen){if(t.key===`ArrowDown`||t.key===`ArrowUp`){t.preventDefault(),e.setActiveCommandIndex(n=>Ar(n,t.key===`ArrowDown`?1:-1,e.menuItemCount));return}t.key===`Enter`&&!ce(t)&&(t.preventDefault(),e.onSelectActiveCommand());return}if((t.key===`ArrowDown`||t.key===`ArrowUp`)&&!(t.altKey||t.ctrlKey||t.metaKey||t.shiftKey)){let n=t.key===`ArrowUp`?`previous`:`next`;t.currentTarget.selectionStart===t.currentTarget.selectionEnd&&Yr(t.currentTarget.value,t.currentTarget.selectionStart,n)&&e.onPromptHistoryNavigate(n)&&t.preventDefault()}}},placeholder:$n(e.taskId),ref:e.skillEditorRef,skills:e.skills,scope:e.composerScope})]}),(0,$.jsxs)(fe,{className:`max-workbench:gap-0.5 max-workbench:px-1 max-[360px]:!gap-0 max-[360px]:!px-0`,children:[(0,$.jsxs)(pe,{className:`max-workbench:shrink-0 max-workbench:gap-0.5 max-[360px]:!gap-0`,children:[(0,$.jsx)(ve,{className:`max-workbench:w-8 max-workbench:min-w-8 max-workbench:px-0 max-[360px]:!w-6 max-[360px]:!min-w-6`,disabled:e.attachmentsDisabled,onSelectKind:e.onSelectAttachmentKind,showDeploymentHost:e.showDeploymentHostAttachments}),(0,$.jsx)(ki,{disabled:e.turnControlsDisabled,onSettingsChange:e.onSettingsChange,sandboxModeSelectable:e.sandboxModeSelectable,settings:e.activeSettings}),e.composerMode===void 0?null:(0,$.jsx)(Ni,{disabled:e.turnControlsDisabled,mode:e.composerMode,onRemove:e.onComposerModeRemove}),e.goal===null||e.goal===void 0?null:(0,$.jsx)(Pi,{goal:e.goal}),e.fastModeAvailable?(0,$.jsx)(Fi,{disabled:e.turnControlsDisabled,enabled:e.fastModeEnabled,onChange:e.onFastModeChange}):null]}),(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1 max-workbench:shrink max-workbench:gap-0.5 max-[360px]:!gap-0`,children:[(0,$.jsx)(Si,{activeSettings:e.activeSettings,disabled:e.turnControlsDisabled,models:e.models,modelsPending:e.modelsPending,onSettingsChange:e.onSettingsChange,selectedModel:e.selectedModel,selectedReasoningEffort:e.selectedReasoningEffort}),e.projectToolsEnabled&&!e.captureMode?(0,$.jsx)(Di,{disabled:!e.hasComposerInput||e.isSubmitting,editing:e.editingTodoId!==void 0,onSave:e.onProjectTodoSave}):null,e.captureSubmitVisible?(0,$.jsx)(ue,{"aria-label":e.captureMode?t(`actions.save`):e.submitAction===`queue`?t(`composer.queueMessage`):e.submitAction===`steer`?t(`composer.sendSteer`):e.submitAction===`interrupt`?t(`composer.stop`):t(`composer.submit`),disabled:e.turnControlsDisabled||e.submitAction===`blocked`||e.submitAction===`start`&&(!e.captureMode&&!e.canSubmit||e.selectedModel===void 0||e.selectedReasoningEffort===void 0)||e.submitAction===`interrupt`&&(!e.canInterrupt||e.activeTurnId===void 0),className:`max-workbench:w-8 max-workbench:min-w-8 max-[360px]:!w-6 max-[360px]:!min-w-6`,onClick:e.submitAction===`interrupt`?e.onInterrupt:void 0,status:e.state===`running`&&e.hasComposerInput?`idle`:e.state,type:e.submitAction===`interrupt`?`button`:`submit`,children:e.captureMode?(0,$.jsx)(vi,{}):void 0}):null]})]})]})]}),e.footerVisible?(0,$.jsxs)(`div`,{className:`mx-auto mt-1.5 flex h-9 w-full max-w-content min-w-0 items-center gap-3 px-1 text-caption text-muted-foreground`,children:[e.projectToolsEnabled?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`flex min-w-0 shrink items-center gap-0.5`,children:(0,$.jsx)(_i,{creatingBranch:e.creatingBranch,creatingWorktree:e.creatingWorktree,gitStatus:e.gitStatus,onBranchChange:e.onBranchChange,onBranchCreate:e.onBranchCreate,onWorktreeChange:e.onWorktreeChange,onWorktreeCreate:e.onWorktreeCreate,switchingBranch:e.switchingBranch,switchingWorktree:e.switchingWorktree,worktrees:e.worktrees})}),(0,$.jsx)(Hi,{onOpen:e.onOpenProjectPath,onRootChange:e.onProjectRootChange,projectPath:e.projectPath,projectPathOpenDisabled:e.projectPathOpenDisabled,roots:e.projectRoots,selectedRootId:e.selectedProjectRootId})]}):null,(0,$.jsxs)(`div`,{className:`ml-auto flex shrink-0 items-center gap-1`,children:[e.projectToolsEnabled&&!e.captureMode?(0,$.jsx)(Oi,{composerHasInput:e.hasComposerInput,onDelete:e.onProjectTodoDelete,onRestore:e.onProjectTodoRestore,projectName:e.projectName,todos:e.projectTodos}):null,(0,$.jsx)(ai,{maxTokens:e.contextUsage?.contextWindow,usedTokens:e.contextUsage?.usedTokens,children:(0,$.jsx)(pi,{})})]})]}):null]})}function Wi({composerRef:e,capabilities:t,captureSubmitVisible:n=!0,client:r,composerDraftId:i,fastModeAvailable:a,fastModeDefault:o,followUpBehavior:s,footerVisible:c=!0,initialDraft:l,initialTodoId:u,models:d,modelsError:f,modelsPending:p,onDirectSubmission:m,onCaptureSubmission:h,onFastModeChange:g,onInputStateChange:_,onOpenProjectPath:v,onProjectRootChange:y,onRequestNotificationPermission:b,onSettingsChange:x,onSubmissionStateChange:S,onTaskCreated:C,onTaskStarted:w,onTurnStarted:T,projectId:E,projectName:ee,projectPath:D,projectPathOpenAvailable:te=!0,projectPathOpenDisabled:ne,projectRoots:k,projectToolsEnabled:A=!0,selectedProjectRootId:j,gitStatus:M,runtime:N,settings:P,skills:re,taskId:ie}){let{t:F}=O([`workbench`,`settings`]);Tn(f,F(`composer.modelListFailed`));let ae=it(),I=Sr(E,u),{editingTodoId:L,projectTodos:R,todos:z}=I,oe=Zr({capabilities:t,composerDraftId:i,client:r,editingTodoId:L,gitStatus:M,models:d,initialDraft:l,onSubmissionStateChange:S,projectId:E,projectPath:D,projectToolsEnabled:A,projectTodos:R,runtime:N,settings:P,skills:re,taskId:ie}),{activeCommandIndex:se,activeCommandItemId:ce,activeSettings:B,activeTaskId:le,activeTurnId:V,attachmentCount:ue,attachmentPickerKind:de,attachments:H,attachmentsDisabled:fe,baseBranches:pe,canInterrupt:me,canSteer:he,canSubmit:ge,clearComposerInput:_e,closeCommandMenu:U,closeFileMenu:ve,commandMenuId:ye,commandMenuOpen:be,commandSurfaceRef:xe,composerMode:Se,composerController:Ce,composerScope:we,contextUsage:Te,draftInputDisabled:Ee,filteredCommands:De,filteredSkills:Oe,fileMenuOpen:ke,fileSearchError:Ae,fileSearchPending:je,fileSearchResults:Me,handleAttachmentsChange:Ne,handlePromptChange:Pe,isSubmitting:Fe,menuItemCount:Ie,navigatePromptHistory:Le,pendingTask:Re,promptContent:ze,promptSubmission:Be,referenceProjectPath:Ve,reviewMenuMode:He,routeScope:W,selectedModel:Ue,selectedReasoningEffort:G,selectFileReference:We,setActiveCommandIndex:Ge,setAttachmentPickerKind:Ke,setIsSubmitting:qe,setMutationError:K,setComposerModeState:Je,setReviewMenuMode:Ye,setSettingsOverride:Xe,skillEditorRef:Ze,state:Qe,turnControlsDisabled:q}=oe,[J,$e]=(0,Q.useState)(),Y=J?.scope===we?J.enabled:o,et=a&&Y,{actionLock:tt,interruptAttempt:nt,isCurrentScope:rt,uploadAttempts:at,uploadedAttachments:ot}=Ce,st=Jn({routeScope:W,fastModeSelected:Y,onSettingsChange:x,isCurrentScope:rt,setSettingsOverride:Xe,setMutationError:K}),ct=br({client:r,gitStatus:M,isCurrentScope:rt,projectId:E,rootPath:D,routeScope:W});Yn({closeCommandMenu:U,closeFileMenu:ve,commandMenuOpen:be,commandSurfaceRef:xe,fileMenuOpen:ke,turnControlsDisabled:q});let X=xr({client:r,handleAttachmentsChange:Ne,projectId:E,replacePromptContent:oe.replacePromptContent,routeScope:W,runtime:N,skillEditorRef:Ze,skills:re,taskId:ie});(0,Q.useEffect)(()=>{X.queueError!==null&&K(X.queueError)},[X.queueError,K]);let lt=Qr({activeUserMessageIds:N?.store===void 0?[]:Vn(N.store.getState(),V),activeSettings:B,activeTaskId:le,activeTurnId:V,canSteer:he,canSubmit:ge,clearComposerInput:_e,client:r,controller:Ce,composerMode:Se,editingQueuedSubmission:X.editingId!==void 0,followUpBehavior:s,fastMode:et,onDirectSubmission:m,onCaptureSubmission:h,onGoalStarted:()=>{Je(void 0)},onSteerAccepted:X.onSteerAccepted,onRequestNotificationPermission:b,onTaskCreated:C,onTaskStarted:w,onTurnStarted:T,pendingTask:Re,projectId:E,promptContent:ze,routeScope:W,selectedModel:Ue,selectedReasoningEffort:G,saveQueuedSubmission:X.saveQueuedSubmission,skillEditorRef:Ze,state:Qe,taskId:ie,t:F,turnControlsDisabled:q});(0,Q.useImperativeHandle)(e,()=>({buildPlan:()=>(Je(void 0),lt({files:[],text:F(`composer.buildPlanPrompt`)},[],{composerMode:null,forceAction:`start`})),referenceProjectPath:Ve,submitCurrent:()=>lt({files:H,text:Be.text})}));let{executePromptCommand:ut,executeReviewTarget:dt,getCommandAvailability:ft,selectActiveCommandItem:pt,selectSkill:mt}=jr({capabilities:t,client:r,onRequestNotificationPermission:b,onTaskCreated:C,onTaskStarted:w,projectId:E,session:oe,submitPrompt:lt,t:F,taskId:ie}),ht=async()=>{let e=W;!me||le===void 0||V===void 0||q||await tt.run(async()=>{let t=`${le}:${V}`;qe(!0),K(null);let n=er(nt.current,t);nt.current=n;try{await ur(r,E,le,V,n.key)}catch(t){rt(e)&&K(t instanceof Error?t:Error(`Turn interruption failed`))}finally{rt(e)&&qe(!1)}})},gt=!wn(ze)||ue>0;(0,Q.useEffect)(()=>_?.(gt),[gt,_]);let _t=Ir({actionLock:tt,attachments:H,clearComposerInput:_e,client:r,editingTodoId:L,fallbackError:F(`composer.saveTodoFailed`),hasComposerInput:gt,isCurrentScope:rt,isSubmitting:Fe,onEditingComplete:I.complete,projectId:E,projectTodos:R,promptContent:ze,routeScope:W,setIsSubmitting:qe,setMutationError:K,skillEditorRef:Ze,submitPrompt:lt,uploadAttempts:at,uploadedAttachments:ot}),vt=X.editingId===void 0?ar(Qe,gt,s,he):`queue`,Z=(0,$.jsx)(Ui,{asyncQuestions:(0,$.jsx)(Fn,{projectId:E,taskId:ie,enabled:!q,onAnswered:Kn({controller:Ce,requestScope:W,store:N?.store,onDirectSubmission:m,onTurnStarted:T,onSteerAccepted:X.onSteerAccepted})},we),activeCommandIndex:se,activeCommandItemId:ce,activeSettings:B,activeTurnId:V,attachments:H,attachmentsDisabled:fe,baseBranches:pe,canInterrupt:me,canSteer:he,canSubmit:ge,captureMode:h!==void 0,captureSubmitVisible:n,commandMenuId:ye,commandMenuOpen:be,commandSurfaceRef:xe,composerMode:Se,composerScope:we,contextUsage:Te,creatingBranch:ct.creatingBranch,creatingWorktree:ct.creatingWorktree,draftInputDisabled:Ee,editingTodoId:L,filteredCommands:De,filteredSkills:Oe,fileMenuOpen:ke,fileSearchError:Ae,fileSearchPending:je,fileSearchResults:Me,fastModeAvailable:a,fastModeEnabled:et,footerVisible:c,getCommandAvailability:ft,gitStatus:M,goal:N?.metadata?.goal,hasComposerInput:gt,isSubmitting:Fe,menuItemCount:Ie,moveQueuedPrompt:(e,t)=>{X.moveQueuedPrompt(e,t).catch(K)},models:d,modelsPending:p,editQueuedPrompt:e=>{X.editQueuedPrompt(e).catch(K)},onComposerModeRemove:()=>{Je(void 0)},onProjectTodoDelete:e=>{I.remove(e)},onProjectTodoRestore:e=>{I.restore(e,_e)},onProjectTodoSave:()=>{_t.save()},onAttachmentsChange:e=>{Ne(e),I.discardIfEmpty(e.length>0||!wn(ze))},onBranchCreate:ct.createBranch,onBranchChange:e=>{ct.switchBranch(e)},onWorktreeChange:e=>{ct.switchWorktree(e)},onWorktreeCreate:ct.createWorktree,onExecuteCommand:e=>{ut(e)},onExecuteReview:e=>{dt(e)},onFastModeChange:e=>{$e({enabled:e,scope:we}),Promise.resolve(g(e,B)).catch(()=>void 0)},onInterrupt:()=>{ht()},onOpenProjectPath:v,onProjectRootChange:y,onOpenReviewBranches:()=>{Ge(0),Ye(`branches`)},onPromptChange:(e,t,n)=>{Pe(e,t,n),I.discardIfEmpty(H.length>0||!wn(e))},onPromptHistoryNavigate:Le,onSelectActiveCommand:pt,onSelectAttachmentKind:Ke,onSelectFileReference:We,onSelectSkill:mt,onSettingsChange:st,onSubmit:e=>void _t.submit(e),onViewError:e=>{K(e)},projectPath:D,projectPathOpenAvailable:te,projectPathOpenDisabled:ne,projectRoots:k,projectToolsEnabled:A,projectName:ee??E,projectTodos:z,promptContent:ze,promptSubmissionText:Be.text,queuedPrompts:X.queuedPrompts,removeQueuedPrompt:e=>{X.removeQueuedPrompt(e).catch(K)},reviewMenuMode:He,sandboxModeSelectable:!0,selectedModel:Ue,selectedReasoningEffort:G,selectedProjectRootId:j,showDeploymentHostAttachments:ae.status?.mode===`lan`,setActiveCommandIndex:Ge,skills:re,skillEditorRef:Ze,state:Qe,steerQueuedPrompt:e=>{X.sendQueuedPrompt(e).catch(K)},submitAction:vt,switchingBranch:ct.switchingBranch,switchingWorktree:ct.switchingWorktree,taskId:ie,turnControlsDisabled:q,worktrees:ct.worktrees});return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(qn,{active:u!==void 0,query:I.query,children:Z}),(0,$.jsx)(ni,{active:rt(W),client:r,kind:de,onAdd:e=>{Ne([...H,e])},onClose:()=>{Ke(void 0)},projectId:E})]})}export{Nt as a,kt as c,ln as i,Ei as n,jt as o,Vn as r,At as s,Wi as t};
@@ -1,2 +1,2 @@
1
- import{a as e}from"./rolldown-runtime-CNC7AqOf.js";import{i as t,t as n}from"./react-runtime-DaCTDC27.js";import{l as r,o as i,r as a}from"./initial-deps-CB2J2rjl.js";import{E as o,G as s,K as c,a as l,et as u,it as d,st as f}from"./initial-deps-E80pA8LY.js";import{t as p}from"./file-pen-line-Dm4cCdyM.js";import{r as m,x as h}from"./prompt-input-controls-DDBFb1Bv.js";import{n as g,r as _,t as v}from"./file-navigation-view-preference-BrQTIoOu.js";import{t as ee}from"./sparkles-B6-DOZ3B.js";import{t as y}from"./upload-ixXXjamH.js";import{A as b,D as x,Et as S,G as C,H as w,J as te,K as ne,Kt as T,O as re,Pt as ie,R as ae,Tt as E,U as D,W as O,X as oe,Y as se,at as k,ct as A,dt as j,k as ce,lt as M,ot as N,q as le,qt as P,tn as F,ut as I,vt as L,yt as R}from"./index-DvbRlATw.js";import{t as ue}from"./button-group-D12I7ve_.js";var z=u(`file-minus-corner`,[[`path`,{d:`M20 14V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12`,key:`l9p8hp`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]),B=e(t(),1),V=n(),H=l(`min-w-0 text-foreground outline-none transition-[border-color,box-shadow] placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50`,{defaultVariants:{variant:`default`},variants:{variant:{default:`min-h-20 w-full resize-y rounded-control bg-control px-3 py-2 text-body focus-visible:shadow-focus`,embedded:`flex-1 resize-none bg-transparent`}}});function U({className:e,variant:t=`default`,...n}){return(0,V.jsx)(`textarea`,{className:R(H({className:e,variant:t})),"data-slot":`textarea`,"data-variant":t,...n})}function de({className:e,...t}){return(0,V.jsx)(`div`,{className:R(`group/input-group flex w-full min-w-0 items-center`,e),"data-slot":`input-group`,role:`group`,...t})}function fe({align:e=`inline-start`,className:t,...n}){return(0,V.jsx)(`div`,{className:R(`flex shrink-0 items-center`,t),"data-align":e,"data-slot":`input-group-addon`,role:`group`,...n})}function pe({className:e,...t}){return(0,V.jsx)(U,{className:R(`min-w-0 flex-1`,e),"data-slot":`input-group-control`,variant:`embedded`,...t})}function W(e){return[...e].sort((e,t)=>e.kind===t.kind?e.name.localeCompare(t.name,`en`):e.kind===`file`?-1:1)}function G(e){let t=[e.name],n=e;for(;n.children.size===1;){let e=n.children.values().next().value;if(e?.kind!==`folder`)break;t.push(e.name),n=e}return{children:W([...n.children.values()].map(e=>e.kind===`folder`?G(e):e)),kind:`folder`,name:t.join(`/`),path:n.path}}function K(e){let t={children:new Map,kind:`folder`,name:``,path:``};for(let n of e){let e=n.path.split(`/`),r=e.pop();if(r===void 0)continue;let i=t;for(let t of e){let e=i.path===``?t:`${i.path}/${t}`,n=i.children.get(t);if(n?.kind===`folder`){i=n;continue}let r={children:new Map,kind:`folder`,name:t,path:e};i.children.set(t,r),i=r}i.children.set(r,{kind:`file`,name:r,path:n.path,status:n.kind})}return W([...t.children.values()].map(e=>e.kind===`folder`?G(e):e))}function q(e,t){for(let n of e)n.kind===`folder`&&(t.add(n.path),q(n.children,t))}function J(e){return e===`create`?`text-diff-added`:e===`delete`?`text-danger`:`text-warning`}function Y(e){let t=R(`size-3.5`,J(e));return e===`create`?(0,V.jsx)(h,{"aria-hidden":`true`,className:t}):e===`delete`?(0,V.jsx)(z,{"aria-hidden":`true`,className:t}):(0,V.jsx)(p,{"aria-hidden":`true`,className:t})}function X(e){return e===`create`?`A`:e===`delete`?`D`:`M`}function Z({changesByPath:e,disabled:t,label:n,nodes:r,onOpenFileDiff:i,onTogglePath:a,selectedPaths:o}){return r.map(r=>{if(r.kind===`folder`)return(0,V.jsx)(M,{name:r.name,path:r.path,children:(0,V.jsx)(Z,{changesByPath:e,disabled:t,label:n,nodes:r.children,onOpenFileDiff:i,onTogglePath:a,selectedPaths:o})},r.path);let s=o.has(r.path),c=e.get(r.path);return(0,V.jsxs)(A,{"aria-label":r.path,className:J(r.status),icon:Y(r.status),name:r.name,onClick:()=>{c!==void 0&&i(c)},path:r.path,trailing:(0,V.jsx)(`span`,{className:`ml-auto w-3 text-center text-meta font-semibold text-muted-foreground`,children:X(r.status)}),children:[(0,V.jsx)(`span`,{"aria-hidden":`true`,className:`size-5 shrink-0`}),(0,V.jsx)(k,{"aria-label":`${n}: ${r.path}`,checked:s,disabled:t,onCheckedChange:()=>{a(r.path)},onClick:e=>{e.stopPropagation()}}),(0,V.jsx)(I,{children:Y(r.status)}),(0,V.jsx)(j,{title:r.path,children:r.name})]},r.path)})}function Q({changes:e,disabled:t=!1,label:n,onOpenFileDiff:r,onSelectedPathsChange:i,selectedPaths:a,viewMode:o=`tree`}){let s=(0,B.useMemo)(()=>K(e),[e]),c=(0,B.useMemo)(()=>new Map(e.map(e=>[e.path,e])),[e]),l=(0,B.useMemo)(()=>[...new Set(e.map(e=>e.path))],[e]),u=(0,B.useMemo)(()=>{let e=new Set;return q(s,e),e},[s]);if(l.length===0)return null;let d=l.filter(e=>a.has(e)).length,f=d===0?!1:d===l.length||`indeterminate`,p=e=>{let t=new Set(a);t.has(e)?t.delete(e):t.add(e),i(t)};return(0,V.jsxs)(`section`,{"aria-label":n,className:`py-0.5`,children:[(0,V.jsxs)(`div`,{className:`flex min-h-7 items-center gap-1.5 px-3`,children:[(0,V.jsx)(k,{"aria-label":n,checked:f,disabled:t||l.length===0,onCheckedChange:e=>{let t=new Set(a);for(let n of l)e===!0?t.add(n):t.delete(n);i(t)}}),(0,V.jsx)(`h3`,{className:`text-label font-semibold text-foreground`,children:n}),(0,V.jsx)(`span`,{className:`ml-auto text-caption text-muted-foreground`,children:l.length})]}),o===`list`?(0,V.jsx)(`div`,{className:`px-1 font-mono text-label`,"data-slot":`commit-changes-list`,role:`list`,children:e.toSorted((e,t)=>e.path.localeCompare(t.path,`en`)).map(e=>(0,V.jsxs)(`div`,{className:`flex min-h-7 items-center gap-1.5 rounded-control px-2 hover:bg-control-hover`,role:`listitem`,children:[(0,V.jsx)(k,{"aria-label":`${n}: ${e.path}`,checked:a.has(e.path),disabled:t,onCheckedChange:()=>{p(e.path)}}),(0,V.jsxs)(`button`,{"aria-label":e.path,className:R(`flex min-w-0 flex-1 items-center gap-1.5 text-left outline-none focus-visible:shadow-focus`,J(e.kind)),onClick:()=>{r(e)},type:`button`,children:[Y(e.kind),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.path,children:e.path}),(0,V.jsx)(`span`,{className:`w-3 text-center text-meta font-semibold text-muted-foreground`,children:X(e.kind)})]})]},e.path))}):s.length===0?null:(0,V.jsx)(N,{"aria-label":n,className:`px-1`,defaultExpanded:u,children:(0,V.jsx)(Z,{changesByPath:c,disabled:t,label:n,nodes:s,onOpenFileDiff:r,onTogglePath:p,selectedPaths:a})})]})}function me(e){let t=new Map;for(let n of e.staged)t.set(n.path,{path:n.path,staged:!0,unstaged:!1});for(let n of e.unstaged){let e=t.get(n.path);t.set(n.path,{path:n.path,staged:e?.staged??!1,unstaged:!0})}return[...t.values()].sort((e,t)=>e.path.localeCompare(t.path,`en`))}function he(e){if(e.repositoryMode!==`children`)return[];let t=new Set;for(let n of[...e.staged,...e.unstaged]){let e=n.path.indexOf(`/`);e>0&&t.add(n.path.slice(0,e))}return[...t].toSorted((e,t)=>e.localeCompare(t,`en`))}function $(e,t){return{identity:e,message:``,selectedPaths:new Set(t.map(e=>e.path))}}function ge({error:e=null,gitStatus:t,isCommitting:n=!1,isGenerating:r=!1,isRepositoryLoading:i=!1,onCommit:a,onGenerateMessage:l,onOpenFileDiff:u,onSelectRepository:f=()=>void 0,repositories:p=[],result:h=null,selectedRepository:S=null}){let{t:T}=d(`workbench`),[E,k]=v(`changes`),A=(0,B.useMemo)(()=>me(t),[t]),j=`${S??`root`}:${t.snapshot}`,[M,N]=(0,B.useState)(()=>$(j,A)),P=(0,B.useRef)(ie());M.identity!==j&&N($(j,A));let{message:F,selectedPaths:I}=M,z=F.includes(`
2
- `)?3:1,H=r||n,U=p.length>0||t.repositoryMode===`children`,W=!U||S!==null&&!i&&t.repositoryMode===`root`,G=W&&I.size>0&&!H&&h===null,K=G&&F.trim().length>0,q=()=>P.current.run(async()=>{let e=await l({expectedSnapshot:t.snapshot,paths:[...I],...S===null?{}:{repository:S}});N(t=>({...t,message:e}))}),J=e=>P.current.run(()=>a({action:e,expectedSnapshot:t.snapshot,message:F,paths:[...I],...S===null?{}:{repository:S}}));return(0,V.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,"data-slot":`commit-changes-panel`,children:[U?(0,V.jsxs)(`div`,{className:`shrink-0 border-b border-separator px-3 py-2`,children:[(0,V.jsx)(`label`,{className:`text-label font-medium`,id:`commit-repository-label`,children:T(`commit.repository`)}),(0,V.jsxs)(C,{disabled:H||h!==null,onValueChange:f,...S===null?{}:{value:S},children:[(0,V.jsx)(se,{"aria-labelledby":`commit-repository-label`,className:`mt-1 w-full`,children:(0,V.jsx)(oe,{placeholder:T(`commit.selectRepository`)})}),(0,V.jsx)(ne,{position:`popper`,children:(0,V.jsx)(le,{children:p.map(e=>(0,V.jsx)(te,{value:e,children:e},e))})})]}),i?(0,V.jsx)(`p`,{className:`mt-1 text-caption text-muted-foreground`,role:`status`,children:T(`commit.repositoryLoading`)}):null,p.length===0?(0,V.jsx)(`p`,{className:`mt-1 text-caption text-danger`,role:`alert`,children:T(`commit.repositoryUnavailable`)}):null]}):null,e===null?null:(0,V.jsx)(`p`,{className:`mx-3 mt-2 shrink-0 text-caption text-danger`,role:`alert`,children:e.message}),W?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`shrink-0 px-3 py-2`,children:[(0,V.jsxs)(de,{className:R(`gap-1 rounded-surface border border-separator-strong bg-panel shadow-sm focus-within:border-brand focus-within:shadow-focus`,z===1?`h-8 max-workbench:h-11`:`h-18 max-workbench:h-21`),children:[(0,V.jsx)(pe,{"aria-label":T(`commit.commitMessage`),className:`h-full min-h-0 overflow-y-auto px-2 py-1.5 text-label leading-5 focus-visible:!outline-none max-workbench:py-3`,disabled:H||h!==null,id:`commit-message`,onChange:e=>{let t=e.currentTarget.value;N(e=>({...e,message:t}))},placeholder:T(`commit.messagePlaceholder`),rows:z,value:F}),(0,V.jsx)(fe,{align:`inline-end`,className:`ml-auto`,children:(0,V.jsxs)(w,{children:[(0,V.jsx)(O,{asChild:!0,children:(0,V.jsx)(m,{"aria-label":T(`commit.generateMessage`),className:`size-7 shrink-0 justify-center p-0 [&_svg]:size-3.5 max-workbench:size-11`,disabled:!G,onClick:()=>{q().catch(()=>void 0)},type:`button`,children:r?(0,V.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):(0,V.jsx)(ee,{"aria-hidden":`true`})})}),(0,V.jsx)(D,{side:`top`,children:T(`commit.generateMessage`)})]})})]}),h===null?(0,V.jsxs)(ue,{className:`mt-2 w-full`,children:[(0,V.jsxs)(L,{className:`flex-1 rounded-r-none`,disabled:!K,onClick:()=>{J(`commit`).catch(()=>void 0)},type:`button`,children:[n?(0,V.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):(0,V.jsx)(c,{"aria-hidden":`true`}),T(`commit.commit`)]}),(0,V.jsxs)(x,{children:[(0,V.jsx)(ae,{asChild:!0,children:(0,V.jsx)(L,{"aria-label":T(`commit.commitActions`),className:`w-10 rounded-l-none border-l border-brand-contrast/30 px-0`,disabled:!K,type:`button`,children:(0,V.jsx)(s,{"aria-hidden":`true`})})}),(0,V.jsx)(re,{align:`end`,children:(0,V.jsxs)(ce,{children:[(0,V.jsxs)(b,{onSelect:()=>{J(`commit`).catch(()=>void 0)},children:[(0,V.jsx)(c,{"aria-hidden":`true`,className:`size-3.5`}),T(`commit.commit`)]}),(0,V.jsxs)(b,{onSelect:()=>{J(`commit_and_push`).catch(()=>void 0)},children:[(0,V.jsx)(y,{"aria-hidden":`true`,className:`size-3.5`}),T(`commit.commitAndPush`)]})]})})]})]}):(0,V.jsx)(`p`,{className:`mt-2 font-mono text-caption text-muted-foreground`,role:`status`,children:h.commitSha.slice(0,7)})]}),(0,V.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col border-t border-separator`,children:[(0,V.jsxs)(`div`,{className:`flex h-8 shrink-0 items-center gap-1 px-3 text-label font-semibold`,children:[(0,V.jsx)(`span`,{children:T(`commit.changes`)}),(0,V.jsx)(`span`,{className:`ml-auto text-caption font-normal text-muted-foreground`,children:T(`commit.totalFiles`,{count:A.length})}),(0,V.jsxs)(w,{children:[(0,V.jsx)(O,{asChild:!0,children:(0,V.jsx)(L,{"aria-label":T(E===`tree`?`diff.showFileList`:`diff.showFileTree`),onClick:()=>{k(E===`tree`?`list`:`tree`)},size:`icon-sm`,type:`button`,variant:`ghost`,children:E===`tree`?(0,V.jsx)(g,{"aria-hidden":`true`,className:`size-3.5`}):(0,V.jsx)(_,{"aria-hidden":`true`,className:`size-3.5`})})}),(0,V.jsx)(D,{children:T(E===`tree`?`diff.showFileList`:`diff.showFileTree`)})]})]}),(0,V.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain py-0.5`,"data-slot":`commit-changes-scroll`,children:[(0,V.jsx)(Q,{changes:t.staged,disabled:H||h!==null,label:T(`commit.staged`),onOpenFileDiff:u,onSelectedPathsChange:e=>{N(t=>({...t,selectedPaths:e}))},selectedPaths:I,viewMode:E}),(0,V.jsx)(Q,{changes:t.unstaged,disabled:H||h!==null,label:T(`commit.unstaged`),onOpenFileDiff:u,onSelectedPathsChange:e=>{N(t=>({...t,selectedPaths:e}))},selectedPaths:I,viewMode:E})]})]})]}):null]})}function _e(e){return e.pushStatus===`pushed`?`commit.commitAndPushSucceeded`:e.pushStatus===`not_requested`?`commit.commitSucceeded`:null}function ve(e,t,n,r,i,a){let o=r===void 0?[`projects`,t,n,`git-status`]:[`projects`,t,n,`git-status`,r];e.setQueryData(o,i),e.setQueryData([`projects`,t,n,`git-history`,r??null],{pageParams:[void 0],pages:[a]})}function ye({client:e,detailsError:t=null,detailsPending:n=!1,gitStatus:o,onOpenFileDiff:s,projectId:c,rootPath:l}){let{t:u}=d(`workbench`),f=r(),p=a(P(c,l,e)),m=a({...T(c,l,e),meta:{actionNotification:{successMessage:!1}}}),h=(0,B.useMemo)(()=>he(o),[o]),[g,_]=(0,B.useState)(),[v,ee]=(0,B.useState)(null),y=v!==null&&h.includes(v)?v:h[0]??null,b=i(F(c,l,y,o.repositoryMode===`children`,e)),x=o.repositoryMode===`root`?o:b.data??o,C=g?.snapshot===x.snapshot?g.result:null;return(0,V.jsx)(ge,{error:t??b.error,gitStatus:x,isCommitting:m.isPending,isGenerating:p.isPending,isRepositoryLoading:n||b.isFetching,onCommit:async e=>{let t=await m.mutateAsync(e);_({result:t,snapshot:t.status.snapshot}),ve(f,c,l,e.repository,t.status,t.history);let n=_e(t);if(n!==null){S(u(n));return}E(Error(t.pushError??u(`commit.commitCompletePushFailed`)))},onGenerateMessage:async e=>(await p.mutateAsync(e)).message,onOpenFileDiff:s,onSelectRepository:e=>{_(void 0),p.reset(),m.reset(),ee(e)},repositories:h,result:C,selectedRepository:y})}function be({client:e,detailsError:t,detailsPending:n,detailsStatus:r,gitStatus:i,gitStatusError:a,onOpenFileDiff:o,projectId:s,rootPath:c}){return s!==void 0&&e!==void 0&&i!==void 0?(0,V.jsx)(ye,{client:e,detailsError:t,detailsPending:n,gitStatus:r??i,onOpenFileDiff:o,projectId:s,rootPath:c}):a===null?(0,V.jsx)(`p`,{className:`p-3 text-caption text-muted-foreground`,role:`status`,children:f.t(`inspector.gitLoading`,{ns:`conversation`})}):(0,V.jsx)(`p`,{className:`p-3 text-caption text-danger`,role:`alert`,children:a.message})}export{be as WorkbenchInspectorChanges};
1
+ import{a as e}from"./rolldown-runtime-CNC7AqOf.js";import{i as t,t as n}from"./react-runtime-DaCTDC27.js";import{l as r,o as i,r as a}from"./initial-deps-CB2J2rjl.js";import{E as o,G as s,K as c,a as l,et as u,it as d,st as f}from"./initial-deps-E80pA8LY.js";import{t as p}from"./file-pen-line-Dm4cCdyM.js";import{S as m,r as h}from"./prompt-input-controls-QVtFSyXt.js";import{n as g,r as _,t as v}from"./file-navigation-view-preference-BrQTIoOu.js";import{t as ee}from"./sparkles-B6-DOZ3B.js";import{t as y}from"./upload-ixXXjamH.js";import{A as b,D as x,Et as S,G as C,H as w,J as te,K as ne,Kt as T,O as re,Pt as ie,R as ae,Tt as E,U as D,W as O,X as oe,Y as se,at as k,ct as A,dt as j,k as ce,lt as M,ot as N,q as le,qt as P,tn as F,ut as I,vt as L,yt as R}from"./index-DulCmWgc.js";import{t as ue}from"./button-group-CirVWfjl.js";var z=u(`file-minus-corner`,[[`path`,{d:`M20 14V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12`,key:`l9p8hp`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M14 18h6`,key:`1m8k6r`}]]),B=e(t(),1),V=n(),H=l(`min-w-0 text-foreground outline-none transition-[border-color,box-shadow] placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50`,{defaultVariants:{variant:`default`},variants:{variant:{default:`min-h-20 w-full resize-y rounded-control bg-control px-3 py-2 text-body focus-visible:shadow-focus`,embedded:`flex-1 resize-none bg-transparent`}}});function U({className:e,variant:t=`default`,...n}){return(0,V.jsx)(`textarea`,{className:R(H({className:e,variant:t})),"data-slot":`textarea`,"data-variant":t,...n})}function de({className:e,...t}){return(0,V.jsx)(`div`,{className:R(`group/input-group flex w-full min-w-0 items-center`,e),"data-slot":`input-group`,role:`group`,...t})}function fe({align:e=`inline-start`,className:t,...n}){return(0,V.jsx)(`div`,{className:R(`flex shrink-0 items-center`,t),"data-align":e,"data-slot":`input-group-addon`,role:`group`,...n})}function pe({className:e,...t}){return(0,V.jsx)(U,{className:R(`min-w-0 flex-1`,e),"data-slot":`input-group-control`,variant:`embedded`,...t})}function W(e){return[...e].sort((e,t)=>e.kind===t.kind?e.name.localeCompare(t.name,`en`):e.kind===`file`?-1:1)}function G(e){let t=[e.name],n=e;for(;n.children.size===1;){let e=n.children.values().next().value;if(e?.kind!==`folder`)break;t.push(e.name),n=e}return{children:W([...n.children.values()].map(e=>e.kind===`folder`?G(e):e)),kind:`folder`,name:t.join(`/`),path:n.path}}function K(e){let t={children:new Map,kind:`folder`,name:``,path:``};for(let n of e){let e=n.path.split(`/`),r=e.pop();if(r===void 0)continue;let i=t;for(let t of e){let e=i.path===``?t:`${i.path}/${t}`,n=i.children.get(t);if(n?.kind===`folder`){i=n;continue}let r={children:new Map,kind:`folder`,name:t,path:e};i.children.set(t,r),i=r}i.children.set(r,{kind:`file`,name:r,path:n.path,status:n.kind})}return W([...t.children.values()].map(e=>e.kind===`folder`?G(e):e))}function q(e,t){for(let n of e)n.kind===`folder`&&(t.add(n.path),q(n.children,t))}function J(e){return e===`create`?`text-diff-added`:e===`delete`?`text-danger`:`text-warning`}function Y(e){let t=R(`size-3.5`,J(e));return e===`create`?(0,V.jsx)(m,{"aria-hidden":`true`,className:t}):e===`delete`?(0,V.jsx)(z,{"aria-hidden":`true`,className:t}):(0,V.jsx)(p,{"aria-hidden":`true`,className:t})}function X(e){return e===`create`?`A`:e===`delete`?`D`:`M`}function Z({changesByPath:e,disabled:t,label:n,nodes:r,onOpenFileDiff:i,onTogglePath:a,selectedPaths:o}){return r.map(r=>{if(r.kind===`folder`)return(0,V.jsx)(M,{name:r.name,path:r.path,children:(0,V.jsx)(Z,{changesByPath:e,disabled:t,label:n,nodes:r.children,onOpenFileDiff:i,onTogglePath:a,selectedPaths:o})},r.path);let s=o.has(r.path),c=e.get(r.path);return(0,V.jsxs)(A,{"aria-label":r.path,className:J(r.status),icon:Y(r.status),name:r.name,onClick:()=>{c!==void 0&&i(c)},path:r.path,trailing:(0,V.jsx)(`span`,{className:`ml-auto w-3 text-center text-meta font-semibold text-muted-foreground`,children:X(r.status)}),children:[(0,V.jsx)(`span`,{"aria-hidden":`true`,className:`size-5 shrink-0`}),(0,V.jsx)(k,{"aria-label":`${n}: ${r.path}`,checked:s,disabled:t,onCheckedChange:()=>{a(r.path)},onClick:e=>{e.stopPropagation()}}),(0,V.jsx)(I,{children:Y(r.status)}),(0,V.jsx)(j,{title:r.path,children:r.name})]},r.path)})}function Q({changes:e,disabled:t=!1,label:n,onOpenFileDiff:r,onSelectedPathsChange:i,selectedPaths:a,viewMode:o=`tree`}){let s=(0,B.useMemo)(()=>K(e),[e]),c=(0,B.useMemo)(()=>new Map(e.map(e=>[e.path,e])),[e]),l=(0,B.useMemo)(()=>[...new Set(e.map(e=>e.path))],[e]),u=(0,B.useMemo)(()=>{let e=new Set;return q(s,e),e},[s]);if(l.length===0)return null;let d=l.filter(e=>a.has(e)).length,f=d===0?!1:d===l.length||`indeterminate`,p=e=>{let t=new Set(a);t.has(e)?t.delete(e):t.add(e),i(t)};return(0,V.jsxs)(`section`,{"aria-label":n,className:`py-0.5`,children:[(0,V.jsxs)(`div`,{className:`flex min-h-7 items-center gap-1.5 px-3`,children:[(0,V.jsx)(k,{"aria-label":n,checked:f,disabled:t||l.length===0,onCheckedChange:e=>{let t=new Set(a);for(let n of l)e===!0?t.add(n):t.delete(n);i(t)}}),(0,V.jsx)(`h3`,{className:`text-label font-semibold text-foreground`,children:n}),(0,V.jsx)(`span`,{className:`ml-auto text-caption text-muted-foreground`,children:l.length})]}),o===`list`?(0,V.jsx)(`div`,{className:`px-1 font-mono text-label`,"data-slot":`commit-changes-list`,role:`list`,children:e.toSorted((e,t)=>e.path.localeCompare(t.path,`en`)).map(e=>(0,V.jsxs)(`div`,{className:`flex min-h-7 items-center gap-1.5 rounded-control px-2 hover:bg-control-hover`,role:`listitem`,children:[(0,V.jsx)(k,{"aria-label":`${n}: ${e.path}`,checked:a.has(e.path),disabled:t,onCheckedChange:()=>{p(e.path)}}),(0,V.jsxs)(`button`,{"aria-label":e.path,className:R(`flex min-w-0 flex-1 items-center gap-1.5 text-left outline-none focus-visible:shadow-focus`,J(e.kind)),onClick:()=>{r(e)},type:`button`,children:[Y(e.kind),(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.path,children:e.path}),(0,V.jsx)(`span`,{className:`w-3 text-center text-meta font-semibold text-muted-foreground`,children:X(e.kind)})]})]},e.path))}):s.length===0?null:(0,V.jsx)(N,{"aria-label":n,className:`px-1`,defaultExpanded:u,children:(0,V.jsx)(Z,{changesByPath:c,disabled:t,label:n,nodes:s,onOpenFileDiff:r,onTogglePath:p,selectedPaths:a})})]})}function me(e){let t=new Map;for(let n of e.staged)t.set(n.path,{path:n.path,staged:!0,unstaged:!1});for(let n of e.unstaged){let e=t.get(n.path);t.set(n.path,{path:n.path,staged:e?.staged??!1,unstaged:!0})}return[...t.values()].sort((e,t)=>e.path.localeCompare(t.path,`en`))}function he(e){if(e.repositoryMode!==`children`)return[];let t=new Set;for(let n of[...e.staged,...e.unstaged]){let e=n.path.indexOf(`/`);e>0&&t.add(n.path.slice(0,e))}return[...t].toSorted((e,t)=>e.localeCompare(t,`en`))}function $(e,t){return{identity:e,message:``,selectedPaths:new Set(t.map(e=>e.path))}}function ge({error:e=null,gitStatus:t,isCommitting:n=!1,isGenerating:r=!1,isRepositoryLoading:i=!1,onCommit:a,onGenerateMessage:l,onOpenFileDiff:u,onSelectRepository:f=()=>void 0,repositories:p=[],result:m=null,selectedRepository:S=null}){let{t:T}=d(`workbench`),[E,k]=v(`changes`),A=(0,B.useMemo)(()=>me(t),[t]),j=`${S??`root`}:${t.snapshot}`,[M,N]=(0,B.useState)(()=>$(j,A)),P=(0,B.useRef)(ie());M.identity!==j&&N($(j,A));let{message:F,selectedPaths:I}=M,z=F.includes(`
2
+ `)?3:1,H=r||n,U=p.length>0||t.repositoryMode===`children`,W=!U||S!==null&&!i&&t.repositoryMode===`root`,G=W&&I.size>0&&!H&&m===null,K=G&&F.trim().length>0,q=()=>P.current.run(async()=>{let e=await l({expectedSnapshot:t.snapshot,paths:[...I],...S===null?{}:{repository:S}});N(t=>({...t,message:e}))}),J=e=>P.current.run(()=>a({action:e,expectedSnapshot:t.snapshot,message:F,paths:[...I],...S===null?{}:{repository:S}}));return(0,V.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,"data-slot":`commit-changes-panel`,children:[U?(0,V.jsxs)(`div`,{className:`shrink-0 border-b border-separator px-3 py-2`,children:[(0,V.jsx)(`label`,{className:`text-label font-medium`,id:`commit-repository-label`,children:T(`commit.repository`)}),(0,V.jsxs)(C,{disabled:H||m!==null,onValueChange:f,...S===null?{}:{value:S},children:[(0,V.jsx)(se,{"aria-labelledby":`commit-repository-label`,className:`mt-1 w-full`,children:(0,V.jsx)(oe,{placeholder:T(`commit.selectRepository`)})}),(0,V.jsx)(ne,{position:`popper`,children:(0,V.jsx)(le,{children:p.map(e=>(0,V.jsx)(te,{value:e,children:e},e))})})]}),i?(0,V.jsx)(`p`,{className:`mt-1 text-caption text-muted-foreground`,role:`status`,children:T(`commit.repositoryLoading`)}):null,p.length===0?(0,V.jsx)(`p`,{className:`mt-1 text-caption text-danger`,role:`alert`,children:T(`commit.repositoryUnavailable`)}):null]}):null,e===null?null:(0,V.jsx)(`p`,{className:`mx-3 mt-2 shrink-0 text-caption text-danger`,role:`alert`,children:e.message}),W?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`section`,{className:`shrink-0 px-3 py-2`,children:[(0,V.jsxs)(de,{className:R(`gap-1 rounded-surface border border-separator-strong bg-panel shadow-sm focus-within:border-brand focus-within:shadow-focus`,z===1?`h-8 max-workbench:h-11`:`h-18 max-workbench:h-21`),children:[(0,V.jsx)(pe,{"aria-label":T(`commit.commitMessage`),className:`h-full min-h-0 overflow-y-auto px-2 py-1.5 text-label leading-5 focus-visible:!outline-none max-workbench:py-3`,disabled:H||m!==null,id:`commit-message`,onChange:e=>{let t=e.currentTarget.value;N(e=>({...e,message:t}))},placeholder:T(`commit.messagePlaceholder`),rows:z,value:F}),(0,V.jsx)(fe,{align:`inline-end`,className:`ml-auto`,children:(0,V.jsxs)(w,{children:[(0,V.jsx)(O,{asChild:!0,children:(0,V.jsx)(h,{"aria-label":T(`commit.generateMessage`),className:`size-7 shrink-0 justify-center p-0 [&_svg]:size-3.5 max-workbench:size-11`,disabled:!G,onClick:()=>{q().catch(()=>void 0)},type:`button`,children:r?(0,V.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):(0,V.jsx)(ee,{"aria-hidden":`true`})})}),(0,V.jsx)(D,{side:`top`,children:T(`commit.generateMessage`)})]})})]}),m===null?(0,V.jsxs)(ue,{className:`mt-2 w-full`,children:[(0,V.jsxs)(L,{className:`flex-1 rounded-r-none`,disabled:!K,onClick:()=>{J(`commit`).catch(()=>void 0)},type:`button`,children:[n?(0,V.jsx)(o,{"aria-hidden":`true`,className:`animate-spin`}):(0,V.jsx)(c,{"aria-hidden":`true`}),T(`commit.commit`)]}),(0,V.jsxs)(x,{children:[(0,V.jsx)(ae,{asChild:!0,children:(0,V.jsx)(L,{"aria-label":T(`commit.commitActions`),className:`w-10 rounded-l-none border-l border-brand-contrast/30 px-0`,disabled:!K,type:`button`,children:(0,V.jsx)(s,{"aria-hidden":`true`})})}),(0,V.jsx)(re,{align:`end`,children:(0,V.jsxs)(ce,{children:[(0,V.jsxs)(b,{onSelect:()=>{J(`commit`).catch(()=>void 0)},children:[(0,V.jsx)(c,{"aria-hidden":`true`,className:`size-3.5`}),T(`commit.commit`)]}),(0,V.jsxs)(b,{onSelect:()=>{J(`commit_and_push`).catch(()=>void 0)},children:[(0,V.jsx)(y,{"aria-hidden":`true`,className:`size-3.5`}),T(`commit.commitAndPush`)]})]})})]})]}):(0,V.jsx)(`p`,{className:`mt-2 font-mono text-caption text-muted-foreground`,role:`status`,children:m.commitSha.slice(0,7)})]}),(0,V.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col border-t border-separator`,children:[(0,V.jsxs)(`div`,{className:`flex h-8 shrink-0 items-center gap-1 px-3 text-label font-semibold`,children:[(0,V.jsx)(`span`,{children:T(`commit.changes`)}),(0,V.jsx)(`span`,{className:`ml-auto text-caption font-normal text-muted-foreground`,children:T(`commit.totalFiles`,{count:A.length})}),(0,V.jsxs)(w,{children:[(0,V.jsx)(O,{asChild:!0,children:(0,V.jsx)(L,{"aria-label":T(E===`tree`?`diff.showFileList`:`diff.showFileTree`),onClick:()=>{k(E===`tree`?`list`:`tree`)},size:`icon-sm`,type:`button`,variant:`ghost`,children:E===`tree`?(0,V.jsx)(g,{"aria-hidden":`true`,className:`size-3.5`}):(0,V.jsx)(_,{"aria-hidden":`true`,className:`size-3.5`})})}),(0,V.jsx)(D,{children:T(E===`tree`?`diff.showFileList`:`diff.showFileTree`)})]})]}),(0,V.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain py-0.5`,"data-slot":`commit-changes-scroll`,children:[(0,V.jsx)(Q,{changes:t.staged,disabled:H||m!==null,label:T(`commit.staged`),onOpenFileDiff:u,onSelectedPathsChange:e=>{N(t=>({...t,selectedPaths:e}))},selectedPaths:I,viewMode:E}),(0,V.jsx)(Q,{changes:t.unstaged,disabled:H||m!==null,label:T(`commit.unstaged`),onOpenFileDiff:u,onSelectedPathsChange:e=>{N(t=>({...t,selectedPaths:e}))},selectedPaths:I,viewMode:E})]})]})]}):null]})}function _e(e){return e.pushStatus===`pushed`?`commit.commitAndPushSucceeded`:e.pushStatus===`not_requested`?`commit.commitSucceeded`:null}function ve(e,t,n,r,i,a){let o=r===void 0?[`projects`,t,n,`git-status`]:[`projects`,t,n,`git-status`,r];e.setQueryData(o,i),e.setQueryData([`projects`,t,n,`git-history`,r??null],{pageParams:[void 0],pages:[a]})}function ye({client:e,detailsError:t=null,detailsPending:n=!1,gitStatus:o,onOpenFileDiff:s,projectId:c,rootPath:l}){let{t:u}=d(`workbench`),f=r(),p=a(P(c,l,e)),m=a({...T(c,l,e),meta:{actionNotification:{successMessage:!1}}}),h=(0,B.useMemo)(()=>he(o),[o]),[g,_]=(0,B.useState)(),[v,ee]=(0,B.useState)(null),y=v!==null&&h.includes(v)?v:h[0]??null,b=i(F(c,l,y,o.repositoryMode===`children`,e)),x=o.repositoryMode===`root`?o:b.data??o,C=g?.snapshot===x.snapshot?g.result:null;return(0,V.jsx)(ge,{error:t??b.error,gitStatus:x,isCommitting:m.isPending,isGenerating:p.isPending,isRepositoryLoading:n||b.isFetching,onCommit:async e=>{let t=await m.mutateAsync(e);_({result:t,snapshot:t.status.snapshot}),ve(f,c,l,e.repository,t.status,t.history);let n=_e(t);if(n!==null){S(u(n));return}E(Error(t.pushError??u(`commit.commitCompletePushFailed`)))},onGenerateMessage:async e=>(await p.mutateAsync(e)).message,onOpenFileDiff:s,onSelectRepository:e=>{_(void 0),p.reset(),m.reset(),ee(e)},repositories:h,result:C,selectedRepository:y})}function be({client:e,detailsError:t,detailsPending:n,detailsStatus:r,gitStatus:i,gitStatusError:a,onOpenFileDiff:o,projectId:s,rootPath:c}){return s!==void 0&&e!==void 0&&i!==void 0?(0,V.jsx)(ye,{client:e,detailsError:t,detailsPending:n,gitStatus:r??i,onOpenFileDiff:o,projectId:s,rootPath:c}):a===null?(0,V.jsx)(`p`,{className:`p-3 text-caption text-muted-foreground`,role:`status`,children:f.t(`inspector.gitLoading`,{ns:`conversation`})}):(0,V.jsx)(`p`,{className:`p-3 text-caption text-danger`,role:`alert`,children:a.message})}export{be as WorkbenchInspectorChanges};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-CNC7AqOf.js";import{i as t,t as n}from"./react-runtime-DaCTDC27.js";import{a as r,n as i}from"./initial-deps-CB2J2rjl.js";import{o as a}from"./initial-deps-DrhykaPS.js";import{_n as o}from"./index-DvbRlATw.js";var s=[`workbench-pets`];function c(e=o){return r({queryFn:({signal:t})=>e.listWorkbenchPets({signal:t}),queryKey:s,staleTime:3e4})}function l(e,t=o){return i({meta:{actionNotification:{successMessage:!1}},mutationFn:async e=>{let n=`workbench-pet-${e}-${globalThis.crypto.randomUUID()}`;return t.downloadWorkbenchPet(e,{idempotencyKey:n})},mutationKey:[`workbench-pets`,`download`],onSuccess:({pets:t})=>{e.setQueryData(s,t)},scope:{id:`workbench-pet-download`}})}var u=e(t(),1);function d(e){return e!==void 0&&e.frames.length>0}function f(e,t){let n=new Set,r=t;for(;!n.has(r);){n.add(r);let t=e[r];if(t!==void 0&&d(t))return t;if(t!==void 0)r=t.fallback;else if(r!==`idle`)r=`idle`;else return}}var p=class{#e;#t;#n=`idle`;#r=!1;#i=0;#a=!1;#o;#s=!0;constructor(e){this.#e=e.animations,this.#t=e.onFrame}play(e){this.#n=e,this.#l()}setReducedMotion(e){this.#a!==e&&(this.#a=e,this.#l())}setVisible(e){this.#s!==e&&(this.#s=e,this.#l())}dispose(){this.#r=!0,this.#i+=1,this.#c()}#c(){this.#o!==void 0&&clearTimeout(this.#o),this.#o=void 0}#l(){if(this.#i+=1,this.#c(),this.#r||!this.#s)return;let e=f(this.#e,this.#n);e!==void 0&&this.#u(e,0,this.#i)}#u(e,t,n){if(n!==this.#i||this.#r||!this.#s)return;let r=e.frames[t];if(r===void 0||(this.#t(r.spriteIndex),this.#a))return;let i=t+1,a=e.loopStart??-1;i>=e.frames.length&&a<0||(this.#o=setTimeout(()=>{this.#o=void 0,this.#u(e,i<e.frames.length?i:a,n)},r.durationMs))}};async function m(e,t){let n=await fetch(e,{credentials:`same-origin`,signal:t});if(!n.ok)throw Error(`Unable to load pet asset: ${String(n.status)}`);return createImageBitmap(await n.blob())}function h(e,t,n,r){let i=e.getContext(`2d`);if(i===null)throw Error(`Canvas 2D context is unavailable`);let a=Math.max(1,e.clientWidth||n.width),o=Math.max(1,e.clientHeight||n.height),s=Math.min(3,Math.max(1,globalThis.devicePixelRatio||1)),c=Math.round(a*s),l=Math.round(o*s);e.width!==c&&(e.width=c),e.height!==l&&(e.height=l);let u=r%n.columns,d=Math.floor(r/n.columns);i.clearRect(0,0,c,l),i.imageSmoothingEnabled=!1,i.drawImage(t,u*n.width,d*n.height,n.width,n.height,0,0,c,l)}var g=n();function _(){let[e,t]=(0,u.useState)(!1);return(0,u.useEffect)(()=>{let e=matchMedia(`(prefers-reduced-motion: reduce)`),n=()=>{t(e.matches)};return n(),e.addEventListener(`change`,n),()=>{e.removeEventListener(`change`,n)}},[]),e}function v({animationName:e,pet:t}){let n=(0,u.useRef)(null),[r,i]=(0,u.useState)(null),[o,s]=(0,u.useState)(!1),c=_(),l=a(t.assetId);return(0,u.useEffect)(()=>{let e=new AbortController,t=!0;return i(null),s(!1),typeof createImageBitmap==`function`?(m(l,e.signal).then(e=>{t?i(e):e.close()}).catch(()=>{t&&!e.signal.aborted&&s(!0)}),()=>{t=!1,e.abort()}):(s(!0),()=>{e.abort()})},[l]),(0,u.useEffect)(()=>()=>{r?.close()},[r]),(0,u.useEffect)(()=>{let i=n.current;if(i===null||r===null)return;let a=0,o=e=>{a=e;try{h(i,r,t.frame,e)}catch{s(!0)}},l=new p({animations:t.animations,onFrame:o});l.setReducedMotion(c),l.setVisible(document.visibilityState===`visible`),l.play(e);let u=new ResizeObserver(()=>{o(a)});u.observe(i);let d=()=>{l.setVisible(document.visibilityState===`visible`)};return document.addEventListener(`visibilitychange`,d),()=>{u.disconnect(),document.removeEventListener(`visibilitychange`,d),l.dispose()}},[e,r,t.animations,t.frame,c]),o?(0,g.jsx)(`span`,{"aria-hidden":`true`,className:`workbench-pet-static-fallback`,style:{backgroundImage:`url(${l})`,backgroundSize:`${String(t.frame.columns*100)}% ${String(t.frame.rows*100)}%`}}):(0,g.jsx)(`canvas`,{"aria-hidden":`true`,className:`workbench-pet-canvas`,ref:n})}export{l as n,c as r,v as t};
1
+ import{a as e}from"./rolldown-runtime-CNC7AqOf.js";import{i as t,t as n}from"./react-runtime-DaCTDC27.js";import{a as r,n as i}from"./initial-deps-CB2J2rjl.js";import{o as a}from"./initial-deps-DrhykaPS.js";import{_n as o}from"./index-DulCmWgc.js";var s=[`workbench-pets`];function c(e=o){return r({queryFn:({signal:t})=>e.listWorkbenchPets({signal:t}),queryKey:s,staleTime:3e4})}function l(e,t=o){return i({meta:{actionNotification:{successMessage:!1}},mutationFn:async e=>{let n=`workbench-pet-${e}-${globalThis.crypto.randomUUID()}`;return t.downloadWorkbenchPet(e,{idempotencyKey:n})},mutationKey:[`workbench-pets`,`download`],onSuccess:({pets:t})=>{e.setQueryData(s,t)},scope:{id:`workbench-pet-download`}})}var u=e(t(),1);function d(e){return e!==void 0&&e.frames.length>0}function f(e,t){let n=new Set,r=t;for(;!n.has(r);){n.add(r);let t=e[r];if(t!==void 0&&d(t))return t;if(t!==void 0)r=t.fallback;else if(r!==`idle`)r=`idle`;else return}}var p=class{#e;#t;#n=`idle`;#r=!1;#i=0;#a=!1;#o;#s=!0;constructor(e){this.#e=e.animations,this.#t=e.onFrame}play(e){this.#n=e,this.#l()}setReducedMotion(e){this.#a!==e&&(this.#a=e,this.#l())}setVisible(e){this.#s!==e&&(this.#s=e,this.#l())}dispose(){this.#r=!0,this.#i+=1,this.#c()}#c(){this.#o!==void 0&&clearTimeout(this.#o),this.#o=void 0}#l(){if(this.#i+=1,this.#c(),this.#r||!this.#s)return;let e=f(this.#e,this.#n);e!==void 0&&this.#u(e,0,this.#i)}#u(e,t,n){if(n!==this.#i||this.#r||!this.#s)return;let r=e.frames[t];if(r===void 0||(this.#t(r.spriteIndex),this.#a))return;let i=t+1,a=e.loopStart??-1;i>=e.frames.length&&a<0||(this.#o=setTimeout(()=>{this.#o=void 0,this.#u(e,i<e.frames.length?i:a,n)},r.durationMs))}};async function m(e,t){let n=await fetch(e,{credentials:`same-origin`,signal:t});if(!n.ok)throw Error(`Unable to load pet asset: ${String(n.status)}`);return createImageBitmap(await n.blob())}function h(e,t,n,r){let i=e.getContext(`2d`);if(i===null)throw Error(`Canvas 2D context is unavailable`);let a=Math.max(1,e.clientWidth||n.width),o=Math.max(1,e.clientHeight||n.height),s=Math.min(3,Math.max(1,globalThis.devicePixelRatio||1)),c=Math.round(a*s),l=Math.round(o*s);e.width!==c&&(e.width=c),e.height!==l&&(e.height=l);let u=r%n.columns,d=Math.floor(r/n.columns);i.clearRect(0,0,c,l),i.imageSmoothingEnabled=!1,i.drawImage(t,u*n.width,d*n.height,n.width,n.height,0,0,c,l)}var g=n();function _(){let[e,t]=(0,u.useState)(!1);return(0,u.useEffect)(()=>{let e=matchMedia(`(prefers-reduced-motion: reduce)`),n=()=>{t(e.matches)};return n(),e.addEventListener(`change`,n),()=>{e.removeEventListener(`change`,n)}},[]),e}function v({animationName:e,pet:t}){let n=(0,u.useRef)(null),[r,i]=(0,u.useState)(null),[o,s]=(0,u.useState)(!1),c=_(),l=a(t.assetId);return(0,u.useEffect)(()=>{let e=new AbortController,t=!0;return i(null),s(!1),typeof createImageBitmap==`function`?(m(l,e.signal).then(e=>{t?i(e):e.close()}).catch(()=>{t&&!e.signal.aborted&&s(!0)}),()=>{t=!1,e.abort()}):(s(!0),()=>{e.abort()})},[l]),(0,u.useEffect)(()=>()=>{r?.close()},[r]),(0,u.useEffect)(()=>{let i=n.current;if(i===null||r===null)return;let a=0,o=e=>{a=e;try{h(i,r,t.frame,e)}catch{s(!0)}},l=new p({animations:t.animations,onFrame:o});l.setReducedMotion(c),l.setVisible(document.visibilityState===`visible`),l.play(e);let u=new ResizeObserver(()=>{o(a)});u.observe(i);let d=()=>{l.setVisible(document.visibilityState===`visible`)};return document.addEventListener(`visibilitychange`,d),()=>{u.disconnect(),document.removeEventListener(`visibilitychange`,d),l.dispose()}},[e,r,t.animations,t.frame,c]),o?(0,g.jsx)(`span`,{"aria-hidden":`true`,className:`workbench-pet-static-fallback`,style:{backgroundImage:`url(${l})`,backgroundSize:`${String(t.frame.columns*100)}% ${String(t.frame.rows*100)}%`}}):(0,g.jsx)(`canvas`,{"aria-hidden":`true`,className:`workbench-pet-canvas`,ref:n})}export{l as n,c as r,v as t};