@bryanhu/codexly 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +3 -0
  3. package/README.zh-CN.md +3 -0
  4. package/dist/{chunk-2J5P2EG2.js → chunk-4VM2ZUPT.js} +67 -3
  5. package/dist/{chunk-ZUECHB6L.js → chunk-6JWQNFM2.js} +1 -1
  6. package/dist/{chunk-AIACWU7L.js → chunk-NUJPWN62.js} +135 -1
  7. package/dist/{chunk-X5JZ3VOF.js → chunk-ZXTTTT25.js} +433 -373
  8. package/dist/cli.js +82 -49
  9. package/dist/client/index.js +17 -3
  10. package/dist/protocol/index.js +1 -1
  11. package/dist/providers/codex/index.js +2 -2
  12. package/dist/server/index.js +4 -4
  13. package/dist/web/.vite/manifest.json +420 -277
  14. package/dist/web/.vite/manifest.json.br +0 -0
  15. package/dist/web/.vite/manifest.json.gz +0 -0
  16. package/dist/web/assets/{agent-settings-panel-B1tpu4pa.js → agent-settings-panel-Ci9mJOS-.js} +1 -1
  17. package/dist/web/assets/agent-settings-panel-Ci9mJOS-.js.br +0 -0
  18. package/dist/web/assets/agent-settings-panel-Ci9mJOS-.js.gz +0 -0
  19. package/dist/web/assets/attachments-uWbRsPJj.js +1 -0
  20. package/dist/web/assets/attachments-uWbRsPJj.js.br +0 -0
  21. package/dist/web/assets/attachments-uWbRsPJj.js.gz +0 -0
  22. package/dist/web/assets/{background-image-picker-EduK0hbQ.js → background-image-picker-qGpdQPQi.js} +1 -1
  23. package/dist/web/assets/background-image-picker-qGpdQPQi.js.br +0 -0
  24. package/dist/web/assets/background-image-picker-qGpdQPQi.js.gz +0 -0
  25. package/dist/web/assets/{bing-wallpaper-queries-CSoA0-Sc.js → bing-wallpaper-queries-uesKD16x.js} +1 -1
  26. package/dist/web/assets/bing-wallpaper-queries-uesKD16x.js.br +0 -0
  27. package/dist/web/assets/bing-wallpaper-queries-uesKD16x.js.gz +0 -0
  28. package/dist/web/assets/{bot-DYpQGfoo.js → bot-DS7Hjc6u.js} +1 -1
  29. package/dist/web/assets/bot-DS7Hjc6u.js.br +0 -0
  30. package/dist/web/assets/bot-DS7Hjc6u.js.gz +0 -0
  31. package/dist/web/assets/{button-group-mF0kqA5r.js → button-group-075rCj_f.js} +1 -1
  32. package/dist/web/assets/button-group-075rCj_f.js.br +0 -0
  33. package/dist/web/assets/button-group-075rCj_f.js.gz +0 -0
  34. package/dist/web/assets/{chunk-BO2N2NFS-DauaBPLH.js → chunk-BO2N2NFS-D6bbuE0-.js} +4 -4
  35. package/dist/web/assets/chunk-BO2N2NFS-D6bbuE0-.js.br +0 -0
  36. package/dist/web/assets/chunk-BO2N2NFS-D6bbuE0-.js.gz +0 -0
  37. package/dist/web/assets/code-block-C9eTeWWd.js +3 -0
  38. package/dist/web/assets/code-block-C9eTeWWd.js.br +0 -0
  39. package/dist/web/assets/code-block-C9eTeWWd.js.gz +0 -0
  40. package/dist/web/assets/{commit-settings-panel-D-FwIqBX.js → commit-settings-panel-CaMMU0oA.js} +1 -1
  41. package/dist/web/assets/commit-settings-panel-CaMMU0oA.js.br +0 -0
  42. package/dist/web/assets/commit-settings-panel-CaMMU0oA.js.gz +0 -0
  43. package/dist/web/assets/{context-menu-C-ahEu-O.js → context-menu-Dj3lnor1.js} +1 -1
  44. package/dist/web/assets/context-menu-Dj3lnor1.js.br +0 -0
  45. package/dist/web/assets/context-menu-Dj3lnor1.js.gz +0 -0
  46. package/dist/web/assets/copy-BynT2kGi.js +1 -0
  47. package/dist/web/assets/copy-BynT2kGi.js.br +0 -0
  48. package/dist/web/assets/copy-BynT2kGi.js.gz +0 -0
  49. package/dist/web/assets/{dist-B4No2uWB.js → dist-BpzI75g4.js} +1 -1
  50. package/dist/web/assets/dist-BpzI75g4.js.br +0 -0
  51. package/dist/web/assets/dist-BpzI75g4.js.gz +0 -0
  52. package/dist/web/assets/{download-B__AuyX_.js → download-DMNchNW0.js} +1 -1
  53. package/dist/web/assets/download-DMNchNW0.js.br +0 -0
  54. package/dist/web/assets/download-DMNchNW0.js.gz +0 -0
  55. package/dist/web/assets/{external-link-BHe2GLz2.js → external-link-DcCR8cO8.js} +1 -1
  56. package/dist/web/assets/external-link-DcCR8cO8.js.br +0 -0
  57. package/dist/web/assets/external-link-DcCR8cO8.js.gz +0 -0
  58. package/dist/web/assets/file-code-corner-DrXDbEPu.js +1 -0
  59. package/dist/web/assets/file-code-corner-DrXDbEPu.js.br +0 -0
  60. package/dist/web/assets/file-code-corner-DrXDbEPu.js.gz +0 -0
  61. package/dist/web/assets/{file-navigation-view-preference-ePb5OplI.js → file-navigation-view-preference-BrQTIoOu.js} +1 -1
  62. package/dist/web/assets/file-navigation-view-preference-BrQTIoOu.js.br +0 -0
  63. package/dist/web/assets/file-navigation-view-preference-BrQTIoOu.js.gz +0 -0
  64. package/dist/web/assets/{file-pen-line-Ct-6viiE.js → file-pen-line-Dm4cCdyM.js} +1 -1
  65. package/dist/web/assets/file-pen-line-Dm4cCdyM.js.br +0 -0
  66. package/dist/web/assets/file-pen-line-Dm4cCdyM.js.gz +0 -0
  67. package/dist/web/assets/file-review-dialog-D8XVZ21M.js +2 -0
  68. package/dist/web/assets/file-review-dialog-D8XVZ21M.js.br +0 -0
  69. package/dist/web/assets/file-review-dialog-D8XVZ21M.js.gz +0 -0
  70. package/dist/web/assets/files-BQtgYZvR.js +1 -0
  71. package/dist/web/assets/files-BQtgYZvR.js.br +0 -0
  72. package/dist/web/assets/files-BQtgYZvR.js.gz +0 -0
  73. package/dist/web/assets/{git-fork-CqXNwC6z.js → git-fork-93orhLsV.js} +1 -1
  74. package/dist/web/assets/git-fork-93orhLsV.js.br +2 -0
  75. package/dist/web/assets/git-fork-93orhLsV.js.gz +0 -0
  76. package/dist/web/assets/git-history-panel-D2fKSR66.js +2 -0
  77. package/dist/web/assets/git-history-panel-D2fKSR66.js.br +0 -0
  78. package/dist/web/assets/git-history-panel-D2fKSR66.js.gz +0 -0
  79. package/dist/web/assets/global-search-dialog-BxT-UjpZ.js +3 -0
  80. package/dist/web/assets/global-search-dialog-BxT-UjpZ.js.br +0 -0
  81. package/dist/web/assets/global-search-dialog-BxT-UjpZ.js.gz +0 -0
  82. package/dist/web/assets/{global-settings-about-CqXSZ-hM.js → global-settings-about-DiblprcD.js} +1 -1
  83. package/dist/web/assets/global-settings-about-DiblprcD.js.br +0 -0
  84. package/dist/web/assets/global-settings-about-DiblprcD.js.gz +0 -0
  85. package/dist/web/assets/{global-settings-fields-BufGOubt.js → global-settings-fields-D5T5SPXY.js} +1 -1
  86. package/dist/web/assets/global-settings-fields-D5T5SPXY.js.br +0 -0
  87. package/dist/web/assets/global-settings-fields-D5T5SPXY.js.gz +0 -0
  88. package/dist/web/assets/{global-settings-model-Cos_BezB.js → global-settings-model-COz331Sr.js} +1 -1
  89. package/dist/web/assets/global-settings-model-COz331Sr.js.br +0 -0
  90. package/dist/web/assets/global-settings-model-COz331Sr.js.gz +0 -0
  91. package/dist/web/assets/{global-settings-page-De52Gs2E.js → global-settings-page-DEBGBxSg.js} +2 -2
  92. package/dist/web/assets/global-settings-page-DEBGBxSg.js.br +0 -0
  93. package/dist/web/assets/global-settings-page-DEBGBxSg.js.gz +0 -0
  94. package/dist/web/assets/{global-settings-pets-NSZ_OS9l.js → global-settings-pets-DwJnj_6N.js} +1 -1
  95. package/dist/web/assets/global-settings-pets-DwJnj_6N.js.br +0 -0
  96. package/dist/web/assets/global-settings-pets-DwJnj_6N.js.gz +0 -0
  97. package/dist/web/assets/{highlighted-body-OFNGDK62-BxPDtlWp.js → highlighted-body-OFNGDK62-D0ZQwVKA.js} +1 -1
  98. package/dist/web/assets/highlighted-body-OFNGDK62-D0ZQwVKA.js.br +0 -0
  99. package/dist/web/assets/highlighted-body-OFNGDK62-D0ZQwVKA.js.gz +0 -0
  100. package/dist/web/assets/history-BWOEYMB7.js +1 -0
  101. package/dist/web/assets/history-BWOEYMB7.js.br +0 -0
  102. package/dist/web/assets/history-BWOEYMB7.js.gz +0 -0
  103. package/dist/web/assets/history-location-BlnZi6Z-.js +1 -0
  104. package/dist/web/assets/history-location-BlnZi6Z-.js.br +0 -0
  105. package/dist/web/assets/history-location-BlnZi6Z-.js.gz +0 -0
  106. package/dist/web/assets/history-task-timeline-oQRRdMbY.js +1 -0
  107. package/dist/web/assets/history-task-timeline-oQRRdMbY.js.br +0 -0
  108. package/dist/web/assets/history-task-timeline-oQRRdMbY.js.gz +0 -0
  109. package/dist/web/assets/index-Cm5l38kF.css +2 -0
  110. package/dist/web/assets/index-Cm5l38kF.css.br +0 -0
  111. package/dist/web/assets/index-Cm5l38kF.css.gz +0 -0
  112. package/dist/web/assets/index-DRfXjZ2a.js +4 -0
  113. package/dist/web/assets/index-DRfXjZ2a.js.br +0 -0
  114. package/dist/web/assets/index-DRfXjZ2a.js.gz +0 -0
  115. package/dist/web/assets/{info-BSMz7uRW.js → info-BbsecYYN.js} +1 -1
  116. package/dist/web/assets/info-BbsecYYN.js.br +0 -0
  117. package/dist/web/assets/info-BbsecYYN.js.gz +0 -0
  118. package/dist/web/assets/{initial-deps-BsEyuMB0.js → initial-deps-BM3gt1hz.js} +1 -1
  119. package/dist/web/assets/initial-deps-BM3gt1hz.js.br +0 -0
  120. package/dist/web/assets/initial-deps-BM3gt1hz.js.gz +0 -0
  121. package/dist/web/assets/{initial-deps-CA0YnOrW.js → initial-deps-BYSU0u1N.js} +1 -1
  122. package/dist/web/assets/initial-deps-BYSU0u1N.js.br +0 -0
  123. package/dist/web/assets/initial-deps-BYSU0u1N.js.gz +0 -0
  124. package/dist/web/assets/{initial-deps-CTprc_pY.js → initial-deps-CB2J2rjl.js} +1 -1
  125. package/dist/web/assets/initial-deps-CB2J2rjl.js.br +0 -0
  126. package/dist/web/assets/{initial-deps-CTprc_pY.js.gz → initial-deps-CB2J2rjl.js.gz} +0 -0
  127. package/dist/web/assets/initial-deps-DipJkDUX.js +1 -0
  128. package/dist/web/assets/initial-deps-DipJkDUX.js.br +0 -0
  129. package/dist/web/assets/initial-deps-DipJkDUX.js.gz +0 -0
  130. package/dist/web/assets/{initial-deps-DKh4Kqow.js → initial-deps-E80pA8LY.js} +1 -1
  131. package/dist/web/assets/initial-deps-E80pA8LY.js.br +0 -0
  132. package/dist/web/assets/initial-deps-E80pA8LY.js.gz +0 -0
  133. package/dist/web/assets/{installed-skills-pane-CX_Snugt.js → installed-skills-pane-v1IcvRKL.js} +1 -1
  134. package/dist/web/assets/installed-skills-pane-v1IcvRKL.js.br +0 -0
  135. package/dist/web/assets/installed-skills-pane-v1IcvRKL.js.gz +0 -0
  136. package/dist/web/assets/lazy-message-response-B6dT9kbf.js +2 -0
  137. package/dist/web/assets/lazy-message-response-B6dT9kbf.js.br +0 -0
  138. package/dist/web/assets/lazy-message-response-B6dT9kbf.js.gz +0 -0
  139. package/dist/web/assets/{mcp-management-pane-D6nlohla.js → mcp-management-pane-DiPUaZAO.js} +1 -1
  140. package/dist/web/assets/mcp-management-pane-DiPUaZAO.js.br +0 -0
  141. package/dist/web/assets/mcp-management-pane-DiPUaZAO.js.gz +0 -0
  142. package/dist/web/assets/mermaid-GHXKKRXX-BghgL98l.js +1 -0
  143. package/dist/web/assets/mermaid-GHXKKRXX-BghgL98l.js.br +0 -0
  144. package/dist/web/assets/mermaid-GHXKKRXX-BghgL98l.js.gz +0 -0
  145. package/dist/web/assets/{message-response-BIw_oDni.js → message-response-BZZGbaVm.js} +1 -1
  146. package/dist/web/assets/message-response-BZZGbaVm.js.br +0 -0
  147. package/dist/web/assets/message-response-BZZGbaVm.js.gz +0 -0
  148. package/dist/web/assets/{official-plugins-pane-Yovv5F6v.js → official-plugins-pane-Cis1hRgm.js} +1 -1
  149. package/dist/web/assets/official-plugins-pane-Cis1hRgm.js.br +0 -0
  150. package/dist/web/assets/official-plugins-pane-Cis1hRgm.js.gz +0 -0
  151. package/dist/web/assets/{paw-print-dDU9UzMl.js → paw-print-BysLHcBp.js} +1 -1
  152. package/dist/web/assets/paw-print-BysLHcBp.js.br +0 -0
  153. package/dist/web/assets/paw-print-BysLHcBp.js.gz +0 -0
  154. package/dist/web/assets/{personalization-settings-panel-CCUwWuv3.js → personalization-settings-panel-BB5nguhA.js} +1 -1
  155. package/dist/web/assets/personalization-settings-panel-BB5nguhA.js.br +0 -0
  156. package/dist/web/assets/personalization-settings-panel-BB5nguhA.js.gz +0 -0
  157. package/dist/web/assets/{project-file-popup-page-CXo1NNgu.js → project-file-popup-page-CAcF7DIa.js} +1 -1
  158. package/dist/web/assets/project-file-popup-page-CAcF7DIa.js.br +0 -0
  159. package/dist/web/assets/project-file-popup-page-CAcF7DIa.js.gz +0 -0
  160. package/dist/web/assets/project-source-dialog-DbOmvJBS.js +1 -0
  161. package/dist/web/assets/project-source-dialog-DbOmvJBS.js.br +0 -0
  162. package/dist/web/assets/project-source-dialog-DbOmvJBS.js.gz +0 -0
  163. package/dist/web/assets/project-source-panel-DGafRUDi.js +1 -0
  164. package/dist/web/assets/project-source-panel-DGafRUDi.js.br +0 -0
  165. package/dist/web/assets/project-source-panel-DGafRUDi.js.gz +0 -0
  166. package/dist/web/assets/{prompt-input-D2ZRw3F_.js → prompt-input-DwT-XwSc.js} +1 -1
  167. package/dist/web/assets/prompt-input-DwT-XwSc.js.br +0 -0
  168. package/dist/web/assets/prompt-input-DwT-XwSc.js.gz +0 -0
  169. package/dist/web/assets/{prompt-input-controls-C4aMGxRa.js → prompt-input-controls-CLasQrSj.js} +1 -1
  170. package/dist/web/assets/prompt-input-controls-CLasQrSj.js.br +0 -0
  171. package/dist/web/assets/prompt-input-controls-CLasQrSj.js.gz +0 -0
  172. package/dist/web/assets/{scheduled-task-date-time-picker-CoEflzMf.js → scheduled-task-date-time-picker-CnSPVHna.js} +1 -1
  173. package/dist/web/assets/scheduled-task-date-time-picker-CnSPVHna.js.br +0 -0
  174. package/dist/web/assets/scheduled-task-date-time-picker-CnSPVHna.js.gz +0 -0
  175. package/dist/web/assets/{scheduled-task-floating-ui~scheduled-task-date-time-picker-Bz9LiWta.js → scheduled-task-floating-ui~scheduled-task-date-time-picker-BmEuIPw_.js} +1 -1
  176. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BmEuIPw_.js.br +0 -0
  177. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-BmEuIPw_.js.gz +0 -0
  178. package/dist/web/assets/{scheduled-task-schedule-DrAFQ2cQ.js → scheduled-task-schedule-BnMdRADi.js} +1 -1
  179. package/dist/web/assets/scheduled-task-schedule-BnMdRADi.js.br +0 -0
  180. package/dist/web/assets/scheduled-task-schedule-BnMdRADi.js.gz +0 -0
  181. package/dist/web/assets/scheduled-tasks-container-CNCzsjiP.js +2 -0
  182. package/dist/web/assets/scheduled-tasks-container-CNCzsjiP.js.br +0 -0
  183. package/dist/web/assets/scheduled-tasks-container-CNCzsjiP.js.gz +0 -0
  184. package/dist/web/assets/search-highlight-Ct60jVKA.css +1 -0
  185. package/dist/web/assets/search-highlight-Ct60jVKA.css.br +0 -0
  186. package/dist/web/assets/search-highlight-Ct60jVKA.css.gz +0 -0
  187. package/dist/web/assets/search-highlight-Zgr_0184.js +1 -0
  188. package/dist/web/assets/search-highlight-Zgr_0184.js.br +0 -0
  189. package/dist/web/assets/search-highlight-Zgr_0184.js.gz +0 -0
  190. package/dist/web/assets/{settings-personalization-DWBJl_9n.js → settings-personalization-CB_nnUys.js} +1 -1
  191. package/dist/web/assets/settings-personalization-CB_nnUys.js.br +0 -0
  192. package/dist/web/assets/settings-personalization-CB_nnUys.js.gz +0 -0
  193. package/dist/web/assets/{sheet-C26q2z0A.js → sheet-JpH2S7eZ.js} +1 -1
  194. package/dist/web/assets/sheet-JpH2S7eZ.js.br +0 -0
  195. package/dist/web/assets/sheet-JpH2S7eZ.js.gz +0 -0
  196. package/dist/web/assets/{skills-market-container-Ck91dFlS.js → skills-market-container-BgtnwdI7.js} +2 -2
  197. package/dist/web/assets/skills-market-container-BgtnwdI7.js.br +0 -0
  198. package/dist/web/assets/skills-market-container-BgtnwdI7.js.gz +0 -0
  199. package/dist/web/assets/{sliders-horizontal-9U3YhJ-G.js → sliders-horizontal-DzlaBxiO.js} +1 -1
  200. package/dist/web/assets/sliders-horizontal-DzlaBxiO.js.br +2 -0
  201. package/dist/web/assets/sliders-horizontal-DzlaBxiO.js.gz +0 -0
  202. package/dist/web/assets/{sparkles-R_aBU9Dh.js → sparkles-B6-DOZ3B.js} +1 -1
  203. package/dist/web/assets/sparkles-B6-DOZ3B.js.br +0 -0
  204. package/dist/web/assets/sparkles-B6-DOZ3B.js.gz +0 -0
  205. package/dist/web/assets/task-timeline-store-BN41mX3t.js +6 -0
  206. package/dist/web/assets/task-timeline-store-BN41mX3t.js.br +0 -0
  207. package/dist/web/assets/task-timeline-store-BN41mX3t.js.gz +0 -0
  208. package/dist/web/assets/{third-party-marketplace-pane-C0-AbYhM.js → third-party-marketplace-pane-CAI6XIWR.js} +1 -1
  209. package/dist/web/assets/third-party-marketplace-pane-CAI6XIWR.js.br +0 -0
  210. package/dist/web/assets/third-party-marketplace-pane-CAI6XIWR.js.gz +0 -0
  211. package/dist/web/assets/{upload-B6cPQ82X.js → upload-ixXXjamH.js} +1 -1
  212. package/dist/web/assets/upload-ixXXjamH.js.br +0 -0
  213. package/dist/web/assets/upload-ixXXjamH.js.gz +0 -0
  214. package/dist/web/assets/workbench-composer-dKix0zGK.js +8 -0
  215. package/dist/web/assets/workbench-composer-dKix0zGK.js.br +0 -0
  216. package/dist/web/assets/workbench-composer-dKix0zGK.js.gz +0 -0
  217. package/dist/web/assets/workbench-inspector-changes-Bl5nS-_2.js +2 -0
  218. package/dist/web/assets/workbench-inspector-changes-Bl5nS-_2.js.br +0 -0
  219. package/dist/web/assets/workbench-inspector-changes-Bl5nS-_2.js.gz +0 -0
  220. package/dist/web/assets/{workbench-pet-canvas-DWEG98aM.js → workbench-pet-canvas-CnwZR5HG.js} +1 -1
  221. package/dist/web/assets/workbench-pet-canvas-CnwZR5HG.js.br +0 -0
  222. package/dist/web/assets/workbench-pet-canvas-CnwZR5HG.js.gz +0 -0
  223. package/dist/web/assets/workbench-shell-B8lBrj2O.js +3 -0
  224. package/dist/web/assets/workbench-shell-B8lBrj2O.js.br +0 -0
  225. package/dist/web/assets/workbench-shell-B8lBrj2O.js.gz +0 -0
  226. package/dist/web/index.html +8 -8
  227. package/dist/web/index.html.br +0 -0
  228. package/dist/web/index.html.gz +0 -0
  229. package/package.json +1 -1
  230. package/dist/web/assets/agent-settings-panel-B1tpu4pa.js.br +0 -0
  231. package/dist/web/assets/agent-settings-panel-B1tpu4pa.js.gz +0 -0
  232. package/dist/web/assets/background-image-picker-EduK0hbQ.js.br +0 -0
  233. package/dist/web/assets/background-image-picker-EduK0hbQ.js.gz +0 -0
  234. package/dist/web/assets/bing-wallpaper-queries-CSoA0-Sc.js.br +0 -0
  235. package/dist/web/assets/bing-wallpaper-queries-CSoA0-Sc.js.gz +0 -0
  236. package/dist/web/assets/bot-DYpQGfoo.js.br +0 -0
  237. package/dist/web/assets/bot-DYpQGfoo.js.gz +0 -0
  238. package/dist/web/assets/button-group-mF0kqA5r.js.br +0 -0
  239. package/dist/web/assets/button-group-mF0kqA5r.js.gz +0 -0
  240. package/dist/web/assets/chunk-BO2N2NFS-DauaBPLH.js.br +0 -0
  241. package/dist/web/assets/chunk-BO2N2NFS-DauaBPLH.js.gz +0 -0
  242. package/dist/web/assets/commit-settings-panel-D-FwIqBX.js.br +0 -0
  243. package/dist/web/assets/commit-settings-panel-D-FwIqBX.js.gz +0 -0
  244. package/dist/web/assets/context-menu-C-ahEu-O.js.br +0 -0
  245. package/dist/web/assets/context-menu-C-ahEu-O.js.gz +0 -0
  246. package/dist/web/assets/dist-B4No2uWB.js.br +0 -0
  247. package/dist/web/assets/dist-B4No2uWB.js.gz +0 -0
  248. package/dist/web/assets/download-B__AuyX_.js.br +0 -0
  249. package/dist/web/assets/download-B__AuyX_.js.gz +0 -0
  250. package/dist/web/assets/external-link-BHe2GLz2.js.br +0 -0
  251. package/dist/web/assets/external-link-BHe2GLz2.js.gz +0 -0
  252. package/dist/web/assets/file-code-corner-DCQQ8xoR.js +0 -1
  253. package/dist/web/assets/file-code-corner-DCQQ8xoR.js.br +0 -0
  254. package/dist/web/assets/file-code-corner-DCQQ8xoR.js.gz +0 -0
  255. package/dist/web/assets/file-navigation-view-preference-ePb5OplI.js.br +0 -0
  256. package/dist/web/assets/file-navigation-view-preference-ePb5OplI.js.gz +0 -0
  257. package/dist/web/assets/file-pen-line-Ct-6viiE.js.br +0 -0
  258. package/dist/web/assets/file-pen-line-Ct-6viiE.js.gz +0 -0
  259. package/dist/web/assets/file-review-dialog-Cja0XTdV.js +0 -2
  260. package/dist/web/assets/file-review-dialog-Cja0XTdV.js.br +0 -0
  261. package/dist/web/assets/file-review-dialog-Cja0XTdV.js.gz +0 -0
  262. package/dist/web/assets/git-fork-CqXNwC6z.js.br +0 -2
  263. package/dist/web/assets/git-fork-CqXNwC6z.js.gz +0 -0
  264. package/dist/web/assets/git-history-panel-DHcv4JbS.js +0 -2
  265. package/dist/web/assets/git-history-panel-DHcv4JbS.js.br +0 -0
  266. package/dist/web/assets/git-history-panel-DHcv4JbS.js.gz +0 -0
  267. package/dist/web/assets/global-settings-about-CqXSZ-hM.js.br +0 -0
  268. package/dist/web/assets/global-settings-about-CqXSZ-hM.js.gz +0 -0
  269. package/dist/web/assets/global-settings-fields-BufGOubt.js.br +0 -0
  270. package/dist/web/assets/global-settings-fields-BufGOubt.js.gz +0 -0
  271. package/dist/web/assets/global-settings-model-Cos_BezB.js.br +0 -0
  272. package/dist/web/assets/global-settings-model-Cos_BezB.js.gz +0 -0
  273. package/dist/web/assets/global-settings-page-De52Gs2E.js.br +0 -0
  274. package/dist/web/assets/global-settings-page-De52Gs2E.js.gz +0 -0
  275. package/dist/web/assets/global-settings-pets-NSZ_OS9l.js.br +0 -0
  276. package/dist/web/assets/global-settings-pets-NSZ_OS9l.js.gz +0 -0
  277. package/dist/web/assets/highlighted-body-OFNGDK62-BxPDtlWp.js.br +0 -0
  278. package/dist/web/assets/highlighted-body-OFNGDK62-BxPDtlWp.js.gz +0 -0
  279. package/dist/web/assets/index-Bqye0xU0.css +0 -2
  280. package/dist/web/assets/index-Bqye0xU0.css.br +0 -0
  281. package/dist/web/assets/index-Bqye0xU0.css.gz +0 -0
  282. package/dist/web/assets/index-DW-_2zJn.js +0 -4
  283. package/dist/web/assets/index-DW-_2zJn.js.br +0 -0
  284. package/dist/web/assets/index-DW-_2zJn.js.gz +0 -0
  285. package/dist/web/assets/info-BSMz7uRW.js.br +0 -0
  286. package/dist/web/assets/info-BSMz7uRW.js.gz +0 -0
  287. package/dist/web/assets/initial-deps-Bk3GSWTk.js +0 -1
  288. package/dist/web/assets/initial-deps-Bk3GSWTk.js.br +0 -0
  289. package/dist/web/assets/initial-deps-Bk3GSWTk.js.gz +0 -0
  290. package/dist/web/assets/initial-deps-BsEyuMB0.js.br +0 -0
  291. package/dist/web/assets/initial-deps-BsEyuMB0.js.gz +0 -0
  292. package/dist/web/assets/initial-deps-CA0YnOrW.js.br +0 -0
  293. package/dist/web/assets/initial-deps-CA0YnOrW.js.gz +0 -0
  294. package/dist/web/assets/initial-deps-CTprc_pY.js.br +0 -0
  295. package/dist/web/assets/initial-deps-DKh4Kqow.js.br +0 -0
  296. package/dist/web/assets/initial-deps-DKh4Kqow.js.gz +0 -0
  297. package/dist/web/assets/installed-skills-pane-CX_Snugt.js.br +0 -0
  298. package/dist/web/assets/installed-skills-pane-CX_Snugt.js.gz +0 -0
  299. package/dist/web/assets/lazy-message-response-D4BLJUZY.js +0 -2
  300. package/dist/web/assets/lazy-message-response-D4BLJUZY.js.br +0 -0
  301. package/dist/web/assets/lazy-message-response-D4BLJUZY.js.gz +0 -0
  302. package/dist/web/assets/mcp-management-pane-D6nlohla.js.br +0 -0
  303. package/dist/web/assets/mcp-management-pane-D6nlohla.js.gz +0 -0
  304. package/dist/web/assets/mermaid-GHXKKRXX-CYui0uZI.js +0 -1
  305. package/dist/web/assets/mermaid-GHXKKRXX-CYui0uZI.js.br +0 -0
  306. package/dist/web/assets/mermaid-GHXKKRXX-CYui0uZI.js.gz +0 -0
  307. package/dist/web/assets/message-response-BIw_oDni.js.br +0 -0
  308. package/dist/web/assets/message-response-BIw_oDni.js.gz +0 -0
  309. package/dist/web/assets/official-plugins-pane-Yovv5F6v.js.br +0 -0
  310. package/dist/web/assets/official-plugins-pane-Yovv5F6v.js.gz +0 -0
  311. package/dist/web/assets/paw-print-dDU9UzMl.js.br +0 -0
  312. package/dist/web/assets/paw-print-dDU9UzMl.js.gz +0 -0
  313. package/dist/web/assets/personalization-settings-panel-CCUwWuv3.js.br +0 -0
  314. package/dist/web/assets/personalization-settings-panel-CCUwWuv3.js.gz +0 -0
  315. package/dist/web/assets/project-file-popup-page-CXo1NNgu.js.br +0 -0
  316. package/dist/web/assets/project-file-popup-page-CXo1NNgu.js.gz +0 -0
  317. package/dist/web/assets/project-source-panel-CL7T7M4e.js +0 -3
  318. package/dist/web/assets/project-source-panel-CL7T7M4e.js.br +0 -0
  319. package/dist/web/assets/project-source-panel-CL7T7M4e.js.gz +0 -0
  320. package/dist/web/assets/prompt-input-D2ZRw3F_.js.br +0 -0
  321. package/dist/web/assets/prompt-input-D2ZRw3F_.js.gz +0 -0
  322. package/dist/web/assets/prompt-input-controls-C4aMGxRa.js.br +0 -0
  323. package/dist/web/assets/prompt-input-controls-C4aMGxRa.js.gz +0 -0
  324. package/dist/web/assets/scheduled-task-date-time-picker-CoEflzMf.js.br +0 -0
  325. package/dist/web/assets/scheduled-task-date-time-picker-CoEflzMf.js.gz +0 -0
  326. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-Bz9LiWta.js.br +0 -0
  327. package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-Bz9LiWta.js.gz +0 -0
  328. package/dist/web/assets/scheduled-task-schedule-DrAFQ2cQ.js.br +0 -0
  329. package/dist/web/assets/scheduled-task-schedule-DrAFQ2cQ.js.gz +0 -0
  330. package/dist/web/assets/scheduled-tasks-container-CtykVdKs.js +0 -2
  331. package/dist/web/assets/scheduled-tasks-container-CtykVdKs.js.br +0 -0
  332. package/dist/web/assets/scheduled-tasks-container-CtykVdKs.js.gz +0 -0
  333. package/dist/web/assets/settings-personalization-DWBJl_9n.js.br +0 -0
  334. package/dist/web/assets/settings-personalization-DWBJl_9n.js.gz +0 -0
  335. package/dist/web/assets/sheet-C26q2z0A.js.br +0 -0
  336. package/dist/web/assets/sheet-C26q2z0A.js.gz +0 -0
  337. package/dist/web/assets/skills-market-container-Ck91dFlS.js.br +0 -0
  338. package/dist/web/assets/skills-market-container-Ck91dFlS.js.gz +0 -0
  339. package/dist/web/assets/sliders-horizontal-9U3YhJ-G.js.br +0 -0
  340. package/dist/web/assets/sliders-horizontal-9U3YhJ-G.js.gz +0 -0
  341. package/dist/web/assets/sparkles-R_aBU9Dh.js.br +0 -2
  342. package/dist/web/assets/sparkles-R_aBU9Dh.js.gz +0 -0
  343. package/dist/web/assets/third-party-marketplace-pane-C0-AbYhM.js.br +0 -0
  344. package/dist/web/assets/third-party-marketplace-pane-C0-AbYhM.js.gz +0 -0
  345. package/dist/web/assets/upload-B6cPQ82X.js.br +0 -0
  346. package/dist/web/assets/upload-B6cPQ82X.js.gz +0 -0
  347. package/dist/web/assets/workbench-composer-BEYpU0th.js +0 -8
  348. package/dist/web/assets/workbench-composer-BEYpU0th.js.br +0 -0
  349. package/dist/web/assets/workbench-composer-BEYpU0th.js.gz +0 -0
  350. package/dist/web/assets/workbench-inspector-changes-BynCOTzr.js +0 -2
  351. package/dist/web/assets/workbench-inspector-changes-BynCOTzr.js.br +0 -0
  352. package/dist/web/assets/workbench-inspector-changes-BynCOTzr.js.gz +0 -0
  353. package/dist/web/assets/workbench-pet-canvas-DWEG98aM.js.br +0 -0
  354. package/dist/web/assets/workbench-pet-canvas-DWEG98aM.js.gz +0 -0
  355. package/dist/web/assets/workbench-shell-Bn-W1ary.js +0 -8
  356. package/dist/web/assets/workbench-shell-Bn-W1ary.js.br +0 -0
  357. package/dist/web/assets/workbench-shell-Bn-W1ary.js.gz +0 -0
  358. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-file-p~egzauog4-DAfditVv.js → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-file-p~m6x4vffh-DAfditVv.js} +0 -0
  359. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-file-p~egzauog4-DAfditVv.js.br → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-file-p~m6x4vffh-DAfditVv.js.br} +0 -0
  360. /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-file-p~egzauog4-DAfditVv.js.gz → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~project-file-p~m6x4vffh-DAfditVv.js.gz} +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,26 @@
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.22.0] - 2026-09-16
8
+
9
+ ### 新增
10
+
11
+ - 添加任务、历史消息和项目文件的全局搜索,支持结果分页、消息定位与文件预览。
12
+
13
+ ### 修复
14
+
15
+ - 修复 Linux 系统级全局安装因目录权限不足而无法使用内置更新的问题。
16
+
17
+ ## [0.21.1] - 2026-09-15
18
+
19
+ ### 新增
20
+
21
+ - 将未提交变更摘要移至“项目”标签,并支持直接发起审核与提交操作。
22
+
23
+ ### 优化
24
+
25
+ - 默认打开历史任务的“项目”标签并收起聊天 Inspector,同时更新聊天相关文案。
26
+
7
27
  ## [0.21.0] - 2026-09-15
8
28
 
9
29
  ### 新增
package/README.md CHANGED
@@ -43,6 +43,7 @@
43
43
  - Choose the model, reasoning effort, Fast mode, approval behavior, and file access level for each task
44
44
  - Manage installed Skills, official Plugins, MCP servers, and compatible third-party Skills from ClawHub in one extension center
45
45
  - Organize ordered multi-root projects, archive project or temporary tasks, and permanently delete tasks when needed
46
+ - Search tasks, conversation history, and project files globally, then jump to a matching message or preview a file
46
47
  - Inspect, preview, rename, and delete project files; review diffs; manage branches and worktrees; and commit or push changes
47
48
  - Fork a task from an AI response and continue it in a new Git worktree
48
49
  - Add animated workspace pets with separate task activity bubbles and custom PNG or WebP sprite manifests
@@ -116,6 +117,8 @@ Interactive startup and **Settings > About** check for new releases. Built-in up
116
117
  npm install --global @bryanhu/codexly@latest --registry=https://registry.npmmirror.com --prefer-offline || npm install --global @bryanhu/codexly@latest --registry=https://registry.npmjs.org --prefer-offline
117
118
  ```
118
119
 
120
+ If an older Linux release was installed into a system directory with `sudo npm install --global`, manually run the command above with `sudo` once to reach a release that supports elevated updates. Later built-in updates request `sudo` access when needed.
121
+
119
122
  ## Help
120
123
 
121
124
  - [Report an issue](https://github.com/BryanHoo/Codexly/issues)
package/README.zh-CN.md CHANGED
@@ -13,6 +13,7 @@ Codexly 是一个在浏览器中使用 Codex 的本地 AI 编程工作台。它
13
13
  - 为每个任务选择模型、思考量、快速模式、审批方式和文件访问范围
14
14
  - 在扩展中心统一管理已安装 Skills、官方 Plugins、MCP Servers,以及来自 ClawHub 的兼容第三方 Skills
15
15
  - 组织有序的多根项目、归档项目或临时任务,并按需永久删除任务
16
+ - 全局搜索任务、历史消息和项目文件,并定位匹配消息或预览文件
16
17
  - 查看、预览、重命名和删除项目文件,审查差异,管理分支与 worktree,并提交或推送变更
17
18
  - 从 AI 回复处分叉任务,在新的 Git worktree 中继续工作
18
19
  - 添加工作台宠物动画,用独立气泡区分任务活动,并支持自定义 PNG 或 WebP 精灵图清单
@@ -86,6 +87,8 @@ codexly start --lan
86
87
  npm install --global @bryanhu/codexly@latest --registry=https://registry.npmmirror.com --prefer-offline || npm install --global @bryanhu/codexly@latest --registry=https://registry.npmjs.org --prefer-offline
87
88
  ```
88
89
 
90
+ 如果 Linux 上的旧版本通过 `sudo npm install --global` 安装到系统目录,首次升级到支持提权更新的版本时需要手动执行一次上述命令并在前面加上 `sudo`。后续内置更新会在需要时请求 `sudo` 权限。
91
+
89
92
  ## 获取帮助
90
93
 
91
94
  - [问题反馈](https://github.com/BryanHoo/Codexly/issues)
@@ -1,8 +1,8 @@
1
1
  import { createRequire } from 'node:module';
2
- import { value_exports } from './chunk-ZUECHB6L.js';
3
- import { require_pino, require_safe_stable_stringify, CodexProtocolMappingError, CodexProviderConnectionError, RpcConnectionClosedError, RpcProtocolError, RpcResponseError, RpcTimeoutError } from './chunk-AIACWU7L.js';
2
+ import { value_exports } from './chunk-6JWQNFM2.js';
3
+ import { require_pino, require_safe_stable_stringify, CodexProtocolMappingError, CodexProviderConnectionError, RpcConnectionClosedError, RpcProtocolError, RpcResponseError, RpcTimeoutError } from './chunk-NUJPWN62.js';
4
4
  import { WorkbenchPetProviderError, listTaskCatalog, PendingRequestResolutionError, deleteArchivedTasks, queryCompletedTasks, CompletedTasksQueryError, submitTask, TaskSubmissionError, collectQuestionGroups, formatQuestionAnswers, ProjectTodoError, saveProjectTodo } from './chunk-B2673ODM.js';
5
- import { Type, SkillInstallScopeSchema, ScheduledTaskSchema, SubmitTaskResponseSchema, AgentTaskSchema, AsyncQuestionGroupSchema, AnswerAsyncQuestionResultSchema, AgentTurnSchema, DEFAULT_COMMIT_MESSAGE_MODEL, TEMPORARY_TASK_API_PATH, TEMPORARY_TASK_SCOPE_ID, MAX_AGENT_FILE_BYTES, AccessStatusResponseSchema, PairAccessRequestSchema, BingWallpaperCatalogSchema, HealthResponseSchema, AppInfoResponseSchema, AppUpdateProgressResponseSchema, AgentMutationErrorSchema, InstallAppUpdateResponseSchema, InstallAppUpdateRequestSchema, EventStreamMetricsResponseSchema, AgentCapabilitiesSchema, AgentModelPageSchema, AgentGlobalSettingsResponseSchema, AgentGlobalSettingsSchema, MAX_AGENT_IMAGE_BYTES, MAX_AGENT_TEXT_BYTES, GlobalInstructionsSchema, MemorySettingsSchema, AgentPreferencesSchema, SaveGlobalInstructionsSchema, MemorySettingsUpdateSchema, PersonalizationResetSchema, AgentProviderConnectionStatusSchema, StartOfficialProviderLoginResponseSchema, StartOfficialProviderLoginRequestSchema, AgentProviderConnectionMutationResponseSchema, CancelProviderLoginRequestSchema, ConfigureCustomProviderResponseSchema, ConfigureCustomProviderRequestSchema, WorkbenchPetCatalogResponseSchema, WorkbenchPetDownloadResponseSchema, WorkbenchPetDownloadRequestSchema, ProjectPageSchema, HostFileListingSchema, HostFileQuerySchema, ProjectDirectoryListingSchema, ProjectDirectoryQuerySchema, ProjectOpenCapabilitiesResponseSchema, OpenProjectResponseSchema, ProjectRootQuerySchema, OpenProjectRequestSchema, ReorderProjectsResponseSchema, ReorderProjectsRequestSchema, AgentSkillPageSchema, AgentProjectDefaultsResponseSchema, AgentProjectDefaultsSchema, AddProjectResponseSchema, AddProjectRequestSchema, RenameProjectResponseSchema, RenameProjectRequestSchema, RemoveProjectResponseSchema, RemoveProjectRequestSchema, InstalledSkillPageSchema, OfficialPluginPageSchema, OfficialPluginDetailSchema, OfficialPluginInstallResponseSchema, OfficialPluginUninstallResponseSchema, ClawhubSkillPageSchema, ClawhubSkillDetailSchema, ConfiguredMcpServerPageSchema, OpenSkillDirectoryResponseSchema, SetSkillEnabledResponseSchema, SetMcpServerEnabledResponseSchema, SkillInstallResponseSchema, ScheduledTaskPreviewSchema, ScheduledTaskPreviewRequestSchema, ScheduledTaskPageSchema, ScheduledTaskMutationResponseSchema, ScheduledTaskInputSchema, DeleteScheduledTaskResponseSchema, SetScheduledTaskEnabledRequestSchema, AgentTaskPageSchema, UnsubscribeAgentTaskResponseSchema, AgentTaskSnapshotResponseSchema, AgentMcpServerPageSchema, AgentBackgroundTerminalPageSchema, TerminateAgentBackgroundTerminalResponseSchema, PinAgentTaskResponseSchema, PinAgentTaskRequestSchema, RenameAgentTaskResponseSchema, RenameAgentTaskRequestSchema, ArchiveAgentTaskResponseSchema, ArchiveAgentTaskRequestSchema, UnarchiveAgentTaskResponseSchema, UnarchiveAgentTaskRequestSchema, DeleteAgentTaskResponseSchema, DeleteAgentTaskRequestSchema, StartAgentTaskResponseSchema, StartAgentTaskRequestSchema, StartAgentTurnResponseSchema, StartAgentTurnRequestSchema, SteerAgentTurnResponseSchema, SteerAgentTurnRequestSchema, InterruptAgentTurnResponseSchema, InterruptAgentTurnRequestSchema, ResolvePendingRequestResponseSchema, ResolvePendingRequestRequestSchema, SubmitTaskRequestSchema, AsyncQuestionPageSchema, AnswerAsyncQuestionResponseSchema, AnswerAsyncQuestionRequestSchema, DismissAsyncQuestionsRequestSchema, ProjectTodoPageSchema, ProjectTodoResponseSchema, ProjectTodoDraftSchema, SaveProjectTodoRequestSchema, DeleteProjectTodoResponseSchema, DeleteProjectTodoRequestSchema, AgentQueuedSubmissionListSchema, AddAgentQueuedSubmissionResponseSchema, AddAgentQueuedSubmissionRequestSchema, UpdateAgentQueuedSubmissionResponseSchema, UpdateAgentQueuedSubmissionRequestSchema, DeleteAgentQueuedSubmissionResponseSchema, ReorderAgentQueuedSubmissionsResponseSchema, ReorderAgentQueuedSubmissionsRequestSchema, StartAgentQueuedSubmissionResponseSchema, StartAgentQueuedSubmissionRequestSchema, AgentPromptInputSchema, AgentProviderConnectionRecordSchema, MAX_AGENT_IMAGES, MAX_AGENT_IMAGE_TOTAL_BYTES, MAX_AGENT_FILE_TOTAL_BYTES, ProjectGitStatusSchema, ProjectGitStatusQuerySchema, ProjectGitHistoryPageSchema, ProjectGitHistoryQuerySchema, ProjectGitCommitFilesPageSchema, ProjectGitCommitFilesQuerySchema, ProjectGitCommitFileDiffSchema, ProjectGitCommitFileDiffQuerySchema, SwitchProjectBranchRequestSchema, CreateProjectBranchRequestSchema, GenerateCommitMessageResponseSchema, GenerateCommitMessageRequestSchema, CommitProjectChangesResponseSchema, CommitProjectChangesRequestSchema, ProjectFileTreeSchema, ProjectFileTreeQuerySchema, ProjectFileSearchPageSchema, ProjectFileSearchQuerySchema, StopProjectFileSearchResponseSchema, StopProjectFileSearchRequestSchema, ProjectSourceFileQuerySchema, ProjectSourceFileSchema, AgentAttachmentUploadResponseSchema, HostFileKindSchema, ImportHostAttachmentRequestSchema, AgentAttachmentKindSchema, AgentTaskSettingsResponseSchema, AgentTaskSettingsSchema, ReloadAgentMcpServersResponseSchema, ReloadAgentMcpServersRequestSchema, ReviewAgentTaskResponseSchema, ReviewAgentTaskRequestSchema, CompactAgentTaskResponseSchema, CompactAgentTaskRequestSchema, ForkAgentTaskResponseSchema, ForkAgentTaskRequestSchema, UploadAgentFeedbackResponseSchema, UploadAgentFeedbackRequestSchema, DeleteArchivedTasksResponseSchema, DeleteArchivedTasksRequestSchema, AgentTaskCatalogSchema, TaskCatalogQuerySchema, CompletedTasksPageSchema, CompletedTasksQuerySchema, UpdateTaskSettingsAndDefaultsResponseSchema, UpdateTaskSettingsAndDefaultsRequestSchema, NavigableAgentTaskResponseSchema, OpenAgentTaskAttachmentResponseSchema, OpenAgentTaskAttachmentRequestSchema, UpdateAgentGoalResponseSchema, UpdateAgentGoalRequestSchema, ClearAgentGoalResponseSchema, ProjectTodoSchema, AgentMessageAttachmentSchema, ProjectGitWorktreePageSchema, CreateProjectWorktreeResponseSchema, CreateProjectWorktreeRequestSchema, ProjectWorktreeMutationResponseSchema, SwitchProjectWorktreeRequestSchema, RenameProjectFileResponseSchema, RenameProjectFileRequestSchema, DeleteProjectFileResponseSchema, DeleteProjectFileRequestSchema, MAX_EVENT_BATCH_SIZE } from './chunk-X5JZ3VOF.js';
5
+ import { Type, SkillInstallScopeSchema, ScheduledTaskSchema, SubmitTaskResponseSchema, AgentTaskSchema, AsyncQuestionGroupSchema, AnswerAsyncQuestionResultSchema, AgentTurnSchema, DEFAULT_COMMIT_MESSAGE_MODEL, TEMPORARY_TASK_API_PATH, TEMPORARY_TASK_SCOPE_ID, MAX_AGENT_FILE_BYTES, AccessStatusResponseSchema, PairAccessRequestSchema, BingWallpaperCatalogSchema, HealthResponseSchema, AppInfoResponseSchema, AppUpdateProgressResponseSchema, AgentMutationErrorSchema, InstallAppUpdateResponseSchema, InstallAppUpdateRequestSchema, EventStreamMetricsResponseSchema, AgentCapabilitiesSchema, AgentModelPageSchema, AgentGlobalSettingsResponseSchema, AgentGlobalSettingsSchema, MAX_AGENT_IMAGE_BYTES, MAX_AGENT_TEXT_BYTES, GlobalInstructionsSchema, MemorySettingsSchema, AgentPreferencesSchema, SaveGlobalInstructionsSchema, MemorySettingsUpdateSchema, PersonalizationResetSchema, AgentProviderConnectionStatusSchema, StartOfficialProviderLoginResponseSchema, StartOfficialProviderLoginRequestSchema, AgentProviderConnectionMutationResponseSchema, CancelProviderLoginRequestSchema, ConfigureCustomProviderResponseSchema, ConfigureCustomProviderRequestSchema, WorkbenchPetCatalogResponseSchema, WorkbenchPetDownloadResponseSchema, WorkbenchPetDownloadRequestSchema, ProjectPageSchema, HostFileListingSchema, HostFileQuerySchema, ProjectDirectoryListingSchema, ProjectDirectoryQuerySchema, ProjectOpenCapabilitiesResponseSchema, OpenProjectResponseSchema, ProjectRootQuerySchema, OpenProjectRequestSchema, ReorderProjectsResponseSchema, ReorderProjectsRequestSchema, AgentSkillPageSchema, AgentProjectDefaultsResponseSchema, AgentProjectDefaultsSchema, AddProjectResponseSchema, AddProjectRequestSchema, RenameProjectResponseSchema, RenameProjectRequestSchema, RemoveProjectResponseSchema, RemoveProjectRequestSchema, InstalledSkillPageSchema, OfficialPluginPageSchema, OfficialPluginDetailSchema, OfficialPluginInstallResponseSchema, OfficialPluginUninstallResponseSchema, ClawhubSkillPageSchema, ClawhubSkillDetailSchema, ConfiguredMcpServerPageSchema, OpenSkillDirectoryResponseSchema, SetSkillEnabledResponseSchema, SetMcpServerEnabledResponseSchema, SkillInstallResponseSchema, ScheduledTaskPreviewSchema, ScheduledTaskPreviewRequestSchema, ScheduledTaskPageSchema, ScheduledTaskMutationResponseSchema, ScheduledTaskInputSchema, DeleteScheduledTaskResponseSchema, SetScheduledTaskEnabledRequestSchema, AgentTaskPageSchema, UnsubscribeAgentTaskResponseSchema, AgentTaskSnapshotResponseSchema, AgentMcpServerPageSchema, AgentBackgroundTerminalPageSchema, TerminateAgentBackgroundTerminalResponseSchema, PinAgentTaskResponseSchema, PinAgentTaskRequestSchema, RenameAgentTaskResponseSchema, RenameAgentTaskRequestSchema, ArchiveAgentTaskResponseSchema, ArchiveAgentTaskRequestSchema, UnarchiveAgentTaskResponseSchema, UnarchiveAgentTaskRequestSchema, DeleteAgentTaskResponseSchema, DeleteAgentTaskRequestSchema, TaskSearchPageSchema, TaskSearchQuerySchema, SearchOccurrencesPageSchema, SearchOccurrencesQuerySchema, StartAgentTaskResponseSchema, StartAgentTaskRequestSchema, StartAgentTurnResponseSchema, StartAgentTurnRequestSchema, SteerAgentTurnResponseSchema, SteerAgentTurnRequestSchema, InterruptAgentTurnResponseSchema, InterruptAgentTurnRequestSchema, ResolvePendingRequestResponseSchema, ResolvePendingRequestRequestSchema, SubmitTaskRequestSchema, AsyncQuestionPageSchema, AnswerAsyncQuestionResponseSchema, AnswerAsyncQuestionRequestSchema, DismissAsyncQuestionsRequestSchema, ProjectTodoPageSchema, ProjectTodoResponseSchema, ProjectTodoDraftSchema, SaveProjectTodoRequestSchema, DeleteProjectTodoResponseSchema, DeleteProjectTodoRequestSchema, AgentQueuedSubmissionListSchema, AddAgentQueuedSubmissionResponseSchema, AddAgentQueuedSubmissionRequestSchema, UpdateAgentQueuedSubmissionResponseSchema, UpdateAgentQueuedSubmissionRequestSchema, DeleteAgentQueuedSubmissionResponseSchema, ReorderAgentQueuedSubmissionsResponseSchema, ReorderAgentQueuedSubmissionsRequestSchema, StartAgentQueuedSubmissionResponseSchema, StartAgentQueuedSubmissionRequestSchema, AgentPromptInputSchema, AgentProviderConnectionRecordSchema, MAX_AGENT_IMAGES, MAX_AGENT_IMAGE_TOTAL_BYTES, MAX_AGENT_FILE_TOTAL_BYTES, ProjectGitStatusSchema, ProjectGitStatusQuerySchema, ProjectGitHistoryPageSchema, ProjectGitHistoryQuerySchema, ProjectGitCommitFilesPageSchema, ProjectGitCommitFilesQuerySchema, ProjectGitCommitFileDiffSchema, ProjectGitCommitFileDiffQuerySchema, SwitchProjectBranchRequestSchema, CreateProjectBranchRequestSchema, GenerateCommitMessageResponseSchema, GenerateCommitMessageRequestSchema, CommitProjectChangesResponseSchema, CommitProjectChangesRequestSchema, ProjectFileTreeSchema, ProjectFileTreeQuerySchema, ProjectFileSearchPageSchema, ProjectFileSearchQuerySchema, StopProjectFileSearchResponseSchema, StopProjectFileSearchRequestSchema, ProjectSourceFileQuerySchema, ProjectSourceFileSchema, AgentAttachmentUploadResponseSchema, HostFileKindSchema, ImportHostAttachmentRequestSchema, AgentAttachmentKindSchema, AgentTaskSettingsResponseSchema, AgentTaskSettingsSchema, ReloadAgentMcpServersResponseSchema, ReloadAgentMcpServersRequestSchema, ReviewAgentTaskResponseSchema, ReviewAgentTaskRequestSchema, CompactAgentTaskResponseSchema, CompactAgentTaskRequestSchema, ForkAgentTaskResponseSchema, ForkAgentTaskRequestSchema, UploadAgentFeedbackResponseSchema, UploadAgentFeedbackRequestSchema, DeleteArchivedTasksResponseSchema, DeleteArchivedTasksRequestSchema, AgentTaskCatalogSchema, TaskCatalogQuerySchema, CompletedTasksPageSchema, CompletedTasksQuerySchema, UpdateTaskSettingsAndDefaultsResponseSchema, UpdateTaskSettingsAndDefaultsRequestSchema, NavigableAgentTaskResponseSchema, OpenAgentTaskAttachmentResponseSchema, OpenAgentTaskAttachmentRequestSchema, UpdateAgentGoalResponseSchema, UpdateAgentGoalRequestSchema, ClearAgentGoalResponseSchema, ProjectTodoSchema, AgentMessageAttachmentSchema, ProjectGitWorktreePageSchema, CreateProjectWorktreeResponseSchema, CreateProjectWorktreeRequestSchema, ProjectWorktreeMutationResponseSchema, SwitchProjectWorktreeRequestSchema, RenameProjectFileResponseSchema, RenameProjectFileRequestSchema, DeleteProjectFileResponseSchema, DeleteProjectFileRequestSchema, MAX_EVENT_BATCH_SIZE } from './chunk-ZXTTTT25.js';
6
6
  import { __commonJS, __require, __toESM } from './chunk-K6J42667.js';
7
7
  import { Buffer as Buffer$1 } from 'buffer';
8
8
  import { randomBytes, createHash, timingSafeEqual, randomUUID } from 'crypto';
@@ -70155,6 +70155,69 @@ var registerTaskRoutes = (app, context, done) => {
70155
70155
  done();
70156
70156
  };
70157
70157
 
70158
+ // packages/server/src/routes/search-routes.ts
70159
+ var registerSearchRoutes = (app, context, done) => {
70160
+ const { getProjectContext, projectRepository, provider } = context;
70161
+ app.get(
70162
+ "/v1/search/tasks",
70163
+ {
70164
+ schema: {
70165
+ querystring: TaskSearchQuerySchema,
70166
+ response: {
70167
+ 200: TaskSearchPageSchema,
70168
+ 503: ErrorResponseSchema
70169
+ }
70170
+ }
70171
+ },
70172
+ async (request2, reply) => {
70173
+ if (provider.search === void 0) {
70174
+ return reply.code(503).send({
70175
+ code: "GLOBAL_SEARCH_UNAVAILABLE",
70176
+ message: "Global search is unavailable"
70177
+ });
70178
+ }
70179
+ const projects = await projectRepository.list();
70180
+ const scopes = [
70181
+ { id: TEMPORARY_TASK_SCOPE_ID, kind: "temporary" },
70182
+ ...projects.map((project) => ({ id: project.id, kind: "project" }))
70183
+ ];
70184
+ return provider.search.searchTasks(request2.query, scopes);
70185
+ }
70186
+ );
70187
+ app.get(
70188
+ "/v1/projects/:projectId/tasks/:taskId/search-occurrences",
70189
+ {
70190
+ schema: {
70191
+ params: ProjectTaskParamsSchema,
70192
+ querystring: SearchOccurrencesQuerySchema,
70193
+ response: {
70194
+ 200: SearchOccurrencesPageSchema,
70195
+ 404: ErrorResponseSchema,
70196
+ 503: ErrorResponseSchema
70197
+ }
70198
+ }
70199
+ },
70200
+ async (request2, reply) => {
70201
+ const project = await getProjectContext(request2.params.projectId);
70202
+ if (project === void 0) {
70203
+ return reply.code(404).send({ code: "PROJECT_NOT_FOUND", message: "Project not found" });
70204
+ }
70205
+ if (provider.search === void 0) {
70206
+ return reply.code(503).send({
70207
+ code: "GLOBAL_SEARCH_UNAVAILABLE",
70208
+ message: "Global search is unavailable"
70209
+ });
70210
+ }
70211
+ return provider.search.searchTaskOccurrences(
70212
+ request2.params.taskId,
70213
+ request2.query,
70214
+ project.scope
70215
+ );
70216
+ }
70217
+ );
70218
+ done();
70219
+ };
70220
+
70158
70221
  // packages/server/src/routes/turn-routes.ts
70159
70222
  var registerTurnRoutes = (app, context, done) => {
70160
70223
  const {
@@ -73178,6 +73241,7 @@ async function createCodexlyServer(options) {
73178
73241
  await app.register(registerSkillMarketRoutes, routeContext);
73179
73242
  await app.register(registerScheduledTaskRoutes, routeContext);
73180
73243
  await app.register(registerTaskRoutes, routeContext);
73244
+ await app.register(registerSearchRoutes, routeContext);
73181
73245
  await app.register(registerTurnRoutes, routeContext);
73182
73246
  await app.register(registerSubmissionRoutes, routeContext);
73183
73247
  await app.register(registerAsyncQuestionRoutes, routeContext);
@@ -1,5 +1,5 @@
1
1
  import { createRequire } from 'node:module';
2
- import { IsArray, IsDate, IsTypedArray, IsMap, IsSet, IsObject, IsValueType, TypeBoxError, Object as Object$1, Unknown, String, Literal, Union, IsBoolean, IsBigInt, IsNull, IsNumber, IsString, IsSymbol, IsUint8Array, IsUndefined, Kind, type_exports, IsStandardObject, TypeSystemPolicy, format_exports, IsPromise, IsIterator, KeyOfPattern, IsSchema, IsInteger, IsFunction, IsAsyncIterator, Never, HasPropertyKey, IsTemplateLiteralFinite, TemplateLiteralGenerate, IsKind, KeyOfPropertyKeys, IsTransform, TransformKind, IsUndefined2, IndexFromPropertyKeys } from './chunk-X5JZ3VOF.js';
2
+ import { IsArray, IsDate, IsTypedArray, IsMap, IsSet, IsObject, IsValueType, TypeBoxError, Object as Object$1, Unknown, String, Literal, Union, IsBoolean, IsBigInt, IsNull, IsNumber, IsString, IsSymbol, IsUint8Array, IsUndefined, Kind, type_exports, IsStandardObject, TypeSystemPolicy, format_exports, IsPromise, IsIterator, KeyOfPattern, IsSchema, IsInteger, IsFunction, IsAsyncIterator, Never, HasPropertyKey, IsTemplateLiteralFinite, TemplateLiteralGenerate, IsKind, KeyOfPropertyKeys, IsTransform, TransformKind, IsUndefined2, IndexFromPropertyKeys } from './chunk-ZXTTTT25.js';
3
3
  import { __export } from './chunk-K6J42667.js';
4
4
 
5
5
  createRequire(import.meta.url);
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from 'node:module';
2
2
  import { WorkbenchPetProviderError, PendingRequestResolutionError } from './chunk-B2673ODM.js';
3
- import { TEMPORARY_TASK_SCOPE_ID, MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES, isAgentFastModeAvailable, MAX_REALTIME_FILE_CHANGES, MAX_REALTIME_DIFF_BYTES, stripLeadingAgentSkillReferences, MAX_AGENT_HISTORY_IMAGES, MAX_AGENT_TEXT_BYTES } from './chunk-X5JZ3VOF.js';
3
+ import { TEMPORARY_TASK_SCOPE_ID, MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES, isAgentFastModeAvailable, MAX_REALTIME_FILE_CHANGES, MAX_REALTIME_DIFF_BYTES, stripLeadingAgentSkillReferences, MAX_AGENT_HISTORY_IMAGES, MAX_AGENT_TEXT_BYTES } from './chunk-ZXTTTT25.js';
4
4
  import { __commonJS, __require, __toESM } from './chunk-K6J42667.js';
5
5
  import { execFile, spawn } from 'child_process';
6
6
  import { constants, mkdtempSync, rmSync, createReadStream, mkdirSync, unlinkSync, renameSync, writeFileSync, openSync, readSync, closeSync, statSync } from 'fs';
@@ -12824,6 +12824,138 @@ var CodexGitMetadataWatchService = class {
12824
12824
  }
12825
12825
  };
12826
12826
 
12827
+ // packages/provider-codex/src/global-search.ts
12828
+ var SEARCH_PAGE_SIZE = 30;
12829
+ var HISTORY_OCCURRENCE_CONCURRENCY = 4;
12830
+ function validateQuery(value) {
12831
+ const query = value.trim();
12832
+ if (query.length === 0 || Array.from(query).length > 1024) {
12833
+ throw new CodexProtocolMappingError("Global search query is invalid");
12834
+ }
12835
+ return query;
12836
+ }
12837
+ function parsePage(value, label) {
12838
+ const page = expectRecord(value, label);
12839
+ if (!Array.isArray(page["data"])) {
12840
+ throw new CodexProtocolMappingError(`${label} data must be an array`);
12841
+ }
12842
+ const nextCursor = page["nextCursor"];
12843
+ if (nextCursor !== null && typeof nextCursor !== "string") {
12844
+ throw new CodexProtocolMappingError(`${label} nextCursor must be a string or null`);
12845
+ }
12846
+ return { data: page["data"], nextCursor };
12847
+ }
12848
+ function parseOccurrence(value) {
12849
+ const occurrence = expectRecord(value, "thread/searchOccurrences item");
12850
+ const range = expectRecord(
12851
+ occurrence["snippetMatchRange"],
12852
+ "thread/searchOccurrences snippetMatchRange"
12853
+ );
12854
+ const start = range["start"];
12855
+ const end = range["end"];
12856
+ if (!Number.isInteger(start) || !Number.isInteger(end) || Number(start) < 0 || Number(end) < 0) {
12857
+ throw new CodexProtocolMappingError("thread/searchOccurrences range must be non-negative");
12858
+ }
12859
+ const nativeTurnCursor = expectString(
12860
+ occurrence["turnCursor"],
12861
+ "thread/searchOccurrences turnCursor"
12862
+ );
12863
+ const turnCursor = encodeTaskTurnCursor(nativeTurnCursor, void 0);
12864
+ if (turnCursor === null) {
12865
+ throw new CodexProtocolMappingError("thread/searchOccurrences turnCursor must not be null");
12866
+ }
12867
+ return {
12868
+ itemId: expectString(occurrence["itemId"], "thread/searchOccurrences itemId"),
12869
+ snippet: expectString(occurrence["snippet"], "thread/searchOccurrences snippet"),
12870
+ snippetMatchRange: { end: Number(end), start: Number(start) },
12871
+ turnCursor,
12872
+ turnId: expectString(occurrence["turnId"], "thread/searchOccurrences turnId")
12873
+ };
12874
+ }
12875
+ function scopeForThread(thread, scopes) {
12876
+ return scopes.find((scope) => isProjectThread(thread, scope));
12877
+ }
12878
+ async function mapWithConcurrency(values, concurrency, map) {
12879
+ const results = new Array(values.length);
12880
+ const entries = values.entries();
12881
+ await Promise.all(
12882
+ Array.from({ length: Math.min(concurrency, values.length) }, async () => {
12883
+ let entry = entries.next();
12884
+ while (!entry.done) {
12885
+ const [index, value] = entry.value;
12886
+ results[index] = await map(value);
12887
+ entry = entries.next();
12888
+ }
12889
+ })
12890
+ );
12891
+ return results;
12892
+ }
12893
+ var CodexGlobalSearchService = class {
12894
+ constructor(client) {
12895
+ this.client = client;
12896
+ }
12897
+ client;
12898
+ async searchTasks(input, scopes) {
12899
+ const query = validateQuery(input.query);
12900
+ const params = {
12901
+ archived: input.archived,
12902
+ ...input.cursor === void 0 ? {} : { cursor: input.cursor },
12903
+ limit: SEARCH_PAGE_SIZE,
12904
+ searchTerm: query,
12905
+ sortDirection: "desc",
12906
+ sortKey: "recency_at"
12907
+ };
12908
+ const page = parsePage(
12909
+ await this.client.request(
12910
+ input.kind === "tasks" ? "thread/list" : "thread/search",
12911
+ input.kind === "tasks" ? { ...params, modelProviders: [] } : params
12912
+ ),
12913
+ input.kind === "tasks" ? "thread/list response" : "thread/search response"
12914
+ );
12915
+ const mapped = await mapWithConcurrency(
12916
+ page.data.slice(0, SEARCH_PAGE_SIZE),
12917
+ input.kind === "history" ? HISTORY_OCCURRENCE_CONCURRENCY : SEARCH_PAGE_SIZE,
12918
+ async (value) => {
12919
+ const result = input.kind === "tasks" ? { thread: value } : expectRecord(value, "thread/search item");
12920
+ const thread = expectRecord(result["thread"], "global search thread");
12921
+ const scope = scopeForThread(thread, scopes);
12922
+ if (scope === void 0) return void 0;
12923
+ const task = await mapAgentTask(thread, scope);
12924
+ if (input.kind === "tasks") return { snippet: "", task };
12925
+ const occurrences = await this.requestOccurrences(task.id, query, void 0, 1);
12926
+ const occurrence = occurrences.data[0];
12927
+ if (occurrence === void 0) return void 0;
12928
+ return { occurrence, snippet: occurrence.snippet, task };
12929
+ }
12930
+ );
12931
+ return { data: mapped.filter((item) => item !== void 0), nextCursor: page.nextCursor };
12932
+ }
12933
+ async searchTaskOccurrences(taskId, input, scope) {
12934
+ const query = validateQuery(input.query);
12935
+ const response = expectRecord(
12936
+ await this.client.request("thread/read", { includeTurns: false, threadId: taskId }),
12937
+ "thread/read response"
12938
+ );
12939
+ const thread = expectRecord(response["thread"], "thread/read thread");
12940
+ if (!isProjectThread(thread, scope)) {
12941
+ throw new CodexProtocolMappingError("Search task does not belong to the requested project");
12942
+ }
12943
+ return this.requestOccurrences(taskId, query, input.cursor, SEARCH_PAGE_SIZE);
12944
+ }
12945
+ async requestOccurrences(taskId, query, cursor, limit) {
12946
+ const page = parsePage(
12947
+ await this.client.request("thread/searchOccurrences", {
12948
+ ...cursor === void 0 ? {} : { cursor },
12949
+ limit,
12950
+ searchTerm: query,
12951
+ threadId: taskId
12952
+ }),
12953
+ "thread/searchOccurrences response"
12954
+ );
12955
+ return { data: page.data.map(parseOccurrence), nextCursor: page.nextCursor };
12956
+ }
12957
+ };
12958
+
12827
12959
  // packages/provider-codex/src/skill-market-provider.ts
12828
12960
  var OFFICIAL_MARKETPLACES = /* @__PURE__ */ new Set([
12829
12961
  "openai-curated",
@@ -13062,6 +13194,7 @@ async function setCodexMcpServerEnabled(client, name, enabled) {
13062
13194
  var CodexRuntimeProvider = class {
13063
13195
  personalization;
13064
13196
  fileSearch;
13197
+ search;
13065
13198
  #client;
13066
13199
  #taskTitles;
13067
13200
  #logger;
@@ -13090,6 +13223,7 @@ var CodexRuntimeProvider = class {
13090
13223
  this.#logger = logger;
13091
13224
  this.#providerConnection = new CodexProviderConnectionService(client, options);
13092
13225
  this.fileSearch = new CodexFuzzyFileSearchService(client);
13226
+ this.search = new CodexGlobalSearchService(client);
13093
13227
  this.#gitMetadataWatch = new CodexGitMetadataWatchService(client, {
13094
13228
  logger,
13095
13229
  onChanged: (projectId, rootPath) => {