@bryanhu/codexly 0.37.1 → 0.38.0

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 (267) hide show
  1. package/CHANGELOG.md +30 -17
  2. package/README.md +6 -45
  3. package/README.zh-CN.md +6 -45
  4. package/dist/chunk-4RQ7HLCK.js +3 -0
  5. package/dist/chunk-GMNBWGMQ.js +5 -0
  6. package/dist/{chunk-PQPYP3AR.js → chunk-LGFUYNXR.js} +1 -1
  7. package/dist/{chunk-5AELLXXE.js → chunk-RWMSDM4X.js} +1 -1
  8. package/dist/{chunk-PFNMH4LN.js → chunk-SNN2J7BU.js} +187 -170
  9. package/dist/chunk-YCHIPWV2.js +40 -0
  10. package/dist/cli.js +5 -5
  11. package/dist/client/index.js +1 -1
  12. package/dist/{command-R5BTONU5.js → command-2D66UEBJ.js} +1 -1
  13. package/dist/core/index.js +1 -1
  14. package/dist/protocol/index.js +1 -1
  15. package/dist/providers/codex/index.js +1 -1
  16. package/dist/server/index.js +1 -1
  17. package/dist/sqlite-state-worker.js +22 -18
  18. package/dist/web/.vite/manifest.json +122 -129
  19. package/dist/web/.vite/manifest.json.br +0 -0
  20. package/dist/web/.vite/manifest.json.gz +0 -0
  21. package/dist/web/assets/{agent-settings-panel-CRNaBDDS.js → agent-settings-panel-C9S0LXqi.js} +1 -1
  22. package/dist/web/assets/agent-settings-panel-C9S0LXqi.js.br +0 -0
  23. package/dist/web/assets/agent-settings-panel-C9S0LXqi.js.gz +0 -0
  24. package/dist/web/assets/app-update-dialog-BsIh1VPg.js +1 -0
  25. package/dist/web/assets/app-update-dialog-BsIh1VPg.js.br +0 -0
  26. package/dist/web/assets/app-update-dialog-BsIh1VPg.js.gz +0 -0
  27. package/dist/web/assets/{background-image-picker-glORbeMR.js → background-image-picker-B1xDUft3.js} +1 -1
  28. package/dist/web/assets/background-image-picker-B1xDUft3.js.br +0 -0
  29. package/dist/web/assets/background-image-picker-B1xDUft3.js.gz +0 -0
  30. package/dist/web/assets/{code-highlighter-Cg1b4nzi.js → code-highlighter-kiC_chgH.js} +1 -1
  31. package/dist/web/assets/code-highlighter-kiC_chgH.js.br +0 -0
  32. package/dist/web/assets/code-highlighter-kiC_chgH.js.gz +0 -0
  33. package/dist/web/assets/{commit-settings-panel-C-ALJcjd.js → commit-settings-panel-Cdtyux2J.js} +1 -1
  34. package/dist/web/assets/commit-settings-panel-Cdtyux2J.js.br +0 -0
  35. package/dist/web/assets/commit-settings-panel-Cdtyux2J.js.gz +0 -0
  36. package/dist/web/assets/file-review-dialog-DaGgZASG.js +2 -0
  37. package/dist/web/assets/file-review-dialog-DaGgZASG.js.br +0 -0
  38. package/dist/web/assets/file-review-dialog-DaGgZASG.js.gz +0 -0
  39. package/dist/web/assets/git-commit-review-Bz8YDy59.js +2 -0
  40. package/dist/web/assets/git-commit-review-Bz8YDy59.js.br +0 -0
  41. package/dist/web/assets/git-commit-review-Bz8YDy59.js.gz +0 -0
  42. package/dist/web/assets/{git-history-panel-BvNkd60B.js → git-history-panel-QBsXgUT7.js} +1 -1
  43. package/dist/web/assets/git-history-panel-QBsXgUT7.js.br +0 -0
  44. package/dist/web/assets/git-history-panel-QBsXgUT7.js.gz +0 -0
  45. package/dist/web/assets/{global-search-dialog-CZnsxRQ7.js → global-search-dialog-DDaHRgce.js} +1 -1
  46. package/dist/web/assets/global-search-dialog-DDaHRgce.js.br +0 -0
  47. package/dist/web/assets/global-search-dialog-DDaHRgce.js.gz +0 -0
  48. package/dist/web/assets/global-settings-about-DpKyx3RM.js +1 -0
  49. package/dist/web/assets/global-settings-about-DpKyx3RM.js.br +0 -0
  50. package/dist/web/assets/global-settings-about-DpKyx3RM.js.gz +0 -0
  51. package/dist/web/assets/{global-settings-page-VbyWoa5s.js → global-settings-page-BEUBn7B5.js} +2 -2
  52. package/dist/web/assets/global-settings-page-BEUBn7B5.js.br +0 -0
  53. package/dist/web/assets/global-settings-page-BEUBn7B5.js.gz +0 -0
  54. package/dist/web/assets/{global-settings-pets-CAXRRfK_.js → global-settings-pets-DBYFpNQk.js} +1 -1
  55. package/dist/web/assets/global-settings-pets-DBYFpNQk.js.br +0 -0
  56. package/dist/web/assets/global-settings-pets-DBYFpNQk.js.gz +0 -0
  57. package/dist/web/assets/{highlighted-body-OFNGDK62-ClNmIb2W.js → highlighted-body-OFNGDK62-CeVKUhHG.js} +1 -1
  58. package/dist/web/assets/highlighted-body-OFNGDK62-CeVKUhHG.js.br +0 -0
  59. package/dist/web/assets/highlighted-body-OFNGDK62-CeVKUhHG.js.gz +0 -0
  60. package/dist/web/assets/{history-task-timeline-bx1YeO4E.js → history-task-timeline-Dl6to6Cp.js} +1 -1
  61. package/dist/web/assets/history-task-timeline-Dl6to6Cp.js.br +0 -0
  62. package/dist/web/assets/history-task-timeline-Dl6to6Cp.js.gz +0 -0
  63. package/dist/web/assets/{image-preview-Cufuk95q.js → image-preview-Bez628xh.js} +2 -2
  64. package/dist/web/assets/image-preview-Bez628xh.js.br +0 -0
  65. package/dist/web/assets/image-preview-Bez628xh.js.gz +0 -0
  66. package/dist/web/assets/{image-preview-content-C9_jCSeW.js → image-preview-content-TkopF2n1.js} +1 -1
  67. package/dist/web/assets/image-preview-content-TkopF2n1.js.br +0 -0
  68. package/dist/web/assets/image-preview-content-TkopF2n1.js.gz +0 -0
  69. package/dist/web/assets/index-CHJSDTYw.css +2 -0
  70. package/dist/web/assets/index-CHJSDTYw.css.br +0 -0
  71. package/dist/web/assets/index-CHJSDTYw.css.gz +0 -0
  72. package/dist/web/assets/index-DobF11m_.js +4 -0
  73. package/dist/web/assets/index-DobF11m_.js.br +0 -0
  74. package/dist/web/assets/index-DobF11m_.js.gz +0 -0
  75. package/dist/web/assets/initial-deps-C-3sxJvc.js +2 -0
  76. package/dist/web/assets/initial-deps-C-3sxJvc.js.br +0 -0
  77. package/dist/web/assets/initial-deps-C-3sxJvc.js.gz +0 -0
  78. package/dist/web/assets/{installed-skills-pane-B0a8IOZ0.js → installed-skills-pane-yCfl2E4Z.js} +1 -1
  79. package/dist/web/assets/installed-skills-pane-yCfl2E4Z.js.br +0 -0
  80. package/dist/web/assets/installed-skills-pane-yCfl2E4Z.js.gz +0 -0
  81. package/dist/web/assets/markdown-DVABVVc2.js +1 -0
  82. package/dist/web/assets/markdown-DVABVVc2.js.br +0 -0
  83. package/dist/web/assets/markdown-DVABVVc2.js.gz +0 -0
  84. package/dist/web/assets/{mcp-management-pane-BaRHPwX2.js → mcp-management-pane-D4fhknd1.js} +1 -1
  85. package/dist/web/assets/mcp-management-pane-D4fhknd1.js.br +0 -0
  86. package/dist/web/assets/mcp-management-pane-D4fhknd1.js.gz +0 -0
  87. package/dist/web/assets/mdx-BLuqtYwj.js +1 -0
  88. package/dist/web/assets/mdx-BLuqtYwj.js.br +0 -0
  89. package/dist/web/assets/mdx-BLuqtYwj.js.gz +0 -0
  90. package/dist/web/assets/mermaid-GHXKKRXX-BL0SiEsb.js +1 -0
  91. package/dist/web/assets/mermaid-GHXKKRXX-BL0SiEsb.js.br +1 -0
  92. package/dist/web/assets/mermaid-GHXKKRXX-BL0SiEsb.js.gz +0 -0
  93. package/dist/web/assets/{message-assistant-directive-CaNrh5lx.js → message-assistant-directive-r0UOX93m.js} +1 -1
  94. package/dist/web/assets/message-assistant-directive-r0UOX93m.js.br +0 -0
  95. package/dist/web/assets/message-assistant-directive-r0UOX93m.js.gz +0 -0
  96. package/dist/web/assets/{message-response-WYZfuphQ.js → message-response-DTlvlBMa.js} +5 -5
  97. package/dist/web/assets/message-response-DTlvlBMa.js.br +0 -0
  98. package/dist/web/assets/message-response-DTlvlBMa.js.gz +0 -0
  99. package/dist/web/assets/{official-plugins-pane-KGXjJvv3.js → official-plugins-pane-CRnpq0MJ.js} +1 -1
  100. package/dist/web/assets/official-plugins-pane-CRnpq0MJ.js.br +0 -0
  101. package/dist/web/assets/official-plugins-pane-CRnpq0MJ.js.gz +0 -0
  102. package/dist/web/assets/{patch-diff-viewer-D_Ts5rez.js → patch-diff-viewer-fv2hVYyb.js} +3 -3
  103. package/dist/web/assets/patch-diff-viewer-fv2hVYyb.js.br +0 -0
  104. package/dist/web/assets/patch-diff-viewer-fv2hVYyb.js.gz +0 -0
  105. package/dist/web/assets/{pdf-preview-D46KssiK.js → pdf-preview-CEvfJiZa.js} +3 -3
  106. package/dist/web/assets/pdf-preview-CEvfJiZa.js.br +0 -0
  107. package/dist/web/assets/pdf-preview-CEvfJiZa.js.gz +0 -0
  108. package/dist/web/assets/{personalization-settings-panel-CllzRqsG.js → personalization-settings-panel-CmNqDQg6.js} +1 -1
  109. package/dist/web/assets/personalization-settings-panel-CmNqDQg6.js.br +0 -0
  110. package/dist/web/assets/personalization-settings-panel-CmNqDQg6.js.gz +0 -0
  111. package/dist/web/assets/{project-file-popup-page-CVnfABUU.js → project-file-popup-page-rkdge4He.js} +1 -1
  112. package/dist/web/assets/project-file-popup-page-rkdge4He.js.br +0 -0
  113. package/dist/web/assets/project-file-popup-page-rkdge4He.js.gz +0 -0
  114. package/dist/web/assets/project-source-panel-Dfdd7hXf.js +2 -0
  115. package/dist/web/assets/project-source-panel-Dfdd7hXf.js.br +0 -0
  116. package/dist/web/assets/project-source-panel-Dfdd7hXf.js.gz +0 -0
  117. package/dist/web/assets/{prompt-input-Ceptl3B-.js → prompt-input-rTS8jFNM.js} +1 -1
  118. package/dist/web/assets/prompt-input-rTS8jFNM.js.br +0 -0
  119. package/dist/web/assets/prompt-input-rTS8jFNM.js.gz +0 -0
  120. package/dist/web/assets/resources-en-DiMZyInt.js +1 -0
  121. package/dist/web/assets/resources-en-DiMZyInt.js.br +0 -0
  122. package/dist/web/assets/resources-en-DiMZyInt.js.gz +0 -0
  123. package/dist/web/assets/{scheduled-task-date-time-picker-CpT4cTpn.js → scheduled-task-date-time-picker-8cWX1p1O.js} +1 -1
  124. package/dist/web/assets/scheduled-task-date-time-picker-8cWX1p1O.js.br +0 -0
  125. package/dist/web/assets/scheduled-task-date-time-picker-8cWX1p1O.js.gz +0 -0
  126. package/dist/web/assets/{scheduled-tasks-container-CRV2di5K.js → scheduled-tasks-container-BA7pSsmC.js} +2 -2
  127. package/dist/web/assets/scheduled-tasks-container-BA7pSsmC.js.br +0 -0
  128. package/dist/web/assets/scheduled-tasks-container-BA7pSsmC.js.gz +0 -0
  129. package/dist/web/assets/scheduled-tasks-container-DrOJ_UbG.css +1 -0
  130. package/dist/web/assets/scheduled-tasks-container-DrOJ_UbG.css.br +0 -0
  131. package/dist/web/assets/scheduled-tasks-container-DrOJ_UbG.css.gz +0 -0
  132. package/dist/web/assets/{shiki-bundle-C942xz2H.js → shiki-bundle-CHd-S0Yk.js} +1 -1
  133. package/dist/web/assets/shiki-bundle-CHd-S0Yk.js.br +2 -0
  134. package/dist/web/assets/shiki-bundle-CHd-S0Yk.js.gz +0 -0
  135. package/dist/web/assets/{skills-market-container--8qzUyrx.js → skills-market-container-BdTREXZb.js} +2 -2
  136. package/dist/web/assets/skills-market-container-BdTREXZb.js.br +0 -0
  137. package/dist/web/assets/skills-market-container-BdTREXZb.js.gz +0 -0
  138. package/dist/web/assets/{split-workspace-menu-content-CAL4JQt9.js → split-workspace-menu-content-DgbECHxu.js} +1 -1
  139. package/dist/web/assets/split-workspace-menu-content-DgbECHxu.js.br +0 -0
  140. package/dist/web/assets/split-workspace-menu-content-DgbECHxu.js.gz +0 -0
  141. package/dist/web/assets/{third-party-marketplace-pane-Can5ly44.js → third-party-marketplace-pane-BPN-3gk1.js} +1 -1
  142. package/dist/web/assets/third-party-marketplace-pane-BPN-3gk1.js.br +0 -0
  143. package/dist/web/assets/third-party-marketplace-pane-BPN-3gk1.js.gz +0 -0
  144. package/dist/web/assets/workbench-inspector-changes-D1rDsafv.js +1 -0
  145. package/dist/web/assets/workbench-inspector-changes-D1rDsafv.js.br +0 -0
  146. package/dist/web/assets/workbench-inspector-changes-D1rDsafv.js.gz +0 -0
  147. package/dist/web/assets/{workbench-pet-canvas-DuBL3mip.js → workbench-pet-canvas-B5jypDil.js} +1 -1
  148. package/dist/web/assets/workbench-pet-canvas-B5jypDil.js.br +0 -0
  149. package/dist/web/assets/workbench-pet-canvas-B5jypDil.js.gz +0 -0
  150. package/dist/web/assets/workbench-shell-B139izuR.js +16 -0
  151. package/dist/web/assets/workbench-shell-B139izuR.js.br +0 -0
  152. package/dist/web/assets/workbench-shell-B139izuR.js.gz +0 -0
  153. package/dist/web/index.html +3 -3
  154. package/dist/web/index.html.br +0 -0
  155. package/dist/web/index.html.gz +0 -0
  156. package/docs/local-catalog.md +51 -0
  157. package/docs/model-discovery.md +26 -0
  158. package/package.json +5 -4
  159. package/dist/chunk-3WW7LK46.js +0 -5
  160. package/dist/chunk-5ULADQG3.js +0 -40
  161. package/dist/chunk-63NQMTXZ.js +0 -3
  162. package/dist/web/assets/agent-settings-panel-CRNaBDDS.js.br +0 -0
  163. package/dist/web/assets/agent-settings-panel-CRNaBDDS.js.gz +0 -0
  164. package/dist/web/assets/background-image-picker-glORbeMR.js.br +0 -0
  165. package/dist/web/assets/background-image-picker-glORbeMR.js.gz +0 -0
  166. package/dist/web/assets/code-highlighter-Cg1b4nzi.js.br +0 -5
  167. package/dist/web/assets/code-highlighter-Cg1b4nzi.js.gz +0 -0
  168. package/dist/web/assets/commit-settings-panel-C-ALJcjd.js.br +0 -0
  169. package/dist/web/assets/commit-settings-panel-C-ALJcjd.js.gz +0 -0
  170. package/dist/web/assets/dockerfile-IyjqRm3v.js +0 -1
  171. package/dist/web/assets/dockerfile-IyjqRm3v.js.br +0 -0
  172. package/dist/web/assets/dockerfile-IyjqRm3v.js.gz +0 -0
  173. package/dist/web/assets/file-review-dialog-DNWufkfZ.js +0 -2
  174. package/dist/web/assets/file-review-dialog-DNWufkfZ.js.br +0 -0
  175. package/dist/web/assets/file-review-dialog-DNWufkfZ.js.gz +0 -0
  176. package/dist/web/assets/git-commit-review-B3GGQldl.js +0 -2
  177. package/dist/web/assets/git-commit-review-B3GGQldl.js.br +0 -0
  178. package/dist/web/assets/git-commit-review-B3GGQldl.js.gz +0 -0
  179. package/dist/web/assets/git-history-panel-BvNkd60B.js.br +0 -0
  180. package/dist/web/assets/git-history-panel-BvNkd60B.js.gz +0 -0
  181. package/dist/web/assets/global-search-dialog-CZnsxRQ7.js.br +0 -0
  182. package/dist/web/assets/global-search-dialog-CZnsxRQ7.js.gz +0 -0
  183. package/dist/web/assets/global-settings-about-CnBVv1BA.js +0 -1
  184. package/dist/web/assets/global-settings-about-CnBVv1BA.js.br +0 -0
  185. package/dist/web/assets/global-settings-about-CnBVv1BA.js.gz +0 -0
  186. package/dist/web/assets/global-settings-page-VbyWoa5s.js.br +0 -0
  187. package/dist/web/assets/global-settings-page-VbyWoa5s.js.gz +0 -0
  188. package/dist/web/assets/global-settings-pets-CAXRRfK_.js.br +0 -0
  189. package/dist/web/assets/global-settings-pets-CAXRRfK_.js.gz +0 -0
  190. package/dist/web/assets/highlighted-body-OFNGDK62-ClNmIb2W.js.br +0 -0
  191. package/dist/web/assets/highlighted-body-OFNGDK62-ClNmIb2W.js.gz +0 -0
  192. package/dist/web/assets/history-task-timeline-bx1YeO4E.js.br +0 -0
  193. package/dist/web/assets/history-task-timeline-bx1YeO4E.js.gz +0 -0
  194. package/dist/web/assets/image-preview-Cufuk95q.js.br +0 -0
  195. package/dist/web/assets/image-preview-Cufuk95q.js.gz +0 -0
  196. package/dist/web/assets/image-preview-content-C9_jCSeW.js.br +0 -0
  197. package/dist/web/assets/image-preview-content-C9_jCSeW.js.gz +0 -0
  198. package/dist/web/assets/index-BJqxQCE6.css +0 -2
  199. package/dist/web/assets/index-BJqxQCE6.css.br +0 -0
  200. package/dist/web/assets/index-BJqxQCE6.css.gz +0 -0
  201. package/dist/web/assets/index-DudvUciK.js +0 -4
  202. package/dist/web/assets/index-DudvUciK.js.br +0 -0
  203. package/dist/web/assets/index-DudvUciK.js.gz +0 -0
  204. package/dist/web/assets/initial-deps-B7SS8XxM.js +0 -2
  205. package/dist/web/assets/initial-deps-B7SS8XxM.js.br +0 -0
  206. package/dist/web/assets/initial-deps-B7SS8XxM.js.gz +0 -0
  207. package/dist/web/assets/installed-skills-pane-B0a8IOZ0.js.br +0 -0
  208. package/dist/web/assets/installed-skills-pane-B0a8IOZ0.js.gz +0 -0
  209. package/dist/web/assets/lazy-message-response-Q7-W7qvB.js +0 -2
  210. package/dist/web/assets/lazy-message-response-Q7-W7qvB.js.br +0 -0
  211. package/dist/web/assets/lazy-message-response-Q7-W7qvB.js.gz +0 -0
  212. package/dist/web/assets/markdown-BYOwaDjH.js +0 -1
  213. package/dist/web/assets/markdown-BYOwaDjH.js.br +0 -0
  214. package/dist/web/assets/markdown-BYOwaDjH.js.gz +0 -0
  215. package/dist/web/assets/mcp-management-pane-BaRHPwX2.js.br +0 -0
  216. package/dist/web/assets/mcp-management-pane-BaRHPwX2.js.gz +0 -0
  217. package/dist/web/assets/mdx-DQZ5AkYe.js +0 -1
  218. package/dist/web/assets/mdx-DQZ5AkYe.js.br +0 -0
  219. package/dist/web/assets/mdx-DQZ5AkYe.js.gz +0 -0
  220. package/dist/web/assets/mermaid-GHXKKRXX-DywTXJ81.js +0 -1
  221. package/dist/web/assets/mermaid-GHXKKRXX-DywTXJ81.js.br +0 -0
  222. package/dist/web/assets/mermaid-GHXKKRXX-DywTXJ81.js.gz +0 -0
  223. package/dist/web/assets/message-assistant-directive-CaNrh5lx.js.br +0 -0
  224. package/dist/web/assets/message-assistant-directive-CaNrh5lx.js.gz +0 -0
  225. package/dist/web/assets/message-response-WYZfuphQ.js.br +0 -0
  226. package/dist/web/assets/message-response-WYZfuphQ.js.gz +0 -0
  227. package/dist/web/assets/official-plugins-pane-KGXjJvv3.js.br +0 -0
  228. package/dist/web/assets/official-plugins-pane-KGXjJvv3.js.gz +0 -0
  229. package/dist/web/assets/patch-diff-viewer-D_Ts5rez.js.br +0 -0
  230. package/dist/web/assets/patch-diff-viewer-D_Ts5rez.js.gz +0 -0
  231. package/dist/web/assets/pdf-preview-D46KssiK.js.br +0 -0
  232. package/dist/web/assets/pdf-preview-D46KssiK.js.gz +0 -0
  233. package/dist/web/assets/personalization-settings-panel-CllzRqsG.js.br +0 -0
  234. package/dist/web/assets/personalization-settings-panel-CllzRqsG.js.gz +0 -0
  235. package/dist/web/assets/project-file-popup-page-CVnfABUU.js.br +0 -0
  236. package/dist/web/assets/project-file-popup-page-CVnfABUU.js.gz +0 -0
  237. package/dist/web/assets/project-source-panel-Dl6nuWfg.js +0 -2
  238. package/dist/web/assets/project-source-panel-Dl6nuWfg.js.br +0 -0
  239. package/dist/web/assets/project-source-panel-Dl6nuWfg.js.gz +0 -0
  240. package/dist/web/assets/prompt-input-Ceptl3B-.js.br +0 -0
  241. package/dist/web/assets/prompt-input-Ceptl3B-.js.gz +0 -0
  242. package/dist/web/assets/resources-en-CzuCDOU2.js +0 -1
  243. package/dist/web/assets/resources-en-CzuCDOU2.js.br +0 -0
  244. package/dist/web/assets/resources-en-CzuCDOU2.js.gz +0 -0
  245. package/dist/web/assets/scheduled-task-date-time-picker-CpT4cTpn.js.br +0 -0
  246. package/dist/web/assets/scheduled-task-date-time-picker-CpT4cTpn.js.gz +0 -0
  247. package/dist/web/assets/scheduled-tasks-container-CRV2di5K.js.br +0 -0
  248. package/dist/web/assets/scheduled-tasks-container-CRV2di5K.js.gz +0 -0
  249. package/dist/web/assets/scheduled-tasks-container-CVGTy7-W.css +0 -1
  250. package/dist/web/assets/scheduled-tasks-container-CVGTy7-W.css.br +0 -0
  251. package/dist/web/assets/scheduled-tasks-container-CVGTy7-W.css.gz +0 -0
  252. package/dist/web/assets/shiki-bundle-C942xz2H.js.br +0 -2
  253. package/dist/web/assets/shiki-bundle-C942xz2H.js.gz +0 -0
  254. package/dist/web/assets/skills-market-container--8qzUyrx.js.br +0 -0
  255. package/dist/web/assets/skills-market-container--8qzUyrx.js.gz +0 -0
  256. package/dist/web/assets/split-workspace-menu-content-CAL4JQt9.js.br +0 -5
  257. package/dist/web/assets/split-workspace-menu-content-CAL4JQt9.js.gz +0 -0
  258. package/dist/web/assets/third-party-marketplace-pane-Can5ly44.js.br +0 -0
  259. package/dist/web/assets/third-party-marketplace-pane-Can5ly44.js.gz +0 -0
  260. package/dist/web/assets/workbench-inspector-changes-D2ZiHtIT.js +0 -1
  261. package/dist/web/assets/workbench-inspector-changes-D2ZiHtIT.js.br +0 -0
  262. package/dist/web/assets/workbench-inspector-changes-D2ZiHtIT.js.gz +0 -0
  263. package/dist/web/assets/workbench-pet-canvas-DuBL3mip.js.br +0 -0
  264. package/dist/web/assets/workbench-pet-canvas-DuBL3mip.js.gz +0 -0
  265. package/dist/web/assets/workbench-shell-CfN-sr8U.js +0 -16
  266. package/dist/web/assets/workbench-shell-CfN-sr8U.js.br +0 -0
  267. package/dist/web/assets/workbench-shell-CfN-sr8U.js.gz +0 -0
@@ -1 +0,0 @@
1
- import{Gt as e,It as t,Pt as n,Rt as r,qt as i}from"./initial-deps-B7SS8XxM.js";import{t as a}from"./scheduled-tasks-BBUd86IL.js";var o={assistantDirectives:{followup:`Add to composer`,"git-stage":`Staging receipt`,"git-commit":`Commit receipt`,"git-create-branch":`Branch receipt`,"git-push":`Push receipt`,"git-create-pr":`PR receipt`,"git-create-pr-draft":`Draft PR receipt`},imagePreview:{actualSize:`Original size`,fit:`Fit to container`,loadError:`Unable to preview image`,loading:`Loading image`,zoomIn:`Zoom in`,zoomOut:`Zoom out`},access:{checking:`Checking access`,codeLabel:`Access password`,loadError:`Unable to check access`,pair:`Pair`,pairing:`Pairing`,pairingDescription:`Enter the access password configured or shown when Codexly started.`,pairingError:`Unable to pair. Check the access password and try again`,pairingTitle:`Connect to a trusted LAN session`},actions:{backToWorkbench:`Back to workbench`,retry:`Retry`},app:{actionFailed:`Action failed`,actionSucceeded:`Action completed`,loadingProjects:`Loading projects`,noProjects:`No projects added`,notificationRegion:`Notifications`},errors:{taskDeletionBlockedByForks:`This task can’t be deleted because forked tasks still use its history. You can archive it, or delete the related forked tasks first and try again.`,notFoundDescription:`This address does not match a registered application route.`,notFoundTitle:`Page not found`,routeErrorLabel:`Route error`,routeErrorTitle:`Failed to load page`,runtimeUnavailableDescription:`First run <command>codex login</command> in the official Codex CLI, then retry after signing in.`,runtimeUnavailableTitle:`Codex Runtime unavailable`},language:{english:`English`,simplifiedChinese:`Simplified Chinese`}},s={asyncQuestions:{deliveryPending:`Answer delivery is unconfirmed. Check task progress before sending again.`,pending:`Pending questions`,pendingCount:`Pending · {{count}} groups`,previous:`Previous questions`,next:`Next questions`,collapse:`Collapse questions`,expand:`Expand questions`,close:`Close questions`,other:`Other answer`,answer:`Answer: {{question}}`,send:`Send answers`,sent:`Sent`},agentComponents:{addFile:`Add file`,addImage:`Add image`,addImageOrFile:`Add image or file`,currentDevice:`Current device`,deploymentHost:`Deployment host`,approval:`Approval`,approvalAccepted:`Request allowed`,approvalRejected:`Request denied`,approvalRequest:`{{title}} request`,codeComments:`{{count}} code comments`,contextPercent:`{{percentage}}% of context used`,contextSummary:`{{percentage}}% of context used`,contextUnknown:`Context usage unavailable`,contextWaiting:`Waiting for context usage from the model`,copied:`Copied`,copyCode:`Copy code`,copyOutput:`Copy command output`,copiedCode:`Code copied`,copiedOutput:`Command output copied`,fileTooLarge:`{{name}} exceeds the size limit`,folderCollapse:`Collapse folder {{name}}`,folderExpand:`Expand folder {{name}}`,invalidFileType:`{{name}} has an unsupported file type`,nextBranch:`Next response branch`,previousBranch:`Previous response branch`,removeAttachment:`Remove {{name}}`,scrollToBottom:`Scroll to bottom`,status:{completed:`Completed`,error:`Failed`,inProgress:`In progress`,pending:`Pending`,denied:`Denied`,responded:`Responded`,running:`Running`,waitingApproval:`Awaiting approval`},streamingOutput:`Receiving command output`,tooManyImages:`You can add up to {{count}} images`,totalAttachmentSizeExceeded:`Attachments exceed the total size limit`,totalImageSizeExceeded:`Images exceed the total size limit`,toolError:`Error`,toolInput:`Parameters`,toolResult:`Result`},errors:{addProject:`Failed to add project`,deleteProject:`Failed to delete project`,renameProject:`Failed to rename project`,reorderProject:`Failed to save project order`,reorderProjectChanged:`The project list changed. Try reordering again.`,stopTerminal:`Failed to stop terminal`},inspector:{attachmentDetail:`Attachment`,changeIndicator:`{{path}}, {{additions}} additions, {{removals}} deletions`,changes:`Changes`,closeFile:`Close file`,commit:`Commit`,context:`Context`,contextSources:`Context sources`,runtimeWarnings:`Runtime warnings`,emptyFolder:`Empty folder`,fileTree:`Project files`,file:`File`,gitChanges:`Uncommitted changes`,gitChangedFilesCount:`{{count}} files`,gitChangesRetrying:`Git change refresh failed. Retrying automatically`,gitLoading:`Loading Git changes...`,goal:`Goal`,goalClear:`Clear goal`,goalDuration:`{{minutes}}m {{seconds}}s`,goalMutationFailed:`Unable to update the goal. Try again.`,goalPause:`Pause goal`,goalResume:`Resume goal`,goalSeconds:`{{count}}s`,goalStatus:{active:`Active`,blocked:`Blocked`,budget_limited:`Budget exhausted`,complete:`Complete`,paused:`Paused`,usage_limited:`Usage limited`},goalTokenBudget:`{{used}} / {{budget}} tokens`,goalTokens:`{{used}} tokens used`,history:`History`,loading:`Loading...`,mcpEnabled:`MCP servers for this task`,mcpReload:`Reload MCP servers`,mcpReloading:`Reloading MCP servers`,mcpStatus:{authenticationRequired:`Authentication required`,cancelled:`Cancelled`,connected:`Connected`,disabled:`Disabled`,failed:`Startup failed`,notStarted:`Not started`,starting:`Starting`,unknown:`Unknown`},project:`Project`,mcpToolCount:`{{count}} tools`,openFailed:`The selected application could not open the target`,plan:`Plan`,planStatus:{completed:`Completed`,in_progress:`In progress`,pending:`Pending`},projectFilesEmpty:`This project has no files to display`,projectFilesError:`Failed to load project files`,projectFilesLoading:`Loading project files...`,readFolder:`Loading folder {{name}}`,readFolderError:`Failed to load folder {{name}}`,reading:`Loading`,refreshFolder:`Reload folder {{name}}`,refreshGit:`Refresh Git changes`,reviewChanges:`Review {{count}} uncommitted changes`,refreshProject:`Refresh project {{name}}`,refreshProjectFiles:`Reload project files`,commitChanges:`Commit {{count}} uncommitted changes`,source:`Sources`,showMore:`Show more`,sourceRole:{admin:`Admin`,repo:`Project`,system:`System`,user:`User`},subagents:`Subagents`,subagentCount:`{{count}} subagents`,subagentOutput:`View output from subagent {{nickname}}`,terminalError:`Failed to load running terminals`,terminalLoading:`Loading terminals...`,terminalRunning:`Terminal running`,terminalStop:`Stop terminal {{command}}`,terminalStopping:`Stopping {{command}}`,terminalStopRetry:`Failed to stop terminal. Try again.`,terminals:`Running terminals`,title:`Runtime environment`},gitHistory:{unpushed:`Unpushed`,branch:`Current branch: {{branch}}`,branchLoading:`Current branch: Loading...`,commits:`Commit history`,copyAuthor:`Copy author`,copyHash:`Copy full commit hash`,copyMenuLabel:`Copy commit details`,copyMessage:`Copy commit message`,empty:`This repository has no commits`,diffLoadError:`Failed to load this file's commit Diff`,diffLoading:`Loading file Diff...`,diffTruncated:`This Diff is too long; showing the first 512 KiB`,filesEmpty:`This commit has no files to review`,filesLoadError:`Failed to load commit files`,filesLoading:`Loading commit files...`,end:`All commits loaded`,loadError:`Failed to load Git history`,loadMore:`Load more`,loadMoreFiles:`Load more files`,loading:`Loading Git history...`,loadingMore:`Loading...`,loadingMoreFiles:`Loading files...`,repositories:`Repositories`,retry:`Retry`},notification:{completed:`Task completed`,failed:`Task failed`,failedWithMessage:`Task failed: {{message}}`,interrupted:`Task was interrupted and cannot continue`,waitingApproval:`Task is waiting for approval`,waitingInput:`Task is waiting for input`},taskTitle:{replying:`Replying`},reorder:{cancelled:`Project reordering cancelled`,moved:`{{name}} moved to position {{position}}`,projectFallback:`Project`,started:`Project reordering started. Drag and release to save the position.`,title:`Drag to reorder, or press Alt + Arrow Up/Down`},subagent:{count:`{{count}} subagents`,defaultName:`Subagent {{index}}`,operationCompleted:`Subagent operation completed`,operationFailed:`{{count}} subagents failed`,operationRunning:`{{count}} subagents running`,operationSucceeded:`{{count}} subagents completed`,operationTitles:{close:`Close subagent`,resume:`Resume subagent`,sendInput:`Send message to subagent`,spawn:`Start subagent`,wait:`Wait for subagent`},orchestrating:`Coordinating subagents`},timeline:{approvalReview:{action:{command:`Command`,file_change:`File change`,mcp_tool_call:`MCP tool`,network_access:`Network access`,permissions:`Permission request`},actionDetail:`{{action}}: {{detail}}`,authorization:`User authorization: {{level}}`,authorizationLevel:{high:`High`,low:`Low`,medium:`Medium`,unknown:`Unknown`},rationale:`Review rationale: {{rationale}}`,reviewing:`Running automatic approval review`,risk:`Risk: {{level}}`,riskLevel:{critical:`Critical`,high:`High`,low:`Low`,medium:`Medium`},status:{aborted:`Aborted`,approved:`Approved`,denied:`Denied`,in_progress:`Reviewing`,timed_out:`Timed out`},title:`Automatic approval: {{status}}`},aiRunning:`AI response is running`,aiRunningOperation:`AI response is running: {{operation}}`,attachments:`Message attachments`,changedFiles:`This response changed {{count}} files`,collapseFiles:`Collapse file list`,collapseProcess:`Collapse process`,closeImagePreview:`Close image preview`,commandPending:`Running command`,conversation:`Conversation`,copied:`Copied`,copyMessage:`Copy message`,downloadAttachment:`Download attachment {{name}}`,openAttachment:`Open attachment {{name}}`,emptyAfter:`?`,emptyBefore:`What should we do in`,expandProcess:`Expand process`,fileChange:`{{operation}} {{name}}, {{additions}} additions, {{removals}} deletions, open Diff`,fileOperation:{create:`Created`,delete:`Deleted`,update:`Edited`},fork:`Fork task`,forkFailed:`Failed to fork task. Try again.`,forking:`Forking task`,loading:`Loading task history`,loadError:`Failed to load task history`,loadingOlder:`Loading earlier messages...`,loadingProcess:`Loading process details…`,loadMoreProcess:`Load earlier process details`,retryProcess:`Could not load process details. Retry`,loadOlder:`Load earlier messages`,loadOlderError:`Could not load earlier messages. Try again.`,jumpToMessage:`Jump to user message {{index}}`,moreFiles:`Show {{count}} more files`,noHistory:`This task has no history`,output:`Output`,outputOmitted:`Command output omitted {{bytes}} UTF-8 bytes and {{lines}} lines. Showing the beginning and end.`,outputRetained:`Older command output was removed to stay within the memory budget`,operationGroup:{collapse:`Collapse operation details: {{summary}}`,commandsOnly:`Commands complete: {{count}}`,expand:`Expand operation details: {{summary}}`,failed:`; {{count}} failed`,filesOnly:`Operations complete: {{count}} files changed`,filesSuffix:`, {{count}} files changed`,reasoningOnly:`Reasoning complete: {{count}} summaries`,reasoningSuffix:`, {{count}} reasoning summaries`,summary:`Operations complete: {{toolCount}} tool calls, {{commandCount}} commands`,toolsOnly:`Tool calls complete: {{count}}`},buildPlan:`Build`,plan:`Plan`,planGenerating:`Generating plan`,planReady:`Plan ready to build`,processing:`Processed`,quickNavigation:`User message quick navigation`,reconnecting:`Restoring live connection`,review:`Review`,reviewMode:`Review mode`,reviewPrompt:{baseBranch:`Review my changes against {{branch}}`,commit:`Review commit {{sha}}`,commitWithTitle:`Review commit {{sha}}: {{title}}`,custom:`Review the code using these instructions: {{instructions}}`,uncommitted:`Review my uncommitted changes`},running:`Running`,runningOperation:`Running {{operation}}`,selectProject:`Select a project for the new chat`,showImage:`View image {{name}}`,skillsUsed:`Skills used`,editedFiles:`Edited {{count}} files`,editingFiles:`Editing {{count}} files`,liveDiff:`Live file changes`,liveFileChange:`Editing {{name}}, {{additions}} additions, {{removals}} deletions`,notice:{guardian_warning:`Safety warning`,hook_status:`Hook status`,model_verification:`Model verification`,runtime_warning:`Runtime warning`,modelVerification:`Verifying model availability`,strict_review_required:`Strict review required`,strictReviewRequired:`Safety review was escalated; this action will continue after review`},reasoning:`Reasoning summary`,reasoningStreaming:`Reasoning`,runtimeStatus:{duration:`Completed in {{duration}} ms`,fasterModel:`A faster model is available: {{model}}`,hook:`Running hook {{eventName}}`,modelRerouted:`Rerouted from {{fromModel}} to {{toModel}}`,safetyBuffering:`Using safety buffering model {{model}}`}}},c={sectionKeywords:{appearance:`Color mode language notifications editor default open follow-up messages background wallpaper Bing custom blur overlay non-project temporary task folder storage location`,personalization:`Codex instructions AGENTS.md global memory MCP web search Git commit messages model prompt generation rules`,pets:`Enable pet selection`,provider:`API key Base URL models official custom`,agent:`Fast mode model reasoning approval file access sandbox web search output verbosity`,about:`Version update release notes diagnostics`},search:{label:`Search settings`,placeholder:`Search settings...`,clear:`Clear search`,empty:`No matching settings`},groups:{personal:`Personal`,coding:`Coding`,app:`Application`},about:{available:`Version {{version}} is available`,check:`Check for updates`,checking:`Checking`,codexlyVersion:`Codexly version`,codexVersion:`Codex version`,current:`Codexly is up to date`,github:`Project GitHub`,loading:`Checking for updates`,progress:{backingUp:`Backing up the current version`,checking:`Confirming the latest version`,completed:`Update installed`,downloading:`Downloading the update`,installing:`Installing the new version`,label:`Codexly update progress`,rollingBack:`Installation failed. Restoring the previous version`},restartRequired:`Update installed. Restart Codexly to apply it.`,retry:`Check again`,releaseNotes:`Release notes`,releaseNotesTitle:`{{version}} release notes`,releaseNotesUnavailable:`Release notes for this version are temporarily unavailable.`,update:`Software update`,updateTo:`Update to {{version}}`,updating:`Updating`},access:{currentSession:`Current browser`,loggingOut:`Logging out`,logout:`Log out of LAN access`,sessionDescription:`This browser is paired with the current Codexly LAN session.`},actions:{backToApp:`Back to app`,cancel:`Cancel`,close:`Close`,closeDialog:`Close global settings`,closeReleaseNotes:`Close release notes`,save:`Save`,saving:`Saving`},appearance:{automatic:`Automatic`,automaticMode:`Automatic mode`,colorMode:`Color mode`,dark:`Dark`,darkMode:`Dark mode`,language:`Language`,light:`Light`,lightMode:`Light mode`,notifications:`Notifications`},approval:{autoReview:`Automatic review`,never:`Never ask`,onRequest:`On request`},background:{bing:`Bing wallpaper`,bingAria:`Bing daily wallpaper`,blur:`Wallpaper background blur`,blurLabel:`Background blur`,custom:`Custom`,customAria:`Custom workbench background`,delete:`Delete image`,deleteImage:`Delete {{name}}`,galleryLabel:`Custom background images`,invalidImage:`Choose a PNG, JPEG, WebP, or GIF image up to 20 MiB.`,label:`Workbench background`,none:`None`,noneAria:`No workbench background`,overlayOpacity:`Wallpaper overlay opacity`,overlayOpacityLabel:`Overlay opacity`,previewAlt:`Custom workbench background preview`,selectImage:`Use {{name}} as the workbench background`,upload:`Upload image`,uploadInput:`Upload custom background image`,uploadRequired:`Image required`},effort:{high:`High`,low:`Low`,medium:`Medium`,minimal:`Minimal`,xhigh:`Extra high`},errors:{appInfo:`Unable to load version information`,load:`Unable to load global settings`,logout:`Unable to log out of LAN access`,save:`Unable to save global settings`,update:`Update failed. Try again.`,updateCheck:`Unable to check for updates`},fields:{approvalPolicy:`Approval policy`,commitMessagePrompt:`Commit message prompt`,commitModel:`Commit model`,defaultOpenWith:`Default open with`,fastMode:`Fast mode`,followUpMessages:`Follow-up messages`,model:`Model`,prompt:`Prompt`,reasoningEffort:`Reasoning effort`,sandbox:`Sandbox`},followUp:{queue:`Queue`,steer:`Steer`},integration:{automatic:`Select automatically`},languages:{en:`English`,zhCN:`简体中文`},loading:`Loading global settings`,navigationLabel:`Settings categories`,notifications:{disabled:`Off`,enabled:`On`},provider:{apiKey:`API key (optional)`,baseUrl:`API base URL`,cancelLogin:`Cancel login`,connect:`Connect`,connected:`Connected`,custom:`Custom API`,disconnected:`Not connected`,errors:{connect:`Unable to connect to the custom API`,load:`Unable to read model service status`,login:`Unable to start official login`},loading:`Reading model service status`,login:`Sign in with ChatGPT`,logout:`Log out`,addModel:`Add model`,modelId:`Model ID`,modelName:`Model name`,mode:`Model service mode`,models:`Custom models (optional)`,official:`Official login`,reconnect:`Reconnect`,removeModel:`Remove model`,retry:`Retry`,title:`Connect a Codex model service`,waiting:`Waiting for browser login`},pets:{availability:{downloadable:`Download required`,ready:`Ready`},enabled:`Enable workbench pet`,errors:{load:`Unable to load pet assets. Try again.`},loading:`Loading pet assets`,refresh:`Refresh list`,selectionLabel:`Choose a workbench pet`},sandbox:{dangerFullAccess:`Full access`,readOnly:`Read only`,workspaceWrite:`Workspace write`},sections:{personalization:`Personalization`,about:`About`,access:`LAN access`,agent:`Agent configuration`,appearance:`General`,pets:`Workbench pet`,provider:`Model service`},title:`Global settings`},l={...i,...r,...e,allFiles:`All files`,commit:`Commit`,commitActions:`Choose commit action`,commitAndPush:`Commit and push`,commitAndPushComplete:`Commit and push completed`,commitAndPushSucceeded:`Committed and pushed successfully`,commitComplete:`Commit completed`,commitCompletePushFailed:`Commit completed, but push failed`,commitCompleteUpstreamMissing:`Commit completed; the current branch has no upstream`,commitMessage:`Commit message`,commitSucceeded:`Committed successfully`,changes:`Changes`,generateMessage:`Generate message content`,messagePlaceholder:`Enter a commit message`,repository:`Git project`,repositoryLoading:`Loading Git project`,repositoryUnavailable:`No committable Git project was found`,selectAllFiles:`Select all files`,selectFiles:`Select files`,selectRepository:`Select Git project`,selectionLabel:`Select files, {{selected}} of {{total}} selected`,staged:`Staged`,totalFiles_one:`{{count}} total`,totalFiles_other:`{{count}} total`,unstaged:`Unstaged`},u={common:o,conversation:s,settings:c,workbench:{textEditor:t,split:n,globalSearch:{all:`All`,archived:`Archived tasks`,back:`Back to results`,categories:`Search scope`,clear:`Clear search`,close:`Close search`,empty:`No matching results`,error:`Search failed. Please retry.`,fileHint:`Search file names and paths`,fileLimit:`Showing the first 50 files. Refine your search.`,files:`Project files`,hint:`Search all projects and temporary tasks`,history:`History`,historyHint:`Search user messages and final assistant replies`,keyboard:`↑ ↓ Select · Enter Open · Esc Close`,latest:`Back to latest messages`,loading:`Searching…`,location:`Search match`,next:`Next page`,occurrences:`Matching messages`,openSystem:`Open with default application`,openTask:`Open task`,partial:`Some project file searches failed`,placeholder:`Search tasks, messages, project files…`,previous:`Previous page`,resultCount:`{{count}} results`,retry:`Retry`,tasks:`Tasks`,temporary:`Temporary tasks`,title:`Global search`,unavailable:`This message is no longer available. Search again.`},scheduledTasks:a,skillsMarket:{codexCompatible:`Codex compatible`,compatible:`Verified`,current:`Up to date`,downloads:`{{count}} downloads`,emptyInstalled:`No installed skills found`,emptyMarket:`No compatible skills found`,emptyMcp:`No MCP servers configured`,emptyPlugins:`No official plugins available`,emptyInstalledPlugins:`No official plugins installed`,emptyAvailablePlugins:`No official plugins available to install`,authorize:`Authorize`,closeDetails:`Close plugin details`,closeSkillDetails:`Close skill details`,installComplete:`Skill installed`,installGlobal:`Install globally`,installProject:`Install in project`,installPlugin:`Install plugin`,installed:`Installed`,installedPlugins:`Installed`,availablePlugins:`Not installed`,installedCount:`{{count}} skills installed`,loadError:`Failed to load skill information`,loadMore:`Load more`,loading:`Loading skills`,loadingDetail:`Loading details`,loadingExtension:`Loading extension`,loadingMarket:`Loading market`,loadingMcp:`Loading MCP`,loadingPlugins:`Loading official plugins`,newSessionRequired:`Plugin installed. Start a new session to load its capabilities.`,marketError:`The market is temporarily unavailable`,mcpCount:`{{count}} MCP servers`,mcpEnabled:`Running`,mcpError:`Failed to load MCP configuration`,mcpStopped:`Stopped`,openMarketplace:`Open market page`,openSkill:`Show {{name}} in file manager`,official:`Official by OpenAI`,officialPublisher:`OpenAI official catalog`,projectTarget:`Install project`,refresh:`Refresh skills`,refreshMcp:`Refresh MCP`,refreshPlugins:`Refresh official plugins`,scan:`Scan: {{status}}`,scope:{admin:`Administrator`,repo:`Project`,system:`System`,user:`Global`},search:`Search market`,searchPlugins:`Search official plugins`,sectionsLabel:`Extension type`,sort:`Market sorting`,sortDownloads:`Most downloaded`,sortRecommended:`Recommended`,sortUpdated:`Recently updated`,stars:`{{count}} stars`,tabs:{marketplace:`Third-party market`,mcp:`MCP`,plugins:`Official plugins`,skills:`Skills`},title:`Extension Center`,toggle:`Enable or disable {{name}}`,toggleMcp:`Start or stop {{name}}`,update:`Update`,uninstallPlugin:`Uninstall plugin`,pluginSyncError:`Plugin synchronization failed. Please retry.`,pluginSyncPartial:`Some plugins failed to synchronize. Please retry.`,pluginError:`Official plugins are temporarily unavailable`,pluginFallbackDescription:`A Codex extension from the official catalog`,version:`Version {{version}}`},pet:{activeTasks:`Active tasks`,activitySummary:`{{count}} active tasks, {{waiting}} waiting for attention`,move:`Move workbench pet {{name}}`,openTask:`Open task {{name}}, {{status}}`,status:{completed:`Task completed`,running:`Task running`,waiting:`Task waiting for attention`}},actions:{cancel:`Cancel`,close:`Close`,retry:`Retry`,save:`Save`},commit:l,diff:{previewUnavailable:`Text differences cannot be previewed for this file`,changedFiles:`Changed files`,changedFilesNavigation:`Changed files navigation`,close:`Close file Diff`,closeReview:`Close file review`,collapseChangedFilesNavigation:`Collapse changed files navigation`,expandChangedFilesNavigation:`Expand changed files navigation`,fileStats:`{{path}}, {{additions}} lines added, {{removals}} lines removed`,loading:`Loading Diff`,nextFile:`Review next file`,previousFile:`Review previous file`,reviewContent:`File review content`,reviewTitle:`File review`,showFileList:`Switch to file list`,showFileTree:`Switch to file tree`},composer:{addedAttachments:`Added attachments`,applyTodo:`Apply todo`,applyTodoDescription:`Applying this todo will replace the current composer content. Continue?`,applyTodoTitle:`Replace current input?`,approvalMode:`Approval policy`,attachmentCount_one:`{{count}} attachment`,attachmentCount_other:`{{count}} attachments`,attachmentReadFailed:`Unable to read attachment`,attachmentUploadFailed:`Unable to upload attachment`,baseBranchReview:`Review against a base branch`,buildPlanPrompt:`Start implementing the plan above.`,cancelGoalMode:`Cancel Goal mode`,cancelPlanMode:`Cancel plan mode`,cancelQueued:`Cancel queued message: {{summary}}`,cancelQueuedTooltip:`Cancel queued message`,editQueued:`Edit queued message: {{summary}}`,editQueuedTooltip:`Edit queued message`,editingQueued:`Editing`,disableFastMode:`Disable fast mode`,enableFastMode:`Enable fast mode`,commandGroup:`Commands`,commandInput:`Command input`,commandNoMatch:`No matching Skill or command`,fileSearch:`Search project files`,fileSearchEmpty:`No matching project files`,fileSearchFailed:`Project file search failed`,fileSearchGroup:`Project files`,fileSearchLoading:`Searching project files`,deleteTodo:`Delete todo: {{summary}}`,compacting:`Compacting context`,gitBranchMissing:`No branch checked out`,branchSwitcherLabel:`Switch branch, current branch {{branch}}`,branchSwitcherMenu:`Switch branch`,branchSwitchFailed:`Unable to create or switch branches. Try again.`,branchName:`Branch name`,createBranch:`New branch`,createBranchDescription:`Create from the current branch and switch immediately`,createAndSwitchBranch:`Create and switch`,goalMode:`Goal`,goalStatus:{active:`Goal active`,blocked:`Goal blocked`,budget_limited:`Goal budget exhausted`,complete:`Goal complete`,paused:`Goal paused`,usage_limited:`Goal usage limited`},goalStatusLabel:`{{status}}: {{objective}}`,goalObjectiveRequired:`Goal mode requires an objective`,goalObjectiveTooLong:`The goal objective cannot exceed 4,000 characters`,goalStructuredInputUnsupported:`Goal mode does not support attachments or Skills; use text and @file paths instead`,initializingAgentsPrompt:`Inspect the current project and create or improve AGENTS.md in the project root with Codex project guidance, common commands, and verification requirements.`,landmark:`Message composer`,modelListFailed:`Failed to load model list`,modelLoading:`Loading models`,model:`Model`,modelSelect:`Select model`,modelSelectCurrent:`Select model: {{model}}`,moveQueuedDown:`Move queued message down: {{summary}}`,moveQueuedDownTooltip:`Move down`,moveQueuedUp:`Move queued message up: {{summary}}`,moveQueuedUpTooltip:`Move up`,noBaseBranch:`No base branch available`,noModels:`No models available`,openProjectFolder:`Open in system file manager`,operationFailed:`Operation failed. Please retry.`,placeholder:`Tell Codexly what you want to accomplish`,planMode:`Plan`,projectPath:`Project path`,queueMessage:`Queue message`,queuedMessages:`Queued messages`,reasonEffortSelect:`Select reasoning effort`,reasonEffortSelectCurrent:`Select reasoning effort: {{effort}}`,reasoningEffort:`Reasoning effort`,reviewBaseBranchGroup:`Select base branch`,reviewScopeGroup:`Select review scope`,reviewStarted:`Code review started`,reviewUncommitted:`Review uncommitted changes`,sandboxMode:`Sandbox mode`,saveAsTodo:`Save as todo`,saveTodoChanges:`Save todo changes`,saveTodoFailed:`Unable to save todo`,retryTodoLoad:`Reload todo`,todoMigrationError:`Some previous todos could not be imported. The original data is preserved. Check for expired attachments, then reload to retry.`,sendSteer:`Send steer`,steerNow:`Steer now: {{summary}}`,steerNowTooltip:`Send as a steer now`,stop:`Stop`,submit:`Submit`,taskInput:`Task input`,taskRunning:`Task is running`,uncommittedChangesMissing:`No uncommitted changes available`,waitingToSend:`Waiting to send`,todoCount:`Todos {{count}}`,todoHasChanges:`Unsaved changes`,todoList:`{{project}} todos`,followUpPlaceholder:`Enter follow-up instructions`},openMenu:{choose:`Choose how to open`,copyAbsolutePath:`Copy absolute path`,copyName:`Copy name`,copyRelativePath:`Copy relative path`,detect:`Detecting available apps`,delete:`Delete`,download:`Download file`,moreActions:`More actions`,none:`No apps available`,open:`Open`,openContainingFolder:`Open containing folder`,openInNewWindow:`Open in new window`,openIn:`Open in {{app}}`,reference:`Reference`,rename:`Rename`,systemDefault:`System default app`,targetLabel:`Actions for {{path}}`},projectFile:{deleteDescription:{directory:`This will delete the directory and its contents from disk. This cannot be undone.`,file:`This will delete the file from disk. This cannot be undone.`},deleteTitle:`Delete {{name}}?`,name:`Name`,renameDescription:{directory:`This will change the directory name on disk.`,file:`This will change the file name on disk.`},renameTitle:`Rename`},promptCommand:{availability:{noTask:`Open a task first`,notReady:`Runtime capabilities are not ready`,unsupported:`The current Runtime does not support this command`},compact:{description:`Compact the context for this task`,label:`Compact`},fork:{description:`Copy the current task and its conversation history`,label:`Fork`},goal:{description:`Set a persistent goal and keep working until it is complete`,label:`Goal`},initialize:{description:`Create an AGENTS.md file with Codex guidance`,label:`Initialize`},plan:{description:`Analyze the task and propose an implementation plan first`,label:`Plan`},review:{description:`Review uncommitted changes or compare against a branch`,label:`Code review`}},pending:{allow:`Allow`,allowTurn:`Allow for this turn`,additionalPermissions:`Additional permissions`,allowSession:`Allow for this session`,answerFailed:`Unable to submit the answer. Please retry.`,commandApproval:`Command approval`,cancel:`Cancel`,deny:`Deny`,expired:`Request expired`,fileChangeApproval:`File change approval`,fileChangeFallback:`File change awaiting confirmation`,inputRequired:`Your input is required`,mcpForm:`{{server}} input request`,mcpRequest:`{{server}} confirmation`,networkApproval:`Network access approval`,networkPermission:`Network access`,other:`Other`,otherAnswer:`{{header}} other answer`,openUrl:`Open link`,previousPending:`Waiting for the previous item`,processed:`Request processed`,permissionAccess:{deny:`Deny`,read:`Read`,write:`Write`},permissionApproval:`Permission approval`,permissionGlobDepth:`Glob scan depth: {{depth}}`,permissionMinimal:`Minimal filesystem`,permissionProjectRoots:`Project roots`,permissionRoot:`Filesystem root`,permissionTmpdir:`System temporary directory`,permissionUnknownPath:`Unknown path`,fileSystemPermission:`Filesystem`,requestFailed:`Unable to process the request. Please retry.`,terminalInputApproval:`Terminal input approval`,submitAnswers:`Submit answers`,unsupportedForm:`This form cannot be displayed safely. Decline or cancel the request.`},projectDialog:{pdfOpen:`Open PDF`,pdfUnavailable:`Inline PDF preview is unavailable. Open the file to view it.`,closePdfPreview:`Close PDF preview`,closeImagePreview:`Close image preview`,closeSource:`Close source file`,delete:`Remove`,loadImageError:`Unable to load image`,loadMoreSourceError:`Unable to load more content`,loadSourceError:`Unable to load source file`,loadingMoreSource:`Loading more content`,loadingSource:`Loading source file`,name:`Project name`,previewMarkdown:`Preview Markdown`,remove:`Remove project`,removeDescription:`Remove {{name}} from Codexly? Files on disk will not be deleted.`,rename:`Rename project`,renameDescription:`This changes only the sidebar display name, not the folder name on disk.`,showDiff:`View Diff`,showRawContent:`Show raw content`,sourcePartial:`Partial content`},newProject:{title:`New project`,parent:`Parent folder`,name:`Folder name`,path:`Project path`,choose:`Choose…`,cancel:`Cancel`,create:`Create and add`,creating:`Working`,invalidName:`Enter a single folder name without path separators, reserved names, or trailing spaces or periods`,loadError:`Could not read the parent folder. Retry or choose another folder.`,createError:`Could not create the folder. Check the parent folder and write permissions.`,addError:`The folder is ready, but adding the project failed. Retry adding.`,existsDirectory:`A folder with this name already exists. Add it or choose another name.`,existsFile:`A file with this name already exists. Choose another name.`,addExisting:`Add existing folder`,retryAdd:`Retry adding`,retry:`Retry`,loading:`Loading folders`,selectParent:`Choose parent folder`,useFolder:`Use this folder`,back:`Back`,existing:`Add existing project`,host:`Server: {{host}}`,localHost:`This device`},projectPicker:{primaryRoot:`Primary`,primaryRootHint:`The first selected folder becomes the primary folder`,primaryRootSummary:`{{path}} (Primary)`,rootSeparator:`, `,selectedRoots:`{{count}} project folders selected`,selectRoot:`Select {{name}}`,add:`Add this folder`,addError:`Unable to add the selected folder`,adding:`Adding`,description:`Browse folders on the device running Codexly`,directPathReady:`Directory verified and ready to add`,empty:`This folder has no subfolders`,filesystemRoot:`Select drive`,goToPath:`Go to path`,hideHidden:`Hide hidden folders`,loadBranchError:`Unable to read this folder`,loadError:`Unable to read folders`,loading:`Reading folders`,loadingBranch:`Reading`,noSelection:`No folder selected`,parent:`Go to parent folder`,pathLabel:`Absolute directory path`,pathPlaceholder:`Enter an absolute directory path`,resolvingPath:`Locating home directory`,title:`Select project folder`,showHidden:`Show hidden folders`,treeLabel:`Project folder tree`},hostAttachmentPicker:{add:`Add selected file`,description:`Browse files on the device running Codexly`,empty:`This folder has no supported files`,filesystemRoot:`Select drive`,fileTitle:`Select deployment host file`,goToPath:`Go to path`,hideHidden:`Hide hidden files`,imageTitle:`Select deployment host image`,importError:`Unable to add the selected file`,importing:`Adding`,loadBranchError:`Unable to read this folder`,loadError:`Unable to read files`,loading:`Reading files`,loadingBranch:`Reading`,noSelection:`No file selected`,parent:`Go to parent folder`,pathLabel:`Absolute directory path`,pathPlaceholder:`Enter an absolute directory path`,resolvingPath:`Locating home directory`,showHidden:`Show hidden files`,treeLabel:`Deployment host file tree`},subagentOutput:{close:`Close subagent output`,error:`Unable to load subagent output`,loading:`Loading subagent output`,reconnecting:`Restoring the live subagent connection`,task:`Subagent {{taskId}}`,title:`Subagent output`},shell:{selectProjectRoot:`Select project folder`,closeInspector:`Close context panel`,closeSidebar:`Close project sidebar`,collapseInspector:`Collapse context panel`,collapseSidebar:`Collapse project sidebar`,expandInspector:`Expand context panel`,expandSidebar:`Expand project sidebar`,newChat:`New chat`,renameTask:`Rename task {{title}}`,resizeInspector:`Resize context panel`,resizeSidebar:`Resize project sidebar`,timeline:`Task timeline`,temporaryTask:`Chat`},skillEditor:{tokenLabel:`Skill {{name}}, serialized text {{text}}`},archivedTasks:{confirmDelete:`Delete permanently`,confirmDeleteAll:`Delete all permanently`,delete:`Delete permanently`,deleteAll:`Delete all`,deleteAllDescription:`All archived tasks in "{{project}}" and their associated history will be permanently deleted. This cannot be undone.`,deleteAllTitle:`Permanently delete all archived tasks`,deleteAllPartialFailure:`Deleted {{deletedCount}} tasks; {{failedCount}} could not be deleted. Refresh and retry.`,deleteDescription:`"{{task}}" and its associated history will be permanently deleted. This cannot be undone.`,deleteTask:`Permanently delete task {{task}}`,deleteTitle:`Permanently delete task`,empty:`No archived tasks`,loadError:`Unable to load archived tasks`,loading:`Loading archived tasks`,next:`Next page`,page:`Page {{page}}`,previous:`Previous page`,restore:`Restore`,restoreTask:`Restore task {{task}}`,search:`Search archived tasks`,title:`Archived tasks for {{project}}`,updatedAt:`Updated {{date}}`},sidebar:{addProject:`Add project`,agentNavigation:`Agent navigation`,archive:`Archive`,archived:`Archived`,close:`Close project sidebar`,closeSearch:`Close task search`,collapse:`Show less`,connection:{connecting:`Connecting`,offline:`Offline`,online:`Online`,reconnecting:`Reconnecting`},aboutStatus:`About, Codexly {{version}}{{update}}, terminal connection status: {{status}}`,createInProject:`Create a task in {{project}}`,createWorktreeTask:`Create a worktree task in {{project}}`,createWorktreeTaskConfirm:`Create worktree and task`,worktreeTaskDescription:`Create an isolated worktree from the current checkout and start a task in it`,worktreeTaskTitle:`Create worktree task`,deletePermanently:`Delete permanently`,deleteTaskDescription:`"{{task}}" and its associated history will be permanently deleted. This cannot be undone.`,deleteTaskTitle:`Permanently delete task`,errorAddProject:`Unable to add project`,errorArchiveTask:`Unable to archive task`,errorLoadTasks:`Unable to load tasks`,errorPinTask:`Unable to update pin status`,errorProjectOrder:`Unable to save project order`,errorRenameTask:`Unable to rename task`,errorSearchTasks:`Unable to search tasks`,expand:`Show more`,expandLoading:`Loading more`,expandRetry:`Retry loading more`,newTask:`New task`,landmark:`Project sidebar`,noMatchingTasks:`No matching tasks`,noTasks:`No tasks yet`,noTemporaryTasks:`No chats yet`,openProjectActions:`Open actions for {{project}}`,openTaskActions:`Open actions for {{task}}`,pin:`Pin`,pinned:`Pinned`,runningGroup:`Running`,approvalCount:`Awaiting confirmation {{count}}`,showAllTasks:`View all {{count}} tasks`,closeTaskList:`Close task list`,projects:`Projects`,projectActions:`Actions for {{project}}`,remove:`Remove`,rename:`Rename`,search:`Search tasks`,searchAll:`Searching all tasks`,settings:`Settings`,updateAvailableLabel:`, update available`,taskActions:`Actions for {{task}}`,taskApproval:`Task awaiting approval`,taskComplete:`AI response completed`,taskIncomplete:`AI response incomplete`,taskLoading:`Loading tasks`,taskRunning:`Task running`,temporaryTasks:`Chats`,toggleProject:`Toggle project {{project}}`,unpin:`Unpin`},taskBoard:{allProjects:`All projects`,approval:`Awaiting approval`,completed:`Completed`,completedLoadError:`Failed to load completed tasks`,copyTaskId:`Copy task ID: {{id}}`,copyTaskIdHint:`Copy task ID`,emptyApproval:`No tasks awaiting approval`,emptyCompleted:`No completed tasks`,emptyRunning:`No running tasks`,emptyTodos:`No todos`,label:`Task board`,loading:`Loading task board`,loadingMore:`Loading more tasks`,newCompleted:`Newly completed`,openTask:`Open task: {{task}}`,openTodo:`Open todo: {{todo}}`,pinned:`Pinned`,projectFilter:`Project filter`,retryCompleted:`Reload completed tasks`,running:`Running`,runningFor:`Running for {{duration}}`,title:`Task board`,todo:`Todo`},taskDialog:{name:`Task name`,rename:`Rename task`}}};export{u as englishResources};
@@ -1 +0,0 @@
1
- .scheduled-task-filters{background:var(--ui-color-control);border-radius:10px;gap:4px;margin:0 20px;padding:4px;display:flex}.scheduled-task-filters button{min-height:32px;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-label);white-space:nowrap;border-radius:7px;flex:1}.scheduled-task-filters button[aria-pressed=true]{color:var(--ui-color-text);background:var(--ui-color-content);font-weight:var(--ui-font-weight-semibold);box-shadow:0 1px 3px #0000000d}.scheduled-task-filters button:focus-visible,.scheduled-task-row__content:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:-2px}.scheduled-task-editor__actions{align-items:center;gap:8px;display:flex}.scheduled-task-status{color:var(--ui-color-text-muted);font-size:var(--ui-font-size-label);align-items:center;gap:7px;display:flex}.scheduled-task-status>span{background:var(--ui-color-text-subtle);border-radius:50%;width:6px;height:6px}.scheduled-task-status[data-enabled=true]>span{background:var(--ui-color-accent)}.scheduled-task-editor__body{max-width:860px;margin:0 auto;padding:26px 32px 0}.scheduled-task-title{display:block}.scheduled-task-title input{border:1px solid var(--ui-color-separator-strong);height:42px;box-shadow:none;font-size:18px;font-weight:var(--ui-font-weight-semibold);letter-spacing:normal;background:0 0;border-radius:10px;padding:0 12px}.scheduled-task-title input::placeholder{color:var(--ui-color-text-subtle);font-size:var(--ui-font-size-body-small);opacity:1;font-weight:400}.scheduled-task-title input:focus-visible{box-shadow:var(--ui-shadow-focus)}.scheduled-task-section{margin-top:28px}.scheduled-task-section h3,.scheduled-task-runs h3{color:var(--ui-color-text-muted);font-size:var(--ui-font-size-label);font-weight:var(--ui-font-weight-medium);align-items:center;gap:8px;margin-bottom:12px;display:flex}.scheduled-task-section h3>svg,.scheduled-task-runs h3>svg{width:15px;height:15px}.scheduled-task-section h3>span,.scheduled-task-runs h3>span{color:var(--ui-color-text-subtle);font-size:var(--ui-font-size-caption);margin-left:auto;font-weight:400}.scheduled-task-info{min-height:58px;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-label);justify-content:space-between;align-items:center;gap:16px;display:flex}.scheduled-task-info>:last-child{color:var(--ui-color-text)}.scheduled-task-next-run{color:var(--ui-color-text-subtle);font-size:var(--ui-font-size-caption);flex-wrap:wrap;gap:8px;margin-top:10px;padding:0 4px;display:flex}.scheduled-task-next-run>span{color:var(--ui-color-text-muted);font-variant-numeric:tabular-nums}.scheduled-task-welcome{align-content:center;justify-items:center;padding:32px}.scheduled-task-welcome>svg{border:1px solid var(--ui-color-separator);width:48px;height:48px;color:var(--ui-color-accent);background:var(--ui-color-panel);border-radius:14px;margin-bottom:14px;padding:10px}.scheduled-task-welcome h2{color:var(--ui-color-text);font-size:22px;font-weight:var(--ui-font-weight-semibold)}.scheduled-task-welcome p{max-width:340px;margin:4px 0 20px;line-height:1.8}.scheduled-task-welcome>span{font-size:var(--ui-font-size-caption)}.scheduled-task-row__menu{opacity:0;align-self:center;margin-right:10px}.scheduled-task-row:hover .scheduled-task-row__menu,.scheduled-task-row:focus-within .scheduled-task-row__menu,.scheduled-task-row__menu[data-state=open]{opacity:1}.scheduled-task-menu{border:1px solid var(--ui-color-separator);width:max-content;min-width:112px}.scheduled-task-menu svg{width:15px;height:15px}.scheduled-task-fields input::-webkit-date-and-time-value{text-align:right}.scheduled-task-calendar input::-webkit-date-and-time-value{text-align:right}.scheduled-task-fields input::-webkit-datetime-edit{text-align:right;flex:1;display:block}.scheduled-task-calendar input::-webkit-datetime-edit{text-align:right;flex:1;display:block}.scheduled-task-fields input::-webkit-datetime-edit-fields-wrapper{text-align:right;padding:0}.scheduled-task-calendar input::-webkit-datetime-edit-fields-wrapper{text-align:right;padding:0}.scheduled-task-fields input[type=time]{justify-self:end;width:104px}.scheduled-task-date-time-field{justify-self:end;width:min(100%,240px);min-width:0;height:34px}.scheduled-task-date-picker,.scheduled-task-date-picker .react-datepicker__input-container{width:100%;height:34px;display:block}.scheduled-task-date-picker .react-datepicker__input-container .react-datepicker__calendar-icon{box-sizing:border-box;width:16px;height:16px;color:var(--ui-color-text-subtle);cursor:pointer;padding:0;top:50%;left:auto;right:10px;transform:translateY(-50%)}.scheduled-task-date-picker .react-datepicker__view-calendar-icon input{text-align:right;text-align-last:right;cursor:pointer;padding-left:10px;padding-right:38px}.scheduled-task-calendar-popper{z-index:30;padding-top:5px}.react-datepicker.scheduled-task-calendar{border:1px solid var(--ui-color-separator-strong);border-radius:var(--ui-radius-surface);width:292px;color:var(--ui-color-text);background:var(--ui-color-raised);box-shadow:var(--ui-shadow-floating);font-family:inherit;font-size:var(--ui-font-size-label);overflow:hidden}.scheduled-task-calendar .react-datepicker__header{border-color:var(--ui-color-separator);background:var(--ui-color-panel);border-radius:0;padding:12px 12px 8px}.scheduled-task-calendar .react-datepicker__current-month,.scheduled-task-calendar .react-datepicker__day-name,.scheduled-task-calendar .react-datepicker__day,.scheduled-task-calendar .react-datepicker__month-text{color:var(--ui-color-text)}.scheduled-task-calendar .react-datepicker__current-month{height:24px;font-size:var(--ui-font-size-body-small);font-weight:var(--ui-font-weight-semibold);line-height:24px}.scheduled-task-calendar .react-datepicker__header__dropdown{justify-content:center;gap:6px;margin-top:8px;display:flex}.scheduled-task-calendar .react-datepicker__month-dropdown-container--select,.scheduled-task-calendar .react-datepicker__year-dropdown-container--select{margin:0}.scheduled-task-calendar .react-datepicker__month-select,.scheduled-task-calendar .react-datepicker__year-select{border:1px solid var(--ui-color-separator-strong);border-radius:var(--ui-radius-control);height:28px;color:var(--ui-color-text);background:var(--ui-color-raised);font:inherit;outline:none;padding:0 7px}.scheduled-task-calendar .react-datepicker__month-select:focus,.scheduled-task-calendar .react-datepicker__year-select:focus{border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus)}.scheduled-task-calendar .react-datepicker__month-container{float:none;width:100%}.scheduled-task-calendar .react-datepicker__month{margin:8px 12px 10px}.scheduled-task-calendar .react-datepicker__day-names{margin-top:8px}.scheduled-task-calendar .react-datepicker__day-name,.scheduled-task-calendar .react-datepicker__day{border-radius:var(--ui-radius-control);width:34px;height:32px;margin:1px;line-height:32px}.scheduled-task-calendar .react-datepicker__day-name{color:var(--ui-color-text-subtle);font-size:var(--ui-font-size-caption);font-weight:var(--ui-font-weight-medium)}.scheduled-task-calendar .react-datepicker__day:hover,.scheduled-task-calendar .react-datepicker__month-text:hover{background:var(--ui-color-control-hover)!important}.scheduled-task-calendar .react-datepicker__day--selected,.scheduled-task-calendar .react-datepicker__day--selected:hover,.scheduled-task-calendar .react-datepicker__day--keyboard-selected,.scheduled-task-calendar .react-datepicker__day--keyboard-selected:hover,.scheduled-task-calendar .react-datepicker__month-text--selected{color:#fff!important;background:var(--ui-color-accent)!important}.scheduled-task-calendar .react-datepicker__day--today{color:var(--ui-color-accent-strong);font-weight:var(--ui-font-weight-semibold)}.scheduled-task-calendar .react-datepicker__day--outside-month{color:var(--ui-color-text-subtle);opacity:.55}.scheduled-task-calendar .react-datepicker__day--disabled{color:var(--ui-color-text-subtle);opacity:.45}.scheduled-task-calendar .react-datepicker__day--disabled:hover{background:0 0!important}.scheduled-task-calendar .react-datepicker__navigation{border-radius:var(--ui-radius-control);width:32px;height:32px;top:8px}.scheduled-task-calendar .react-datepicker__navigation:hover{background:var(--ui-color-control-hover)}.scheduled-task-calendar .react-datepicker__navigation--previous{left:9px}.scheduled-task-calendar .react-datepicker__navigation--next{right:9px}.scheduled-task-calendar .react-datepicker__navigation-icon:before{border-color:var(--ui-color-text-muted)}.scheduled-task-calendar .react-datepicker__input-time-container{clear:both;border-top:1px solid var(--ui-color-separator);background:color-mix(in srgb, var(--ui-color-panel) 72%, var(--ui-color-raised));justify-content:space-between;align-items:center;margin:0;padding:11px 14px;display:flex}.scheduled-task-calendar .react-datepicker-time__caption,.scheduled-task-calendar .react-datepicker-time__input-container{float:none;margin:0}.scheduled-task-calendar .react-datepicker-time__caption{color:var(--ui-color-text-muted);font-weight:var(--ui-font-weight-medium)}.scheduled-task-calendar .react-datepicker-time__input-container,.scheduled-task-calendar .react-datepicker-time__input{display:block}.scheduled-task-calendar .react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{border:1px solid var(--ui-color-separator-strong);border-radius:var(--ui-radius-control);width:112px;height:30px;color:var(--ui-color-text);background:var(--ui-color-raised);font:inherit;text-align:right;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;outline:none;margin:0;padding:0 8px}@media (prefers-color-scheme:dark){.scheduled-task-calendar .react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{--lightningcss-light: ;--lightningcss-dark:initial}}.scheduled-task-calendar .react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input:focus{border-color:var(--ui-color-accent);box-shadow:var(--ui-shadow-focus)}.scheduled-task-field--choices{padding-block:12px}.scheduled-task-choices{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.scheduled-task-month-days{grid-template-columns:repeat(7,32px);justify-content:end;gap:4px;display:grid}.scheduled-task-choices button,.scheduled-task-month-days button{border:1px solid var(--ui-color-separator);border-radius:var(--ui-radius-control);min-width:32px;min-height:32px;font-size:var(--ui-font-size-label);color:var(--ui-color-text-muted);cursor:pointer;padding:3px 7px}.scheduled-task-choices button[aria-pressed=true],.scheduled-task-month-days button[aria-pressed=true]{background:var(--ui-color-accent);color:var(--ui-color-accent-foreground,white);border-color:var(--ui-color-accent)}.scheduled-task-choices button:focus-visible,.scheduled-task-month-days button:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:2px}.scheduled-task-month-days__last{grid-column:span 4}.scheduled-task-inline-controls{justify-content:flex-end;gap:6px;min-width:0;display:flex}.scheduled-task-inline-controls input,.scheduled-task-fields input[type=number]{justify-self:end;width:80px}.scheduled-task-hint{color:var(--ui-color-text-muted);font-size:var(--ui-font-size-caption);padding-block:10px;line-height:1.7}.scheduled-task-preview{border-left:2px solid var(--ui-color-accent);background:var(--ui-color-panel);border-radius:0 var(--ui-radius-control) var(--ui-radius-control) 0;font-size:var(--ui-font-size-label);margin-top:14px;padding:14px 16px}.scheduled-task-preview__summary{color:var(--ui-color-text);overflow-wrap:anywhere;line-height:1.7}.scheduled-task-preview__meta{color:var(--ui-color-text-muted);font-size:var(--ui-font-size-caption);line-height:1.7}.scheduled-task-preview ol{font-variant-numeric:tabular-nums;gap:5px;margin-top:8px;padding:0;list-style:none;display:grid}.scheduled-task-preview h4{color:var(--ui-color-text-muted);margin-top:12px}.scheduled-task-preview__results{scrollbar-gutter:stable;height:7rem;overflow:auto}.scheduled-task-preview__results[data-expanded=true]{height:10rem}.scheduled-task-preview button{color:var(--ui-color-accent);cursor:pointer;margin-top:8px}.scheduled-task-preview button:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:2px}.scheduled-task-error{color:var(--ui-color-danger,#dc2626);font-size:var(--ui-font-size-label);margin-top:10px}.scheduled-task-range-toggle{text-align:right;min-height:38px;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-caption);cursor:pointer}.scheduled-task-range-toggle:focus-visible{outline:2px solid var(--ui-color-accent);outline-offset:-2px}@media (width<=600px){.scheduled-task-fields .scheduled-task-field--choices{grid-template-columns:minmax(0,1fr)}.scheduled-task-choices{justify-content:flex-start}.scheduled-task-month-days{grid-template-columns:repeat(7,minmax(24px,32px));justify-content:start}}.scheduled-tasks{background:var(--ui-color-content);flex:1;grid-template-columns:clamp(280px,29%,380px) minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.scheduled-task-list{border-right:1px solid var(--ui-color-separator);background:color-mix(in srgb, var(--ui-color-text) 1.5%, var(--ui-color-content));grid-template-rows:auto auto auto minmax(0,1fr);min-height:0;display:grid}.scheduled-task-list__header{justify-content:space-between;align-items:center;gap:10px;height:76px;padding:0 20px;display:flex}.scheduled-task-list__header>div{align-items:baseline;gap:7px;min-width:0;display:flex}.scheduled-task-list__header h2,.scheduled-task-prompt h3,.scheduled-task-runs h3{color:var(--ui-color-text);font-size:var(--ui-font-size-body-small);font-weight:var(--ui-font-weight-semibold)}.scheduled-task-list__header span{color:var(--ui-color-text-subtle);font-size:var(--ui-font-size-caption)}.scheduled-task-search{margin:16px 20px;position:relative}.scheduled-task-search svg{z-index:1;width:14px;color:var(--ui-color-text-subtle);position:absolute;top:11px;left:9px}.scheduled-task-search input{background:var(--ui-color-control);border-radius:10px;height:38px;padding-left:30px}.scheduled-task-list__items{scrollbar-gutter:stable;min-height:0;padding:0 12px 16px;overflow-y:auto}.scheduled-task-list__empty,.scheduled-task-welcome{min-height:180px;color:var(--ui-color-text-subtle);font-size:var(--ui-font-size-body-small);text-align:center;place-content:center;gap:8px;display:grid}.scheduled-task-list__empty svg{width:20px;margin:auto}.scheduled-task-row{width:100%;min-height:96px;color:var(--ui-color-text);text-align:left;border:1px solid #0000;border-radius:12px;grid-template-columns:24px minmax(0,1fr) auto;margin-bottom:6px;display:grid;position:relative;overflow:hidden}.scheduled-task-row:hover{background:var(--ui-color-control-hover)}.scheduled-task-row[data-active=true]{border-color:color-mix(in srgb, var(--ui-color-accent) 22%, var(--ui-color-separator));background:color-mix(in srgb, var(--ui-color-accent) 7%, var(--ui-color-content))}.scheduled-task-row__rail{background:var(--ui-color-task-running);border-radius:50%;width:7px;height:7px;margin-top:22px;margin-left:15px}.scheduled-task-row[data-tone=failed] .scheduled-task-row__rail{background:var(--ui-color-task-failed)}.scheduled-task-row[data-tone=paused] .scheduled-task-row__rail{background:var(--ui-color-text-subtle)}.scheduled-task-row[data-tone=running] .scheduled-task-row__rail{background:var(--ui-color-warning)}.scheduled-task-row__content{min-width:0;color:inherit;text-align:left;align-content:center;gap:3px;padding:13px 10px;display:grid}.scheduled-task-row__content strong,.scheduled-task-row__content>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scheduled-task-row__content strong{font-size:var(--ui-font-size-body-small);font-weight:var(--ui-font-weight-semibold)}.scheduled-task-row__content>span{color:var(--ui-color-text-subtle);font-size:var(--ui-font-size-label)}.scheduled-task-row__time{align-items:center;gap:5px;display:flex}.scheduled-task-row__time svg{width:12px}.scheduled-task-editor{scrollbar-gutter:stable;min-height:0;padding:0 0 28px;overflow-y:auto}.scheduled-task-editor__toolbar{z-index:5;border-bottom:1px solid var(--ui-color-separator);background:var(--ui-color-content);justify-content:space-between;align-items:center;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.scheduled-task-fields{border:1px solid var(--ui-color-separator);background:color-mix(in srgb, var(--ui-color-panel) 45%, var(--ui-color-content));border-radius:14px;padding:0 18px;display:grid}.scheduled-task-fields>label,.scheduled-task-field{grid-template-columns:minmax(90px,1fr) minmax(160px,auto);align-items:center;gap:16px;min-width:0;min-height:58px;display:grid}.scheduled-task-fields>:not(:first-child){border-top:1px solid var(--ui-color-separator)}.scheduled-task-fields>label>span,.scheduled-task-field>span{color:var(--ui-color-text-muted);font-size:var(--ui-font-size-label);font-weight:var(--ui-font-weight-medium)}.scheduled-task-fields input,.scheduled-task-fields select{text-align:right;text-align-last:right;border-radius:var(--ui-radius-control);width:100%;height:34px;color:var(--ui-color-text);font-size:var(--ui-font-size-body-small);background:0 0;border:1px solid #0000;outline:none;padding:0 10px}.scheduled-task-fields input:focus,.scheduled-task-fields select:focus{box-shadow:var(--ui-shadow-focus)}.scheduled-task-fields select{text-overflow:ellipsis;justify-self:end;width:auto;min-width:0;max-width:180px}.scheduled-task-fields select:not(:disabled),.scheduled-task-fields input[type=time]:not(:disabled){cursor:pointer}.scheduled-task-fields__wide{grid-column:1/-1}.scheduled-task-prompt{padding-top:20px}.scheduled-task-prompt>h3,.scheduled-task-runs>h3{padding:0 0 12px}.scheduled-task-prompt>section{padding-left:0;padding-right:0}.scheduled-task-runs{padding-top:30px}.scheduled-task-runs>p{border:1px dashed var(--ui-color-separator-strong);color:var(--ui-color-text-subtle);font-size:var(--ui-font-size-body-small);text-align:center;border-radius:12px;padding:24px}.scheduled-task-run{border-top:1px solid var(--ui-color-separator);min-height:52px;color:var(--ui-color-text-muted);font-size:var(--ui-font-size-label);grid-template-columns:80px minmax(120px,1fr) auto;align-items:center;gap:12px;margin:0;display:grid}.scheduled-task-run[data-status=failed]>:first-child,.scheduled-task-run__error{color:var(--ui-color-danger)}.scheduled-task-run[data-status=started]>:first-child{color:var(--ui-color-task-completed)}.scheduled-task-run[data-status=running]>:first-child{color:var(--ui-color-warning)}.scheduled-task-run__error{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scheduled-task-editor,.scheduled-task-list{min-width:0}@media (width<=1000px){.scheduled-tasks{grid-template-rows:minmax(180px,30%) minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.scheduled-task-list{border-right:0;border-bottom:1px solid var(--ui-color-separator);max-height:260px}.scheduled-task-list__header{height:56px}.scheduled-task-editor__body{padding:20px 16px 0}.scheduled-task-editor__toolbar{padding:0 16px}.scheduled-task-fields>label,.scheduled-task-field{grid-template-columns:minmax(70px,1fr) minmax(0,1.5fr);gap:8px}.scheduled-task-info{flex-wrap:wrap;gap:8px;padding:12px 0}.scheduled-task-run{grid-template-columns:64px minmax(0,1fr) auto;gap:8px}.scheduled-task-row__menu{opacity:1}}@media (hover:none){.scheduled-task-row__menu{opacity:1}}
@@ -1,2 +0,0 @@
1
- Y@���TY���*$�ݚ�ƾ��~��O���mI Nk�[ZPk 0�(߹yƎ�a�v
2
- $\��S���
@@ -1,5 +0,0 @@
1
- � ��Q
2
- :���� 2dcb��t����ݭ>�^�qC�><S^�+1�l���|z�D�[̉�3f���Su_�U�c�rC
3
- j�FX+���\�P�q���I�'�d���?���It�\H '��
4
- K�"uT�KȰ�5�Ԟq�i�dj؍�ZEl�:V8=�Ԣl��r%���)/�,�� �FJ����欉?tWnl�2y�4C���[K
5
- G�Q�%d�s!S�<V��X�x,��L76Ձ������}N�kA�;�q��+����A@G���B����|3p]{� QL^+6�םb�w�l�m�8DWI�Y���}Tw�n�kl�<r�KA5vTB�B�Ȕr`�ҠY��3Z�X r
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./react-runtime-CMZHB3u8.js";import{h as r,i,p as a,s as o,t as s,u as c}from"./initial-deps-CW5Jl6i2.js";import{Bt as l,Et as u,G as d,H as f,Ht as p,J as m,K as h,M as g,P as _,Tt as v,U as y,Ut as b,V as x,Vt as S,W as C,c as w,d as T,h as E,j as D,l as O,u as k,y as A,zt as j}from"./initial-deps-B7SS8XxM.js";import{E as M,F as N,H as P,K as F,W as I,X as ee,at as L,ct as R,g as z,k as B,q as V,tt as H}from"./initial-deps-B8FrcWWN.js";import{t as te}from"./arrow-down-DoJlTckg.js";import{C as U,T as W}from"./prompt-input-Ceptl3B-.js";import{j as G}from"./message-assistant-directive-CaNrh5lx.js";import{n as K,r as ne,t as q}from"./file-navigation-view-preference-BYYgwRsz.js";import{t as J}from"./upload-BQhbr7lC.js";import{J as Y,mt as re,pt as ie}from"./index-DudvUciK.js";import{g as ae,l as oe,m as se,n as ce}from"./workbench-shell-CfN-sr8U.js";var X=e(t(),1);function le(e,t){let n=c(t);return de({filters:{...e,status:`pending`}},n).length}function ue(e,t){return e.findAll(t.filters).map(e=>t.select?t.select(e):e.state)}function de(e={},t){let n=c(t).getMutationCache(),i=X.useRef(e),o=X.useRef(null);return o.current===null&&(o.current=ue(n,e)),X.useEffect(()=>{i.current=e}),X.useSyncExternalStore(X.useCallback(e=>n.subscribe(()=>{let t=r(o.current,ue(n,i.current));o.current!==t&&(o.current=t,a.schedule(e))}),[n]),()=>o.current,()=>o.current)}var fe=H(`arrow-down-to-line`,[[`path`,{d:`M12 17V3`,key:`1cwfxf`}],[`path`,{d:`m6 11 6 6 6-6`,key:`12ii2o`}],[`path`,{d:`M19 21H5`,key:`150jfl`}]]),pe=H(`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`}]]),me=H(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]);function Z(e){let t=e?.toLowerCase()??``;return/(?:git|workspace) (?:status|changes|snapshot|state).*changed|head or branch changed|snapshot.?mismatch/u.test(t)?`state_changed`:/commit or set aside working changes|local changes.*overwritten|would be overwritten by merge/u.test(t)?`working_changes`:/resolve and stage all merge conflicts|choose a current merge conflict|complete or cancel.*merge|conflict marker/u.test(t)?`merge_conflicts`:/invalid remote (?:url|name)|invalid remote url or name/u.test(t)?`invalid_remote`:/host key verification|remote host identification has changed/u.test(t)?`host_key`:/protected branch|gh006|changes must be made through a pull request/u.test(t)?`protected_branch`:/authentication failed|publickey|invalid.*(?:token|password)|could not read username/u.test(t)?`authentication`:/write access|permission.*denied|not permitted|403|access denied/u.test(t)?`permission`:/non-fast-forward|not possible to fast-forward|cannot fast-forward|fetch first|tip of your current branch is behind/u.test(t)?`remote_updates`:/gh013|repository rule violations|pre-receive hook declined|hook declined|push declined/u.test(t)?`rules`:/timed out|timeout|connection.*(?:reset|closed)|unexpected disconnect/u.test(t)?`unknown_result`:/could not resolve|couldn't connect|failed to connect|failed to fetch|networkerror|network request failed|econnrefused|network is unreachable|unable to access/u.test(t)?`network`:`unknown`}function Q(e,t,n){return{snapshot:e,message:n?.message??``,selectedPaths:new Set(t.map(e=>e.path)),knownPaths:new Set(t.map(e=>e.path)),previousMessage:n?.previousMessage??null}}function he(e,t,n,r=!0){let i=new Set(n.map(e=>e.path)),a=e.knownPaths.size===0?i:r?new Set([...e.selectedPaths].filter(e=>i.has(e))):e.selectedPaths;return{...e,snapshot:t,selectedPaths:a,knownPaths:new Set([...e.knownPaths,...i])}}function ge(e,t,n){return e.snapshot===t.snapshot&&e.selectedPaths.size===t.selectedPaths.size&&[...e.selectedPaths].every(e=>t.selectedPaths.has(e))?{...e,message:n,previousMessage:e.message}:e}function _e(e){return JSON.stringify({version:1,snapshot:e.snapshot,message:e.message,selectedPaths:[...e.selectedPaths],knownPaths:[...e.knownPaths],previousMessage:e.previousMessage})}function ve(e){if(e===null||e.length>2e6)return null;try{let t=JSON.parse(e),n=e=>Array.isArray(e)&&e.length<=1e5&&e.every(e=>typeof e==`string`);return t.version!==1||typeof t.snapshot!=`string`||typeof t.message!=`string`||t.message.length>1e4||!n(t.selectedPaths)||!n(t.knownPaths)||!(e=>e===null||typeof e==`string`&&e.length<=1e4)(t.previousMessage)?null:{snapshot:t.snapshot,message:t.message,selectedPaths:new Set(t.selectedPaths),knownPaths:new Set(t.knownPaths),previousMessage:t.previousMessage}}catch{return null}}function ye(e){let{remote:t}=e,n=e.pushStatus===`failed`||e.pushStatus===`not_configured`,r=[`commit`,`generate`,`status`].includes(e.failureOperation??``),i=e.failureOperation??`status`,a=e.actionError||e.pushError?Z(e.actionError??e.pushError):e.savedFailureKind??`unknown`,o=n||e.actionError?{kind:a,remote:!r,titleKey:r?`commit.${i}Failed`:`commit.failure_${a}`,helpKey:r&&a===`unknown`?`commit.${i}FailedHelp`:`commit.fix_${a}`}:null,s=(e,t,n)=>({action:e,labelKey:t,...n?{disabledReason:n}:{}}),c=(e,t,n,r)=>({primary:s(e,t,r),summaryKey:n,failure:o});if(t?.operation===`merge`||(t?.conflicts.length??0)>0)return{primary:s(`inspect`,`commit.refreshGitStatus`),summaryKey:`commit.mergePending`,hintKey:`commit.mergeExternalHelp`,failure:null};if(!e.branch)return c(null,`commit.push`,`commit.detachedHead`);if(t?.remotes.length===0)return c(`configure`,`commit.configureRemote`,`commit.noRemote`);if(t?.upstream===null||e.pushStatus===`not_configured`)return c(`publish`,`commit.publishBranch`,`commit.unpublished`);let l=(t?.ahead??0)>0?`commit.ahead`:(t?.behind??0)>0?`commit.behind`:t?.ahead===0&&t.behind===0?`commit.synced`:e.inspecting?`commit.awaitingCheck`:e.pushStatus===`pushed`?`commit.pushedToRemote`:e.commitSha?`commit.savedLocally`:`commit.remoteReady`;if((t?.ahead??0)>0&&(t?.behind??0)>0)return{...c(`inspect`,`commit.refreshGitStatus`,l),hintKey:`commit.divergedExternalHelp`};if(o?.remote&&e.hasActions){if(a===`state_changed`)return c(`inspect`,`commit.refreshGitStatus`,l);if(a===`invalid_remote`||a===`permission`)return c(`configure`,`commit.configureRemote`,l);if(a===`protected_branch`)return c(`branch`,`commit.createFeatureBranch`,l);if([`authentication`,`network`,`unknown_result`].includes(a))return c(`fetch`,`commit.checkConnection`,l);if(a===`remote_updates`&&!(t?.behind??0))return c(`fetch`,`commit.fetchRemote`,l)}return(t?.behind??0)>0?c(`integrate`,`commit.pullRemote`,l,e.hasWorkingChanges?`commit.pullNeedsCommit`:void 0):!t&&e.hasActions?c(`inspect`,`commit.inspectRemote`,e.inspecting?`commit.awaitingCheck`:`commit.remoteUnknown`):t?.ahead===0&&t.behind===0?c(e.hasActions?`fetch`:null,`commit.fetchRemote`,l):e.pushStatus===`pushed`&&!t?c(null,`commit.pushed`,l):c(`push`,o?.remote?`commit.pushAgain`:`commit.push`,l)}var be={push:`commit.pushing`,fetch:`commit.fetchingRemote`,inspect:`commit.inspectingRemote`,configure:`commit.configuringRemote`,publish:`commit.publishingBranch`,integrate:`commit.integratingRemote`,branch:`commit.creatingFeatureBranch`},$=n();function xe({initialName:e,initialUrl:t,busy:n,error:r,onSave:i,onClose:a,returnFocusElement:o,t:s}){let[c,l]=(0,X.useState)(e),[u,p]=(0,X.useState)(t),[m]=(0,X.useState)(()=>o??(typeof document>`u`?null:document.activeElement));return(0,$.jsx)(x,{open:!0,onOpenChange:e=>{!e&&!n&&a()},children:(0,$.jsxs)(f,{"aria-describedby":void 0,onCloseAutoFocus:e=>{e.preventDefault(),m instanceof HTMLElement&&m.isConnected&&m.focus()},children:[(0,$.jsx)(d,{children:(0,$.jsx)(h,{children:s(`commit.configureRemote`)})}),(0,$.jsxs)(`form`,{className:`space-y-4`,onSubmit:e=>{e.preventDefault(),!n&&i(c.trim(),u.trim()).then(e=>{e&&a()})},children:[(0,$.jsxs)(`label`,{className:`block text-label`,children:[s(`commit.remoteName`),(0,$.jsx)(`input`,{className:`mt-1 h-8 w-full rounded-control border border-separator-strong bg-panel px-2 outline-none focus-visible:shadow-focus`,required:!0,pattern:`[A-Za-z0-9_.-]+`,maxLength:128,value:c,disabled:n,autoComplete:`off`,onChange:e=>{l(e.currentTarget.value)}})]}),(0,$.jsxs)(`label`,{className:`block text-label`,children:[s(`commit.remoteUrl`),(0,$.jsx)(`input`,{className:`mt-1 h-8 w-full rounded-control border border-separator-strong bg-panel px-2 outline-none focus-visible:shadow-focus`,required:!0,value:u,disabled:n,autoComplete:`off`,autoCapitalize:`none`,spellCheck:!1,placeholder:`https://github.com/owner/repo.git`,onChange:e=>{p(e.currentTarget.value)}})]}),r?(0,$.jsx)(`p`,{className:`break-words text-caption text-danger`,role:`alert`,children:r}):null,(0,$.jsxs)(C,{children:[(0,$.jsx)(v,{variant:`ghost`,type:`button`,disabled:n,onClick:a,children:s(`commit.cancel`)}),(0,$.jsxs)(v,{type:`submit`,className:`text-[color:light-dark(#ffffff,#181818)]`,disabled:n||!c.trim()||!u.trim(),children:[n?(0,$.jsx)(M,{className:`size-3.5 animate-spin`,"aria-hidden":`true`}):null,s(n?`commit.configuringRemote`:`commit.saveRemote`)]})]})]})]})})}function Se({kind:e,branch:t,remote:n,commitSha:r,defaultRemote:i,busy:a,error:o,failure:s,guidanceKey:c,returnFocus:l,onAction:u,onClose:p,t:m}){let g=(0,X.useId)(),[_,b]=(0,X.useState)(i),[S,w]=(0,X.useState)(`feature/recovery`),[T,E]=(0,X.useState)(!1),D={publish:`commit.publishBranch`,branch:`commit.createFeatureBranch`,info:`commit.remoteInfo`,error:`commit.operationDetails`,guidance:`commit.gitOperationHelp`},O=e===`publish`?`commit.publishHelp`:e===`branch`?`commit.featureBranchHelp`:e===`info`?`commit.remoteInfoHelp`:e===`guidance`?c:c??s?.helpKey,k=async e=>{if(!a){E(!1);try{await u(e)?p():E(!0)}catch{E(!0)}}},A=`${_}/${t??``}`;return(0,$.jsx)(x,{open:!0,onOpenChange:e=>{!e&&!a&&p()},children:(0,$.jsxs)(f,{onCloseAutoFocus:e=>{e.preventDefault(),l?.isConnected&&l.focus()},children:[(0,$.jsxs)(d,{children:[(0,$.jsx)(h,{children:m(e===`error`&&s?s.titleKey:D[e])}),O?(0,$.jsx)(y,{children:m(O)}):null]}),e===`error`&&r&&s?.remote?(0,$.jsx)(`p`,{className:`text-caption text-muted-foreground`,children:m(`commit.localCommitSafe`)}):null,e===`publish`||e===`branch`?(0,$.jsxs)(`form`,{className:`space-y-4`,onSubmit:t=>{t.preventDefault(),k(e===`publish`?{action:`publish`,remote:_}:{action:`branch`,branchName:S.trim()})},children:[e===`publish`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`label`,{htmlFor:g,className:`block text-label`,children:m(`commit.remoteName`)}),(0,$.jsx)(`select`,{id:g,className:`h-9 w-full rounded-control border border-separator-strong bg-panel px-2 text-body-small outline-none focus-visible:shadow-focus`,value:_,disabled:a,onChange:e=>{b(e.currentTarget.value)},children:n?.remotes.map(e=>(0,$.jsx)(`option`,{value:e.name,children:e.name},e.name))}),(0,$.jsxs)(`div`,{className:`rounded-control bg-control px-3 py-2 text-caption`,children:[(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:m(`commit.pushDestination`)}),(0,$.jsx)(`p`,{className:`break-all font-mono`,children:A}),(0,$.jsx)(`p`,{className:`mt-1 break-all text-muted-foreground`,children:n?.remotes.find(e=>e.name===_)?.url})]})]}):(0,$.jsxs)(`label`,{className:`block text-label`,children:[m(`commit.branchName`),(0,$.jsx)(`input`,{className:`mt-1 h-9 w-full rounded-control border border-separator-strong bg-panel px-2 outline-none focus-visible:shadow-focus`,required:!0,maxLength:1024,value:S,disabled:a,autoComplete:`off`,autoCapitalize:`none`,spellCheck:!1,onChange:e=>{w(e.currentTarget.value)}})]}),T?(0,$.jsx)(`p`,{role:`alert`,className:`text-caption text-warning`,children:m(e===`publish`?`commit.publishFailedHelp`:`commit.branchFailedHelp`)}):null,(0,$.jsxs)(C,{children:[(0,$.jsx)(v,{type:`button`,variant:`ghost`,disabled:a,onClick:p,children:m(`commit.cancel`)}),(0,$.jsxs)(v,{type:`submit`,className:`text-[color:light-dark(#ffffff,#181818)]`,disabled:a||(e===`branch`?!S.trim():!_),children:[a?(0,$.jsx)(M,{className:`size-3.5 animate-spin motion-reduce:animate-none`,"aria-hidden":`true`}):null,m(a?e===`publish`?`commit.publishingBranch`:`commit.creatingFeatureBranch`:D[e])]})]})]}):null,e===`info`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`dl`,{className:`space-y-3 text-caption`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-muted-foreground`,children:m(`commit.currentBranch`)}),(0,$.jsx)(`dd`,{className:`break-all font-mono`,children:t??m(`commit.detachedHead`)})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-muted-foreground`,children:m(`commit.pushDestination`)}),(0,$.jsx)(`dd`,{className:`break-all font-mono`,children:n?.remote&&n.targetBranch?`${n.remote}/${n.targetBranch}`:m(`commit.unpublished`)})]}),n?.remotes.map(e=>(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-muted-foreground`,children:e.name}),(0,$.jsx)(`dd`,{className:`break-all font-mono`,children:e.url})]},e.name)),r?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-muted-foreground`,children:m(`commit.lastCommit`)}),(0,$.jsx)(`dd`,{className:`break-all font-mono`,children:r})]}):null]}),n?(0,$.jsx)(`p`,{className:`text-caption text-muted-foreground`,children:m(`commit.lastChecked`,{time:new Date(n.checkedAt).toLocaleTimeString()})}):null]}):null,e===`error`&&o?(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(`p`,{className:`text-caption text-muted-foreground`,children:m(`commit.technicalDetails`)}),(0,$.jsx)(`pre`,{className:`max-h-72 overflow-auto whitespace-pre-wrap break-all rounded-control bg-control p-3 font-mono text-caption`,children:o})]}):null,e===`info`||e===`error`||e===`guidance`?(0,$.jsx)(C,{children:(0,$.jsx)(v,{type:`button`,variant:`outline`,onClick:p,children:m(`commit.close`)})}):null]})})}function Ce({busy:e,canPublish:t,dialogOpen:n,onInspect:r,onOpen:i,t:a}){let o=(0,X.useRef)(null);return(0,$.jsxs)(w,{children:[(0,$.jsx)(A,{asChild:!0,children:(0,$.jsx)(v,{ref:o,size:`icon-toolbar`,variant:`ghost`,type:`button`,"data-slot":`git-remote-more`,"aria-label":a(`commit.moreRemoteActions`),title:a(`commit.moreRemoteActions`),children:(0,$.jsx)(N,{className:`size-4`,"aria-hidden":`true`})})}),(0,$.jsxs)(O,{align:`end`,onCloseAutoFocus:e=>{n&&e.preventDefault()},children:[(0,$.jsxs)(T,{disabled:e,onSelect:r,children:[(0,$.jsx)(z,{className:`size-3.5`}),a(`commit.inspectRemote`)]}),(0,$.jsxs)(T,{disabled:e,onSelect:()=>{i(`configure`,o.current)},children:[(0,$.jsx)(me,{className:`size-3.5`}),a(`commit.configureRemote`)]}),t?(0,$.jsxs)(T,{disabled:e,onSelect:()=>{i(`publish`,o.current)},children:[(0,$.jsx)(J,{className:`size-3.5`}),a(`commit.publishBranch`)]}):null,(0,$.jsx)(E,{}),(0,$.jsxs)(T,{onSelect:()=>{i(`info`,o.current)},children:[(0,$.jsx)(U,{className:`size-3.5`}),a(`commit.remoteInfo`)]})]})]})}function we({branch:e,remote:t,pushStatus:n,pushError:r,commitSha:i,busy:a,activeAction:o,actionError:s,failureOperation:c,inspecting:l,onPush:u,onAction:d,onOpenHistory:f,savedFailureKind:p,hasWorkingChanges:m=!1,t:h}){let y=(0,X.useRef)(null),[b,x]=(0,X.useState)(null),S=ye({branch:e,remote:t,pushStatus:n,pushError:r,commitSha:i,actionError:s,failureOperation:c,inspecting:l,savedFailureKind:p,hasWorkingChanges:m,hasActions:!!d}),{primary:C}=S,w=t?.remote??t?.remotes[0]?.name??`origin`,T=s??r,E=(e,t=y.current)=>{x({kind:e,returnFocus:t})},O=()=>{x(null)},k=e=>d?.(e)??Promise.resolve(!1),A=l&&!t,j=a&&o===C.action,N=h(A?`commit.inspectingRemote`:j&&o?be[o]:C.labelKey),F=!!d&&!!t?.remotes.length&&C.action!==`fetch`,L=h(o===`fetch`&&a?`commit.fetchingRemote`:`commit.fetchRemote`),R=b&&![`info`,`error`,`guidance`].includes(b.kind)?null:S.failure,z=t?.ahead??0,B=t?.behind??0,H=!!R||!!C.disabledReason||!!S.hintKey,U=H||z>0&&B>0,W=[`push`,`publish`,`integrate`].includes(C.action??``),K={"commit.fetchRemote":`commit.fetchShort`,"commit.refreshGitStatus":`commit.refreshShort`,"commit.checkConnection":`commit.checkConnectionShort`,"commit.createFeatureBranch":`commit.branchShort`},ne=!j&&!A&&K[C.labelKey]?h(K[C.labelKey]??C.labelKey):N,q=S.summaryKey!==`commit.mergePending`&&(z>0||B>0),Y=t?.remote&&t.targetBranch?`${t.remote}/${t.targetBranch}`:null;return(0,$.jsxs)(`section`,{className:`h-[72px] shrink-0 overflow-hidden border-b border-separator px-3 py-1.5`,"data-slot":`git-remote-status`,"aria-label":h(`commit.remoteStatus`),children:[(0,$.jsxs)(`div`,{className:`flex h-7 min-w-0 items-center gap-2`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5`,children:[(0,$.jsx)(G,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`min-w-0 truncate text-caption font-medium`,title:e??h(`commit.detachedHead`),children:e??h(`commit.detachedHead`)}),Y?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(I,{className:`size-3 shrink-0 text-muted-foreground`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`min-w-0 max-w-[45%] truncate text-caption text-muted-foreground`,title:Y,children:Y})]}):null]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[F?(0,$.jsxs)(D,{children:[(0,$.jsx)(_,{asChild:!0,children:(0,$.jsx)(v,{size:`icon-toolbar`,variant:`ghost`,type:`button`,"aria-label":L,disabled:a||!e,onClick:()=>{k({action:`fetch`})},children:o===`fetch`&&a?(0,$.jsx)(M,{className:`size-3.5 animate-spin motion-reduce:animate-none`,"aria-hidden":`true`}):(0,$.jsx)(fe,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,$.jsx)(g,{children:h(`commit.fetchRemoteHint`)})]}):null,d?(0,$.jsx)(Ce,{busy:a,canPublish:!!t?.remotes.length&&t.upstream===null,dialogOpen:b!==null,onInspect:()=>{k({action:`inspect`})},onOpen:E,t:h}):null]})]}),(0,$.jsxs)(`div`,{className:`mt-1.5 flex h-6 min-w-0 items-center gap-2`,"data-slot":`git-remote-summary`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-2`,children:[(0,$.jsx)(`div`,{className:`flex min-w-0 items-center gap-1.5 text-caption ${H?`max-w-[50%]`:`flex-1`}`,role:`status`,children:q?(0,$.jsxs)($.Fragment,{children:[z>0?f?(0,$.jsxs)(`button`,{className:`inline-flex h-6 min-w-0 max-w-full touch-manipulation items-center gap-1.5 rounded-control bg-brand/10 px-1.5 text-brand-strong outline-none hover:bg-brand/15 focus-visible:shadow-focus`,type:`button`,"data-slot":`git-open-unpushed-history`,"aria-label":h(`commit.ahead`,{count:z}),title:h(`commit.ahead`,{count:z}),onClick:f,children:[(0,$.jsx)(ee,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:h(U?`commit.aheadShort`:`commit.ahead`,{count:z})})]}):(0,$.jsxs)(`span`,{className:`inline-flex h-6 min-w-0 items-center gap-1.5 rounded-control bg-brand/10 px-1.5 text-brand-strong`,title:h(`commit.ahead`,{count:z}),children:[(0,$.jsx)(ee,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`truncate`,children:h(U?`commit.aheadShort`:`commit.ahead`,{count:z})})]}):null,B>0?(0,$.jsxs)(`span`,{className:`inline-flex h-6 min-w-0 items-center gap-1.5 rounded-control bg-control px-1.5 text-muted-foreground`,title:h(`commit.behind`,{count:B}),children:[(0,$.jsx)(te,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`truncate`,children:h(U?`commit.behindShort`:`commit.behind`,{count:B})})]}):null]}):H?null:(0,$.jsxs)(`span`,{className:`inline-flex h-6 min-w-0 items-center gap-1.5 rounded-control bg-control px-1.5 text-muted-foreground`,children:[S.summaryKey===`commit.synced`||S.summaryKey===`commit.pushedToRemote`?(0,$.jsx)(V,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`}):null,(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:h(S.summaryKey)})]})}),H?(0,$.jsx)(`div`,{className:`flex h-6 min-w-0 flex-1 items-center text-caption`,children:R?(0,$.jsxs)(`div`,{role:`alert`,className:`flex h-full min-w-0 flex-1 items-center gap-1.5`,"data-slot":`git-remote-notice`,children:[(0,$.jsx)(P,{className:`size-3.5 shrink-0 text-warning`,"aria-hidden":`true`}),(0,$.jsx)(`p`,{className:`min-w-0 flex-1 truncate text-muted-foreground`,title:h(R.titleKey),children:h(R.titleKey)}),(0,$.jsx)(`button`,{className:`min-h-6 shrink-0 touch-manipulation rounded-sm text-muted-foreground underline underline-offset-2 outline-none hover:text-foreground focus-visible:shadow-focus`,type:`button`,"aria-label":h(`commit.viewDetails`),onClick:e=>{E(`error`,e.currentTarget)},children:h(`commit.detailsShort`)})]}):C.disabledReason?(0,$.jsx)(`p`,{className:`min-w-0 truncate text-muted-foreground`,title:h(C.disabledReason),children:h(C.disabledReason)}):S.hintKey?(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1.5 text-muted-foreground`,children:[(0,$.jsx)(`p`,{className:`min-w-0 flex-1 truncate`,children:h(`commit.externalGitRequired`)}),(0,$.jsx)(`button`,{className:`min-h-6 shrink-0 touch-manipulation rounded-sm underline underline-offset-2 outline-none hover:text-foreground focus-visible:shadow-focus`,type:`button`,"aria-label":h(`commit.viewDetails`),onClick:e=>{E(`guidance`,e.currentTarget)},children:h(`commit.detailsShort`)})]}):null}):null]}),C.action?(0,$.jsxs)(v,{ref:y,size:`toolbar`,variant:W?`default`:`outline`,className:W?`text-[color:light-dark(#ffffff,#181818)]`:void 0,type:`button`,"data-slot":`git-remote-primary`,"aria-label":N,title:N,disabled:a||A||!!C.disabledReason||C.action!==`push`&&!d,onClick:()=>{let e=C.action;e===`push`?u():e===`configure`||e===`publish`||e===`branch`?E(e):e&&k({action:e})},children:[j||A?(0,$.jsx)(M,{className:`size-3.5 animate-spin motion-reduce:animate-none`,"aria-hidden":`true`}):C.action===`push`||C.action===`publish`?(0,$.jsx)(J,{className:`size-3.5`,"aria-hidden":`true`}):null,ne]}):null]}),b?.kind===`configure`?(0,$.jsx)(xe,{initialName:w,initialUrl:t?.remotes.find(e=>e.name===w)?.url??``,busy:a,returnFocusElement:b.returnFocus,error:c===`configure`&&s?h(S.failure?.kind===`invalid_remote`?`commit.fix_invalid_remote`:`commit.remoteSaveFailed`):null,onSave:(e,t)=>k({action:`configure`,remote:e,url:t}),onClose:O,t:h}):null,b&&b.kind!==`configure`?(0,$.jsx)(Se,{kind:b.kind,branch:e,remote:t,commitSha:i,defaultRemote:w,busy:a,error:T,failure:S.failure,guidanceKey:S.hintKey,returnFocus:b.returnFocus,onAction:k,onClose:O,t:h}):null]})}var Te=e=>JSON.stringify({version:1,...e});function Ee(e,t){if(!e||e.length>2048)return null;try{let n=JSON.parse(e),r=e=>e===null||typeof e==`string`;return n.version!==1||!r(n.head)||!r(n.commitSha)||typeof n.pushStatus!=`string`||![`failed`,`not_configured`,`not_requested`,`pushed`,`checked`,`updated`].includes(n.pushStatus)||![`state_changed`,`working_changes`,`merge_conflicts`,`invalid_remote`,`authentication`,`permission`,`remote_updates`,`protected_branch`,`network`,`host_key`,`rules`,`unknown_result`,`unknown`].includes(String(n.failureKind))||t!==void 0&&n.head!==null&&n.head!==t?null:{head:n.head,commitSha:n.commitSha,pushStatus:n.pushStatus,failureKind:n.failureKind}}catch{return null}}function De(e,t,n){let r=`codexly:git-receipt:v1:${e}`,[i,a]=(0,X.useState)(()=>{try{return typeof window>`u`?null:Ee(window.localStorage.getItem(r),n)}catch{return null}}),o=t?Te(t):null;return(0,X.useEffect)(()=>{if(!o)return;let e=Ee(o);a(e);try{window.localStorage.setItem(r,o)}catch{}},[r,o]),t??(i&&(n===void 0||i.head===null||i.head===n)?i:null)}function Oe({busyAction:e,canCommit:t,disabled:n,isPending:r,labels:i,onCommit:a}){let o=r?e===`commit_and_push`?i.committingAndPushing:i.committing:i.commit;return(0,$.jsx)(`div`,{className:`mt-2`,"data-slot":`git-changes-actions`,children:(0,$.jsxs)(ce,{className:`w-full`,children:[(0,$.jsxs)(v,{"aria-label":o,className:`min-w-0 flex-1 rounded-r-none disabled:pointer-events-auto disabled:cursor-not-allowed disabled:opacity-100 disabled:hover:bg-brand disabled:active:brightness-100`,disabled:!t,onClick:()=>{a(`commit`)},type:`button`,children:[r?(0,$.jsx)(M,{"aria-hidden":`true`,className:`animate-spin`}):(0,$.jsx)(se,{"aria-hidden":`true`}),o]}),(0,$.jsxs)(w,{children:[(0,$.jsx)(A,{asChild:!0,children:(0,$.jsx)(v,{"aria-label":i.moreGitActions,className:`w-9 shrink-0 rounded-l-none border-l border-brand-contrast/30 px-0 disabled:opacity-100`,disabled:n,type:`button`,children:(0,$.jsx)(F,{"aria-hidden":`true`})})}),(0,$.jsx)(O,{align:`end`,className:`max-w-[calc(100vw-1rem)]`,children:(0,$.jsx)(k,{children:(0,$.jsxs)(T,{className:`focus-visible:!outline-none focus-visible:shadow-none`,disabled:!t,onSelect:()=>{a(`commit_and_push`)},children:[(0,$.jsx)(se,{"aria-hidden":`true`,className:`size-4`}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`p`,{children:i.commitAndPush}),(0,$.jsx)(`p`,{className:`mt-0.5 text-caption text-muted-foreground`,children:i.commitAndPushDescription})]})]})})})]})]})})}function ke({draft:e,generating:t,disabled:n,canGenerate:r,onGenerate:i,update:a,t:o}){return(0,$.jsxs)(`div`,{className:`space-y-2`,"data-slot":`git-commit-editor`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`label`,{className:`text-label font-semibold`,htmlFor:`commit-message`,children:o(`commit.commitMessage`)}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1`,children:[e.previousMessage===null?null:(0,$.jsx)(v,{size:`sm`,variant:`link`,type:`button`,onClick:()=>{a(e=>({...e,message:e.previousMessage??``,previousMessage:null}))},children:o(`commit.undoGeneration`)}),(0,$.jsxs)(v,{variant:`ghost`,size:`sm`,disabled:!r||t,onClick:i,type:`button`,"aria-label":o(`commit.generateMessage`),children:[t?(0,$.jsx)(M,{className:`size-3.5 animate-spin`,"aria-hidden":`true`}):(0,$.jsx)(oe,{className:`size-3.5`,"aria-hidden":`true`}),o(t?`commit.generatingMessage`:`commit.generateMessage`)]})]})]}),(0,$.jsx)(`textarea`,{id:`commit-message`,"aria-label":o(`commit.commitMessage`),className:`block min-h-12 w-full resize-none rounded-control border border-separator-strong bg-panel px-2 py-1.5 text-label leading-5 outline-none focus-visible:shadow-focus`,rows:2,maxLength:1e4,disabled:n,placeholder:o(`commit.messagePlaceholder`),value:e.message,onChange:e=>{let t=e.currentTarget.value;a(e=>({...e,message:t,previousMessage:null}))}})]})}function Ae(e,t,n){try{return Q(t,n,typeof window>`u`?null:ve(window.localStorage.getItem(e)))}catch{return Q(t,n)}}function je(e,t,n,r){let i=`codexly:git-draft:v1:${e}`,a=(0,X.useMemo)(()=>`${t}:${n.map(e=>`${e.path}:${String(Number(e.staged))}`).join(`\0`)}:${String(r)}`,[t,n,r]),[o,s]=(0,X.useState)(()=>({range:a,draft:Ae(i,t,n)}));o.range!==a&&s({range:a,draft:he(o.draft,t,n,r)});let c=(0,X.useRef)(o.draft);c.current=o.draft;let l=()=>{try{window.localStorage.setItem(i,_e(c.current))}catch{}};return(0,X.useEffect)(()=>{let e=setTimeout(l,250);return()=>{clearTimeout(e)}},[i,o.draft]),(0,X.useEffect)(()=>{let e=()=>{l()};return window.addEventListener(`pagehide`,e),()=>{window.removeEventListener(`pagehide`,e),e()}},[i]),[o.draft,e=>{s(t=>({...t,draft:e(t.draft)}))}]}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)t.set(n.path,{path:n.path,staged:t.has(n.path),unstaged:!0});return[...t.values()].sort((e,t)=>e.path.localeCompare(t.path,`en`))}function Ne({gitStatus:e,draftScope:t=`repository`,error:n=null,isCommitting:r=!1,isPushing:i=!1,activeRemoteAction:a,isGenerating:o=!1,totalChanges:s,complete:c=!0,onLoadMore:l,isLoadingMore:u=!1,onCommit:d,onPush:f,onGenerateMessage:p,result:m=null,pushResult:h=null,remoteResult:g,isInspectingRemote:_=!1,onRemoteAction:y,onOpenHistory:x,t:S,viewMode:C,onViewModeChange:w,renderChanges:T}){let E=(0,X.useMemo)(()=>Me(e),[e]),[D,O]=je(t,e.snapshot,E,c),[k,A]=(0,X.useState)(``),[j,N]=(0,X.useState)(null),[P,F]=(0,X.useState)(!1),[I,ee]=(0,X.useState)(`commit`),L=(0,X.useRef)(!1),R=(0,X.useRef)(0);(0,X.useEffect)(()=>()=>{R.current++},[]);let z=r||i,B=(s??E.length)>0,V=h?.pushError??m?.pushError??null,H=De(t,h||m?{head:h?.remoteState?.head??m?.commitSha??g?.remoteState?.head??null,commitSha:m?.commitSha??null,pushStatus:h?.pushStatus??m?.pushStatus??`not_requested`,failureKind:Z(V)}:null,g?.remoteState?.head),te=h?.pushStatus??m?.pushStatus??H?.pushStatus??null,U=b(e=>S(e)),W=g?.remoteState?.operation!==`merge`&&(g?.remoteState?.conflicts.length??0)===0&&!z&&D.selectedPaths.size>0&&D.message.trim()!==``,G=async(e,t=`push`)=>{if(L.current)return!1;L.current=!0,N(null);try{return await e(),!0}catch(e){return N({message:e instanceof Error?e.message:String(e),operation:t}),!1}finally{L.current=!1}},q=async()=>{if(P||o)return;let e=D,t=++R.current;F(!0),N(null);try{let n=await p({expectedSnapshot:e.snapshot,paths:[...e.selectedPaths]});R.current===t&&O(t=>ge(t,e,n))}catch(e){R.current===t&&N({message:e instanceof Error?e.message:String(e),operation:`generate`})}finally{R.current===t&&F(!1)}},J=t=>G(async()=>{ee(t),await d({action:t,expectedSnapshot:e.snapshot,paths:[...D.selectedPaths],message:D.message}),R.current++,F(!1),O(e=>({...Q(e.snapshot,[]),knownPaths:e.knownPaths}))},`commit`);return e.repositoryMode===`root`?(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden`,"data-slot":`commit-changes-panel`,children:[(0,$.jsx)(we,{onOpenHistory:x,branch:e.branch,remote:g?.remoteState,pushStatus:te,pushError:V,commitSha:m?.commitSha??H?.commitSha??void 0,savedFailureKind:H?.failureKind,busy:z,hasWorkingChanges:B,activeAction:i?a??`push`:null,actionError:j?.message??(V?null:n?.message??null),failureOperation:j?.operation??(!V&&n?`status`:void 0),inspecting:_,t:S,onPush:()=>{G(f)},...y?{onAction:e=>G(()=>y(e,H?.failureKind),e.action??`push`)}:{}}),B?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`max-h-[25%] shrink-0 space-y-2 overflow-y-auto px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(`p`,{className:`min-w-0 flex-1 text-caption font-semibold`,children:S(`commit.selectedFiles`,{selected:D.selectedPaths.size,total:s??E.length})}),(0,$.jsx)(v,{size:`icon-sm`,variant:`ghost`,type:`button`,"aria-label":S(C===`tree`?`diff.showFileList`:`diff.showFileTree`),onClick:()=>{w(C===`tree`?`list`:`tree`)},children:C===`tree`?(0,$.jsx)(K,{className:`size-3.5`}):(0,$.jsx)(ne,{className:`size-3.5`})})]}),(0,$.jsx)(`input`,{"aria-label":S(`commit.searchFiles`),placeholder:S(`commit.searchFiles`),className:`h-8 w-full rounded-control border border-separator bg-panel px-2 text-label outline-none focus-visible:shadow-focus`,value:k,onChange:e=>{A(e.currentTarget.value)}}),E.some(e=>e.staged&&e.unstaged)?(0,$.jsx)(`p`,{className:`text-caption text-muted-foreground`,children:S(`commit.partialStaged`)}):null]}),(0,$.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden`,children:T(D.selectedPaths,e=>{O(t=>({...t,selectedPaths:e}))},z,k)}),c?null:(0,$.jsx)(`div`,{className:`shrink-0 border-t border-separator px-3 py-1`,children:(0,$.jsxs)(v,{size:`sm`,variant:`ghost`,className:`w-full`,disabled:u,onClick:l,type:`button`,children:[u?(0,$.jsx)(M,{className:`size-3.5 animate-spin`}):null,S(`commit.loadMore`),` · `,E.length,` / `,s??E.length]})}),(0,$.jsxs)(`section`,{className:`max-h-[60%] min-h-0 shrink space-y-2 overflow-y-auto border-t border-separator px-3 py-2`,"data-slot":`git-commit-footer`,children:[(0,$.jsx)(ke,{draft:D,update:O,generating:P||o,disabled:r,canGenerate:D.selectedPaths.size>0&&!z,onGenerate:()=>{q()},t:S}),(0,$.jsx)(Oe,{busyAction:r?I:null,canCommit:W,isPending:r,disabled:z,labels:U,onCommit:e=>{J(e)}})]})]}):null]}):null}function Pe(e){return[...e].sort((e,t)=>e.kind===t.kind?e.name.localeCompare(t.name,`en`):e.kind===`file`?-1:1)}function Fe(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:Pe([...n.children.values()].map(e=>e.kind===`folder`?Fe(e):e)),kind:`folder`,name:t.join(`/`),path:n.path}}function Ie(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 Pe([...t.children.values()].map(e=>e.kind===`folder`?Fe(e):e))}var Le=[];function Re(e,t,n,r,i,a=0){for(let o of t){let t=`${r}:${o.path}`;if(o.kind===`folder`)e.push({key:t,label:r,depth:a,kind:`folder`,path:o.path,name:o.name}),i.has(t)||Re(e,o.children,n,r,i,a+1);else{let i=n.get(o.path);i&&e.push({key:t,label:r,depth:a,kind:`file`,name:o.name,change:i})}}}function ze({changes:e,disabled:t=!1,label:n,onOpenFileDiff:r,onSelectedPathsChange:i,selectedPaths:a,viewMode:o=`tree`,secondaryChanges:c=Le,secondaryLabel:l=``,statsAvailable:d=!1}){let f=(0,X.useRef)(null),p=(0,X.useRef)(null),[h,g]=(0,X.useState)(new Set),_=(0,X.useMemo)(()=>[{changes:e,label:n},{changes:c,label:l}].filter(e=>e.changes.length>0).map(e=>({...e,paths:e.changes.map(e=>e.path),byPath:new Map(e.changes.map(e=>[e.path,e])),nodes:o===`tree`?Ie(e.changes):[],sorted:o===`list`?e.changes.toSorted((e,t)=>e.path.localeCompare(t.path,`en`)):[]})),[e,n,c,l,o]),v=(0,X.useMemo)(()=>{let e=[];for(let t of _)if(e.push({key:t.label,label:t.label,depth:0,kind:`section`,paths:t.paths}),o===`tree`)Re(e,t.nodes,t.byPath,t.label,h);else for(let n of t.sorted)e.push({key:`${t.label}:${n.path}`,kind:`file`,label:t.label,depth:0,name:n.path,change:n});return e},[_,h,o]),y=s({count:v.length,getScrollElement:()=>f.current,getItemKey:e=>v[e]?.key??e,estimateSize:()=>32,overscan:8,initialRect:{width:400,height:400}}),b=y.getVirtualItems();(0,X.useLayoutEffect)(()=>{if(p.current===null)return;let e=f.current?.querySelector(`[data-row-index="${String(p.current)}"]`);e&&(e.focus(),p.current=null)},[b]);let x=e=>{let t=new Set(a);t.has(e)?t.delete(e):t.add(e),i(t)},S=e=>{g(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},C=(e,t)=>{let n=e.key===`ArrowDown`?t+1:e.key===`ArrowUp`?t-1:e.key===`Home`?0:e.key===`End`?v.length-1:null;n!==null&&(e.preventDefault(),p.current=Math.max(0,Math.min(v.length-1,n)),y.scrollToIndex(p.current,{align:`auto`}),f.current?.querySelector(`[data-row-index="${String(p.current)}"]`)?.focus())};return(0,$.jsx)(`div`,{ref:f,className:`h-full min-h-0 flex-1 overflow-y-auto overscroll-contain`,"data-slot":`commit-changes-scroll`,children:(0,$.jsx)(`div`,{role:`tree`,"aria-label":n,"data-slot":o===`list`?`commit-changes-list`:`commit-changes-tree`,style:{height:y.getTotalSize(),position:`relative`},children:b.map(e=>{let n=v[e.index];if(!n)return null;let s={height:32,left:0,top:0,width:`100%`,position:`absolute`,transform:`translateY(${String(e.start)}px)`,paddingLeft:12+n.depth*14};if(n.kind===`section`){let r=n.paths.reduce((e,t)=>e+Number(a.has(t)),0);return(0,$.jsxs)(`div`,{role:`treeitem`,style:s,className:`flex items-center gap-1.5 pr-3`,"data-row-index":e.index,tabIndex:-1,onKeyDown:t=>{C(t,e.index)},children:[(0,$.jsx)(m,{"aria-label":n.label,checked:r===0?!1:r===n.paths.length||`indeterminate`,disabled:t,onCheckedChange:e=>{let t=new Set(a);for(let r of n.paths)e?t.add(r):t.delete(r);i(t)}}),(0,$.jsx)(`h3`,{className:`text-label font-semibold`,children:n.label}),(0,$.jsx)(`span`,{className:`ml-auto text-caption text-muted-foreground`,children:n.paths.length})]},n.key)}let c=n.kind===`folder`,l=c&&!h.has(n.key),f=c?n.path:n.change.path,p=c?`update`:n.change.kind,g=c?B:p===`create`?W:p===`delete`?pe:ae,_=()=>{c?S(n.key):r(n.change)};return(0,$.jsxs)(`div`,{role:`treeitem`,"aria-label":f,"aria-level":o===`tree`?n.depth+1:void 0,"aria-expanded":c?l:void 0,tabIndex:0,"data-row-index":e.index,style:s,className:`flex cursor-pointer items-center gap-1.5 pr-3 font-mono text-label hover:bg-control-hover focus-visible:shadow-focus`,onClick:_,onKeyDown:t=>{t.target===t.currentTarget&&(C(t,e.index),(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),_()),c&&(t.key===`ArrowLeft`&&l||t.key===`ArrowRight`&&!l)&&(t.preventDefault(),S(n.key)))},children:[c?(0,$.jsx)(I,{"aria-hidden":`true`,className:u(`size-3.5 shrink-0`,l&&`rotate-90`)}):(0,$.jsx)(m,{"aria-label":`${n.label}: ${f}`,checked:a.has(f),disabled:t,onClick:e=>{e.stopPropagation()},onCheckedChange:()=>{x(f)}}),(0,$.jsx)(g,{"aria-hidden":`true`,className:u(`size-3.5 shrink-0`,!c&&(p===`create`?`text-diff-added`:p===`delete`?`text-danger`:`text-warning`))}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:f,children:n.name}),!c&&d&&n.change.stats!==void 0&&(0,$.jsxs)(`span`,{className:`flex shrink-0 gap-1 text-meta`,"aria-label":`+${String(n.change.stats.additions)} -${String(n.change.stats.removals)}`,children:[(0,$.jsxs)(`span`,{className:`text-diff-added`,children:[`+`,n.change.stats.additions]}),(0,$.jsxs)(`span`,{className:`text-diff-removed`,children:[`-`,n.change.stats.removals]})]}),!c&&(0,$.jsx)(`span`,{className:`text-meta text-muted-foreground`,children:p===`create`?`A`:p===`delete`?`D`:`M`})]},n.key)})})})}function Be(e){let{gitStatus:t,onOpenFileDiff:n}=e,{t:r}=L(`workbench`),[i,a]=q(`changes`),o=(0,X.useMemo)(()=>{let e=new Map(t.staged.map(e=>[e.path,e]));for(let n of t.unstaged)e.has(n.path)||e.set(n.path,n);return[...e.values()]},[t]),s=JSON.stringify([e.draftScope??`repository`,t.branch]);return(0,$.jsx)(Ne,{...e,draftScope:s,t:(e,t)=>r(e,t??{}),viewMode:i,onViewModeChange:a,renderChanges:(e,t,a,s)=>{let c=s?o.filter(e=>e.path.toLowerCase().includes(s.toLowerCase())):o;return s&&c.length===0?(0,$.jsx)(`p`,{className:`p-3 text-caption text-muted-foreground`,children:r(`commit.noMatchingFiles`)}):(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto overscroll-contain`,"data-slot":`commit-changes-scroll`,children:(0,$.jsx)(ze,{changes:c,label:r(`commit.changes`),disabled:a,onOpenFileDiff:n,onSelectedPathsChange:t,selectedPaths:e,viewMode:i})})}},s)}function Ve(e){return e.pushStatus===`pushed`?`commit.commitAndPushSucceeded`:e.pushStatus===`not_requested`?`commit.commitSucceeded`:null}function He(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 Ue({client:e,detailsError:t=null,gitStatus:n,onOpenFileDiff:r,onOpenHistory:a,projectId:s,rootPath:u}){let{t:d}=L(`workbench`),f=c(),m=i({...re(s,u,e),meta:{actionNotification:!1}}),h=i({...ie(s,u,e),...j(s,u,f),meta:{actionNotification:!1}}),g=i(S(s,u,e)),[_,v]=(0,X.useState)(),[y,b]=(0,X.useState)(),x=n,C=JSON.stringify([s,u,x.branch]),w=y?.scope===C?y.result:null,T=le({predicate:e=>e.options.scope?.id===`project-git-mutation:${s}:${u}`})>0,E=l(s,u,x.branch,x.snapshot,e,T),D=o({...E,enabled:x.repositoryMode===`root`&&E.enabled}),O=async(e,t)=>{let n=x.snapshot,r;try{r=await g.mutateAsync({...e,expectedSnapshot:n,...[`push`,`publish`,`fetch`].includes(e.action??``)&&x.branch?{expectedBranch:x.branch}:{}})}catch(e){throw v({result:{branch:x.branch,pushStatus:`failed`,pushError:e instanceof Error?e.message:String(e)},snapshot:n,scope:C}),f.invalidateQueries({queryKey:E.queryKey}),e}if(r.remoteState&&f.setQueryData(E.queryKey,r),(e.action!==`inspect`||p(t??Z(_?.scope===C?_.result.pushError:null),r))&&v({result:r,snapshot:n,scope:C}),r.pushStatus===`pushed`&&Y(d(`commit.pushSucceeded`)),[`inspect`,`integrate`,`branch`].includes(e.action??``)&&await f.invalidateQueries({queryKey:[`projects`,s,u,`git-status`]}),f.invalidateQueries({queryKey:[`projects`,s,u,`git-history`]}),r.pushStatus===`failed`||r.pushStatus===`not_configured`)throw Error(r.pushError??d(`commit.pushFailed`))};return(0,$.jsx)(Be,{onOpenHistory:a,draftScope:JSON.stringify([s,u]),error:t??D.error,gitStatus:x,pushResult:_?.scope===C?_.result:null,isPushing:g.isPending,activeRemoteAction:g.isPending?g.variables.action??`push`:null,onPush:()=>O({action:`push`}),onRemoteAction:O,remoteResult:D.data,isInspectingRemote:D.isPending,isCommitting:h.isPending,isGenerating:m.isPending,onCommit:async e=>{v(void 0);let t=await h.mutateAsync(e);b({result:t,snapshot:t.status.snapshot,scope:C}),He(f,s,u,e.repository,t.status,t.history);let n=Ve(t);if(n!==null){Y(d(n));return}},onGenerateMessage:async e=>(await m.mutateAsync(e)).message,onOpenFileDiff:r,result:w})}function We({client:e,detailsError:t,detailsPending:n,detailsStatus:r,gitStatus:i,gitStatusError:a,onOpenFileDiff:o,onOpenHistory:s,projectId:c,rootPath:l}){return c!==void 0&&e!==void 0&&i!==void 0?(0,$.jsx)(Ue,{client:e,detailsError:t,detailsPending:n,gitStatus:r??i,onOpenFileDiff:o,onOpenHistory:s,projectId:c,rootPath:l}):a===null?(0,$.jsx)(`p`,{className:`p-3 text-caption text-muted-foreground`,role:`status`,children:R.t(`inspector.gitLoading`,{ns:`conversation`})}):(0,$.jsx)(`p`,{className:`p-3 text-caption text-danger`,role:`alert`,children:a.message})}export{We as WorkbenchInspectorChanges};