@bryanhu/codexly 0.30.0 → 0.32.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 (522) hide show
  1. package/CHANGELOG.md +374 -4
  2. package/README.md +6 -5
  3. package/README.zh-CN.md +6 -5
  4. package/dist/{chunk-T3TXYERG.js → chunk-DKYA55ID.js} +276 -133
  5. package/dist/{chunk-YEWVIPEB.js → chunk-NVO3WERA.js} +7973 -9176
  6. package/dist/{chunk-W6U4V35J.js → chunk-XAI75BER.js} +28 -1
  7. package/dist/{chunk-MWNYYQDP.js → chunk-XUFOQLNM.js} +1 -1
  8. package/dist/cli.js +5 -5
  9. package/dist/client/index.js +67 -47
  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 +419 -418
  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/{abnfDiagram-N423BO3Z-B5zsWXWU.js → abnfDiagram-N423BO3Z-BNQGyoKW.js} +1 -1
  17. package/dist/web/assets/abnfDiagram-N423BO3Z-BNQGyoKW.js.br +0 -0
  18. package/dist/web/assets/abnfDiagram-N423BO3Z-BNQGyoKW.js.gz +0 -0
  19. package/dist/web/assets/agent-settings-panel-Cw3jdY6t.js +1 -0
  20. package/dist/web/assets/agent-settings-panel-Cw3jdY6t.js.br +0 -0
  21. package/dist/web/assets/agent-settings-panel-Cw3jdY6t.js.gz +0 -0
  22. package/dist/web/assets/{architectureDiagram-T3A2C74G-VAJJokz3.js → architectureDiagram-T3A2C74G-DD3Wv08-.js} +1 -1
  23. package/dist/web/assets/architectureDiagram-T3A2C74G-DD3Wv08-.js.br +0 -0
  24. package/dist/web/assets/architectureDiagram-T3A2C74G-DD3Wv08-.js.gz +0 -0
  25. package/dist/web/assets/{attachments-CuciRoPj.js → attachments-RprEDfKR.js} +1 -1
  26. package/dist/web/assets/attachments-RprEDfKR.js.br +0 -0
  27. package/dist/web/assets/attachments-RprEDfKR.js.gz +0 -0
  28. package/dist/web/assets/{background-image-picker-D4S9VbWK.js → background-image-picker-QYAv3VbU.js} +1 -1
  29. package/dist/web/assets/background-image-picker-QYAv3VbU.js.br +0 -0
  30. package/dist/web/assets/background-image-picker-QYAv3VbU.js.gz +0 -0
  31. package/dist/web/assets/{blockDiagram-VBNYF7ZC-BV5k8m33.js → blockDiagram-VBNYF7ZC-CceBrXFU.js} +1 -1
  32. package/dist/web/assets/blockDiagram-VBNYF7ZC-CceBrXFU.js.br +0 -0
  33. package/dist/web/assets/blockDiagram-VBNYF7ZC-CceBrXFU.js.gz +0 -0
  34. package/dist/web/assets/{c4Diagram-5PPSVZJV-BxAKHU1O.js → c4Diagram-5PPSVZJV-w5l2XNGM.js} +1 -1
  35. package/dist/web/assets/c4Diagram-5PPSVZJV-w5l2XNGM.js.br +0 -0
  36. package/dist/web/assets/c4Diagram-5PPSVZJV-w5l2XNGM.js.gz +0 -0
  37. package/dist/web/assets/channel-DO_0Dk-j.js +1 -0
  38. package/dist/web/assets/channel-DO_0Dk-j.js.br +0 -0
  39. package/dist/web/assets/channel-DO_0Dk-j.js.gz +0 -0
  40. package/dist/web/assets/{chunk-2GRJ4B5K-BylLXQQW.js → chunk-2GRJ4B5K-CEv2MHXP.js} +1 -1
  41. package/dist/web/assets/chunk-2GRJ4B5K-CEv2MHXP.js.br +0 -0
  42. package/dist/web/assets/chunk-2GRJ4B5K-CEv2MHXP.js.gz +0 -0
  43. package/dist/web/assets/{chunk-4I5QYGJK-Sszv2sFO.js → chunk-4I5QYGJK-CFTW6BjH.js} +1 -1
  44. package/dist/web/assets/chunk-4I5QYGJK-CFTW6BjH.js.br +0 -0
  45. package/dist/web/assets/chunk-4I5QYGJK-CFTW6BjH.js.gz +0 -0
  46. package/dist/web/assets/{chunk-5RXB4S5H-fk5DV184.js → chunk-5RXB4S5H-ocsRY-Fj.js} +1 -1
  47. package/dist/web/assets/chunk-5RXB4S5H-ocsRY-Fj.js.br +0 -0
  48. package/dist/web/assets/chunk-5RXB4S5H-ocsRY-Fj.js.gz +0 -0
  49. package/dist/web/assets/{chunk-6Q2QTUOP-BOd4EM_k.js → chunk-6Q2QTUOP-UHk9h1D2.js} +1 -1
  50. package/dist/web/assets/chunk-6Q2QTUOP-UHk9h1D2.js.br +0 -0
  51. package/dist/web/assets/chunk-6Q2QTUOP-UHk9h1D2.js.gz +0 -0
  52. package/dist/web/assets/{chunk-7Z6QIM7H-KnmPl6Ej.js → chunk-7Z6QIM7H-EcjbjQJl.js} +1 -1
  53. package/dist/web/assets/chunk-7Z6QIM7H-EcjbjQJl.js.br +0 -0
  54. package/dist/web/assets/chunk-7Z6QIM7H-EcjbjQJl.js.gz +0 -0
  55. package/dist/web/assets/{chunk-GF5L2VYU-4S3VMyhe.js → chunk-GF5L2VYU-Cc92G1zw.js} +1 -1
  56. package/dist/web/assets/chunk-GF5L2VYU-Cc92G1zw.js.br +0 -0
  57. package/dist/web/assets/chunk-GF5L2VYU-Cc92G1zw.js.gz +0 -0
  58. package/dist/web/assets/{chunk-I66GZJ75-Cv1OO8mI.js → chunk-I66GZJ75-DQ6xf6w7.js} +1 -1
  59. package/dist/web/assets/chunk-I66GZJ75-DQ6xf6w7.js.br +0 -0
  60. package/dist/web/assets/{chunk-I66GZJ75-Cv1OO8mI.js.gz → chunk-I66GZJ75-DQ6xf6w7.js.gz} +0 -0
  61. package/dist/web/assets/{chunk-JQJVKLGR-BwAdww_a.js → chunk-JQJVKLGR-DlZkeUMZ.js} +1 -1
  62. package/dist/web/assets/chunk-JQJVKLGR-DlZkeUMZ.js.br +0 -0
  63. package/dist/web/assets/chunk-JQJVKLGR-DlZkeUMZ.js.gz +0 -0
  64. package/dist/web/assets/{chunk-KBJHAD2P-BJ17RizB.js → chunk-KBJHAD2P-B3r655RL.js} +1 -1
  65. package/dist/web/assets/chunk-KBJHAD2P-B3r655RL.js.br +0 -0
  66. package/dist/web/assets/chunk-KBJHAD2P-B3r655RL.js.gz +0 -0
  67. package/dist/web/assets/{chunk-NSK5VX7P-YD4zvQrY.js → chunk-NSK5VX7P-CWtmfyNT.js} +1 -1
  68. package/dist/web/assets/chunk-NSK5VX7P-CWtmfyNT.js.br +0 -0
  69. package/dist/web/assets/chunk-NSK5VX7P-CWtmfyNT.js.gz +0 -0
  70. package/dist/web/assets/{chunk-QR6OTTB3-B4Vn8un2.js → chunk-QR6OTTB3-glA5PGr7.js} +1 -1
  71. package/dist/web/assets/chunk-QR6OTTB3-glA5PGr7.js.br +0 -0
  72. package/dist/web/assets/chunk-QR6OTTB3-glA5PGr7.js.gz +0 -0
  73. package/dist/web/assets/{chunk-UBXNYLIW-C_5U1nW_.js → chunk-UBXNYLIW-CMSFSmVU.js} +1 -1
  74. package/dist/web/assets/chunk-UBXNYLIW-CMSFSmVU.js.br +0 -0
  75. package/dist/web/assets/chunk-UBXNYLIW-CMSFSmVU.js.gz +0 -0
  76. package/dist/web/assets/{chunk-W5SLKNZC-Cg_GuHYA.js → chunk-W5SLKNZC-BJLdBBKL.js} +1 -1
  77. package/dist/web/assets/chunk-W5SLKNZC-BJLdBBKL.js.br +0 -0
  78. package/dist/web/assets/chunk-W5SLKNZC-BJLdBBKL.js.gz +0 -0
  79. package/dist/web/assets/{chunk-WRU74C26-zXtZrpuc.js → chunk-WRU74C26-COKHzxBn.js} +1 -1
  80. package/dist/web/assets/chunk-WRU74C26-COKHzxBn.js.br +0 -0
  81. package/dist/web/assets/chunk-WRU74C26-COKHzxBn.js.gz +0 -0
  82. package/dist/web/assets/classDiagram-JCYQIIEL-iOFL-bsh.js +1 -0
  83. package/dist/web/assets/classDiagram-JCYQIIEL-iOFL-bsh.js.br +0 -0
  84. package/dist/web/assets/classDiagram-JCYQIIEL-iOFL-bsh.js.gz +0 -0
  85. package/dist/web/assets/classDiagram-v2-OCEON4UE-iOFL-bsh.js +1 -0
  86. package/dist/web/assets/classDiagram-v2-OCEON4UE-iOFL-bsh.js.br +0 -0
  87. package/dist/web/assets/classDiagram-v2-OCEON4UE-iOFL-bsh.js.gz +0 -0
  88. package/dist/web/assets/{code-highlighter-BjWXy_Iw.js → code-highlighter-DgU_0QxC.js} +1 -1
  89. package/dist/web/assets/code-highlighter-DgU_0QxC.js.br +0 -0
  90. package/dist/web/assets/code-highlighter-DgU_0QxC.js.gz +0 -0
  91. package/dist/web/assets/{commit-settings-panel-a9GtBcyN.js → commit-settings-panel-DNYXLonO.js} +1 -1
  92. package/dist/web/assets/commit-settings-panel-DNYXLonO.js.br +0 -0
  93. package/dist/web/assets/commit-settings-panel-DNYXLonO.js.gz +0 -0
  94. package/dist/web/assets/{cynefinDiagram-MW4NZA55-Ds3L2HYC.js → cynefinDiagram-MW4NZA55-BrF5N2I3.js} +1 -1
  95. package/dist/web/assets/cynefinDiagram-MW4NZA55-BrF5N2I3.js.br +0 -0
  96. package/dist/web/assets/cynefinDiagram-MW4NZA55-BrF5N2I3.js.gz +0 -0
  97. package/dist/web/assets/{dagre-VZM6K2ZE-DPjpFaaI.js → dagre-VZM6K2ZE-BJMLqNJh.js} +1 -1
  98. package/dist/web/assets/dagre-VZM6K2ZE-BJMLqNJh.js.br +0 -0
  99. package/dist/web/assets/dagre-VZM6K2ZE-BJMLqNJh.js.gz +0 -0
  100. package/dist/web/assets/{diagram-7IWD3JNH-oAuqSBBd.js → diagram-7IWD3JNH-ifv8VJJc.js} +1 -1
  101. package/dist/web/assets/diagram-7IWD3JNH-ifv8VJJc.js.br +0 -0
  102. package/dist/web/assets/diagram-7IWD3JNH-ifv8VJJc.js.gz +0 -0
  103. package/dist/web/assets/{diagram-B4RE2ZJO-DutGwDiG.js → diagram-B4RE2ZJO-Ct90H1dH.js} +1 -1
  104. package/dist/web/assets/diagram-B4RE2ZJO-Ct90H1dH.js.br +0 -0
  105. package/dist/web/assets/diagram-B4RE2ZJO-Ct90H1dH.js.gz +0 -0
  106. package/dist/web/assets/{diagram-LBJQPF4R-BTr0W5cj.js → diagram-LBJQPF4R-CdIe_mMk.js} +1 -1
  107. package/dist/web/assets/diagram-LBJQPF4R-CdIe_mMk.js.br +0 -0
  108. package/dist/web/assets/diagram-LBJQPF4R-CdIe_mMk.js.gz +0 -0
  109. package/dist/web/assets/{diagram-Q27KOJAE-Xmz7kPoV.js → diagram-Q27KOJAE-CK_HN_bO.js} +1 -1
  110. package/dist/web/assets/diagram-Q27KOJAE-CK_HN_bO.js.br +0 -0
  111. package/dist/web/assets/diagram-Q27KOJAE-CK_HN_bO.js.gz +0 -0
  112. package/dist/web/assets/{diagram-UB23O5K3-Ccoz8RvZ.js → diagram-UB23O5K3-Bq_WN7-1.js} +1 -1
  113. package/dist/web/assets/diagram-UB23O5K3-Bq_WN7-1.js.br +0 -0
  114. package/dist/web/assets/diagram-UB23O5K3-Bq_WN7-1.js.gz +0 -0
  115. package/dist/web/assets/{dist-XXjZG1D0.js → dist-CluNskN2.js} +1 -1
  116. package/dist/web/assets/dist-CluNskN2.js.br +0 -0
  117. package/dist/web/assets/dist-CluNskN2.js.gz +0 -0
  118. package/dist/web/assets/{ebnfDiagram-BXEA7PRR-XLCtKL91.js → ebnfDiagram-BXEA7PRR-aHZ7rwz9.js} +1 -1
  119. package/dist/web/assets/ebnfDiagram-BXEA7PRR-aHZ7rwz9.js.br +0 -0
  120. package/dist/web/assets/ebnfDiagram-BXEA7PRR-aHZ7rwz9.js.gz +0 -0
  121. package/dist/web/assets/{erDiagram-JOGREHBK-S2CHNYGV.js → erDiagram-JOGREHBK-BuinP8ud.js} +1 -1
  122. package/dist/web/assets/erDiagram-JOGREHBK-BuinP8ud.js.br +0 -0
  123. package/dist/web/assets/erDiagram-JOGREHBK-BuinP8ud.js.gz +0 -0
  124. package/dist/web/assets/{file-review-dialog-F6jB7Qb_.js → file-review-dialog-CT_Gw1pV.js} +2 -2
  125. package/dist/web/assets/file-review-dialog-CT_Gw1pV.js.br +0 -0
  126. package/dist/web/assets/file-review-dialog-CT_Gw1pV.js.gz +0 -0
  127. package/dist/web/assets/flowDiagram-UKHOOZJN-CshMgdUI.js +1 -0
  128. package/dist/web/assets/flowDiagram-UKHOOZJN-CshMgdUI.js.br +0 -0
  129. package/dist/web/assets/flowDiagram-UKHOOZJN-CshMgdUI.js.gz +0 -0
  130. package/dist/web/assets/{ganttDiagram-PKOTCBZU-BdtSBPJo.js → ganttDiagram-PKOTCBZU-DDBacU-N.js} +1 -1
  131. package/dist/web/assets/ganttDiagram-PKOTCBZU-DDBacU-N.js.br +0 -0
  132. package/dist/web/assets/ganttDiagram-PKOTCBZU-DDBacU-N.js.gz +0 -0
  133. package/dist/web/assets/{git-commit-review-BT1DisdC.js → git-commit-review-Dkpi8Sy-.js} +2 -2
  134. package/dist/web/assets/git-commit-review-Dkpi8Sy-.js.br +0 -0
  135. package/dist/web/assets/git-commit-review-Dkpi8Sy-.js.gz +0 -0
  136. package/dist/web/assets/{git-history-panel-D4wJqH0T.js → git-history-panel-DO8EvkcX.js} +1 -1
  137. package/dist/web/assets/git-history-panel-DO8EvkcX.js.br +0 -0
  138. package/dist/web/assets/git-history-panel-DO8EvkcX.js.gz +0 -0
  139. package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-B22e8CZo.js → gitGraphDiagram-DS77QQ5N-CuMvIZdK.js} +1 -1
  140. package/dist/web/assets/gitGraphDiagram-DS77QQ5N-CuMvIZdK.js.br +0 -0
  141. package/dist/web/assets/gitGraphDiagram-DS77QQ5N-CuMvIZdK.js.gz +0 -0
  142. package/dist/web/assets/global-search-dialog-dR0YZnzP.js +2 -0
  143. package/dist/web/assets/global-search-dialog-dR0YZnzP.js.br +0 -0
  144. package/dist/web/assets/global-search-dialog-dR0YZnzP.js.gz +0 -0
  145. package/dist/web/assets/{global-settings-about-DF9t5LPK.js → global-settings-about-D9Yo5hN3.js} +1 -1
  146. package/dist/web/assets/global-settings-about-D9Yo5hN3.js.br +0 -0
  147. package/dist/web/assets/global-settings-about-D9Yo5hN3.js.gz +0 -0
  148. package/dist/web/assets/global-settings-page-CFL-9PhV.js +2 -0
  149. package/dist/web/assets/global-settings-page-CFL-9PhV.js.br +0 -0
  150. package/dist/web/assets/global-settings-page-CFL-9PhV.js.gz +0 -0
  151. package/dist/web/assets/{global-settings-pets-D8Grr4dJ.js → global-settings-pets-CuoaZxtE.js} +1 -1
  152. package/dist/web/assets/global-settings-pets-CuoaZxtE.js.br +0 -0
  153. package/dist/web/assets/global-settings-pets-CuoaZxtE.js.gz +0 -0
  154. package/dist/web/assets/{highlighted-body-OFNGDK62-T0waXgH6.js → highlighted-body-OFNGDK62-CekJ_So6.js} +1 -1
  155. package/dist/web/assets/highlighted-body-OFNGDK62-CekJ_So6.js.br +0 -0
  156. package/dist/web/assets/highlighted-body-OFNGDK62-CekJ_So6.js.gz +0 -0
  157. package/dist/web/assets/{history-task-timeline-BLiCPMY2.js → history-task-timeline-BcOpE-cC.js} +1 -1
  158. package/dist/web/assets/history-task-timeline-BcOpE-cC.js.br +0 -0
  159. package/dist/web/assets/history-task-timeline-BcOpE-cC.js.gz +0 -0
  160. package/dist/web/assets/{image-preview-DHojYYCu.js → image-preview-CgTdDcyJ.js} +2 -2
  161. package/dist/web/assets/image-preview-CgTdDcyJ.js.br +0 -0
  162. package/dist/web/assets/image-preview-CgTdDcyJ.js.gz +0 -0
  163. package/dist/web/assets/{image-preview-content-bIMPrgXt.js → image-preview-content-BU-oy7b2.js} +2 -2
  164. package/dist/web/assets/image-preview-content-BU-oy7b2.js.br +0 -0
  165. package/dist/web/assets/image-preview-content-BU-oy7b2.js.gz +0 -0
  166. package/dist/web/assets/index-CRdM3Dna.js +4 -0
  167. package/dist/web/assets/index-CRdM3Dna.js.br +0 -0
  168. package/dist/web/assets/index-CRdM3Dna.js.gz +0 -0
  169. package/dist/web/assets/index-DmDmJ9SS.css +2 -0
  170. package/dist/web/assets/index-DmDmJ9SS.css.br +0 -0
  171. package/dist/web/assets/index-DmDmJ9SS.css.gz +0 -0
  172. package/dist/web/assets/{infoDiagram-6WML65LV-8JSDIKEQ.js → infoDiagram-6WML65LV-DXj_UITp.js} +1 -1
  173. package/dist/web/assets/infoDiagram-6WML65LV-DXj_UITp.js.br +0 -0
  174. package/dist/web/assets/infoDiagram-6WML65LV-DXj_UITp.js.gz +0 -0
  175. package/dist/web/assets/{initial-deps-BvCty1IU.js → initial-deps-BpbvK27t.js} +1 -1
  176. package/dist/web/assets/initial-deps-BpbvK27t.js.br +0 -0
  177. package/dist/web/assets/{initial-deps-BvCty1IU.js.gz → initial-deps-BpbvK27t.js.gz} +0 -0
  178. package/dist/web/assets/initial-deps-C15hrUZ_.js +1 -0
  179. package/dist/web/assets/initial-deps-C15hrUZ_.js.br +0 -0
  180. package/dist/web/assets/initial-deps-C15hrUZ_.js.gz +0 -0
  181. package/dist/web/assets/{installed-skills-pane-Bnwd2-z8.js → installed-skills-pane-CARabzjL.js} +1 -1
  182. package/dist/web/assets/installed-skills-pane-CARabzjL.js.br +0 -0
  183. package/dist/web/assets/installed-skills-pane-CARabzjL.js.gz +0 -0
  184. package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-BBsZ0aSy.js → ishikawaDiagram-WSZJBQD7-DhOryo-F.js} +1 -1
  185. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-DhOryo-F.js.br +0 -0
  186. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-DhOryo-F.js.gz +0 -0
  187. package/dist/web/assets/{journeyDiagram-NVQOT4AX-CdhNlHim.js → journeyDiagram-NVQOT4AX-DQo3-f9r.js} +1 -1
  188. package/dist/web/assets/journeyDiagram-NVQOT4AX-DQo3-f9r.js.br +0 -0
  189. package/dist/web/assets/journeyDiagram-NVQOT4AX-DQo3-f9r.js.gz +0 -0
  190. package/dist/web/assets/{kanban-definition-27J2QSJJ-DUC5stHg.js → kanban-definition-27J2QSJJ-CFbVSWMX.js} +1 -1
  191. package/dist/web/assets/kanban-definition-27J2QSJJ-CFbVSWMX.js.br +0 -0
  192. package/dist/web/assets/kanban-definition-27J2QSJJ-CFbVSWMX.js.gz +0 -0
  193. package/dist/web/assets/katex-CqLmZ2j0.js +257 -0
  194. package/dist/web/assets/katex-CqLmZ2j0.js.br +0 -0
  195. package/dist/web/assets/katex-CqLmZ2j0.js.gz +0 -0
  196. package/dist/web/assets/{lazy-message-response-CgZbm6_f.js → lazy-message-response-CfjbPZ5J.js} +2 -2
  197. package/dist/web/assets/lazy-message-response-CfjbPZ5J.js.br +0 -0
  198. package/dist/web/assets/lazy-message-response-CfjbPZ5J.js.gz +0 -0
  199. package/dist/web/assets/{line-CkOY0j4D.js → line-CxzJiGLl.js} +1 -1
  200. package/dist/web/assets/line-CxzJiGLl.js.br +0 -0
  201. package/dist/web/assets/line-CxzJiGLl.js.gz +0 -0
  202. package/dist/web/assets/{mcp-management-pane-BwR_barH.js → mcp-management-pane-R_czmUhH.js} +1 -1
  203. package/dist/web/assets/mcp-management-pane-R_czmUhH.js.br +0 -0
  204. package/dist/web/assets/mcp-management-pane-R_czmUhH.js.gz +0 -0
  205. package/dist/web/assets/mermaid-GHXKKRXX-CzXsAmTg.js +1 -0
  206. package/dist/web/assets/mermaid-GHXKKRXX-CzXsAmTg.js.br +1 -0
  207. package/dist/web/assets/mermaid-GHXKKRXX-CzXsAmTg.js.gz +0 -0
  208. package/dist/web/assets/{message-response-BuAZphla.js → message-response-BFFFyTC8.js} +6 -6
  209. package/dist/web/assets/message-response-BFFFyTC8.js.br +0 -0
  210. package/dist/web/assets/message-response-BFFFyTC8.js.gz +0 -0
  211. package/dist/web/assets/{mindmap-definition-FAOFIHXS-DGzAA5ft.js → mindmap-definition-FAOFIHXS-CPvet4ko.js} +1 -1
  212. package/dist/web/assets/mindmap-definition-FAOFIHXS-CPvet4ko.js.br +0 -0
  213. package/dist/web/assets/mindmap-definition-FAOFIHXS-CPvet4ko.js.gz +0 -0
  214. package/dist/web/assets/official-plugins-pane-8dU5tD5j.js +1 -0
  215. package/dist/web/assets/official-plugins-pane-8dU5tD5j.js.br +0 -0
  216. package/dist/web/assets/official-plugins-pane-8dU5tD5j.js.gz +0 -0
  217. package/dist/web/assets/{patch-diff-viewer-BigjXoO6.js → patch-diff-viewer-dwnWdpuh.js} +3 -3
  218. package/dist/web/assets/patch-diff-viewer-dwnWdpuh.js.br +0 -0
  219. package/dist/web/assets/patch-diff-viewer-dwnWdpuh.js.gz +0 -0
  220. package/dist/web/assets/{pegDiagram-VL7TDLO6-BfAVCl7E.js → pegDiagram-VL7TDLO6-g_Tl-OvY.js} +1 -1
  221. package/dist/web/assets/pegDiagram-VL7TDLO6-g_Tl-OvY.js.br +0 -0
  222. package/dist/web/assets/pegDiagram-VL7TDLO6-g_Tl-OvY.js.gz +0 -0
  223. package/dist/web/assets/{personalization-settings-panel-D-Gd--Rl.js → personalization-settings-panel-BNtf7M02.js} +1 -1
  224. package/dist/web/assets/personalization-settings-panel-BNtf7M02.js.br +0 -0
  225. package/dist/web/assets/personalization-settings-panel-BNtf7M02.js.gz +0 -0
  226. package/dist/web/assets/{pieDiagram-7S7Q4E2Y-kgcNar0g.js → pieDiagram-7S7Q4E2Y-D5nL0YX8.js} +1 -1
  227. package/dist/web/assets/pieDiagram-7S7Q4E2Y-D5nL0YX8.js.br +0 -0
  228. package/dist/web/assets/pieDiagram-7S7Q4E2Y-D5nL0YX8.js.gz +0 -0
  229. package/dist/web/assets/{project-file-popup-page-DJCEoy22.js → project-file-popup-page-CAu_h4yX.js} +1 -1
  230. package/dist/web/assets/project-file-popup-page-CAu_h4yX.js.br +0 -0
  231. package/dist/web/assets/project-file-popup-page-CAu_h4yX.js.gz +0 -0
  232. package/dist/web/assets/project-source-panel-BxdWhG1a.js +3 -0
  233. package/dist/web/assets/project-source-panel-BxdWhG1a.js.br +0 -0
  234. package/dist/web/assets/project-source-panel-BxdWhG1a.js.gz +0 -0
  235. package/dist/web/assets/{prompt-input-BDkiLB2S.js → prompt-input-FmjDMq6f.js} +1 -1
  236. package/dist/web/assets/prompt-input-FmjDMq6f.js.br +0 -0
  237. package/dist/web/assets/prompt-input-FmjDMq6f.js.gz +0 -0
  238. package/dist/web/assets/{prompt-reference-token-_srKof11.js → prompt-reference-token-0nfC9-R_.js} +1 -1
  239. package/dist/web/assets/prompt-reference-token-0nfC9-R_.js.br +0 -0
  240. package/dist/web/assets/prompt-reference-token-0nfC9-R_.js.gz +0 -0
  241. package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-BYWpo7rG.js → quadrantDiagram-CIZ2JOQS-B2fgIvk_.js} +1 -1
  242. package/dist/web/assets/quadrantDiagram-CIZ2JOQS-B2fgIvk_.js.br +0 -0
  243. package/dist/web/assets/quadrantDiagram-CIZ2JOQS-B2fgIvk_.js.gz +0 -0
  244. package/dist/web/assets/{railroadDiagram-AXF67PYL-CmHkSqa8.js → railroadDiagram-AXF67PYL-G_Sn9seM.js} +1 -1
  245. package/dist/web/assets/railroadDiagram-AXF67PYL-G_Sn9seM.js.br +0 -0
  246. package/dist/web/assets/railroadDiagram-AXF67PYL-G_Sn9seM.js.gz +0 -0
  247. package/dist/web/assets/{requirementDiagram-LRYGKXZP-I035gQYY.js → requirementDiagram-LRYGKXZP-B2dOYlbZ.js} +1 -1
  248. package/dist/web/assets/requirementDiagram-LRYGKXZP-B2dOYlbZ.js.br +0 -0
  249. package/dist/web/assets/requirementDiagram-LRYGKXZP-B2dOYlbZ.js.gz +0 -0
  250. package/dist/web/assets/{sankeyDiagram-W5VNT64P-B9EFX3Mg.js → sankeyDiagram-W5VNT64P-zjYX_iXE.js} +1 -1
  251. package/dist/web/assets/sankeyDiagram-W5VNT64P-zjYX_iXE.js.br +0 -0
  252. package/dist/web/assets/sankeyDiagram-W5VNT64P-zjYX_iXE.js.gz +0 -0
  253. package/dist/web/assets/{scheduled-task-date-time-picker-BCFLWNkx.js → scheduled-task-date-time-picker-wn0zkIRE.js} +1 -1
  254. package/dist/web/assets/scheduled-task-date-time-picker-wn0zkIRE.js.br +0 -0
  255. package/dist/web/assets/scheduled-task-date-time-picker-wn0zkIRE.js.gz +0 -0
  256. package/dist/web/assets/scheduled-tasks-container-D7FxT79y.js +2 -0
  257. package/dist/web/assets/scheduled-tasks-container-D7FxT79y.js.br +0 -0
  258. package/dist/web/assets/scheduled-tasks-container-D7FxT79y.js.gz +0 -0
  259. package/dist/web/assets/{sequenceDiagram-SI44F4Z6-BomGpYgp.js → sequenceDiagram-SI44F4Z6-Ct0L9UQM.js} +1 -1
  260. package/dist/web/assets/sequenceDiagram-SI44F4Z6-Ct0L9UQM.js.br +0 -0
  261. package/dist/web/assets/sequenceDiagram-SI44F4Z6-Ct0L9UQM.js.gz +0 -0
  262. package/dist/web/assets/sheet-D_ZzYs2j.js +1 -0
  263. package/dist/web/assets/sheet-D_ZzYs2j.js.br +0 -0
  264. package/dist/web/assets/sheet-D_ZzYs2j.js.gz +0 -0
  265. package/dist/web/assets/{shiki-bundle-DirQN6eN.js → shiki-bundle-B4NQo3nh.js} +1 -1
  266. package/dist/web/assets/shiki-bundle-B4NQo3nh.js.br +1 -0
  267. package/dist/web/assets/shiki-bundle-B4NQo3nh.js.gz +0 -0
  268. package/dist/web/assets/{skills-market-container-Dra_SRsM.js → skills-market-container-Bg6Ve87y.js} +2 -2
  269. package/dist/web/assets/skills-market-container-Bg6Ve87y.js.br +0 -0
  270. package/dist/web/assets/skills-market-container-Bg6Ve87y.js.gz +0 -0
  271. package/dist/web/assets/{stateDiagram-OKZ733FA-C5gL7nOO.js → stateDiagram-OKZ733FA-CLwGaibs.js} +1 -1
  272. package/dist/web/assets/stateDiagram-OKZ733FA-CLwGaibs.js.br +0 -0
  273. package/dist/web/assets/stateDiagram-OKZ733FA-CLwGaibs.js.gz +0 -0
  274. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DYLv6NAE.js +1 -0
  275. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DYLv6NAE.js.br +0 -0
  276. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DYLv6NAE.js.gz +0 -0
  277. package/dist/web/assets/{swimlanes-SLNWSIFB-CrO5FxiS.js → swimlanes-SLNWSIFB-BY6G7QkV.js} +1 -1
  278. package/dist/web/assets/swimlanes-SLNWSIFB-BY6G7QkV.js.br +0 -0
  279. package/dist/web/assets/swimlanes-SLNWSIFB-BY6G7QkV.js.gz +0 -0
  280. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BRGcuUsp.js +8 -0
  281. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BRGcuUsp.js.br +0 -0
  282. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BRGcuUsp.js.gz +0 -0
  283. package/dist/web/assets/{third-party-marketplace-pane-D98JmIr4.js → third-party-marketplace-pane-DzkU9dvA.js} +1 -1
  284. package/dist/web/assets/third-party-marketplace-pane-DzkU9dvA.js.br +0 -0
  285. package/dist/web/assets/third-party-marketplace-pane-DzkU9dvA.js.gz +0 -0
  286. package/dist/web/assets/{timeline-definition-Z64GVDOM-DJi8dcVA.js → timeline-definition-Z64GVDOM-D9FegKpP.js} +1 -1
  287. package/dist/web/assets/timeline-definition-Z64GVDOM-D9FegKpP.js.br +0 -0
  288. package/dist/web/assets/timeline-definition-Z64GVDOM-D9FegKpP.js.gz +0 -0
  289. package/dist/web/assets/{vennDiagram-T6HMQDX7-CrKTcaED.js → vennDiagram-T6HMQDX7-CyrAMhsL.js} +1 -1
  290. package/dist/web/assets/vennDiagram-T6HMQDX7-CyrAMhsL.js.br +0 -0
  291. package/dist/web/assets/vennDiagram-T6HMQDX7-CyrAMhsL.js.gz +0 -0
  292. package/dist/web/assets/{wardleyDiagram-T6FBY63Y-bLfKjN8C.js → wardleyDiagram-T6FBY63Y-BLPI0lKI.js} +1 -1
  293. package/dist/web/assets/wardleyDiagram-T6FBY63Y-BLPI0lKI.js.br +0 -0
  294. package/dist/web/assets/wardleyDiagram-T6FBY63Y-BLPI0lKI.js.gz +0 -0
  295. package/dist/web/assets/workbench-inspector-changes-CFspNW80.js +2 -0
  296. package/dist/web/assets/workbench-inspector-changes-CFspNW80.js.br +0 -0
  297. package/dist/web/assets/workbench-inspector-changes-CFspNW80.js.gz +0 -0
  298. package/dist/web/assets/{workbench-pet-canvas-UNLOz4Hj.js → workbench-pet-canvas-vCtdeug-.js} +1 -1
  299. package/dist/web/assets/workbench-pet-canvas-vCtdeug-.js.br +0 -0
  300. package/dist/web/assets/workbench-pet-canvas-vCtdeug-.js.gz +0 -0
  301. package/dist/web/assets/workbench-shell-C-jjSlml.js +16 -0
  302. package/dist/web/assets/workbench-shell-C-jjSlml.js.br +0 -0
  303. package/dist/web/assets/workbench-shell-C-jjSlml.js.gz +0 -0
  304. package/dist/web/assets/{xychartDiagram-ELKLHX3M-Cx1crMso.js → xychartDiagram-ELKLHX3M-y1HcEugd.js} +1 -1
  305. package/dist/web/assets/xychartDiagram-ELKLHX3M-y1HcEugd.js.br +0 -0
  306. package/dist/web/assets/xychartDiagram-ELKLHX3M-y1HcEugd.js.gz +0 -0
  307. package/dist/web/index.html +4 -4
  308. package/dist/web/index.html.br +0 -0
  309. package/dist/web/index.html.gz +0 -0
  310. package/package.json +2 -2
  311. package/dist/web/assets/abnfDiagram-N423BO3Z-B5zsWXWU.js.br +0 -0
  312. package/dist/web/assets/abnfDiagram-N423BO3Z-B5zsWXWU.js.gz +0 -0
  313. package/dist/web/assets/agent-settings-panel-D0fbmF3P.js +0 -1
  314. package/dist/web/assets/agent-settings-panel-D0fbmF3P.js.br +0 -0
  315. package/dist/web/assets/agent-settings-panel-D0fbmF3P.js.gz +0 -0
  316. package/dist/web/assets/architectureDiagram-T3A2C74G-VAJJokz3.js.br +0 -0
  317. package/dist/web/assets/architectureDiagram-T3A2C74G-VAJJokz3.js.gz +0 -0
  318. package/dist/web/assets/attachments-CuciRoPj.js.br +0 -0
  319. package/dist/web/assets/attachments-CuciRoPj.js.gz +0 -0
  320. package/dist/web/assets/background-image-picker-D4S9VbWK.js.br +0 -0
  321. package/dist/web/assets/background-image-picker-D4S9VbWK.js.gz +0 -0
  322. package/dist/web/assets/blockDiagram-VBNYF7ZC-BV5k8m33.js.br +0 -0
  323. package/dist/web/assets/blockDiagram-VBNYF7ZC-BV5k8m33.js.gz +0 -0
  324. package/dist/web/assets/c4Diagram-5PPSVZJV-BxAKHU1O.js.br +0 -0
  325. package/dist/web/assets/c4Diagram-5PPSVZJV-BxAKHU1O.js.gz +0 -0
  326. package/dist/web/assets/channel-BsJlYD7r.js +0 -1
  327. package/dist/web/assets/channel-BsJlYD7r.js.br +0 -0
  328. package/dist/web/assets/channel-BsJlYD7r.js.gz +0 -0
  329. package/dist/web/assets/chunk-2GRJ4B5K-BylLXQQW.js.br +0 -0
  330. package/dist/web/assets/chunk-2GRJ4B5K-BylLXQQW.js.gz +0 -0
  331. package/dist/web/assets/chunk-4I5QYGJK-Sszv2sFO.js.br +0 -0
  332. package/dist/web/assets/chunk-4I5QYGJK-Sszv2sFO.js.gz +0 -0
  333. package/dist/web/assets/chunk-5RXB4S5H-fk5DV184.js.br +0 -0
  334. package/dist/web/assets/chunk-5RXB4S5H-fk5DV184.js.gz +0 -0
  335. package/dist/web/assets/chunk-6Q2QTUOP-BOd4EM_k.js.br +0 -0
  336. package/dist/web/assets/chunk-6Q2QTUOP-BOd4EM_k.js.gz +0 -0
  337. package/dist/web/assets/chunk-7Z6QIM7H-KnmPl6Ej.js.br +0 -0
  338. package/dist/web/assets/chunk-7Z6QIM7H-KnmPl6Ej.js.gz +0 -0
  339. package/dist/web/assets/chunk-GF5L2VYU-4S3VMyhe.js.br +0 -0
  340. package/dist/web/assets/chunk-GF5L2VYU-4S3VMyhe.js.gz +0 -0
  341. package/dist/web/assets/chunk-I66GZJ75-Cv1OO8mI.js.br +0 -0
  342. package/dist/web/assets/chunk-JQJVKLGR-BwAdww_a.js.br +0 -0
  343. package/dist/web/assets/chunk-JQJVKLGR-BwAdww_a.js.gz +0 -0
  344. package/dist/web/assets/chunk-KBJHAD2P-BJ17RizB.js.br +0 -0
  345. package/dist/web/assets/chunk-KBJHAD2P-BJ17RizB.js.gz +0 -0
  346. package/dist/web/assets/chunk-NSK5VX7P-YD4zvQrY.js.br +0 -0
  347. package/dist/web/assets/chunk-NSK5VX7P-YD4zvQrY.js.gz +0 -0
  348. package/dist/web/assets/chunk-QR6OTTB3-B4Vn8un2.js.br +0 -0
  349. package/dist/web/assets/chunk-QR6OTTB3-B4Vn8un2.js.gz +0 -0
  350. package/dist/web/assets/chunk-UBXNYLIW-C_5U1nW_.js.br +0 -0
  351. package/dist/web/assets/chunk-UBXNYLIW-C_5U1nW_.js.gz +0 -0
  352. package/dist/web/assets/chunk-W5SLKNZC-Cg_GuHYA.js.br +0 -0
  353. package/dist/web/assets/chunk-W5SLKNZC-Cg_GuHYA.js.gz +0 -0
  354. package/dist/web/assets/chunk-WRU74C26-zXtZrpuc.js.br +0 -0
  355. package/dist/web/assets/chunk-WRU74C26-zXtZrpuc.js.gz +0 -0
  356. package/dist/web/assets/classDiagram-JCYQIIEL-CWvbxTV4.js +0 -1
  357. package/dist/web/assets/classDiagram-JCYQIIEL-CWvbxTV4.js.br +0 -0
  358. package/dist/web/assets/classDiagram-JCYQIIEL-CWvbxTV4.js.gz +0 -0
  359. package/dist/web/assets/classDiagram-v2-OCEON4UE-CWvbxTV4.js +0 -1
  360. package/dist/web/assets/classDiagram-v2-OCEON4UE-CWvbxTV4.js.br +0 -0
  361. package/dist/web/assets/classDiagram-v2-OCEON4UE-CWvbxTV4.js.gz +0 -0
  362. package/dist/web/assets/code-highlighter-BjWXy_Iw.js.br +0 -0
  363. package/dist/web/assets/code-highlighter-BjWXy_Iw.js.gz +0 -0
  364. package/dist/web/assets/commit-settings-panel-a9GtBcyN.js.br +0 -0
  365. package/dist/web/assets/commit-settings-panel-a9GtBcyN.js.gz +0 -0
  366. package/dist/web/assets/cynefinDiagram-MW4NZA55-Ds3L2HYC.js.br +0 -0
  367. package/dist/web/assets/cynefinDiagram-MW4NZA55-Ds3L2HYC.js.gz +0 -0
  368. package/dist/web/assets/dagre-VZM6K2ZE-DPjpFaaI.js.br +0 -0
  369. package/dist/web/assets/dagre-VZM6K2ZE-DPjpFaaI.js.gz +0 -0
  370. package/dist/web/assets/diagram-7IWD3JNH-oAuqSBBd.js.br +0 -0
  371. package/dist/web/assets/diagram-7IWD3JNH-oAuqSBBd.js.gz +0 -0
  372. package/dist/web/assets/diagram-B4RE2ZJO-DutGwDiG.js.br +0 -0
  373. package/dist/web/assets/diagram-B4RE2ZJO-DutGwDiG.js.gz +0 -0
  374. package/dist/web/assets/diagram-LBJQPF4R-BTr0W5cj.js.br +0 -0
  375. package/dist/web/assets/diagram-LBJQPF4R-BTr0W5cj.js.gz +0 -0
  376. package/dist/web/assets/diagram-Q27KOJAE-Xmz7kPoV.js.br +0 -0
  377. package/dist/web/assets/diagram-Q27KOJAE-Xmz7kPoV.js.gz +0 -0
  378. package/dist/web/assets/diagram-UB23O5K3-Ccoz8RvZ.js.br +0 -0
  379. package/dist/web/assets/diagram-UB23O5K3-Ccoz8RvZ.js.gz +0 -0
  380. package/dist/web/assets/dist-XXjZG1D0.js.br +0 -0
  381. package/dist/web/assets/dist-XXjZG1D0.js.gz +0 -0
  382. package/dist/web/assets/ebnfDiagram-BXEA7PRR-XLCtKL91.js.br +0 -0
  383. package/dist/web/assets/ebnfDiagram-BXEA7PRR-XLCtKL91.js.gz +0 -0
  384. package/dist/web/assets/erDiagram-JOGREHBK-S2CHNYGV.js.br +0 -0
  385. package/dist/web/assets/erDiagram-JOGREHBK-S2CHNYGV.js.gz +0 -0
  386. package/dist/web/assets/file-review-dialog-F6jB7Qb_.js.br +0 -0
  387. package/dist/web/assets/file-review-dialog-F6jB7Qb_.js.gz +0 -0
  388. package/dist/web/assets/flowDiagram-UKHOOZJN-DZbuh7hy.js +0 -1
  389. package/dist/web/assets/flowDiagram-UKHOOZJN-DZbuh7hy.js.br +0 -5
  390. package/dist/web/assets/flowDiagram-UKHOOZJN-DZbuh7hy.js.gz +0 -0
  391. package/dist/web/assets/ganttDiagram-PKOTCBZU-BdtSBPJo.js.br +0 -0
  392. package/dist/web/assets/ganttDiagram-PKOTCBZU-BdtSBPJo.js.gz +0 -0
  393. package/dist/web/assets/git-commit-review-BT1DisdC.js.br +0 -0
  394. package/dist/web/assets/git-commit-review-BT1DisdC.js.gz +0 -0
  395. package/dist/web/assets/git-history-panel-D4wJqH0T.js.br +0 -0
  396. package/dist/web/assets/git-history-panel-D4wJqH0T.js.gz +0 -0
  397. package/dist/web/assets/gitGraphDiagram-DS77QQ5N-B22e8CZo.js.br +0 -0
  398. package/dist/web/assets/gitGraphDiagram-DS77QQ5N-B22e8CZo.js.gz +0 -0
  399. package/dist/web/assets/global-search-dialog-B7WhRB5J.js +0 -2
  400. package/dist/web/assets/global-search-dialog-B7WhRB5J.js.br +0 -0
  401. package/dist/web/assets/global-search-dialog-B7WhRB5J.js.gz +0 -0
  402. package/dist/web/assets/global-settings-about-DF9t5LPK.js.br +0 -0
  403. package/dist/web/assets/global-settings-about-DF9t5LPK.js.gz +0 -0
  404. package/dist/web/assets/global-settings-page-t1WBVqHm.js +0 -2
  405. package/dist/web/assets/global-settings-page-t1WBVqHm.js.br +0 -0
  406. package/dist/web/assets/global-settings-page-t1WBVqHm.js.gz +0 -0
  407. package/dist/web/assets/global-settings-pets-D8Grr4dJ.js.br +0 -0
  408. package/dist/web/assets/global-settings-pets-D8Grr4dJ.js.gz +0 -0
  409. package/dist/web/assets/highlighted-body-OFNGDK62-T0waXgH6.js.br +0 -0
  410. package/dist/web/assets/highlighted-body-OFNGDK62-T0waXgH6.js.gz +0 -0
  411. package/dist/web/assets/history-task-timeline-BLiCPMY2.js.br +0 -0
  412. package/dist/web/assets/history-task-timeline-BLiCPMY2.js.gz +0 -0
  413. package/dist/web/assets/image-preview-DHojYYCu.js.br +0 -0
  414. package/dist/web/assets/image-preview-DHojYYCu.js.gz +0 -0
  415. package/dist/web/assets/image-preview-content-bIMPrgXt.js.br +0 -0
  416. package/dist/web/assets/image-preview-content-bIMPrgXt.js.gz +0 -0
  417. package/dist/web/assets/index-ukQTBvh0.css +0 -2
  418. package/dist/web/assets/index-ukQTBvh0.css.br +0 -0
  419. package/dist/web/assets/index-ukQTBvh0.css.gz +0 -0
  420. package/dist/web/assets/index-ySw7zE7v.js +0 -4
  421. package/dist/web/assets/index-ySw7zE7v.js.br +0 -0
  422. package/dist/web/assets/index-ySw7zE7v.js.gz +0 -0
  423. package/dist/web/assets/infoDiagram-6WML65LV-8JSDIKEQ.js.br +0 -0
  424. package/dist/web/assets/infoDiagram-6WML65LV-8JSDIKEQ.js.gz +0 -0
  425. package/dist/web/assets/initial-deps-BOjpvLsi.js +0 -1
  426. package/dist/web/assets/initial-deps-BOjpvLsi.js.br +0 -0
  427. package/dist/web/assets/initial-deps-BOjpvLsi.js.gz +0 -0
  428. package/dist/web/assets/initial-deps-BvCty1IU.js.br +0 -0
  429. package/dist/web/assets/installed-skills-pane-Bnwd2-z8.js.br +0 -0
  430. package/dist/web/assets/installed-skills-pane-Bnwd2-z8.js.gz +0 -0
  431. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-BBsZ0aSy.js.br +0 -0
  432. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-BBsZ0aSy.js.gz +0 -0
  433. package/dist/web/assets/journeyDiagram-NVQOT4AX-CdhNlHim.js.br +0 -0
  434. package/dist/web/assets/journeyDiagram-NVQOT4AX-CdhNlHim.js.gz +0 -0
  435. package/dist/web/assets/kanban-definition-27J2QSJJ-DUC5stHg.js.br +0 -0
  436. package/dist/web/assets/kanban-definition-27J2QSJJ-DUC5stHg.js.gz +0 -0
  437. package/dist/web/assets/katex-ZlcWpGUi.js +0 -257
  438. package/dist/web/assets/katex-ZlcWpGUi.js.br +0 -0
  439. package/dist/web/assets/katex-ZlcWpGUi.js.gz +0 -0
  440. package/dist/web/assets/lazy-message-response-CgZbm6_f.js.br +0 -0
  441. package/dist/web/assets/lazy-message-response-CgZbm6_f.js.gz +0 -0
  442. package/dist/web/assets/line-CkOY0j4D.js.br +0 -0
  443. package/dist/web/assets/line-CkOY0j4D.js.gz +0 -0
  444. package/dist/web/assets/mcp-management-pane-BwR_barH.js.br +0 -0
  445. package/dist/web/assets/mcp-management-pane-BwR_barH.js.gz +0 -0
  446. package/dist/web/assets/mermaid-GHXKKRXX-DCtqsNyY.js +0 -1
  447. package/dist/web/assets/mermaid-GHXKKRXX-DCtqsNyY.js.br +0 -1
  448. package/dist/web/assets/mermaid-GHXKKRXX-DCtqsNyY.js.gz +0 -0
  449. package/dist/web/assets/message-response-BuAZphla.js.br +0 -0
  450. package/dist/web/assets/message-response-BuAZphla.js.gz +0 -0
  451. package/dist/web/assets/mindmap-definition-FAOFIHXS-DGzAA5ft.js.br +0 -0
  452. package/dist/web/assets/mindmap-definition-FAOFIHXS-DGzAA5ft.js.gz +0 -0
  453. package/dist/web/assets/official-plugins-pane-BYlHv1Zw.js +0 -1
  454. package/dist/web/assets/official-plugins-pane-BYlHv1Zw.js.br +0 -0
  455. package/dist/web/assets/official-plugins-pane-BYlHv1Zw.js.gz +0 -0
  456. package/dist/web/assets/patch-diff-viewer-BigjXoO6.js.br +0 -0
  457. package/dist/web/assets/patch-diff-viewer-BigjXoO6.js.gz +0 -0
  458. package/dist/web/assets/pegDiagram-VL7TDLO6-BfAVCl7E.js.br +0 -0
  459. package/dist/web/assets/pegDiagram-VL7TDLO6-BfAVCl7E.js.gz +0 -0
  460. package/dist/web/assets/personalization-settings-panel-D-Gd--Rl.js.br +0 -0
  461. package/dist/web/assets/personalization-settings-panel-D-Gd--Rl.js.gz +0 -0
  462. package/dist/web/assets/pieDiagram-7S7Q4E2Y-kgcNar0g.js.br +0 -0
  463. package/dist/web/assets/pieDiagram-7S7Q4E2Y-kgcNar0g.js.gz +0 -0
  464. package/dist/web/assets/project-file-popup-page-DJCEoy22.js.br +0 -0
  465. package/dist/web/assets/project-file-popup-page-DJCEoy22.js.gz +0 -0
  466. package/dist/web/assets/project-source-panel-B_iPZ4Xn.js +0 -3
  467. package/dist/web/assets/project-source-panel-B_iPZ4Xn.js.br +0 -0
  468. package/dist/web/assets/project-source-panel-B_iPZ4Xn.js.gz +0 -0
  469. package/dist/web/assets/prompt-input-BDkiLB2S.js.br +0 -0
  470. package/dist/web/assets/prompt-input-BDkiLB2S.js.gz +0 -0
  471. package/dist/web/assets/prompt-reference-token-_srKof11.js.br +0 -0
  472. package/dist/web/assets/prompt-reference-token-_srKof11.js.gz +0 -0
  473. package/dist/web/assets/quadrantDiagram-CIZ2JOQS-BYWpo7rG.js.br +0 -0
  474. package/dist/web/assets/quadrantDiagram-CIZ2JOQS-BYWpo7rG.js.gz +0 -0
  475. package/dist/web/assets/railroadDiagram-AXF67PYL-CmHkSqa8.js.br +0 -0
  476. package/dist/web/assets/railroadDiagram-AXF67PYL-CmHkSqa8.js.gz +0 -0
  477. package/dist/web/assets/requirementDiagram-LRYGKXZP-I035gQYY.js.br +0 -0
  478. package/dist/web/assets/requirementDiagram-LRYGKXZP-I035gQYY.js.gz +0 -0
  479. package/dist/web/assets/sankeyDiagram-W5VNT64P-B9EFX3Mg.js.br +0 -0
  480. package/dist/web/assets/sankeyDiagram-W5VNT64P-B9EFX3Mg.js.gz +0 -0
  481. package/dist/web/assets/scheduled-task-date-time-picker-BCFLWNkx.js.br +0 -0
  482. package/dist/web/assets/scheduled-task-date-time-picker-BCFLWNkx.js.gz +0 -0
  483. package/dist/web/assets/scheduled-tasks-container-Q8NazFRD.js +0 -2
  484. package/dist/web/assets/scheduled-tasks-container-Q8NazFRD.js.br +0 -0
  485. package/dist/web/assets/scheduled-tasks-container-Q8NazFRD.js.gz +0 -0
  486. package/dist/web/assets/sequenceDiagram-SI44F4Z6-BomGpYgp.js.br +0 -0
  487. package/dist/web/assets/sequenceDiagram-SI44F4Z6-BomGpYgp.js.gz +0 -0
  488. package/dist/web/assets/sheet-YYYqH36Y.js +0 -1
  489. package/dist/web/assets/sheet-YYYqH36Y.js.br +0 -0
  490. package/dist/web/assets/sheet-YYYqH36Y.js.gz +0 -0
  491. package/dist/web/assets/shiki-bundle-DirQN6eN.js.br +0 -0
  492. package/dist/web/assets/shiki-bundle-DirQN6eN.js.gz +0 -0
  493. package/dist/web/assets/skills-market-container-Dra_SRsM.js.br +0 -0
  494. package/dist/web/assets/skills-market-container-Dra_SRsM.js.gz +0 -0
  495. package/dist/web/assets/stateDiagram-OKZ733FA-C5gL7nOO.js.br +0 -0
  496. package/dist/web/assets/stateDiagram-OKZ733FA-C5gL7nOO.js.gz +0 -0
  497. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-QvfdP3k_.js +0 -1
  498. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-QvfdP3k_.js.br +0 -0
  499. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-QvfdP3k_.js.gz +0 -0
  500. package/dist/web/assets/swimlanes-SLNWSIFB-CrO5FxiS.js.br +0 -0
  501. package/dist/web/assets/swimlanes-SLNWSIFB-CrO5FxiS.js.gz +0 -0
  502. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CaCw1cJg.js +0 -8
  503. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CaCw1cJg.js.br +0 -0
  504. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CaCw1cJg.js.gz +0 -0
  505. package/dist/web/assets/third-party-marketplace-pane-D98JmIr4.js.br +0 -0
  506. package/dist/web/assets/third-party-marketplace-pane-D98JmIr4.js.gz +0 -0
  507. package/dist/web/assets/timeline-definition-Z64GVDOM-DJi8dcVA.js.br +0 -0
  508. package/dist/web/assets/timeline-definition-Z64GVDOM-DJi8dcVA.js.gz +0 -0
  509. package/dist/web/assets/vennDiagram-T6HMQDX7-CrKTcaED.js.br +0 -0
  510. package/dist/web/assets/vennDiagram-T6HMQDX7-CrKTcaED.js.gz +0 -0
  511. package/dist/web/assets/wardleyDiagram-T6FBY63Y-bLfKjN8C.js.br +0 -0
  512. package/dist/web/assets/wardleyDiagram-T6FBY63Y-bLfKjN8C.js.gz +0 -0
  513. package/dist/web/assets/workbench-inspector-changes-DYK3o-JB.js +0 -2
  514. package/dist/web/assets/workbench-inspector-changes-DYK3o-JB.js.br +0 -0
  515. package/dist/web/assets/workbench-inspector-changes-DYK3o-JB.js.gz +0 -0
  516. package/dist/web/assets/workbench-pet-canvas-UNLOz4Hj.js.br +0 -0
  517. package/dist/web/assets/workbench-pet-canvas-UNLOz4Hj.js.gz +0 -0
  518. package/dist/web/assets/workbench-shell-dY_e5m74.js +0 -16
  519. package/dist/web/assets/workbench-shell-dY_e5m74.js.br +0 -0
  520. package/dist/web/assets/workbench-shell-dY_e5m74.js.gz +0 -0
  521. package/dist/web/assets/xychartDiagram-ELKLHX3M-Cx1crMso.js.br +0 -0
  522. package/dist/web/assets/xychartDiagram-ELKLHX3M-Cx1crMso.js.gz +0 -0
@@ -1,10 +1,12 @@
1
1
  import { createRequire } from 'node:module';
2
2
  import { WorkbenchPetProviderError, CUSTOM_MODEL_REASONING_FALLBACK, normalizeCustomModelReasoning, PendingRequestResolutionError } from './chunk-REIMOLGX.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_IMAGE_BYTES, MAX_AGENT_TEXT_BYTES, MAX_AGENT_FILE_BYTES } from './chunk-W6U4V35J.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_IMAGE_BYTES, MAX_AGENT_TEXT_BYTES, MAX_AGENT_FILE_BYTES } from './chunk-XAI75BER.js';
4
4
  import { __commonJS, __require, __toESM } from './chunk-K6J42667.js';
5
5
  import { randomUUID, createHash } from 'crypto';
6
6
  import { Buffer as Buffer$1 } from 'buffer';
7
7
  import { mkdtempSync, rmSync, constants, createReadStream, mkdirSync, unlinkSync, renameSync, writeFileSync, readFileSync, statSync, existsSync, openSync, readSync, closeSync } from 'fs';
8
+ import { pipeline } from 'stream';
9
+ import { createZstdDecompress, constants as constants$1 } from 'zlib';
8
10
  import { readFile, mkdir, writeFile, rename, rm, readdir, realpath, stat, access, open, unlink, lstat, opendir } from 'fs/promises';
9
11
  import { homedir, tmpdir } from 'os';
10
12
  import { resolve, join, basename, dirname, relative, sep, win32, posix, isAbsolute, extname } from 'path';
@@ -2643,7 +2645,7 @@ var require_transport = __commonJS({
2643
2645
  stream.flushSync();
2644
2646
  }
2645
2647
  function transport(fullOptions) {
2646
- const { pipeline, targets, levels, dedupe, worker = {}, caller = getCallers(), sync = false } = fullOptions;
2648
+ const { pipeline: pipeline2, targets, levels, dedupe, worker = {}, caller = getCallers(), sync = false } = fullOptions;
2647
2649
  const options = {
2648
2650
  ...fullOptions.options
2649
2651
  };
@@ -2671,9 +2673,9 @@ var require_transport = __commonJS({
2671
2673
  };
2672
2674
  });
2673
2675
  });
2674
- } else if (pipeline) {
2676
+ } else if (pipeline2) {
2675
2677
  target = bundlerOverrides["pino-worker"] || join10(__dirname, "worker.js");
2676
- options.pipelines = [pipeline.map((dest) => {
2678
+ options.pipelines = [pipeline2.map((dest) => {
2677
2679
  return {
2678
2680
  ...dest,
2679
2681
  target: fixTarget(dest.target)
@@ -2687,7 +2689,7 @@ var require_transport = __commonJS({
2687
2689
  options.dedupe = dedupe;
2688
2690
  }
2689
2691
  options.pinoWillSendConfig = true;
2690
- const name = targets || pipeline ? "pino.transport" : target;
2692
+ const name = targets || pipeline2 ? "pino.transport" : target;
2691
2693
  return buildStream(fixTarget(target), options, worker, sync, name);
2692
2694
  function fixTarget(origin) {
2693
2695
  origin = bundlerOverrides[origin] || origin;
@@ -3513,20 +3515,20 @@ var require_safe_stable_stringify = __commonJS({
3513
3515
  }
3514
3516
  return JSON.stringify(str);
3515
3517
  }
3516
- function sort(array, comparator) {
3517
- if (array.length > 200 || comparator) {
3518
- return array.sort(comparator);
3518
+ function sort(array2, comparator) {
3519
+ if (array2.length > 200 || comparator) {
3520
+ return array2.sort(comparator);
3519
3521
  }
3520
- for (let i = 1; i < array.length; i++) {
3521
- const currentValue = array[i];
3522
+ for (let i = 1; i < array2.length; i++) {
3523
+ const currentValue = array2[i];
3522
3524
  let position = i;
3523
- while (position !== 0 && array[position - 1] > currentValue) {
3524
- array[position] = array[position - 1];
3525
+ while (position !== 0 && array2[position - 1] > currentValue) {
3526
+ array2[position] = array2[position - 1];
3525
3527
  position--;
3526
3528
  }
3527
- array[position] = currentValue;
3529
+ array2[position] = currentValue;
3528
3530
  }
3529
- return array;
3531
+ return array2;
3530
3532
  }
3531
3533
  var typedArrayPrototypeGetSymbolToStringTag = Object.getOwnPropertyDescriptor(
3532
3534
  Object.getPrototypeOf(
@@ -3539,14 +3541,14 @@ var require_safe_stable_stringify = __commonJS({
3539
3541
  function isTypedArrayWithEntries(value) {
3540
3542
  return typedArrayPrototypeGetSymbolToStringTag.call(value) !== void 0 && value.length !== 0;
3541
3543
  }
3542
- function stringifyTypedArray(array, separator, maximumBreadth) {
3543
- if (array.length < maximumBreadth) {
3544
- maximumBreadth = array.length;
3544
+ function stringifyTypedArray(array2, separator, maximumBreadth) {
3545
+ if (array2.length < maximumBreadth) {
3546
+ maximumBreadth = array2.length;
3545
3547
  }
3546
3548
  const whitespace = separator === "," ? "" : " ";
3547
- let res = `"0":${whitespace}${array[0]}`;
3549
+ let res = `"0":${whitespace}${array2[0]}`;
3548
3550
  for (let i = 1; i < maximumBreadth; i++) {
3549
- res += `${separator}"${i}":${whitespace}${array[i]}`;
3551
+ res += `${separator}"${i}":${whitespace}${array2[i]}`;
3550
3552
  }
3551
3553
  return res;
3552
3554
  }
@@ -4546,6 +4548,8 @@ var CODEX_IGNORED_NOTIFICATION_METHODS = /* @__PURE__ */ new Set([
4546
4548
  "thread/compacted",
4547
4549
  "thread/environment/connected",
4548
4550
  "thread/environment/disconnected",
4551
+ // 线程预测尚无产品入口;主动关闭通知,避免额外传输和解析。
4552
+ "thread/prediction/updated",
4549
4553
  "thread/project/updated",
4550
4554
  "thread/realtime/closed",
4551
4555
  "thread/realtime/error",
@@ -5680,6 +5684,72 @@ function mapCodexGoal(value, expectedTaskId) {
5680
5684
  updatedAt: toDateTime(goal["updatedAt"], "Codex goal updatedAt")
5681
5685
  };
5682
5686
  }
5687
+ var MAX_READERS = 2;
5688
+ var IDLE_TIMEOUT_MS = 3e4;
5689
+ var readers = /* @__PURE__ */ new Set();
5690
+ var TranscriptZstdReader = class _TranscriptZstdReader {
5691
+ #source;
5692
+ #decoder;
5693
+ #iterator;
5694
+ #pending = Buffer.alloc(0);
5695
+ #timer;
5696
+ closed = false;
5697
+ done = false;
5698
+ constructor(path) {
5699
+ this.#source = createReadStream(path, { highWaterMark: 64 * 1024 });
5700
+ this.#decoder = createZstdDecompress({
5701
+ chunkSize: 64 * 1024,
5702
+ // 上游 level 3 的窗口小于此限制;拒绝异常大窗口,避免压缩文件放大内存占用。
5703
+ params: { [constants$1.ZSTD_d_windowLogMax]: 23 }
5704
+ });
5705
+ this.#iterator = this.#decoder[Symbol.asyncIterator]();
5706
+ pipeline(this.#source, this.#decoder, () => {
5707
+ });
5708
+ readers.add(this);
5709
+ }
5710
+ static open(path) {
5711
+ if (readers.size >= MAX_READERS) return void 0;
5712
+ return new _TranscriptZstdReader(path);
5713
+ }
5714
+ async read(limit, consume) {
5715
+ clearTimeout(this.#timer);
5716
+ let count = 0;
5717
+ try {
5718
+ while (count < limit && !this.closed) {
5719
+ if (this.#pending.length === 0) {
5720
+ const next = await this.#iterator.next();
5721
+ if (next.done) {
5722
+ this.done = true;
5723
+ this.close();
5724
+ break;
5725
+ }
5726
+ this.#pending = next.value;
5727
+ }
5728
+ const length = Math.min(limit - count, this.#pending.length);
5729
+ consume(this.#pending.subarray(0, length));
5730
+ this.#pending = this.#pending.subarray(length);
5731
+ count += length;
5732
+ }
5733
+ return count;
5734
+ } catch (error) {
5735
+ this.close();
5736
+ throw error;
5737
+ } finally {
5738
+ if (!this.closed)
5739
+ this.#timer = setTimeout(() => {
5740
+ this.close();
5741
+ }, IDLE_TIMEOUT_MS).unref();
5742
+ }
5743
+ }
5744
+ close() {
5745
+ this.closed = true;
5746
+ clearTimeout(this.#timer);
5747
+ this.#pending = Buffer.alloc(0);
5748
+ this.#source.destroy();
5749
+ this.#decoder.destroy();
5750
+ readers.delete(this);
5751
+ }
5752
+ };
5683
5753
  var EXPANDED_SKILL_PATTERN = /^<skill>\s*<name>(?<name>[^<]+)<\/name>\s*<path>(?<path>[^<]+)<\/path>[\s\S]*<\/skill>\s*$/u;
5684
5754
  var LINKED_SKILL_PATTERN = /\[\$(?<name>[^\]\s]+)\]\((?<path>[^)]+\/SKILL\.md)\)/gu;
5685
5755
  var SAFE_THREAD_ID_PATTERN = /^[a-zA-Z0-9_-]+$/u;
@@ -5781,32 +5851,41 @@ function getTranscriptThreadCache(cacheKey) {
5781
5851
  if (oldestKey === void 0) {
5782
5852
  break;
5783
5853
  }
5854
+ for (const file of transcriptCacheByThread.get(oldestKey)?.files.values() ?? [])
5855
+ file.reader?.close();
5784
5856
  transcriptCacheByThread.delete(oldestKey);
5785
5857
  }
5786
5858
  return created;
5787
5859
  }
5788
- async function discoverTranscriptPaths(cache, sessionsDirectory, threadId) {
5860
+ async function discoverTranscriptPaths(cache, codexHome, threadId) {
5789
5861
  const now = Date.now();
5790
5862
  if (cache.transcriptPaths.length > 0 || now - cache.lastDiscoveryAt < TRANSCRIPT_DISCOVERY_INTERVAL_MS) {
5791
5863
  return;
5792
5864
  }
5793
5865
  const transcriptPaths = [];
5794
5866
  const transcriptSuffix = `-${threadId}.jsonl`;
5795
- const directory = await opendir(sessionsDirectory, { recursive: true });
5796
- for await (const entry of directory) {
5797
- if (!entry.isFile() || !entry.name.startsWith("rollout-") || !entry.name.endsWith(transcriptSuffix)) {
5798
- continue;
5867
+ for (const name of ["sessions", "archived_sessions"]) {
5868
+ let directory;
5869
+ try {
5870
+ directory = await opendir(join(codexHome, name), { recursive: true });
5871
+ } catch (error) {
5872
+ if (isRecord2(error) && error["code"] === "ENOENT") continue;
5873
+ throw error;
5799
5874
  }
5800
- transcriptPaths.push(join(entry.parentPath, entry.name));
5801
- if (transcriptPaths.length >= MAX_TRANSCRIPT_FILES_PER_THREAD) {
5802
- break;
5875
+ for await (const entry of directory) {
5876
+ if (!entry.isFile() || !entry.name.startsWith("rollout-") || !(entry.name.endsWith(transcriptSuffix) || entry.name.endsWith(`${transcriptSuffix}.zst`)))
5877
+ continue;
5878
+ transcriptPaths.push(join(entry.parentPath, entry.name));
5879
+ if (transcriptPaths.length >= MAX_TRANSCRIPT_FILES_PER_THREAD) break;
5803
5880
  }
5881
+ if (transcriptPaths.length >= MAX_TRANSCRIPT_FILES_PER_THREAD) break;
5804
5882
  }
5805
5883
  cache.transcriptPaths = transcriptPaths;
5806
5884
  cache.lastDiscoveryAt = now;
5807
5885
  const discoveredPaths = new Set(transcriptPaths);
5808
5886
  for (const cachedPath of cache.files.keys()) {
5809
5887
  if (!discoveredPaths.has(cachedPath)) {
5888
+ cache.files.get(cachedPath)?.reader?.close();
5810
5889
  cache.files.delete(cachedPath);
5811
5890
  cache.mergedSkillsDirty = true;
5812
5891
  }
@@ -5814,11 +5893,12 @@ async function discoverTranscriptPaths(cache, sessionsDirectory, threadId) {
5814
5893
  }
5815
5894
  async function parseTranscriptFileIncrementally(transcriptPath, cache, remainingBytes) {
5816
5895
  const transcriptStats = await stat(transcriptPath);
5896
+ const compressed = transcriptPath.endsWith(".zst");
5817
5897
  const cachedFile = cache.files.get(transcriptPath);
5818
- if (cachedFile?.mtimeMs === transcriptStats.mtimeMs && cachedFile.size === transcriptStats.size && cachedFile.offset === transcriptStats.size) {
5898
+ if (cachedFile?.mtimeMs === transcriptStats.mtimeMs && cachedFile.size === transcriptStats.size && (compressed ? cachedFile.complete : cachedFile.offset === transcriptStats.size)) {
5819
5899
  return 0;
5820
5900
  }
5821
- const canContinue = cachedFile !== void 0 && transcriptStats.size >= cachedFile.size && transcriptStats.size >= cachedFile.offset && (transcriptStats.size > cachedFile.size || transcriptStats.mtimeMs === cachedFile.mtimeMs);
5901
+ const canContinue = cachedFile !== void 0 && (compressed ? cachedFile.size === transcriptStats.size && cachedFile.mtimeMs === transcriptStats.mtimeMs && cachedFile.reader?.closed === false : transcriptStats.size >= cachedFile.size && transcriptStats.size >= cachedFile.offset && (transcriptStats.size > cachedFile.size || transcriptStats.mtimeMs === cachedFile.mtimeMs));
5822
5902
  const fileCache = canContinue ? cachedFile : {
5823
5903
  cachedSkillNameBytes: 0,
5824
5904
  discardUntilNewline: false,
@@ -5829,8 +5909,23 @@ async function parseTranscriptFileIncrementally(transcriptPath, cache, remaining
5829
5909
  skillNamesByTurnId: /* @__PURE__ */ new Map()
5830
5910
  };
5831
5911
  if (cachedFile !== void 0 && fileCache !== cachedFile) {
5912
+ cachedFile.reader?.close();
5832
5913
  cache.mergedSkillsDirty = true;
5833
5914
  }
5915
+ if (compressed) {
5916
+ fileCache.reader ??= TranscriptZstdReader.open(transcriptPath);
5917
+ if (fileCache.reader === void 0) return 0;
5918
+ const bytes = await fileCache.reader.read(remainingBytes, (chunk) => {
5919
+ consumeTranscriptChunk(chunk, fileCache);
5920
+ });
5921
+ fileCache.complete = fileCache.reader.done;
5922
+ fileCache.offset += bytes;
5923
+ fileCache.mtimeMs = transcriptStats.mtimeMs;
5924
+ fileCache.size = transcriptStats.size;
5925
+ cache.files.set(transcriptPath, fileCache);
5926
+ cache.mergedSkillsDirty = true;
5927
+ return bytes;
5928
+ }
5834
5929
  const availableBytes = transcriptStats.size - fileCache.offset;
5835
5930
  const bytesToRead = Math.min(availableBytes, remainingBytes);
5836
5931
  if (bytesToRead <= 0) {
@@ -5844,27 +5939,7 @@ async function parseTranscriptFileIncrementally(transcriptPath, cache, remaining
5844
5939
  start: fileCache.offset
5845
5940
  });
5846
5941
  for await (const chunk of stream) {
5847
- const data = fileCache.pendingLine.length === 0 ? chunk : Buffer.concat([fileCache.pendingLine, chunk]);
5848
- fileCache.pendingLine = Buffer.alloc(0);
5849
- let lineStart = 0;
5850
- let lineEnd = data.indexOf(10, lineStart);
5851
- while (lineEnd >= 0) {
5852
- const line = data.subarray(lineStart, lineEnd);
5853
- if (!fileCache.discardUntilNewline && line.length <= MAX_TRANSCRIPT_LINE_BYTES) {
5854
- const contentEnd = line.at(-1) === 13 ? line.length - 1 : line.length;
5855
- collectTranscriptLineSkills(line.subarray(0, contentEnd).toString("utf8"), fileCache);
5856
- }
5857
- fileCache.discardUntilNewline = false;
5858
- lineStart = lineEnd + 1;
5859
- lineEnd = data.indexOf(10, lineStart);
5860
- }
5861
- const incompleteLine = data.subarray(lineStart);
5862
- if (!fileCache.discardUntilNewline && incompleteLine.length <= MAX_TRANSCRIPT_LINE_BYTES) {
5863
- fileCache.pendingLine = Buffer.from(incompleteLine);
5864
- } else if (incompleteLine.length > 0) {
5865
- fileCache.pendingLine = Buffer.alloc(0);
5866
- fileCache.discardUntilNewline = true;
5867
- }
5942
+ consumeTranscriptChunk(chunk, fileCache);
5868
5943
  }
5869
5944
  fileCache.offset += bytesToRead;
5870
5945
  fileCache.mtimeMs = transcriptStats.mtimeMs;
@@ -5873,6 +5948,29 @@ async function parseTranscriptFileIncrementally(transcriptPath, cache, remaining
5873
5948
  cache.mergedSkillsDirty = true;
5874
5949
  return bytesToRead;
5875
5950
  }
5951
+ function consumeTranscriptChunk(chunk, fileCache) {
5952
+ const data = fileCache.pendingLine.length === 0 ? chunk : Buffer.concat([fileCache.pendingLine, chunk]);
5953
+ fileCache.pendingLine = Buffer.alloc(0);
5954
+ let lineStart = 0;
5955
+ let lineEnd = data.indexOf(10, lineStart);
5956
+ while (lineEnd >= 0) {
5957
+ const line = data.subarray(lineStart, lineEnd);
5958
+ if (!fileCache.discardUntilNewline && line.length <= MAX_TRANSCRIPT_LINE_BYTES) {
5959
+ const contentEnd = line.at(-1) === 13 ? line.length - 1 : line.length;
5960
+ collectTranscriptLineSkills(line.subarray(0, contentEnd).toString("utf8"), fileCache);
5961
+ }
5962
+ fileCache.discardUntilNewline = false;
5963
+ lineStart = lineEnd + 1;
5964
+ lineEnd = data.indexOf(10, lineStart);
5965
+ }
5966
+ const incompleteLine = data.subarray(lineStart);
5967
+ if (!fileCache.discardUntilNewline && incompleteLine.length <= MAX_TRANSCRIPT_LINE_BYTES) {
5968
+ fileCache.pendingLine = Buffer.from(incompleteLine);
5969
+ } else if (incompleteLine.length > 0) {
5970
+ fileCache.pendingLine = Buffer.alloc(0);
5971
+ fileCache.discardUntilNewline = true;
5972
+ }
5973
+ }
5876
5974
  function mergeTranscriptSkills(cache) {
5877
5975
  if (!cache.mergedSkillsDirty) {
5878
5976
  return cache.mergedSkills;
@@ -5893,9 +5991,9 @@ function mergeTranscriptSkills(cache) {
5893
5991
  cache.mergedSkillsDirty = false;
5894
5992
  return cache.mergedSkills;
5895
5993
  }
5896
- async function readCachedCodexTranscriptTurnSkills(cache, sessionsDirectory, threadId) {
5994
+ async function readCachedCodexTranscriptTurnSkills(cache, codexHome, threadId) {
5897
5995
  try {
5898
- await discoverTranscriptPaths(cache, sessionsDirectory, threadId);
5996
+ await discoverTranscriptPaths(cache, codexHome, threadId);
5899
5997
  let remainingBytes = MAX_TRANSCRIPT_BYTES_PER_READ;
5900
5998
  for (const transcriptPath of cache.transcriptPaths) {
5901
5999
  if (remainingBytes <= 0) {
@@ -5909,10 +6007,19 @@ async function readCachedCodexTranscriptTurnSkills(cache, sessionsDirectory, thr
5909
6007
  );
5910
6008
  } catch (error) {
5911
6009
  if (isRecord2(error) && error["code"] === "ENOENT") {
5912
- cache.files.delete(transcriptPath);
5913
- cache.mergedSkillsDirty = true;
5914
- cache.transcriptPaths = cache.transcriptPaths.filter((path) => path !== transcriptPath);
6010
+ cache.files.get(transcriptPath)?.reader?.close();
6011
+ cache.transcriptPaths = [];
5915
6012
  cache.lastDiscoveryAt = 0;
6013
+ await discoverTranscriptPaths(cache, codexHome, threadId);
6014
+ for (const replacement of cache.transcriptPaths) {
6015
+ if (remainingBytes <= 0) break;
6016
+ remainingBytes -= await parseTranscriptFileIncrementally(
6017
+ replacement,
6018
+ cache,
6019
+ remainingBytes
6020
+ );
6021
+ }
6022
+ break;
5916
6023
  }
5917
6024
  }
5918
6025
  }
@@ -5924,13 +6031,12 @@ async function readCodexTranscriptTurnSkills(threadId, codexHome = process.env["
5924
6031
  if (!SAFE_THREAD_ID_PATTERN.test(threadId)) {
5925
6032
  return /* @__PURE__ */ new Map();
5926
6033
  }
5927
- const sessionsDirectory = join(codexHome, "sessions");
5928
6034
  const cacheKey = `${codexHome}\0${threadId}`;
5929
6035
  const cache = getTranscriptThreadCache(cacheKey);
5930
6036
  if (cache.pendingRead !== void 0) {
5931
6037
  return cache.pendingRead;
5932
6038
  }
5933
- const pendingRead = readCachedCodexTranscriptTurnSkills(cache, sessionsDirectory, threadId);
6039
+ const pendingRead = readCachedCodexTranscriptTurnSkills(cache, codexHome, threadId);
5934
6040
  cache.pendingRead = pendingRead;
5935
6041
  try {
5936
6042
  return await pendingRead;
@@ -7093,15 +7199,15 @@ var JsonlFrameProcessor = class {
7093
7199
  );
7094
7200
  this.#worker.unref();
7095
7201
  this.#worker.on("message", (response) => {
7096
- const pending = this.#pending.get(response.id);
7097
- if (pending === void 0) return;
7202
+ const pending2 = this.#pending.get(response.id);
7203
+ if (pending2 === void 0) return;
7098
7204
  this.#pending.delete(response.id);
7099
7205
  if (response.type === "error") {
7100
- pending.reject(new JsonlFrameParseError(response.code));
7206
+ pending2.reject(new JsonlFrameParseError(response.code));
7101
7207
  return;
7102
7208
  }
7103
7209
  this.#hydrateStagedImages(response.message);
7104
- pending.resolve(response.message);
7210
+ pending2.resolve(response.message);
7105
7211
  });
7106
7212
  this.#worker.once("error", (error) => {
7107
7213
  this.#rejectPending(error);
@@ -7151,7 +7257,7 @@ var JsonlFrameProcessor = class {
7151
7257
  }
7152
7258
  }
7153
7259
  #rejectPending(error) {
7154
- for (const pending of this.#pending.values()) pending.reject(error);
7260
+ for (const pending2 of this.#pending.values()) pending2.reject(error);
7155
7261
  this.#pending.clear();
7156
7262
  }
7157
7263
  };
@@ -7416,10 +7522,10 @@ var JsonlRpcClient = class {
7416
7522
  const id = this.#nextRequestId++;
7417
7523
  const request = params === void 0 ? { id, method } : { id, method, params };
7418
7524
  return new Promise((resolve7, reject) => {
7419
- const pending = new RpcPendingRequest({
7525
+ const pending2 = new RpcPendingRequest({
7420
7526
  onTimeout: () => {
7421
- if (this.#removePending(id, pending)) {
7422
- pending.reject(new RpcTimeoutError(id, method, timeoutMs));
7527
+ if (this.#removePending(id, pending2)) {
7528
+ pending2.reject(new RpcTimeoutError(id, method, timeoutMs));
7423
7529
  }
7424
7530
  },
7425
7531
  reject,
@@ -7427,7 +7533,7 @@ var JsonlRpcClient = class {
7427
7533
  resolve: resolve7,
7428
7534
  timeoutMs
7429
7535
  });
7430
- this.#pending.set(id, pending);
7536
+ this.#pending.set(id, pending2);
7431
7537
  try {
7432
7538
  void this.#sendMessage(request).catch(() => void 0);
7433
7539
  } catch {
@@ -7493,8 +7599,8 @@ var JsonlRpcClient = class {
7493
7599
  this.#input.off("end", this.#handleInputEnd);
7494
7600
  this.#input.off("error", this.#handleStreamError);
7495
7601
  this.#output.off("error", this.#handleStreamError);
7496
- for (const pending of this.#pending.values()) {
7497
- pending.reject(reason);
7602
+ for (const pending2 of this.#pending.values()) {
7603
+ pending2.reject(reason);
7498
7604
  }
7499
7605
  this.#pending.clear();
7500
7606
  this.#frameBuffer.clear();
@@ -7661,8 +7767,8 @@ var JsonlRpcClient = class {
7661
7767
  throw new RpcProtocolError("RPC frame is neither a response, server request, nor notification");
7662
7768
  }
7663
7769
  #handleResponse(id, message) {
7664
- const pending = this.#pending.get(id);
7665
- if (!pending) {
7770
+ const pending2 = this.#pending.get(id);
7771
+ if (!pending2) {
7666
7772
  return;
7667
7773
  }
7668
7774
  if ("error" in message) {
@@ -7671,12 +7777,12 @@ var JsonlRpcClient = class {
7671
7777
  throw new RpcProtocolError("RPC error response has an invalid error payload");
7672
7778
  }
7673
7779
  if (isExplicitlyUnqueuedOverload(error)) {
7674
- const scheduled = pending.scheduleOverloadRetry(this.#overloadRetryPolicy, () => {
7675
- if (this.#pending.get(id) !== pending) {
7780
+ const scheduled = pending2.scheduleOverloadRetry(this.#overloadRetryPolicy, () => {
7781
+ if (this.#pending.get(id) !== pending2) {
7676
7782
  return;
7677
7783
  }
7678
7784
  try {
7679
- void this.#sendMessage(pending.request).catch(() => void 0);
7785
+ void this.#sendMessage(pending2.request).catch(() => void 0);
7680
7786
  } catch {
7681
7787
  }
7682
7788
  });
@@ -7684,22 +7790,22 @@ var JsonlRpcClient = class {
7684
7790
  return;
7685
7791
  }
7686
7792
  }
7687
- this.#removePending(id, pending);
7688
- pending.reject(new RpcResponseError(error));
7793
+ this.#removePending(id, pending2);
7794
+ pending2.reject(new RpcResponseError(error));
7689
7795
  return;
7690
7796
  }
7691
7797
  if (!("result" in message)) {
7692
7798
  throw new RpcProtocolError("RPC response is missing result or error");
7693
7799
  }
7694
- this.#removePending(id, pending);
7695
- pending.resolve(message["result"]);
7800
+ this.#removePending(id, pending2);
7801
+ pending2.resolve(message["result"]);
7696
7802
  }
7697
- #removePending(id, pending) {
7698
- if (this.#pending.get(id) !== pending) {
7803
+ #removePending(id, pending2) {
7804
+ if (this.#pending.get(id) !== pending2) {
7699
7805
  return false;
7700
7806
  }
7701
7807
  this.#pending.delete(id);
7702
- pending.clearTimers();
7808
+ pending2.clearTimers();
7703
7809
  return true;
7704
7810
  }
7705
7811
  #assertOpen() {
@@ -8302,9 +8408,9 @@ var CodexPersistentHistoricalAttachmentStore = class {
8302
8408
  return [...this.#pending.get(taskId)?.values() ?? []];
8303
8409
  }
8304
8410
  markPersisted(taskId, attachmentId) {
8305
- const pending = this.#pending.get(taskId);
8306
- pending?.delete(attachmentId);
8307
- if (pending?.size === 0) this.#pending.delete(taskId);
8411
+ const pending2 = this.#pending.get(taskId);
8412
+ pending2?.delete(attachmentId);
8413
+ if (pending2?.size === 0) this.#pending.delete(taskId);
8308
8414
  }
8309
8415
  async read(taskId, attachmentId) {
8310
8416
  const entry = this.#entries.get(attachmentId);
@@ -9606,8 +9712,8 @@ function readReviewWorkerThread(value) {
9606
9712
  };
9607
9713
  }
9608
9714
  var execFileAsync = promisify(execFile);
9609
- var SUPPORTED_CODEX_VERSION = "0.159.2";
9610
- var SUPPORTED_CODEX_VERSION_RANGE = ">=0.159.2,<0.160.0";
9715
+ var SUPPORTED_CODEX_VERSION = "0.161.0";
9716
+ var SUPPORTED_CODEX_VERSION_RANGE = ">=0.161.0,<0.162.0";
9611
9717
  var BUNDLED_CODEX_TARGETS = {
9612
9718
  "darwin-arm64": {
9613
9719
  executableName: "codex",
@@ -9749,7 +9855,7 @@ async function checkCodexVersion(binaryPath, options = {}) {
9749
9855
  }
9750
9856
  const [major, minor, patch] = version.split("-", 1)[0]?.split(".").map(Number) ?? [];
9751
9857
  const isPrerelease = version.includes("-");
9752
- if (major !== 0 || minor !== 159 || patch === void 0 || patch < 2 || isPrerelease) {
9858
+ if (major !== 0 || minor !== 161 || patch === void 0 || isPrerelease) {
9753
9859
  throw new Error(
9754
9860
  `Unsupported Codex version ${version}; expected ${SUPPORTED_CODEX_VERSION_RANGE}`
9755
9861
  );
@@ -10553,6 +10659,8 @@ var CodexAgentProviderTurns = class extends CodexAgentProviderQueue {
10553
10659
  const goalResponse = expectRecord(
10554
10660
  await this.client.request("thread/goal/set", {
10555
10661
  objective,
10662
+ // 显式标记用户目标操作,让 Codex 在恢复执行前持久化用户指令。
10663
+ origin: "user",
10556
10664
  status: "active",
10557
10665
  threadId: taskId
10558
10666
  }),
@@ -10617,7 +10725,7 @@ var CodexAgentProviderTurns = class extends CodexAgentProviderQueue {
10617
10725
  async updateGoal(taskId, input) {
10618
10726
  this.assertKnownProjectTask(taskId);
10619
10727
  const response = expectRecord(
10620
- await this.client.request("thread/goal/set", { ...input, threadId: taskId }),
10728
+ await this.client.request("thread/goal/set", { ...input, origin: "user", threadId: taskId }),
10621
10729
  "thread/goal/set response"
10622
10730
  );
10623
10731
  return mapCodexGoal(response["goal"], taskId);
@@ -10625,7 +10733,7 @@ var CodexAgentProviderTurns = class extends CodexAgentProviderQueue {
10625
10733
  async clearGoal(taskId) {
10626
10734
  this.assertKnownProjectTask(taskId);
10627
10735
  const response = expectRecord(
10628
- await this.client.request("thread/goal/clear", { threadId: taskId }),
10736
+ await this.client.request("thread/goal/clear", { origin: "user", threadId: taskId }),
10629
10737
  "thread/goal/clear response"
10630
10738
  );
10631
10739
  expectBoolean(response["cleared"], "thread/goal/clear cleared");
@@ -11695,6 +11803,64 @@ var CodexAgentProviderEvents = class extends CodexAgentProviderTasks {
11695
11803
  };
11696
11804
  var CodexAgentProvider = class extends CodexAgentProviderEvents {
11697
11805
  };
11806
+
11807
+ // packages/provider-codex/src/history-storage.ts
11808
+ function createHistoryStorage(client) {
11809
+ let pending2;
11810
+ return {
11811
+ compress() {
11812
+ pending2 ??= client.request("rollout/compress", void 0).then((response) => {
11813
+ expectRecord(response, "rollout/compress response");
11814
+ return { status: "scheduled" };
11815
+ }).finally(() => {
11816
+ pending2 = void 0;
11817
+ });
11818
+ return pending2;
11819
+ }
11820
+ };
11821
+ }
11822
+
11823
+ // packages/provider-codex/src/plugin-reconcile.ts
11824
+ var pending = /* @__PURE__ */ new WeakMap();
11825
+ function array(value, name) {
11826
+ if (!Array.isArray(value))
11827
+ throw new CodexProtocolMappingError(`plugin/reconcile ${name} must be an array`);
11828
+ return value;
11829
+ }
11830
+ async function reconcile(client) {
11831
+ const result = expectRecord(
11832
+ await client.request("plugin/reconcile", { reason: "codexly.refresh" }),
11833
+ "plugin/reconcile response"
11834
+ );
11835
+ return {
11836
+ changedPlugins: array(result["changedPlugins"], "changedPlugins").map((value) => {
11837
+ const plugin = expectRecord(value, "plugin/reconcile plugin");
11838
+ const id = expectString(plugin["id"], "plugin/reconcile id");
11839
+ if (id.length === 0) throw new CodexProtocolMappingError("plugin/reconcile id is empty");
11840
+ return {
11841
+ id,
11842
+ hasApps: expectBoolean(plugin["hasApps"], "plugin/reconcile hasApps"),
11843
+ hasHooks: expectBoolean(plugin["hasHooks"], "plugin/reconcile hasHooks"),
11844
+ hasMcps: expectBoolean(plugin["hasMcps"], "plugin/reconcile hasMcps"),
11845
+ hasSkills: expectBoolean(plugin["hasSkills"], "plugin/reconcile hasSkills")
11846
+ };
11847
+ }),
11848
+ failedRemotePluginIds: array(result["failedRemotePluginIds"], "failedRemotePluginIds").map(
11849
+ (id) => expectString(id, "plugin/reconcile failedRemotePluginId")
11850
+ ),
11851
+ failedMaterializationRemotePluginIds: array(
11852
+ result["failedMaterializationRemotePluginIds"],
11853
+ "failedMaterializationRemotePluginIds"
11854
+ ).map((id) => expectString(id, "plugin/reconcile failedMaterializationRemotePluginId"))
11855
+ };
11856
+ }
11857
+ function reconcileCodexPlugins(client) {
11858
+ const existing = pending.get(client);
11859
+ if (existing !== void 0) return existing;
11860
+ const request = reconcile(client).finally(() => pending.delete(client));
11861
+ pending.set(client, request);
11862
+ return request;
11863
+ }
11698
11864
  function taskTitlePrompt(text) {
11699
11865
  let bounded = "";
11700
11866
  let count = 0;
@@ -11886,13 +12052,13 @@ var CodexTaskTitles = class {
11886
12052
  this.#pending.set(taskId, { project, cwd });
11887
12053
  }
11888
12054
  start(taskId, input) {
11889
- const pending = this.#pending.get(taskId);
11890
- if (pending === void 0) return;
12055
+ const pending2 = this.#pending.get(taskId);
12056
+ if (pending2 === void 0) return;
11891
12057
  this.#pending.delete(taskId);
11892
12058
  const fallback = [...input.skills, ...input.files, ...input.textAttachments].map((item) => item.name.trim()).find(Boolean) ?? "\u65B0\u4EFB\u52A1";
11893
12059
  const prompt = taskTitlePrompt(input.text.trim() || fallback);
11894
12060
  const controller = new AbortController();
11895
- const active = { ...pending, controller, done: Promise.resolve() };
12061
+ const active = { ...pending2, controller, done: Promise.resolve() };
11896
12062
  this.#active.set(taskId, active);
11897
12063
  active.done = Promise.resolve().then(async () => {
11898
12064
  const model = await this.readModel();
@@ -11905,7 +12071,7 @@ var CodexTaskTitles = class {
11905
12071
  this.#listeners.delete(listener);
11906
12072
  };
11907
12073
  },
11908
- pending.cwd,
12074
+ pending2.cwd,
11909
12075
  model,
11910
12076
  prompt,
11911
12077
  controller.signal
@@ -11920,7 +12086,7 @@ var CodexTaskTitles = class {
11920
12086
  "thread/read response"
11921
12087
  );
11922
12088
  const thread = expectRecord(response["thread"], "task title thread");
11923
- const projectId = pending.project.kind === "temporary" ? null : pending.project.id;
12089
+ const projectId = pending2.project.kind === "temporary" ? null : pending2.project.id;
11924
12090
  if (thread["id"] !== taskId || thread["projectId"] !== projectId) {
11925
12091
  throw new Error("Task title ownership mismatch");
11926
12092
  }
@@ -11954,8 +12120,8 @@ var CodexTaskTitles = class {
11954
12120
  this.#active.get(taskId)?.controller.abort();
11955
12121
  }
11956
12122
  async releaseProject(projectId) {
11957
- for (const [taskId, pending] of this.#pending) {
11958
- if (pending.project.id === projectId) this.#pending.delete(taskId);
12123
+ for (const [taskId, pending2] of this.#pending) {
12124
+ if (pending2.project.id === projectId) this.#pending.delete(taskId);
11959
12125
  }
11960
12126
  const active = [...this.#active.values()].filter((entry) => entry.project.id === projectId);
11961
12127
  for (const entry of active) entry.controller.abort();
@@ -12033,7 +12199,7 @@ async function readOptional(path) {
12033
12199
  }
12034
12200
  }
12035
12201
  function createGlobalInstructionsStore(home) {
12036
- let pending = Promise.resolve();
12202
+ let pending2 = Promise.resolve();
12037
12203
  const read = async () => ({
12038
12204
  content: await readOptional(join(home, "AGENTS.md")),
12039
12205
  path: join(home, "AGENTS.md"),
@@ -12042,7 +12208,7 @@ function createGlobalInstructionsStore(home) {
12042
12208
  return {
12043
12209
  read,
12044
12210
  save(input) {
12045
- const result = pending.then(async () => {
12211
+ const result = pending2.then(async () => {
12046
12212
  const path = join(home, "AGENTS.md");
12047
12213
  if (await readOptional(path) !== input.expectedContent) {
12048
12214
  throw Object.assign(new Error("Global instructions changed; reload before saving"), {
@@ -12080,7 +12246,7 @@ function createGlobalInstructionsStore(home) {
12080
12246
  }
12081
12247
  return read();
12082
12248
  });
12083
- pending = result.then(
12249
+ pending2 = result.then(
12084
12250
  () => void 0,
12085
12251
  () => void 0
12086
12252
  );
@@ -12348,7 +12514,7 @@ function hasCurrentCustomModelCatalog(config) {
12348
12514
  if (configuredBaseUrl === null || configuredCatalogUrl === null) return false;
12349
12515
  const baseUrl = configuredBaseUrl.replace(/\/+$/u, "");
12350
12516
  const catalogUrl = configuredCatalogUrl.replace(/\/+$/u, "");
12351
- return catalogUrl === `${baseUrl}/models` && features?.["api_key_model_discovery"] === true;
12517
+ return catalogUrl === `${baseUrl}/models` && features?.["api_key_model_discovery"] !== false;
12352
12518
  }
12353
12519
  function readActiveProvider(config) {
12354
12520
  const providerId = readConfiguredProviderId(config) ?? "openai";
@@ -13237,7 +13403,6 @@ var CodexFuzzyFileSearchService = class {
13237
13403
  }
13238
13404
  };
13239
13405
  var DEFAULT_CHANGE_DEBOUNCE_MS = 100;
13240
- var MAX_GIT_REPOSITORIES_PER_ROOT = 32;
13241
13406
  var MAX_CODEX_GIT_METADATA_WATCHES = 128;
13242
13407
  function isRecord8(value) {
13243
13408
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -13284,21 +13449,7 @@ async function resolveGitMetadata(repositoryRoot) {
13284
13449
  return { commonDir, gitDir };
13285
13450
  }
13286
13451
  async function discoverRepositoryRoots(rootPath) {
13287
- if (await pathExists(join(rootPath, ".git"))) return [rootPath];
13288
- let entries;
13289
- try {
13290
- entries = (await readdir(rootPath, { withFileTypes: true })).filter((entry) => entry.isDirectory()).toSorted((left, right) => left.name.localeCompare(right.name));
13291
- } catch (error) {
13292
- if (error.code === "ENOENT") return [];
13293
- throw error;
13294
- }
13295
- const repositories = [];
13296
- for (const entry of entries) {
13297
- const candidate = join(rootPath, entry.name);
13298
- if (await pathExists(join(candidate, ".git"))) repositories.push(candidate);
13299
- if (repositories.length >= MAX_GIT_REPOSITORIES_PER_ROOT) break;
13300
- }
13301
- return repositories;
13452
+ return await pathExists(join(rootPath, ".git")) ? [rootPath] : [];
13302
13453
  }
13303
13454
  function resolveHeadRef(commonDir, head) {
13304
13455
  const refName = /^ref:\s*(refs\/.+)$/u.exec(head?.trim() ?? "")?.[1];
@@ -13374,9 +13525,9 @@ var CodexGitMetadataWatchService = class {
13374
13525
  const owner = this.#watchOwners.get(params["watchId"]);
13375
13526
  const state = owner === void 0 ? void 0 : this.#projects.get(owner.projectId);
13376
13527
  if (owner === void 0 || state === void 0 || state.released) return;
13377
- const pending = state.pendingRoots.get(owner.rootPath);
13378
- if (pending !== void 0) {
13379
- pending.refreshTopology ||= owner.refreshTopology;
13528
+ const pending2 = state.pendingRoots.get(owner.rootPath);
13529
+ if (pending2 !== void 0) {
13530
+ pending2.refreshTopology ||= owner.refreshTopology;
13380
13531
  return;
13381
13532
  }
13382
13533
  const change = {
@@ -13399,7 +13550,7 @@ var CodexGitMetadataWatchService = class {
13399
13550
  if (state === void 0) return;
13400
13551
  this.#projects.delete(projectId);
13401
13552
  state.released = true;
13402
- for (const pending of state.pendingRoots.values()) clearTimeout(pending.timer);
13553
+ for (const pending2 of state.pendingRoots.values()) clearTimeout(pending2.timer);
13403
13554
  state.pendingRoots.clear();
13404
13555
  await state.operation.catch(() => void 0);
13405
13556
  const registrations = [...state.registrationsByRoot.values()].flatMap((entries) => [
@@ -13850,6 +14001,7 @@ async function setCodexMcpServerEnabled(client, name, enabled) {
13850
14001
  // packages/provider-codex/src/runtime-provider.ts
13851
14002
  var CodexRuntimeProvider = class {
13852
14003
  personalization;
14004
+ historyStorage;
13853
14005
  fileSearch;
13854
14006
  search;
13855
14007
  #client;
@@ -13867,6 +14019,7 @@ var CodexRuntimeProvider = class {
13867
14019
  #reviewWorkerOwners = /* @__PURE__ */ new Map();
13868
14020
  constructor(client, logger = DEFAULT_PROVIDER_LOGGER, options = {}) {
13869
14021
  this.#client = client;
14022
+ this.historyStorage = createHistoryStorage(client);
13870
14023
  const codexHome = options.codexHome ?? process.env["CODEX_HOME"] ?? resolve(homedir(), ".codex");
13871
14024
  this.#attachmentDirectory = join(codexHome, "codexly", "thread-attachments");
13872
14025
  this.#forkTaskDirectory = join(codexHome, "codexly", "fork-tasks");
@@ -14019,11 +14172,6 @@ var CodexRuntimeProvider = class {
14019
14172
  await this.#providerConnection.prepareModelCatalog();
14020
14173
  catalogRuntime = await this.#modelCatalogRuntimeFactory();
14021
14174
  return await this.#listModelsWithClient(catalogRuntime.client);
14022
- } catch {
14023
- this.#logger.warn(
14024
- { diagnosticCode: "model_catalog_refresh_failed" },
14025
- "Fresh model catalog unavailable; falling back to the primary Codex CLI catalog"
14026
- );
14027
14175
  } finally {
14028
14176
  if (catalogRuntime !== null) {
14029
14177
  await catalogRuntime.close().catch(() => {
@@ -14071,6 +14219,9 @@ var CodexRuntimeProvider = class {
14071
14219
  listInstalledSkills(projects, forceReload) {
14072
14220
  return listCodexInstalledSkills(this.#client, projects, forceReload);
14073
14221
  }
14222
+ reconcileOfficialPlugins() {
14223
+ return reconcileCodexPlugins(this.#client);
14224
+ }
14074
14225
  listOfficialPlugins(projects, forceRefetch) {
14075
14226
  return listCodexOfficialPlugins(this.#client, projects, forceRefetch);
14076
14227
  }
@@ -14181,15 +14332,7 @@ function createCodexRuntimeProvider(options) {
14181
14332
  ...options.readTaskTitleModel === void 0 ? {} : { readTaskTitleModel: options.readTaskTitleModel }
14182
14333
  });
14183
14334
  }
14184
- var APP_SERVER_ARGUMENTS = [
14185
- "app-server",
14186
- "--enable",
14187
- "plugins",
14188
- "--enable",
14189
- "api_key_model_discovery",
14190
- "--listen",
14191
- "stdio://"
14192
- ];
14335
+ var APP_SERVER_ARGUMENTS = ["app-server", "--enable", "plugins", "--listen", "stdio://"];
14193
14336
  var CodexAppServerExitedError = class extends RpcConnectionClosedError {
14194
14337
  exitCode;
14195
14338
  signal;