@bryanhu/codexly 0.23.0 → 0.25.2

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 (604) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +24 -15
  3. package/README.zh-CN.md +29 -20
  4. package/dist/{chunk-B2673ODM.js → chunk-REIMOLGX.js} +59 -2
  5. package/dist/{chunk-PRIMEL2G.js → chunk-SVPC5JYN.js} +551 -83
  6. package/dist/{chunk-HGSPZCBB.js → chunk-WP6LVYP6.js} +283 -169
  7. package/dist/cli.js +14 -8
  8. package/dist/client/index.js +8 -1
  9. package/dist/core/index.js +1 -1
  10. package/dist/providers/codex/index.js +2 -2
  11. package/dist/server/index.js +3 -3
  12. package/dist/web/.vite/manifest.json +1572 -131
  13. package/dist/web/.vite/manifest.json.br +0 -0
  14. package/dist/web/.vite/manifest.json.gz +0 -0
  15. package/dist/web/assets/abnfDiagram-N423BO3Z-DAxnMtfX.js +1 -0
  16. package/dist/web/assets/abnfDiagram-N423BO3Z-DAxnMtfX.js.br +0 -0
  17. package/dist/web/assets/abnfDiagram-N423BO3Z-DAxnMtfX.js.gz +0 -0
  18. package/dist/web/assets/{agent-settings-panel-Ci9mJOS-.js → agent-settings-panel-B4PhB6nU.js} +1 -1
  19. package/dist/web/assets/agent-settings-panel-B4PhB6nU.js.br +0 -0
  20. package/dist/web/assets/agent-settings-panel-B4PhB6nU.js.gz +0 -0
  21. package/dist/web/assets/arc-C6pGbJrV.js +1 -0
  22. package/dist/web/assets/arc-C6pGbJrV.js.br +0 -0
  23. package/dist/web/assets/arc-C6pGbJrV.js.gz +0 -0
  24. package/dist/web/assets/architecture-TIHT7OUA-BWqzHezU.js +1 -0
  25. package/dist/web/assets/architecture-TIHT7OUA-BWqzHezU.js.br +0 -0
  26. package/dist/web/assets/architecture-TIHT7OUA-BWqzHezU.js.gz +0 -0
  27. package/dist/web/assets/architectureDiagram-T3A2C74G-DPqHJb7n.js +36 -0
  28. package/dist/web/assets/architectureDiagram-T3A2C74G-DPqHJb7n.js.br +0 -0
  29. package/dist/web/assets/architectureDiagram-T3A2C74G-DPqHJb7n.js.gz +0 -0
  30. package/dist/web/assets/array-BifhSqXX.js +1 -0
  31. package/dist/web/assets/array-BifhSqXX.js.br +0 -0
  32. package/dist/web/assets/array-BifhSqXX.js.gz +0 -0
  33. package/dist/web/assets/{attachments-uWbRsPJj.js → attachments-DT0TLwf9.js} +1 -1
  34. package/dist/web/assets/attachments-DT0TLwf9.js.br +0 -0
  35. package/dist/web/assets/attachments-DT0TLwf9.js.gz +0 -0
  36. package/dist/web/assets/{background-image-picker-qGpdQPQi.js → background-image-picker-BGQwbEFL.js} +1 -1
  37. package/dist/web/assets/background-image-picker-BGQwbEFL.js.br +0 -0
  38. package/dist/web/assets/background-image-picker-BGQwbEFL.js.gz +0 -0
  39. package/dist/web/assets/{bing-wallpaper-queries-uesKD16x.js → bing-wallpaper-queries-D5Wcfyo2.js} +1 -1
  40. package/dist/web/assets/bing-wallpaper-queries-D5Wcfyo2.js.br +0 -0
  41. package/dist/web/assets/bing-wallpaper-queries-D5Wcfyo2.js.gz +0 -0
  42. package/dist/web/assets/blockDiagram-VBNYF7ZC-CLKHXfJo.js +132 -0
  43. package/dist/web/assets/blockDiagram-VBNYF7ZC-CLKHXfJo.js.br +0 -0
  44. package/dist/web/assets/blockDiagram-VBNYF7ZC-CLKHXfJo.js.gz +0 -0
  45. package/dist/web/assets/{button-group-075rCj_f.js → button-group-DxlWEb9s.js} +1 -1
  46. package/dist/web/assets/button-group-DxlWEb9s.js.br +0 -0
  47. package/dist/web/assets/button-group-DxlWEb9s.js.gz +0 -0
  48. package/dist/web/assets/c4Diagram-5PPSVZJV-CqHRbhyf.js +10 -0
  49. package/dist/web/assets/c4Diagram-5PPSVZJV-CqHRbhyf.js.br +0 -0
  50. package/dist/web/assets/c4Diagram-5PPSVZJV-CqHRbhyf.js.gz +0 -0
  51. package/dist/web/assets/channel-DiROXJxP.js +1 -0
  52. package/dist/web/assets/channel-DiROXJxP.js.br +0 -0
  53. package/dist/web/assets/channel-DiROXJxP.js.gz +0 -0
  54. package/dist/web/assets/chunk-2GRJ4B5K-BCpVABFi.js +1 -0
  55. package/dist/web/assets/chunk-2GRJ4B5K-BCpVABFi.js.br +0 -0
  56. package/dist/web/assets/chunk-2GRJ4B5K-BCpVABFi.js.gz +0 -0
  57. package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
  58. package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js.br +0 -0
  59. package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js.gz +0 -0
  60. package/dist/web/assets/chunk-3NCLNEKW-DSv6TLAj.js +1 -0
  61. package/dist/web/assets/chunk-3NCLNEKW-DSv6TLAj.js.br +0 -0
  62. package/dist/web/assets/chunk-3NCLNEKW-DSv6TLAj.js.gz +0 -0
  63. package/dist/web/assets/chunk-4I5QYGJK-CQtKMwGK.js +1 -0
  64. package/dist/web/assets/chunk-4I5QYGJK-CQtKMwGK.js.br +0 -0
  65. package/dist/web/assets/chunk-4I5QYGJK-CQtKMwGK.js.gz +0 -0
  66. package/dist/web/assets/chunk-5FCAYU7R-DNtJmW0j.js +1 -0
  67. package/dist/web/assets/chunk-5FCAYU7R-DNtJmW0j.js.br +0 -0
  68. package/dist/web/assets/chunk-5FCAYU7R-DNtJmW0j.js.gz +0 -0
  69. package/dist/web/assets/chunk-5HE753X5-o8-OCfIL.js +1 -0
  70. package/dist/web/assets/chunk-5HE753X5-o8-OCfIL.js.br +0 -0
  71. package/dist/web/assets/chunk-5HE753X5-o8-OCfIL.js.gz +0 -0
  72. package/dist/web/assets/chunk-5JV3BV7I-DKfYBAeY.js +1 -0
  73. package/dist/web/assets/chunk-5JV3BV7I-DKfYBAeY.js.br +0 -0
  74. package/dist/web/assets/chunk-5JV3BV7I-DKfYBAeY.js.gz +0 -0
  75. package/dist/web/assets/chunk-5RXB4S5H-cErMF61q.js +231 -0
  76. package/dist/web/assets/chunk-5RXB4S5H-cErMF61q.js.br +0 -0
  77. package/dist/web/assets/chunk-5RXB4S5H-cErMF61q.js.gz +0 -0
  78. package/dist/web/assets/chunk-5TONJI2A-DOX2waSJ.js +2 -0
  79. package/dist/web/assets/chunk-5TONJI2A-DOX2waSJ.js.br +0 -0
  80. package/dist/web/assets/chunk-5TONJI2A-DOX2waSJ.js.gz +0 -0
  81. package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
  82. package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js.br +0 -0
  83. package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js.gz +0 -0
  84. package/dist/web/assets/chunk-6Q2QTUOP-DX9SOXyR.js +88 -0
  85. package/dist/web/assets/chunk-6Q2QTUOP-DX9SOXyR.js.br +0 -0
  86. package/dist/web/assets/chunk-6Q2QTUOP-DX9SOXyR.js.gz +0 -0
  87. package/dist/web/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
  88. package/dist/web/assets/chunk-7BUUIJ7U-Bb538aSH.js.br +0 -0
  89. package/dist/web/assets/chunk-7BUUIJ7U-Bb538aSH.js.gz +0 -0
  90. package/dist/web/assets/chunk-7Z6QIM7H-Ch5r0EFR.js +10 -0
  91. package/dist/web/assets/chunk-7Z6QIM7H-Ch5r0EFR.js.br +0 -0
  92. package/dist/web/assets/chunk-7Z6QIM7H-Ch5r0EFR.js.gz +0 -0
  93. package/dist/web/assets/chunk-BIQX33UG-CuPbkyWp.js +1 -0
  94. package/dist/web/assets/chunk-BIQX33UG-CuPbkyWp.js.br +0 -0
  95. package/dist/web/assets/chunk-BIQX33UG-CuPbkyWp.js.gz +0 -0
  96. package/dist/web/assets/chunk-BO2N2NFS-B5HCeQ02.js +129 -0
  97. package/dist/web/assets/chunk-BO2N2NFS-B5HCeQ02.js.br +0 -0
  98. package/dist/web/assets/chunk-BO2N2NFS-B5HCeQ02.js.gz +0 -0
  99. package/dist/web/assets/chunk-CQNSW5MT-BbEh_krl.js +1 -0
  100. package/dist/web/assets/chunk-CQNSW5MT-BbEh_krl.js.br +0 -0
  101. package/dist/web/assets/chunk-CQNSW5MT-BbEh_krl.js.gz +0 -0
  102. package/dist/web/assets/chunk-CYSBUYHQ-CbOq7Rc1.js +1 -0
  103. package/dist/web/assets/chunk-CYSBUYHQ-CbOq7Rc1.js.br +0 -0
  104. package/dist/web/assets/chunk-CYSBUYHQ-CbOq7Rc1.js.gz +0 -0
  105. package/dist/web/assets/chunk-EMLP6XTP-BoneA0Uo.js +1 -0
  106. package/dist/web/assets/chunk-EMLP6XTP-BoneA0Uo.js.br +0 -0
  107. package/dist/web/assets/chunk-EMLP6XTP-BoneA0Uo.js.gz +0 -0
  108. package/dist/web/assets/chunk-GF5L2VYU-CccrucrR.js +206 -0
  109. package/dist/web/assets/chunk-GF5L2VYU-CccrucrR.js.br +0 -0
  110. package/dist/web/assets/chunk-GF5L2VYU-CccrucrR.js.gz +0 -0
  111. package/dist/web/assets/chunk-I66GZJ75-DHqpIsjZ.js +127 -0
  112. package/dist/web/assets/chunk-I66GZJ75-DHqpIsjZ.js.br +0 -0
  113. package/dist/web/assets/chunk-I66GZJ75-DHqpIsjZ.js.gz +0 -0
  114. package/dist/web/assets/chunk-J7OUQ5F2-BoS2fCJs.js +2 -0
  115. package/dist/web/assets/chunk-J7OUQ5F2-BoS2fCJs.js.br +0 -0
  116. package/dist/web/assets/chunk-J7OUQ5F2-BoS2fCJs.js.gz +0 -0
  117. package/dist/web/assets/chunk-JG7HCLWE-Dk4_aECj.js +2 -0
  118. package/dist/web/assets/chunk-JG7HCLWE-Dk4_aECj.js.br +0 -0
  119. package/dist/web/assets/chunk-JG7HCLWE-Dk4_aECj.js.gz +0 -0
  120. package/dist/web/assets/chunk-JQJVKLGR-BwCkIKwN.js +156 -0
  121. package/dist/web/assets/chunk-JQJVKLGR-BwCkIKwN.js.br +0 -0
  122. package/dist/web/assets/chunk-JQJVKLGR-BwCkIKwN.js.gz +0 -0
  123. package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
  124. package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js.br +0 -0
  125. package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js.gz +0 -0
  126. package/dist/web/assets/chunk-KBJHAD2P-Bhy2hp3N.js +1 -0
  127. package/dist/web/assets/chunk-KBJHAD2P-Bhy2hp3N.js.br +0 -0
  128. package/dist/web/assets/chunk-KBJHAD2P-Bhy2hp3N.js.gz +0 -0
  129. package/dist/web/assets/chunk-KEIR6QF5-Dj-OpFgW.js +161 -0
  130. package/dist/web/assets/chunk-KEIR6QF5-Dj-OpFgW.js.br +0 -0
  131. package/dist/web/assets/chunk-KEIR6QF5-Dj-OpFgW.js.gz +0 -0
  132. package/dist/web/assets/chunk-MOZMSUNE-BgA8jCvb.js +1 -0
  133. package/dist/web/assets/chunk-MOZMSUNE-BgA8jCvb.js.br +0 -0
  134. package/dist/web/assets/chunk-MOZMSUNE-BgA8jCvb.js.gz +0 -0
  135. package/dist/web/assets/chunk-NSK5VX7P-BvpMMwDk.js +2 -0
  136. package/dist/web/assets/chunk-NSK5VX7P-BvpMMwDk.js.br +0 -0
  137. package/dist/web/assets/chunk-NSK5VX7P-BvpMMwDk.js.gz +0 -0
  138. package/dist/web/assets/chunk-OSBZ3O6U-CX9EQ5t2.js +1 -0
  139. package/dist/web/assets/chunk-OSBZ3O6U-CX9EQ5t2.js.br +0 -0
  140. package/dist/web/assets/chunk-OSBZ3O6U-CX9EQ5t2.js.gz +0 -0
  141. package/dist/web/assets/chunk-QBLGF6JB-C9zGMqvP.js +1 -0
  142. package/dist/web/assets/chunk-QBLGF6JB-C9zGMqvP.js.br +1 -0
  143. package/dist/web/assets/chunk-QBLGF6JB-C9zGMqvP.js.gz +0 -0
  144. package/dist/web/assets/chunk-QR6OTTB3-Kb7yF441.js +62 -0
  145. package/dist/web/assets/chunk-QR6OTTB3-Kb7yF441.js.br +0 -0
  146. package/dist/web/assets/chunk-QR6OTTB3-Kb7yF441.js.gz +0 -0
  147. package/dist/web/assets/chunk-R7FJI6CG-BpBhcF6R.js +1 -0
  148. package/dist/web/assets/chunk-R7FJI6CG-BpBhcF6R.js.br +0 -0
  149. package/dist/web/assets/chunk-R7FJI6CG-BpBhcF6R.js.gz +0 -0
  150. package/dist/web/assets/chunk-RYQCIY6F-AHipPOEA.js +1 -0
  151. package/dist/web/assets/chunk-RYQCIY6F-AHipPOEA.js.br +0 -0
  152. package/dist/web/assets/chunk-RYQCIY6F-AHipPOEA.js.gz +0 -0
  153. package/dist/web/assets/chunk-U6XO7XAA-CR0BSRFR.js +2 -0
  154. package/dist/web/assets/chunk-U6XO7XAA-CR0BSRFR.js.br +2 -0
  155. package/dist/web/assets/chunk-U6XO7XAA-CR0BSRFR.js.gz +0 -0
  156. package/dist/web/assets/chunk-UBXNYLIW-KBrfzzbv.js +1 -0
  157. package/dist/web/assets/chunk-UBXNYLIW-KBrfzzbv.js.br +0 -0
  158. package/dist/web/assets/chunk-UBXNYLIW-KBrfzzbv.js.gz +0 -0
  159. package/dist/web/assets/chunk-W5SLKNZC-DbxrCp-R.js +1 -0
  160. package/dist/web/assets/chunk-W5SLKNZC-DbxrCp-R.js.br +0 -0
  161. package/dist/web/assets/chunk-W5SLKNZC-DbxrCp-R.js.gz +0 -0
  162. package/dist/web/assets/chunk-WRU74C26-BPdPu049.js +70 -0
  163. package/dist/web/assets/chunk-WRU74C26-BPdPu049.js.br +0 -0
  164. package/dist/web/assets/chunk-WRU74C26-BPdPu049.js.gz +0 -0
  165. package/dist/web/assets/chunk-XXDRQBXY-DlK_iNGL.js +1 -0
  166. package/dist/web/assets/chunk-XXDRQBXY-DlK_iNGL.js.br +0 -0
  167. package/dist/web/assets/chunk-XXDRQBXY-DlK_iNGL.js.gz +0 -0
  168. package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
  169. package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js.br +0 -0
  170. package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js.gz +0 -0
  171. package/dist/web/assets/chunk-YOTPTUD7-CjHV8V6f.js +1 -0
  172. package/dist/web/assets/chunk-YOTPTUD7-CjHV8V6f.js.br +2 -0
  173. package/dist/web/assets/chunk-YOTPTUD7-CjHV8V6f.js.gz +0 -0
  174. package/dist/web/assets/chunk-ZIRB5QZD-C6fEPe3t.js +32 -0
  175. package/dist/web/assets/chunk-ZIRB5QZD-C6fEPe3t.js.br +0 -0
  176. package/dist/web/assets/chunk-ZIRB5QZD-C6fEPe3t.js.gz +0 -0
  177. package/dist/web/assets/classDiagram-JCYQIIEL-Dj7c_VjZ.js +1 -0
  178. package/dist/web/assets/classDiagram-JCYQIIEL-Dj7c_VjZ.js.br +0 -0
  179. package/dist/web/assets/classDiagram-JCYQIIEL-Dj7c_VjZ.js.gz +0 -0
  180. package/dist/web/assets/classDiagram-v2-OCEON4UE-Dj7c_VjZ.js +1 -0
  181. package/dist/web/assets/classDiagram-v2-OCEON4UE-Dj7c_VjZ.js.br +0 -0
  182. package/dist/web/assets/classDiagram-v2-OCEON4UE-Dj7c_VjZ.js.gz +0 -0
  183. package/dist/web/assets/{code-block-C9eTeWWd.js → code-block-xSrBsIBz.js} +1 -1
  184. package/dist/web/assets/code-block-xSrBsIBz.js.br +0 -0
  185. package/dist/web/assets/code-block-xSrBsIBz.js.gz +0 -0
  186. package/dist/web/assets/{commit-settings-panel-CaMMU0oA.js → commit-settings-panel-BeK-kywA.js} +1 -1
  187. package/dist/web/assets/commit-settings-panel-BeK-kywA.js.br +0 -0
  188. package/dist/web/assets/commit-settings-panel-BeK-kywA.js.gz +0 -0
  189. package/dist/web/assets/{context-menu-Dj3lnor1.js → context-menu-DiKb-4kt.js} +1 -1
  190. package/dist/web/assets/context-menu-DiKb-4kt.js.br +0 -0
  191. package/dist/web/assets/context-menu-DiKb-4kt.js.gz +0 -0
  192. package/dist/web/assets/cose-bilkent-JH36ORCC-ClnkE1nH.js +1 -0
  193. package/dist/web/assets/cose-bilkent-JH36ORCC-ClnkE1nH.js.br +0 -0
  194. package/dist/web/assets/cose-bilkent-JH36ORCC-ClnkE1nH.js.gz +0 -0
  195. package/dist/web/assets/cynefin-VYW2F7L2-4m18BxUG.js +1 -0
  196. package/dist/web/assets/cynefin-VYW2F7L2-4m18BxUG.js.br +0 -0
  197. package/dist/web/assets/cynefin-VYW2F7L2-4m18BxUG.js.gz +0 -0
  198. package/dist/web/assets/cynefinDiagram-MW4NZA55-CYb-LmaQ.js +62 -0
  199. package/dist/web/assets/cynefinDiagram-MW4NZA55-CYb-LmaQ.js.br +0 -0
  200. package/dist/web/assets/cynefinDiagram-MW4NZA55-CYb-LmaQ.js.gz +0 -0
  201. package/dist/web/assets/cytoscape.esm-CQFVGiJu.js +321 -0
  202. package/dist/web/assets/cytoscape.esm-CQFVGiJu.js.br +0 -0
  203. package/dist/web/assets/cytoscape.esm-CQFVGiJu.js.gz +0 -0
  204. package/dist/web/assets/dagre-VZM6K2ZE-BTyJISxs.js +4 -0
  205. package/dist/web/assets/dagre-VZM6K2ZE-BTyJISxs.js.br +0 -0
  206. package/dist/web/assets/dagre-VZM6K2ZE-BTyJISxs.js.gz +0 -0
  207. package/dist/web/assets/dagre-dpRSp0QF.js +1 -0
  208. package/dist/web/assets/dagre-dpRSp0QF.js.br +0 -0
  209. package/dist/web/assets/dagre-dpRSp0QF.js.gz +0 -0
  210. package/dist/web/assets/defaultLocale-C8Fc0cco.js +1 -0
  211. package/dist/web/assets/defaultLocale-C8Fc0cco.js.br +0 -0
  212. package/dist/web/assets/defaultLocale-C8Fc0cco.js.gz +0 -0
  213. package/dist/web/assets/diagram-7IWD3JNH-CigmbnBj.js +30 -0
  214. package/dist/web/assets/diagram-7IWD3JNH-CigmbnBj.js.br +0 -0
  215. package/dist/web/assets/diagram-7IWD3JNH-CigmbnBj.js.gz +0 -0
  216. package/dist/web/assets/diagram-B4RE2ZJO-vreQE7fA.js +3 -0
  217. package/dist/web/assets/diagram-B4RE2ZJO-vreQE7fA.js.br +0 -0
  218. package/dist/web/assets/diagram-B4RE2ZJO-vreQE7fA.js.gz +0 -0
  219. package/dist/web/assets/diagram-LBJQPF4R-7rsRUzmq.js +24 -0
  220. package/dist/web/assets/diagram-LBJQPF4R-7rsRUzmq.js.br +0 -0
  221. package/dist/web/assets/diagram-LBJQPF4R-7rsRUzmq.js.gz +0 -0
  222. package/dist/web/assets/diagram-Q27KOJAE-BIXltYW7.js +24 -0
  223. package/dist/web/assets/diagram-Q27KOJAE-BIXltYW7.js.br +0 -0
  224. package/dist/web/assets/diagram-Q27KOJAE-BIXltYW7.js.gz +0 -0
  225. package/dist/web/assets/diagram-UB23O5K3-lztJLOEw.js +41 -0
  226. package/dist/web/assets/diagram-UB23O5K3-lztJLOEw.js.br +0 -0
  227. package/dist/web/assets/diagram-UB23O5K3-lztJLOEw.js.gz +0 -0
  228. package/dist/web/assets/dist-BH9bKIvu.js +1 -0
  229. package/dist/web/assets/dist-BH9bKIvu.js.br +0 -0
  230. package/dist/web/assets/dist-BH9bKIvu.js.gz +0 -0
  231. package/dist/web/assets/ebnfDiagram-BXEA7PRR-B6RBGCW1.js +1 -0
  232. package/dist/web/assets/ebnfDiagram-BXEA7PRR-B6RBGCW1.js.br +0 -0
  233. package/dist/web/assets/ebnfDiagram-BXEA7PRR-B6RBGCW1.js.gz +0 -0
  234. package/dist/web/assets/erDiagram-JOGREHBK-CHh7mX3R.js +85 -0
  235. package/dist/web/assets/erDiagram-JOGREHBK-CHh7mX3R.js.br +0 -0
  236. package/dist/web/assets/erDiagram-JOGREHBK-CHh7mX3R.js.gz +0 -0
  237. package/dist/web/assets/eventmodeling-45OFAUF4-Dp0gpjhg.js +1 -0
  238. package/dist/web/assets/eventmodeling-45OFAUF4-Dp0gpjhg.js.br +0 -0
  239. package/dist/web/assets/eventmodeling-45OFAUF4-Dp0gpjhg.js.gz +0 -0
  240. package/dist/web/assets/{file-review-dialog-D8XVZ21M.js → file-review-dialog-CRFErSYs.js} +1 -1
  241. package/dist/web/assets/file-review-dialog-CRFErSYs.js.br +0 -0
  242. package/dist/web/assets/file-review-dialog-CRFErSYs.js.gz +0 -0
  243. package/dist/web/assets/flowDiagram-UKHOOZJN-DijEJ4wB.js +1 -0
  244. package/dist/web/assets/flowDiagram-UKHOOZJN-DijEJ4wB.js.br +0 -0
  245. package/dist/web/assets/flowDiagram-UKHOOZJN-DijEJ4wB.js.gz +0 -0
  246. package/dist/web/assets/ganttDiagram-PKOTCBZU-r4x0cWsn.js +292 -0
  247. package/dist/web/assets/ganttDiagram-PKOTCBZU-r4x0cWsn.js.br +0 -0
  248. package/dist/web/assets/ganttDiagram-PKOTCBZU-r4x0cWsn.js.gz +0 -0
  249. package/dist/web/assets/{git-history-panel-D2fKSR66.js → git-history-panel-BgJEabtl.js} +1 -1
  250. package/dist/web/assets/git-history-panel-BgJEabtl.js.br +0 -0
  251. package/dist/web/assets/git-history-panel-BgJEabtl.js.gz +0 -0
  252. package/dist/web/assets/gitGraph-TEB2WS4Q-Do0SQOtM.js +1 -0
  253. package/dist/web/assets/gitGraph-TEB2WS4Q-Do0SQOtM.js.br +0 -0
  254. package/dist/web/assets/gitGraph-TEB2WS4Q-Do0SQOtM.js.gz +0 -0
  255. package/dist/web/assets/gitGraphDiagram-DS77QQ5N-CQAF1Exd.js +106 -0
  256. package/dist/web/assets/gitGraphDiagram-DS77QQ5N-CQAF1Exd.js.br +0 -0
  257. package/dist/web/assets/gitGraphDiagram-DS77QQ5N-CQAF1Exd.js.gz +0 -0
  258. package/dist/web/assets/{global-search-dialog-BxT-UjpZ.js → global-search-dialog-Dwh3KnTB.js} +2 -2
  259. package/dist/web/assets/global-search-dialog-Dwh3KnTB.js.br +0 -0
  260. package/dist/web/assets/global-search-dialog-Dwh3KnTB.js.gz +0 -0
  261. package/dist/web/assets/{global-settings-about-DiblprcD.js → global-settings-about-DeZYmXbR.js} +1 -1
  262. package/dist/web/assets/global-settings-about-DeZYmXbR.js.br +0 -0
  263. package/dist/web/assets/global-settings-about-DeZYmXbR.js.gz +0 -0
  264. package/dist/web/assets/{global-settings-fields-D5T5SPXY.js → global-settings-fields-DCOxEAF4.js} +1 -1
  265. package/dist/web/assets/global-settings-fields-DCOxEAF4.js.br +0 -0
  266. package/dist/web/assets/global-settings-fields-DCOxEAF4.js.gz +0 -0
  267. package/dist/web/assets/{global-settings-model-COz331Sr.js → global-settings-model-BRDzC9Uf.js} +1 -1
  268. package/dist/web/assets/global-settings-model-BRDzC9Uf.js.br +0 -0
  269. package/dist/web/assets/global-settings-model-BRDzC9Uf.js.gz +0 -0
  270. package/dist/web/assets/{global-settings-page-DEBGBxSg.js → global-settings-page-s2cNX5jl.js} +2 -2
  271. package/dist/web/assets/global-settings-page-s2cNX5jl.js.br +0 -0
  272. package/dist/web/assets/global-settings-page-s2cNX5jl.js.gz +0 -0
  273. package/dist/web/assets/{global-settings-pets-DwJnj_6N.js → global-settings-pets-CqOeooq8.js} +1 -1
  274. package/dist/web/assets/global-settings-pets-CqOeooq8.js.br +0 -0
  275. package/dist/web/assets/global-settings-pets-CqOeooq8.js.gz +0 -0
  276. package/dist/web/assets/graphlib-DS17s2tU.js +1 -0
  277. package/dist/web/assets/graphlib-DS17s2tU.js.br +0 -0
  278. package/dist/web/assets/graphlib-DS17s2tU.js.gz +0 -0
  279. package/dist/web/assets/{highlighted-body-OFNGDK62-D0ZQwVKA.js → highlighted-body-OFNGDK62-YUaTxJcD.js} +1 -1
  280. package/dist/web/assets/highlighted-body-OFNGDK62-YUaTxJcD.js.br +0 -0
  281. package/dist/web/assets/highlighted-body-OFNGDK62-YUaTxJcD.js.gz +0 -0
  282. package/dist/web/assets/{history-task-timeline-oQRRdMbY.js → history-task-timeline-DVxGn1Wg.js} +1 -1
  283. package/dist/web/assets/history-task-timeline-DVxGn1Wg.js.br +0 -0
  284. package/dist/web/assets/history-task-timeline-DVxGn1Wg.js.gz +0 -0
  285. package/dist/web/assets/index-C0aNP2kZ.js +4 -0
  286. package/dist/web/assets/index-C0aNP2kZ.js.br +0 -0
  287. package/dist/web/assets/index-C0aNP2kZ.js.gz +0 -0
  288. package/dist/web/assets/index-eRj64nPO.css +2 -0
  289. package/dist/web/assets/index-eRj64nPO.css.br +0 -0
  290. package/dist/web/assets/index-eRj64nPO.css.gz +0 -0
  291. package/dist/web/assets/info-DKCQHKI2-DIc7uC4I.js +1 -0
  292. package/dist/web/assets/info-DKCQHKI2-DIc7uC4I.js.br +0 -0
  293. package/dist/web/assets/info-DKCQHKI2-DIc7uC4I.js.gz +0 -0
  294. package/dist/web/assets/infoDiagram-6WML65LV-D0HiS-vc.js +2 -0
  295. package/dist/web/assets/infoDiagram-6WML65LV-D0HiS-vc.js.br +0 -0
  296. package/dist/web/assets/infoDiagram-6WML65LV-D0HiS-vc.js.gz +0 -0
  297. package/dist/web/assets/init-D6jRqBbL.js +1 -0
  298. package/dist/web/assets/init-D6jRqBbL.js.br +0 -0
  299. package/dist/web/assets/init-D6jRqBbL.js.gz +0 -0
  300. package/dist/web/assets/{initial-deps-DipJkDUX.js → initial-deps-DrhykaPS.js} +1 -1
  301. package/dist/web/assets/initial-deps-DrhykaPS.js.br +0 -0
  302. package/dist/web/assets/{initial-deps-DipJkDUX.js.gz → initial-deps-DrhykaPS.js.gz} +0 -0
  303. package/dist/web/assets/{installed-skills-pane-v1IcvRKL.js → installed-skills-pane-BRm_IdzH.js} +1 -1
  304. package/dist/web/assets/installed-skills-pane-BRm_IdzH.js.br +0 -0
  305. package/dist/web/assets/installed-skills-pane-BRm_IdzH.js.gz +0 -0
  306. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-Cu4jLmjR.js +70 -0
  307. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-Cu4jLmjR.js.br +0 -0
  308. package/dist/web/assets/ishikawaDiagram-WSZJBQD7-Cu4jLmjR.js.gz +0 -0
  309. package/dist/web/assets/journeyDiagram-NVQOT4AX-DCnWm6sc.js +139 -0
  310. package/dist/web/assets/journeyDiagram-NVQOT4AX-DCnWm6sc.js.br +0 -0
  311. package/dist/web/assets/journeyDiagram-NVQOT4AX-DCnWm6sc.js.gz +0 -0
  312. package/dist/web/assets/kanban-definition-27J2QSJJ-Bu0RGSGL.js +89 -0
  313. package/dist/web/assets/kanban-definition-27J2QSJJ-Bu0RGSGL.js.br +0 -0
  314. package/dist/web/assets/kanban-definition-27J2QSJJ-Bu0RGSGL.js.gz +0 -0
  315. package/dist/web/assets/katex-B7rAX3Vi.js +257 -0
  316. package/dist/web/assets/katex-B7rAX3Vi.js.br +0 -0
  317. package/dist/web/assets/katex-B7rAX3Vi.js.gz +0 -0
  318. package/dist/web/assets/lazy-message-response-DXSAfNhE.js +2 -0
  319. package/dist/web/assets/lazy-message-response-DXSAfNhE.js.br +0 -0
  320. package/dist/web/assets/lazy-message-response-DXSAfNhE.js.gz +0 -0
  321. package/dist/web/assets/lib-CzsukjNX.js +3 -0
  322. package/dist/web/assets/lib-CzsukjNX.js.br +0 -0
  323. package/dist/web/assets/lib-CzsukjNX.js.gz +0 -0
  324. package/dist/web/assets/line-BoXFHZL9.js +1 -0
  325. package/dist/web/assets/line-BoXFHZL9.js.br +0 -0
  326. package/dist/web/assets/line-BoXFHZL9.js.gz +0 -0
  327. package/dist/web/assets/linear-BiXMiKrI.js +1 -0
  328. package/dist/web/assets/linear-BiXMiKrI.js.br +0 -0
  329. package/dist/web/assets/linear-BiXMiKrI.js.gz +0 -0
  330. package/dist/web/assets/map-BaFkSB1l.js +1 -0
  331. package/dist/web/assets/map-BaFkSB1l.js.br +0 -0
  332. package/dist/web/assets/map-BaFkSB1l.js.gz +0 -0
  333. package/dist/web/assets/{mcp-management-pane-DiPUaZAO.js → mcp-management-pane-O4akAGWL.js} +1 -1
  334. package/dist/web/assets/mcp-management-pane-O4akAGWL.js.br +0 -0
  335. package/dist/web/assets/mcp-management-pane-O4akAGWL.js.gz +0 -0
  336. package/dist/web/assets/mermaid-GHXKKRXX-BJ0J-N-0.js +1 -0
  337. package/dist/web/assets/mermaid-GHXKKRXX-BJ0J-N-0.js.br +0 -0
  338. package/dist/web/assets/mermaid-GHXKKRXX-BJ0J-N-0.js.gz +0 -0
  339. package/dist/web/assets/mermaid-parser.core-CqTHdZet.js +4 -0
  340. package/dist/web/assets/mermaid-parser.core-CqTHdZet.js.br +0 -0
  341. package/dist/web/assets/mermaid-parser.core-CqTHdZet.js.gz +0 -0
  342. package/dist/web/assets/message-file-download-B0Yykdg4.js +1 -0
  343. package/dist/web/assets/message-file-download-B0Yykdg4.js.br +1 -0
  344. package/dist/web/assets/message-file-download-B0Yykdg4.js.gz +0 -0
  345. package/dist/web/assets/message-response-Do1pbVRO.js +17 -0
  346. package/dist/web/assets/message-response-Do1pbVRO.js.br +0 -0
  347. package/dist/web/assets/message-response-Do1pbVRO.js.gz +0 -0
  348. package/dist/web/assets/mindmap-definition-FAOFIHXS-BG8i4kJH.js +96 -0
  349. package/dist/web/assets/mindmap-definition-FAOFIHXS-BG8i4kJH.js.br +0 -0
  350. package/dist/web/assets/mindmap-definition-FAOFIHXS-BG8i4kJH.js.gz +0 -0
  351. package/dist/web/assets/{official-plugins-pane-Cis1hRgm.js → official-plugins-pane-CevY7yAQ.js} +1 -1
  352. package/dist/web/assets/official-plugins-pane-CevY7yAQ.js.br +0 -0
  353. package/dist/web/assets/official-plugins-pane-CevY7yAQ.js.gz +0 -0
  354. package/dist/web/assets/ordinal-hYBb2elL.js +1 -0
  355. package/dist/web/assets/ordinal-hYBb2elL.js.br +0 -0
  356. package/dist/web/assets/ordinal-hYBb2elL.js.gz +0 -0
  357. package/dist/web/assets/packet-7NZHBO7P-D2duWGIK.js +1 -0
  358. package/dist/web/assets/packet-7NZHBO7P-D2duWGIK.js.br +0 -0
  359. package/dist/web/assets/packet-7NZHBO7P-D2duWGIK.js.gz +0 -0
  360. package/dist/web/assets/path-BWPyau1x.js +1 -0
  361. package/dist/web/assets/path-BWPyau1x.js.br +0 -0
  362. package/dist/web/assets/path-BWPyau1x.js.gz +0 -0
  363. package/dist/web/assets/pegDiagram-VL7TDLO6-C9bpWkm_.js +1 -0
  364. package/dist/web/assets/pegDiagram-VL7TDLO6-C9bpWkm_.js.br +0 -0
  365. package/dist/web/assets/pegDiagram-VL7TDLO6-C9bpWkm_.js.gz +0 -0
  366. package/dist/web/assets/{personalization-settings-panel-BB5nguhA.js → personalization-settings-panel-hBZieAU2.js} +1 -1
  367. package/dist/web/assets/personalization-settings-panel-hBZieAU2.js.br +0 -0
  368. package/dist/web/assets/personalization-settings-panel-hBZieAU2.js.gz +0 -0
  369. package/dist/web/assets/pie-RZYD4A2V-CynqTUkZ.js +1 -0
  370. package/dist/web/assets/pie-RZYD4A2V-CynqTUkZ.js.br +0 -0
  371. package/dist/web/assets/pie-RZYD4A2V-CynqTUkZ.js.gz +0 -0
  372. package/dist/web/assets/pieDiagram-7S7Q4E2Y-4hkZNMEH.js +39 -0
  373. package/dist/web/assets/pieDiagram-7S7Q4E2Y-4hkZNMEH.js.br +0 -0
  374. package/dist/web/assets/pieDiagram-7S7Q4E2Y-4hkZNMEH.js.gz +0 -0
  375. package/dist/web/assets/{project-file-popup-page-CAcF7DIa.js → project-file-popup-page-DGMiL1Oq.js} +1 -1
  376. package/dist/web/assets/project-file-popup-page-DGMiL1Oq.js.br +0 -0
  377. package/dist/web/assets/project-file-popup-page-DGMiL1Oq.js.gz +0 -0
  378. package/dist/web/assets/{project-source-dialog-DbOmvJBS.js → project-source-dialog-BOvAfWEP.js} +1 -1
  379. package/dist/web/assets/project-source-dialog-BOvAfWEP.js.br +0 -0
  380. package/dist/web/assets/project-source-dialog-BOvAfWEP.js.gz +0 -0
  381. package/dist/web/assets/project-source-panel-CkMURlQ0.js +1 -0
  382. package/dist/web/assets/project-source-panel-CkMURlQ0.js.br +0 -0
  383. package/dist/web/assets/project-source-panel-CkMURlQ0.js.gz +0 -0
  384. package/dist/web/assets/{prompt-input-DwT-XwSc.js → prompt-input-DrBC78Hu.js} +1 -1
  385. package/dist/web/assets/prompt-input-DrBC78Hu.js.br +0 -0
  386. package/dist/web/assets/prompt-input-DrBC78Hu.js.gz +0 -0
  387. package/dist/web/assets/{prompt-input-controls-CLasQrSj.js → prompt-input-controls-BBmAilY8.js} +1 -1
  388. package/dist/web/assets/prompt-input-controls-BBmAilY8.js.br +0 -0
  389. package/dist/web/assets/prompt-input-controls-BBmAilY8.js.gz +0 -0
  390. package/dist/web/assets/quadrantDiagram-CIZ2JOQS-C06AZQGb.js +7 -0
  391. package/dist/web/assets/quadrantDiagram-CIZ2JOQS-C06AZQGb.js.br +0 -0
  392. package/dist/web/assets/quadrantDiagram-CIZ2JOQS-C06AZQGb.js.gz +0 -0
  393. package/dist/web/assets/radar-I7S5WNFK-fIKE12aT.js +1 -0
  394. package/dist/web/assets/radar-I7S5WNFK-fIKE12aT.js.br +0 -0
  395. package/dist/web/assets/radar-I7S5WNFK-fIKE12aT.js.gz +0 -0
  396. package/dist/web/assets/railroad-3IZDKUUU-Bgx8HJTj.js +1 -0
  397. package/dist/web/assets/railroad-3IZDKUUU-Bgx8HJTj.js.br +0 -0
  398. package/dist/web/assets/railroad-3IZDKUUU-Bgx8HJTj.js.gz +0 -0
  399. package/dist/web/assets/railroad-abnf-AHOZXSZD-Nh6k60mH.js +1 -0
  400. package/dist/web/assets/railroad-abnf-AHOZXSZD-Nh6k60mH.js.br +0 -0
  401. package/dist/web/assets/railroad-abnf-AHOZXSZD-Nh6k60mH.js.gz +0 -0
  402. package/dist/web/assets/railroad-ebnf-EBAXGLYW-C74h3s_I.js +1 -0
  403. package/dist/web/assets/railroad-ebnf-EBAXGLYW-C74h3s_I.js.br +0 -0
  404. package/dist/web/assets/railroad-ebnf-EBAXGLYW-C74h3s_I.js.gz +0 -0
  405. package/dist/web/assets/railroad-peg-LSFZ7HO6-0hT-lN-u.js +1 -0
  406. package/dist/web/assets/railroad-peg-LSFZ7HO6-0hT-lN-u.js.br +0 -0
  407. package/dist/web/assets/railroad-peg-LSFZ7HO6-0hT-lN-u.js.gz +0 -0
  408. package/dist/web/assets/railroadDiagram-AXF67PYL-D4Wq0p9U.js +1 -0
  409. package/dist/web/assets/railroadDiagram-AXF67PYL-D4Wq0p9U.js.br +0 -0
  410. package/dist/web/assets/railroadDiagram-AXF67PYL-D4Wq0p9U.js.gz +0 -0
  411. package/dist/web/assets/requirementDiagram-LRYGKXZP-ArFbcs78.js +84 -0
  412. package/dist/web/assets/requirementDiagram-LRYGKXZP-ArFbcs78.js.br +0 -0
  413. package/dist/web/assets/requirementDiagram-LRYGKXZP-ArFbcs78.js.gz +0 -0
  414. package/dist/web/assets/rough.esm-CSKSodPl.js +1 -0
  415. package/dist/web/assets/rough.esm-CSKSodPl.js.br +0 -0
  416. package/dist/web/assets/rough.esm-CSKSodPl.js.gz +0 -0
  417. package/dist/web/assets/sankeyDiagram-W5VNT64P-CGgT9hbx.js +40 -0
  418. package/dist/web/assets/sankeyDiagram-W5VNT64P-CGgT9hbx.js.br +0 -0
  419. package/dist/web/assets/sankeyDiagram-W5VNT64P-CGgT9hbx.js.gz +0 -0
  420. package/dist/web/assets/{scheduled-task-date-time-picker-CnSPVHna.js → scheduled-task-date-time-picker-s-hvK5n9.js} +1 -1
  421. package/dist/web/assets/scheduled-task-date-time-picker-s-hvK5n9.js.br +0 -0
  422. package/dist/web/assets/scheduled-task-date-time-picker-s-hvK5n9.js.gz +0 -0
  423. package/dist/web/assets/{scheduled-task-schedule-BnMdRADi.js → scheduled-task-schedule-D0B-pep7.js} +1 -1
  424. package/dist/web/assets/scheduled-task-schedule-D0B-pep7.js.br +0 -0
  425. package/dist/web/assets/scheduled-task-schedule-D0B-pep7.js.gz +0 -0
  426. package/dist/web/assets/{scheduled-tasks-container-CNCzsjiP.js → scheduled-tasks-container-BBDBsJaB.js} +2 -2
  427. package/dist/web/assets/scheduled-tasks-container-BBDBsJaB.js.br +0 -0
  428. package/dist/web/assets/scheduled-tasks-container-BBDBsJaB.js.gz +0 -0
  429. package/dist/web/assets/sequenceDiagram-SI44F4Z6-DkZlQ1n1.js +162 -0
  430. package/dist/web/assets/sequenceDiagram-SI44F4Z6-DkZlQ1n1.js.br +0 -0
  431. package/dist/web/assets/sequenceDiagram-SI44F4Z6-DkZlQ1n1.js.gz +0 -0
  432. package/dist/web/assets/{settings-personalization-CB_nnUys.js → settings-personalization-CmZxfd5e.js} +1 -1
  433. package/dist/web/assets/settings-personalization-CmZxfd5e.js.br +0 -0
  434. package/dist/web/assets/settings-personalization-CmZxfd5e.js.gz +0 -0
  435. package/dist/web/assets/{sheet-JpH2S7eZ.js → sheet-E4LM6iKO.js} +1 -1
  436. package/dist/web/assets/sheet-E4LM6iKO.js.br +0 -0
  437. package/dist/web/assets/sheet-E4LM6iKO.js.gz +0 -0
  438. package/dist/web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
  439. package/dist/web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js.br +0 -0
  440. package/dist/web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js.gz +0 -0
  441. package/dist/web/assets/{skills-market-container-BgtnwdI7.js → skills-market-container-CVVAKp6l.js} +2 -2
  442. package/dist/web/assets/skills-market-container-CVVAKp6l.js.br +0 -0
  443. package/dist/web/assets/skills-market-container-CVVAKp6l.js.gz +0 -0
  444. package/dist/web/assets/src-Cz8bXOH0.js +1 -0
  445. package/dist/web/assets/src-Cz8bXOH0.js.br +0 -0
  446. package/dist/web/assets/src-Cz8bXOH0.js.gz +0 -0
  447. package/dist/web/assets/stateDiagram-OKZ733FA-DetLhpe1.js +1 -0
  448. package/dist/web/assets/stateDiagram-OKZ733FA-DetLhpe1.js.br +0 -0
  449. package/dist/web/assets/stateDiagram-OKZ733FA-DetLhpe1.js.gz +0 -0
  450. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DXz6bz0f.js +1 -0
  451. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DXz6bz0f.js.br +0 -0
  452. package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DXz6bz0f.js.gz +0 -0
  453. package/dist/web/assets/swimlanes-SLNWSIFB-BQ2zuhR5.js +2 -0
  454. package/dist/web/assets/swimlanes-SLNWSIFB-BQ2zuhR5.js.br +0 -0
  455. package/dist/web/assets/swimlanes-SLNWSIFB-BQ2zuhR5.js.gz +0 -0
  456. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BpL4rYlw.js +8 -0
  457. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BpL4rYlw.js.br +0 -0
  458. package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BpL4rYlw.js.gz +0 -0
  459. package/dist/web/assets/task-timeline-store-CWNL_FZu.js +6 -0
  460. package/dist/web/assets/task-timeline-store-CWNL_FZu.js.br +0 -0
  461. package/dist/web/assets/task-timeline-store-CWNL_FZu.js.gz +0 -0
  462. package/dist/web/assets/{third-party-marketplace-pane-CAI6XIWR.js → third-party-marketplace-pane-EcreIEPE.js} +1 -1
  463. package/dist/web/assets/third-party-marketplace-pane-EcreIEPE.js.br +0 -0
  464. package/dist/web/assets/third-party-marketplace-pane-EcreIEPE.js.gz +0 -0
  465. package/dist/web/assets/timeline-definition-Z64GVDOM-Bq-LxrYU.js +120 -0
  466. package/dist/web/assets/timeline-definition-Z64GVDOM-Bq-LxrYU.js.br +0 -0
  467. package/dist/web/assets/timeline-definition-Z64GVDOM-Bq-LxrYU.js.gz +0 -0
  468. package/dist/web/assets/treeView-QDETBFTQ-CygwzEgj.js +1 -0
  469. package/dist/web/assets/treeView-QDETBFTQ-CygwzEgj.js.br +0 -0
  470. package/dist/web/assets/treeView-QDETBFTQ-CygwzEgj.js.gz +0 -0
  471. package/dist/web/assets/treemap-6X3UGDF4-BbCXbaXr.js +1 -0
  472. package/dist/web/assets/treemap-6X3UGDF4-BbCXbaXr.js.br +0 -0
  473. package/dist/web/assets/treemap-6X3UGDF4-BbCXbaXr.js.gz +0 -0
  474. package/dist/web/assets/vennDiagram-T6HMQDX7-BeRjhB53.js +34 -0
  475. package/dist/web/assets/vennDiagram-T6HMQDX7-BeRjhB53.js.br +0 -0
  476. package/dist/web/assets/vennDiagram-T6HMQDX7-BeRjhB53.js.gz +0 -0
  477. package/dist/web/assets/wardley-OPB4EBWU-BjXxCRf_.js +1 -0
  478. package/dist/web/assets/wardley-OPB4EBWU-BjXxCRf_.js.br +0 -0
  479. package/dist/web/assets/wardley-OPB4EBWU-BjXxCRf_.js.gz +0 -0
  480. package/dist/web/assets/wardleyDiagram-T6FBY63Y-DCaHyzft.js +78 -0
  481. package/dist/web/assets/wardleyDiagram-T6FBY63Y-DCaHyzft.js.br +0 -0
  482. package/dist/web/assets/wardleyDiagram-T6FBY63Y-DCaHyzft.js.gz +0 -0
  483. package/dist/web/assets/workbench-composer-DADJ-NVk.js +8 -0
  484. package/dist/web/assets/workbench-composer-DADJ-NVk.js.br +0 -0
  485. package/dist/web/assets/workbench-composer-DADJ-NVk.js.gz +0 -0
  486. package/dist/web/assets/workbench-inspector-changes-TU-0Es7d.js +2 -0
  487. package/dist/web/assets/workbench-inspector-changes-TU-0Es7d.js.br +0 -0
  488. package/dist/web/assets/workbench-inspector-changes-TU-0Es7d.js.gz +0 -0
  489. package/dist/web/assets/workbench-pet-canvas-BQH6uPrr.js +1 -0
  490. package/dist/web/assets/workbench-pet-canvas-BQH6uPrr.js.br +0 -0
  491. package/dist/web/assets/workbench-pet-canvas-BQH6uPrr.js.gz +0 -0
  492. package/dist/web/assets/workbench-shell-Dc-kWIVc.js +3 -0
  493. package/dist/web/assets/workbench-shell-Dc-kWIVc.js.br +0 -0
  494. package/dist/web/assets/workbench-shell-Dc-kWIVc.js.gz +0 -0
  495. package/dist/web/assets/xychartDiagram-ELKLHX3M-CpqOE9KP.js +7 -0
  496. package/dist/web/assets/xychartDiagram-ELKLHX3M-CpqOE9KP.js.br +0 -0
  497. package/dist/web/assets/xychartDiagram-ELKLHX3M-CpqOE9KP.js.gz +0 -0
  498. package/dist/web/index.html +3 -3
  499. package/dist/web/index.html.br +0 -0
  500. package/dist/web/index.html.gz +0 -0
  501. package/package.json +2 -2
  502. package/dist/web/assets/agent-settings-panel-Ci9mJOS-.js.br +0 -0
  503. package/dist/web/assets/agent-settings-panel-Ci9mJOS-.js.gz +0 -0
  504. package/dist/web/assets/attachments-uWbRsPJj.js.br +0 -0
  505. package/dist/web/assets/attachments-uWbRsPJj.js.gz +0 -0
  506. package/dist/web/assets/background-image-picker-qGpdQPQi.js.br +0 -0
  507. package/dist/web/assets/background-image-picker-qGpdQPQi.js.gz +0 -0
  508. package/dist/web/assets/bing-wallpaper-queries-uesKD16x.js.br +0 -0
  509. package/dist/web/assets/bing-wallpaper-queries-uesKD16x.js.gz +0 -0
  510. package/dist/web/assets/button-group-075rCj_f.js.br +0 -0
  511. package/dist/web/assets/button-group-075rCj_f.js.gz +0 -0
  512. package/dist/web/assets/chunk-BO2N2NFS-D6bbuE0-.js +0 -131
  513. package/dist/web/assets/chunk-BO2N2NFS-D6bbuE0-.js.br +0 -0
  514. package/dist/web/assets/chunk-BO2N2NFS-D6bbuE0-.js.gz +0 -0
  515. package/dist/web/assets/code-block-C9eTeWWd.js.br +0 -0
  516. package/dist/web/assets/code-block-C9eTeWWd.js.gz +0 -0
  517. package/dist/web/assets/commit-settings-panel-CaMMU0oA.js.br +0 -0
  518. package/dist/web/assets/commit-settings-panel-CaMMU0oA.js.gz +0 -0
  519. package/dist/web/assets/context-menu-Dj3lnor1.js.br +0 -0
  520. package/dist/web/assets/context-menu-Dj3lnor1.js.gz +0 -0
  521. package/dist/web/assets/file-review-dialog-D8XVZ21M.js.br +0 -0
  522. package/dist/web/assets/file-review-dialog-D8XVZ21M.js.gz +0 -0
  523. package/dist/web/assets/git-history-panel-D2fKSR66.js.br +0 -0
  524. package/dist/web/assets/git-history-panel-D2fKSR66.js.gz +0 -0
  525. package/dist/web/assets/global-search-dialog-BxT-UjpZ.js.br +0 -0
  526. package/dist/web/assets/global-search-dialog-BxT-UjpZ.js.gz +0 -0
  527. package/dist/web/assets/global-settings-about-DiblprcD.js.br +0 -0
  528. package/dist/web/assets/global-settings-about-DiblprcD.js.gz +0 -0
  529. package/dist/web/assets/global-settings-fields-D5T5SPXY.js.br +0 -0
  530. package/dist/web/assets/global-settings-fields-D5T5SPXY.js.gz +0 -0
  531. package/dist/web/assets/global-settings-model-COz331Sr.js.br +0 -0
  532. package/dist/web/assets/global-settings-model-COz331Sr.js.gz +0 -0
  533. package/dist/web/assets/global-settings-page-DEBGBxSg.js.br +0 -0
  534. package/dist/web/assets/global-settings-page-DEBGBxSg.js.gz +0 -0
  535. package/dist/web/assets/global-settings-pets-DwJnj_6N.js.br +0 -0
  536. package/dist/web/assets/global-settings-pets-DwJnj_6N.js.gz +0 -0
  537. package/dist/web/assets/highlighted-body-OFNGDK62-D0ZQwVKA.js.br +0 -0
  538. package/dist/web/assets/highlighted-body-OFNGDK62-D0ZQwVKA.js.gz +0 -0
  539. package/dist/web/assets/history-task-timeline-oQRRdMbY.js.br +0 -0
  540. package/dist/web/assets/history-task-timeline-oQRRdMbY.js.gz +0 -0
  541. package/dist/web/assets/index-Cm5l38kF.css +0 -2
  542. package/dist/web/assets/index-Cm5l38kF.css.br +0 -0
  543. package/dist/web/assets/index-Cm5l38kF.css.gz +0 -0
  544. package/dist/web/assets/index-DRfXjZ2a.js +0 -4
  545. package/dist/web/assets/index-DRfXjZ2a.js.br +0 -0
  546. package/dist/web/assets/index-DRfXjZ2a.js.gz +0 -0
  547. package/dist/web/assets/initial-deps-DipJkDUX.js.br +0 -0
  548. package/dist/web/assets/installed-skills-pane-v1IcvRKL.js.br +0 -0
  549. package/dist/web/assets/installed-skills-pane-v1IcvRKL.js.gz +0 -0
  550. package/dist/web/assets/lazy-message-response-B6dT9kbf.js +0 -2
  551. package/dist/web/assets/lazy-message-response-B6dT9kbf.js.br +0 -0
  552. package/dist/web/assets/lazy-message-response-B6dT9kbf.js.gz +0 -0
  553. package/dist/web/assets/mcp-management-pane-DiPUaZAO.js.br +0 -0
  554. package/dist/web/assets/mcp-management-pane-DiPUaZAO.js.gz +0 -0
  555. package/dist/web/assets/mermaid-GHXKKRXX-BghgL98l.js +0 -1
  556. package/dist/web/assets/mermaid-GHXKKRXX-BghgL98l.js.br +0 -0
  557. package/dist/web/assets/mermaid-GHXKKRXX-BghgL98l.js.gz +0 -0
  558. package/dist/web/assets/message-response-BZZGbaVm.js +0 -7
  559. package/dist/web/assets/message-response-BZZGbaVm.js.br +0 -0
  560. package/dist/web/assets/message-response-BZZGbaVm.js.gz +0 -0
  561. package/dist/web/assets/official-plugins-pane-Cis1hRgm.js.br +0 -0
  562. package/dist/web/assets/official-plugins-pane-Cis1hRgm.js.gz +0 -0
  563. package/dist/web/assets/personalization-settings-panel-BB5nguhA.js.br +0 -0
  564. package/dist/web/assets/personalization-settings-panel-BB5nguhA.js.gz +0 -0
  565. package/dist/web/assets/project-file-popup-page-CAcF7DIa.js.br +0 -0
  566. package/dist/web/assets/project-file-popup-page-CAcF7DIa.js.gz +0 -0
  567. package/dist/web/assets/project-source-dialog-DbOmvJBS.js.br +0 -0
  568. package/dist/web/assets/project-source-dialog-DbOmvJBS.js.gz +0 -0
  569. package/dist/web/assets/project-source-panel-DGafRUDi.js +0 -1
  570. package/dist/web/assets/project-source-panel-DGafRUDi.js.br +0 -0
  571. package/dist/web/assets/project-source-panel-DGafRUDi.js.gz +0 -0
  572. package/dist/web/assets/prompt-input-DwT-XwSc.js.br +0 -0
  573. package/dist/web/assets/prompt-input-DwT-XwSc.js.gz +0 -0
  574. package/dist/web/assets/prompt-input-controls-CLasQrSj.js.br +0 -0
  575. package/dist/web/assets/prompt-input-controls-CLasQrSj.js.gz +0 -0
  576. package/dist/web/assets/scheduled-task-date-time-picker-CnSPVHna.js.br +0 -0
  577. package/dist/web/assets/scheduled-task-date-time-picker-CnSPVHna.js.gz +0 -0
  578. package/dist/web/assets/scheduled-task-schedule-BnMdRADi.js.br +0 -0
  579. package/dist/web/assets/scheduled-task-schedule-BnMdRADi.js.gz +0 -0
  580. package/dist/web/assets/scheduled-tasks-container-CNCzsjiP.js.br +0 -0
  581. package/dist/web/assets/scheduled-tasks-container-CNCzsjiP.js.gz +0 -0
  582. package/dist/web/assets/settings-personalization-CB_nnUys.js.br +0 -0
  583. package/dist/web/assets/settings-personalization-CB_nnUys.js.gz +0 -0
  584. package/dist/web/assets/sheet-JpH2S7eZ.js.br +0 -0
  585. package/dist/web/assets/sheet-JpH2S7eZ.js.gz +0 -0
  586. package/dist/web/assets/skills-market-container-BgtnwdI7.js.br +0 -0
  587. package/dist/web/assets/skills-market-container-BgtnwdI7.js.gz +0 -0
  588. package/dist/web/assets/task-timeline-store-BN41mX3t.js +0 -6
  589. package/dist/web/assets/task-timeline-store-BN41mX3t.js.br +0 -0
  590. package/dist/web/assets/task-timeline-store-BN41mX3t.js.gz +0 -0
  591. package/dist/web/assets/third-party-marketplace-pane-CAI6XIWR.js.br +0 -0
  592. package/dist/web/assets/third-party-marketplace-pane-CAI6XIWR.js.gz +0 -0
  593. package/dist/web/assets/workbench-composer-dKix0zGK.js +0 -8
  594. package/dist/web/assets/workbench-composer-dKix0zGK.js.br +0 -0
  595. package/dist/web/assets/workbench-composer-dKix0zGK.js.gz +0 -0
  596. package/dist/web/assets/workbench-inspector-changes-Bl5nS-_2.js +0 -2
  597. package/dist/web/assets/workbench-inspector-changes-Bl5nS-_2.js.br +0 -0
  598. package/dist/web/assets/workbench-inspector-changes-Bl5nS-_2.js.gz +0 -0
  599. package/dist/web/assets/workbench-pet-canvas-CnwZR5HG.js +0 -1
  600. package/dist/web/assets/workbench-pet-canvas-CnwZR5HG.js.br +0 -0
  601. package/dist/web/assets/workbench-pet-canvas-CnwZR5HG.js.gz +0 -0
  602. package/dist/web/assets/workbench-shell-B8lBrj2O.js +0 -3
  603. package/dist/web/assets/workbench-shell-B8lBrj2O.js.br +0 -0
  604. package/dist/web/assets/workbench-shell-B8lBrj2O.js.gz +0 -0
@@ -1,12 +1,12 @@
1
1
  import { createRequire } from 'node:module';
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-ZXTTTT25.js';
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-ZXTTTT25.js';
4
4
  import { __commonJS, __require, __toESM } from './chunk-K6J42667.js';
5
5
  import { execFile, spawn } from 'child_process';
6
- import { constants, mkdtempSync, rmSync, createReadStream, mkdirSync, unlinkSync, renameSync, writeFileSync, openSync, readSync, closeSync, statSync } from 'fs';
6
+ import { constants, mkdtempSync, rmSync, createReadStream, mkdirSync, unlinkSync, renameSync, writeFileSync, readFileSync, statSync, existsSync, openSync, readSync, closeSync } from 'fs';
7
7
  import { readFile, mkdir, writeFile, rename, rm, readdir, realpath, stat, access, open, unlink, lstat, opendir } from 'fs/promises';
8
8
  import { createRequire as createRequire$1 } from 'module';
9
- import { resolve, basename, dirname, join, relative, sep, win32, posix, isAbsolute, extname } from 'path';
9
+ import { resolve, join, basename, dirname, relative, sep, win32, posix, isAbsolute, extname } from 'path';
10
10
  import { promisify } from 'util';
11
11
  import { randomUUID, createHash } from 'crypto';
12
12
  import { Buffer as Buffer$1 } from 'buffer';
@@ -1983,7 +1983,7 @@ var require_thread_stream = __commonJS({
1983
1983
  var { version } = require_package();
1984
1984
  var { EventEmitter } = __require("events");
1985
1985
  var { Worker: Worker2 } = __require("worker_threads");
1986
- var { join: join7 } = __require("path");
1986
+ var { join: join9 } = __require("path");
1987
1987
  var { pathToFileURL } = __require("url");
1988
1988
  var { wait } = require_wait();
1989
1989
  var {
@@ -2034,7 +2034,7 @@ var require_thread_stream = __commonJS({
2034
2034
  function createWorker(stream, opts) {
2035
2035
  const { filename, workerData } = opts;
2036
2036
  const bundlerOverrides = "__bundlerPathsOverrides" in globalThis ? globalThis.__bundlerPathsOverrides : {};
2037
- const toExecute = bundlerOverrides["thread-stream-worker"] || join7(__dirname, "lib", "worker.js");
2037
+ const toExecute = bundlerOverrides["thread-stream-worker"] || join9(__dirname, "lib", "worker.js");
2038
2038
  const worker = new Worker2(toExecute, {
2039
2039
  ...opts.workerOpts,
2040
2040
  name: opts.workerOpts?.name || "thread-stream",
@@ -2499,9 +2499,9 @@ var require_thread_stream = __commonJS({
2499
2499
  var require_transport = __commonJS({
2500
2500
  "node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js"(exports, module) {
2501
2501
  var { createRequire: createRequire2 } = __require("module");
2502
- var { existsSync } = __require("fs");
2502
+ var { existsSync: existsSync2 } = __require("fs");
2503
2503
  var getCallers = require_caller();
2504
- var { join: join7, isAbsolute: isAbsolute7, sep: sep3 } = __require("path");
2504
+ var { join: join9, isAbsolute: isAbsolute8, sep: sep3 } = __require("path");
2505
2505
  var { fileURLToPath } = __require("url");
2506
2506
  var sleep = require_atomic_sleep();
2507
2507
  var onExit = require_on_exit_leak_free();
@@ -2573,7 +2573,7 @@ var require_transport = __commonJS({
2573
2573
  return false;
2574
2574
  }
2575
2575
  }
2576
- return isAbsolute7(path) && !existsSync(path);
2576
+ return isAbsolute8(path) && !existsSync2(path);
2577
2577
  }
2578
2578
  function stripQuotes(value) {
2579
2579
  const first = value[0];
@@ -2654,7 +2654,7 @@ var require_transport = __commonJS({
2654
2654
  throw new Error("only one of target or targets can be specified");
2655
2655
  }
2656
2656
  if (targets) {
2657
- target = bundlerOverrides["pino-worker"] || join7(__dirname, "worker.js");
2657
+ target = bundlerOverrides["pino-worker"] || join9(__dirname, "worker.js");
2658
2658
  options.targets = targets.filter((dest) => dest.target).map((dest) => {
2659
2659
  return {
2660
2660
  ...dest,
@@ -2672,7 +2672,7 @@ var require_transport = __commonJS({
2672
2672
  });
2673
2673
  });
2674
2674
  } else if (pipeline) {
2675
- target = bundlerOverrides["pino-worker"] || join7(__dirname, "worker.js");
2675
+ target = bundlerOverrides["pino-worker"] || join9(__dirname, "worker.js");
2676
2676
  options.pipelines = [pipeline.map((dest) => {
2677
2677
  return {
2678
2678
  ...dest,
@@ -2691,11 +2691,11 @@ var require_transport = __commonJS({
2691
2691
  return buildStream(fixTarget(target), options, worker, sync, name);
2692
2692
  function fixTarget(origin) {
2693
2693
  origin = bundlerOverrides[origin] || origin;
2694
- if (isAbsolute7(origin) || origin.indexOf("file://") === 0) {
2694
+ if (isAbsolute8(origin) || origin.indexOf("file://") === 0) {
2695
2695
  return origin;
2696
2696
  }
2697
2697
  if (origin === "pino/file") {
2698
- return join7(__dirname, "..", "file.js");
2698
+ return join9(__dirname, "..", "file.js");
2699
2699
  }
2700
2700
  let fixTarget2;
2701
2701
  for (const filePath of callers) {
@@ -3670,7 +3670,7 @@ var require_safe_stable_stringify = __commonJS({
3670
3670
  return circularValue;
3671
3671
  }
3672
3672
  let res = "";
3673
- let join7 = ",";
3673
+ let join9 = ",";
3674
3674
  const originalIndentation = indentation;
3675
3675
  if (Array.isArray(value)) {
3676
3676
  if (value.length === 0) {
@@ -3684,7 +3684,7 @@ var require_safe_stable_stringify = __commonJS({
3684
3684
  indentation += spacer;
3685
3685
  res += `
3686
3686
  ${indentation}`;
3687
- join7 = `,
3687
+ join9 = `,
3688
3688
  ${indentation}`;
3689
3689
  }
3690
3690
  const maximumValuesToStringify = Math.min(value.length, maximumBreadth);
@@ -3692,13 +3692,13 @@ ${indentation}`;
3692
3692
  for (; i < maximumValuesToStringify - 1; i++) {
3693
3693
  const tmp2 = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation);
3694
3694
  res += tmp2 !== void 0 ? tmp2 : "null";
3695
- res += join7;
3695
+ res += join9;
3696
3696
  }
3697
3697
  const tmp = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation);
3698
3698
  res += tmp !== void 0 ? tmp : "null";
3699
3699
  if (value.length - 1 > maximumBreadth) {
3700
3700
  const removedKeys = value.length - maximumBreadth - 1;
3701
- res += `${join7}"... ${getItemCount(removedKeys)} not stringified"`;
3701
+ res += `${join9}"... ${getItemCount(removedKeys)} not stringified"`;
3702
3702
  }
3703
3703
  if (spacer !== "") {
3704
3704
  res += `
@@ -3719,7 +3719,7 @@ ${originalIndentation}`;
3719
3719
  let separator = "";
3720
3720
  if (spacer !== "") {
3721
3721
  indentation += spacer;
3722
- join7 = `,
3722
+ join9 = `,
3723
3723
  ${indentation}`;
3724
3724
  whitespace = " ";
3725
3725
  }
@@ -3733,13 +3733,13 @@ ${indentation}`;
3733
3733
  const tmp = stringifyFnReplacer(key2, value, stack, replacer, spacer, indentation);
3734
3734
  if (tmp !== void 0) {
3735
3735
  res += `${separator}${strEscape(key2)}:${whitespace}${tmp}`;
3736
- separator = join7;
3736
+ separator = join9;
3737
3737
  }
3738
3738
  }
3739
3739
  if (keyLength > maximumBreadth) {
3740
3740
  const removedKeys = keyLength - maximumBreadth;
3741
3741
  res += `${separator}"...":${whitespace}"${getItemCount(removedKeys)} not stringified"`;
3742
- separator = join7;
3742
+ separator = join9;
3743
3743
  }
3744
3744
  if (spacer !== "" && separator.length > 1) {
3745
3745
  res = `
@@ -3780,7 +3780,7 @@ ${originalIndentation}`;
3780
3780
  }
3781
3781
  const originalIndentation = indentation;
3782
3782
  let res = "";
3783
- let join7 = ",";
3783
+ let join9 = ",";
3784
3784
  if (Array.isArray(value)) {
3785
3785
  if (value.length === 0) {
3786
3786
  return "[]";
@@ -3793,7 +3793,7 @@ ${originalIndentation}`;
3793
3793
  indentation += spacer;
3794
3794
  res += `
3795
3795
  ${indentation}`;
3796
- join7 = `,
3796
+ join9 = `,
3797
3797
  ${indentation}`;
3798
3798
  }
3799
3799
  const maximumValuesToStringify = Math.min(value.length, maximumBreadth);
@@ -3801,13 +3801,13 @@ ${indentation}`;
3801
3801
  for (; i < maximumValuesToStringify - 1; i++) {
3802
3802
  const tmp2 = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation);
3803
3803
  res += tmp2 !== void 0 ? tmp2 : "null";
3804
- res += join7;
3804
+ res += join9;
3805
3805
  }
3806
3806
  const tmp = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation);
3807
3807
  res += tmp !== void 0 ? tmp : "null";
3808
3808
  if (value.length - 1 > maximumBreadth) {
3809
3809
  const removedKeys = value.length - maximumBreadth - 1;
3810
- res += `${join7}"... ${getItemCount(removedKeys)} not stringified"`;
3810
+ res += `${join9}"... ${getItemCount(removedKeys)} not stringified"`;
3811
3811
  }
3812
3812
  if (spacer !== "") {
3813
3813
  res += `
@@ -3820,7 +3820,7 @@ ${originalIndentation}`;
3820
3820
  let whitespace = "";
3821
3821
  if (spacer !== "") {
3822
3822
  indentation += spacer;
3823
- join7 = `,
3823
+ join9 = `,
3824
3824
  ${indentation}`;
3825
3825
  whitespace = " ";
3826
3826
  }
@@ -3829,7 +3829,7 @@ ${indentation}`;
3829
3829
  const tmp = stringifyArrayReplacer(key2, value[key2], stack, replacer, spacer, indentation);
3830
3830
  if (tmp !== void 0) {
3831
3831
  res += `${separator}${strEscape(key2)}:${whitespace}${tmp}`;
3832
- separator = join7;
3832
+ separator = join9;
3833
3833
  }
3834
3834
  }
3835
3835
  if (spacer !== "" && separator.length > 1) {
@@ -3887,20 +3887,20 @@ ${originalIndentation}`;
3887
3887
  indentation += spacer;
3888
3888
  let res2 = `
3889
3889
  ${indentation}`;
3890
- const join8 = `,
3890
+ const join10 = `,
3891
3891
  ${indentation}`;
3892
3892
  const maximumValuesToStringify = Math.min(value.length, maximumBreadth);
3893
3893
  let i = 0;
3894
3894
  for (; i < maximumValuesToStringify - 1; i++) {
3895
3895
  const tmp2 = stringifyIndent(String(i), value[i], stack, spacer, indentation);
3896
3896
  res2 += tmp2 !== void 0 ? tmp2 : "null";
3897
- res2 += join8;
3897
+ res2 += join10;
3898
3898
  }
3899
3899
  const tmp = stringifyIndent(String(i), value[i], stack, spacer, indentation);
3900
3900
  res2 += tmp !== void 0 ? tmp : "null";
3901
3901
  if (value.length - 1 > maximumBreadth) {
3902
3902
  const removedKeys = value.length - maximumBreadth - 1;
3903
- res2 += `${join8}"... ${getItemCount(removedKeys)} not stringified"`;
3903
+ res2 += `${join10}"... ${getItemCount(removedKeys)} not stringified"`;
3904
3904
  }
3905
3905
  res2 += `
3906
3906
  ${originalIndentation}`;
@@ -3916,16 +3916,16 @@ ${originalIndentation}`;
3916
3916
  return '"[Object]"';
3917
3917
  }
3918
3918
  indentation += spacer;
3919
- const join7 = `,
3919
+ const join9 = `,
3920
3920
  ${indentation}`;
3921
3921
  let res = "";
3922
3922
  let separator = "";
3923
3923
  let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth);
3924
3924
  if (isTypedArrayWithEntries(value)) {
3925
- res += stringifyTypedArray(value, join7, maximumBreadth);
3925
+ res += stringifyTypedArray(value, join9, maximumBreadth);
3926
3926
  keys = keys.slice(value.length);
3927
3927
  maximumPropertiesToStringify -= value.length;
3928
- separator = join7;
3928
+ separator = join9;
3929
3929
  }
3930
3930
  if (deterministic) {
3931
3931
  keys = sort(keys, comparator);
@@ -3936,13 +3936,13 @@ ${indentation}`;
3936
3936
  const tmp = stringifyIndent(key2, value[key2], stack, spacer, indentation);
3937
3937
  if (tmp !== void 0) {
3938
3938
  res += `${separator}${strEscape(key2)}: ${tmp}`;
3939
- separator = join7;
3939
+ separator = join9;
3940
3940
  }
3941
3941
  }
3942
3942
  if (keyLength > maximumBreadth) {
3943
3943
  const removedKeys = keyLength - maximumBreadth;
3944
3944
  res += `${separator}"...": "${getItemCount(removedKeys)} not stringified"`;
3945
- separator = join7;
3945
+ separator = join9;
3946
3946
  }
3947
3947
  if (separator !== "") {
3948
3948
  res = `
@@ -4466,8 +4466,8 @@ var require_pino = __commonJS({
4466
4466
  }
4467
4467
  });
4468
4468
  var execFileAsync = promisify(execFile);
4469
- var SUPPORTED_CODEX_VERSION = "0.154.0";
4470
- var SUPPORTED_CODEX_VERSION_RANGE = ">=0.154.0,<0.155.0";
4469
+ var SUPPORTED_CODEX_VERSION = "0.156.0";
4470
+ var SUPPORTED_CODEX_VERSION_RANGE = ">=0.156.0,<0.157.0";
4471
4471
  var BUNDLED_CODEX_TARGETS = {
4472
4472
  "darwin-arm64": {
4473
4473
  executableName: "codex",
@@ -4609,7 +4609,7 @@ async function checkCodexVersion(binaryPath, options = {}) {
4609
4609
  }
4610
4610
  const [major, minor, patch] = version.split("-", 1)[0]?.split(".").map(Number) ?? [];
4611
4611
  const isPrerelease = version.includes("-");
4612
- if (major !== 0 || minor !== 154 || patch === void 0 || isPrerelease) {
4612
+ if (major !== 0 || minor !== 156 || patch === void 0 || isPrerelease) {
4613
4613
  throw new Error(
4614
4614
  `Unsupported Codex version ${version}; expected ${SUPPORTED_CODEX_VERSION_RANGE}`
4615
4615
  );
@@ -4664,6 +4664,7 @@ var CODEX_SPECIAL_NOTIFICATION_METHODS = /* @__PURE__ */ new Set([
4664
4664
  "serverRequest/resolved",
4665
4665
  "skills/changed",
4666
4666
  "thread/archived",
4667
+ "thread/attachment/updated",
4667
4668
  "thread/deleted",
4668
4669
  "thread/name/updated",
4669
4670
  "thread/started",
@@ -8295,6 +8296,373 @@ var CodexHistoricalAttachmentStore = class {
8295
8296
  }
8296
8297
  }
8297
8298
  };
8299
+ var DATA_URL_PATTERN2 = /^data:(image\/(?:gif|jpeg|png|webp));base64,([A-Za-z0-9+/]+={0,2})$/u;
8300
+ var CodexPersistentHistoricalAttachmentStore = class {
8301
+ constructor(directory) {
8302
+ this.directory = directory;
8303
+ }
8304
+ directory;
8305
+ #entries = /* @__PURE__ */ new Map();
8306
+ #pending = /* @__PURE__ */ new Map();
8307
+ #totalBytes = 0;
8308
+ addDataUrl(taskId, input, imageIndex) {
8309
+ const match = DATA_URL_PATTERN2.exec(input.url);
8310
+ const mediaType = match?.[1];
8311
+ const content = this.#decodeBase64(match?.[2]);
8312
+ if (content === void 0 || mediaType === void 0 || detectImageMediaType(content) !== mediaType) {
8313
+ return void 0;
8314
+ }
8315
+ return this.#add(
8316
+ taskId,
8317
+ "image",
8318
+ mediaType,
8319
+ normalizeAttachmentName(input.name, `\u56FE\u7247-${String(imageIndex + 1)}`),
8320
+ content
8321
+ );
8322
+ }
8323
+ addBase64Image(taskId, input, imageIndex) {
8324
+ const content = this.#decodeBase64(input.encoded);
8325
+ const mediaType = content === void 0 ? void 0 : detectImageMediaType(content);
8326
+ if (content === void 0 || mediaType === void 0) return void 0;
8327
+ return this.#add(
8328
+ taskId,
8329
+ "image",
8330
+ mediaType,
8331
+ normalizeAttachmentName(
8332
+ input.name,
8333
+ `\u751F\u6210\u56FE\u7247-${String(imageIndex + 1)}${imageExtensionsByMediaType[mediaType]}`
8334
+ ),
8335
+ content
8336
+ );
8337
+ }
8338
+ addStagedImage(taskId, staged, imageIndex, inputName) {
8339
+ if (staged.size <= 0 || staged.size > MAX_AGENT_IMAGE_BYTES) return void 0;
8340
+ try {
8341
+ const content = readFileSync(staged.path);
8342
+ if (content.byteLength !== staged.size || createHash("sha256").update(content).digest("hex") !== staged.contentDigest || detectImageMediaType(content) !== staged.mediaType) {
8343
+ return void 0;
8344
+ }
8345
+ const attachment = this.#add(
8346
+ taskId,
8347
+ "image",
8348
+ staged.mediaType,
8349
+ normalizeAttachmentName(
8350
+ inputName,
8351
+ `\u751F\u6210\u56FE\u7247-${String(imageIndex + 1)}${imageExtensionsByMediaType[staged.mediaType]}`
8352
+ ),
8353
+ content
8354
+ );
8355
+ if (attachment !== void 0) unlinkSync(staged.path);
8356
+ return attachment;
8357
+ } catch {
8358
+ return void 0;
8359
+ }
8360
+ }
8361
+ addLocalImage(taskId, path, imageIndex) {
8362
+ if (!isAbsolute(path)) return void 0;
8363
+ try {
8364
+ const stats = statSync(path);
8365
+ if (!stats.isFile() || stats.size <= 0 || stats.size > MAX_AGENT_IMAGE_BYTES)
8366
+ return void 0;
8367
+ const content = readFileSync(path);
8368
+ const mediaType = detectImageMediaType(content);
8369
+ if (mediaType === void 0) return void 0;
8370
+ return this.#add(
8371
+ taskId,
8372
+ "image",
8373
+ mediaType,
8374
+ normalizeAttachmentName(basename(path), `\u56FE\u7247-${String(imageIndex + 1)}`),
8375
+ content
8376
+ );
8377
+ } catch {
8378
+ return void 0;
8379
+ }
8380
+ }
8381
+ addText(taskId, input, textIndex) {
8382
+ const content = Buffer$1.from(input.text, "utf8");
8383
+ if (content.byteLength > MAX_AGENT_TEXT_BYTES) return void 0;
8384
+ return this.#add(
8385
+ taskId,
8386
+ "text",
8387
+ "text/plain",
8388
+ normalizeAttachmentName(input.name, `Pasted text-${String(textIndex + 1)}.txt`),
8389
+ content
8390
+ );
8391
+ }
8392
+ addLocalFile(taskId, input) {
8393
+ if (!isAbsolute(input.path)) return void 0;
8394
+ try {
8395
+ const stats = statSync(input.path);
8396
+ if (!stats.isFile() || stats.size <= 0 || stats.size > MAX_AGENT_FILE_BYTES) return void 0;
8397
+ return this.#add(
8398
+ taskId,
8399
+ "file",
8400
+ input.mediaType,
8401
+ normalizeAttachmentName(input.name, "Attachment"),
8402
+ readFileSync(input.path)
8403
+ );
8404
+ } catch {
8405
+ return void 0;
8406
+ }
8407
+ }
8408
+ restoreTask(taskId, metadata) {
8409
+ this.clearTask(taskId);
8410
+ for (const record of metadata) {
8411
+ const path = this.#blobPath(taskId, record.blobKey);
8412
+ try {
8413
+ const stats = statSync(path);
8414
+ if (!stats.isFile() || stats.size !== record.attachment.size) continue;
8415
+ this.#register({ attachment: record.attachment, blobKey: record.blobKey, path, taskId });
8416
+ } catch {
8417
+ }
8418
+ }
8419
+ }
8420
+ pendingMetadata(taskId) {
8421
+ return [...this.#pending.get(taskId)?.values() ?? []];
8422
+ }
8423
+ markPersisted(taskId, attachmentId) {
8424
+ const pending = this.#pending.get(taskId);
8425
+ pending?.delete(attachmentId);
8426
+ if (pending?.size === 0) this.#pending.delete(taskId);
8427
+ }
8428
+ async read(taskId, attachmentId) {
8429
+ const entry = this.#entries.get(attachmentId);
8430
+ if (entry?.taskId !== taskId) return void 0;
8431
+ try {
8432
+ const content = await readFile(entry.path);
8433
+ if (content.byteLength !== entry.attachment.size || createHash("sha256").update(content).digest("hex") !== entry.blobKey || entry.attachment.kind === "image" && detectImageMediaType(content) !== entry.attachment.mediaType) {
8434
+ this.#forget(attachmentId);
8435
+ rmSync(entry.path, { force: true });
8436
+ return void 0;
8437
+ }
8438
+ this.#touch(entry);
8439
+ return { ...entry.attachment, content };
8440
+ } catch {
8441
+ this.#forget(attachmentId);
8442
+ return void 0;
8443
+ }
8444
+ }
8445
+ clearTask(taskId) {
8446
+ for (const [attachmentId, entry] of this.#entries) {
8447
+ if (entry.taskId === taskId) this.#forget(attachmentId);
8448
+ }
8449
+ this.#pending.delete(taskId);
8450
+ }
8451
+ deleteTask(taskId) {
8452
+ this.clearTask(taskId);
8453
+ rmSync(this.#taskDirectory(taskId), { force: true, recursive: true });
8454
+ }
8455
+ dispose() {
8456
+ this.#entries.clear();
8457
+ this.#pending.clear();
8458
+ this.#totalBytes = 0;
8459
+ }
8460
+ #add(taskId, kind, mediaType, name, content) {
8461
+ const maxBytes = kind === "image" ? MAX_AGENT_IMAGE_BYTES : kind === "text" ? MAX_AGENT_TEXT_BYTES : MAX_AGENT_FILE_BYTES;
8462
+ if (content.byteLength === 0 || content.byteLength > maxBytes) {
8463
+ return void 0;
8464
+ }
8465
+ const blobKey = createHash("sha256").update(content).digest("hex");
8466
+ const id = `history-${createHash("sha256").update(JSON.stringify([taskId, kind, mediaType, name, content.byteLength, blobKey])).digest("hex")}`;
8467
+ const existing = this.#entries.get(id);
8468
+ if (existing?.taskId === taskId) {
8469
+ this.#touch(existing);
8470
+ return existing.attachment;
8471
+ }
8472
+ const attachment = { id, kind, mediaType, name, size: content.byteLength };
8473
+ const path = this.#blobPath(taskId, blobKey);
8474
+ mkdirSync(this.#taskDirectory(taskId), { recursive: true });
8475
+ if (!existsSync(path)) {
8476
+ const temporaryPath = `${path}.${process.pid.toString()}.${id}.tmp`;
8477
+ try {
8478
+ writeFileSync(temporaryPath, content, { flag: "wx" });
8479
+ renameSync(temporaryPath, path);
8480
+ } catch {
8481
+ rmSync(temporaryPath, { force: true });
8482
+ if (!existsSync(path)) return void 0;
8483
+ }
8484
+ }
8485
+ this.#ensureCapacity(attachment.size);
8486
+ this.#register({ attachment, blobKey, path, taskId });
8487
+ const taskPending = this.#pending.get(taskId) ?? /* @__PURE__ */ new Map();
8488
+ taskPending.set(id, { attachment, blobKey, schemaVersion: 1 });
8489
+ this.#pending.set(taskId, taskPending);
8490
+ return attachment;
8491
+ }
8492
+ #decodeBase64(encoded) {
8493
+ if (encoded === void 0 || encoded.length === 0) return void 0;
8494
+ const content = Buffer$1.from(encoded, "base64");
8495
+ return content.byteLength === 0 || content.byteLength > MAX_AGENT_IMAGE_BYTES || content.toString("base64").replace(/=+$/u, "") !== encoded.replace(/=+$/u, "") ? void 0 : content;
8496
+ }
8497
+ #taskDirectory(taskId) {
8498
+ return join(this.directory, createHash("sha256").update(taskId).digest("hex"));
8499
+ }
8500
+ #blobPath(taskId, blobKey) {
8501
+ return join(this.#taskDirectory(taskId), blobKey);
8502
+ }
8503
+ #register(entry) {
8504
+ this.#entries.set(entry.attachment.id, entry);
8505
+ this.#totalBytes += entry.attachment.size;
8506
+ }
8507
+ #touch(entry) {
8508
+ this.#entries.delete(entry.attachment.id);
8509
+ this.#entries.set(entry.attachment.id, entry);
8510
+ }
8511
+ #forget(attachmentId) {
8512
+ const entry = this.#entries.get(attachmentId);
8513
+ if (entry === void 0) return;
8514
+ this.#entries.delete(attachmentId);
8515
+ this.#totalBytes -= entry.attachment.size;
8516
+ }
8517
+ #ensureCapacity(incomingBytes) {
8518
+ while (this.#entries.size >= MAX_AGENT_HISTORY_IMAGES || this.#totalBytes + incomingBytes > MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES) {
8519
+ const oldestId = this.#entries.keys().next().value;
8520
+ if (oldestId === void 0) return;
8521
+ this.#forget(oldestId);
8522
+ }
8523
+ }
8524
+ };
8525
+
8526
+ // packages/provider-codex/src/thread-attachment-repository.ts
8527
+ var CODEXLY_THREAD_ATTACHMENT_TYPE = "codexly.history.v1";
8528
+ var THREAD_ATTACHMENT_PAGE_SIZE = 100;
8529
+ var BLOB_KEY_PATTERN = /^[a-f0-9]{64}$/u;
8530
+ function readAttachment(value) {
8531
+ const attachment = expectRecord(value, "Codexly thread attachment payload attachment");
8532
+ const id = expectString(attachment["id"], "Codexly thread attachment id");
8533
+ const kind = attachment["kind"];
8534
+ const mediaType = expectString(attachment["mediaType"], "Codexly thread attachment mediaType");
8535
+ const name = expectString(attachment["name"], "Codexly thread attachment name");
8536
+ const size = attachment["size"];
8537
+ if (kind !== "file" && kind !== "image" && kind !== "text" || id.length === 0 || id.length > 256 || mediaType.length === 0 || mediaType.length > 255 || name.length === 0 || name.length > 255 || !Number.isSafeInteger(size) || typeof size !== "number" || size <= 0 || size > MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES) {
8538
+ throw new CodexProtocolMappingError("Codexly thread attachment metadata is invalid");
8539
+ }
8540
+ return { id, kind, mediaType, name, size };
8541
+ }
8542
+ function readMetadata(value, identityKey) {
8543
+ const payload = expectRecord(value, "Codexly thread attachment payload");
8544
+ const attachment = readAttachment(payload["attachment"]);
8545
+ const blobKey = expectString(payload["blobKey"], "Codexly thread attachment blobKey");
8546
+ if (payload["schemaVersion"] !== 1 || attachment.id !== identityKey || !BLOB_KEY_PATTERN.test(blobKey)) {
8547
+ throw new CodexProtocolMappingError("Codexly thread attachment payload is invalid");
8548
+ }
8549
+ return { attachment, blobKey, schemaVersion: 1 };
8550
+ }
8551
+ var CodexThreadAttachmentRepository = class {
8552
+ constructor(client) {
8553
+ this.client = client;
8554
+ }
8555
+ client;
8556
+ #cache = /* @__PURE__ */ new Map();
8557
+ async load(threadId) {
8558
+ const cached = this.#cache.get(threadId);
8559
+ if (cached !== void 0) return cached;
8560
+ const metadata = [];
8561
+ const seenCursors = /* @__PURE__ */ new Set();
8562
+ let cursor;
8563
+ for (; ; ) {
8564
+ const response = expectRecord(
8565
+ await this.client.request("thread/attachment/list", {
8566
+ ...cursor === void 0 ? {} : { cursor },
8567
+ limit: THREAD_ATTACHMENT_PAGE_SIZE,
8568
+ threadId
8569
+ }),
8570
+ "thread/attachment/list response"
8571
+ );
8572
+ const data = response["data"];
8573
+ if (!Array.isArray(data)) {
8574
+ throw new CodexProtocolMappingError("thread/attachment/list data must be an array");
8575
+ }
8576
+ for (const value of data) {
8577
+ const attachment = expectRecord(value, "thread/attachment/list attachment");
8578
+ if (attachment["attachmentType"] !== CODEXLY_THREAD_ATTACHMENT_TYPE) continue;
8579
+ const identityKey = expectString(
8580
+ attachment["identityKey"],
8581
+ "thread/attachment/list identityKey"
8582
+ );
8583
+ metadata.push(readMetadata(attachment["payload"], identityKey));
8584
+ }
8585
+ const nextCursor = response["nextCursor"];
8586
+ if (nextCursor === null) break;
8587
+ cursor = expectString(nextCursor, "thread/attachment/list nextCursor");
8588
+ if (cursor.length === 0 || seenCursors.has(cursor)) {
8589
+ throw new CodexProtocolMappingError("thread/attachment/list returned an invalid cursor");
8590
+ }
8591
+ seenCursors.add(cursor);
8592
+ }
8593
+ this.#cache.set(threadId, metadata);
8594
+ return metadata;
8595
+ }
8596
+ async add(threadId, metadata) {
8597
+ const response = expectRecord(
8598
+ await this.client.request("thread/attachment/add", {
8599
+ attachmentType: CODEXLY_THREAD_ATTACHMENT_TYPE,
8600
+ identityKey: metadata.attachment.id,
8601
+ payload: metadata,
8602
+ threadId
8603
+ }),
8604
+ "thread/attachment/add response"
8605
+ );
8606
+ const nativeAttachment = expectRecord(
8607
+ response["attachment"],
8608
+ "thread/attachment/add attachment"
8609
+ );
8610
+ if (nativeAttachment["attachmentType"] !== CODEXLY_THREAD_ATTACHMENT_TYPE || nativeAttachment["identityKey"] !== metadata.attachment.id || !isRecord(nativeAttachment["payload"])) {
8611
+ throw new CodexProtocolMappingError("thread/attachment/add returned another attachment");
8612
+ }
8613
+ const persisted = readMetadata(nativeAttachment["payload"], metadata.attachment.id);
8614
+ if (JSON.stringify(persisted) !== JSON.stringify(metadata)) {
8615
+ throw new CodexProtocolMappingError("thread/attachment/add returned conflicting metadata");
8616
+ }
8617
+ this.#cache.delete(threadId);
8618
+ }
8619
+ invalidate(threadId) {
8620
+ this.#cache.delete(threadId);
8621
+ }
8622
+ clear() {
8623
+ this.#cache.clear();
8624
+ }
8625
+ };
8626
+
8627
+ // packages/provider-codex/src/thread-attachment-service.ts
8628
+ var CodexThreadAttachmentService = class {
8629
+ store;
8630
+ #preparedTasks = /* @__PURE__ */ new Set();
8631
+ #repository;
8632
+ constructor(client, attachmentDirectory) {
8633
+ this.#repository = new CodexThreadAttachmentRepository(client);
8634
+ this.store = new CodexPersistentHistoricalAttachmentStore(attachmentDirectory);
8635
+ }
8636
+ async prepare(taskId) {
8637
+ if (this.#preparedTasks.has(taskId)) return;
8638
+ this.store.restoreTask(taskId, await this.#repository.load(taskId));
8639
+ this.#preparedTasks.add(taskId);
8640
+ }
8641
+ async flush(taskId) {
8642
+ for (const metadata of this.store.pendingMetadata(taskId)) {
8643
+ await this.#repository.add(taskId, metadata);
8644
+ this.store.markPersisted(taskId, metadata.attachment.id);
8645
+ }
8646
+ }
8647
+ invalidate(taskId) {
8648
+ this.#preparedTasks.delete(taskId);
8649
+ this.#repository.invalidate(taskId);
8650
+ this.store.clearTask(taskId);
8651
+ }
8652
+ forget(taskId) {
8653
+ this.invalidate(taskId);
8654
+ }
8655
+ deleteTask(taskId) {
8656
+ this.#preparedTasks.delete(taskId);
8657
+ this.#repository.invalidate(taskId);
8658
+ this.store.deleteTask(taskId);
8659
+ }
8660
+ dispose() {
8661
+ this.#preparedTasks.clear();
8662
+ this.#repository.clear();
8663
+ this.store.dispose();
8664
+ }
8665
+ };
8298
8666
 
8299
8667
  // packages/provider-codex/src/pending-request-lifecycle.ts
8300
8668
  var MAX_TERMINAL_PENDING_REQUESTS = 1e3;
@@ -9425,7 +9793,8 @@ var CodexAgentProviderBase = class {
9425
9793
  taskTitles;
9426
9794
  eventListenersIncludingEphemeral = /* @__PURE__ */ new Set();
9427
9795
  eventListeners = /* @__PURE__ */ new Set();
9428
- historicalAttachments = new CodexHistoricalAttachmentStore();
9796
+ historicalAttachments;
9797
+ threadAttachments;
9429
9798
  logger;
9430
9799
  project;
9431
9800
  pendingLifecycle;
@@ -9448,7 +9817,10 @@ var CodexAgentProviderBase = class {
9448
9817
  else this.runtime.runningTaskIds.delete(event.taskId);
9449
9818
  }
9450
9819
  this.routeEvent(event);
9451
- if (event.type === "task.removed") this.clearTaskRuntimeState(event.taskId);
9820
+ if (event.type === "task.removed") {
9821
+ if (method === "thread/deleted") this.threadAttachments?.deleteTask(event.taskId);
9822
+ this.clearTaskRuntimeState(event.taskId);
9823
+ }
9452
9824
  } catch {
9453
9825
  warnDroppedCodexNotification(
9454
9826
  this.logger,
@@ -9463,6 +9835,8 @@ var CodexAgentProviderBase = class {
9463
9835
  }
9464
9836
  constructor(client, project, options = {}) {
9465
9837
  this.client = client;
9838
+ this.threadAttachments = options.attachmentDirectory === void 0 ? void 0 : new CodexThreadAttachmentService(client, options.attachmentDirectory);
9839
+ this.historicalAttachments = this.threadAttachments?.store ?? new CodexHistoricalAttachmentStore();
9466
9840
  this.taskTitles = options.taskTitles;
9467
9841
  this.logger = options.logger ?? DEFAULT_PROVIDER_LOGGER;
9468
9842
  this.project = project;
@@ -9506,7 +9880,8 @@ var CodexAgentProviderBase = class {
9506
9880
  ]);
9507
9881
  this.eventListenersIncludingEphemeral.clear();
9508
9882
  this.eventListeners.clear();
9509
- this.historicalAttachments.dispose();
9883
+ if (this.threadAttachments === void 0) this.historicalAttachments.dispose();
9884
+ else this.threadAttachments.dispose();
9510
9885
  this.pendingLifecycle.clear();
9511
9886
  this.runtime.clear();
9512
9887
  this.skillsById.clear();
@@ -9526,6 +9901,7 @@ var CodexAgentProviderBase = class {
9526
9901
  async deleteTask(taskId) {
9527
9902
  this.assertKnownProjectTask(taskId);
9528
9903
  await deleteCodexTask(this.client, taskId);
9904
+ this.threadAttachments?.deleteTask(taskId);
9529
9905
  this.clearTaskRuntimeState(taskId);
9530
9906
  }
9531
9907
  async unarchiveTask(taskId) {
@@ -10521,6 +10897,7 @@ var CodexAgentProviderTasks = class extends CodexAgentProviderTurns {
10521
10897
  cursor.reviewCursor
10522
10898
  );
10523
10899
  const transcriptSkillsByTurnId = await readCodexTranscriptTurnSkills(taskId);
10900
+ await this.threadAttachments?.prepare(taskId);
10524
10901
  const turns = this.runtime.messageIdentities.snapshot(
10525
10902
  taskId,
10526
10903
  mapAgentTurns(
@@ -10529,6 +10906,7 @@ var CodexAgentProviderTasks = class extends CodexAgentProviderTurns {
10529
10906
  (input2, textIndex) => this.mapMessageText(taskId, input2, textIndex)
10530
10907
  ).map((turn) => attachTranscriptSkills(turn, transcriptSkillsByTurnId.get(turn.id) ?? []))
10531
10908
  );
10909
+ await this.threadAttachments?.flush(taskId);
10532
10910
  const status = turns.some((turn) => turn.status === "running") ? "running" : mapThreadStatus(thread["status"]);
10533
10911
  this.runtime.skillMessages.seed(taskId, turns);
10534
10912
  const runningReviewTurn = turns.findLast(
@@ -10646,6 +11024,7 @@ var CodexAgentProviderTasks = class extends CodexAgentProviderTurns {
10646
11024
  if (!this.runtime.projectTaskIds.has(taskId)) {
10647
11025
  return void 0;
10648
11026
  }
11027
+ await this.threadAttachments?.prepare(taskId);
10649
11028
  return this.historicalAttachments.read(taskId, attachmentId);
10650
11029
  }
10651
11030
  async resolvePendingRequest(input) {
@@ -10727,6 +11106,13 @@ var CodexAgentProviderEvents = class extends CodexAgentProviderTasks {
10727
11106
  return true;
10728
11107
  }
10729
11108
  receiveNotification(method, params) {
11109
+ if (method === "thread/attachment/updated") {
11110
+ const taskId = readTaskId(params);
11111
+ if (taskId === void 0)
11112
+ this.warnDroppedNotification("invalid_notification", method, params);
11113
+ else this.threadAttachments?.invalidate(taskId);
11114
+ return;
11115
+ }
10730
11116
  if (this.handleProjectStateNotification(method, params)) return;
10731
11117
  this.handleNotification(method, params);
10732
11118
  }
@@ -10848,7 +11234,8 @@ var CodexAgentProviderEvents = class extends CodexAgentProviderTasks {
10848
11234
  }
10849
11235
  clearTaskRuntimeState(taskId) {
10850
11236
  this.taskTitles?.forget(taskId);
10851
- this.historicalAttachments.clearTask(taskId);
11237
+ if (this.threadAttachments === void 0) this.historicalAttachments.clearTask(taskId);
11238
+ else this.threadAttachments.forget(taskId);
10852
11239
  this.pendingLifecycle.clearTask(taskId);
10853
11240
  this.runtime.clearTask(taskId);
10854
11241
  }
@@ -11534,9 +11921,6 @@ async function updateAgentPreferences(client, settings) {
11534
11921
  }
11535
11922
 
11536
11923
  // packages/provider-codex/src/custom-model-catalog.ts
11537
- var DEFAULT_REASONING_EFFORTS = [
11538
- { description: "", id: "medium" }
11539
- ];
11540
11924
  var CodexProviderConnectionError = class extends Error {
11541
11925
  constructor(message) {
11542
11926
  super(message);
@@ -11634,10 +12018,8 @@ function mapCustomModels(values, countLimit) {
11634
12018
  throw new CodexProviderConnectionError("Custom provider returned no usable models");
11635
12019
  }
11636
12020
  const data = orderedModels.map((model, index) => {
11637
- const supportedReasoningEfforts = model.supportedReasoningEfforts === void 0 || model.supportedReasoningEfforts.length === 0 ? DEFAULT_REASONING_EFFORTS : model.supportedReasoningEfforts;
11638
- const defaultReasoningEffort = supportedReasoningEfforts.some(
11639
- (effort) => effort.id === model.defaultReasoningEffort
11640
- ) ? model.defaultReasoningEffort : supportedReasoningEfforts[0]?.id;
12021
+ const supportedReasoningEfforts = model.supportedReasoningEfforts === void 0 || model.supportedReasoningEfforts.length === 0 ? CUSTOM_MODEL_REASONING_FALLBACK.map((effort) => ({ ...effort })) : model.supportedReasoningEfforts;
12022
+ const defaultReasoningEffort = model.defaultReasoningEffort !== void 0 && supportedReasoningEfforts.some((effort) => effort.id === model.defaultReasoningEffort) ? model.defaultReasoningEffort : supportedReasoningEfforts.find((effort) => effort.id === "medium")?.id ?? supportedReasoningEfforts[0]?.id;
11641
12023
  if (defaultReasoningEffort === void 0) {
11642
12024
  throw new CodexProviderConnectionError("Custom model has no reasoning effort");
11643
12025
  }
@@ -11650,7 +12032,7 @@ function mapCustomModels(values, countLimit) {
11650
12032
  supportedReasoningEfforts
11651
12033
  };
11652
12034
  });
11653
- return { data, nextCursor: null };
12035
+ return normalizeCustomModelReasoning({ data, nextCursor: null });
11654
12036
  }
11655
12037
 
11656
12038
  // packages/provider-codex/src/native-state-snapshot.ts
@@ -11728,6 +12110,21 @@ function readModelProviderConfig(config, providerId) {
11728
12110
  const provider = providers?.[providerId];
11729
12111
  return isRecord6(provider) ? provider : null;
11730
12112
  }
12113
+ function hasCurrentCustomModelCatalog(config) {
12114
+ const activeProvider = readActiveProvider(config);
12115
+ const providerId = readConfiguredProviderId(config);
12116
+ if (activeProvider.mode !== "custom" || providerId === null || providerId === "openai") {
12117
+ return false;
12118
+ }
12119
+ const provider = readModelProviderConfig(config, providerId);
12120
+ const features = isRecord6(config["features"]) ? config["features"] : null;
12121
+ const configuredBaseUrl = optionalString3(provider?.["base_url"], 2048);
12122
+ const configuredCatalogUrl = optionalString3(provider?.["model_catalog_url"], 2048);
12123
+ if (configuredBaseUrl === null || configuredCatalogUrl === null) return false;
12124
+ const baseUrl = configuredBaseUrl.replace(/\/+$/u, "");
12125
+ const catalogUrl = configuredCatalogUrl.replace(/\/+$/u, "");
12126
+ return catalogUrl === `${baseUrl}/models` && features?.["api_key_model_discovery"] === true;
12127
+ }
11731
12128
  function readActiveProvider(config) {
11732
12129
  const providerId = readConfiguredProviderId(config) ?? "openai";
11733
12130
  const openaiBaseUrl = optionalString3(config["openai_base_url"], 2048);
@@ -11743,25 +12140,13 @@ function readActiveProvider(config) {
11743
12140
  }
11744
12141
  function createCustomProviderConfigUpdate(config, baseUrl, hasApiKey) {
11745
12142
  const configuredProviderId = readConfiguredProviderId(config);
11746
- const existingProviderId = readActiveProvider(config).mode === "custom" ? configuredProviderId : null;
12143
+ const existingProviderId = readActiveProvider(config).mode === "custom" && configuredProviderId !== "openai" ? configuredProviderId : null;
11747
12144
  const providerId = existingProviderId ?? DEFAULT_CUSTOM_PROVIDER_ID;
11748
- if (providerId === "openai") {
11749
- return {
11750
- edits: [{ keyPath: "openai_base_url", mergeStrategy: "upsert", value: baseUrl }],
11751
- providerId,
11752
- requiresOpenaiAuth: true,
11753
- rollbackEdits: [
11754
- {
11755
- keyPath: "openai_base_url",
11756
- mergeStrategy: "replace",
11757
- value: config["openai_base_url"] ?? null
11758
- }
11759
- ]
11760
- };
11761
- }
11762
12145
  const previousProvider = readModelProviderConfig(config, providerId);
12146
+ const previousFeatures = isRecord6(config["features"]) ? config["features"] : null;
11763
12147
  const previousRequiresOpenaiAuth = previousProvider?.["requires_openai_auth"];
11764
- const requiresOpenaiAuth = hasApiKey ? true : typeof previousRequiresOpenaiAuth === "boolean" ? previousRequiresOpenaiAuth : false;
12148
+ const migratesOpenAiOverride = configuredProviderId === "openai" && readActiveProvider(config).mode === "custom";
12149
+ const requiresOpenaiAuth = hasApiKey ? true : migratesOpenAiOverride ? true : typeof previousRequiresOpenaiAuth === "boolean" ? previousRequiresOpenaiAuth : false;
11765
12150
  const configuredName = nonEmptyString(previousProvider?.["name"]);
11766
12151
  const edits = [
11767
12152
  {
@@ -11769,10 +12154,16 @@ function createCustomProviderConfigUpdate(config, baseUrl, hasApiKey) {
11769
12154
  mergeStrategy: "upsert",
11770
12155
  value: {
11771
12156
  base_url: baseUrl,
12157
+ model_catalog_url: `${baseUrl}/models`,
11772
12158
  name: configuredName ?? providerId,
11773
12159
  requires_openai_auth: requiresOpenaiAuth,
11774
12160
  wire_api: "responses"
11775
12161
  }
12162
+ },
12163
+ {
12164
+ keyPath: "features.api_key_model_discovery",
12165
+ mergeStrategy: "upsert",
12166
+ value: true
11776
12167
  }
11777
12168
  ];
11778
12169
  const rollbackEdits = [
@@ -11780,6 +12171,11 @@ function createCustomProviderConfigUpdate(config, baseUrl, hasApiKey) {
11780
12171
  keyPath: `model_providers.${providerId}`,
11781
12172
  mergeStrategy: "replace",
11782
12173
  value: previousProvider
12174
+ },
12175
+ {
12176
+ keyPath: "features.api_key_model_discovery",
12177
+ mergeStrategy: "replace",
12178
+ value: previousFeatures?.["api_key_model_discovery"] ?? null
11783
12179
  }
11784
12180
  ];
11785
12181
  if (existingProviderId === null) {
@@ -11793,6 +12189,14 @@ function createCustomProviderConfigUpdate(config, baseUrl, hasApiKey) {
11793
12189
  mergeStrategy: "replace",
11794
12190
  value: config["model_provider"] ?? null
11795
12191
  });
12192
+ if (configuredProviderId === "openai" && config["openai_base_url"] !== void 0) {
12193
+ edits.push({ keyPath: "openai_base_url", mergeStrategy: "replace", value: null });
12194
+ rollbackEdits.push({
12195
+ keyPath: "openai_base_url",
12196
+ mergeStrategy: "replace",
12197
+ value: config["openai_base_url"]
12198
+ });
12199
+ }
11796
12200
  }
11797
12201
  return { edits, providerId, requiresOpenaiAuth, rollbackEdits };
11798
12202
  }
@@ -11981,7 +12385,21 @@ var CodexProviderConnectionService = class {
11981
12385
  invalidateConfig() {
11982
12386
  this.#nativeState.clear();
11983
12387
  }
11984
- async configureCustom(input, persistedModels) {
12388
+ async prepareModelCatalog() {
12389
+ const config = await this.#nativeState.readConfig();
12390
+ const activeProvider = readActiveProvider(config);
12391
+ if (activeProvider.mode !== "custom" || activeProvider.customBaseUrl === null) return;
12392
+ if (hasCurrentCustomModelCatalog(config)) return;
12393
+ const update = createCustomProviderConfigUpdate(
12394
+ config,
12395
+ normalizeBaseUrl(activeProvider.customBaseUrl),
12396
+ /*hasApiKey*/
12397
+ false
12398
+ );
12399
+ await this.#client.request("config/batchWrite", { edits: update.edits });
12400
+ this.#nativeState.clear();
12401
+ }
12402
+ async configureCustom(input, fallbackModels) {
11985
12403
  const baseUrl = normalizeBaseUrl(input.baseUrl);
11986
12404
  const apiKey = input.apiKey;
11987
12405
  if (apiKey?.trim().length === 0) {
@@ -11989,17 +12407,17 @@ var CodexProviderConnectionService = class {
11989
12407
  }
11990
12408
  const manualModels = normalizeManualModels(input.models ?? [], this.#modelCountLimit);
11991
12409
  let models;
11992
- if (input.models === void 0 && persistedModels !== void 0) {
11993
- models = persistedModels;
11994
- } else {
11995
- let discoveredModels;
11996
- try {
11997
- discoveredModels = await this.#discoverModels(baseUrl, apiKey);
11998
- } catch (error) {
11999
- if (manualModels.length === 0) throw error;
12000
- discoveredModels = [];
12001
- }
12410
+ try {
12411
+ const discoveredModels = await this.#discoverModels(baseUrl, apiKey);
12002
12412
  models = mapCustomModels([...discoveredModels, ...manualModels], this.#modelCountLimit);
12413
+ } catch (error) {
12414
+ if (manualModels.length > 0) {
12415
+ models = mapCustomModels(manualModels, this.#modelCountLimit);
12416
+ } else if (fallbackModels !== void 0) {
12417
+ models = fallbackModels;
12418
+ } else {
12419
+ throw error;
12420
+ }
12003
12421
  }
12004
12422
  this.#nativeState.clear();
12005
12423
  const [configResponse, accountResponse] = await Promise.all([
@@ -13197,9 +13615,11 @@ var CodexRuntimeProvider = class {
13197
13615
  fileSearch;
13198
13616
  search;
13199
13617
  #client;
13618
+ #attachmentDirectory;
13200
13619
  #taskTitles;
13201
13620
  #logger;
13202
13621
  #gitMetadataWatch;
13622
+ #modelCatalogRuntimeFactory;
13203
13623
  #providerConnection;
13204
13624
  #owners = new RuntimeOwnerRegistry();
13205
13625
  #projects = /* @__PURE__ */ new Map();
@@ -13208,10 +13628,10 @@ var CodexRuntimeProvider = class {
13208
13628
  #reviewWorkerOwners = /* @__PURE__ */ new Map();
13209
13629
  constructor(client, logger = DEFAULT_PROVIDER_LOGGER, options = {}) {
13210
13630
  this.#client = client;
13631
+ const codexHome = options.codexHome ?? process.env["CODEX_HOME"] ?? resolve(homedir(), ".codex");
13632
+ this.#attachmentDirectory = join(codexHome, "codexly", "thread-attachments");
13211
13633
  this.#taskTitles = options.readTaskTitleModel === void 0 ? void 0 : new CodexTaskTitles(client, options.readTaskTitleModel, logger);
13212
- const instructions = createGlobalInstructionsStore(
13213
- options.codexHome ?? process.env["CODEX_HOME"] ?? resolve(homedir(), ".codex")
13214
- );
13634
+ const instructions = createGlobalInstructionsStore(codexHome);
13215
13635
  this.personalization = {
13216
13636
  getGlobalInstructions: instructions.read,
13217
13637
  saveGlobalInstructions: (input) => instructions.save(input),
@@ -13222,6 +13642,7 @@ var CodexRuntimeProvider = class {
13222
13642
  updateAgentPreferences: (input) => updateAgentPreferences(client, input)
13223
13643
  };
13224
13644
  this.#logger = logger;
13645
+ this.#modelCatalogRuntimeFactory = options.modelCatalogRuntimeFactory;
13225
13646
  this.#providerConnection = new CodexProviderConnectionService(client, options);
13226
13647
  this.fileSearch = new CodexFuzzyFileSearchService(client);
13227
13648
  this.search = new CodexGlobalSearchService(client);
@@ -13287,8 +13708,8 @@ var CodexRuntimeProvider = class {
13287
13708
  cancelProviderLogin(loginId) {
13288
13709
  return this.#providerConnection.cancelLogin(loginId);
13289
13710
  }
13290
- configureCustomProvider(input, persistedModels) {
13291
- return this.#providerConnection.configureCustom(input, persistedModels);
13711
+ configureCustomProvider(input, fallbackModels) {
13712
+ return this.#providerConnection.configureCustom(input, fallbackModels);
13292
13713
  }
13293
13714
  forProject(project) {
13294
13715
  const primaryRoot = project.roots[0];
@@ -13320,6 +13741,7 @@ var CodexRuntimeProvider = class {
13320
13741
  return current;
13321
13742
  }
13322
13743
  const rawProvider = new CodexAgentProvider(this.#client, project, {
13744
+ attachmentDirectory: this.#attachmentDirectory,
13323
13745
  logger: this.#logger,
13324
13746
  ...this.#taskTitles === void 0 ? {} : { taskTitles: this.#taskTitles },
13325
13747
  subscribeRpc: false
@@ -13349,7 +13771,44 @@ var CodexRuntimeProvider = class {
13349
13771
  }
13350
13772
  });
13351
13773
  }
13352
- listModels() {
13774
+ async listModels() {
13775
+ if (this.#modelCatalogRuntimeFactory !== void 0) {
13776
+ let catalogRuntime = null;
13777
+ try {
13778
+ await this.#providerConnection.prepareModelCatalog();
13779
+ catalogRuntime = await this.#modelCatalogRuntimeFactory();
13780
+ return await this.#listModelsWithClient(catalogRuntime.client);
13781
+ } catch {
13782
+ this.#logger.warn(
13783
+ { diagnosticCode: "model_catalog_refresh_failed" },
13784
+ "Fresh model catalog unavailable; falling back to the primary Codex CLI catalog"
13785
+ );
13786
+ } finally {
13787
+ if (catalogRuntime !== null) {
13788
+ await catalogRuntime.close().catch(() => {
13789
+ this.#logger.warn(
13790
+ { diagnosticCode: "model_catalog_runtime_close_failed" },
13791
+ "Failed to close the model catalog App Server"
13792
+ );
13793
+ });
13794
+ }
13795
+ }
13796
+ }
13797
+ return this.#listModelsWithClient(this.#client);
13798
+ }
13799
+ #listModelsWithClient(client) {
13800
+ if (client !== this.#client) {
13801
+ const runtimeProject2 = {
13802
+ id: "runtime-model-catalog",
13803
+ kind: "project",
13804
+ rootPath: resolve("/"),
13805
+ runtimeWorkspaceRoots: [resolve("/")]
13806
+ };
13807
+ return new CodexAgentProvider(client, runtimeProject2, {
13808
+ logger: this.#logger,
13809
+ subscribeRpc: false
13810
+ }).listModels();
13811
+ }
13353
13812
  const firstProvider = this.#projectProviders.values().next().value;
13354
13813
  if (firstProvider !== void 0) {
13355
13814
  return firstProvider.listModels();
@@ -13477,10 +13936,19 @@ function createCodexRuntimeProvider(options) {
13477
13936
  return new CodexRuntimeProvider(options.client, options.logger, {
13478
13937
  ...options.codexHome === void 0 ? {} : { codexHome: options.codexHome },
13479
13938
  ...options.fetch === void 0 ? {} : { fetch: options.fetch },
13939
+ ...options.modelCatalogRuntimeFactory === void 0 ? {} : { modelCatalogRuntimeFactory: options.modelCatalogRuntimeFactory },
13480
13940
  ...options.readTaskTitleModel === void 0 ? {} : { readTaskTitleModel: options.readTaskTitleModel }
13481
13941
  });
13482
13942
  }
13483
- var APP_SERVER_ARGUMENTS = ["app-server", "--enable", "plugins", "--listen", "stdio://"];
13943
+ var APP_SERVER_ARGUMENTS = [
13944
+ "app-server",
13945
+ "--enable",
13946
+ "plugins",
13947
+ "--enable",
13948
+ "api_key_model_discovery",
13949
+ "--listen",
13950
+ "stdio://"
13951
+ ];
13484
13952
  var CodexAppServerExitedError = class extends RpcConnectionClosedError {
13485
13953
  exitCode;
13486
13954
  signal;