@bryanhu/codexly 0.36.0 → 0.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/CHANGELOG.md +44 -1
  2. package/README.md +4 -2
  3. package/README.zh-CN.md +4 -2
  4. package/dist/{chunk-GFASBWL4.js → chunk-5AELLXXE.js} +1 -1
  5. package/dist/{chunk-ZK7RF5XC.js → chunk-5ULADQG3.js} +17 -17
  6. package/dist/chunk-63NQMTXZ.js +3 -0
  7. package/dist/chunk-PFNMH4LN.js +1044 -0
  8. package/dist/cli.js +4 -4
  9. package/dist/client/index.js +2 -2
  10. package/dist/{command-VIK5GXBS.js → command-R5BTONU5.js} +17 -17
  11. package/dist/protocol/index.js +1 -1
  12. package/dist/providers/codex/index.js +1 -1
  13. package/dist/server/index.js +1 -1
  14. package/dist/web/.vite/manifest.json +284 -273
  15. package/dist/web/.vite/manifest.json.br +0 -0
  16. package/dist/web/.vite/manifest.json.gz +0 -0
  17. package/dist/web/assets/{agent-settings-panel-B0qVVJ3_.js → agent-settings-panel-CRNaBDDS.js} +1 -1
  18. package/dist/web/assets/agent-settings-panel-CRNaBDDS.js.br +0 -0
  19. package/dist/web/assets/agent-settings-panel-CRNaBDDS.js.gz +0 -0
  20. package/dist/web/assets/arrow-down-DoJlTckg.js +1 -0
  21. package/dist/web/assets/arrow-down-DoJlTckg.js.br +0 -0
  22. package/dist/web/assets/arrow-down-DoJlTckg.js.gz +0 -0
  23. package/dist/web/assets/{background-image-picker-CVhVTosp.js → background-image-picker-glORbeMR.js} +1 -1
  24. package/dist/web/assets/background-image-picker-glORbeMR.js.br +0 -0
  25. package/dist/web/assets/background-image-picker-glORbeMR.js.gz +0 -0
  26. package/dist/web/assets/{clipboard-BboqFbFl.js → clipboard-BxrWcnRh.js} +1 -1
  27. package/dist/web/assets/clipboard-BxrWcnRh.js.br +0 -0
  28. package/dist/web/assets/clipboard-BxrWcnRh.js.gz +0 -0
  29. package/dist/web/assets/{code-highlighter-CTwU6LuI.js → code-highlighter-Cg1b4nzi.js} +1 -1
  30. package/dist/web/assets/code-highlighter-Cg1b4nzi.js.br +5 -0
  31. package/dist/web/assets/code-highlighter-Cg1b4nzi.js.gz +0 -0
  32. package/dist/web/assets/{commit-settings-panel-Ctb-LmoD.js → commit-settings-panel-C-ALJcjd.js} +1 -1
  33. package/dist/web/assets/commit-settings-panel-C-ALJcjd.js.br +0 -0
  34. package/dist/web/assets/commit-settings-panel-C-ALJcjd.js.gz +0 -0
  35. package/dist/web/assets/{dist-C12Fexcu.js → dist-D2KGXHMS.js} +1 -1
  36. package/dist/web/assets/dist-D2KGXHMS.js.br +0 -0
  37. package/dist/web/assets/dist-D2KGXHMS.js.gz +0 -0
  38. package/dist/web/assets/{download-Bl7A9H6k.js → download-05FmZQzE.js} +1 -1
  39. package/dist/web/assets/download-05FmZQzE.js.br +0 -0
  40. package/dist/web/assets/download-05FmZQzE.js.gz +0 -0
  41. package/dist/web/assets/{external-link-Dk0y44ny.js → external-link-DQSTtNhw.js} +1 -1
  42. package/dist/web/assets/external-link-DQSTtNhw.js.br +0 -0
  43. package/dist/web/assets/external-link-DQSTtNhw.js.gz +0 -0
  44. package/dist/web/assets/{file-navigation-view-preference-t7yCo7RL.js → file-navigation-view-preference-BYYgwRsz.js} +1 -1
  45. package/dist/web/assets/file-navigation-view-preference-BYYgwRsz.js.br +0 -0
  46. package/dist/web/assets/file-navigation-view-preference-BYYgwRsz.js.gz +0 -0
  47. package/dist/web/assets/file-review-dialog-DNWufkfZ.js +2 -0
  48. package/dist/web/assets/file-review-dialog-DNWufkfZ.js.br +0 -0
  49. package/dist/web/assets/file-review-dialog-DNWufkfZ.js.gz +0 -0
  50. package/dist/web/assets/git-commit-review-B3GGQldl.js +2 -0
  51. package/dist/web/assets/git-commit-review-B3GGQldl.js.br +0 -0
  52. package/dist/web/assets/git-commit-review-B3GGQldl.js.gz +0 -0
  53. package/dist/web/assets/{git-fork-5Bj0CoPx.js → git-fork-CElzN7bT.js} +1 -1
  54. package/dist/web/assets/git-fork-CElzN7bT.js.br +1 -0
  55. package/dist/web/assets/git-fork-CElzN7bT.js.gz +0 -0
  56. package/dist/web/assets/git-history-panel-BvNkd60B.js +1 -0
  57. package/dist/web/assets/git-history-panel-BvNkd60B.js.br +0 -0
  58. package/dist/web/assets/git-history-panel-BvNkd60B.js.gz +0 -0
  59. package/dist/web/assets/global-search-dialog-CZnsxRQ7.js +2 -0
  60. package/dist/web/assets/global-search-dialog-CZnsxRQ7.js.br +0 -0
  61. package/dist/web/assets/global-search-dialog-CZnsxRQ7.js.gz +0 -0
  62. package/dist/web/assets/global-settings-about-CnBVv1BA.js +1 -0
  63. package/dist/web/assets/global-settings-about-CnBVv1BA.js.br +0 -0
  64. package/dist/web/assets/global-settings-about-CnBVv1BA.js.gz +0 -0
  65. package/dist/web/assets/global-settings-page-VbyWoa5s.js +2 -0
  66. package/dist/web/assets/global-settings-page-VbyWoa5s.js.br +0 -0
  67. package/dist/web/assets/global-settings-page-VbyWoa5s.js.gz +0 -0
  68. package/dist/web/assets/{global-settings-pets-DOp0Bwxj.js → global-settings-pets-CAXRRfK_.js} +1 -1
  69. package/dist/web/assets/global-settings-pets-CAXRRfK_.js.br +0 -0
  70. package/dist/web/assets/global-settings-pets-CAXRRfK_.js.gz +0 -0
  71. package/dist/web/assets/{highlighted-body-OFNGDK62-BN31gHcf.js → highlighted-body-OFNGDK62-ClNmIb2W.js} +1 -1
  72. package/dist/web/assets/highlighted-body-OFNGDK62-ClNmIb2W.js.br +0 -0
  73. package/dist/web/assets/highlighted-body-OFNGDK62-ClNmIb2W.js.gz +0 -0
  74. package/dist/web/assets/{history-location-Cu79COFx.js → history-location-C2XDYAuy.js} +1 -1
  75. package/dist/web/assets/history-location-C2XDYAuy.js.br +0 -0
  76. package/dist/web/assets/history-location-C2XDYAuy.js.gz +0 -0
  77. package/dist/web/assets/{history-task-timeline-Db7jVbJQ.js → history-task-timeline-bx1YeO4E.js} +1 -1
  78. package/dist/web/assets/history-task-timeline-bx1YeO4E.js.br +0 -0
  79. package/dist/web/assets/history-task-timeline-bx1YeO4E.js.gz +0 -0
  80. package/dist/web/assets/image-preview-Cufuk95q.js +2 -0
  81. package/dist/web/assets/image-preview-Cufuk95q.js.br +0 -0
  82. package/dist/web/assets/image-preview-Cufuk95q.js.gz +0 -0
  83. package/dist/web/assets/image-preview-content-C9_jCSeW.js +41 -0
  84. package/dist/web/assets/image-preview-content-C9_jCSeW.js.br +0 -0
  85. package/dist/web/assets/image-preview-content-C9_jCSeW.js.gz +0 -0
  86. package/dist/web/assets/index-BJqxQCE6.css +2 -0
  87. package/dist/web/assets/index-BJqxQCE6.css.br +0 -0
  88. package/dist/web/assets/index-BJqxQCE6.css.gz +0 -0
  89. package/dist/web/assets/index-DudvUciK.js +4 -0
  90. package/dist/web/assets/index-DudvUciK.js.br +0 -0
  91. package/dist/web/assets/index-DudvUciK.js.gz +0 -0
  92. package/dist/web/assets/initial-deps-B7SS8XxM.js +2 -0
  93. package/dist/web/assets/initial-deps-B7SS8XxM.js.br +0 -0
  94. package/dist/web/assets/initial-deps-B7SS8XxM.js.gz +0 -0
  95. package/dist/web/assets/{initial-deps-DlvNWQT2.js → initial-deps-B8FrcWWN.js} +11 -11
  96. package/dist/web/assets/initial-deps-B8FrcWWN.js.br +0 -0
  97. package/dist/web/assets/{initial-deps-DlvNWQT2.js.gz → initial-deps-B8FrcWWN.js.gz} +0 -0
  98. package/dist/web/assets/initial-deps-CW5Jl6i2.js +1 -0
  99. package/dist/web/assets/initial-deps-CW5Jl6i2.js.br +0 -0
  100. package/dist/web/assets/initial-deps-CW5Jl6i2.js.gz +0 -0
  101. package/dist/web/assets/initial-deps-Cppvl2Gz.js +1 -0
  102. package/dist/web/assets/initial-deps-Cppvl2Gz.js.br +0 -0
  103. package/dist/web/assets/initial-deps-Cppvl2Gz.js.gz +0 -0
  104. package/dist/web/assets/initial-deps-DFOart6r.js +1 -0
  105. package/dist/web/assets/initial-deps-DFOart6r.js.br +0 -0
  106. package/dist/web/assets/initial-deps-DFOart6r.js.gz +0 -0
  107. package/dist/web/assets/initial-deps-DZ-sH4cr.js +1 -0
  108. package/dist/web/assets/initial-deps-DZ-sH4cr.js.br +0 -0
  109. package/dist/web/assets/initial-deps-DZ-sH4cr.js.gz +0 -0
  110. package/dist/web/assets/{installed-skills-pane-BjwoHdKg.js → installed-skills-pane-B0a8IOZ0.js} +1 -1
  111. package/dist/web/assets/installed-skills-pane-B0a8IOZ0.js.br +0 -0
  112. package/dist/web/assets/installed-skills-pane-B0a8IOZ0.js.gz +0 -0
  113. package/dist/web/assets/lazy-message-response-Q7-W7qvB.js +2 -0
  114. package/dist/web/assets/lazy-message-response-Q7-W7qvB.js.br +0 -0
  115. package/dist/web/assets/lazy-message-response-Q7-W7qvB.js.gz +0 -0
  116. package/dist/web/assets/{maximize-2-B5zOTtsd.js → maximize-2-CawekEKe.js} +1 -1
  117. package/dist/web/assets/maximize-2-CawekEKe.js.br +0 -0
  118. package/dist/web/assets/maximize-2-CawekEKe.js.gz +0 -0
  119. package/dist/web/assets/mcp-management-pane-BaRHPwX2.js +1 -0
  120. package/dist/web/assets/mcp-management-pane-BaRHPwX2.js.br +0 -0
  121. package/dist/web/assets/mcp-management-pane-BaRHPwX2.js.gz +0 -0
  122. package/dist/web/assets/mermaid-GHXKKRXX-DywTXJ81.js +1 -0
  123. package/dist/web/assets/mermaid-GHXKKRXX-DywTXJ81.js.br +0 -0
  124. package/dist/web/assets/mermaid-GHXKKRXX-DywTXJ81.js.gz +0 -0
  125. package/dist/web/assets/message-assistant-directive-CaNrh5lx.js +3 -0
  126. package/dist/web/assets/message-assistant-directive-CaNrh5lx.js.br +0 -0
  127. package/dist/web/assets/message-assistant-directive-CaNrh5lx.js.gz +0 -0
  128. package/dist/web/assets/{message-response-B1MUkN4A.js → message-response-WYZfuphQ.js} +25 -25
  129. package/dist/web/assets/message-response-WYZfuphQ.js.br +0 -0
  130. package/dist/web/assets/message-response-WYZfuphQ.js.gz +0 -0
  131. package/dist/web/assets/official-plugins-pane-KGXjJvv3.js +1 -0
  132. package/dist/web/assets/official-plugins-pane-KGXjJvv3.js.br +0 -0
  133. package/dist/web/assets/official-plugins-pane-KGXjJvv3.js.gz +0 -0
  134. package/dist/web/assets/{patch-diff-viewer-VOHL2ZQz.js → patch-diff-viewer-D_Ts5rez.js} +3 -3
  135. package/dist/web/assets/patch-diff-viewer-D_Ts5rez.js.br +0 -0
  136. package/dist/web/assets/patch-diff-viewer-D_Ts5rez.js.gz +0 -0
  137. package/dist/web/assets/pdf-preview-D46KssiK.js +3 -0
  138. package/dist/web/assets/pdf-preview-D46KssiK.js.br +0 -0
  139. package/dist/web/assets/pdf-preview-D46KssiK.js.gz +0 -0
  140. package/dist/web/assets/{personalization-settings-panel-Be8r7yUH.js → personalization-settings-panel-CllzRqsG.js} +1 -1
  141. package/dist/web/assets/personalization-settings-panel-CllzRqsG.js.br +0 -0
  142. package/dist/web/assets/personalization-settings-panel-CllzRqsG.js.gz +0 -0
  143. package/dist/web/assets/{project-file-popup-page-3kD_QzID.js → project-file-popup-page-CVnfABUU.js} +1 -1
  144. package/dist/web/assets/project-file-popup-page-CVnfABUU.js.br +0 -0
  145. package/dist/web/assets/project-file-popup-page-CVnfABUU.js.gz +0 -0
  146. package/dist/web/assets/project-source-panel-Dl6nuWfg.js +2 -0
  147. package/dist/web/assets/project-source-panel-Dl6nuWfg.js.br +0 -0
  148. package/dist/web/assets/project-source-panel-Dl6nuWfg.js.gz +0 -0
  149. package/dist/web/assets/{prompt-input-DpTzQpMu.js → prompt-input-Ceptl3B-.js} +1 -1
  150. package/dist/web/assets/prompt-input-Ceptl3B-.js.br +0 -0
  151. package/dist/web/assets/prompt-input-Ceptl3B-.js.gz +0 -0
  152. package/dist/web/assets/resources-en-CzuCDOU2.js +1 -0
  153. package/dist/web/assets/resources-en-CzuCDOU2.js.br +0 -0
  154. package/dist/web/assets/resources-en-CzuCDOU2.js.gz +0 -0
  155. package/dist/web/assets/scan-DyLrpouW.js +1 -0
  156. package/dist/web/assets/scan-DyLrpouW.js.br +3 -0
  157. package/dist/web/assets/scan-DyLrpouW.js.gz +0 -0
  158. package/dist/web/assets/{scheduled-task-date-time-picker-CA-dPI35.js → scheduled-task-date-time-picker-CpT4cTpn.js} +1 -1
  159. package/dist/web/assets/scheduled-task-date-time-picker-CpT4cTpn.js.br +0 -0
  160. package/dist/web/assets/scheduled-task-date-time-picker-CpT4cTpn.js.gz +0 -0
  161. package/dist/web/assets/scheduled-tasks-container-CRV2di5K.js +2 -0
  162. package/dist/web/assets/scheduled-tasks-container-CRV2di5K.js.br +0 -0
  163. package/dist/web/assets/scheduled-tasks-container-CRV2di5K.js.gz +0 -0
  164. package/dist/web/assets/{shiki-bundle-BZV5obW1.js → shiki-bundle-C942xz2H.js} +1 -1
  165. package/dist/web/assets/shiki-bundle-C942xz2H.js.br +2 -0
  166. package/dist/web/assets/shiki-bundle-C942xz2H.js.gz +0 -0
  167. package/dist/web/assets/skills-market-container--8qzUyrx.js +2 -0
  168. package/dist/web/assets/skills-market-container--8qzUyrx.js.br +0 -0
  169. package/dist/web/assets/skills-market-container--8qzUyrx.js.gz +0 -0
  170. package/dist/web/assets/{sliders-horizontal-CPjDJLH6.js → sliders-horizontal-C6QQuWdW.js} +1 -1
  171. package/dist/web/assets/sliders-horizontal-C6QQuWdW.js.br +0 -0
  172. package/dist/web/assets/sliders-horizontal-C6QQuWdW.js.gz +0 -0
  173. package/dist/web/assets/{split-workspace-menu-content-BlNIoxF5.js → split-workspace-menu-content-CAL4JQt9.js} +1 -1
  174. package/dist/web/assets/split-workspace-menu-content-CAL4JQt9.js.br +5 -0
  175. package/dist/web/assets/split-workspace-menu-content-CAL4JQt9.js.gz +0 -0
  176. package/dist/web/assets/third-party-marketplace-pane-Can5ly44.js +1 -0
  177. package/dist/web/assets/third-party-marketplace-pane-Can5ly44.js.br +0 -0
  178. package/dist/web/assets/third-party-marketplace-pane-Can5ly44.js.gz +0 -0
  179. package/dist/web/assets/{upload-BmVXQDIq.js → upload-BQhbr7lC.js} +1 -1
  180. package/dist/web/assets/upload-BQhbr7lC.js.br +0 -0
  181. package/dist/web/assets/upload-BQhbr7lC.js.gz +0 -0
  182. package/dist/web/assets/workbench-inspector-changes-D2ZiHtIT.js +1 -0
  183. package/dist/web/assets/workbench-inspector-changes-D2ZiHtIT.js.br +0 -0
  184. package/dist/web/assets/workbench-inspector-changes-D2ZiHtIT.js.gz +0 -0
  185. package/dist/web/assets/{workbench-pet-canvas-06NCdnyp.js → workbench-pet-canvas-DuBL3mip.js} +1 -1
  186. package/dist/web/assets/workbench-pet-canvas-DuBL3mip.js.br +0 -0
  187. package/dist/web/assets/workbench-pet-canvas-DuBL3mip.js.gz +0 -0
  188. package/dist/web/assets/workbench-shell-CfN-sr8U.js +16 -0
  189. package/dist/web/assets/workbench-shell-CfN-sr8U.js.br +0 -0
  190. package/dist/web/assets/workbench-shell-CfN-sr8U.js.gz +0 -0
  191. package/dist/web/index.html +8 -6
  192. package/dist/web/index.html.br +0 -0
  193. package/dist/web/index.html.gz +0 -0
  194. package/docs/git-workflow.md +31 -13
  195. package/package.json +1 -1
  196. package/dist/chunk-DRIJMD7S.js +0 -1040
  197. package/dist/chunk-HD7TOFDV.js +0 -3
  198. package/dist/web/assets/agent-settings-panel-B0qVVJ3_.js.br +0 -0
  199. package/dist/web/assets/agent-settings-panel-B0qVVJ3_.js.gz +0 -0
  200. package/dist/web/assets/arrow-down-BqiCeaan.js +0 -1
  201. package/dist/web/assets/arrow-down-BqiCeaan.js.br +0 -0
  202. package/dist/web/assets/arrow-down-BqiCeaan.js.gz +0 -0
  203. package/dist/web/assets/background-image-picker-CVhVTosp.js.br +0 -0
  204. package/dist/web/assets/background-image-picker-CVhVTosp.js.gz +0 -0
  205. package/dist/web/assets/clipboard-BboqFbFl.js.br +0 -0
  206. package/dist/web/assets/clipboard-BboqFbFl.js.gz +0 -0
  207. package/dist/web/assets/code-highlighter-CTwU6LuI.js.br +0 -0
  208. package/dist/web/assets/code-highlighter-CTwU6LuI.js.gz +0 -0
  209. package/dist/web/assets/commit-settings-panel-Ctb-LmoD.js.br +0 -0
  210. package/dist/web/assets/commit-settings-panel-Ctb-LmoD.js.gz +0 -0
  211. package/dist/web/assets/dist-C12Fexcu.js.br +0 -0
  212. package/dist/web/assets/dist-C12Fexcu.js.gz +0 -0
  213. package/dist/web/assets/download-Bl7A9H6k.js.br +0 -0
  214. package/dist/web/assets/download-Bl7A9H6k.js.gz +0 -0
  215. package/dist/web/assets/external-link-Dk0y44ny.js.br +0 -0
  216. package/dist/web/assets/external-link-Dk0y44ny.js.gz +0 -0
  217. package/dist/web/assets/file-navigation-view-preference-t7yCo7RL.js.br +0 -0
  218. package/dist/web/assets/file-navigation-view-preference-t7yCo7RL.js.gz +0 -0
  219. package/dist/web/assets/file-review-dialog-pkoiV9C7.js +0 -2
  220. package/dist/web/assets/file-review-dialog-pkoiV9C7.js.br +0 -0
  221. package/dist/web/assets/file-review-dialog-pkoiV9C7.js.gz +0 -0
  222. package/dist/web/assets/git-commit-review-BK6Ykgxx.js +0 -2
  223. package/dist/web/assets/git-commit-review-BK6Ykgxx.js.br +0 -0
  224. package/dist/web/assets/git-commit-review-BK6Ykgxx.js.gz +0 -0
  225. package/dist/web/assets/git-fork-5Bj0CoPx.js.br +0 -1
  226. package/dist/web/assets/git-fork-5Bj0CoPx.js.gz +0 -0
  227. package/dist/web/assets/git-history-panel-BYunPg_Y.js +0 -1
  228. package/dist/web/assets/git-history-panel-BYunPg_Y.js.br +0 -0
  229. package/dist/web/assets/git-history-panel-BYunPg_Y.js.gz +0 -0
  230. package/dist/web/assets/global-search-dialog-DKnqW_9p.js +0 -2
  231. package/dist/web/assets/global-search-dialog-DKnqW_9p.js.br +0 -0
  232. package/dist/web/assets/global-search-dialog-DKnqW_9p.js.gz +0 -0
  233. package/dist/web/assets/global-settings-about-CUWtouNQ.js +0 -1
  234. package/dist/web/assets/global-settings-about-CUWtouNQ.js.br +0 -0
  235. package/dist/web/assets/global-settings-about-CUWtouNQ.js.gz +0 -0
  236. package/dist/web/assets/global-settings-page-7DIqvRQV.js +0 -2
  237. package/dist/web/assets/global-settings-page-7DIqvRQV.js.br +0 -0
  238. package/dist/web/assets/global-settings-page-7DIqvRQV.js.gz +0 -0
  239. package/dist/web/assets/global-settings-pets-DOp0Bwxj.js.br +0 -0
  240. package/dist/web/assets/global-settings-pets-DOp0Bwxj.js.gz +0 -0
  241. package/dist/web/assets/highlighted-body-OFNGDK62-BN31gHcf.js.br +0 -0
  242. package/dist/web/assets/highlighted-body-OFNGDK62-BN31gHcf.js.gz +0 -0
  243. package/dist/web/assets/history-location-Cu79COFx.js.br +0 -0
  244. package/dist/web/assets/history-location-Cu79COFx.js.gz +0 -0
  245. package/dist/web/assets/history-task-timeline-Db7jVbJQ.js.br +0 -0
  246. package/dist/web/assets/history-task-timeline-Db7jVbJQ.js.gz +0 -0
  247. package/dist/web/assets/image-preview-NyGMcveW.js +0 -2
  248. package/dist/web/assets/image-preview-NyGMcveW.js.br +0 -0
  249. package/dist/web/assets/image-preview-NyGMcveW.js.gz +0 -0
  250. package/dist/web/assets/image-preview-content-BBgkjUms.js +0 -41
  251. package/dist/web/assets/image-preview-content-BBgkjUms.js.br +0 -0
  252. package/dist/web/assets/image-preview-content-BBgkjUms.js.gz +0 -0
  253. package/dist/web/assets/index-Bea8TUta.css +0 -2
  254. package/dist/web/assets/index-Bea8TUta.css.br +0 -0
  255. package/dist/web/assets/index-Bea8TUta.css.gz +0 -0
  256. package/dist/web/assets/index-CGGXkww0.js +0 -4
  257. package/dist/web/assets/index-CGGXkww0.js.br +0 -0
  258. package/dist/web/assets/index-CGGXkww0.js.gz +0 -0
  259. package/dist/web/assets/initial-deps-CJDv_c3Y.js +0 -1
  260. package/dist/web/assets/initial-deps-CJDv_c3Y.js.br +0 -0
  261. package/dist/web/assets/initial-deps-CJDv_c3Y.js.gz +0 -0
  262. package/dist/web/assets/initial-deps-Dk9v1WhK.js +0 -1
  263. package/dist/web/assets/initial-deps-Dk9v1WhK.js.br +0 -0
  264. package/dist/web/assets/initial-deps-Dk9v1WhK.js.gz +0 -0
  265. package/dist/web/assets/initial-deps-DlvNWQT2.js.br +0 -0
  266. package/dist/web/assets/initial-deps-DwgXix97.js +0 -2
  267. package/dist/web/assets/initial-deps-DwgXix97.js.br +0 -0
  268. package/dist/web/assets/initial-deps-DwgXix97.js.gz +0 -0
  269. package/dist/web/assets/installed-skills-pane-BjwoHdKg.js.br +0 -0
  270. package/dist/web/assets/installed-skills-pane-BjwoHdKg.js.gz +0 -0
  271. package/dist/web/assets/lazy-message-response-lBhr_q1o.js +0 -2
  272. package/dist/web/assets/lazy-message-response-lBhr_q1o.js.br +0 -5
  273. package/dist/web/assets/lazy-message-response-lBhr_q1o.js.gz +0 -0
  274. package/dist/web/assets/maximize-2-B5zOTtsd.js.br +0 -0
  275. package/dist/web/assets/maximize-2-B5zOTtsd.js.gz +0 -0
  276. package/dist/web/assets/mcp-management-pane-sSqs8EvB.js +0 -1
  277. package/dist/web/assets/mcp-management-pane-sSqs8EvB.js.br +0 -0
  278. package/dist/web/assets/mcp-management-pane-sSqs8EvB.js.gz +0 -0
  279. package/dist/web/assets/mermaid-GHXKKRXX-DqH-ybrY.js +0 -1
  280. package/dist/web/assets/mermaid-GHXKKRXX-DqH-ybrY.js.br +0 -1
  281. package/dist/web/assets/mermaid-GHXKKRXX-DqH-ybrY.js.gz +0 -0
  282. package/dist/web/assets/message-assistant-directive-B5_Hjs0F.js +0 -3
  283. package/dist/web/assets/message-assistant-directive-B5_Hjs0F.js.br +0 -0
  284. package/dist/web/assets/message-assistant-directive-B5_Hjs0F.js.gz +0 -0
  285. package/dist/web/assets/message-response-B1MUkN4A.js.br +0 -0
  286. package/dist/web/assets/message-response-B1MUkN4A.js.gz +0 -0
  287. package/dist/web/assets/official-plugins-pane-wD25peXQ.js +0 -1
  288. package/dist/web/assets/official-plugins-pane-wD25peXQ.js.br +0 -0
  289. package/dist/web/assets/official-plugins-pane-wD25peXQ.js.gz +0 -0
  290. package/dist/web/assets/patch-diff-viewer-VOHL2ZQz.js.br +0 -0
  291. package/dist/web/assets/patch-diff-viewer-VOHL2ZQz.js.gz +0 -0
  292. package/dist/web/assets/pdf-preview-BWJWSwA6.js +0 -3
  293. package/dist/web/assets/pdf-preview-BWJWSwA6.js.br +0 -0
  294. package/dist/web/assets/pdf-preview-BWJWSwA6.js.gz +0 -0
  295. package/dist/web/assets/personalization-settings-panel-Be8r7yUH.js.br +0 -0
  296. package/dist/web/assets/personalization-settings-panel-Be8r7yUH.js.gz +0 -0
  297. package/dist/web/assets/project-file-popup-page-3kD_QzID.js.br +0 -0
  298. package/dist/web/assets/project-file-popup-page-3kD_QzID.js.gz +0 -0
  299. package/dist/web/assets/project-source-panel-ZKxkrM_q.js +0 -2
  300. package/dist/web/assets/project-source-panel-ZKxkrM_q.js.br +0 -0
  301. package/dist/web/assets/project-source-panel-ZKxkrM_q.js.gz +0 -0
  302. package/dist/web/assets/prompt-input-DpTzQpMu.js.br +0 -0
  303. package/dist/web/assets/prompt-input-DpTzQpMu.js.gz +0 -0
  304. package/dist/web/assets/resources-en-gaD7QZkd.js +0 -1
  305. package/dist/web/assets/resources-en-gaD7QZkd.js.br +0 -0
  306. package/dist/web/assets/resources-en-gaD7QZkd.js.gz +0 -0
  307. package/dist/web/assets/scheduled-task-date-time-picker-CA-dPI35.js.br +0 -0
  308. package/dist/web/assets/scheduled-task-date-time-picker-CA-dPI35.js.gz +0 -0
  309. package/dist/web/assets/scheduled-tasks-container-D0Zpvskg.js +0 -2
  310. package/dist/web/assets/scheduled-tasks-container-D0Zpvskg.js.br +0 -0
  311. package/dist/web/assets/scheduled-tasks-container-D0Zpvskg.js.gz +0 -0
  312. package/dist/web/assets/sheet-BSeAYy7W.js +0 -1
  313. package/dist/web/assets/sheet-BSeAYy7W.js.br +0 -0
  314. package/dist/web/assets/sheet-BSeAYy7W.js.gz +0 -0
  315. package/dist/web/assets/shiki-bundle-BZV5obW1.js.br +0 -2
  316. package/dist/web/assets/shiki-bundle-BZV5obW1.js.gz +0 -0
  317. package/dist/web/assets/skills-market-container-iC2hoU-7.js +0 -2
  318. package/dist/web/assets/skills-market-container-iC2hoU-7.js.br +0 -0
  319. package/dist/web/assets/skills-market-container-iC2hoU-7.js.gz +0 -0
  320. package/dist/web/assets/sliders-horizontal-CPjDJLH6.js.br +0 -1
  321. package/dist/web/assets/sliders-horizontal-CPjDJLH6.js.gz +0 -0
  322. package/dist/web/assets/split-workspace-menu-content-BlNIoxF5.js.br +0 -3
  323. package/dist/web/assets/split-workspace-menu-content-BlNIoxF5.js.gz +0 -0
  324. package/dist/web/assets/third-party-marketplace-pane-DvF5pfS7.js +0 -1
  325. package/dist/web/assets/third-party-marketplace-pane-DvF5pfS7.js.br +0 -0
  326. package/dist/web/assets/third-party-marketplace-pane-DvF5pfS7.js.gz +0 -0
  327. package/dist/web/assets/upload-BmVXQDIq.js.br +0 -0
  328. package/dist/web/assets/upload-BmVXQDIq.js.gz +0 -0
  329. package/dist/web/assets/workbench-inspector-changes-DGOGbxn8.js +0 -2
  330. package/dist/web/assets/workbench-inspector-changes-DGOGbxn8.js.br +0 -0
  331. package/dist/web/assets/workbench-inspector-changes-DGOGbxn8.js.gz +0 -0
  332. package/dist/web/assets/workbench-pet-canvas-06NCdnyp.js.br +0 -0
  333. package/dist/web/assets/workbench-pet-canvas-06NCdnyp.js.gz +0 -0
  334. package/dist/web/assets/workbench-shell-BmVPybzn.js +0 -16
  335. package/dist/web/assets/workbench-shell-BmVPybzn.js.br +0 -0
  336. package/dist/web/assets/workbench-shell-BmVPybzn.js.gz +0 -0
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {i,m,l,a,b,f,k as k$1,j as j$3,g,h as h$1,c}from'./chunk-PQPYP3AR.js';import {i as i$2,j as j$2,h}from'./chunk-DRIJMD7S.js';import'./chunk-GFASBWL4.js';import {u,i as i$1,p,x,v as v$1,j as j$1}from'./chunk-ZK7RF5XC.js';import'./chunk-XJOOU7A5.js';import'./chunk-3WW7LK46.js';import {qd,ia}from'./chunk-HD7TOFDV.js';import'./chunk-IV4NRE4S.js';import'./chunk-YXJGRSCL.js';import {homedir,tmpdir}from'os';import {join,dirname,parse,basename,win32,resolve}from'path';import {fileURLToPath}from'url';import {mkdtemp,rm,readFile,access}from'fs/promises';import {spawn}from'child_process';import {constants,existsSync}from'fs';import {createInterface}from'readline/promises';createRequire(import.meta.url);
3
- var V={version:"0.36.0"};var He=2*6e4;function me(e,t=process.platform,r=process.execPath,n=false){let s=join(dirname(r),"..","lib","node_modules","npm","bin","npm-cli.js"),i=t==="win32"?{args:[win32.join(win32.dirname(r),"node_modules","npm","bin","npm-cli.js"),...e],command:r}:existsSync(s)?{args:[s,...e],command:r}:{args:e,command:"npm"};if(!n)return i;if(t==="win32")throw new Error("Elevated npm updates are not supported on Windows");return {args:["--",i.command,...i.args],command:"sudo"}}async function ge(e,t=process.platform){if(t!=="linux"||process.getuid?.()===0)return false;try{return await access(dirname(e),constants.W_OK),!1}catch{return true}}async function fe(e,t={}){let r=me(e,process.platform,process.execPath,t.elevated),n=t.elevated===true;return new Promise((s,i)=>{let o=spawn(r.command,r.args,{shell:false,signal:t.signal,stdio:n?["inherit","pipe","inherit"]:["ignore","pipe","pipe"],timeout:He,windowsHide:true}),l="",p="";o.stdout?.setEncoding("utf8"),o.stdout?.on("data",a=>{l+=a;}),o.stderr?.setEncoding("utf8"),o.stderr?.on("data",a=>{p+=a;}),o.once("error",i),o.once("close",(a,g)=>{if(a===0){s(l);return}let u=p.trim();i(new Error(`npm command failed${g===null?` with exit code ${String(a)}`:` with signal ${g}`}${u===""?"":`: ${u}`}`));});})}var ye="https://registry.npmmirror.com",_="https://registry.npmjs.org",Ge=3e3;async function L(e){e?.throwIfAborted();let t=new AbortController,r=AbortSignal.any([t.signal,AbortSignal.timeout(Ge),...e===void 0?[]:[e]]),n=[_,ye];try{let s=await Promise.any(n.map(async i=>{let o=await fetch(`${i}/@openai/codex`,{method:"HEAD",headers:{"user-agent":ia},signal:r});if(!o.ok)throw new Error(`Registry probe returned ${String(o.status)}`);return i}));return e?.throwIfAborted(),s===_?n:[ye,_]}catch{return e?.throwIfAborted(),n}finally{t.abort();}}async function $(e,t,r){let n=r??await L(t);t?.throwIfAborted();try{return await e(n[0])}catch{return t?.throwIfAborted(),e(n[1])}}function we(e,t,r={},n){return $(s=>e([...t.slice(0,1),`--registry=${s}`,`--@openai:registry=${s}`,`--@bryanhu:registry=${s}`,"--fetch-retries=0","--fetch-timeout=30000",...t.slice(1)],r),r.signal,n)}var j="@bryanhu/codexly",Je="0.1.0",Ke="https://raw.githubusercontent.com/BryanHoo/Codexly/v",be=1e4,Ze=32*1024,et=5*6e4,tt=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:-((?:(?:0|[1-9][0-9]*)|[0-9]*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:(?:0|[1-9][0-9]*)|[0-9]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/u,v=class extends Error{constructor(r,n){super(n);this.code=r;this.name="AppUpdateError";}code},R=class extends Error{};function E(e){let t=tt.exec(e);if(t!==null)return {core:[t[1]??"0",t[2]??"0",t[3]??"0"],prerelease:t[4]?.split(".")??[]}}function xe(e,t){return e.length!==t.length?e.length-t.length:e===t?0:e<t?-1:1}function rt(e,t){if(e.length===0||t.length===0)return e.length===t.length?0:e.length===0?1:-1;for(let r=0;r<Math.max(e.length,t.length);r+=1){let n=e[r],s=t[r];if(n===void 0||s===void 0)return n===s?0:n===void 0?-1:1;if(n===s)continue;let i=/^\d+$/u.test(n),o=/^\d+$/u.test(s);return i&&o?xe(n,s):i?-1:o?1:n<s?-1:1}return 0}function nt(e,t){let r=Buffer.from(e,"utf8");return r.byteLength<=t?e:new TextDecoder("utf-8",{fatal:false}).decode(r.subarray(0,t)).trimEnd()}function ot(e,t){let r=e.split(/\r?\n/u),n=r.findIndex(l=>l.startsWith(`## [${t}]`));if(n<0)return;let s=r.slice(n+1).findIndex(l=>/^## \[[^\]]+\]/u.test(l)),i=s<0?r.length:n+1+s,o=r.slice(n+1,i).join(`
4
- `).trim();return o===""?void 0:nt(o,Ze)}function S(e,t){let r=E(e),n=E(t);if(r===void 0||n===void 0)return false;for(let s=0;s<r.core.length;s+=1){let i=r.core[s],o=n.core[s];if(i===void 0||o===void 0)return false;let l=xe(i,o);if(l!==0)return l>0}return rt(r.prerelease,n.prerelease)>0}async function st(){return $(it)}async function it(e){let t=await fetch(`${e}/-/package/${encodeURIComponent(j)}/dist-tags`,{headers:{accept:"application/json","user-agent":ia},signal:AbortSignal.timeout(be)});if(t.status===401||t.status===404)throw new R("Package has not been published");if(!t.ok)throw new Error(`Registry returned ${String(t.status)}`);let r=await t.json();if(typeof r!="object"||r===null||!("latest"in r)||typeof r.latest!="string"||E(r.latest)===void 0)throw new Error("Registry returned an invalid latest version");return r.latest}async function at(e){let t=await fetch(`${Ke}${e}/CHANGELOG.md`,{headers:{accept:"text/markdown","user-agent":ia},signal:AbortSignal.timeout(be)});if(!t.ok)throw new Error(`GitHub returned ${String(t.status)}`);return t.text()}async function ct(){let e=dirname(fileURLToPath(import.meta.url)),t=parse(e).root;for(;e!==t;){try{let r=JSON.parse(await readFile(join(e,"package.json"),"utf8"));if(typeof r=="object"&&r!==null&&"name"in r&&r.name===j)return e}catch{}e=dirname(e);}throw new Error("Unable to locate the installed Codexly package")}function lt(e){let t=dirname(dirname(e));if(basename(t)!=="node_modules")throw new Error("Codexly is not installed as a global npm package");let r=dirname(t);return basename(r)==="lib"?dirname(r):r}function pt(e,t){let r=JSON.parse(e),s=(Array.isArray(r)?r:[])[0];if(typeof s!="object"||s===null||!("filename"in s)||typeof s.filename!="string"||basename(s.filename)!==s.filename)throw new Error("npm pack returned an invalid archive name");return resolve(t,s.filename)}async function he(e,t,r,n){let s=await r(["pack","--ignore-scripts","--json","--pack-destination",t,e],{signal:n});return pt(s,t)}async function dt(e,t={}){let r=t.runNpm??fe,n,s=async(c,m)=>(n??=L(m?.signal),we(r,c,m,await n)),i=t.currentPackageRoot??await ct(),o=`--prefix=${lt(i)}`,l=await mkdtemp(join(tmpdir(),"codexly-update-")),p=new AbortController,a=()=>{p.abort(new Error("Codexly update interrupted"));},g,u=false,y=false;process.once("SIGINT",a),process.once("SIGTERM",a);try{u=await(t.requiresElevation??ge)(i),t.onProgress?.({percent:10,phase:"backing-up"}),g=await he(i,l,r,p.signal),t.onProgress?.({percent:30,phase:"downloading"});let c=await he(`${j}@${e}`,l,s,p.signal);if(p.signal.aborted)throw p.signal.reason;t.onProgress?.({percent:80,phase:"installing"}),y=!0,await s(["install","--global",o,c],{elevated:u,signal:p.signal});}catch(c){if(y&&g!==void 0)try{t.onProgress?.({percent:90,phase:"rolling-back"}),await s(["install","--global",o,g],{elevated:u});}catch(m){let d=c instanceof Error?c.message:String(c),f=m instanceof Error?m.message:String(m);throw new Error(`Codexly update failed: ${d}; rollback failed: ${f}`,{cause:m})}throw c}finally{process.off("SIGINT",a),process.off("SIGTERM",a),await rm(l,{force:true,recursive:true});}}async function ut(e,t){await dt(e,t===void 0?{}:{onProgress:t});}function k(e){let t=e.fetchChangelog??at,r=e.fetchLatestVersion??st,n=e.runNpmInstall??ut,s,i=null,o,l,p,a,g=async()=>{try{let c=await r();if(E(c)===void 0)throw new Error("Invalid version");return c}catch(c){if(c instanceof R&&e.appVersion===Je)return e.appVersion;throw new v("UPDATE_CHECK_FAILED","Failed to check for Codexly updates")}},u=async(c=false)=>(c&&(await l?.catch(()=>{}),o=void 0),o!==void 0&&Date.now()<o.expiresAt?o.version:(l??=g().then(m=>(o={version:m,expiresAt:Date.now()+et},m)).finally(()=>{l=void 0;}),l)),y=c=>{if(p?.version===c)return Promise.resolve(p.text);if(a?.version===c)return a.promise;let m=t(c).then(d=>{let f=ot(d,c)??null;return a?.promise===m&&(p={version:c,text:f}),f}).finally(()=>{a?.promise===m&&(a=void 0);});return a={version:c,promise:m},m};return {async install(c,m){let d=h=>{i=h,m?.(h);};d({percent:5,phase:"checking"});let f=await u(true);if(!(S(c,e.appVersion)&&!S(c,f))||!S(f,e.appVersion))throw i=null,new v("UPDATE_NOT_AVAILABLE","The requested update is not available");try{await n(f,d);}catch{throw new v("UPDATE_INSTALL_FAILED","Failed to install the Codexly update")}return s=f,d({percent:100,phase:"completed"}),{appVersion:e.appVersion,codexVersion:e.codexVersion,latestVersion:f,releaseNotes:null,status:"restart-required",updateAvailable:false}},readProgress(){return Promise.resolve({progress:i})},async read(){let c;try{c=await u();}catch{return {appVersion:e.appVersion,codexVersion:e.codexVersion,latestVersion:null,releaseNotes:null,status:"check-failed",updateAvailable:false}}if(s===c)return {appVersion:e.appVersion,codexVersion:e.codexVersion,latestVersion:c,releaseNotes:null,status:"restart-required",updateAvailable:false};let m=S(c,e.appVersion),d=null;if(m)try{d=await y(c);}catch{d=null;}return {appVersion:e.appVersion,codexVersion:e.codexVersion,latestVersion:c,releaseNotes:d,status:m?"available":"current",updateAvailable:m}}}}function mt(e){return e instanceof Error&&"code"in e&&e.code==="EADDRINUSE"}async function ve(e,t,r){for(let n=r;n<=65535;n+=1)try{return await e.listen({host:t,port:n}),n}catch(s){if(!mt(s)||n===65535)throw s}throw new Error(`\u7AEF\u53E3 ${String(r)} \u5230 ${String(65535)} \u5747\u4E0D\u53EF\u7528`)}var D="CODEXLY_STARTUP_UPDATE_APPLIED";function Ae(e){let t=k({appVersion:e,codexVersion:"not-started"});return {check:async()=>{let r=await t.read();return {latestVersion:r.latestVersion,status:r.status==="available"?"available":r.status==="check-failed"?"check-failed":"current"}},install:async(r,n)=>{await t.install(r,n);}}}function Ce(e){let t={"backing-up":"\u6B63\u5728\u5907\u4EFD\u5F53\u524D\u7248\u672C",checking:"\u6B63\u5728\u786E\u8BA4\u6700\u65B0\u7248\u672C",completed:"\u66F4\u65B0\u5B89\u88C5\u5B8C\u6210",downloading:"\u6B63\u5728\u4E0B\u8F7D\u66F4\u65B0\u5305",installing:"\u6B63\u5728\u5B89\u88C5\u65B0\u7248\u672C","rolling-back":"\u5B89\u88C5\u5931\u8D25\uFF0C\u6B63\u5728\u6062\u590D\u539F\u7248\u672C"},r=Math.round(e.percent/5);return `[${`${"\u2588".repeat(r)}${"\u2591".repeat(20-r)}`}] ${String(e.percent)}% ${t[e.phase]}`}async function Se(e,t){if(!process.stdin.isTTY||!process.stdout.isTTY)return false;let r=createInterface({input:process.stdin,output:process.stdout});try{let s=(await r.question(`\u53D1\u73B0 Codexly \u65B0\u7248\u672C ${t}\uFF08\u5F53\u524D ${e}\uFF09\uFF0C\u662F\u5426\u66F4\u65B0\u540E\u542F\u52A8\uFF1F[y/N] `)).trim().toLocaleLowerCase();return s==="y"||s==="yes"}finally{r.close();}}async function Re(e){let t=process.argv[1];if(t===void 0)throw new Error("\u65E0\u6CD5\u786E\u5B9A Codexly CLI \u5165\u53E3");return new Promise((r,n)=>{let s=spawn(process.execPath,[t,...e],{env:{...process.env,[D]:"1"},shell:false,stdio:"inherit",windowsHide:true});s.once("error",n),s.once("exit",(i,o)=>{if(o!==null){n(new Error(`\u66F4\u65B0\u540E\u7684 Codexly \u542F\u52A8\u8FDB\u7A0B\u88AB\u4FE1\u53F7 ${o} \u7EC8\u6B62`));return}r(i??1);});})}var wt=500;function ht(e,t){return t==="darwin"?[{args:[e],executable:"open"}]:t==="win32"?[{args:["/c","start","",e],executable:"cmd.exe"}]:[{args:[e],executable:"xdg-open"},{args:["open",e],executable:"gio"},{args:[e],executable:"sensible-browser"}]}function Pt(e){return new Promise((t,r)=>{let n=spawn(e.executable,[...e.args],{detached:true,shell:false,stdio:"ignore"}),s=false,i,o=l=>{s||(s=true,i!==void 0&&clearTimeout(i),l());};n.once("error",l=>{o(()=>{r(l);});}),n.once("spawn",()=>{i=setTimeout(()=>{o(()=>{n.unref(),t();});},wt);}),n.once("exit",(l,p)=>{if(l===0){o(t);return}let a=p?`signal ${p}`:`code ${String(l)}`;o(()=>{r(Object.assign(new Error(`${e.executable} exited with ${a}`),{code:"LAUNCHER_EXIT"}));});});})}async function Ee(e,t={}){let r=t.platform??process.platform,n=ht(e,r),s=t.launch??Pt,i;for(let o of n)try{await s(o);return}catch(l){if(r!=="linux"&&l.code!=="ENOENT")throw l;i=l;}throw new Error("No supported browser launcher is installed",{cause:i})}var ke=Ae(V.version),xt={appVersion:V.version,checkAppUpdate:ke.check,checkCodexVersion:j$1,confirmAppUpdate:Se,createProjectRepository:({client:e,projection:t})=>new v$1(e,t),createPetProvider:x,createStateRepository:e=>j$2.open(e),createRuntimeProvider:p,createServer:async e=>{let t=await i$2({...e});return {close:()=>t.close(),listen:r=>t.listen(r)}},generateLanPairingCode:l,listLanAccessUrls:m,locateCodexBinary:i$1,nodeVersion:process.versions.node,openBrowser:Ee,installAppUpdate:ke.install,restartAfterUpdate:Re,startCodexAppServer:u,webRoot:fileURLToPath(new URL("../dist/web",import.meta.url))};function vt(e){let t=Number(e.split(".")[0]);if(!Number.isInteger(t)||t<24)throw new Error(`\u9700\u8981 Node.js 24.0.0 \u6216\u66F4\u9AD8\u7248\u672C\uFF0C\u5F53\u524D\u7248\u672C\u4E3A ${e}`)}function Ie(e){return e.codexHome??process.env.CODEX_HOME??join(homedir(),".codex")}function At(e){if(!e.writable)throw new Error("SQLite database is not writable");if(e.migrationVersion<1)throw new Error("SQLite migrations are not applied");if(e.integrityCheck!=="ok")throw new Error(`SQLite integrity_check failed: ${e.integrityCheck}`);if(e.journalMode.toLocaleLowerCase()!=="wal")throw new Error(`SQLite journal_mode must be WAL; found ${e.journalMode}`);if(!e.foreignKeys||e.synchronous!=="normal"||e.busyTimeout!==5e3)throw new Error("SQLite PRAGMA configuration is invalid")}async function Ct(e,t,r){let n=c(e,new Set(["--codex-bin","--codex-home"]));vt(t.nodeVersion),r.success(`Node.js ${t.nodeVersion}`);let s=await t.locateCodexBinary(n.codexBin?{explicitPath:n.codexBin}:{}),i=await t.checkCodexVersion(s.path);r.success(`Codex ${i.version} (${s.path})`);let o=Ie(n),l=await t.createStateRepository(join(o,"codexly","state.sqlite3"));try{let p=await l.diagnose();At(p),r.success(`SQLite \u53EF\u5199 (${join(o,"codexly","state.sqlite3")})`),r.success(`SQLite migration ${String(p.migrationVersion)}`),r.success(`SQLite integrity_check ${p.integrityCheck}`),r.success(`SQLite journal_mode ${p.journalMode}`),r.success(`SQLite PRAGMA foreign_keys=ON synchronous=NORMAL busy_timeout=${String(p.busyTimeout)}`);}finally{await l.close();}return 0}async function Te(e,t,r,n,s){let i=s?.environment??process.env,o=s?.options??f(e,i);if(o.sessionTtl!==void 0&&o.lan!==true)throw new Error("--session-ttl \u53EA\u80FD\u4E0E --lan \u4E00\u8D77\u4F7F\u7528");if(o.lanPassword!==void 0&&o.lan!==true)throw new Error("--lan-password \u53EA\u80FD\u4E0E --lan \u4E00\u8D77\u4F7F\u7528");o.lanPassword!==void 0&&k$1(o.lanPassword);let l=o.allowedHosts?.map(h),p=o.port??3210,a=o.sessionTtl?j$3(o.sessionTtl):void 0,g$1=o.lan!==true?void 0:{pairingCode:o.lanPassword??t.generateLanPairingCode(),...a===void 0?{}:{sessionTtlMs:a}};if(!s?.background&&process.env[D]!=="1"){let f=await t.checkAppUpdate();if(f.status==="check-failed")n.warning("\u65E0\u6CD5\u68C0\u67E5 Codexly \u66F4\u65B0\uFF0C\u5C06\u7EE7\u7EED\u542F\u52A8\u5F53\u524D\u7248\u672C\u3002");else if(f.status==="available"&&f.latestVersion!==null){if(await t.confirmAppUpdate(t.appVersion,f.latestVersion))return n.info(`\u6B63\u5728\u66F4\u65B0 Codexly \u5230 ${f.latestVersion}...`),await t.installAppUpdate(f.latestVersion,h=>{n.info(Ce(h));}),n.success(`Codexly \u5DF2\u66F4\u65B0\u5230 ${f.latestVersion}\uFF0C\u6B63\u5728\u91CD\u65B0\u542F\u52A8\u3002`),t.restartAfterUpdate(["start",...e]);n.info("\u5DF2\u8DF3\u8FC7\u66F4\u65B0\uFF0C\u7EE7\u7EED\u542F\u52A8\u5F53\u524D\u7248\u672C\u3002");}}let u=r?null:g(),y=r??u?.signal;if(!y)throw new Error("Shutdown signal is unavailable");let c,m,d;try{let f=Ie(o),A=homedir(),h={...i,...o.codexHome?{CODEX_HOME:o.codexHome}:{}};d=await t.createStateRepository(join(f,"codexly","state.sqlite3"));let B=d,H=()=>{let w=()=>t.startCodexAppServer({appVersion:t.appVersion,cwd:A,env:h,...o.codexBin?{binaryPath:o.codexBin}:{}});return B.withScheduledTaskLock===void 0?w():B.withScheduledTaskLock(w)};c=await H();let N=t.createProjectRepository({client:c.client,projection:d}),I=await d.readProjectSourceMigration();I.completed||await N.migrateLegacyProjects({recoverUnassigned:I.recoverUnassigned}),await N.synchronize(),I.completed||await d.completeProjectSourceMigration();let Oe=d,Ve=await t.createRuntimeProvider({codexHome:f,client:c.client,modelCatalogRuntimeFactory:H,readTaskTitleModel:async()=>(await Oe.readGlobalSettings())?.commitMessageModel??qd}),_e=t.createPetProvider({codexHome:f}),U=k({appVersion:t.appVersion,codexVersion:c.version.version});m=await t.createServer({...s?.background?{logDestination:{write:n.plain}}:{},...g$1===void 0?{}:{access:g$1},...l===void 0?{}:{allowedHosts:l},projectRepository:N,providerConnectionRepository:d,provider:Ve,preloadModelCatalog:!0,petProvider:_e,installAppUpdate:U.install,readAppInfo:U.read,readAppUpdateProgress:U.readProgress,queueRepository:d,scheduledTaskAttachmentRepository:d,scheduledTaskRepository:d,submissionRepository:d,asyncQuestionRepository:d,projectTodoRepository:d,settingsRepository:d,staticRoot:t.webRoot,standaloneCwd:o.workspaceRoots?.[0]??A,...o.workspaceRoots===void 0?{}:{workspaceRoots:o.workspaceRoots}});let G=o.lan===!0?"0.0.0.0":"127.0.0.1",P=await ve(m,G,p);if(P!==p&&n.warning(`\u7AEF\u53E3 ${String(p)} \u5DF2\u88AB\u5360\u7528\uFF0C\u5DF2\u81EA\u52A8\u5207\u6362\u5230\u7AEF\u53E3 ${String(P)}\u3002`),await s?.onReady({host:G,port:P}),n.success("Codexly \u5DF2\u542F\u52A8"),g$1!==void 0){let w=t.listLanAccessUrls(P);n.warning("\u5C40\u57DF\u7F51\u6A21\u5F0F\u4F7F\u7528\u672A\u52A0\u5BC6\u7684 HTTP\uFF0C\u8BF7\u4EC5\u5728\u53EF\u4FE1\u7F51\u7EDC\u4E2D\u4F7F\u7528\u3002"),w.length===0?n.warning("\u672A\u627E\u5230\u53EF\u7528\u7684\u5C40\u57DF\u7F51 IPv4 \u5730\u5740\uFF0C\u670D\u52A1\u4ECD\u5728\u8FD0\u884C\u3002"):n.info(`\u5C40\u57DF\u7F51\u8BBF\u95EE\u5730\u5740:
2
+ import {createRequire}from'node:module';import {i,m,l,a,b,f,k as k$1,j as j$3,g,h as h$1,c}from'./chunk-PQPYP3AR.js';import {i as i$2,j as j$2,h}from'./chunk-PFNMH4LN.js';import'./chunk-5AELLXXE.js';import {u,i as i$1,p,x,v as v$1,j as j$1}from'./chunk-5ULADQG3.js';import'./chunk-XJOOU7A5.js';import'./chunk-3WW7LK46.js';import {rd,ia}from'./chunk-63NQMTXZ.js';import'./chunk-IV4NRE4S.js';import'./chunk-YXJGRSCL.js';import {homedir,tmpdir}from'os';import {join,dirname,parse,basename,win32,resolve}from'path';import {fileURLToPath}from'url';import {mkdtemp,rm,readFile,access}from'fs/promises';import {spawn}from'child_process';import {constants,existsSync}from'fs';import {createInterface}from'readline/promises';createRequire(import.meta.url);
3
+ var V={version:"0.37.1"};var He=2*6e4;function me(e,t=process.platform,r=process.execPath,n=false){let s=join(dirname(r),"..","lib","node_modules","npm","bin","npm-cli.js"),i=t==="win32"?{args:[win32.join(win32.dirname(r),"node_modules","npm","bin","npm-cli.js"),...e],command:r}:existsSync(s)?{args:[s,...e],command:r}:{args:e,command:"npm"};if(!n)return i;if(t==="win32")throw new Error("Elevated npm updates are not supported on Windows");return {args:["--",i.command,...i.args],command:"sudo"}}async function ge(e,t=process.platform){if(t!=="linux"||process.getuid?.()===0)return false;try{return await access(dirname(e),constants.W_OK),!1}catch{return true}}async function fe(e,t={}){let r=me(e,process.platform,process.execPath,t.elevated),n=t.elevated===true;return new Promise((s,i)=>{let o=spawn(r.command,r.args,{shell:false,signal:t.signal,stdio:n?["inherit","pipe","inherit"]:["ignore","pipe","pipe"],timeout:He,windowsHide:true}),l="",p="";o.stdout?.setEncoding("utf8"),o.stdout?.on("data",a=>{l+=a;}),o.stderr?.setEncoding("utf8"),o.stderr?.on("data",a=>{p+=a;}),o.once("error",i),o.once("close",(a,g)=>{if(a===0){s(l);return}let u=p.trim();i(new Error(`npm command failed${g===null?` with exit code ${String(a)}`:` with signal ${g}`}${u===""?"":`: ${u}`}`));});})}var ye="https://registry.npmmirror.com",_="https://registry.npmjs.org",Ge=3e3;async function L(e){e?.throwIfAborted();let t=new AbortController,r=AbortSignal.any([t.signal,AbortSignal.timeout(Ge),...e===void 0?[]:[e]]),n=[_,ye];try{let s=await Promise.any(n.map(async i=>{let o=await fetch(`${i}/@openai/codex`,{method:"HEAD",headers:{"user-agent":ia},signal:r});if(!o.ok)throw new Error(`Registry probe returned ${String(o.status)}`);return i}));return e?.throwIfAborted(),s===_?n:[ye,_]}catch{return e?.throwIfAborted(),n}finally{t.abort();}}async function $(e,t,r){let n=r??await L(t);t?.throwIfAborted();try{return await e(n[0])}catch{return t?.throwIfAborted(),e(n[1])}}function we(e,t,r={},n){return $(s=>e([...t.slice(0,1),`--registry=${s}`,`--@openai:registry=${s}`,`--@bryanhu:registry=${s}`,"--fetch-retries=0","--fetch-timeout=30000",...t.slice(1)],r),r.signal,n)}var j="@bryanhu/codexly",Je="0.1.0",Ke="https://raw.githubusercontent.com/BryanHoo/Codexly/v",be=1e4,Ze=32*1024,et=5*6e4,tt=/^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)(?:-((?:(?:0|[1-9][0-9]*)|[0-9]*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:(?:0|[1-9][0-9]*)|[0-9]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/u,v=class extends Error{constructor(r,n){super(n);this.code=r;this.name="AppUpdateError";}code},R=class extends Error{};function E(e){let t=tt.exec(e);if(t!==null)return {core:[t[1]??"0",t[2]??"0",t[3]??"0"],prerelease:t[4]?.split(".")??[]}}function xe(e,t){return e.length!==t.length?e.length-t.length:e===t?0:e<t?-1:1}function rt(e,t){if(e.length===0||t.length===0)return e.length===t.length?0:e.length===0?1:-1;for(let r=0;r<Math.max(e.length,t.length);r+=1){let n=e[r],s=t[r];if(n===void 0||s===void 0)return n===s?0:n===void 0?-1:1;if(n===s)continue;let i=/^\d+$/u.test(n),o=/^\d+$/u.test(s);return i&&o?xe(n,s):i?-1:o?1:n<s?-1:1}return 0}function nt(e,t){let r=Buffer.from(e,"utf8");return r.byteLength<=t?e:new TextDecoder("utf-8",{fatal:false}).decode(r.subarray(0,t)).trimEnd()}function ot(e,t){let r=e.split(/\r?\n/u),n=r.findIndex(l=>l.startsWith(`## [${t}]`));if(n<0)return;let s=r.slice(n+1).findIndex(l=>/^## \[[^\]]+\]/u.test(l)),i=s<0?r.length:n+1+s,o=r.slice(n+1,i).join(`
4
+ `).trim();return o===""?void 0:nt(o,Ze)}function S(e,t){let r=E(e),n=E(t);if(r===void 0||n===void 0)return false;for(let s=0;s<r.core.length;s+=1){let i=r.core[s],o=n.core[s];if(i===void 0||o===void 0)return false;let l=xe(i,o);if(l!==0)return l>0}return rt(r.prerelease,n.prerelease)>0}async function st(){return $(it)}async function it(e){let t=await fetch(`${e}/-/package/${encodeURIComponent(j)}/dist-tags`,{headers:{accept:"application/json","user-agent":ia},signal:AbortSignal.timeout(be)});if(t.status===401||t.status===404)throw new R("Package has not been published");if(!t.ok)throw new Error(`Registry returned ${String(t.status)}`);let r=await t.json();if(typeof r!="object"||r===null||!("latest"in r)||typeof r.latest!="string"||E(r.latest)===void 0)throw new Error("Registry returned an invalid latest version");return r.latest}async function at(e){let t=await fetch(`${Ke}${e}/CHANGELOG.md`,{headers:{accept:"text/markdown","user-agent":ia},signal:AbortSignal.timeout(be)});if(!t.ok)throw new Error(`GitHub returned ${String(t.status)}`);return t.text()}async function ct(){let e=dirname(fileURLToPath(import.meta.url)),t=parse(e).root;for(;e!==t;){try{let r=JSON.parse(await readFile(join(e,"package.json"),"utf8"));if(typeof r=="object"&&r!==null&&"name"in r&&r.name===j)return e}catch{}e=dirname(e);}throw new Error("Unable to locate the installed Codexly package")}function lt(e){let t=dirname(dirname(e));if(basename(t)!=="node_modules")throw new Error("Codexly is not installed as a global npm package");let r=dirname(t);return basename(r)==="lib"?dirname(r):r}function pt(e,t){let r=JSON.parse(e),s=(Array.isArray(r)?r:[])[0];if(typeof s!="object"||s===null||!("filename"in s)||typeof s.filename!="string"||basename(s.filename)!==s.filename)throw new Error("npm pack returned an invalid archive name");return resolve(t,s.filename)}async function he(e,t,r,n){let s=await r(["pack","--ignore-scripts","--json","--pack-destination",t,e],{signal:n});return pt(s,t)}async function dt(e,t={}){let r=t.runNpm??fe,n,s=async(c,m)=>(n??=L(m?.signal),we(r,c,m,await n)),i=t.currentPackageRoot??await ct(),o=`--prefix=${lt(i)}`,l=await mkdtemp(join(tmpdir(),"codexly-update-")),p=new AbortController,a=()=>{p.abort(new Error("Codexly update interrupted"));},g,u=false,y=false;process.once("SIGINT",a),process.once("SIGTERM",a);try{u=await(t.requiresElevation??ge)(i),t.onProgress?.({percent:10,phase:"backing-up"}),g=await he(i,l,r,p.signal),t.onProgress?.({percent:30,phase:"downloading"});let c=await he(`${j}@${e}`,l,s,p.signal);if(p.signal.aborted)throw p.signal.reason;t.onProgress?.({percent:80,phase:"installing"}),y=!0,await s(["install","--global",o,c],{elevated:u,signal:p.signal});}catch(c){if(y&&g!==void 0)try{t.onProgress?.({percent:90,phase:"rolling-back"}),await s(["install","--global",o,g],{elevated:u});}catch(m){let d=c instanceof Error?c.message:String(c),f=m instanceof Error?m.message:String(m);throw new Error(`Codexly update failed: ${d}; rollback failed: ${f}`,{cause:m})}throw c}finally{process.off("SIGINT",a),process.off("SIGTERM",a),await rm(l,{force:true,recursive:true});}}async function ut(e,t){await dt(e,t===void 0?{}:{onProgress:t});}function k(e){let t=e.fetchChangelog??at,r=e.fetchLatestVersion??st,n=e.runNpmInstall??ut,s,i=null,o,l,p,a,g=async()=>{try{let c=await r();if(E(c)===void 0)throw new Error("Invalid version");return c}catch(c){if(c instanceof R&&e.appVersion===Je)return e.appVersion;throw new v("UPDATE_CHECK_FAILED","Failed to check for Codexly updates")}},u=async(c=false)=>(c&&(await l?.catch(()=>{}),o=void 0),o!==void 0&&Date.now()<o.expiresAt?o.version:(l??=g().then(m=>(o={version:m,expiresAt:Date.now()+et},m)).finally(()=>{l=void 0;}),l)),y=c=>{if(p?.version===c)return Promise.resolve(p.text);if(a?.version===c)return a.promise;let m=t(c).then(d=>{let f=ot(d,c)??null;return a?.promise===m&&(p={version:c,text:f}),f}).finally(()=>{a?.promise===m&&(a=void 0);});return a={version:c,promise:m},m};return {async install(c,m){let d=h=>{i=h,m?.(h);};d({percent:5,phase:"checking"});let f=await u(true);if(!(S(c,e.appVersion)&&!S(c,f))||!S(f,e.appVersion))throw i=null,new v("UPDATE_NOT_AVAILABLE","The requested update is not available");try{await n(f,d);}catch{throw new v("UPDATE_INSTALL_FAILED","Failed to install the Codexly update")}return s=f,d({percent:100,phase:"completed"}),{appVersion:e.appVersion,codexVersion:e.codexVersion,latestVersion:f,releaseNotes:null,status:"restart-required",updateAvailable:false}},readProgress(){return Promise.resolve({progress:i})},async read(){let c;try{c=await u();}catch{return {appVersion:e.appVersion,codexVersion:e.codexVersion,latestVersion:null,releaseNotes:null,status:"check-failed",updateAvailable:false}}if(s===c)return {appVersion:e.appVersion,codexVersion:e.codexVersion,latestVersion:c,releaseNotes:null,status:"restart-required",updateAvailable:false};let m=S(c,e.appVersion),d=null;if(m)try{d=await y(c);}catch{d=null;}return {appVersion:e.appVersion,codexVersion:e.codexVersion,latestVersion:c,releaseNotes:d,status:m?"available":"current",updateAvailable:m}}}}function mt(e){return e instanceof Error&&"code"in e&&e.code==="EADDRINUSE"}async function ve(e,t,r){for(let n=r;n<=65535;n+=1)try{return await e.listen({host:t,port:n}),n}catch(s){if(!mt(s)||n===65535)throw s}throw new Error(`\u7AEF\u53E3 ${String(r)} \u5230 ${String(65535)} \u5747\u4E0D\u53EF\u7528`)}var D="CODEXLY_STARTUP_UPDATE_APPLIED";function Ae(e){let t=k({appVersion:e,codexVersion:"not-started"});return {check:async()=>{let r=await t.read();return {latestVersion:r.latestVersion,status:r.status==="available"?"available":r.status==="check-failed"?"check-failed":"current"}},install:async(r,n)=>{await t.install(r,n);}}}function Ce(e){let t={"backing-up":"\u6B63\u5728\u5907\u4EFD\u5F53\u524D\u7248\u672C",checking:"\u6B63\u5728\u786E\u8BA4\u6700\u65B0\u7248\u672C",completed:"\u66F4\u65B0\u5B89\u88C5\u5B8C\u6210",downloading:"\u6B63\u5728\u4E0B\u8F7D\u66F4\u65B0\u5305",installing:"\u6B63\u5728\u5B89\u88C5\u65B0\u7248\u672C","rolling-back":"\u5B89\u88C5\u5931\u8D25\uFF0C\u6B63\u5728\u6062\u590D\u539F\u7248\u672C"},r=Math.round(e.percent/5);return `[${`${"\u2588".repeat(r)}${"\u2591".repeat(20-r)}`}] ${String(e.percent)}% ${t[e.phase]}`}async function Se(e,t){if(!process.stdin.isTTY||!process.stdout.isTTY)return false;let r=createInterface({input:process.stdin,output:process.stdout});try{let s=(await r.question(`\u53D1\u73B0 Codexly \u65B0\u7248\u672C ${t}\uFF08\u5F53\u524D ${e}\uFF09\uFF0C\u662F\u5426\u66F4\u65B0\u540E\u542F\u52A8\uFF1F[y/N] `)).trim().toLocaleLowerCase();return s==="y"||s==="yes"}finally{r.close();}}async function Re(e){let t=process.argv[1];if(t===void 0)throw new Error("\u65E0\u6CD5\u786E\u5B9A Codexly CLI \u5165\u53E3");return new Promise((r,n)=>{let s=spawn(process.execPath,[t,...e],{env:{...process.env,[D]:"1"},shell:false,stdio:"inherit",windowsHide:true});s.once("error",n),s.once("exit",(i,o)=>{if(o!==null){n(new Error(`\u66F4\u65B0\u540E\u7684 Codexly \u542F\u52A8\u8FDB\u7A0B\u88AB\u4FE1\u53F7 ${o} \u7EC8\u6B62`));return}r(i??1);});})}var wt=500;function ht(e,t){return t==="darwin"?[{args:[e],executable:"open"}]:t==="win32"?[{args:["/c","start","",e],executable:"cmd.exe"}]:[{args:[e],executable:"xdg-open"},{args:["open",e],executable:"gio"},{args:[e],executable:"sensible-browser"}]}function Pt(e){return new Promise((t,r)=>{let n=spawn(e.executable,[...e.args],{detached:true,shell:false,stdio:"ignore"}),s=false,i,o=l=>{s||(s=true,i!==void 0&&clearTimeout(i),l());};n.once("error",l=>{o(()=>{r(l);});}),n.once("spawn",()=>{i=setTimeout(()=>{o(()=>{n.unref(),t();});},wt);}),n.once("exit",(l,p)=>{if(l===0){o(t);return}let a=p?`signal ${p}`:`code ${String(l)}`;o(()=>{r(Object.assign(new Error(`${e.executable} exited with ${a}`),{code:"LAUNCHER_EXIT"}));});});})}async function Ee(e,t={}){let r=t.platform??process.platform,n=ht(e,r),s=t.launch??Pt,i;for(let o of n)try{await s(o);return}catch(l){if(r!=="linux"&&l.code!=="ENOENT")throw l;i=l;}throw new Error("No supported browser launcher is installed",{cause:i})}var ke=Ae(V.version),xt={appVersion:V.version,checkAppUpdate:ke.check,checkCodexVersion:j$1,confirmAppUpdate:Se,createProjectRepository:({client:e,projection:t})=>new v$1(e,t),createPetProvider:x,createStateRepository:e=>j$2.open(e),createRuntimeProvider:p,createServer:async e=>{let t=await i$2({...e});return {close:()=>t.close(),listen:r=>t.listen(r)}},generateLanPairingCode:l,listLanAccessUrls:m,locateCodexBinary:i$1,nodeVersion:process.versions.node,openBrowser:Ee,installAppUpdate:ke.install,restartAfterUpdate:Re,startCodexAppServer:u,webRoot:fileURLToPath(new URL("../dist/web",import.meta.url))};function vt(e){let t=Number(e.split(".")[0]);if(!Number.isInteger(t)||t<24)throw new Error(`\u9700\u8981 Node.js 24.0.0 \u6216\u66F4\u9AD8\u7248\u672C\uFF0C\u5F53\u524D\u7248\u672C\u4E3A ${e}`)}function Ie(e){return e.codexHome??process.env.CODEX_HOME??join(homedir(),".codex")}function At(e){if(!e.writable)throw new Error("SQLite database is not writable");if(e.migrationVersion<1)throw new Error("SQLite migrations are not applied");if(e.integrityCheck!=="ok")throw new Error(`SQLite integrity_check failed: ${e.integrityCheck}`);if(e.journalMode.toLocaleLowerCase()!=="wal")throw new Error(`SQLite journal_mode must be WAL; found ${e.journalMode}`);if(!e.foreignKeys||e.synchronous!=="normal"||e.busyTimeout!==5e3)throw new Error("SQLite PRAGMA configuration is invalid")}async function Ct(e,t,r){let n=c(e,new Set(["--codex-bin","--codex-home"]));vt(t.nodeVersion),r.success(`Node.js ${t.nodeVersion}`);let s=await t.locateCodexBinary(n.codexBin?{explicitPath:n.codexBin}:{}),i=await t.checkCodexVersion(s.path);r.success(`Codex ${i.version} (${s.path})`);let o=Ie(n),l=await t.createStateRepository(join(o,"codexly","state.sqlite3"));try{let p=await l.diagnose();At(p),r.success(`SQLite \u53EF\u5199 (${join(o,"codexly","state.sqlite3")})`),r.success(`SQLite migration ${String(p.migrationVersion)}`),r.success(`SQLite integrity_check ${p.integrityCheck}`),r.success(`SQLite journal_mode ${p.journalMode}`),r.success(`SQLite PRAGMA foreign_keys=ON synchronous=NORMAL busy_timeout=${String(p.busyTimeout)}`);}finally{await l.close();}return 0}async function Te(e,t,r,n,s){let i=s?.environment??process.env,o=s?.options??f(e,i);if(o.sessionTtl!==void 0&&o.lan!==true)throw new Error("--session-ttl \u53EA\u80FD\u4E0E --lan \u4E00\u8D77\u4F7F\u7528");if(o.lanPassword!==void 0&&o.lan!==true)throw new Error("--lan-password \u53EA\u80FD\u4E0E --lan \u4E00\u8D77\u4F7F\u7528");o.lanPassword!==void 0&&k$1(o.lanPassword);let l=o.allowedHosts?.map(h),p=o.port??3210,a=o.sessionTtl?j$3(o.sessionTtl):void 0,g$1=o.lan!==true?void 0:{pairingCode:o.lanPassword??t.generateLanPairingCode(),...a===void 0?{}:{sessionTtlMs:a}};if(!s?.background&&process.env[D]!=="1"){let f=await t.checkAppUpdate();if(f.status==="check-failed")n.warning("\u65E0\u6CD5\u68C0\u67E5 Codexly \u66F4\u65B0\uFF0C\u5C06\u7EE7\u7EED\u542F\u52A8\u5F53\u524D\u7248\u672C\u3002");else if(f.status==="available"&&f.latestVersion!==null){if(await t.confirmAppUpdate(t.appVersion,f.latestVersion))return n.info(`\u6B63\u5728\u66F4\u65B0 Codexly \u5230 ${f.latestVersion}...`),await t.installAppUpdate(f.latestVersion,h=>{n.info(Ce(h));}),n.success(`Codexly \u5DF2\u66F4\u65B0\u5230 ${f.latestVersion}\uFF0C\u6B63\u5728\u91CD\u65B0\u542F\u52A8\u3002`),t.restartAfterUpdate(["start",...e]);n.info("\u5DF2\u8DF3\u8FC7\u66F4\u65B0\uFF0C\u7EE7\u7EED\u542F\u52A8\u5F53\u524D\u7248\u672C\u3002");}}let u=r?null:g(),y=r??u?.signal;if(!y)throw new Error("Shutdown signal is unavailable");let c,m,d;try{let f=Ie(o),A=homedir(),h={...i,...o.codexHome?{CODEX_HOME:o.codexHome}:{}};d=await t.createStateRepository(join(f,"codexly","state.sqlite3"));let B=d,H=()=>{let w=()=>t.startCodexAppServer({appVersion:t.appVersion,cwd:A,env:h,...o.codexBin?{binaryPath:o.codexBin}:{}});return B.withScheduledTaskLock===void 0?w():B.withScheduledTaskLock(w)};c=await H();let N=t.createProjectRepository({client:c.client,projection:d}),I=await d.readProjectSourceMigration();I.completed||await N.migrateLegacyProjects({recoverUnassigned:I.recoverUnassigned}),await N.synchronize(),I.completed||await d.completeProjectSourceMigration();let Oe=d,Ve=await t.createRuntimeProvider({codexHome:f,client:c.client,modelCatalogRuntimeFactory:H,readTaskTitleModel:async()=>(await Oe.readGlobalSettings())?.commitMessageModel??rd}),_e=t.createPetProvider({codexHome:f}),U=k({appVersion:t.appVersion,codexVersion:c.version.version});m=await t.createServer({...s?.background?{logDestination:{write:n.plain}}:{},...g$1===void 0?{}:{access:g$1},...l===void 0?{}:{allowedHosts:l},projectRepository:N,providerConnectionRepository:d,provider:Ve,preloadModelCatalog:!0,petProvider:_e,installAppUpdate:U.install,readAppInfo:U.read,readAppUpdateProgress:U.readProgress,queueRepository:d,scheduledTaskAttachmentRepository:d,scheduledTaskRepository:d,submissionRepository:d,asyncQuestionRepository:d,projectTodoRepository:d,settingsRepository:d,staticRoot:t.webRoot,standaloneCwd:o.workspaceRoots?.[0]??A,...o.workspaceRoots===void 0?{}:{workspaceRoots:o.workspaceRoots}});let G=o.lan===!0?"0.0.0.0":"127.0.0.1",P=await ve(m,G,p);if(P!==p&&n.warning(`\u7AEF\u53E3 ${String(p)} \u5DF2\u88AB\u5360\u7528\uFF0C\u5DF2\u81EA\u52A8\u5207\u6362\u5230\u7AEF\u53E3 ${String(P)}\u3002`),await s?.onReady({host:G,port:P}),n.success("Codexly \u5DF2\u542F\u52A8"),g$1!==void 0){let w=t.listLanAccessUrls(P);n.warning("\u5C40\u57DF\u7F51\u6A21\u5F0F\u4F7F\u7528\u672A\u52A0\u5BC6\u7684 HTTP\uFF0C\u8BF7\u4EC5\u5728\u53EF\u4FE1\u7F51\u7EDC\u4E2D\u4F7F\u7528\u3002"),w.length===0?n.warning("\u672A\u627E\u5230\u53EF\u7528\u7684\u5C40\u57DF\u7F51 IPv4 \u5730\u5740\uFF0C\u670D\u52A1\u4ECD\u5728\u8FD0\u884C\u3002"):n.info(`\u5C40\u57DF\u7F51\u8BBF\u95EE\u5730\u5740:
5
5
  ${w.map(O=>` ${O}`).join(`
6
- `)}`),o.lanPassword===void 0?n.info(`\u914D\u5BF9\u7801: ${g$1.pairingCode}`):n.info("\u5DF2\u4F7F\u7528\u81EA\u5B9A\u4E49\u8BBF\u95EE\u5BC6\u7801\uFF08\u4E0D\u4F1A\u5728\u7EC8\u7AEF\u56DE\u663E\uFF09\u3002"),n.info(o.sessionTtl===void 0?"\u4F1A\u8BDD\u6709\u6548\u671F: \u6C38\u4E0D\u8FC7\u671F\uFF08\u4EC5\u5F53\u524D\u8FDB\u7A0B\uFF09":`\u4F1A\u8BDD\u6709\u6548\u671F: ${o.sessionTtl}\uFF08\u56FA\u5B9A\u671F\u9650\uFF0C\u4E0D\u81EA\u52A8\u7EED\u671F\uFF09`),n.info(o.lanPassword===void 0?"\u91CD\u542F Codexly \u540E\uFF0C\u5F53\u524D\u914D\u5BF9\u7801\u548C\u6240\u6709\u5C40\u57DF\u7F51\u4F1A\u8BDD\u5C06\u5931\u6548\u3002":"\u91CD\u542F Codexly \u540E\uFF0C\u6240\u6709\u5C40\u57DF\u7F51\u4F1A\u8BDD\u5C06\u5931\u6548\uFF1B\u56FA\u5B9A\u8BBF\u95EE\u5BC6\u7801\u4FDD\u6301\u6709\u6548\u3002");}else n.info(`\u8BBF\u95EE\u5730\u5740: http://127.0.0.1:${String(P)}`);if(!s?.background&&o.lan!==!0&&o.noOpen!==!0)try{await t.openBrowser(`http://127.0.0.1:${String(P)}`);}catch(w){let O=w instanceof Error?w.message:String(w);n.warning(`\u65E0\u6CD5\u81EA\u52A8\u6253\u5F00\u6D4F\u89C8\u5668\uFF0C\u8BF7\u624B\u52A8\u8BBF\u95EE\u4E0A\u8FF0\u5730\u5740\u3002\u539F\u56E0: ${O}`);}let C=await Promise.race([c.waitForExit().then(w=>({exit:w,type:"process-exit"})),h$1(y).then(()=>({type:"shutdown"}))]);if(C.type==="process-exit"){let w=C.exit.signal?`\u4FE1\u53F7 ${C.exit.signal}`:`\u9000\u51FA\u7801 ${String(C.exit.code)}`;throw new Error(`Codex App Server \u5728 Codexly \u5173\u95ED\u524D\u610F\u5916\u9000\u51FA\uFF0C${w}`)}return 0}finally{try{await m?.close();}finally{try{await d?.close();}finally{try{await c?.close();}finally{u?.cleanup();}}}}}async function Ue(e,t={}){let r=t.dependencies??xt,n=t.stdout??(u=>process.stdout.write(u)),s=t.stderr??(u=>process.stderr.write(u)),i$1=t.color??(process.stdout.isTTY&&process.env.NO_COLOR===void 0),o=i(n,s,i$1),[l,...p]=e,a$1=l??"start",g=p[0]==="--"?p.slice(1):p;try{if(a$1==="autostart"){let{runAutostartCommand:u}=await import('./command-VIK5GXBS.js');return await u(g,o,y=>Te([],r,y.signal,y.output,y))}if(a$1==="--help"||a$1==="-h"||!a$1.startsWith("-")&&(g[0]==="--help"||g[0]==="-h")){if(g.length>(a$1.startsWith("-")?0:1))throw new Error(`\u672A\u77E5\u9009\u9879: ${g[a$1.startsWith("-")?0:1]??"<empty>"}`);let u=a$1.startsWith("-")?a:b[a$1];if(!u)throw new Error(`\u672A\u77E5\u547D\u4EE4: ${a$1}`);return o.plain(u),0}if(a$1==="version"||a$1==="--version"||a$1==="-V"){if(g.length>0)throw new Error(`\u672A\u77E5\u9009\u9879: ${g[0]??"<empty>"}`);return o.plain(`codexly ${r.appVersion}
6
+ `)}`),o.lanPassword===void 0?n.info(`\u914D\u5BF9\u7801: ${g$1.pairingCode}`):n.info("\u5DF2\u4F7F\u7528\u81EA\u5B9A\u4E49\u8BBF\u95EE\u5BC6\u7801\uFF08\u4E0D\u4F1A\u5728\u7EC8\u7AEF\u56DE\u663E\uFF09\u3002"),n.info(o.sessionTtl===void 0?"\u4F1A\u8BDD\u6709\u6548\u671F: \u6C38\u4E0D\u8FC7\u671F\uFF08\u4EC5\u5F53\u524D\u8FDB\u7A0B\uFF09":`\u4F1A\u8BDD\u6709\u6548\u671F: ${o.sessionTtl}\uFF08\u56FA\u5B9A\u671F\u9650\uFF0C\u4E0D\u81EA\u52A8\u7EED\u671F\uFF09`),n.info(o.lanPassword===void 0?"\u91CD\u542F Codexly \u540E\uFF0C\u5F53\u524D\u914D\u5BF9\u7801\u548C\u6240\u6709\u5C40\u57DF\u7F51\u4F1A\u8BDD\u5C06\u5931\u6548\u3002":"\u91CD\u542F Codexly \u540E\uFF0C\u6240\u6709\u5C40\u57DF\u7F51\u4F1A\u8BDD\u5C06\u5931\u6548\uFF1B\u56FA\u5B9A\u8BBF\u95EE\u5BC6\u7801\u4FDD\u6301\u6709\u6548\u3002");}else n.info(`\u8BBF\u95EE\u5730\u5740: http://127.0.0.1:${String(P)}`);if(!s?.background&&o.lan!==!0&&o.noOpen!==!0)try{await t.openBrowser(`http://127.0.0.1:${String(P)}`);}catch(w){let O=w instanceof Error?w.message:String(w);n.warning(`\u65E0\u6CD5\u81EA\u52A8\u6253\u5F00\u6D4F\u89C8\u5668\uFF0C\u8BF7\u624B\u52A8\u8BBF\u95EE\u4E0A\u8FF0\u5730\u5740\u3002\u539F\u56E0: ${O}`);}let C=await Promise.race([c.waitForExit().then(w=>({exit:w,type:"process-exit"})),h$1(y).then(()=>({type:"shutdown"}))]);if(C.type==="process-exit"){let w=C.exit.signal?`\u4FE1\u53F7 ${C.exit.signal}`:`\u9000\u51FA\u7801 ${String(C.exit.code)}`;throw new Error(`Codex App Server \u5728 Codexly \u5173\u95ED\u524D\u610F\u5916\u9000\u51FA\uFF0C${w}`)}return 0}finally{try{await m?.close();}finally{try{await d?.close();}finally{try{await c?.close();}finally{u?.cleanup();}}}}}async function Ue(e,t={}){let r=t.dependencies??xt,n=t.stdout??(u=>process.stdout.write(u)),s=t.stderr??(u=>process.stderr.write(u)),i$1=t.color??(process.stdout.isTTY&&process.env.NO_COLOR===void 0),o=i(n,s,i$1),[l,...p]=e,a$1=l??"start",g=p[0]==="--"?p.slice(1):p;try{if(a$1==="autostart"){let{runAutostartCommand:u}=await import('./command-R5BTONU5.js');return await u(g,o,y=>Te([],r,y.signal,y.output,y))}if(a$1==="--help"||a$1==="-h"||!a$1.startsWith("-")&&(g[0]==="--help"||g[0]==="-h")){if(g.length>(a$1.startsWith("-")?0:1))throw new Error(`\u672A\u77E5\u9009\u9879: ${g[a$1.startsWith("-")?0:1]??"<empty>"}`);let u=a$1.startsWith("-")?a:b[a$1];if(!u)throw new Error(`\u672A\u77E5\u547D\u4EE4: ${a$1}`);return o.plain(u),0}if(a$1==="version"||a$1==="--version"||a$1==="-V"){if(g.length>0)throw new Error(`\u672A\u77E5\u9009\u9879: ${g[0]??"<empty>"}`);return o.plain(`codexly ${r.appVersion}
7
7
  `),0}if(a$1==="doctor")return await Ct(g,r,o);if(a$1==="start")return await Te(g,r,t.signal,o);throw new Error(`\u672A\u77E5\u547D\u4EE4: ${a$1}`)}catch(u){let y=u instanceof Error?u.message:String(u);return o.error(y),1}}process.exitCode=await Ue(process.argv.slice(2));
@@ -1,2 +1,2 @@
1
- import {createRequire}from'node:module';import {a}from'../chunk-GFASBWL4.js';import {sg,we,ve,Sg,Vg,og,Mg,Lg,Pg,Dg,Fg,xg,zg,Cg,Bg,Od,Td,Ud,Vd,Hg,pd,Lf,Nf,Of,Qf,Sf,De,tg,Ub,$b,ac,Ed,kf,mf,of,vf,xf,zf,Bf,Ff,cd,Wf,Hf,Jf,Uf,pe,hc,gc,ug,Gd,Yg,if as _if,te as te$1,ue,jc,qf,sf,uf,Fe,jd,Df,Be,wa,Aa,Ce,Dd,Da,Na,Pa,Ia,Ka,Ra,Va,Ya,_a,cb,gb,fb,jb,nb,qb,tb,vb,oa,qa,xb,mb,_g,$g,bh,$ as $$1,hb,rc,Kc,Nc,Pc,Rc,tc,xc,zc,Cc,Hc,Ec,vc,Gc,Ge,oc,nc,qc,Yd,He,Ee,Me,Oe,Se as Se$1,Qe,Bd,fa,ha,Ld,ch}from'../chunk-HD7TOFDV.js';import'../chunk-IV4NRE4S.js';import'../chunk-YXJGRSCL.js';createRequire(import.meta.url);
2
- var g=[];for(let o=0;o<256;++o)g.push((o+256).toString(16).slice(1));function Pn(o,e=0){return (g[o[e+0]]+g[o[e+1]]+g[o[e+2]]+g[o[e+3]]+"-"+g[o[e+4]]+g[o[e+5]]+"-"+g[o[e+6]]+g[o[e+7]]+"-"+g[o[e+8]]+g[o[e+9]]+"-"+g[o[e+10]]+g[o[e+11]]+g[o[e+12]]+g[o[e+13]]+g[o[e+14]]+g[o[e+15]]).toLowerCase()}var Tn=new Uint8Array(16);function ye(){return crypto.getRandomValues(Tn)}function An(o,e,t){return !e&&!o&&crypto.randomUUID?crypto.randomUUID():vn(o,e,t)}function vn(o,e,t){o=o||{};let n=o.random??o.rng?.()??ye();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){if(t=t||0,t<0||t+16>e.length)throw new RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let s=0;s<16;++s)e[t+s]=n[s];return e}return Pn(n)}var $=An;var q=class extends Error{constructor(e,t){super(e,t),this.name="CodexlyEventError";}};function On(o,e,t){let n=e===ve?`${we}/events`:`/v1/projects/${encodeURIComponent(e)}/events`,s=o?new URL(`${o}${n}`):new URL(n,globalThis.location.href);return s.protocol=s.protocol==="https:"?"wss:":"ws:",s.searchParams.set("afterSequence",String(t)),s.toString()}function E(o,e,t){return {latestSequence:e,reason:t,sessionId:o,type:"resync.required",version:3}}function jn(o){if(o.length>og)return true;if(o.length*3<=og)return false;let e=0;for(let t=0;t<o.length;t+=1){let n=o.codePointAt(t);if(n===void 0)break;if(e+=n<=127?1:n<=2047?2:n<=65535?3:4,e>og)return true;n>65535&&(t+=1);}return false}function Pe(o){let e=o.reconnectDelayMs??250,t=true,n=true,s=o.afterSequence,a$1=0,p,P,l,d=y=>{o.onConnectionState?.(y);},u=(y,m)=>{let f=P;f!==void 0&&(l?.(),l=void 0,P=void 0,f.close(y,m));},S=y=>{n=false,o.onResyncRequired(y),u(1e3,"Snapshot resync required"),d("closed");},v=(y,m)=>{n=false,o.onError?.(new q(y,m===void 0?void 0:{cause:m})),u(1002,"Invalid Agent Event frame"),d("closed");},h=()=>{if(!t)return;p=void 0;let y=false,m=o.webSocketFactory(On(o.baseUrl,o.projectId,s));P=m;let f=()=>t&&P===m,O=M=>{if(!f())return;if(typeof M.data!="string"){v("Codexly event frame must be text");return}if(jn(M.data)){S(E(o.sessionId,s,"event_retention_exceeded"));return}let x;try{x=JSON.parse(M.data);}catch(b){v("Codexly event frame is not valid JSON",b);return}if(!a.Check(sg,x)){v("Codexly event frame does not match the protocol schema");return}let k=x;if(k.type==="resync.required"){S(k);return}if(k.type==="connection.ready"){if(k.sessionId!==o.sessionId||k.latestSequence<s){S(E(k.sessionId,k.latestSequence,"session_changed"));return}y=true,a$1=0,d("connected");return}if(!y){v("Codexly event arrived before connection.ready");return}for(let b of k.events){if(b.sessionId!==o.sessionId){S(E(b.sessionId,b.sequence,"session_changed"));return}if(!(b.sequence<=s)){if(b.sequence!==s+1){S(E(b.sessionId,b.sequence,"sequence_gap"));return}if(s=b.sequence,o.onEvent(b),!f())return}}},C=()=>{!t||P!==m||o.onError?.(new q("Codexly event connection failed"));},be=M=>{if(P!==m)return;if(t&&M.code===1009){S(E(o.sessionId,s,"event_retention_exceeded"));return}if(l?.(),l=void 0,P=void 0,!t)return;if(!n){d("closed");return}d("reconnecting");let x=Math.min(e*2**a$1,5e3);a$1+=1,p=setTimeout(h,x);};l=()=>{m.removeEventListener("message",O),m.removeEventListener("error",C),m.removeEventListener("close",be);},m.addEventListener("message",O),m.addEventListener("error",C),m.addEventListener("close",be);};return d("connecting"),h(),()=>{t&&(t=false,n=false,p!==void 0&&clearTimeout(p),u(1e3,"Subscription cancelled"),d("closed"));}}var Cn=15e4,A=class extends Error{status;constructor(e,t,n){super(n??`Codexly request failed with ${String(e)} ${t}`.trim()),this.name="CodexlyHttpError",this.status=e;}},I=class extends A{code;retryable;constructor(e,t,n){super(e,t,n.message),this.name="CodexlyMutationError",this.code=n.code,this.retryable=n.retryable;}},T=class extends Error{constructor(e,t){super(e,t),this.name="CodexlyResponseError";}};function i(o,e){let t=new URLSearchParams;for(let[s,a]of Object.entries(e))a!==void 0&&t.set(s,String(a));let n=t.toString();return n?`${o}?${n}`:o}function r(o){return o===ve?we:`/v1/projects/${encodeURIComponent(o)}`}function c(o,e){return `${r(o)}/tasks/${encodeURIComponent(e)}`}function H(o,e,t,n){return `${o.replace(/\/$/u,"")}${c(e,t)}/attachments/${encodeURIComponent(n)}`}function Rn(o,e,t,n){let s=i(`${r(e)}/files/image`,{path:t,rootPath:n});return `${o.replace(/\/$/u,"")}${s}`}function Sn(o,e,t,n){let s=i(`${r(e)}/files/download`,{path:t,rootPath:n===""?void 0:n});return `${o.replace(/\/$/u,"")}${s}`}function bn(o,e,t){return `${o.replace(/\/$/u,"")}${r(e)}/attachments/${encodeURIComponent(t)}`}function fn(o,e=""){return `${e.replace(/\/$/u,"")}/v1/pets/assets/${encodeURIComponent(o)}`}var W=class{baseUrl;fetchImplementation;requestTimeouts;webSocketFactory;unauthorizedListeners=new Set;constructor(e={}){this.baseUrl=e.baseUrl?.replace(/\/$/u,"")??"",this.fetchImplementation=e.fetch??globalThis.fetch.bind(globalThis),this.requestTimeouts={mutationMs:e.requestTimeouts?.mutationMs??6e4,queryMs:e.requestTimeouts?.queryMs??3e4,readMs:e.requestTimeouts?.readMs??15e3},this.webSocketFactory=e.webSocketFactory??(t=>new WebSocket(t));}async getHealth(e={}){return this.read("/v1/health",Ge,e)}async getAppInfo(e={}){return this.read("/v1/app-info",oc,e)}async getAppUpdateProgress(e={}){return this.read("/v1/app-update/progress",nc,e)}async installAppUpdate(e,t={}){return this.mutation("/v1/app-update",{version:e},qc,t,"POST",Cn)}async getAccessStatus(e={}){return this.read("/v1/access",Yd,e)}async pairAccess(e){return this.request("/v1/access/pair",Yd,{body:JSON.stringify({code:e}),headers:{"content-type":"application/json"},method:"POST"},Wf,{timeoutMs:this.requestTimeouts.mutationMs})}async logoutAccess(){return this.request("/v1/access/logout",Yd,{body:"{}",headers:{"content-type":"application/json"},method:"POST"},Wf,{timeoutMs:this.requestTimeouts.mutationMs})}subscribeUnauthorized(e){return this.unauthorizedListeners.add(e),()=>this.unauthorizedListeners.delete(e)}async getCapabilities(e={}){return this.read("/v1/capabilities",He,e)}async listModels(e={}){return this.read("/v1/models",Ee,e)}async getProviderConnection(e={}){return this.read("/v1/provider-connection",Me,e)}async startOfficialProviderLogin(e={}){return this.mutation("/v1/provider-connection/official-login",{},Oe,e)}async cancelProviderLogin(e,t={}){return this.mutation("/v1/provider-connection/official-login/cancel",{loginId:e},Se$1,t)}async configureCustomProvider(e,t={}){return this.mutation("/v1/provider-connection/custom",e,Qe,t,"PUT")}async logoutProvider(e={}){return this.mutation("/v1/provider-connection/logout",{},Se$1,e)}async getGlobalSettings(e={}){return this.read("/v1/settings",Bd,e)}async listWorkbenchPets(e={}){return this.read("/v1/pets",fa,e)}async downloadWorkbenchPet(e,t={}){return this.mutation("/v1/pets/downloads",{petId:e},ha,t)}async updateGlobalSettings(e,t={}){return this.mutation("/v1/settings",e,Bd,t,"PUT")}subscribeEvents(e){return Pe({...e,baseUrl:this.baseUrl,webSocketFactory:this.webSocketFactory})}mutation(e,t,n,s,a="POST",p=this.requestTimeouts.mutationMs){return this.request(e,n,{body:JSON.stringify(t),headers:{"content-type":"application/json","idempotency-key":s.idempotencyKey??$()},method:a},Wf,{...s.signal===void 0?{}:{signal:s.signal},timeoutMs:p})}read(e,t,n,s){return this.request(e,t,{},s,{...n.signal===void 0?{}:{signal:n.signal},timeoutMs:n.signal===void 0?this.requestTimeouts.readMs:this.requestTimeouts.queryMs})}async request(e,t,n={},s,a$1={}){let p=AbortSignal.timeout(a$1.timeoutMs??this.requestTimeouts.readMs),P=a$1.signal===void 0?p:AbortSignal.any([a$1.signal,p]),l=await this.fetchImplementation(`${this.baseUrl}${e}`,{...n,credentials:"same-origin",headers:{accept:"application/json",...n.headers},signal:P});if(!l.ok){if(l.status===401)for(let u of this.unauthorizedListeners)try{u();}catch{}if(s!==void 0){let u;try{u=await l.json();}catch(S){throw new T("Codexly error response is not valid JSON",{cause:S})}throw a.Check(s,u)?new I(l.status,l.statusText,u):new T("Codexly error response does not match the protocol schema")}try{let u=await l.json();if(typeof u=="object"&&u!==null&&"message"in u&&typeof u.message=="string"&&u.message.length>0)throw new A(l.status,l.statusText,u.message)}catch(u){if(u instanceof A)throw u}throw new A(l.status,l.statusText)}let d;try{d=await l.json();}catch(u){throw new T("Codexly response is not valid JSON",{cause:u})}if(!a.Check(t,d))throw new T("Codexly response does not match the protocol schema");return d}};function Mn(o,e,t,n){let s=i(`${r(e)}/files/pdf`,{path:t,rootPath:n===""?void 0:n});return `${o.replace(/\/$/u,"")}${s}`}var _=class extends W{async reconcileOfficialPlugins(e={}){return this.mutation("/v1/plugins/official/reconcile",{},rc,e)}async listOfficialPlugins(e,t={}){return this.read(i("/v1/plugins/official",{forceRefetch:e?"true":void 0}),Kc,t)}async getOfficialPlugin(e,t,n,s={}){return this.read(i(`/v1/plugins/official/${encodeURIComponent(e)}/${encodeURIComponent(n)}`,{marketplacePath:t??void 0}),Nc,s,Wf)}async installOfficialPlugin(e,t,n,s,a={}){return this.mutation(`/v1/plugins/official/${encodeURIComponent(e)}/${encodeURIComponent(n)}/install`,{installAttemptId:s,marketplacePath:t},Pc,a)}async uninstallOfficialPlugin(e,t,n,s={}){return this.mutation(`/v1/plugins/official/${encodeURIComponent(e)}/${encodeURIComponent(t)}/uninstall`,{pluginId:n},Rc,s)}async listInstalledSkills(e={}){return this.read("/v1/skills/installed",tc,e)}async listClawhubSkills(e,t,n,s={}){return this.read(i("/v1/skills/market",{cursor:t??void 0,query:e.length===0?void 0:e,sort:n}),xc,s,Wf)}async getClawhubSkill(e,t,n={}){return this.read(`/v1/skills/market/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,zc,n,Wf)}async installClawhubSkill(e,t,n,s,a,p={}){return this.mutation(`/v1/skills/market/${encodeURIComponent(e)}/${encodeURIComponent(t)}/install`,{projectId:s,rootPath:a,scope:n},Cc,p)}async openSkillDirectory(e,t={}){return this.mutation("/v1/skills/open",{path:e},Hc,t)}async setSkillEnabled(e,t,n={}){return this.mutation("/v1/skills/enabled",{enabled:t,path:e},Ec,n,"PUT")}async listConfiguredMcpServers(e={}){return this.read("/v1/mcp-servers/configured",vc,e)}async setMcpServerEnabled(e,t,n={}){return this.mutation(`/v1/mcp-servers/configured/${encodeURIComponent(e)}/enabled`,{enabled:t},Gc,n,"PUT")}};var B=class extends _{async createTaskWorktree(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/task-worktrees`,{rootPath:t}),n,hb,s)}};var z=class extends B{async createProjectDirectory(e,t={}){return this.mutation("/v1/project-directories",e,$$1,t)}};var N=class extends z{async readProjectTextFileRevision(e,t,n,s={}){return this.read(i(`${r(e)}/files/text/revision`,{path:n,rootPath:t}),_g,s)}async readProjectTextFile(e,t,n,s={}){return this.read(i(`${r(e)}/files/text`,{path:n,rootPath:t}),$g,s)}async saveProjectTextFile(e,t,n,s={}){return this.mutation(i(`${r(e)}/files/text`,{rootPath:t}),n,bh,s)}};var K=class extends N{async pushProjectCommits(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/push`,{rootPath:t}),n,mb,s)}};var J=class extends K{async listSkills(e,t={}){return this.read(`${r(e)}/skills`,Fe,t)}async listMcpServers(e,t,n={}){return this.read(`${c(e,t)}/mcp-servers`,jd,n,Wf)}async retryMcpServers(e,t,n={}){return this.mutation(`${c(e,t)}/mcp-servers/retry`,{},Df,n)}async listProjects(e={}){return this.read("/v1/projects",Be,e)}async listProjectDirectories(e,t={}){return this.read(i("/v1/project-directories",{path:e,includeHidden:t.includeHidden===true?"true":void 0}),wa,t)}async listHostFiles(e,t,n={}){return this.read(i("/v1/host-files",{kind:e,path:t,includeHidden:n.includeHidden===true?"true":void 0}),Aa,n)}async reorderProjects(e,t={}){return this.mutation("/v1/projects/order",{projectIds:e},Ce,t,"PUT")}async getProjectDefaults(e,t={}){return this.read(`${r(e)}/defaults`,Dd,t)}async updateProjectDefaults(e,t,n={}){return this.mutation(`${r(e)}/defaults`,t,Dd,n,"PUT")}async addProject(e,t={}){return this.mutation("/v1/projects",{roots:e.map(n=>({path:n}))},Da,t)}async renameProject(e,t,n={}){return this.mutation(`${r(e)}/rename`,{name:t},Na,n)}async removeProject(e,t={}){return this.mutation(`${r(e)}/remove`,{},Pa,t)}async getProjectOpenCapabilities(e,t={}){return this.read(`${r(e)}/open-capabilities`,Ia,t)}async openProject(e,t,n,s={}){return this.mutation(i(`${r(e)}/open`,{rootPath:t}),n,Ka,s)}async getProjectGitStatus(e,t,n={}){return this.read(i(`/v1/projects/${encodeURIComponent(e)}/git/status`,{includeDiff:t.includeDiff===true?"true":void 0,repository:t.repository,rootPath:t.rootPath}),Ra,n)}async getProjectGitHistory(e,t,n={}){return this.read(i(`${r(e)}/git/history`,{cursor:t.cursor,repository:t.repository,rootPath:t.rootPath}),Va,n)}async getProjectGitCommitFiles(e,t,n={}){return this.read(i(`${r(e)}/git/commit-files`,{cursor:t.cursor,repository:t.repository,rootPath:t.rootPath,sha:t.sha}),Ya,n)}async getProjectGitCommitFileDiff(e,t,n={}){return this.read(i(`${r(e)}/git/commit-diff`,{path:t.path,repository:t.repository,rootPath:t.rootPath,sha:t.sha}),_a,n)}async switchProjectBranch(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/branch`,{rootPath:t}),n,Ra,s)}async createProjectBranch(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/branches`,{rootPath:t}),n,Ra,s)}async listProjectWorktrees(e,t,n={}){return this.read(i(`${r(e)}/git/worktrees`,{rootPath:t}),cb,n)}async createProjectWorktree(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/worktrees`,{rootPath:t}),n,gb,s)}async switchProjectWorktree(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/worktree`,{rootPath:t}),n,fb,s)}async generateCommitMessage(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/commit-message`,{rootPath:t}),n,jb,s)}async commitProjectChanges(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/commits`,{rootPath:t}),n,nb,s)}async listProjectFiles(e,t,n,s={}){let a=i(`/v1/projects/${encodeURIComponent(e)}/files/tree`,{path:n??void 0,rootPath:t});return this.read(a,qb,s)}async renameProjectFile(e,t,n,s={}){return this.mutation(i(`/v1/projects/${encodeURIComponent(e)}/files/rename`,{rootPath:t}),n,tb,s)}async deleteProjectFile(e,t,n,s={}){return this.mutation(i(`/v1/projects/${encodeURIComponent(e)}/files/delete`,{rootPath:t}),n,vb,s)}async searchProjectFiles(e,t,n,s,a={}){let p=i(`/v1/projects/${encodeURIComponent(e)}/files/search`,{query:n,rootPath:t,sessionId:s});return this.read(p,oa,a)}async stopProjectFileSearch(e,t,n,s={}){return this.mutation(`/v1/projects/${encodeURIComponent(e)}/files/search/stop`,{rootPath:t,sessionId:n},qa,s)}async readProjectSourceFile(e,t,n,s,a={}){let p=i(`${r(e)}/files/source`,{cursor:s,path:n,rootPath:t});return this.read(p,xb,a)}};var V=class extends J{deleteArchivedTasks(e,t={}){return this.mutation(`${r(e)}/tasks/archived`,{},jc,t,"DELETE")}async archiveTask(e,t,n={}){return this.mutation(`${c(e,t)}/archive`,{},qf,n)}async unarchiveTask(e,t,n={}){return this.mutation(`${c(e,t)}/unarchive`,{},sf,n)}async deleteTask(e,t,n={}){return this.mutation(c(e,t),{},uf,n,"DELETE")}};var Y=class extends V{async updateTaskGoal(e,t,n,s={}){return this.mutation(`${c(e,t)}/goal`,n,te$1,s,"PUT")}async clearTaskGoal(e,t,n={}){return this.mutation(`${c(e,t)}/goal`,{},ue,n,"DELETE")}};var X=class extends Y{readNavigableTask(e,t,n={}){return this.read(`${c(e,t)}/navigation`,ug,n)}updateTaskSettingsAndDefaults(e,t,n,s={}){return this.mutation(`${c(e,t)}/settings-and-defaults`,n,Gd,s,"PUT")}queryCompletedTasks(e,t={}){return this.request("/v1/tasks/completed/query",Yg,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)},void 0,{...t,timeoutMs:this.requestTimeouts.queryMs})}listTaskCatalog(e,t={},n={}){return this.read(i(`${r(e)}/tasks/catalog`,t),_if,n)}};var Z=class extends X{async searchTasks(e,t={}){return this.read(i("/v1/search/tasks",e),hc,t)}async searchTaskOccurrences(e,t,n,s,a={}){return this.read(i(`${c(e,t)}/search-occurrences`,{cursor:s,query:n}),gc,a)}};var ee=class extends Z{submitTask(e,t,n={}){return this.mutation(`${r(e)}/submissions`,t,Hg,n)}async listQueuedSubmissions(e,t,n={}){return this.read(`${c(e,t)}/queue`,pd,n)}async addQueuedSubmission(e,t,n,s,a={}){return this.mutation(`${c(e,t)}/queue`,{clientUserMessageId:s,input:n},Lf,a)}async updateQueuedSubmission(e,t,n,s,a,p={}){return this.mutation(`${c(e,t)}/queue/${encodeURIComponent(n)}`,{input:s,status:a},Nf,p,"PUT")}async deleteQueuedSubmission(e,t,n,s={}){return this.mutation(`${c(e,t)}/queue/${encodeURIComponent(n)}`,{},Of,s,"DELETE")}async reorderQueuedSubmissions(e,t,n,s={}){return this.mutation(`${c(e,t)}/queue/reorder`,{queuedSubmissionIds:n},Qf,s,"PUT")}async startQueuedSubmission(e,t,n,s={}){return this.mutation(`${c(e,t)}/queue/start`,{...n===void 0?{}:{queuedSubmissionId:n}},Sf,s)}async listTasks(e,t={},n={}){let s=i(`${r(e)}/tasks`,t);return this.read(s,De,n)}async readTask(e,t,n={}){let{cursor:s,...a}=n;return this.read(i(c(e,t),{cursor:s}),tg,a)}getTaskAttachmentUrl(e,t,n){return H(this.baseUrl,e,t,n)}async openTaskAttachment(e,t,n,s={}){return this.mutation(`${c(e,t)}/attachments/${encodeURIComponent(n)}/open`,{},Ub,s)}async listBackgroundTerminals(e,t,n={}){return this.read(`${c(e,t)}/background-terminals`,$b,n)}async terminateBackgroundTerminal(e,t,n,s={}){return this.mutation(`${c(e,t)}/background-terminals/${encodeURIComponent(n)}/terminate`,{},ac,s)}async getTaskSettings(e,t,n={}){return this.read(`${c(e,t)}/settings`,Ed,n)}async updateTaskSettings(e,t,n,s={}){return this.mutation(`${c(e,t)}/settings`,n,Ed,s,"PUT")}async startTask(e,t={}){return this.mutation(`${r(e)}/tasks`,{},kf,t)}async startWorktreeTask(e,t,n={}){return this.mutation(`${r(e)}/tasks`,t,kf,n)}async pinTask(e,t,n,s={}){return this.mutation(`${c(e,t)}/pin`,{pinned:n},mf,s,"PUT")}async renameTask(e,t,n,s={}){return this.mutation(`${c(e,t)}/rename`,{title:n},of,s)}async unsubscribeTask(e,t){return this.request(`${c(e,t)}/unsubscribe`,vf,{body:"{}",headers:{"content-type":"application/json"},method:"POST"})}async startReview(e,t,n,s={}){return this.mutation(`${c(e,t)}/review`,n,xf,s)}async compactTask(e,t,n={}){return this.mutation(`${c(e,t)}/compact`,{},zf,n)}async forkTask(e,t,n,s={}){return this.mutation(`${c(e,t)}/fork`,n,Bf,s)}async uploadFeedback(e,t,n,s={}){return this.mutation(`${c(e,t)}/feedback`,n,Ff,s)}async uploadAttachment(e,t,n={}){let s=new FormData;return s.set("attachment",t.content,t.name),this.request(`${r(e)}/attachments/${t.kind}`,cd,{body:s,headers:{"idempotency-key":n.idempotencyKey??$()},method:"POST"},Wf,{...n.signal===void 0?{}:{signal:n.signal},timeoutMs:this.requestTimeouts.mutationMs})}async importHostAttachment(e,t,n,s={}){return this.mutation(`${r(e)}/attachments/${t}/host`,{path:n},cd,s)}async startTurn(e,t,n,s,a={}){return this.mutation(`${c(e,t)}/turns`,{input:n,options:s},Hf,a)}async steerTurn(e,t,n,s,a={}){return this.mutation(`${c(e,t)}/turns/${encodeURIComponent(n)}/steer`,{input:s,taskId:t},Jf,a)}async interruptTurn(e,t,n,s={}){return this.mutation(`${c(e,t)}/turns/${encodeURIComponent(n)}/interrupt`,{taskId:t},Uf,s)}async resolvePendingRequest(e,t,n={}){let s={itemId:e.itemId,projectId:e.projectId,resolution:t,taskId:e.taskId,turnId:e.turnId,type:e.type};return this.mutation(`${c(e.projectId,e.taskId)}/pending-requests/${encodeURIComponent(e.requestId)}/resolve`,s,pe,n)}};function te(o,e,t,n,s){let a$1=o?new URL(`${o}${t}`):new URL(t,globalThis.location.href);a$1.protocol=a$1.protocol==="https:"?"wss:":"ws:";let p=true,P=0,l,d,u,S=()=>{p&&(l=setTimeout(v,Math.min(3e4,500*2**Math.min(P++,6))*(.8+Math.random()*.4)));},v=()=>{if(!p)return;l=void 0;let h;try{h=e(a$1.toString());}catch{S();return}d=h;let y=O=>{if(!p||d!==h)return;let C;try{C=JSON.parse(String(O.data));}catch{h.close(1002,"Invalid resource change frame");return}if(!a.Check(n,C)){h.close(1002,"Invalid resource change frame");return}P=0,s(C);},m=O=>{d===h&&(u?.(),d=void 0,O.code!==1008&&O.code!==1002&&S());},f=()=>{h.close();};u=()=>{h.removeEventListener("message",y),h.removeEventListener("close",m),h.removeEventListener("error",f);},h.addEventListener("message",y),h.addEventListener("close",m),h.addEventListener("error",f);};return v(),()=>{p=false,l!==void 0&&clearTimeout(l),u?.(),d?.close(1e3,"Resource subscription closed"),d=void 0;}}function kn(o,e,t){return te(o,e,"/v1/scheduled-tasks/events",Ld,t)}var ne=class extends ee{previewScheduledTask(e,t={}){return this.mutation("/v1/scheduled-tasks/preview",{schedule:e},Od,t)}subscribeScheduledTasks(e){return kn(this.baseUrl,this.webSocketFactory,e)}listScheduledTasks(e={}){return this.read("/v1/scheduled-tasks",Td,e)}createScheduledTask(e,t={}){return this.mutation("/v1/scheduled-tasks",e,Ud,t)}updateScheduledTask(e,t,n={}){return this.mutation(`/v1/scheduled-tasks/${encodeURIComponent(e)}`,t,Ud,n,"PUT")}deleteScheduledTask(e,t={}){return this.mutation(`/v1/scheduled-tasks/${encodeURIComponent(e)}`,{},Vd,t,"DELETE")}setScheduledTaskEnabled(e,t,n={}){return this.mutation(`/v1/scheduled-tasks/${encodeURIComponent(e)}/enabled`,{enabled:t},Ud,n,"PATCH")}runScheduledTaskNow(e,t={}){return this.mutation(`/v1/scheduled-tasks/${encodeURIComponent(e)}/run`,{},Ud,t)}};var se=class extends ne{compressHistory(e={}){return this.mutation("/v1/history/compress",{},Dg,e)}listWorkbenchBackgrounds(e={}){return this.read("/v1/workbench-background/bing/catalog",Fg,e)}getGlobalInstructions(e={}){return this.read("/v1/personalization/instructions",xg,e)}saveGlobalInstructions(e,t,n={}){return this.mutation("/v1/personalization/instructions",{content:e,expectedContent:t},xg,n,"PUT")}getMemorySettings(e={}){return this.read("/v1/personalization/memories",zg,e)}updateMemorySettings(e,t={}){return this.mutation("/v1/personalization/memories",e,zg,t,"PUT")}resetMemories(e={}){return this.mutation("/v1/personalization/memories/reset",{},Cg,e)}getAgentPreferences(e={}){return this.read("/v1/personalization/agent",Bg,e)}updateAgentPreferences(e,t={}){return this.mutation("/v1/personalization/agent",e,Bg,t,"PUT")}};var oe=class extends se{subscribeWorkbenchChanges(e){return te(this.baseUrl,this.webSocketFactory,"/v1/workbench/events",ch,e)}importProjectTodo(e,t,n,s={}){return this.mutation(`${r(e)}/todos/${encodeURIComponent(t)}/import`,n,Mg,s)}listProjectTodos(e,t={}){return this.read(`${r(e)}/todos`,Lg,t)}createProjectTodo(e,t,n={}){return this.mutation(`${r(e)}/todos`,t,Mg,n)}saveProjectTodo(e,t,n,s={}){return this.mutation(`${r(e)}/todos/${encodeURIComponent(t)}`,n,Mg,s,"PUT")}deleteProjectTodo(e,t,n,s={}){return this.mutation(`${r(e)}/todos/${encodeURIComponent(t)}`,{expectedVersion:n},Pg,s,"DELETE")}};var Re=(o,e)=>`${r(o)}/tasks/${encodeURIComponent(e)}/async-questions`,re=class extends oe{listAsyncQuestions(e,t,n={}){return this.read(Re(e,t),Sg,n)}answerAsyncQuestion(e,t,n,s,a={}){return this.mutation(`${Re(e,t)}/${encodeURIComponent(n)}/answer`,{answers:s},Vg,a)}dismissAsyncQuestions(e,t,n,s={}){return this.mutation(`${Re(e,t)}/dismiss`,{ids:n},Sg,s)}};var Se=class extends re{};export{Se as CodexlyClient,q as CodexlyEventError,A as CodexlyHttpError,I as CodexlyMutationError,T as CodexlyResponseError,bn as buildProjectAttachmentUrl,Sn as buildProjectFileDownloadUrl,Rn as buildProjectImageFileUrl,Mn as buildProjectPdfFileUrl,H as buildTaskAttachmentUrl,fn as buildWorkbenchPetAssetUrl,Pe as startAgentEventSubscription};
1
+ import {createRequire}from'node:module';import {a}from'../chunk-5AELLXXE.js';import {tg,xe,we,Tg,Wg,pg,Ng,Mg,Qg,Eg,Gg,yg,Ag,Dg,Cg,Pd,Ud,Vd,Wd,Ig,qd,Mf,Of,Pf,Rf,Tf,Ee,ug,Vb,ac,bc,Fd,lf,nf,pf,wf,yf,Af,Cf,Gf,dd,Xf,If,Kf,Vf,qe,ic,hc,vg,Hd,Zg,jf,ue,ve,kc,rf,tf,vf,Ge,kd,Ef,Ce,wa,Aa,De,Ed,Da,Na,Pa,Ia,Ka,Ra,Va,Ya,_a,cb,gb,fb,jb,ob,rb,ub,wb,oa,qa,yb,nb,$g,ah,ch,$ as $$1,hb,sc,Lc,Oc,Qc,Sc,uc,yc,Ac,Dc,Ic,Fc,wc,Hc,He,pc,oc,rc,Zd,Ie,Fe,Ne,Pe as Pe$1,Te,Re as Re$1,Cd,fa,ha,Md,dh}from'../chunk-63NQMTXZ.js';import'../chunk-IV4NRE4S.js';import'../chunk-YXJGRSCL.js';createRequire(import.meta.url);
2
+ var g=[];for(let o=0;o<256;++o)g.push((o+256).toString(16).slice(1));function Pn(o,e=0){return (g[o[e+0]]+g[o[e+1]]+g[o[e+2]]+g[o[e+3]]+"-"+g[o[e+4]]+g[o[e+5]]+"-"+g[o[e+6]]+g[o[e+7]]+"-"+g[o[e+8]]+g[o[e+9]]+"-"+g[o[e+10]]+g[o[e+11]]+g[o[e+12]]+g[o[e+13]]+g[o[e+14]]+g[o[e+15]]).toLowerCase()}var Tn=new Uint8Array(16);function ye(){return crypto.getRandomValues(Tn)}function An(o,e,t){return !e&&!o&&crypto.randomUUID?crypto.randomUUID():vn(o,e,t)}function vn(o,e,t){o=o||{};let n=o.random??o.rng?.()??ye();if(n.length<16)throw new Error("Random bytes length must be >= 16");if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){if(t=t||0,t<0||t+16>e.length)throw new RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let s=0;s<16;++s)e[t+s]=n[s];return e}return Pn(n)}var $=An;var q=class extends Error{constructor(e,t){super(e,t),this.name="CodexlyEventError";}};function On(o,e,t){let n=e===we?`${xe}/events`:`/v1/projects/${encodeURIComponent(e)}/events`,s=o?new URL(`${o}${n}`):new URL(n,globalThis.location.href);return s.protocol=s.protocol==="https:"?"wss:":"ws:",s.searchParams.set("afterSequence",String(t)),s.toString()}function E(o,e,t){return {latestSequence:e,reason:t,sessionId:o,type:"resync.required",version:3}}function jn(o){if(o.length>pg)return true;if(o.length*3<=pg)return false;let e=0;for(let t=0;t<o.length;t+=1){let n=o.codePointAt(t);if(n===void 0)break;if(e+=n<=127?1:n<=2047?2:n<=65535?3:4,e>pg)return true;n>65535&&(t+=1);}return false}function Pe(o){let e=o.reconnectDelayMs??250,t=true,n=true,s=o.afterSequence,a$1=0,p,P,l,d=y=>{o.onConnectionState?.(y);},u=(y,m)=>{let f=P;f!==void 0&&(l?.(),l=void 0,P=void 0,f.close(y,m));},S=y=>{n=false,o.onResyncRequired(y),u(1e3,"Snapshot resync required"),d("closed");},v=(y,m)=>{n=false,o.onError?.(new q(y,m===void 0?void 0:{cause:m})),u(1002,"Invalid Agent Event frame"),d("closed");},h=()=>{if(!t)return;p=void 0;let y=false,m=o.webSocketFactory(On(o.baseUrl,o.projectId,s));P=m;let f=()=>t&&P===m,O=M=>{if(!f())return;if(typeof M.data!="string"){v("Codexly event frame must be text");return}if(jn(M.data)){S(E(o.sessionId,s,"event_retention_exceeded"));return}let x;try{x=JSON.parse(M.data);}catch(b){v("Codexly event frame is not valid JSON",b);return}if(!a.Check(tg,x)){v("Codexly event frame does not match the protocol schema");return}let k=x;if(k.type==="resync.required"){S(k);return}if(k.type==="connection.ready"){if(k.sessionId!==o.sessionId||k.latestSequence<s){S(E(k.sessionId,k.latestSequence,"session_changed"));return}y=true,a$1=0,d("connected");return}if(!y){v("Codexly event arrived before connection.ready");return}for(let b of k.events){if(b.sessionId!==o.sessionId){S(E(b.sessionId,b.sequence,"session_changed"));return}if(!(b.sequence<=s)){if(b.sequence!==s+1){S(E(b.sessionId,b.sequence,"sequence_gap"));return}if(s=b.sequence,o.onEvent(b),!f())return}}},C=()=>{!t||P!==m||o.onError?.(new q("Codexly event connection failed"));},be=M=>{if(P!==m)return;if(t&&M.code===1009){S(E(o.sessionId,s,"event_retention_exceeded"));return}if(l?.(),l=void 0,P=void 0,!t)return;if(!n){d("closed");return}d("reconnecting");let x=Math.min(e*2**a$1,5e3);a$1+=1,p=setTimeout(h,x);};l=()=>{m.removeEventListener("message",O),m.removeEventListener("error",C),m.removeEventListener("close",be);},m.addEventListener("message",O),m.addEventListener("error",C),m.addEventListener("close",be);};return d("connecting"),h(),()=>{t&&(t=false,n=false,p!==void 0&&clearTimeout(p),u(1e3,"Subscription cancelled"),d("closed"));}}var Cn=15e4,A=class extends Error{status;constructor(e,t,n){super(n??`Codexly request failed with ${String(e)} ${t}`.trim()),this.name="CodexlyHttpError",this.status=e;}},I=class extends A{code;retryable;constructor(e,t,n){super(e,t,n.message),this.name="CodexlyMutationError",this.code=n.code,this.retryable=n.retryable;}},T=class extends Error{constructor(e,t){super(e,t),this.name="CodexlyResponseError";}};function i(o,e){let t=new URLSearchParams;for(let[s,a]of Object.entries(e))a!==void 0&&t.set(s,String(a));let n=t.toString();return n?`${o}?${n}`:o}function r(o){return o===we?xe:`/v1/projects/${encodeURIComponent(o)}`}function c(o,e){return `${r(o)}/tasks/${encodeURIComponent(e)}`}function H(o,e,t,n){return `${o.replace(/\/$/u,"")}${c(e,t)}/attachments/${encodeURIComponent(n)}`}function Rn(o,e,t,n){let s=i(`${r(e)}/files/image`,{path:t,rootPath:n});return `${o.replace(/\/$/u,"")}${s}`}function Sn(o,e,t,n){let s=i(`${r(e)}/files/download`,{path:t,rootPath:n===""?void 0:n});return `${o.replace(/\/$/u,"")}${s}`}function bn(o,e,t){return `${o.replace(/\/$/u,"")}${r(e)}/attachments/${encodeURIComponent(t)}`}function fn(o,e=""){return `${e.replace(/\/$/u,"")}/v1/pets/assets/${encodeURIComponent(o)}`}var W=class{baseUrl;fetchImplementation;requestTimeouts;webSocketFactory;unauthorizedListeners=new Set;constructor(e={}){this.baseUrl=e.baseUrl?.replace(/\/$/u,"")??"",this.fetchImplementation=e.fetch??globalThis.fetch.bind(globalThis),this.requestTimeouts={mutationMs:e.requestTimeouts?.mutationMs??6e4,queryMs:e.requestTimeouts?.queryMs??3e4,readMs:e.requestTimeouts?.readMs??15e3},this.webSocketFactory=e.webSocketFactory??(t=>new WebSocket(t));}async getHealth(e={}){return this.read("/v1/health",He,e)}async getAppInfo(e={}){return this.read("/v1/app-info",pc,e)}async getAppUpdateProgress(e={}){return this.read("/v1/app-update/progress",oc,e)}async installAppUpdate(e,t={}){return this.mutation("/v1/app-update",{version:e},rc,t,"POST",Cn)}async getAccessStatus(e={}){return this.read("/v1/access",Zd,e)}async pairAccess(e){return this.request("/v1/access/pair",Zd,{body:JSON.stringify({code:e}),headers:{"content-type":"application/json"},method:"POST"},Xf,{timeoutMs:this.requestTimeouts.mutationMs})}async logoutAccess(){return this.request("/v1/access/logout",Zd,{body:"{}",headers:{"content-type":"application/json"},method:"POST"},Xf,{timeoutMs:this.requestTimeouts.mutationMs})}subscribeUnauthorized(e){return this.unauthorizedListeners.add(e),()=>this.unauthorizedListeners.delete(e)}async getCapabilities(e={}){return this.read("/v1/capabilities",Ie,e)}async listModels(e={}){return this.read("/v1/models",Fe,e)}async getProviderConnection(e={}){return this.read("/v1/provider-connection",Ne,e)}async startOfficialProviderLogin(e={}){return this.mutation("/v1/provider-connection/official-login",{},Pe$1,e)}async cancelProviderLogin(e,t={}){return this.mutation("/v1/provider-connection/official-login/cancel",{loginId:e},Te,t)}async configureCustomProvider(e,t={}){return this.mutation("/v1/provider-connection/custom",e,Re$1,t,"PUT")}async logoutProvider(e={}){return this.mutation("/v1/provider-connection/logout",{},Te,e)}async getGlobalSettings(e={}){return this.read("/v1/settings",Cd,e)}async listWorkbenchPets(e={}){return this.read("/v1/pets",fa,e)}async downloadWorkbenchPet(e,t={}){return this.mutation("/v1/pets/downloads",{petId:e},ha,t)}async updateGlobalSettings(e,t={}){return this.mutation("/v1/settings",e,Cd,t,"PUT")}subscribeEvents(e){return Pe({...e,baseUrl:this.baseUrl,webSocketFactory:this.webSocketFactory})}mutation(e,t,n,s,a="POST",p=this.requestTimeouts.mutationMs){return this.request(e,n,{body:JSON.stringify(t),headers:{"content-type":"application/json","idempotency-key":s.idempotencyKey??$()},method:a},Xf,{...s.signal===void 0?{}:{signal:s.signal},timeoutMs:p})}read(e,t,n,s){return this.request(e,t,{},s,{...n.signal===void 0?{}:{signal:n.signal},timeoutMs:n.signal===void 0?this.requestTimeouts.readMs:this.requestTimeouts.queryMs})}async request(e,t,n={},s,a$1={}){let p=AbortSignal.timeout(a$1.timeoutMs??this.requestTimeouts.readMs),P=a$1.signal===void 0?p:AbortSignal.any([a$1.signal,p]),l=await this.fetchImplementation(`${this.baseUrl}${e}`,{...n,credentials:"same-origin",headers:{accept:"application/json",...n.headers},signal:P});if(!l.ok){if(l.status===401)for(let u of this.unauthorizedListeners)try{u();}catch{}if(s!==void 0){let u;try{u=await l.json();}catch(S){throw new T("Codexly error response is not valid JSON",{cause:S})}throw a.Check(s,u)?new I(l.status,l.statusText,u):new T("Codexly error response does not match the protocol schema")}try{let u=await l.json();if(typeof u=="object"&&u!==null&&"message"in u&&typeof u.message=="string"&&u.message.length>0)throw new A(l.status,l.statusText,u.message)}catch(u){if(u instanceof A)throw u}throw new A(l.status,l.statusText)}let d;try{d=await l.json();}catch(u){throw new T("Codexly response is not valid JSON",{cause:u})}if(!a.Check(t,d))throw new T("Codexly response does not match the protocol schema");return d}};function Mn(o,e,t,n){let s=i(`${r(e)}/files/pdf`,{path:t,rootPath:n===""?void 0:n});return `${o.replace(/\/$/u,"")}${s}`}var _=class extends W{async reconcileOfficialPlugins(e={}){return this.mutation("/v1/plugins/official/reconcile",{},sc,e)}async listOfficialPlugins(e,t={}){return this.read(i("/v1/plugins/official",{forceRefetch:e?"true":void 0}),Lc,t)}async getOfficialPlugin(e,t,n,s={}){return this.read(i(`/v1/plugins/official/${encodeURIComponent(e)}/${encodeURIComponent(n)}`,{marketplacePath:t??void 0}),Oc,s,Xf)}async installOfficialPlugin(e,t,n,s,a={}){return this.mutation(`/v1/plugins/official/${encodeURIComponent(e)}/${encodeURIComponent(n)}/install`,{installAttemptId:s,marketplacePath:t},Qc,a)}async uninstallOfficialPlugin(e,t,n,s={}){return this.mutation(`/v1/plugins/official/${encodeURIComponent(e)}/${encodeURIComponent(t)}/uninstall`,{pluginId:n},Sc,s)}async listInstalledSkills(e={}){return this.read("/v1/skills/installed",uc,e)}async listClawhubSkills(e,t,n,s={}){return this.read(i("/v1/skills/market",{cursor:t??void 0,query:e.length===0?void 0:e,sort:n}),yc,s,Xf)}async getClawhubSkill(e,t,n={}){return this.read(`/v1/skills/market/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,Ac,n,Xf)}async installClawhubSkill(e,t,n,s,a,p={}){return this.mutation(`/v1/skills/market/${encodeURIComponent(e)}/${encodeURIComponent(t)}/install`,{projectId:s,rootPath:a,scope:n},Dc,p)}async openSkillDirectory(e,t={}){return this.mutation("/v1/skills/open",{path:e},Ic,t)}async setSkillEnabled(e,t,n={}){return this.mutation("/v1/skills/enabled",{enabled:t,path:e},Fc,n,"PUT")}async listConfiguredMcpServers(e={}){return this.read("/v1/mcp-servers/configured",wc,e)}async setMcpServerEnabled(e,t,n={}){return this.mutation(`/v1/mcp-servers/configured/${encodeURIComponent(e)}/enabled`,{enabled:t},Hc,n,"PUT")}};var B=class extends _{async createTaskWorktree(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/task-worktrees`,{rootPath:t}),n,hb,s)}};var z=class extends B{async createProjectDirectory(e,t={}){return this.mutation("/v1/project-directories",e,$$1,t)}};var N=class extends z{async readProjectTextFileRevision(e,t,n,s={}){return this.read(i(`${r(e)}/files/text/revision`,{path:n,rootPath:t}),$g,s)}async readProjectTextFile(e,t,n,s={}){return this.read(i(`${r(e)}/files/text`,{path:n,rootPath:t}),ah,s)}async saveProjectTextFile(e,t,n,s={}){return this.mutation(i(`${r(e)}/files/text`,{rootPath:t}),n,ch,s)}};var K=class extends N{async pushProjectCommits(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/push`,{rootPath:t}),n,nb,s)}};var J=class extends K{async listSkills(e,t={}){return this.read(`${r(e)}/skills`,Ge,t)}async listMcpServers(e,t,n={}){return this.read(`${c(e,t)}/mcp-servers`,kd,n,Xf)}async retryMcpServers(e,t,n={}){return this.mutation(`${c(e,t)}/mcp-servers/retry`,{},Ef,n)}async listProjects(e={}){return this.read("/v1/projects",Ce,e)}async listProjectDirectories(e,t={}){return this.read(i("/v1/project-directories",{path:e,includeHidden:t.includeHidden===true?"true":void 0}),wa,t)}async listHostFiles(e,t,n={}){return this.read(i("/v1/host-files",{kind:e,path:t,includeHidden:n.includeHidden===true?"true":void 0}),Aa,n)}async reorderProjects(e,t={}){return this.mutation("/v1/projects/order",{projectIds:e},De,t,"PUT")}async getProjectDefaults(e,t={}){return this.read(`${r(e)}/defaults`,Ed,t)}async updateProjectDefaults(e,t,n={}){return this.mutation(`${r(e)}/defaults`,t,Ed,n,"PUT")}async addProject(e,t={}){return this.mutation("/v1/projects",{roots:e.map(n=>({path:n}))},Da,t)}async renameProject(e,t,n={}){return this.mutation(`${r(e)}/rename`,{name:t},Na,n)}async removeProject(e,t={}){return this.mutation(`${r(e)}/remove`,{},Pa,t)}async getProjectOpenCapabilities(e,t={}){return this.read(`${r(e)}/open-capabilities`,Ia,t)}async openProject(e,t,n,s={}){return this.mutation(i(`${r(e)}/open`,{rootPath:t}),n,Ka,s)}async getProjectGitStatus(e,t,n={}){return this.read(i(`/v1/projects/${encodeURIComponent(e)}/git/status`,{includeDiff:t.includeDiff===true?"true":void 0,repository:t.repository,rootPath:t.rootPath}),Ra,n)}async getProjectGitHistory(e,t,n={}){return this.read(i(`${r(e)}/git/history`,{cursor:t.cursor,repository:t.repository,rootPath:t.rootPath}),Va,n)}async getProjectGitCommitFiles(e,t,n={}){return this.read(i(`${r(e)}/git/commit-files`,{cursor:t.cursor,repository:t.repository,rootPath:t.rootPath,sha:t.sha}),Ya,n)}async getProjectGitCommitFileDiff(e,t,n={}){return this.read(i(`${r(e)}/git/commit-diff`,{path:t.path,repository:t.repository,rootPath:t.rootPath,sha:t.sha}),_a,n)}async switchProjectBranch(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/branch`,{rootPath:t}),n,Ra,s)}async createProjectBranch(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/branches`,{rootPath:t}),n,Ra,s)}async listProjectWorktrees(e,t,n={}){return this.read(i(`${r(e)}/git/worktrees`,{rootPath:t}),cb,n)}async createProjectWorktree(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/worktrees`,{rootPath:t}),n,gb,s)}async switchProjectWorktree(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/worktree`,{rootPath:t}),n,fb,s)}async generateCommitMessage(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/commit-message`,{rootPath:t}),n,jb,s)}async commitProjectChanges(e,t,n,s={}){return this.mutation(i(`${r(e)}/git/commits`,{rootPath:t}),n,ob,s)}async listProjectFiles(e,t,n,s={}){let a=i(`/v1/projects/${encodeURIComponent(e)}/files/tree`,{path:n??void 0,rootPath:t});return this.read(a,rb,s)}async renameProjectFile(e,t,n,s={}){return this.mutation(i(`/v1/projects/${encodeURIComponent(e)}/files/rename`,{rootPath:t}),n,ub,s)}async deleteProjectFile(e,t,n,s={}){return this.mutation(i(`/v1/projects/${encodeURIComponent(e)}/files/delete`,{rootPath:t}),n,wb,s)}async searchProjectFiles(e,t,n,s,a={}){let p=i(`/v1/projects/${encodeURIComponent(e)}/files/search`,{query:n,rootPath:t,sessionId:s});return this.read(p,oa,a)}async stopProjectFileSearch(e,t,n,s={}){return this.mutation(`/v1/projects/${encodeURIComponent(e)}/files/search/stop`,{rootPath:t,sessionId:n},qa,s)}async readProjectSourceFile(e,t,n,s,a={}){let p=i(`${r(e)}/files/source`,{cursor:s,path:n,rootPath:t});return this.read(p,yb,a)}};var V=class extends J{deleteArchivedTasks(e,t={}){return this.mutation(`${r(e)}/tasks/archived`,{},kc,t,"DELETE")}async archiveTask(e,t,n={}){return this.mutation(`${c(e,t)}/archive`,{},rf,n)}async unarchiveTask(e,t,n={}){return this.mutation(`${c(e,t)}/unarchive`,{},tf,n)}async deleteTask(e,t,n={}){return this.mutation(c(e,t),{},vf,n,"DELETE")}};var Y=class extends V{async updateTaskGoal(e,t,n,s={}){return this.mutation(`${c(e,t)}/goal`,n,ue,s,"PUT")}async clearTaskGoal(e,t,n={}){return this.mutation(`${c(e,t)}/goal`,{},ve,n,"DELETE")}};var X=class extends Y{readNavigableTask(e,t,n={}){return this.read(`${c(e,t)}/navigation`,vg,n)}updateTaskSettingsAndDefaults(e,t,n,s={}){return this.mutation(`${c(e,t)}/settings-and-defaults`,n,Hd,s,"PUT")}queryCompletedTasks(e,t={}){return this.request("/v1/tasks/completed/query",Zg,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(e)},void 0,{...t,timeoutMs:this.requestTimeouts.queryMs})}listTaskCatalog(e,t={},n={}){return this.read(i(`${r(e)}/tasks/catalog`,t),jf,n)}};var Z=class extends X{async searchTasks(e,t={}){return this.read(i("/v1/search/tasks",e),ic,t)}async searchTaskOccurrences(e,t,n,s,a={}){return this.read(i(`${c(e,t)}/search-occurrences`,{cursor:s,query:n}),hc,a)}};var ee=class extends Z{submitTask(e,t,n={}){return this.mutation(`${r(e)}/submissions`,t,Ig,n)}async listQueuedSubmissions(e,t,n={}){return this.read(`${c(e,t)}/queue`,qd,n)}async addQueuedSubmission(e,t,n,s,a={}){return this.mutation(`${c(e,t)}/queue`,{clientUserMessageId:s,input:n},Mf,a)}async updateQueuedSubmission(e,t,n,s,a,p={}){return this.mutation(`${c(e,t)}/queue/${encodeURIComponent(n)}`,{input:s,status:a},Of,p,"PUT")}async deleteQueuedSubmission(e,t,n,s={}){return this.mutation(`${c(e,t)}/queue/${encodeURIComponent(n)}`,{},Pf,s,"DELETE")}async reorderQueuedSubmissions(e,t,n,s={}){return this.mutation(`${c(e,t)}/queue/reorder`,{queuedSubmissionIds:n},Rf,s,"PUT")}async startQueuedSubmission(e,t,n,s={}){return this.mutation(`${c(e,t)}/queue/start`,{...n===void 0?{}:{queuedSubmissionId:n}},Tf,s)}async listTasks(e,t={},n={}){let s=i(`${r(e)}/tasks`,t);return this.read(s,Ee,n)}async readTask(e,t,n={}){let{cursor:s,summary:a,...p}=n;return this.read(i(c(e,t),{cursor:s,summary:a}),ug,p)}getTaskAttachmentUrl(e,t,n){return H(this.baseUrl,e,t,n)}async openTaskAttachment(e,t,n,s={}){return this.mutation(`${c(e,t)}/attachments/${encodeURIComponent(n)}/open`,{},Vb,s)}async listBackgroundTerminals(e,t,n={}){return this.read(`${c(e,t)}/background-terminals`,ac,n)}async terminateBackgroundTerminal(e,t,n,s={}){return this.mutation(`${c(e,t)}/background-terminals/${encodeURIComponent(n)}/terminate`,{},bc,s)}async getTaskSettings(e,t,n={}){return this.read(`${c(e,t)}/settings`,Fd,n)}async updateTaskSettings(e,t,n,s={}){return this.mutation(`${c(e,t)}/settings`,n,Fd,s,"PUT")}async startTask(e,t={}){return this.mutation(`${r(e)}/tasks`,{},lf,t)}async startWorktreeTask(e,t,n={}){return this.mutation(`${r(e)}/tasks`,t,lf,n)}async pinTask(e,t,n,s={}){return this.mutation(`${c(e,t)}/pin`,{pinned:n},nf,s,"PUT")}async renameTask(e,t,n,s={}){return this.mutation(`${c(e,t)}/rename`,{title:n},pf,s)}async unsubscribeTask(e,t){return this.request(`${c(e,t)}/unsubscribe`,wf,{body:"{}",headers:{"content-type":"application/json"},method:"POST"})}async startReview(e,t,n,s={}){return this.mutation(`${c(e,t)}/review`,n,yf,s)}async compactTask(e,t,n={}){return this.mutation(`${c(e,t)}/compact`,{},Af,n)}async forkTask(e,t,n,s={}){return this.mutation(`${c(e,t)}/fork`,n,Cf,s)}async uploadFeedback(e,t,n,s={}){return this.mutation(`${c(e,t)}/feedback`,n,Gf,s)}async uploadAttachment(e,t,n={}){let s=new FormData;return s.set("attachment",t.content,t.name),this.request(`${r(e)}/attachments/${t.kind}`,dd,{body:s,headers:{"idempotency-key":n.idempotencyKey??$()},method:"POST"},Xf,{...n.signal===void 0?{}:{signal:n.signal},timeoutMs:this.requestTimeouts.mutationMs})}async importHostAttachment(e,t,n,s={}){return this.mutation(`${r(e)}/attachments/${t}/host`,{path:n},dd,s)}async startTurn(e,t,n,s,a={}){return this.mutation(`${c(e,t)}/turns`,{input:n,options:s},If,a)}async steerTurn(e,t,n,s,a={}){return this.mutation(`${c(e,t)}/turns/${encodeURIComponent(n)}/steer`,{input:s,taskId:t},Kf,a)}async interruptTurn(e,t,n,s={}){return this.mutation(`${c(e,t)}/turns/${encodeURIComponent(n)}/interrupt`,{taskId:t},Vf,s)}async resolvePendingRequest(e,t,n={}){let s={itemId:e.itemId,projectId:e.projectId,resolution:t,taskId:e.taskId,turnId:e.turnId,type:e.type};return this.mutation(`${c(e.projectId,e.taskId)}/pending-requests/${encodeURIComponent(e.requestId)}/resolve`,s,qe,n)}};function te(o,e,t,n,s){let a$1=o?new URL(`${o}${t}`):new URL(t,globalThis.location.href);a$1.protocol=a$1.protocol==="https:"?"wss:":"ws:";let p=true,P=0,l,d,u,S=()=>{p&&(l=setTimeout(v,Math.min(3e4,500*2**Math.min(P++,6))*(.8+Math.random()*.4)));},v=()=>{if(!p)return;l=void 0;let h;try{h=e(a$1.toString());}catch{S();return}d=h;let y=O=>{if(!p||d!==h)return;let C;try{C=JSON.parse(String(O.data));}catch{h.close(1002,"Invalid resource change frame");return}if(!a.Check(n,C)){h.close(1002,"Invalid resource change frame");return}P=0,s(C);},m=O=>{d===h&&(u?.(),d=void 0,O.code!==1008&&O.code!==1002&&S());},f=()=>{h.close();};u=()=>{h.removeEventListener("message",y),h.removeEventListener("close",m),h.removeEventListener("error",f);},h.addEventListener("message",y),h.addEventListener("close",m),h.addEventListener("error",f);};return v(),()=>{p=false,l!==void 0&&clearTimeout(l),u?.(),d?.close(1e3,"Resource subscription closed"),d=void 0;}}function kn(o,e,t){return te(o,e,"/v1/scheduled-tasks/events",Md,t)}var ne=class extends ee{previewScheduledTask(e,t={}){return this.mutation("/v1/scheduled-tasks/preview",{schedule:e},Pd,t)}subscribeScheduledTasks(e){return kn(this.baseUrl,this.webSocketFactory,e)}listScheduledTasks(e={}){return this.read("/v1/scheduled-tasks",Ud,e)}createScheduledTask(e,t={}){return this.mutation("/v1/scheduled-tasks",e,Vd,t)}updateScheduledTask(e,t,n={}){return this.mutation(`/v1/scheduled-tasks/${encodeURIComponent(e)}`,t,Vd,n,"PUT")}deleteScheduledTask(e,t={}){return this.mutation(`/v1/scheduled-tasks/${encodeURIComponent(e)}`,{},Wd,t,"DELETE")}setScheduledTaskEnabled(e,t,n={}){return this.mutation(`/v1/scheduled-tasks/${encodeURIComponent(e)}/enabled`,{enabled:t},Vd,n,"PATCH")}runScheduledTaskNow(e,t={}){return this.mutation(`/v1/scheduled-tasks/${encodeURIComponent(e)}/run`,{},Vd,t)}};var se=class extends ne{compressHistory(e={}){return this.mutation("/v1/history/compress",{},Eg,e)}listWorkbenchBackgrounds(e={}){return this.read("/v1/workbench-background/bing/catalog",Gg,e)}getGlobalInstructions(e={}){return this.read("/v1/personalization/instructions",yg,e)}saveGlobalInstructions(e,t,n={}){return this.mutation("/v1/personalization/instructions",{content:e,expectedContent:t},yg,n,"PUT")}getMemorySettings(e={}){return this.read("/v1/personalization/memories",Ag,e)}updateMemorySettings(e,t={}){return this.mutation("/v1/personalization/memories",e,Ag,t,"PUT")}resetMemories(e={}){return this.mutation("/v1/personalization/memories/reset",{},Dg,e)}getAgentPreferences(e={}){return this.read("/v1/personalization/agent",Cg,e)}updateAgentPreferences(e,t={}){return this.mutation("/v1/personalization/agent",e,Cg,t,"PUT")}};var oe=class extends se{subscribeWorkbenchChanges(e){return te(this.baseUrl,this.webSocketFactory,"/v1/workbench/events",dh,e)}importProjectTodo(e,t,n,s={}){return this.mutation(`${r(e)}/todos/${encodeURIComponent(t)}/import`,n,Ng,s)}listProjectTodos(e,t={}){return this.read(`${r(e)}/todos`,Mg,t)}createProjectTodo(e,t,n={}){return this.mutation(`${r(e)}/todos`,t,Ng,n)}saveProjectTodo(e,t,n,s={}){return this.mutation(`${r(e)}/todos/${encodeURIComponent(t)}`,n,Ng,s,"PUT")}deleteProjectTodo(e,t,n,s={}){return this.mutation(`${r(e)}/todos/${encodeURIComponent(t)}`,{expectedVersion:n},Qg,s,"DELETE")}};var Re=(o,e)=>`${r(o)}/tasks/${encodeURIComponent(e)}/async-questions`,re=class extends oe{listAsyncQuestions(e,t,n={}){return this.read(Re(e,t),Tg,n)}answerAsyncQuestion(e,t,n,s,a={}){return this.mutation(`${Re(e,t)}/${encodeURIComponent(n)}/answer`,{answers:s},Wg,a)}dismissAsyncQuestions(e,t,n,s={}){return this.mutation(`${Re(e,t)}/dismiss`,{ids:n},Tg,s)}};var Se=class extends re{};export{Se as CodexlyClient,q as CodexlyEventError,A as CodexlyHttpError,I as CodexlyMutationError,T as CodexlyResponseError,bn as buildProjectAttachmentUrl,Sn as buildProjectFileDownloadUrl,Rn as buildProjectImageFileUrl,Mn as buildProjectPdfFileUrl,H as buildTaskAttachmentUrl,fn as buildWorkbenchPetAssetUrl,Pe as startAgentEventSubscription};
@@ -1,6 +1,6 @@
1
- import {createRequire}from'node:module';import {m,c,e,g,i,k as k$1,j,d}from'./chunk-PQPYP3AR.js';import {h as h$1}from'./chunk-DRIJMD7S.js';import'./chunk-GFASBWL4.js';import'./chunk-ZK7RF5XC.js';import'./chunk-XJOOU7A5.js';import'./chunk-3WW7LK46.js';import'./chunk-HD7TOFDV.js';import'./chunk-IV4NRE4S.js';import'./chunk-YXJGRSCL.js';import {realpath,access,readFile,open,rm,mkdir,lstat,chmod,appendFile,stat,rename,writeFile}from'fs/promises';import {homedir}from'os';import {join,dirname,isAbsolute,resolve}from'path';import {setTimeout}from'timers/promises';import {randomBytes,timingSafeEqual,createHash}from'crypto';import {execFile}from'child_process';import {promisify}from'util';import {createServer,createConnection}from'net';createRequire(import.meta.url);
2
- function Q(t,e,o){let r=o.XDG_CONFIG_HOME&&isAbsolute(o.XDG_CONFIG_HOME)?o.XDG_CONFIG_HOME:join(e,".config"),n=t==="darwin"?join(e,"Library","Application Support","Codexly","autostart"):t==="linux"?join(r,"codexly","autostart"):t==="win32"?join(o.LOCALAPPDATA??join(e,"AppData","Local"),"Codexly","autostart"):void 0;if(!n)throw new Error(`\u5F53\u524D\u7CFB\u7EDF\u4E0D\u652F\u6301\u7528\u6237\u81EA\u542F\u52A8: ${t}`);return {root:n,config:join(n,"config.json"),state:join(n,"runtime.json"),log:join(n,"service.log"),registration:t==="darwin"?join(e,"Library","LaunchAgents","io.codexly.web.plist"):t==="linux"?join(r,"systemd","user","codexly-web.service"):join(n,"task.xml")}}function V(t){if(t.lan!==true&&(t.lanPassword!==void 0||t.sessionTtl!==void 0))throw new Error("--lan-password \u548C --session-ttl \u53EA\u80FD\u4E0E --lan \u4E00\u8D77\u4F7F\u7528");t.lanPassword!==void 0&&k$1(t.lanPassword),t.sessionTtl!==void 0&&j(t.sessionTtl);}function Y(t,e,o){let r=d(t,e.environment);return V(r),r.noOpen=true,r.port??=3210,r.codexHome=resolve(e.cwd,r.codexHome??e.environment.CODEX_HOME??join(e.home,".codex")),r.codexBin&&(r.codexBin=resolve(e.cwd,r.codexBin)),r.workspaceRoots&&(r.workspaceRoots=r.workspaceRoots.map(n=>resolve(e.cwd,n))),r.lan&&(r.lanPassword??=o?.start.lanPassword??`Aa1_${randomBytes(24).toString("base64url")}`),{version:1,node:e.node,cli:e.cli,home:e.home,environment:e.environment.PATH?{PATH:e.environment.PATH}:{},start:r}}async function b(t){await mkdir(t,{recursive:true,mode:448});let e=await lstat(t);if(!e.isDirectory()||e.isSymbolicLink())throw new Error("\u81EA\u542F\u52A8\u76EE\u5F55\u5FC5\u987B\u662F\u5B9E\u9645\u76EE\u5F55");process.platform!=="win32"&&await chmod(t,448);}async function P(t,e){await mkdir(dirname(t),{recursive:true,mode:448});let o=`${t}.${randomBytes(8).toString("hex")}.tmp`;try{await writeFile(o,e,{mode:384,flag:"wx"}),await rename(o,t);}finally{await rm(o,{force:true});}}async function h(t,e){await P(t,`${JSON.stringify(e,null,2)}
3
- `);}function v(t){return t instanceof Error&&t.code==="ENOENT"}async function A(t){let e;try{e=JSON.parse(await readFile(t,"utf8"));}catch(o){if(v(o))return;throw new Error("\u65E0\u6CD5\u8BFB\u53D6\u81EA\u542F\u52A8\u914D\u7F6E\uFF0C\u8BF7\u4FEE\u590D config.json\uFF0C\u6216 disable \u540E\u79FB\u9664\u8BE5\u6587\u4EF6\u518D enable",{cause:o})}try{let o=a=>typeof a=="object"&&a!==null&&!Array.isArray(a),r=a=>typeof a=="string"&&isAbsolute(a);if(!o(e)||e.version!==1||![e.node,e.cli,e.home].every(r))throw new Error("\u542F\u52A8\u8DEF\u5F84\u65E0\u6548");let n=e.start;if(!o(n)||n.noOpen!==!0||!r(n.codexHome))throw new Error("\u542F\u52A8\u53C2\u6570\u65E0\u6548");let c=n.port;if(typeof c!="number"||!Number.isInteger(c)||c<1||c>65535)throw new Error("\u7AEF\u53E3\u65E0\u6548");if(n.lan!==void 0&&typeof n.lan!="boolean")throw new Error("\u6A21\u5F0F\u65E0\u6548");if(n.lan===!0&&typeof n.lanPassword!="string")throw new Error("\u7F3A\u5C11 LAN \u5BC6\u7801");if(n.lanPassword!==void 0&&typeof n.lanPassword!="string")throw new Error("LAN \u5BC6\u7801\u65E0\u6548");if(n.sessionTtl!==void 0&&typeof n.sessionTtl!="string")throw new Error("\u4F1A\u8BDD\u671F\u9650\u65E0\u6548");if(n.codexBin!==void 0&&!r(n.codexBin))throw new Error("Codex \u8DEF\u5F84\u65E0\u6548");for(let a of ["workspaceRoots","allowedHosts"]){let g=n[a];if(g!==void 0&&(!Array.isArray(g)||!g.every(l=>a==="workspaceRoots"?r(l):typeof l=="string")))throw new Error("\u5217\u8868\u53C2\u6570\u65E0\u6548")}let d=e.environment;if(!o(d)||Object.entries(d).some(([a,g])=>a!=="PATH"||typeof g!="string"))throw new Error("\u73AF\u5883\u914D\u7F6E\u65E0\u6548");if(e.linuxTarget!==void 0&&e.linuxTarget!=="default.target"&&e.linuxTarget!=="graphical-session.target")throw new Error("\u767B\u5F55\u76EE\u6807\u65E0\u6548");let i=e;return V(i.start),i}catch(o){throw new Error("\u81EA\u542F\u52A8\u914D\u7F6E\u65E0\u6548\u6216\u7248\u672C\u4E0D\u517C\u5BB9\uFF0C\u8BF7\u4FEE\u590D config.json\uFF0C\u6216 disable \u540E\u79FB\u9664\u8BE5\u6587\u4EF6\u518D enable",{cause:o})}}var At=promisify(execFile),k=async(t,e)=>{try{return {code:0,...await At(t,[...e],{encoding:"utf8",windowsHide:!0,timeout:15e3,maxBuffer:524288})}}catch(o){let r=o;if(typeof r.code!="number")throw o;return {code:r.code,stdout:r.stdout??"",stderr:r.stderr??r.message}}};function x(t){return t.replace(/&/gu,"&amp;").replace(/</gu,"&lt;").replace(/>/gu,"&gt;").replace(/"/gu,"&quot;").replace(/'/gu,"&apos;")}function R(t){if(t.split("").some(e=>e.charCodeAt(0)<32))throw new Error("\u542F\u52A8\u8DEF\u5F84\u4E0D\u80FD\u5305\u542B\u63A7\u5236\u5B57\u7B26");return t}function O(t,e){return [t.node,t.cli,"autostart","run","--config",e].map(R)}function St(t,e){return `<?xml version="1.0" encoding="UTF-8"?>
1
+ import {createRequire}from'node:module';import {m,c,e,g,i,k as k$1,j,d}from'./chunk-PQPYP3AR.js';import {h as h$1}from'./chunk-PFNMH4LN.js';import'./chunk-5AELLXXE.js';import'./chunk-5ULADQG3.js';import'./chunk-XJOOU7A5.js';import'./chunk-3WW7LK46.js';import'./chunk-63NQMTXZ.js';import'./chunk-IV4NRE4S.js';import'./chunk-YXJGRSCL.js';import {realpath,access,readFile,open,rm,mkdir,lstat,chmod,appendFile,stat,rename,writeFile}from'fs/promises';import {homedir}from'os';import {join,dirname,isAbsolute,resolve}from'path';import {setTimeout}from'timers/promises';import {randomBytes,timingSafeEqual,createHash}from'crypto';import {execFile}from'child_process';import {promisify}from'util';import {createServer,createConnection}from'net';createRequire(import.meta.url);
2
+ function Q(t,e,o){let r=o.XDG_CONFIG_HOME&&isAbsolute(o.XDG_CONFIG_HOME)?o.XDG_CONFIG_HOME:join(e,".config"),n=t==="darwin"?join(e,"Library","Application Support","Codexly","autostart"):t==="linux"?join(r,"codexly","autostart"):t==="win32"?join(o.LOCALAPPDATA??join(e,"AppData","Local"),"Codexly","autostart"):void 0;if(!n)throw new Error(`\u5F53\u524D\u7CFB\u7EDF\u4E0D\u652F\u6301\u7528\u6237\u81EA\u542F\u52A8: ${t}`);return {root:n,config:join(n,"config.json"),state:join(n,"runtime.json"),log:join(n,"service.log"),registration:t==="darwin"?join(e,"Library","LaunchAgents","io.codexly.web.plist"):t==="linux"?join(r,"systemd","user","codexly-web.service"):join(n,"task.xml")}}function V(t){if(t.lan!==true&&(t.lanPassword!==void 0||t.sessionTtl!==void 0))throw new Error("--lan-password \u548C --session-ttl \u53EA\u80FD\u4E0E --lan \u4E00\u8D77\u4F7F\u7528");t.lanPassword!==void 0&&k$1(t.lanPassword),t.sessionTtl!==void 0&&j(t.sessionTtl);}function Y(t,e,o){let r=d(t,e.environment);return V(r),r.noOpen=true,r.port??=3210,r.codexHome=resolve(e.cwd,r.codexHome??e.environment.CODEX_HOME??join(e.home,".codex")),r.codexBin&&(r.codexBin=resolve(e.cwd,r.codexBin)),r.workspaceRoots&&(r.workspaceRoots=r.workspaceRoots.map(n=>resolve(e.cwd,n))),r.lan&&(r.lanPassword??=o?.start.lanPassword??`Aa1_${randomBytes(24).toString("base64url")}`),{version:1,node:e.node,cli:e.cli,home:e.home,environment:e.environment.PATH?{PATH:e.environment.PATH}:{},start:r}}async function b(t){await mkdir(t,{recursive:true,mode:448});let e=await lstat(t);if(!e.isDirectory()||e.isSymbolicLink())throw new Error("\u81EA\u542F\u52A8\u76EE\u5F55\u5FC5\u987B\u662F\u5B9E\u9645\u76EE\u5F55");process.platform!=="win32"&&await chmod(t,448);}async function P(t,e){await mkdir(dirname(t),{recursive:true,mode:448});let o=`${t}.${randomBytes(8).toString("hex")}.tmp`;try{await writeFile(o,e,{mode:384,flag:"wx"});for(let r=0;;r++)try{await rename(o,t);break}catch(n){if(process.platform!=="win32"||r===7||!["EPERM","EACCES","EBUSY"].includes(n.code??""))throw n;await setTimeout(25*2**r);}}finally{await rm(o,{force:true});}}async function h(t,e){await P(t,`${JSON.stringify(e,null,2)}
3
+ `);}function v(t){return t instanceof Error&&t.code==="ENOENT"}async function A(t){let e;try{e=JSON.parse(await readFile(t,"utf8"));}catch(o){if(v(o))return;throw new Error("\u65E0\u6CD5\u8BFB\u53D6\u81EA\u542F\u52A8\u914D\u7F6E\uFF0C\u8BF7\u4FEE\u590D config.json\uFF0C\u6216 disable \u540E\u79FB\u9664\u8BE5\u6587\u4EF6\u518D enable",{cause:o})}try{let o=a=>typeof a=="object"&&a!==null&&!Array.isArray(a),r=a=>typeof a=="string"&&isAbsolute(a);if(!o(e)||e.version!==1||![e.node,e.cli,e.home].every(r))throw new Error("\u542F\u52A8\u8DEF\u5F84\u65E0\u6548");let n=e.start;if(!o(n)||n.noOpen!==!0||!r(n.codexHome))throw new Error("\u542F\u52A8\u53C2\u6570\u65E0\u6548");let c=n.port;if(typeof c!="number"||!Number.isInteger(c)||c<1||c>65535)throw new Error("\u7AEF\u53E3\u65E0\u6548");if(n.lan!==void 0&&typeof n.lan!="boolean")throw new Error("\u6A21\u5F0F\u65E0\u6548");if(n.lan===!0&&typeof n.lanPassword!="string")throw new Error("\u7F3A\u5C11 LAN \u5BC6\u7801");if(n.lanPassword!==void 0&&typeof n.lanPassword!="string")throw new Error("LAN \u5BC6\u7801\u65E0\u6548");if(n.sessionTtl!==void 0&&typeof n.sessionTtl!="string")throw new Error("\u4F1A\u8BDD\u671F\u9650\u65E0\u6548");if(n.codexBin!==void 0&&!r(n.codexBin))throw new Error("Codex \u8DEF\u5F84\u65E0\u6548");for(let a of ["workspaceRoots","allowedHosts"]){let w=n[a];if(w!==void 0&&(!Array.isArray(w)||!w.every(l=>a==="workspaceRoots"?r(l):typeof l=="string")))throw new Error("\u5217\u8868\u53C2\u6570\u65E0\u6548")}let d=e.environment;if(!o(d)||Object.entries(d).some(([a,w])=>a!=="PATH"||typeof w!="string"))throw new Error("\u73AF\u5883\u914D\u7F6E\u65E0\u6548");if(e.linuxTarget!==void 0&&e.linuxTarget!=="default.target"&&e.linuxTarget!=="graphical-session.target")throw new Error("\u767B\u5F55\u76EE\u6807\u65E0\u6548");let i=e;return V(i.start),i}catch(o){throw new Error("\u81EA\u542F\u52A8\u914D\u7F6E\u65E0\u6548\u6216\u7248\u672C\u4E0D\u517C\u5BB9\uFF0C\u8BF7\u4FEE\u590D config.json\uFF0C\u6216 disable \u540E\u79FB\u9664\u8BE5\u6587\u4EF6\u518D enable",{cause:o})}}var Et=promisify(execFile),k=async(t,e)=>{try{return {code:0,...await Et(t,[...e],{encoding:"utf8",windowsHide:!0,timeout:15e3,maxBuffer:524288})}}catch(o){let r=o;if(typeof r.code!="number")throw o;return {code:r.code,stdout:r.stdout??"",stderr:r.stderr??r.message}}};function x(t){return t.replace(/&/gu,"&amp;").replace(/</gu,"&lt;").replace(/>/gu,"&gt;").replace(/"/gu,"&quot;").replace(/'/gu,"&apos;")}function R(t){if(t.split("").some(e=>e.charCodeAt(0)<32))throw new Error("\u542F\u52A8\u8DEF\u5F84\u4E0D\u80FD\u5305\u542B\u63A7\u5236\u5B57\u7B26");return t}function O(t,e){return [t.node,t.cli,"autostart","run","--config",e].map(R)}function St(t,e){return `<?xml version="1.0" encoding="UTF-8"?>
4
4
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
5
5
  <plist version="1.0"><dict>
6
6
  <key>Label</key><string>io.codexly.web</string>
@@ -13,7 +13,7 @@ function Q(t,e,o){let r=o.XDG_CONFIG_HOME&&isAbsolute(o.XDG_CONFIG_HOME)?o.XDG_C
13
13
  <key>LimitLoadToSessionType</key><string>Aqua</string>
14
14
  <key>ProcessType</key><string>Background</string>
15
15
  </dict></plist>
16
- `}function Et(t){return `"${R(t).replace(/\\/gu,"\\\\").replace(/"/gu,'\\"').replace(/%/gu,"%%").replace(/\$/gu,()=>"$$")}"`}function Ct(t,e){let o=t.linuxTarget??"default.target";return `[Unit]
16
+ `}function Ct(t){return `"${R(t).replace(/\\/gu,"\\\\").replace(/"/gu,'\\"').replace(/%/gu,"%%").replace(/\$/gu,()=>"$$")}"`}function $t(t,e){let o=t.linuxTarget??"default.target";return `[Unit]
17
17
  Description=Codexly Web (user login)
18
18
  StartLimitIntervalSec=300
19
19
  StartLimitBurst=5
@@ -21,7 +21,7 @@ ${o==="graphical-session.target"?`PartOf=graphical-session.target
21
21
  `:""}
22
22
  [Service]
23
23
  Type=exec
24
- ExecStart=${O(t,e).map(r=>Et(r)).join(" ")}
24
+ ExecStart=${O(t,e).map(r=>Ct(r)).join(" ")}
25
25
  WorkingDirectory=${R(t.home).replace(/\\/gu,"\\\\").replace(/%/gu,"%%").replace(/ /gu,"\\x20")}
26
26
  Restart=on-failure
27
27
  RestartSec=30
@@ -31,21 +31,21 @@ UMask=0077
31
31
 
32
32
  [Install]
33
33
  WantedBy=${o}
34
- `}function $t(t){return `"${t.replace(/(\\*)"/gu,'$1$1\\"').replace(/(\\+)$/u,"$1$1")}"`}function Tt(t,e,o){let r=O(t,e);return `<?xml version="1.0" encoding="UTF-16"?>
34
+ `}function Tt(t){return `"${t.replace(/(\\*)"/gu,'$1$1\\"').replace(/(\\+)$/u,"$1$1")}"`}function kt(t,e,o){let r=O(t,e);return `<?xml version="1.0" encoding="UTF-16"?>
35
35
  <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
36
36
  <RegistrationInfo><Description>Codexly Web \u2014 current user login</Description></RegistrationInfo>
37
37
  <Triggers><LogonTrigger><Enabled>true</Enabled><UserId>${x(o)}</UserId></LogonTrigger></Triggers>
38
38
  <Principals><Principal id="CurrentUser"><UserId>${x(o)}</UserId><LogonType>InteractiveToken</LogonType><RunLevel>LeastPrivilege</RunLevel></Principal></Principals>
39
39
  <Settings><MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy><DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries><StopIfGoingOnBatteries>false</StopIfGoingOnBatteries><AllowHardTerminate>true</AllowHardTerminate><StartWhenAvailable>false</StartWhenAvailable><RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable><Enabled>true</Enabled><ExecutionTimeLimit>PT0S</ExecutionTimeLimit><Priority>7</Priority><RestartOnFailure><Interval>PT1M</Interval><Count>5</Count></RestartOnFailure></Settings>
40
- <Actions Context="CurrentUser"><Exec><Command>${x(t.node)}</Command><Arguments>${x(r.slice(1).map($t).join(" "))}</Arguments><WorkingDirectory>${x(t.home)}</WorkingDirectory></Exec></Actions>
40
+ <Actions Context="CurrentUser"><Exec><Command>${x(t.node)}</Command><Arguments>${x(r.slice(1).map(Tt).join(" "))}</Arguments><WorkingDirectory>${x(t.home)}</WorkingDirectory></Exec></Actions>
41
41
  </Task>
42
- `}function kt(t,e){if(!t)return "default.target";if(e)return "graphical-session.target";throw new Error("\u5F53\u524D\u7528\u6237\u5F00\u542F\u4E86 linger \u4E14\u6CA1\u6709\u6D3B\u52A8\u684C\u9762\u4F1A\u8BDD\uFF0C\u65E0\u6CD5\u4FDD\u8BC1\u4EC5\u767B\u5F55\u540E\u542F\u52A8\uFF1B\u8BF7\u5728\u684C\u9762\u767B\u5F55\u540E\u914D\u7F6E\uFF0C\u6216\u81EA\u884C\u8C03\u6574 linger \u8BBE\u7F6E\u3002")}function Z(t,e,o={}){let r=o.execute??k,n=o.uid??process.getuid?.(),c=`gui/${String(n)}`,d=`${c}/io.codexly.web`,i;async function a(u,s){let w=await r(u,s);if(w.code!==0)throw new Error(`\u7CFB\u7EDF\u670D\u52A1\u547D\u4EE4\u5931\u8D25 (${u}): ${w.stderr||w.stdout||String(w.code)}`);return w.stdout}async function g(){if(!i&&(i=(await a("powershell.exe",["-NoProfile","-NonInteractive","-EncodedCommand",Buffer.from("[System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value","utf16le").toString("base64")])).trim(),!/^S-1-[\d-]+$/u.test(i)))throw new Error("\u65E0\u6CD5\u786E\u5B9A\u5F53\u524D Windows \u7528\u6237 SID");return i}async function l(){return `Codexly Web ${await g()}`}async function m(){let u=`$ErrorActionPreference='Stop'; $s=New-Object -ComObject 'Schedule.Service'; $s.Connect(); try { $t=$s.GetFolder('\\').GetTask('${await l()}'); @{registered=$true;enabled=[bool]$t.Enabled;state=[int]$t.State;lastResult=[long]$t.LastTaskResult} | ConvertTo-Json -Compress } catch { $e=$_.Exception; while ($null -ne $e.InnerException) { $e=$e.InnerException }; if ($e.HResult -eq -2147024894 -or $e.HResult -eq -2147216625) { '{"registered":false,"enabled":false,"state":0,"lastResult":0}' } else { throw } }`,s=JSON.parse(await a("powershell.exe",["-NoProfile","-NonInteractive","-EncodedCommand",Buffer.from(u,"utf16le").toString("base64")]));if(!s||typeof s!="object"||!("registered"in s)||typeof s.registered!="boolean"||!("enabled"in s)||typeof s.enabled!="boolean"||!("state"in s)||typeof s.state!="number"||!("lastResult"in s)||typeof s.lastResult!="number")throw new Error("\u65E0\u6CD5\u8BFB\u53D6 Windows \u8BA1\u5212\u4EFB\u52A1\u72B6\u6001");return {registered:s.registered,enabled:s.enabled,state:s.state,lastResult:s.lastResult}}async function y(){try{return await access(e.registration),!0}catch{return false}}let f={async prepare(u){if(t==="linux"){await a("systemctl",["--user","show-environment"]);let s=(await a("loginctl",["show-user",String(n),"--property=Linger","--value"])).trim();if(s!=="yes"&&s!=="no")throw new Error("\u65E0\u6CD5\u786E\u5B9A\u7528\u6237 linger \u72B6\u6001");let w=await r("systemctl",["--user","is-active","graphical-session.target"]);return {...u,linuxTarget:kt(s==="yes",w.code===0)}}return t==="darwin"&&await a("launchctl",["print",c]),t==="win32"&&await a("icacls.exe",[e.root,"/inheritance:r","/grant:r",`*${await g()}:(OI)(CI)F`]),u},async install(u){t==="darwin"?(await P(e.registration,St(u,e.config)),await a("launchctl",["enable",d])):t==="linux"?(await y()&&await a("systemctl",["--user","disable","codexly-web.service"]),await P(e.registration,Ct(u,e.config)),await a("systemctl",["--user","daemon-reload"]),await a("systemctl",["--user","enable","codexly-web.service"])):(await P(e.registration,Buffer.from(`\uFEFF${Tt(u,e.config,await g())}`,"utf16le")),await a("schtasks.exe",["/Create","/TN",await l(),"/XML",e.registration,"/F"]));},async stop(){if(t==="darwin"){if((await r("launchctl",["print",d])).code===0){await a("launchctl",["bootout",d]);let u=Date.now()+25e3;for(;(await r("launchctl",["print",d])).code===0;){if(Date.now()>=u)throw new Error("launchd \u672A\u5728 25 \u79D2\u5185\u5B8C\u6210\u5378\u8F7D\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u81EA\u542F\u52A8\u547D\u4EE4");await setTimeout(100);}}}else if(t==="linux")await y()&&(await a("systemctl",["--user","show","codexly-web.service","--property=ActiveState","--value"])).trim()!=="inactive"&&await a("systemctl",["--user","stop","codexly-web.service"]);else {let u=await m();u.registered&&[2,4].includes(u.state)&&await a("schtasks.exe",["/End","/TN",await l()]);}},async restart(){t==="darwin"?(await f.stop(),await a("launchctl",["bootstrap",c,e.registration])):t==="linux"?(await a("systemctl",["--user","reset-failed","codexly-web.service"]),await a("systemctl",["--user","restart","codexly-web.service"])):(await f.stop(),await a("schtasks.exe",["/Run","/TN",await l()]));},async remove(){await f.stop(),t==="linux"&&await y()&&await a("systemctl",["--user","disable","codexly-web.service"]),t==="win32"&&(await m()).registered&&await a("schtasks.exe",["/Delete","/TN",await l(),"/F"]),await rm(e.registration,{force:true}),t==="linux"&&await a("systemctl",["--user","daemon-reload"]);},async status(){if(t==="darwin"){let w=await y(),T=await r("launchctl",["print-disabled",c]);if(T.code!==0)throw new Error(`\u65E0\u6CD5\u67E5\u8BE2 launchd: ${T.stderr}`);return {enabled:w&&!/"io\.codexly\.web"\s*=>\s*true/u.test(T.stdout),detail:e.registration}}if(t==="linux"){let w=await r("systemctl",["--user","is-enabled","codexly-web.service"]);if(w.stderr.includes("Failed to connect"))throw new Error(w.stderr);return {enabled:w.code===0&&w.stdout.trim()==="enabled",detail:w.stdout.trim()||w.stderr.trim()}}let u=await l(),s=await m();return {enabled:s.registered&&s.enabled,registered:s.registered,detail:s.registered?`${u} (state=${String(s.state)}, lastResult=${String(s.lastResult)})`:"\u672A\u6CE8\u518C"}}};return f}function L(t,e){return e?t.split(e).join("[REDACTED]"):t}async function et(t,e,o=1024*1024){await b(dirname(t)),await appendFile(t,"",{mode:384}),process.platform!=="win32"&&await chmod(t,384);let r=(await stat(t)).size,n=Promise.resolve(),c=0,d;return {write(i){let a=Buffer.from(`${new Date().toISOString()} ${L(i,e).trimEnd()}
43
- `),g=a.subarray(Math.max(0,a.length-Math.min(o,8192)));c+g.length>65536||(c+=g.length,n=n.then(async()=>{r+g.length>o&&(await rename(t,`${t}.1`),r=0),await appendFile(t,g,{mode:384}),r+=g.length;}).catch(l=>{d=l instanceof Error?l:new Error(String(l));}).finally(()=>{c-=g.length;}));},async flush(){if(await n,d)throw d}}}async function rt(t){let e;try{e=await open(t,"r");let o=(await e.stat()).size,r=Buffer.alloc(Math.min(o,65536));return await e.read(r,0,r.length,Math.max(0,o-r.length)),r.toString("utf8")}catch(o){if(v(o))return `\u6682\u65E0\u540E\u53F0\u65E5\u5FD7\u3002
44
- `;throw o}finally{await e?.close();}}function I(t){return createHash("sha256").update(JSON.stringify(t)).digest("hex")}async function S(t){try{let e=JSON.parse(await readFile(t.state,"utf8"));return !Number.isInteger(e.controlPort)||e.controlPort<1||e.controlPort>65535||!/^[a-f0-9]{64}$/u.test(e.token)?void 0:e}catch(e){if(v(e)||e instanceof SyntaxError)return;throw e}}async function nt(t,e,o){let r=await S(t);if(!(!r||!["starting","ready"].includes(r.phase)))return new Promise(n=>{let c=createConnection({host:"127.0.0.1",port:r.controlPort}),d="",i=a=>{c.destroy(),n(a);};c.setTimeout(1500,()=>{i();}),c.on("error",()=>{i();}),c.on("end",()=>{i();}),c.on("connect",()=>c.write(`${JSON.stringify({token:r.token,action:e})}
42
+ `}function Rt(t,e){if(!t)return "default.target";if(e)return "graphical-session.target";throw new Error("\u5F53\u524D\u7528\u6237\u5F00\u542F\u4E86 linger \u4E14\u6CA1\u6709\u6D3B\u52A8\u684C\u9762\u4F1A\u8BDD\uFF0C\u65E0\u6CD5\u4FDD\u8BC1\u4EC5\u767B\u5F55\u540E\u542F\u52A8\uFF1B\u8BF7\u5728\u684C\u9762\u767B\u5F55\u540E\u914D\u7F6E\uFF0C\u6216\u81EA\u884C\u8C03\u6574 linger \u8BBE\u7F6E\u3002")}function Z(t,e,o={}){let r=o.execute??k,n=o.uid??process.getuid?.(),c=`gui/${String(n)}`,d=`${c}/io.codexly.web`,i;async function a(u,s){let g=await r(u,s);if(g.code!==0)throw new Error(`\u7CFB\u7EDF\u670D\u52A1\u547D\u4EE4\u5931\u8D25 (${u}): ${g.stderr||g.stdout||String(g.code)}`);return g.stdout}async function w(){if(!i&&(i=(await a("powershell.exe",["-NoProfile","-NonInteractive","-EncodedCommand",Buffer.from("[System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value","utf16le").toString("base64")])).trim(),!/^S-1-[\d-]+$/u.test(i)))throw new Error("\u65E0\u6CD5\u786E\u5B9A\u5F53\u524D Windows \u7528\u6237 SID");return i}async function l(){return `Codexly Web ${await w()}`}async function m(){let u=`$ErrorActionPreference='Stop'; $s=New-Object -ComObject 'Schedule.Service'; $s.Connect(); try { $t=$s.GetFolder('\\').GetTask('${await l()}'); @{registered=$true;enabled=[bool]$t.Enabled;state=[int]$t.State;lastResult=[long]$t.LastTaskResult} | ConvertTo-Json -Compress } catch { $e=$_.Exception; while ($null -ne $e.InnerException) { $e=$e.InnerException }; if ($e.HResult -eq -2147024894 -or $e.HResult -eq -2147216625) { '{"registered":false,"enabled":false,"state":0,"lastResult":0}' } else { throw } }`,s=JSON.parse(await a("powershell.exe",["-NoProfile","-NonInteractive","-EncodedCommand",Buffer.from(u,"utf16le").toString("base64")]));if(!s||typeof s!="object"||!("registered"in s)||typeof s.registered!="boolean"||!("enabled"in s)||typeof s.enabled!="boolean"||!("state"in s)||typeof s.state!="number"||!("lastResult"in s)||typeof s.lastResult!="number")throw new Error("\u65E0\u6CD5\u8BFB\u53D6 Windows \u8BA1\u5212\u4EFB\u52A1\u72B6\u6001");return {registered:s.registered,enabled:s.enabled,state:s.state,lastResult:s.lastResult}}async function y(){try{return await access(e.registration),!0}catch{return false}}let f={async prepare(u){if(t==="linux"){await a("systemctl",["--user","show-environment"]);let s=(await a("loginctl",["show-user",String(n),"--property=Linger","--value"])).trim();if(s!=="yes"&&s!=="no")throw new Error("\u65E0\u6CD5\u786E\u5B9A\u7528\u6237 linger \u72B6\u6001");let g=await r("systemctl",["--user","is-active","graphical-session.target"]);return {...u,linuxTarget:Rt(s==="yes",g.code===0)}}return t==="darwin"&&await a("launchctl",["print",c]),t==="win32"&&await a("icacls.exe",[e.root,"/inheritance:r","/grant:r",`*${await w()}:(OI)(CI)F`]),u},async install(u){t==="darwin"?(await P(e.registration,St(u,e.config)),await a("launchctl",["enable",d])):t==="linux"?(await y()&&await a("systemctl",["--user","disable","codexly-web.service"]),await P(e.registration,$t(u,e.config)),await a("systemctl",["--user","daemon-reload"]),await a("systemctl",["--user","enable","codexly-web.service"])):(await P(e.registration,Buffer.from(`\uFEFF${kt(u,e.config,await w())}`,"utf16le")),await a("schtasks.exe",["/Create","/TN",await l(),"/XML",e.registration,"/F"]));},async stop(){if(t==="darwin"){if((await r("launchctl",["print",d])).code===0){await a("launchctl",["bootout",d]);let u=Date.now()+25e3;for(;(await r("launchctl",["print",d])).code===0;){if(Date.now()>=u)throw new Error("launchd \u672A\u5728 25 \u79D2\u5185\u5B8C\u6210\u5378\u8F7D\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u81EA\u542F\u52A8\u547D\u4EE4");await setTimeout(100);}}}else if(t==="linux")await y()&&(await a("systemctl",["--user","show","codexly-web.service","--property=ActiveState","--value"])).trim()!=="inactive"&&await a("systemctl",["--user","stop","codexly-web.service"]);else {let u=await m();u.registered&&[2,4].includes(u.state)&&await a("schtasks.exe",["/End","/TN",await l()]);}},async restart(){t==="darwin"?(await f.stop(),await a("launchctl",["bootstrap",c,e.registration])):t==="linux"?(await a("systemctl",["--user","reset-failed","codexly-web.service"]),await a("systemctl",["--user","restart","codexly-web.service"])):(await f.stop(),await a("schtasks.exe",["/Run","/TN",await l()]));},async remove(){await f.stop(),t==="linux"&&await y()&&await a("systemctl",["--user","disable","codexly-web.service"]),t==="win32"&&(await m()).registered&&await a("schtasks.exe",["/Delete","/TN",await l(),"/F"]),await rm(e.registration,{force:true}),t==="linux"&&await a("systemctl",["--user","daemon-reload"]);},async status(){if(t==="darwin"){let g=await y(),T=await r("launchctl",["print-disabled",c]);if(T.code!==0)throw new Error(`\u65E0\u6CD5\u67E5\u8BE2 launchd: ${T.stderr}`);return {enabled:g&&!/"io\.codexly\.web"\s*=>\s*true/u.test(T.stdout),detail:e.registration}}if(t==="linux"){let g=await r("systemctl",["--user","is-enabled","codexly-web.service"]);if(g.stderr.includes("Failed to connect"))throw new Error(g.stderr);return {enabled:g.code===0&&g.stdout.trim()==="enabled",detail:g.stdout.trim()||g.stderr.trim()}}let u=await l(),s=await m();return {enabled:s.registered&&s.enabled,registered:s.registered,detail:s.registered?`${u} (state=${String(s.state)}, lastResult=${String(s.lastResult)})`:"\u672A\u6CE8\u518C"}}};return f}function L(t,e){return e?t.split(e).join("[REDACTED]"):t}async function et(t,e,o=1024*1024){await b(dirname(t)),await appendFile(t,"",{mode:384}),process.platform!=="win32"&&await chmod(t,384);let r=(await stat(t)).size,n=Promise.resolve(),c=0,d;return {write(i){let a=Buffer.from(`${new Date().toISOString()} ${L(i,e).trimEnd()}
43
+ `),w=a.subarray(Math.max(0,a.length-Math.min(o,8192)));c+w.length>65536||(c+=w.length,n=n.then(async()=>{r+w.length>o&&(await rename(t,`${t}.1`),r=0),await appendFile(t,w,{mode:384}),r+=w.length;}).catch(l=>{d=l instanceof Error?l:new Error(String(l));}).finally(()=>{c-=w.length;}));},async flush(){if(await n,d)throw d}}}async function rt(t){let e;try{e=await open(t,"r");let o=(await e.stat()).size,r=Buffer.alloc(Math.min(o,65536));return await e.read(r,0,r.length,Math.max(0,o-r.length)),r.toString("utf8")}catch(o){if(v(o))return `\u6682\u65E0\u540E\u53F0\u65E5\u5FD7\u3002
44
+ `;throw o}finally{await e?.close();}}function I(t){return createHash("sha256").update(JSON.stringify(t)).digest("hex")}async function E(t){try{let e=JSON.parse(await readFile(t.state,"utf8"));return !Number.isInteger(e.controlPort)||e.controlPort<1||e.controlPort>65535||!/^[a-f0-9]{64}$/u.test(e.token)?void 0:e}catch(e){if(v(e)||e instanceof SyntaxError)return;throw e}}async function nt(t,e,o){let r=await E(t);if(!(!r||!["starting","ready"].includes(r.phase)))return new Promise(n=>{let c=createConnection({host:"127.0.0.1",port:r.controlPort}),d="",i=a=>{c.destroy(),n(a);};c.setTimeout(1500,()=>{i();}),c.on("error",()=>{i();}),c.on("end",()=>{i();}),c.on("connect",()=>c.write(`${JSON.stringify({token:r.token,action:e})}
45
45
  `)),c.on("data",a=>{if(d+=a.toString("utf8"),d.length>8192){i();return}if(d.includes(`
46
- `))try{let g=JSON.parse(d.trim());if(g.pid!==r.pid||g.startedAt!==r.startedAt){i();return}i(g);}catch{i();}});})}function E(t,e){return nt(t,"status")}async function D(t){if(!await nt(t,"stop"))return;let o=Date.now()+2e4;for(;Date.now()<o;){if(!await E(t))return;await setTimeout(100);}throw new Error("\u540E\u53F0\u5B9E\u4F8B\u672A\u5728 20 \u79D2\u5185\u5B8C\u6210\u9000\u51FA\uFF0C\u8BF7\u67E5\u770B autostart logs \u540E\u91CD\u8BD5")}async function ot(t,e,o){if(await b(e.root),await E(e))throw new Error("\u81EA\u542F\u52A8\u5B9E\u4F8B\u5DF2\u5728\u8FD0\u884C\uFF0C\u8BF7\u4F7F\u7528 autostart restart");let r=await et(e.log,t.start.lanPassword),n=g(),c=new AbortController,d=()=>{c.abort();};n.signal.addEventListener("abort",d,{once:true});let i$1={pid:process.pid,controlPort:0,token:randomBytes(32).toString("hex"),startedAt:new Date().toISOString(),phase:"starting",lan:t.start.lan===true,configHash:I(t)},a=new Set,g$1=createServer(l=>{a.add(l),l.on("close",()=>a.delete(l)),l.on("error",()=>l.destroy()),l.setTimeout(1500,()=>l.destroy());let m="";l.on("data",y=>{if(m+=y.toString("utf8"),m.length>1024)return l.destroy();if(m.includes(`
47
- `))try{let f=JSON.parse(m.trim()),u=Buffer.from(typeof f.token=="string"?f.token:""),s=Buffer.from(i$1.token);if(u.length!==s.length||!timingSafeEqual(u,s)||!["status","stop"].includes(f.action??""))return l.destroy();let{token:w,controlPort:T,...ut}=i$1;l.end(`${JSON.stringify(ut)}
48
- `,()=>{f.action==="stop"&&c.abort();});}catch{l.destroy();}});});g$1.maxConnections=16;try{await new Promise((m,y)=>{g$1.once("error",y),g$1.listen(0,"127.0.0.1",()=>{m();});}),i$1.controlPort=g$1.address().port,await h(e.state,i$1);let l=await o({options:{...t.start,noOpen:!0},environment:{...process.env,...t.environment},background:!0,signal:c.signal,output:i(r.write,r.write,!1),onReady:async({port:m})=>{i$1.phase="ready",i$1.port=m,await h(e.state,i$1);}});return i$1.phase=l===0?"stopped":"failed",l}catch(l){return i$1.phase="failed",i$1.error=L(l instanceof Error?l.message:String(l),t.start.lanPassword),r.write(`[\u9519\u8BEF] ${i$1.error}`),1}finally{for(let l of a)l.destroy();g$1.listening&&await new Promise(l=>g$1.close(()=>{l();})),n.signal.removeEventListener("abort",d),n.cleanup(),await h(e.state,i$1),await r.flush();}}var qt=`Usage: codexly autostart <command> [options]
46
+ `))try{let w=JSON.parse(d.trim());if(w.pid!==r.pid||w.startedAt!==r.startedAt){i();return}i(w);}catch{i();}});})}function S(t,e){return nt(t,"status")}async function D(t){if(!await nt(t,"stop"))return;let o=Date.now()+2e4;for(;Date.now()<o;){if(!await S(t))return;await setTimeout(100);}throw new Error("\u540E\u53F0\u5B9E\u4F8B\u672A\u5728 20 \u79D2\u5185\u5B8C\u6210\u9000\u51FA\uFF0C\u8BF7\u67E5\u770B autostart logs \u540E\u91CD\u8BD5")}async function ot(t,e,o){if(await b(e.root),await S(e))throw new Error("\u81EA\u542F\u52A8\u5B9E\u4F8B\u5DF2\u5728\u8FD0\u884C\uFF0C\u8BF7\u4F7F\u7528 autostart restart");let r=await et(e.log,t.start.lanPassword),n=g(),c=new AbortController,d=()=>{c.abort();};n.signal.addEventListener("abort",d,{once:true});let i$1={pid:process.pid,controlPort:0,token:randomBytes(32).toString("hex"),startedAt:new Date().toISOString(),phase:"starting",lan:t.start.lan===true,configHash:I(t)},a=new Set,w=createServer(l=>{a.add(l),l.on("close",()=>a.delete(l)),l.on("error",()=>l.destroy()),l.setTimeout(1500,()=>l.destroy());let m="";l.on("data",y=>{if(m+=y.toString("utf8"),m.length>1024)return l.destroy();if(m.includes(`
47
+ `))try{let f=JSON.parse(m.trim()),u=Buffer.from(typeof f.token=="string"?f.token:""),s=Buffer.from(i$1.token);if(u.length!==s.length||!timingSafeEqual(u,s)||!["status","stop"].includes(f.action??""))return l.destroy();let{token:g,controlPort:T,...ut}=i$1;l.end(`${JSON.stringify(ut)}
48
+ `,()=>{f.action==="stop"&&c.abort();});}catch{l.destroy();}});});w.maxConnections=16;try{await new Promise((m,y)=>{w.once("error",y),w.listen(0,"127.0.0.1",()=>{m();});}),i$1.controlPort=w.address().port,await h(e.state,i$1);let l=await o({options:{...t.start,noOpen:!0},environment:{...process.env,...t.environment},background:!0,signal:c.signal,output:i(r.write,r.write,!1),onReady:async({port:m})=>{i$1.phase="ready",i$1.port=m,await h(e.state,i$1);}});return i$1.phase=l===0?"stopped":"failed",l}catch(l){return i$1.phase="failed",i$1.error=L(l instanceof Error?l.message:String(l),t.start.lanPassword),r.write(`[\u9519\u8BEF] ${i$1.error}`),1}finally{for(let l of a)l.destroy();w.listening&&await new Promise(l=>w.close(()=>{l();})),n.signal.removeEventListener("abort",d),n.cleanup(),await h(e.state,i$1),await r.flush();}}var Gt=`Usage: codexly autostart <command> [options]
49
49
 
50
50
  Manage Web startup after the current user logs in. Never opens a browser.
51
51
  Requires a stable global npm installation and Node.js 24+.
@@ -77,8 +77,8 @@ Repair options:
77
77
  Configuration changes apply on restart or next login. LAN sessions end on restart.
78
78
  Disable before uninstalling the npm package. No administrator privileges required
79
79
  under normal per-user system policies. Linux linger requires a graphical session.
80
- `;async function Gt(t){let e="\u8BF7\u5148\u6267\u884C npm install --global @bryanhu/codexly@latest\uFF0C\u518D\u4F7F\u7528\u5168\u5C40 codexly \u914D\u7F6E\u81EA\u542F\u52A8";if(Number(process.versions.node.split(".")[0])<24)throw new Error("\u81EA\u542F\u52A8\u9700\u8981 Node.js 24 \u6216\u66F4\u9AD8\u7248\u672C");if(/(?:^|[/\\])(?:_npx|_pnpx|dlx)(?:[/\\]|$)/u.test(t.cli))throw new Error(e);let o=process.platform==="win32"?await k("powershell.exe",["-NoProfile","-NonInteractive","-Command","& npm.cmd root --global; exit $LASTEXITCODE"]):await k("npm",["root","--global"]);if(o.code!==0)throw new Error(`${e}\uFF08\u65E0\u6CD5\u8BFB\u53D6 npm \u5168\u5C40\u76EE\u5F55\uFF09`);let r=o.stdout.trim();try{let n=await realpath(join(r,"@bryanhu","codexly","dist","cli.js"));if(await realpath(t.cli)!==n)throw new Error(e);if(await access(t.node),JSON.parse(await readFile(join(dirname(dirname(n)),"package.json"),"utf8")).name!=="@bryanhu/codexly")throw new Error(e);t.cli=n;}catch{throw new Error(e)}}function Xt(){let t=homedir(),e=Q(process.platform,t,process.env),o=process.platform,r={node:process.execPath,cli:resolve(process.argv[1]??""),home:t,cwd:process.cwd(),environment:process.env};return {paths:e,platform:o,runtime:r,adapter:Z(o,e),validateInstallation:()=>Gt(r)}}async function zt(t,e){await b(t.root);let o=join(t.root,"operation.lock"),r;try{r=await open(o,"wx",384);}catch(n){if(n.code!=="EEXIST")throw n;let c=Number(await readFile(o,"utf8"));if(!Number.isInteger(c)||c<1)throw new Error(`\u81EA\u542F\u52A8\u64CD\u4F5C\u9501\u65E0\u6548\uFF0C\u8BF7\u68C0\u67E5 ${o}`,{cause:n});let d=true;try{process.kill(c,0);}catch(i){d=i.code!=="ESRCH";}if(d)throw new Error("\u53E6\u4E00\u4E2A\u81EA\u542F\u52A8\u914D\u7F6E\u64CD\u4F5C\u6B63\u5728\u8FD0\u884C\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",{cause:n});await rm(o,{force:true}),r=await open(o,"wx",384);}try{return await r.writeFile(String(process.pid)),await e()}finally{await r.close(),await rm(o,{force:true});}}async function Kt(t,e,o){let{adapter:r,paths:n}=o,c=e?(await r.status()).enabled:false,d=await r.prepare(t);try{await h(n.config,d),await r.install(d);}catch(i){try{e?(await h(n.config,e),c?await r.install(e):await r.remove()):(await r.remove(),await rm(n.config,{force:!0}));}catch(a){throw new AggregateError([i,a],`\u6CE8\u518C\u5931\u8D25\u4E14\u56DE\u6EDA\u672A\u5B8C\u6210\uFF0C\u8BF7\u8FD0\u884C autostart status \u68C0\u67E5\u3002${String(i)}\uFF1B${String(a)}`,{cause:a})}throw i}}async function st(t,e){if(!(await t.adapter.status()).enabled)throw new Error("\u81EA\u542F\u52A8\u672A\u542F\u7528\uFF0C\u8BF7\u5148\u8FD0\u884C autostart enable");await D(t.paths);let o=Date.now();await t.adapter.restart(),e.info("\u6B63\u5728\u7B49\u5F85\u540E\u53F0\u670D\u52A1\u5C31\u7EEA\uFF0C\u9996\u6B21\u542F\u52A8\u53EF\u80FD\u8F83\u6162\uFF08\u6700\u591A\u7B49\u5F85 120 \u79D2\uFF09\u3002");let r=Date.now()+12e4;for(;Date.now()<r;){let c=await E(t.paths);if(c?.phase==="ready"){e.success(`\u540E\u53F0\u670D\u52A1\u5DF2\u5C31\u7EEA\uFF1Ahttp://127.0.0.1:${String(c.port)}`);return}if(!c){let d=await S(t.paths);if(d?.phase==="failed"&&Date.parse(d.startedAt)>=o)throw new Error(`\u540E\u53F0\u670D\u52A1\u542F\u52A8\u5931\u8D25\uFF1A${d.error??"\u8BF7\u8FD0\u884C autostart logs"}`)}await setTimeout(250);}let n=await S(t.paths);throw new Error(`\u670D\u52A1\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u8FD0\u884C autostart status \u6216 autostart logs\u3002${n?.error??"\u542F\u52A8\u7B49\u5F85\u8D85\u8FC7 120 \u79D2"}`)}async function Oe(t,e$1,o,r){let n=t[0]??"",c$1=["enable","status","logs","credentials","restart","disable","repair","run"];if(t.length===0||t.length===1&&["--help","-h"].includes(n)||t.length===2&&c$1.includes(n)&&["--help","-h"].includes(t[1]??""))return e$1.plain(qt),0;if(!n||!c$1.includes(n))throw new Error(`\u672A\u77E5\u81EA\u542F\u52A8\u547D\u4EE4: ${n}`);let d=r??Xt(),{paths:i,runtime:a,adapter:g}=d;if(n==="run"){if(t.length!==3||t[1]!=="--config"||!t[2]||!isAbsolute(t[2]))throw new Error("\u5185\u90E8\u542F\u52A8\u5165\u53E3\u9700\u8981 --config <\u7EDD\u5BF9\u8DEF\u5F84>");let f=resolve(t[2]),u={...i,root:dirname(f),config:f,state:join(dirname(f),"runtime.json"),log:join(dirname(f),"service.log")},s=await A(f);if(!s)throw new Error("\u81EA\u542F\u52A8\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u8BF7\u8FD0\u884C autostart repair");return ot(s,u,o)}let l=t.slice(1);if(!["enable","repair"].includes(n)&&l.length>0)throw new Error(`\u672A\u77E5\u9009\u9879: ${String(l[0])}`);if(n==="logs")return e$1.plain(await rt(i.log)),0;if(n==="credentials"){let f=await A(i.config);if(!f?.start.lanPassword)throw new Error("\u5C1A\u672A\u914D\u7F6E LAN \u81EA\u542F\u52A8\u5BC6\u7801");return e$1.plain(`${f.start.lanPassword}
81
- `),0}if(n==="status"){let f=await A(i.config),u=await g.status(),s=await E(i);if(e$1.info(`\u767B\u5F55\u81EA\u542F\u52A8: ${u.enabled?"\u5DF2\u542F\u7528":"\u672A\u542F\u7528"}`),e$1.info(`\u8FD0\u884C\u72B6\u6001: ${s?.phase==="ready"?"\u5DF2\u5C31\u7EEA":s?"\u542F\u52A8\u4E2D":"\u672A\u8FD0\u884C"}`),e$1.info(`\u914D\u7F6E: ${i.config}
80
+ `;async function Xt(t){let e="\u8BF7\u5148\u6267\u884C npm install --global @bryanhu/codexly@latest\uFF0C\u518D\u4F7F\u7528\u5168\u5C40 codexly \u914D\u7F6E\u81EA\u542F\u52A8";if(Number(process.versions.node.split(".")[0])<24)throw new Error("\u81EA\u542F\u52A8\u9700\u8981 Node.js 24 \u6216\u66F4\u9AD8\u7248\u672C");if(/(?:^|[/\\])(?:_npx|_pnpx|dlx)(?:[/\\]|$)/u.test(t.cli))throw new Error(e);let o=process.platform==="win32"?await k("powershell.exe",["-NoProfile","-NonInteractive","-Command","& npm.cmd root --global; exit $LASTEXITCODE"]):await k("npm",["root","--global"]);if(o.code!==0)throw new Error(`${e}\uFF08\u65E0\u6CD5\u8BFB\u53D6 npm \u5168\u5C40\u76EE\u5F55\uFF09`);let r=o.stdout.trim();try{let n=await realpath(join(r,"@bryanhu","codexly","dist","cli.js"));if(await realpath(t.cli)!==n)throw new Error(e);if(await access(t.node),JSON.parse(await readFile(join(dirname(dirname(n)),"package.json"),"utf8")).name!=="@bryanhu/codexly")throw new Error(e);t.cli=n;}catch{throw new Error(e)}}function zt(){let t=homedir(),e=Q(process.platform,t,process.env),o=process.platform,r={node:process.execPath,cli:resolve(process.argv[1]??""),home:t,cwd:process.cwd(),environment:process.env};return {paths:e,platform:o,runtime:r,adapter:Z(o,e),validateInstallation:()=>Xt(r)}}async function Kt(t,e){await b(t.root);let o=join(t.root,"operation.lock"),r;try{r=await open(o,"wx",384);}catch(n){if(n.code!=="EEXIST")throw n;let c=Number(await readFile(o,"utf8"));if(!Number.isInteger(c)||c<1)throw new Error(`\u81EA\u542F\u52A8\u64CD\u4F5C\u9501\u65E0\u6548\uFF0C\u8BF7\u68C0\u67E5 ${o}`,{cause:n});let d=true;try{process.kill(c,0);}catch(i){d=i.code!=="ESRCH";}if(d)throw new Error("\u53E6\u4E00\u4E2A\u81EA\u542F\u52A8\u914D\u7F6E\u64CD\u4F5C\u6B63\u5728\u8FD0\u884C\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",{cause:n});await rm(o,{force:true}),r=await open(o,"wx",384);}try{return await r.writeFile(String(process.pid)),await e()}finally{await r.close(),await rm(o,{force:true});}}async function Qt(t,e,o){let{adapter:r,paths:n}=o,c=e?(await r.status()).enabled:false,d=await r.prepare(t);try{await h(n.config,d),await r.install(d);}catch(i){try{e?(await h(n.config,e),c?await r.install(e):await r.remove()):(await r.remove(),await rm(n.config,{force:!0}));}catch(a){throw new AggregateError([i,a],`\u6CE8\u518C\u5931\u8D25\u4E14\u56DE\u6EDA\u672A\u5B8C\u6210\uFF0C\u8BF7\u8FD0\u884C autostart status \u68C0\u67E5\u3002${String(i)}\uFF1B${String(a)}`,{cause:a})}throw i}}async function st(t,e){if(!(await t.adapter.status()).enabled)throw new Error("\u81EA\u542F\u52A8\u672A\u542F\u7528\uFF0C\u8BF7\u5148\u8FD0\u884C autostart enable");await D(t.paths);let o=Date.now();await t.adapter.restart(),e.info("\u6B63\u5728\u7B49\u5F85\u540E\u53F0\u670D\u52A1\u5C31\u7EEA\uFF0C\u9996\u6B21\u542F\u52A8\u53EF\u80FD\u8F83\u6162\uFF08\u6700\u591A\u7B49\u5F85 120 \u79D2\uFF09\u3002");let r=Date.now()+12e4;for(;Date.now()<r;){let c=await S(t.paths);if(c?.phase==="ready"){e.success(`\u540E\u53F0\u670D\u52A1\u5DF2\u5C31\u7EEA\uFF1Ahttp://127.0.0.1:${String(c.port)}`);return}if(!c){let d=await E(t.paths);if(d?.phase==="failed"&&Date.parse(d.startedAt)>=o)throw new Error(`\u540E\u53F0\u670D\u52A1\u542F\u52A8\u5931\u8D25\uFF1A${d.error??"\u8BF7\u8FD0\u884C autostart logs"}`)}await setTimeout(250);}let n=await E(t.paths);throw new Error(`\u670D\u52A1\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u8FD0\u884C autostart status \u6216 autostart logs\u3002${n?.error??"\u542F\u52A8\u7B49\u5F85\u8D85\u8FC7 120 \u79D2"}`)}async function Ie(t,e$1,o,r){let n=t[0]??"",c$1=["enable","status","logs","credentials","restart","disable","repair","run"];if(t.length===0||t.length===1&&["--help","-h"].includes(n)||t.length===2&&c$1.includes(n)&&["--help","-h"].includes(t[1]??""))return e$1.plain(Gt),0;if(!n||!c$1.includes(n))throw new Error(`\u672A\u77E5\u81EA\u542F\u52A8\u547D\u4EE4: ${n}`);let d=r??zt(),{paths:i,runtime:a,adapter:w}=d;if(n==="run"){if(t.length!==3||t[1]!=="--config"||!t[2]||!isAbsolute(t[2]))throw new Error("\u5185\u90E8\u542F\u52A8\u5165\u53E3\u9700\u8981 --config <\u7EDD\u5BF9\u8DEF\u5F84>");let f=resolve(t[2]),u={...i,root:dirname(f),config:f,state:join(dirname(f),"runtime.json"),log:join(dirname(f),"service.log")},s=await A(f);if(!s)throw new Error("\u81EA\u542F\u52A8\u914D\u7F6E\u4E0D\u5B58\u5728\uFF0C\u8BF7\u8FD0\u884C autostart repair");return ot(s,u,o)}let l=t.slice(1);if(!["enable","repair"].includes(n)&&l.length>0)throw new Error(`\u672A\u77E5\u9009\u9879: ${String(l[0])}`);if(n==="logs")return e$1.plain(await rt(i.log)),0;if(n==="credentials"){let f=await A(i.config);if(!f?.start.lanPassword)throw new Error("\u5C1A\u672A\u914D\u7F6E LAN \u81EA\u542F\u52A8\u5BC6\u7801");return e$1.plain(`${f.start.lanPassword}
81
+ `),0}if(n==="status"){let f=await A(i.config),u=await w.status(),s=await S(i);if(e$1.info(`\u767B\u5F55\u81EA\u542F\u52A8: ${u.enabled?"\u5DF2\u542F\u7528":"\u672A\u542F\u7528"}`),e$1.info(`\u8FD0\u884C\u72B6\u6001: ${s?.phase==="ready"?"\u5DF2\u5C31\u7EEA":s?"\u542F\u52A8\u4E2D":"\u672A\u8FD0\u884C"}`),e$1.info(`\u914D\u7F6E: ${i.config}
82
82
  \u65E5\u5FD7: ${i.log}
83
- \u7CFB\u7EDF\u670D\u52A1: ${u.detail}`),f){e$1.info(`\u4E0B\u6B21\u542F\u52A8\u6A21\u5F0F: ${f.start.lan?"LAN":"\u672C\u673A"}\uFF1B\u8D77\u59CB\u7AEF\u53E3: ${String(f.start.port)}\uFF1B\u81EA\u52A8\u6253\u5F00\u6D4F\u89C8\u5668: \u5426`);for(let w of [f.node,f.cli,...f.start.codexBin?[f.start.codexBin]:[]])try{await access(w);}catch{e$1.warning(`\u542F\u52A8\u6587\u4EF6\u4E0D\u5B58\u5728: ${w}\uFF1B\u8BF7\u8FD0\u884C autostart repair \u6216\u91CD\u65B0 enable`);}s&&s.configHash!==I(f)&&e$1.warning("\u4FDD\u5B58\u7684\u914D\u7F6E\u5C1A\u672A\u5E94\u7528\u5230\u8FD0\u884C\u5B9E\u4F8B\uFF0C\u8BF7\u8FD0\u884C autostart restart\u3002");}if(s)e$1.info(`PID: ${String(s.pid)}\uFF1B\u542F\u52A8\u65F6\u95F4: ${s.startedAt}\uFF1B\u8FD0\u884C\u6A21\u5F0F: ${s.lan?"LAN":"\u672C\u673A"}`),s.port&&e$1.info([`http://127.0.0.1:${String(s.port)}`,...s.lan?m(s.port):[]].join(`
84
- `));else {let w=await S(i);w?.error?e$1.warning(`\u6700\u8FD1\u9519\u8BEF: ${w.error}`):w&&["ready","starting"].includes(w.phase)&&e$1.warning("\u4E0A\u6B21\u8FDB\u7A0B\u5DF2\u9000\u51FA\u6216\u63A7\u5236\u901A\u9053\u4E0D\u53EF\u7528\uFF0C\u8BF7\u67E5\u770B\u65E5\u5FD7\u548C\u7CFB\u7EDF\u670D\u52A1\u72B6\u6001\u3002");}return 0}let{now:m$1,...y}=c(l,n==="enable"?e:new Set,n==="enable"?new Set(["--lan","--now"]):new Set(["--now"]));return zt(i,async()=>{if(n==="disable")return await D(i),await g.remove(),e$1.success("\u5DF2\u505C\u6B62\u6258\u7BA1\u5B9E\u4F8B\u5E76\u53D6\u6D88\u767B\u5F55\u81EA\u542F\u52A8\uFF1B\u914D\u7F6E\u548C\u51ED\u636E\u4FDD\u7559\u3002"),0;if(n==="restart")return await st(d,e$1),0;await d.validateInstallation();let f=await A(i.config);if(n==="repair"&&!f)throw new Error("\u6CA1\u6709\u53EF\u4FEE\u590D\u7684\u81EA\u542F\u52A8\u914D\u7F6E\uFF0C\u8BF7\u5148\u8FD0\u884C autostart enable");let u=n==="repair"&&f?{...f,node:a.node,cli:a.cli,environment:a.environment.PATH?{PATH:a.environment.PATH}:{}}:Y(y,a,f);return u.start.allowedHosts&&(u.start.allowedHosts=u.start.allowedHosts.map(h$1)),u.start.codexBin&&await access(u.start.codexBin),await Kt(u,f,d),e$1.success(n==="repair"?"\u5DF2\u4FEE\u590D\u81EA\u542F\u52A8\u8DEF\u5F84\u3002":"\u5DF2\u914D\u7F6E\u7528\u6237\u767B\u5F55\u81EA\u542F\u52A8\uFF0C\u9ED8\u8BA4\u4E0D\u6253\u5F00\u6D4F\u89C8\u5668\u3002"),u.start.lan&&e$1.info("LAN \u5BC6\u7801\u5DF2\u4FDD\u5B58\u5728\u7528\u6237\u79C1\u6709\u914D\u7F6E\u4E2D\uFF1B\u4F7F\u7528 autostart credentials \u67E5\u770B\u3002"),m$1?await st(d,e$1):e$1.info("\u914D\u7F6E\u5C06\u5728\u4E0B\u6B21\u767B\u5F55\u6216 autostart restart \u540E\u751F\u6548\u3002"),0})}export{qt as AUTOSTART_HELP,Oe as runAutostartCommand,Gt as validateGlobalInstallation};
83
+ \u7CFB\u7EDF\u670D\u52A1: ${u.detail}`),f){e$1.info(`\u4E0B\u6B21\u542F\u52A8\u6A21\u5F0F: ${f.start.lan?"LAN":"\u672C\u673A"}\uFF1B\u8D77\u59CB\u7AEF\u53E3: ${String(f.start.port)}\uFF1B\u81EA\u52A8\u6253\u5F00\u6D4F\u89C8\u5668: \u5426`);for(let g of [f.node,f.cli,...f.start.codexBin?[f.start.codexBin]:[]])try{await access(g);}catch{e$1.warning(`\u542F\u52A8\u6587\u4EF6\u4E0D\u5B58\u5728: ${g}\uFF1B\u8BF7\u8FD0\u884C autostart repair \u6216\u91CD\u65B0 enable`);}s&&s.configHash!==I(f)&&e$1.warning("\u4FDD\u5B58\u7684\u914D\u7F6E\u5C1A\u672A\u5E94\u7528\u5230\u8FD0\u884C\u5B9E\u4F8B\uFF0C\u8BF7\u8FD0\u884C autostart restart\u3002");}if(s)e$1.info(`PID: ${String(s.pid)}\uFF1B\u542F\u52A8\u65F6\u95F4: ${s.startedAt}\uFF1B\u8FD0\u884C\u6A21\u5F0F: ${s.lan?"LAN":"\u672C\u673A"}`),s.port&&e$1.info([`http://127.0.0.1:${String(s.port)}`,...s.lan?m(s.port):[]].join(`
84
+ `));else {let g=await E(i);g?.error?e$1.warning(`\u6700\u8FD1\u9519\u8BEF: ${g.error}`):g&&["ready","starting"].includes(g.phase)&&e$1.warning("\u4E0A\u6B21\u8FDB\u7A0B\u5DF2\u9000\u51FA\u6216\u63A7\u5236\u901A\u9053\u4E0D\u53EF\u7528\uFF0C\u8BF7\u67E5\u770B\u65E5\u5FD7\u548C\u7CFB\u7EDF\u670D\u52A1\u72B6\u6001\u3002");}return 0}let{now:m$1,...y}=c(l,n==="enable"?e:new Set,n==="enable"?new Set(["--lan","--now"]):new Set(["--now"]));return Kt(i,async()=>{if(n==="disable")return await D(i),await w.remove(),e$1.success("\u5DF2\u505C\u6B62\u6258\u7BA1\u5B9E\u4F8B\u5E76\u53D6\u6D88\u767B\u5F55\u81EA\u542F\u52A8\uFF1B\u914D\u7F6E\u548C\u51ED\u636E\u4FDD\u7559\u3002"),0;if(n==="restart")return await st(d,e$1),0;await d.validateInstallation();let f=await A(i.config);if(n==="repair"&&!f)throw new Error("\u6CA1\u6709\u53EF\u4FEE\u590D\u7684\u81EA\u542F\u52A8\u914D\u7F6E\uFF0C\u8BF7\u5148\u8FD0\u884C autostart enable");let u=n==="repair"&&f?{...f,node:a.node,cli:a.cli,environment:a.environment.PATH?{PATH:a.environment.PATH}:{}}:Y(y,a,f);return u.start.allowedHosts&&(u.start.allowedHosts=u.start.allowedHosts.map(h$1)),u.start.codexBin&&await access(u.start.codexBin),await Qt(u,f,d),e$1.success(n==="repair"?"\u5DF2\u4FEE\u590D\u81EA\u542F\u52A8\u8DEF\u5F84\u3002":"\u5DF2\u914D\u7F6E\u7528\u6237\u767B\u5F55\u81EA\u542F\u52A8\uFF0C\u9ED8\u8BA4\u4E0D\u6253\u5F00\u6D4F\u89C8\u5668\u3002"),u.start.lan&&e$1.info("LAN \u5BC6\u7801\u5DF2\u4FDD\u5B58\u5728\u7528\u6237\u79C1\u6709\u914D\u7F6E\u4E2D\uFF1B\u4F7F\u7528 autostart credentials \u67E5\u770B\u3002"),m$1?await st(d,e$1):e$1.info("\u914D\u7F6E\u5C06\u5728\u4E0B\u6B21\u767B\u5F55\u6216 autostart restart \u540E\u751F\u6548\u3002"),0})}export{Gt as AUTOSTART_HELP,Ie as runAutostartCommand,Xt as validateGlobalInstallation};
@@ -1 +1 @@
1
- import {createRequire}from'node:module';export{Mb as AGENT_FILE_ACCEPT,Lb as AGENT_IMAGE_ACCEPT,Xd as AccessModeSchema,Yd as AccessStatusResponseSchema,Kf as AddAgentQueuedSubmissionRequestSchema,Lf as AddAgentQueuedSubmissionResponseSchema,Ca as AddProjectRequestSchema,Da as AddProjectResponseSchema,Vc as AgentActivityItemSchema,Xc as AgentApprovalReviewActionSchema,Yc as AgentApprovalReviewItemSchema,Wc as AgentApprovalReviewStatusSchema,wd as AgentApprovalsReviewerSchema,Pb as AgentAttachmentKindSchema,Ob as AgentAttachmentMediaTypeSchema,bd as AgentAttachmentSchema,cd as AgentAttachmentUploadResponseSchema,$b as AgentBackgroundTerminalPageSchema,_b as AgentBackgroundTerminalSchema,He as AgentCapabilitiesSchema,zd as AgentCollaborationModeSchema,Zb as AgentCommandItemSchema,Yb as AgentCommandOutputOmissionSchema,Kd as AgentContextUsageSchema,We as AgentEventEnvelopeProperties,lg as AgentEventSchema,Sc as AgentFileChangeItemSchema,Qa as AgentFileChangeSchema,ud as AgentGlobalApprovalPolicySchema,Bd as AgentGlobalSettingsResponseSchema,Ad as AgentGlobalSettingsSchema,re as AgentGoalSchema,qe as AgentGoalStatusSchema,rd as AgentGranularApprovalConfigSchema,sd as AgentGranularApprovalPolicySchema,Nb as AgentImageMediaTypeSchema,_c as AgentItemSchema,Ab as AgentItemStatusSchema,fd as AgentMcpServerConnectionStatusSchema,hd as AgentMcpServerFailureReasonSchema,jd as AgentMcpServerPageSchema,id as AgentMcpServerSchema,gd as AgentMcpServerStartupStatusSchema,Sb as AgentMessageAttachmentSchema,Wb as AgentMessageItemSchema,Vb as AgentMessagePhaseSchema,Qb as AgentMessageSkillSchema,Ee as AgentModelPageSchema,Jd as AgentModelSchema,Vf as AgentMutationErrorCodeSchema,Wf as AgentMutationErrorSchema,Uc as AgentPlanItemSchema,ze as AgentPlanSchema,ye as AgentPlanStepSchema,xe as AgentPlanStepStatusSchema,Bg as AgentPreferencesSchema,Dd as AgentProjectDefaultsResponseSchema,Cd as AgentProjectDefaultsSchema,ld as AgentPromptInputSchema,Ke as AgentProviderAccountSchema,Se as AgentProviderConnectionMutationResponseSchema,Te as AgentProviderConnectionRecordSchema,Je as AgentProviderConnectionStateSchema,Me as AgentProviderConnectionStatusSchema,Ie as AgentProviderModeSchema,Le as AgentProviderPendingLoginSchema,pd as AgentQueuedSubmissionListSchema,od as AgentQueuedSubmissionPageSchema,nd as AgentQueuedSubmissionSchema,md as AgentQueuedSubmissionStatusSchema,Id as AgentReasoningEffortOptionSchema,Xb as AgentReasoningItemSchema,Zc as AgentReviewItemSchema,Bb as AgentReviewTargetSchema,xd as AgentSandboxModeSchema,Fe as AgentSkillPageSchema,kd as AgentSkillReferenceSchema,ed as AgentSkillSchema,dd as AgentSkillScopeSchema,yb as AgentTaskBaseSchema,if as AgentTaskCatalogSchema,De as AgentTaskPageSchema,zb as AgentTaskSchema,Ed as AgentTaskSettingsResponseSchema,yd as AgentTaskSettingsSchema,tg as AgentTaskSnapshotResponseSchema,Ae as AgentTaskSnapshotSchema,Tc as AgentToolItemSchema,vd as AgentTurnApprovalPolicySchema,Hd as AgentTurnOptionsSchema,ad as AgentTurnSchema,$c as AgentTurnStatusSchema,Tg as AnswerAsyncQuestionRequestSchema,Vg as AnswerAsyncQuestionResponseSchema,Ug as AnswerAsyncQuestionResultSchema,oc as AppInfoResponseSchema,lc as AppUpdateProgressPhaseSchema,nc as AppUpdateProgressResponseSchema,mc as AppUpdateProgressSchema,kc as AppUpdateStatusSchema,pf as ArchiveAgentTaskRequestSchema,qf as ArchiveAgentTaskResponseSchema,Rg as AsyncQuestionGroupSchema,Sg as AsyncQuestionPageSchema,Qg as AsyncQuestionSchema,Fg as BingWallpaperCatalogSchema,Eg as BingWallpaperSchema,ia as CODEXLY_USER_AGENT,Re as CancelProviderLoginRequestSchema,zc as ClawhubSkillDetailSchema,xc as ClawhubSkillPageSchema,wc as ClawhubSkillSummarySchema,yc as ClawhubSkillVersionSchema,ue as ClearAgentGoalResponseSchema,je as CommandApprovalPendingRequestSchema,ef as CommandOutputDeltaEventSchema,kb as CommitProjectChangesRequestSchema,nb as CommitProjectChangesResponseSchema,yf as CompactAgentTaskRequestSchema,zf as CompactAgentTaskResponseSchema,Yg as CompletedTasksPageSchema,Xg as CompletedTasksQuerySchema,Pe as ConfigureCustomProviderRequestSchema,Qe as ConfigureCustomProviderResponseSchema,vc as ConfiguredMcpServerPageSchema,uc as ConfiguredMcpServerSchema,qg as ConnectionReadySchema,ab as CreateProjectBranchRequestSchema,_ as CreateProjectDirectoryRequestSchema,$ as CreateProjectDirectoryResponseSchema,db as CreateProjectWorktreeRequestSchema,gb as CreateProjectWorktreeResponseSchema,hb as CreateTaskWorktreeResponseSchema,td as DEFAULT_AGENT_GRANULAR_APPROVAL_POLICY,qd as DEFAULT_COMMIT_MESSAGE_MODEL,Of as DeleteAgentQueuedSubmissionResponseSchema,tf as DeleteAgentTaskRequestSchema,uf as DeleteAgentTaskResponseSchema,ic as DeleteArchivedTasksRequestSchema,jc as DeleteArchivedTasksResponseSchema,ub as DeleteProjectFileRequestSchema,vb as DeleteProjectFileResponseSchema,Og as DeleteProjectTodoRequestSchema,Pg as DeleteProjectTodoResponseSchema,Vd as DeleteScheduledTaskResponseSchema,Wg as DismissAsyncQuestionsRequestSchema,pg as EventBatchSchema,Ve as EventCheckpointSchema,sg as EventStreamMessageSchema,wg as EventStreamMetricsResponseSchema,vg as EventStreamProjectMetricsSchema,he as FileChangeApprovalPendingRequestSchema,$f as FileChangeUpdatedEventSchema,va as FilesystemRootSchema,Af as ForkAgentTaskRequestSchema,Bf as ForkAgentTaskResponseSchema,ib as GenerateCommitMessageRequestSchema,jb as GenerateCommitMessageResponseSchema,xg as GlobalInstructionsSchema,bc as GlobalSearchKindSchema,gf as GoalClearedEventSchema,hg as GoalUpdatedEventSchema,Ge as HealthResponseSchema,Dg as HistoryCompressionResultSchema,za as HostFileEntrySchema,xa as HostFileKindSchema,Aa as HostFileListingSchema,ya as HostFileQuerySchema,Ba as ImportHostAttachmentRequestSchema,pc as InstallAppUpdateRequestSchema,qc as InstallAppUpdateResponseSchema,tc as InstalledSkillPageSchema,sc as InstalledSkillSchema,Tf as InterruptAgentTurnRequestSchema,Uf as InterruptAgentTurnResponseSchema,cg as ItemCompletedEventSchema,dg as ItemStartedEventSchema,$d as LogoutAccessResponseSchema,Ib as MAX_AGENT_ATTACHMENT_BYTES,ng as MAX_AGENT_EVENT_BYTES,Cb as MAX_AGENT_FILE_BYTES,Db as MAX_AGENT_FILE_TOTAL_BYTES,Jb as MAX_AGENT_HISTORY_IMAGES,Kb as MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES,Fb as MAX_AGENT_IMAGES,Eb as MAX_AGENT_IMAGE_BYTES,Gb as MAX_AGENT_IMAGE_TOTAL_BYTES,Hb as MAX_AGENT_TEXT_BYTES,og as MAX_EVENT_BATCH_BYTES,mg as MAX_EVENT_BATCH_SIZE,Xf as MAX_REALTIME_DIFF_BYTES,Yf as MAX_REALTIME_FILE_CHANGES,Zg as MAX_TEXT_FILE_BYTES,be as McpElicitationFieldSchema,ae as McpElicitationOptionSchema,me as McpElicitationPendingRequestSchema,ce as McpElicitationResolutionSchema,ag as McpServerStatusUpdatedEventSchema,zg as MemorySettingsSchema,Ag as MemorySettingsUpdateSchema,Xe as MessageDeltaEventSchema,ug as NavigableAgentTaskResponseSchema,Mc as OfficialPluginAppSchema,Lc as OfficialPluginAssetSchema,Ic as OfficialPluginAuthPolicySchema,Nc as OfficialPluginDetailSchema,Pc as OfficialPluginInstallResponseSchema,Oc as OfficialPluginInstallResultSchema,Kc as OfficialPluginPageSchema,Jc as OfficialPluginSummarySchema,Rc as OfficialPluginUninstallResponseSchema,Qc as OfficialPluginUninstallResultSchema,Tb as OpenAgentTaskAttachmentRequestSchema,Ub as OpenAgentTaskAttachmentResponseSchema,Ja as OpenProjectRequestSchema,Ka as OpenProjectResponseSchema,Hc as OpenSkillDirectoryResponseSchema,Zd as PairAccessRequestSchema,_d as PairAccessResponseSchema,ee as PendingApprovalDecisionSchema,ie as PendingPermissionCategorySchema,ig as PendingRequestCreatedEventSchema,kg as PendingRequestExpiredEventSchema,jg as PendingRequestResolvedEventSchema,ne as PendingRequestSchema,de as PendingRequestStatusSchema,fe as PendingUserInputOptionSchema,ge as PendingUserInputQuestionSchema,ke as PermissionApprovalPendingRequestSchema,Cg as PersonalizationResetSchema,lf as PinAgentTaskRequestSchema,mf as PinAgentTaskResponseSchema,Ye as PlanDeltaEventSchema,gg as PlanUpdatedEventSchema,rc as PluginReconcileResultSchema,ua as ProjectDirectoryEntrySchema,wa as ProjectDirectoryListingSchema,sa as ProjectDirectoryPathSchema,ta as ProjectDirectoryQuerySchema,rb as ProjectFileNameSchema,ra as ProjectFileReferencePathSchema,na as ProjectFileSearchEntrySchema,oa as ProjectFileSearchPageSchema,ma as ProjectFileSearchQuerySchema,la as ProjectFileSearchSessionIdSchema,ob as ProjectFileTreeEntrySchema,pb as ProjectFileTreeQuerySchema,qb as ProjectFileTreeSchema,Za as ProjectGitCommitFileDiffQuerySchema,_a as ProjectGitCommitFileDiffSchema,Xa as ProjectGitCommitFileSchema,Ya as ProjectGitCommitFilesPageSchema,Wa as ProjectGitCommitFilesQuerySchema,Ta as ProjectGitCommitSchema,Va as ProjectGitHistoryPageSchema,Ua as ProjectGitHistoryQuerySchema,df as ProjectGitMetadataChangedEventSchema,Sa as ProjectGitStatusQuerySchema,Ra as ProjectGitStatusSchema,cb as ProjectGitWorktreePageSchema,bb as ProjectGitWorktreeSchema,Ea as ProjectOpenAppIdSchema,Fa as ProjectOpenAppKindSchema,Ga as ProjectOpenAppSchema,Ia as ProjectOpenCapabilitiesResponseSchema,Ha as ProjectOpenPlatformSchema,Be as ProjectPageSchema,ka as ProjectRelativePathSchema,T as ProjectRootIdSchema,U as ProjectRootInputSchema,X as ProjectRootInputsSchema,S as ProjectRootPathSchema,Y as ProjectRootQuerySchema,V as ProjectRootSchema,W as ProjectRootsSchema,ja as ProjectSchema,wb as ProjectSourceFileQuerySchema,xb as ProjectSourceFileSchema,_g as ProjectTextFileRevisionSchema,$g as ProjectTextFileSchema,Jg as ProjectTodoDraftSchema,Lg as ProjectTodoPageSchema,Mg as ProjectTodoResponseSchema,Kg as ProjectTodoSchema,fb as ProjectWorktreeMutationResponseSchema,Ig as PromptDocumentPartSchema,ff as ProviderErrorEventSchema,lb as PushProjectCommitsRequestSchema,mb as PushProjectCommitsResponseSchema,cf as QueueChangedEventSchema,_f as ReasoningDeltaEventSchema,Cf as ReloadAgentMcpServersRequestSchema,Df as ReloadAgentMcpServersResponseSchema,Oa as RemoveProjectRequestSchema,Pa as RemoveProjectResponseSchema,nf as RenameAgentTaskRequestSchema,of as RenameAgentTaskResponseSchema,sb as RenameProjectFileRequestSchema,tb as RenameProjectFileResponseSchema,Ma as RenameProjectRequestSchema,Na as RenameProjectResponseSchema,Pf as ReorderAgentQueuedSubmissionsRequestSchema,Qf as ReorderAgentQueuedSubmissionsResponseSchema,La as ReorderProjectsRequestSchema,Ce as ReorderProjectsResponseSchema,oe as ResolvePendingRequestRequestSchema,pe as ResolvePendingRequestResponseSchema,rg as ResyncRequiredSchema,wf as ReviewAgentTaskRequestSchema,xf as ReviewAgentTaskResponseSchema,yg as SaveGlobalInstructionsSchema,ah as SaveProjectTextFileRequestSchema,bh as SaveProjectTextFileResponseSchema,Ng as SaveProjectTodoRequestSchema,Ld as ScheduledTaskChangeSchema,Rd as ScheduledTaskInputSchema,Ud as ScheduledTaskMutationResponseSchema,Td as ScheduledTaskPageSchema,Nd as ScheduledTaskPreviewRequestSchema,Od as ScheduledTaskPreviewSchema,Qd as ScheduledTaskRunSchema,Pd as ScheduledTaskRunStatusSchema,Md as ScheduledTaskScheduleSchema,Sd as ScheduledTaskSchema,ec as SearchOccurrenceSchema,gc as SearchOccurrencesPageSchema,fc as SearchOccurrencesQuerySchema,dc as SearchTextRangeSchema,Gc as SetMcpServerEnabledResponseSchema,Fc as SetMcpServerEnabledResultSchema,Wd as SetScheduledTaskEnabledRequestSchema,Ec as SetSkillEnabledResponseSchema,Dc as SetSkillEnabledResultSchema,Cc as SkillInstallResponseSchema,Bc as SkillInstallResultSchema,Ac as SkillInstallScopeSchema,bf as SkillsChangedEventSchema,Rf as StartAgentQueuedSubmissionRequestSchema,Sf as StartAgentQueuedSubmissionResponseSchema,jf as StartAgentTaskRequestSchema,kf as StartAgentTaskResponseSchema,Gf as StartAgentTurnRequestSchema,Hf as StartAgentTurnResponseSchema,Ne as StartOfficialProviderLoginRequestSchema,Oe as StartOfficialProviderLoginResponseSchema,If as SteerAgentTurnRequestSchema,Jf as SteerAgentTurnResponseSchema,pa as StopProjectFileSearchRequestSchema,qa as StopProjectFileSearchResponseSchema,Gg as SubmitTaskRequestSchema,Hg as SubmitTaskResponseSchema,$a as SwitchProjectBranchRequestSchema,eb as SwitchProjectWorktreeRequestSchema,we as TEMPORARY_TASK_API_PATH,ve as TEMPORARY_TASK_SCOPE_ID,hf as TaskCatalogQuerySchema,bg as TaskMetadataChangedEventSchema,_e as TaskNoticeEventSchema,af as TaskRemovedEventSchema,hc as TaskSearchPageSchema,cc as TaskSearchQuerySchema,$e as TaskStatusUpdatedEventSchema,ac as TerminateAgentBackgroundTerminalResponseSchema,Ze as ToolProgressEventSchema,eg as TurnCompletedEventSchema,Zf as TurnStartedEventSchema,rf as UnarchiveAgentTaskRequestSchema,sf as UnarchiveAgentTaskResponseSchema,vf as UnsubscribeAgentTaskResponseSchema,se as UpdateAgentGoalRequestSchema,te as UpdateAgentGoalResponseSchema,Mf as UpdateAgentQueuedSubmissionRequestSchema,Nf as UpdateAgentQueuedSubmissionResponseSchema,Fd as UpdateTaskSettingsAndDefaultsRequestSchema,Gd as UpdateTaskSettingsAndDefaultsResponseSchema,Ef as UploadAgentFeedbackRequestSchema,Ff as UploadAgentFeedbackResponseSchema,fg as UsageUpdatedEventSchema,le as UserInputPendingRequestSchema,ch as WorkbenchChangeSchema,ca as WorkbenchPetAnimationFrameSchema,da as WorkbenchPetAnimationSchema,fa as WorkbenchPetCatalogResponseSchema,ea as WorkbenchPetDescriptorSchema,ga as WorkbenchPetDownloadRequestSchema,ha as WorkbenchPetDownloadResponseSchema,ba as WorkbenchPetFrameSchema,aa as WorkbenchPetSettingsSchema,Ue as isAgentFastModeAvailable,Z as isValidProjectDirectoryName,Rb as stripLeadingAgentSkillReferences}from'../chunk-HD7TOFDV.js';export{b as wallTimeToUnix,a as zonedDateTime}from'../chunk-IV4NRE4S.js';import'../chunk-YXJGRSCL.js';createRequire(import.meta.url);
1
+ import {createRequire}from'node:module';export{Nb as AGENT_FILE_ACCEPT,Mb as AGENT_IMAGE_ACCEPT,Yd as AccessModeSchema,Zd as AccessStatusResponseSchema,Lf as AddAgentQueuedSubmissionRequestSchema,Mf as AddAgentQueuedSubmissionResponseSchema,Ca as AddProjectRequestSchema,Da as AddProjectResponseSchema,Wc as AgentActivityItemSchema,Yc as AgentApprovalReviewActionSchema,Zc as AgentApprovalReviewItemSchema,Xc as AgentApprovalReviewStatusSchema,xd as AgentApprovalsReviewerSchema,Qb as AgentAttachmentKindSchema,Pb as AgentAttachmentMediaTypeSchema,cd as AgentAttachmentSchema,dd as AgentAttachmentUploadResponseSchema,ac as AgentBackgroundTerminalPageSchema,$b as AgentBackgroundTerminalSchema,Ie as AgentCapabilitiesSchema,Ad as AgentCollaborationModeSchema,_b as AgentCommandItemSchema,Zb as AgentCommandOutputOmissionSchema,Ld as AgentContextUsageSchema,Xe as AgentEventEnvelopeProperties,mg as AgentEventSchema,Tc as AgentFileChangeItemSchema,Qa as AgentFileChangeSchema,vd as AgentGlobalApprovalPolicySchema,Cd as AgentGlobalSettingsResponseSchema,Bd as AgentGlobalSettingsSchema,se as AgentGoalSchema,re as AgentGoalStatusSchema,sd as AgentGranularApprovalConfigSchema,td as AgentGranularApprovalPolicySchema,Ob as AgentImageMediaTypeSchema,$c as AgentItemSchema,Bb as AgentItemStatusSchema,gd as AgentMcpServerConnectionStatusSchema,id as AgentMcpServerFailureReasonSchema,kd as AgentMcpServerPageSchema,jd as AgentMcpServerSchema,hd as AgentMcpServerStartupStatusSchema,Tb as AgentMessageAttachmentSchema,Xb as AgentMessageItemSchema,Wb as AgentMessagePhaseSchema,Rb as AgentMessageSkillSchema,Fe as AgentModelPageSchema,Kd as AgentModelSchema,Wf as AgentMutationErrorCodeSchema,Xf as AgentMutationErrorSchema,Vc as AgentPlanItemSchema,Ae as AgentPlanSchema,ze as AgentPlanStepSchema,ye as AgentPlanStepStatusSchema,Cg as AgentPreferencesSchema,Ed as AgentProjectDefaultsResponseSchema,Dd as AgentProjectDefaultsSchema,md as AgentPromptInputSchema,Le as AgentProviderAccountSchema,Te as AgentProviderConnectionMutationResponseSchema,Ue as AgentProviderConnectionRecordSchema,Ke as AgentProviderConnectionStateSchema,Ne as AgentProviderConnectionStatusSchema,Je as AgentProviderModeSchema,Me as AgentProviderPendingLoginSchema,qd as AgentQueuedSubmissionListSchema,pd as AgentQueuedSubmissionPageSchema,od as AgentQueuedSubmissionSchema,nd as AgentQueuedSubmissionStatusSchema,Jd as AgentReasoningEffortOptionSchema,Yb as AgentReasoningItemSchema,_c as AgentReviewItemSchema,Cb as AgentReviewTargetSchema,yd as AgentSandboxModeSchema,Ge as AgentSkillPageSchema,ld as AgentSkillReferenceSchema,fd as AgentSkillSchema,ed as AgentSkillScopeSchema,zb as AgentTaskBaseSchema,jf as AgentTaskCatalogSchema,Ee as AgentTaskPageSchema,Ab as AgentTaskSchema,Fd as AgentTaskSettingsResponseSchema,zd as AgentTaskSettingsSchema,ug as AgentTaskSnapshotResponseSchema,Be as AgentTaskSnapshotSchema,Uc as AgentToolItemSchema,wd as AgentTurnApprovalPolicySchema,Id as AgentTurnOptionsSchema,bd as AgentTurnSchema,ad as AgentTurnStatusSchema,Ug as AnswerAsyncQuestionRequestSchema,Wg as AnswerAsyncQuestionResponseSchema,Vg as AnswerAsyncQuestionResultSchema,pc as AppInfoResponseSchema,mc as AppUpdateProgressPhaseSchema,oc as AppUpdateProgressResponseSchema,nc as AppUpdateProgressSchema,lc as AppUpdateStatusSchema,qf as ArchiveAgentTaskRequestSchema,rf as ArchiveAgentTaskResponseSchema,Sg as AsyncQuestionGroupSchema,Tg as AsyncQuestionPageSchema,Rg as AsyncQuestionSchema,Gg as BingWallpaperCatalogSchema,Fg as BingWallpaperSchema,ia as CODEXLY_USER_AGENT,Se as CancelProviderLoginRequestSchema,Ac as ClawhubSkillDetailSchema,yc as ClawhubSkillPageSchema,xc as ClawhubSkillSummarySchema,zc as ClawhubSkillVersionSchema,ve as ClearAgentGoalResponseSchema,ke as CommandApprovalPendingRequestSchema,ff as CommandOutputDeltaEventSchema,kb as CommitProjectChangesRequestSchema,ob as CommitProjectChangesResponseSchema,zf as CompactAgentTaskRequestSchema,Af as CompactAgentTaskResponseSchema,Zg as CompletedTasksPageSchema,Yg as CompletedTasksQuerySchema,Qe as ConfigureCustomProviderRequestSchema,Re as ConfigureCustomProviderResponseSchema,wc as ConfiguredMcpServerPageSchema,vc as ConfiguredMcpServerSchema,rg as ConnectionReadySchema,ab as CreateProjectBranchRequestSchema,_ as CreateProjectDirectoryRequestSchema,$ as CreateProjectDirectoryResponseSchema,db as CreateProjectWorktreeRequestSchema,gb as CreateProjectWorktreeResponseSchema,hb as CreateTaskWorktreeResponseSchema,ud as DEFAULT_AGENT_GRANULAR_APPROVAL_POLICY,rd as DEFAULT_COMMIT_MESSAGE_MODEL,Pf as DeleteAgentQueuedSubmissionResponseSchema,uf as DeleteAgentTaskRequestSchema,vf as DeleteAgentTaskResponseSchema,jc as DeleteArchivedTasksRequestSchema,kc as DeleteArchivedTasksResponseSchema,vb as DeleteProjectFileRequestSchema,wb as DeleteProjectFileResponseSchema,Pg as DeleteProjectTodoRequestSchema,Qg as DeleteProjectTodoResponseSchema,Wd as DeleteScheduledTaskResponseSchema,Xg as DismissAsyncQuestionsRequestSchema,qg as EventBatchSchema,We as EventCheckpointSchema,tg as EventStreamMessageSchema,xg as EventStreamMetricsResponseSchema,wg as EventStreamProjectMetricsSchema,ie as FileChangeApprovalPendingRequestSchema,ag as FileChangeUpdatedEventSchema,va as FilesystemRootSchema,Bf as ForkAgentTaskRequestSchema,Cf as ForkAgentTaskResponseSchema,ib as GenerateCommitMessageRequestSchema,jb as GenerateCommitMessageResponseSchema,mb as GitRemoteStateSchema,yg as GlobalInstructionsSchema,cc as GlobalSearchKindSchema,hf as GoalClearedEventSchema,ig as GoalUpdatedEventSchema,He as HealthResponseSchema,Eg as HistoryCompressionResultSchema,za as HostFileEntrySchema,xa as HostFileKindSchema,Aa as HostFileListingSchema,ya as HostFileQuerySchema,Ba as ImportHostAttachmentRequestSchema,qc as InstallAppUpdateRequestSchema,rc as InstallAppUpdateResponseSchema,uc as InstalledSkillPageSchema,tc as InstalledSkillSchema,Uf as InterruptAgentTurnRequestSchema,Vf as InterruptAgentTurnResponseSchema,dg as ItemCompletedEventSchema,eg as ItemStartedEventSchema,ae as LogoutAccessResponseSchema,Jb as MAX_AGENT_ATTACHMENT_BYTES,og as MAX_AGENT_EVENT_BYTES,Db as MAX_AGENT_FILE_BYTES,Eb as MAX_AGENT_FILE_TOTAL_BYTES,Kb as MAX_AGENT_HISTORY_IMAGES,Lb as MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES,Gb as MAX_AGENT_IMAGES,Fb as MAX_AGENT_IMAGE_BYTES,Hb as MAX_AGENT_IMAGE_TOTAL_BYTES,Ib as MAX_AGENT_TEXT_BYTES,pg as MAX_EVENT_BATCH_BYTES,ng as MAX_EVENT_BATCH_SIZE,Yf as MAX_REALTIME_DIFF_BYTES,Zf as MAX_REALTIME_FILE_CHANGES,_g as MAX_TEXT_FILE_BYTES,ce as McpElicitationFieldSchema,be as McpElicitationOptionSchema,ne as McpElicitationPendingRequestSchema,de as McpElicitationResolutionSchema,bg as McpServerStatusUpdatedEventSchema,Ag as MemorySettingsSchema,Bg as MemorySettingsUpdateSchema,Ye as MessageDeltaEventSchema,vg as NavigableAgentTaskResponseSchema,Nc as OfficialPluginAppSchema,Mc as OfficialPluginAssetSchema,Jc as OfficialPluginAuthPolicySchema,Oc as OfficialPluginDetailSchema,Qc as OfficialPluginInstallResponseSchema,Pc as OfficialPluginInstallResultSchema,Lc as OfficialPluginPageSchema,Kc as OfficialPluginSummarySchema,Sc as OfficialPluginUninstallResponseSchema,Rc as OfficialPluginUninstallResultSchema,Ub as OpenAgentTaskAttachmentRequestSchema,Vb as OpenAgentTaskAttachmentResponseSchema,Ja as OpenProjectRequestSchema,Ka as OpenProjectResponseSchema,Ic as OpenSkillDirectoryResponseSchema,_d as PairAccessRequestSchema,$d as PairAccessResponseSchema,fe as PendingApprovalDecisionSchema,je as PendingPermissionCategorySchema,jg as PendingRequestCreatedEventSchema,lg as PendingRequestExpiredEventSchema,kg as PendingRequestResolvedEventSchema,oe as PendingRequestSchema,ee as PendingRequestStatusSchema,ge as PendingUserInputOptionSchema,he as PendingUserInputQuestionSchema,le as PermissionApprovalPendingRequestSchema,Dg as PersonalizationResetSchema,mf as PinAgentTaskRequestSchema,nf as PinAgentTaskResponseSchema,Ze as PlanDeltaEventSchema,hg as PlanUpdatedEventSchema,sc as PluginReconcileResultSchema,ua as ProjectDirectoryEntrySchema,wa as ProjectDirectoryListingSchema,sa as ProjectDirectoryPathSchema,ta as ProjectDirectoryQuerySchema,sb as ProjectFileNameSchema,ra as ProjectFileReferencePathSchema,na as ProjectFileSearchEntrySchema,oa as ProjectFileSearchPageSchema,ma as ProjectFileSearchQuerySchema,la as ProjectFileSearchSessionIdSchema,pb as ProjectFileTreeEntrySchema,qb as ProjectFileTreeQuerySchema,rb as ProjectFileTreeSchema,Za as ProjectGitCommitFileDiffQuerySchema,_a as ProjectGitCommitFileDiffSchema,Xa as ProjectGitCommitFileSchema,Ya as ProjectGitCommitFilesPageSchema,Wa as ProjectGitCommitFilesQuerySchema,Ta as ProjectGitCommitSchema,Va as ProjectGitHistoryPageSchema,Ua as ProjectGitHistoryQuerySchema,ef as ProjectGitMetadataChangedEventSchema,Sa as ProjectGitStatusQuerySchema,Ra as ProjectGitStatusSchema,cb as ProjectGitWorktreePageSchema,bb as ProjectGitWorktreeSchema,Ea as ProjectOpenAppIdSchema,Fa as ProjectOpenAppKindSchema,Ga as ProjectOpenAppSchema,Ia as ProjectOpenCapabilitiesResponseSchema,Ha as ProjectOpenPlatformSchema,Ce as ProjectPageSchema,ka as ProjectRelativePathSchema,T as ProjectRootIdSchema,U as ProjectRootInputSchema,X as ProjectRootInputsSchema,S as ProjectRootPathSchema,Y as ProjectRootQuerySchema,V as ProjectRootSchema,W as ProjectRootsSchema,ja as ProjectSchema,xb as ProjectSourceFileQuerySchema,yb as ProjectSourceFileSchema,$g as ProjectTextFileRevisionSchema,ah as ProjectTextFileSchema,Kg as ProjectTodoDraftSchema,Mg as ProjectTodoPageSchema,Ng as ProjectTodoResponseSchema,Lg as ProjectTodoSchema,fb as ProjectWorktreeMutationResponseSchema,Jg as PromptDocumentPartSchema,gf as ProviderErrorEventSchema,lb as PushProjectCommitsRequestSchema,nb as PushProjectCommitsResponseSchema,df as QueueChangedEventSchema,$f as ReasoningDeltaEventSchema,Df as ReloadAgentMcpServersRequestSchema,Ef as ReloadAgentMcpServersResponseSchema,Oa as RemoveProjectRequestSchema,Pa as RemoveProjectResponseSchema,of as RenameAgentTaskRequestSchema,pf as RenameAgentTaskResponseSchema,tb as RenameProjectFileRequestSchema,ub as RenameProjectFileResponseSchema,Ma as RenameProjectRequestSchema,Na as RenameProjectResponseSchema,Qf as ReorderAgentQueuedSubmissionsRequestSchema,Rf as ReorderAgentQueuedSubmissionsResponseSchema,La as ReorderProjectsRequestSchema,De as ReorderProjectsResponseSchema,pe as ResolvePendingRequestRequestSchema,qe as ResolvePendingRequestResponseSchema,sg as ResyncRequiredSchema,xf as ReviewAgentTaskRequestSchema,yf as ReviewAgentTaskResponseSchema,zg as SaveGlobalInstructionsSchema,bh as SaveProjectTextFileRequestSchema,ch as SaveProjectTextFileResponseSchema,Og as SaveProjectTodoRequestSchema,Md as ScheduledTaskChangeSchema,Sd as ScheduledTaskInputSchema,Vd as ScheduledTaskMutationResponseSchema,Ud as ScheduledTaskPageSchema,Od as ScheduledTaskPreviewRequestSchema,Pd as ScheduledTaskPreviewSchema,Rd as ScheduledTaskRunSchema,Qd as ScheduledTaskRunStatusSchema,Nd as ScheduledTaskScheduleSchema,Td as ScheduledTaskSchema,fc as SearchOccurrenceSchema,hc as SearchOccurrencesPageSchema,gc as SearchOccurrencesQuerySchema,ec as SearchTextRangeSchema,Hc as SetMcpServerEnabledResponseSchema,Gc as SetMcpServerEnabledResultSchema,Xd as SetScheduledTaskEnabledRequestSchema,Fc as SetSkillEnabledResponseSchema,Ec as SetSkillEnabledResultSchema,Dc as SkillInstallResponseSchema,Cc as SkillInstallResultSchema,Bc as SkillInstallScopeSchema,cf as SkillsChangedEventSchema,Sf as StartAgentQueuedSubmissionRequestSchema,Tf as StartAgentQueuedSubmissionResponseSchema,kf as StartAgentTaskRequestSchema,lf as StartAgentTaskResponseSchema,Hf as StartAgentTurnRequestSchema,If as StartAgentTurnResponseSchema,Oe as StartOfficialProviderLoginRequestSchema,Pe as StartOfficialProviderLoginResponseSchema,Jf as SteerAgentTurnRequestSchema,Kf as SteerAgentTurnResponseSchema,pa as StopProjectFileSearchRequestSchema,qa as StopProjectFileSearchResponseSchema,Hg as SubmitTaskRequestSchema,Ig as SubmitTaskResponseSchema,$a as SwitchProjectBranchRequestSchema,eb as SwitchProjectWorktreeRequestSchema,xe as TEMPORARY_TASK_API_PATH,we as TEMPORARY_TASK_SCOPE_ID,if as TaskCatalogQuerySchema,cg as TaskMetadataChangedEventSchema,$e as TaskNoticeEventSchema,bf as TaskRemovedEventSchema,ic as TaskSearchPageSchema,dc as TaskSearchQuerySchema,af as TaskStatusUpdatedEventSchema,bc as TerminateAgentBackgroundTerminalResponseSchema,_e as ToolProgressEventSchema,fg as TurnCompletedEventSchema,_f as TurnStartedEventSchema,sf as UnarchiveAgentTaskRequestSchema,tf as UnarchiveAgentTaskResponseSchema,wf as UnsubscribeAgentTaskResponseSchema,te as UpdateAgentGoalRequestSchema,ue as UpdateAgentGoalResponseSchema,Nf as UpdateAgentQueuedSubmissionRequestSchema,Of as UpdateAgentQueuedSubmissionResponseSchema,Gd as UpdateTaskSettingsAndDefaultsRequestSchema,Hd as UpdateTaskSettingsAndDefaultsResponseSchema,Ff as UploadAgentFeedbackRequestSchema,Gf as UploadAgentFeedbackResponseSchema,gg as UsageUpdatedEventSchema,me as UserInputPendingRequestSchema,dh as WorkbenchChangeSchema,ca as WorkbenchPetAnimationFrameSchema,da as WorkbenchPetAnimationSchema,fa as WorkbenchPetCatalogResponseSchema,ea as WorkbenchPetDescriptorSchema,ga as WorkbenchPetDownloadRequestSchema,ha as WorkbenchPetDownloadResponseSchema,ba as WorkbenchPetFrameSchema,aa as WorkbenchPetSettingsSchema,Ve as isAgentFastModeAvailable,Z as isValidProjectDirectoryName,Sb as stripLeadingAgentSkillReferences}from'../chunk-63NQMTXZ.js';export{b as wallTimeToUnix,a as zonedDateTime}from'../chunk-IV4NRE4S.js';import'../chunk-YXJGRSCL.js';createRequire(import.meta.url);
@@ -1 +1 @@
1
- import {createRequire}from'node:module';export{q as CodexAppServerExitedError,t as CodexAppServerProcess,s as CodexAppServerShutdownError,r as CodexAppServerSpawnError,v as CodexProjectRepository,a as CodexProtocolMappingError,m as CodexProviderConnectionError,n as CodexProviderConnectionService,o as CodexRuntimeProvider,w as CodexWorkbenchPetProvider,f as JsonlRpcClient,b as RpcConnectionClosedError,c as RpcProtocolError,d as RpcResponseError,e as RpcTimeoutError,g as SUPPORTED_CODEX_VERSION,h as SUPPORTED_CODEX_VERSION_RANGE,j as checkCodexVersion,p as createCodexRuntimeProvider,x as createCodexWorkbenchPetProvider,i as locateCodexBinary,u as startCodexAppServer}from'../../chunk-ZK7RF5XC.js';import'../../chunk-XJOOU7A5.js';import'../../chunk-3WW7LK46.js';import'../../chunk-HD7TOFDV.js';import'../../chunk-IV4NRE4S.js';import'../../chunk-YXJGRSCL.js';createRequire(import.meta.url);
1
+ import {createRequire}from'node:module';export{q as CodexAppServerExitedError,t as CodexAppServerProcess,s as CodexAppServerShutdownError,r as CodexAppServerSpawnError,v as CodexProjectRepository,a as CodexProtocolMappingError,m as CodexProviderConnectionError,n as CodexProviderConnectionService,o as CodexRuntimeProvider,w as CodexWorkbenchPetProvider,f as JsonlRpcClient,b as RpcConnectionClosedError,c as RpcProtocolError,d as RpcResponseError,e as RpcTimeoutError,g as SUPPORTED_CODEX_VERSION,h as SUPPORTED_CODEX_VERSION_RANGE,j as checkCodexVersion,p as createCodexRuntimeProvider,x as createCodexWorkbenchPetProvider,i as locateCodexBinary,u as startCodexAppServer}from'../../chunk-5ULADQG3.js';import'../../chunk-XJOOU7A5.js';import'../../chunk-3WW7LK46.js';import'../../chunk-63NQMTXZ.js';import'../../chunk-IV4NRE4S.js';import'../../chunk-YXJGRSCL.js';createRequire(import.meta.url);
@@ -1 +1 @@
1
- import {createRequire}from'node:module';export{g as AccessSessionService,a as AgentEventStream,b as GitCommitError,d as GitCommitReviewError,j as SqliteStateRepository,c as commitSelectedProjectChanges,i as createCodexlyServer,h as normalizeAllowedHost,f as readProjectGitCommitFileDiff,e as readProjectGitCommitFiles}from'../chunk-DRIJMD7S.js';import'../chunk-GFASBWL4.js';import'../chunk-ZK7RF5XC.js';import'../chunk-XJOOU7A5.js';import'../chunk-3WW7LK46.js';import'../chunk-HD7TOFDV.js';import'../chunk-IV4NRE4S.js';import'../chunk-YXJGRSCL.js';createRequire(import.meta.url);
1
+ import {createRequire}from'node:module';export{g as AccessSessionService,a as AgentEventStream,b as GitCommitError,d as GitCommitReviewError,j as SqliteStateRepository,c as commitSelectedProjectChanges,i as createCodexlyServer,h as normalizeAllowedHost,f as readProjectGitCommitFileDiff,e as readProjectGitCommitFiles}from'../chunk-PFNMH4LN.js';import'../chunk-5AELLXXE.js';import'../chunk-5ULADQG3.js';import'../chunk-XJOOU7A5.js';import'../chunk-3WW7LK46.js';import'../chunk-63NQMTXZ.js';import'../chunk-IV4NRE4S.js';import'../chunk-YXJGRSCL.js';createRequire(import.meta.url);