@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.
- package/CHANGELOG.md +38 -0
- package/README.md +24 -15
- package/README.zh-CN.md +29 -20
- package/dist/{chunk-B2673ODM.js → chunk-REIMOLGX.js} +59 -2
- package/dist/{chunk-PRIMEL2G.js → chunk-SVPC5JYN.js} +551 -83
- package/dist/{chunk-HGSPZCBB.js → chunk-WP6LVYP6.js} +283 -169
- package/dist/cli.js +14 -8
- package/dist/client/index.js +8 -1
- package/dist/core/index.js +1 -1
- package/dist/providers/codex/index.js +2 -2
- package/dist/server/index.js +3 -3
- package/dist/web/.vite/manifest.json +1572 -131
- package/dist/web/.vite/manifest.json.br +0 -0
- package/dist/web/.vite/manifest.json.gz +0 -0
- package/dist/web/assets/abnfDiagram-N423BO3Z-DAxnMtfX.js +1 -0
- package/dist/web/assets/abnfDiagram-N423BO3Z-DAxnMtfX.js.br +0 -0
- package/dist/web/assets/abnfDiagram-N423BO3Z-DAxnMtfX.js.gz +0 -0
- package/dist/web/assets/{agent-settings-panel-Ci9mJOS-.js → agent-settings-panel-B4PhB6nU.js} +1 -1
- package/dist/web/assets/agent-settings-panel-B4PhB6nU.js.br +0 -0
- package/dist/web/assets/agent-settings-panel-B4PhB6nU.js.gz +0 -0
- package/dist/web/assets/arc-C6pGbJrV.js +1 -0
- package/dist/web/assets/arc-C6pGbJrV.js.br +0 -0
- package/dist/web/assets/arc-C6pGbJrV.js.gz +0 -0
- package/dist/web/assets/architecture-TIHT7OUA-BWqzHezU.js +1 -0
- package/dist/web/assets/architecture-TIHT7OUA-BWqzHezU.js.br +0 -0
- package/dist/web/assets/architecture-TIHT7OUA-BWqzHezU.js.gz +0 -0
- package/dist/web/assets/architectureDiagram-T3A2C74G-DPqHJb7n.js +36 -0
- package/dist/web/assets/architectureDiagram-T3A2C74G-DPqHJb7n.js.br +0 -0
- package/dist/web/assets/architectureDiagram-T3A2C74G-DPqHJb7n.js.gz +0 -0
- package/dist/web/assets/array-BifhSqXX.js +1 -0
- package/dist/web/assets/array-BifhSqXX.js.br +0 -0
- package/dist/web/assets/array-BifhSqXX.js.gz +0 -0
- package/dist/web/assets/{attachments-uWbRsPJj.js → attachments-DT0TLwf9.js} +1 -1
- package/dist/web/assets/attachments-DT0TLwf9.js.br +0 -0
- package/dist/web/assets/attachments-DT0TLwf9.js.gz +0 -0
- package/dist/web/assets/{background-image-picker-qGpdQPQi.js → background-image-picker-BGQwbEFL.js} +1 -1
- package/dist/web/assets/background-image-picker-BGQwbEFL.js.br +0 -0
- package/dist/web/assets/background-image-picker-BGQwbEFL.js.gz +0 -0
- package/dist/web/assets/{bing-wallpaper-queries-uesKD16x.js → bing-wallpaper-queries-D5Wcfyo2.js} +1 -1
- package/dist/web/assets/bing-wallpaper-queries-D5Wcfyo2.js.br +0 -0
- package/dist/web/assets/bing-wallpaper-queries-D5Wcfyo2.js.gz +0 -0
- package/dist/web/assets/blockDiagram-VBNYF7ZC-CLKHXfJo.js +132 -0
- package/dist/web/assets/blockDiagram-VBNYF7ZC-CLKHXfJo.js.br +0 -0
- package/dist/web/assets/blockDiagram-VBNYF7ZC-CLKHXfJo.js.gz +0 -0
- package/dist/web/assets/{button-group-075rCj_f.js → button-group-DxlWEb9s.js} +1 -1
- package/dist/web/assets/button-group-DxlWEb9s.js.br +0 -0
- package/dist/web/assets/button-group-DxlWEb9s.js.gz +0 -0
- package/dist/web/assets/c4Diagram-5PPSVZJV-CqHRbhyf.js +10 -0
- package/dist/web/assets/c4Diagram-5PPSVZJV-CqHRbhyf.js.br +0 -0
- package/dist/web/assets/c4Diagram-5PPSVZJV-CqHRbhyf.js.gz +0 -0
- package/dist/web/assets/channel-DiROXJxP.js +1 -0
- package/dist/web/assets/channel-DiROXJxP.js.br +0 -0
- package/dist/web/assets/channel-DiROXJxP.js.gz +0 -0
- package/dist/web/assets/chunk-2GRJ4B5K-BCpVABFi.js +1 -0
- package/dist/web/assets/chunk-2GRJ4B5K-BCpVABFi.js.br +0 -0
- package/dist/web/assets/chunk-2GRJ4B5K-BCpVABFi.js.gz +0 -0
- package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js.br +0 -0
- package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js.gz +0 -0
- package/dist/web/assets/chunk-3NCLNEKW-DSv6TLAj.js +1 -0
- package/dist/web/assets/chunk-3NCLNEKW-DSv6TLAj.js.br +0 -0
- package/dist/web/assets/chunk-3NCLNEKW-DSv6TLAj.js.gz +0 -0
- package/dist/web/assets/chunk-4I5QYGJK-CQtKMwGK.js +1 -0
- package/dist/web/assets/chunk-4I5QYGJK-CQtKMwGK.js.br +0 -0
- package/dist/web/assets/chunk-4I5QYGJK-CQtKMwGK.js.gz +0 -0
- package/dist/web/assets/chunk-5FCAYU7R-DNtJmW0j.js +1 -0
- package/dist/web/assets/chunk-5FCAYU7R-DNtJmW0j.js.br +0 -0
- package/dist/web/assets/chunk-5FCAYU7R-DNtJmW0j.js.gz +0 -0
- package/dist/web/assets/chunk-5HE753X5-o8-OCfIL.js +1 -0
- package/dist/web/assets/chunk-5HE753X5-o8-OCfIL.js.br +0 -0
- package/dist/web/assets/chunk-5HE753X5-o8-OCfIL.js.gz +0 -0
- package/dist/web/assets/chunk-5JV3BV7I-DKfYBAeY.js +1 -0
- package/dist/web/assets/chunk-5JV3BV7I-DKfYBAeY.js.br +0 -0
- package/dist/web/assets/chunk-5JV3BV7I-DKfYBAeY.js.gz +0 -0
- package/dist/web/assets/chunk-5RXB4S5H-cErMF61q.js +231 -0
- package/dist/web/assets/chunk-5RXB4S5H-cErMF61q.js.br +0 -0
- package/dist/web/assets/chunk-5RXB4S5H-cErMF61q.js.gz +0 -0
- package/dist/web/assets/chunk-5TONJI2A-DOX2waSJ.js +2 -0
- package/dist/web/assets/chunk-5TONJI2A-DOX2waSJ.js.br +0 -0
- package/dist/web/assets/chunk-5TONJI2A-DOX2waSJ.js.gz +0 -0
- package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js.br +0 -0
- package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js.gz +0 -0
- package/dist/web/assets/chunk-6Q2QTUOP-DX9SOXyR.js +88 -0
- package/dist/web/assets/chunk-6Q2QTUOP-DX9SOXyR.js.br +0 -0
- package/dist/web/assets/chunk-6Q2QTUOP-DX9SOXyR.js.gz +0 -0
- package/dist/web/assets/chunk-7BUUIJ7U-Bb538aSH.js +1 -0
- package/dist/web/assets/chunk-7BUUIJ7U-Bb538aSH.js.br +0 -0
- package/dist/web/assets/chunk-7BUUIJ7U-Bb538aSH.js.gz +0 -0
- package/dist/web/assets/chunk-7Z6QIM7H-Ch5r0EFR.js +10 -0
- package/dist/web/assets/chunk-7Z6QIM7H-Ch5r0EFR.js.br +0 -0
- package/dist/web/assets/chunk-7Z6QIM7H-Ch5r0EFR.js.gz +0 -0
- package/dist/web/assets/chunk-BIQX33UG-CuPbkyWp.js +1 -0
- package/dist/web/assets/chunk-BIQX33UG-CuPbkyWp.js.br +0 -0
- package/dist/web/assets/chunk-BIQX33UG-CuPbkyWp.js.gz +0 -0
- package/dist/web/assets/chunk-BO2N2NFS-B5HCeQ02.js +129 -0
- package/dist/web/assets/chunk-BO2N2NFS-B5HCeQ02.js.br +0 -0
- package/dist/web/assets/chunk-BO2N2NFS-B5HCeQ02.js.gz +0 -0
- package/dist/web/assets/chunk-CQNSW5MT-BbEh_krl.js +1 -0
- package/dist/web/assets/chunk-CQNSW5MT-BbEh_krl.js.br +0 -0
- package/dist/web/assets/chunk-CQNSW5MT-BbEh_krl.js.gz +0 -0
- package/dist/web/assets/chunk-CYSBUYHQ-CbOq7Rc1.js +1 -0
- package/dist/web/assets/chunk-CYSBUYHQ-CbOq7Rc1.js.br +0 -0
- package/dist/web/assets/chunk-CYSBUYHQ-CbOq7Rc1.js.gz +0 -0
- package/dist/web/assets/chunk-EMLP6XTP-BoneA0Uo.js +1 -0
- package/dist/web/assets/chunk-EMLP6XTP-BoneA0Uo.js.br +0 -0
- package/dist/web/assets/chunk-EMLP6XTP-BoneA0Uo.js.gz +0 -0
- package/dist/web/assets/chunk-GF5L2VYU-CccrucrR.js +206 -0
- package/dist/web/assets/chunk-GF5L2VYU-CccrucrR.js.br +0 -0
- package/dist/web/assets/chunk-GF5L2VYU-CccrucrR.js.gz +0 -0
- package/dist/web/assets/chunk-I66GZJ75-DHqpIsjZ.js +127 -0
- package/dist/web/assets/chunk-I66GZJ75-DHqpIsjZ.js.br +0 -0
- package/dist/web/assets/chunk-I66GZJ75-DHqpIsjZ.js.gz +0 -0
- package/dist/web/assets/chunk-J7OUQ5F2-BoS2fCJs.js +2 -0
- package/dist/web/assets/chunk-J7OUQ5F2-BoS2fCJs.js.br +0 -0
- package/dist/web/assets/chunk-J7OUQ5F2-BoS2fCJs.js.gz +0 -0
- package/dist/web/assets/chunk-JG7HCLWE-Dk4_aECj.js +2 -0
- package/dist/web/assets/chunk-JG7HCLWE-Dk4_aECj.js.br +0 -0
- package/dist/web/assets/chunk-JG7HCLWE-Dk4_aECj.js.gz +0 -0
- package/dist/web/assets/chunk-JQJVKLGR-BwCkIKwN.js +156 -0
- package/dist/web/assets/chunk-JQJVKLGR-BwCkIKwN.js.br +0 -0
- package/dist/web/assets/chunk-JQJVKLGR-BwCkIKwN.js.gz +0 -0
- package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js.br +0 -0
- package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js.gz +0 -0
- package/dist/web/assets/chunk-KBJHAD2P-Bhy2hp3N.js +1 -0
- package/dist/web/assets/chunk-KBJHAD2P-Bhy2hp3N.js.br +0 -0
- package/dist/web/assets/chunk-KBJHAD2P-Bhy2hp3N.js.gz +0 -0
- package/dist/web/assets/chunk-KEIR6QF5-Dj-OpFgW.js +161 -0
- package/dist/web/assets/chunk-KEIR6QF5-Dj-OpFgW.js.br +0 -0
- package/dist/web/assets/chunk-KEIR6QF5-Dj-OpFgW.js.gz +0 -0
- package/dist/web/assets/chunk-MOZMSUNE-BgA8jCvb.js +1 -0
- package/dist/web/assets/chunk-MOZMSUNE-BgA8jCvb.js.br +0 -0
- package/dist/web/assets/chunk-MOZMSUNE-BgA8jCvb.js.gz +0 -0
- package/dist/web/assets/chunk-NSK5VX7P-BvpMMwDk.js +2 -0
- package/dist/web/assets/chunk-NSK5VX7P-BvpMMwDk.js.br +0 -0
- package/dist/web/assets/chunk-NSK5VX7P-BvpMMwDk.js.gz +0 -0
- package/dist/web/assets/chunk-OSBZ3O6U-CX9EQ5t2.js +1 -0
- package/dist/web/assets/chunk-OSBZ3O6U-CX9EQ5t2.js.br +0 -0
- package/dist/web/assets/chunk-OSBZ3O6U-CX9EQ5t2.js.gz +0 -0
- package/dist/web/assets/chunk-QBLGF6JB-C9zGMqvP.js +1 -0
- package/dist/web/assets/chunk-QBLGF6JB-C9zGMqvP.js.br +1 -0
- package/dist/web/assets/chunk-QBLGF6JB-C9zGMqvP.js.gz +0 -0
- package/dist/web/assets/chunk-QR6OTTB3-Kb7yF441.js +62 -0
- package/dist/web/assets/chunk-QR6OTTB3-Kb7yF441.js.br +0 -0
- package/dist/web/assets/chunk-QR6OTTB3-Kb7yF441.js.gz +0 -0
- package/dist/web/assets/chunk-R7FJI6CG-BpBhcF6R.js +1 -0
- package/dist/web/assets/chunk-R7FJI6CG-BpBhcF6R.js.br +0 -0
- package/dist/web/assets/chunk-R7FJI6CG-BpBhcF6R.js.gz +0 -0
- package/dist/web/assets/chunk-RYQCIY6F-AHipPOEA.js +1 -0
- package/dist/web/assets/chunk-RYQCIY6F-AHipPOEA.js.br +0 -0
- package/dist/web/assets/chunk-RYQCIY6F-AHipPOEA.js.gz +0 -0
- package/dist/web/assets/chunk-U6XO7XAA-CR0BSRFR.js +2 -0
- package/dist/web/assets/chunk-U6XO7XAA-CR0BSRFR.js.br +2 -0
- package/dist/web/assets/chunk-U6XO7XAA-CR0BSRFR.js.gz +0 -0
- package/dist/web/assets/chunk-UBXNYLIW-KBrfzzbv.js +1 -0
- package/dist/web/assets/chunk-UBXNYLIW-KBrfzzbv.js.br +0 -0
- package/dist/web/assets/chunk-UBXNYLIW-KBrfzzbv.js.gz +0 -0
- package/dist/web/assets/chunk-W5SLKNZC-DbxrCp-R.js +1 -0
- package/dist/web/assets/chunk-W5SLKNZC-DbxrCp-R.js.br +0 -0
- package/dist/web/assets/chunk-W5SLKNZC-DbxrCp-R.js.gz +0 -0
- package/dist/web/assets/chunk-WRU74C26-BPdPu049.js +70 -0
- package/dist/web/assets/chunk-WRU74C26-BPdPu049.js.br +0 -0
- package/dist/web/assets/chunk-WRU74C26-BPdPu049.js.gz +0 -0
- package/dist/web/assets/chunk-XXDRQBXY-DlK_iNGL.js +1 -0
- package/dist/web/assets/chunk-XXDRQBXY-DlK_iNGL.js.br +0 -0
- package/dist/web/assets/chunk-XXDRQBXY-DlK_iNGL.js.gz +0 -0
- package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js.br +0 -0
- package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js.gz +0 -0
- package/dist/web/assets/chunk-YOTPTUD7-CjHV8V6f.js +1 -0
- package/dist/web/assets/chunk-YOTPTUD7-CjHV8V6f.js.br +2 -0
- package/dist/web/assets/chunk-YOTPTUD7-CjHV8V6f.js.gz +0 -0
- package/dist/web/assets/chunk-ZIRB5QZD-C6fEPe3t.js +32 -0
- package/dist/web/assets/chunk-ZIRB5QZD-C6fEPe3t.js.br +0 -0
- package/dist/web/assets/chunk-ZIRB5QZD-C6fEPe3t.js.gz +0 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-Dj7c_VjZ.js +1 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-Dj7c_VjZ.js.br +0 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-Dj7c_VjZ.js.gz +0 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-Dj7c_VjZ.js +1 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-Dj7c_VjZ.js.br +0 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-Dj7c_VjZ.js.gz +0 -0
- package/dist/web/assets/{code-block-C9eTeWWd.js → code-block-xSrBsIBz.js} +1 -1
- package/dist/web/assets/code-block-xSrBsIBz.js.br +0 -0
- package/dist/web/assets/code-block-xSrBsIBz.js.gz +0 -0
- package/dist/web/assets/{commit-settings-panel-CaMMU0oA.js → commit-settings-panel-BeK-kywA.js} +1 -1
- package/dist/web/assets/commit-settings-panel-BeK-kywA.js.br +0 -0
- package/dist/web/assets/commit-settings-panel-BeK-kywA.js.gz +0 -0
- package/dist/web/assets/{context-menu-Dj3lnor1.js → context-menu-DiKb-4kt.js} +1 -1
- package/dist/web/assets/context-menu-DiKb-4kt.js.br +0 -0
- package/dist/web/assets/context-menu-DiKb-4kt.js.gz +0 -0
- package/dist/web/assets/cose-bilkent-JH36ORCC-ClnkE1nH.js +1 -0
- package/dist/web/assets/cose-bilkent-JH36ORCC-ClnkE1nH.js.br +0 -0
- package/dist/web/assets/cose-bilkent-JH36ORCC-ClnkE1nH.js.gz +0 -0
- package/dist/web/assets/cynefin-VYW2F7L2-4m18BxUG.js +1 -0
- package/dist/web/assets/cynefin-VYW2F7L2-4m18BxUG.js.br +0 -0
- package/dist/web/assets/cynefin-VYW2F7L2-4m18BxUG.js.gz +0 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-CYb-LmaQ.js +62 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-CYb-LmaQ.js.br +0 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-CYb-LmaQ.js.gz +0 -0
- package/dist/web/assets/cytoscape.esm-CQFVGiJu.js +321 -0
- package/dist/web/assets/cytoscape.esm-CQFVGiJu.js.br +0 -0
- package/dist/web/assets/cytoscape.esm-CQFVGiJu.js.gz +0 -0
- package/dist/web/assets/dagre-VZM6K2ZE-BTyJISxs.js +4 -0
- package/dist/web/assets/dagre-VZM6K2ZE-BTyJISxs.js.br +0 -0
- package/dist/web/assets/dagre-VZM6K2ZE-BTyJISxs.js.gz +0 -0
- package/dist/web/assets/dagre-dpRSp0QF.js +1 -0
- package/dist/web/assets/dagre-dpRSp0QF.js.br +0 -0
- package/dist/web/assets/dagre-dpRSp0QF.js.gz +0 -0
- package/dist/web/assets/defaultLocale-C8Fc0cco.js +1 -0
- package/dist/web/assets/defaultLocale-C8Fc0cco.js.br +0 -0
- package/dist/web/assets/defaultLocale-C8Fc0cco.js.gz +0 -0
- package/dist/web/assets/diagram-7IWD3JNH-CigmbnBj.js +30 -0
- package/dist/web/assets/diagram-7IWD3JNH-CigmbnBj.js.br +0 -0
- package/dist/web/assets/diagram-7IWD3JNH-CigmbnBj.js.gz +0 -0
- package/dist/web/assets/diagram-B4RE2ZJO-vreQE7fA.js +3 -0
- package/dist/web/assets/diagram-B4RE2ZJO-vreQE7fA.js.br +0 -0
- package/dist/web/assets/diagram-B4RE2ZJO-vreQE7fA.js.gz +0 -0
- package/dist/web/assets/diagram-LBJQPF4R-7rsRUzmq.js +24 -0
- package/dist/web/assets/diagram-LBJQPF4R-7rsRUzmq.js.br +0 -0
- package/dist/web/assets/diagram-LBJQPF4R-7rsRUzmq.js.gz +0 -0
- package/dist/web/assets/diagram-Q27KOJAE-BIXltYW7.js +24 -0
- package/dist/web/assets/diagram-Q27KOJAE-BIXltYW7.js.br +0 -0
- package/dist/web/assets/diagram-Q27KOJAE-BIXltYW7.js.gz +0 -0
- package/dist/web/assets/diagram-UB23O5K3-lztJLOEw.js +41 -0
- package/dist/web/assets/diagram-UB23O5K3-lztJLOEw.js.br +0 -0
- package/dist/web/assets/diagram-UB23O5K3-lztJLOEw.js.gz +0 -0
- package/dist/web/assets/dist-BH9bKIvu.js +1 -0
- package/dist/web/assets/dist-BH9bKIvu.js.br +0 -0
- package/dist/web/assets/dist-BH9bKIvu.js.gz +0 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-B6RBGCW1.js +1 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-B6RBGCW1.js.br +0 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-B6RBGCW1.js.gz +0 -0
- package/dist/web/assets/erDiagram-JOGREHBK-CHh7mX3R.js +85 -0
- package/dist/web/assets/erDiagram-JOGREHBK-CHh7mX3R.js.br +0 -0
- package/dist/web/assets/erDiagram-JOGREHBK-CHh7mX3R.js.gz +0 -0
- package/dist/web/assets/eventmodeling-45OFAUF4-Dp0gpjhg.js +1 -0
- package/dist/web/assets/eventmodeling-45OFAUF4-Dp0gpjhg.js.br +0 -0
- package/dist/web/assets/eventmodeling-45OFAUF4-Dp0gpjhg.js.gz +0 -0
- package/dist/web/assets/{file-review-dialog-D8XVZ21M.js → file-review-dialog-CRFErSYs.js} +1 -1
- package/dist/web/assets/file-review-dialog-CRFErSYs.js.br +0 -0
- package/dist/web/assets/file-review-dialog-CRFErSYs.js.gz +0 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-DijEJ4wB.js +1 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-DijEJ4wB.js.br +0 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-DijEJ4wB.js.gz +0 -0
- package/dist/web/assets/ganttDiagram-PKOTCBZU-r4x0cWsn.js +292 -0
- package/dist/web/assets/ganttDiagram-PKOTCBZU-r4x0cWsn.js.br +0 -0
- package/dist/web/assets/ganttDiagram-PKOTCBZU-r4x0cWsn.js.gz +0 -0
- package/dist/web/assets/{git-history-panel-D2fKSR66.js → git-history-panel-BgJEabtl.js} +1 -1
- package/dist/web/assets/git-history-panel-BgJEabtl.js.br +0 -0
- package/dist/web/assets/git-history-panel-BgJEabtl.js.gz +0 -0
- package/dist/web/assets/gitGraph-TEB2WS4Q-Do0SQOtM.js +1 -0
- package/dist/web/assets/gitGraph-TEB2WS4Q-Do0SQOtM.js.br +0 -0
- package/dist/web/assets/gitGraph-TEB2WS4Q-Do0SQOtM.js.gz +0 -0
- package/dist/web/assets/gitGraphDiagram-DS77QQ5N-CQAF1Exd.js +106 -0
- package/dist/web/assets/gitGraphDiagram-DS77QQ5N-CQAF1Exd.js.br +0 -0
- package/dist/web/assets/gitGraphDiagram-DS77QQ5N-CQAF1Exd.js.gz +0 -0
- package/dist/web/assets/{global-search-dialog-BxT-UjpZ.js → global-search-dialog-Dwh3KnTB.js} +2 -2
- package/dist/web/assets/global-search-dialog-Dwh3KnTB.js.br +0 -0
- package/dist/web/assets/global-search-dialog-Dwh3KnTB.js.gz +0 -0
- package/dist/web/assets/{global-settings-about-DiblprcD.js → global-settings-about-DeZYmXbR.js} +1 -1
- package/dist/web/assets/global-settings-about-DeZYmXbR.js.br +0 -0
- package/dist/web/assets/global-settings-about-DeZYmXbR.js.gz +0 -0
- package/dist/web/assets/{global-settings-fields-D5T5SPXY.js → global-settings-fields-DCOxEAF4.js} +1 -1
- package/dist/web/assets/global-settings-fields-DCOxEAF4.js.br +0 -0
- package/dist/web/assets/global-settings-fields-DCOxEAF4.js.gz +0 -0
- package/dist/web/assets/{global-settings-model-COz331Sr.js → global-settings-model-BRDzC9Uf.js} +1 -1
- package/dist/web/assets/global-settings-model-BRDzC9Uf.js.br +0 -0
- package/dist/web/assets/global-settings-model-BRDzC9Uf.js.gz +0 -0
- package/dist/web/assets/{global-settings-page-DEBGBxSg.js → global-settings-page-s2cNX5jl.js} +2 -2
- package/dist/web/assets/global-settings-page-s2cNX5jl.js.br +0 -0
- package/dist/web/assets/global-settings-page-s2cNX5jl.js.gz +0 -0
- package/dist/web/assets/{global-settings-pets-DwJnj_6N.js → global-settings-pets-CqOeooq8.js} +1 -1
- package/dist/web/assets/global-settings-pets-CqOeooq8.js.br +0 -0
- package/dist/web/assets/global-settings-pets-CqOeooq8.js.gz +0 -0
- package/dist/web/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/web/assets/graphlib-DS17s2tU.js.br +0 -0
- package/dist/web/assets/graphlib-DS17s2tU.js.gz +0 -0
- package/dist/web/assets/{highlighted-body-OFNGDK62-D0ZQwVKA.js → highlighted-body-OFNGDK62-YUaTxJcD.js} +1 -1
- package/dist/web/assets/highlighted-body-OFNGDK62-YUaTxJcD.js.br +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-YUaTxJcD.js.gz +0 -0
- package/dist/web/assets/{history-task-timeline-oQRRdMbY.js → history-task-timeline-DVxGn1Wg.js} +1 -1
- package/dist/web/assets/history-task-timeline-DVxGn1Wg.js.br +0 -0
- package/dist/web/assets/history-task-timeline-DVxGn1Wg.js.gz +0 -0
- package/dist/web/assets/index-C0aNP2kZ.js +4 -0
- package/dist/web/assets/index-C0aNP2kZ.js.br +0 -0
- package/dist/web/assets/index-C0aNP2kZ.js.gz +0 -0
- package/dist/web/assets/index-eRj64nPO.css +2 -0
- package/dist/web/assets/index-eRj64nPO.css.br +0 -0
- package/dist/web/assets/index-eRj64nPO.css.gz +0 -0
- package/dist/web/assets/info-DKCQHKI2-DIc7uC4I.js +1 -0
- package/dist/web/assets/info-DKCQHKI2-DIc7uC4I.js.br +0 -0
- package/dist/web/assets/info-DKCQHKI2-DIc7uC4I.js.gz +0 -0
- package/dist/web/assets/infoDiagram-6WML65LV-D0HiS-vc.js +2 -0
- package/dist/web/assets/infoDiagram-6WML65LV-D0HiS-vc.js.br +0 -0
- package/dist/web/assets/infoDiagram-6WML65LV-D0HiS-vc.js.gz +0 -0
- package/dist/web/assets/init-D6jRqBbL.js +1 -0
- package/dist/web/assets/init-D6jRqBbL.js.br +0 -0
- package/dist/web/assets/init-D6jRqBbL.js.gz +0 -0
- package/dist/web/assets/{initial-deps-DipJkDUX.js → initial-deps-DrhykaPS.js} +1 -1
- package/dist/web/assets/initial-deps-DrhykaPS.js.br +0 -0
- package/dist/web/assets/{initial-deps-DipJkDUX.js.gz → initial-deps-DrhykaPS.js.gz} +0 -0
- package/dist/web/assets/{installed-skills-pane-v1IcvRKL.js → installed-skills-pane-BRm_IdzH.js} +1 -1
- package/dist/web/assets/installed-skills-pane-BRm_IdzH.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-BRm_IdzH.js.gz +0 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-Cu4jLmjR.js +70 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-Cu4jLmjR.js.br +0 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-Cu4jLmjR.js.gz +0 -0
- package/dist/web/assets/journeyDiagram-NVQOT4AX-DCnWm6sc.js +139 -0
- package/dist/web/assets/journeyDiagram-NVQOT4AX-DCnWm6sc.js.br +0 -0
- package/dist/web/assets/journeyDiagram-NVQOT4AX-DCnWm6sc.js.gz +0 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-Bu0RGSGL.js +89 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-Bu0RGSGL.js.br +0 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-Bu0RGSGL.js.gz +0 -0
- package/dist/web/assets/katex-B7rAX3Vi.js +257 -0
- package/dist/web/assets/katex-B7rAX3Vi.js.br +0 -0
- package/dist/web/assets/katex-B7rAX3Vi.js.gz +0 -0
- package/dist/web/assets/lazy-message-response-DXSAfNhE.js +2 -0
- package/dist/web/assets/lazy-message-response-DXSAfNhE.js.br +0 -0
- package/dist/web/assets/lazy-message-response-DXSAfNhE.js.gz +0 -0
- package/dist/web/assets/lib-CzsukjNX.js +3 -0
- package/dist/web/assets/lib-CzsukjNX.js.br +0 -0
- package/dist/web/assets/lib-CzsukjNX.js.gz +0 -0
- package/dist/web/assets/line-BoXFHZL9.js +1 -0
- package/dist/web/assets/line-BoXFHZL9.js.br +0 -0
- package/dist/web/assets/line-BoXFHZL9.js.gz +0 -0
- package/dist/web/assets/linear-BiXMiKrI.js +1 -0
- package/dist/web/assets/linear-BiXMiKrI.js.br +0 -0
- package/dist/web/assets/linear-BiXMiKrI.js.gz +0 -0
- package/dist/web/assets/map-BaFkSB1l.js +1 -0
- package/dist/web/assets/map-BaFkSB1l.js.br +0 -0
- package/dist/web/assets/map-BaFkSB1l.js.gz +0 -0
- package/dist/web/assets/{mcp-management-pane-DiPUaZAO.js → mcp-management-pane-O4akAGWL.js} +1 -1
- package/dist/web/assets/mcp-management-pane-O4akAGWL.js.br +0 -0
- package/dist/web/assets/mcp-management-pane-O4akAGWL.js.gz +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-BJ0J-N-0.js +1 -0
- package/dist/web/assets/mermaid-GHXKKRXX-BJ0J-N-0.js.br +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-BJ0J-N-0.js.gz +0 -0
- package/dist/web/assets/mermaid-parser.core-CqTHdZet.js +4 -0
- package/dist/web/assets/mermaid-parser.core-CqTHdZet.js.br +0 -0
- package/dist/web/assets/mermaid-parser.core-CqTHdZet.js.gz +0 -0
- package/dist/web/assets/message-file-download-B0Yykdg4.js +1 -0
- package/dist/web/assets/message-file-download-B0Yykdg4.js.br +1 -0
- package/dist/web/assets/message-file-download-B0Yykdg4.js.gz +0 -0
- package/dist/web/assets/message-response-Do1pbVRO.js +17 -0
- package/dist/web/assets/message-response-Do1pbVRO.js.br +0 -0
- package/dist/web/assets/message-response-Do1pbVRO.js.gz +0 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-BG8i4kJH.js +96 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-BG8i4kJH.js.br +0 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-BG8i4kJH.js.gz +0 -0
- package/dist/web/assets/{official-plugins-pane-Cis1hRgm.js → official-plugins-pane-CevY7yAQ.js} +1 -1
- package/dist/web/assets/official-plugins-pane-CevY7yAQ.js.br +0 -0
- package/dist/web/assets/official-plugins-pane-CevY7yAQ.js.gz +0 -0
- package/dist/web/assets/ordinal-hYBb2elL.js +1 -0
- package/dist/web/assets/ordinal-hYBb2elL.js.br +0 -0
- package/dist/web/assets/ordinal-hYBb2elL.js.gz +0 -0
- package/dist/web/assets/packet-7NZHBO7P-D2duWGIK.js +1 -0
- package/dist/web/assets/packet-7NZHBO7P-D2duWGIK.js.br +0 -0
- package/dist/web/assets/packet-7NZHBO7P-D2duWGIK.js.gz +0 -0
- package/dist/web/assets/path-BWPyau1x.js +1 -0
- package/dist/web/assets/path-BWPyau1x.js.br +0 -0
- package/dist/web/assets/path-BWPyau1x.js.gz +0 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-C9bpWkm_.js +1 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-C9bpWkm_.js.br +0 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-C9bpWkm_.js.gz +0 -0
- package/dist/web/assets/{personalization-settings-panel-BB5nguhA.js → personalization-settings-panel-hBZieAU2.js} +1 -1
- package/dist/web/assets/personalization-settings-panel-hBZieAU2.js.br +0 -0
- package/dist/web/assets/personalization-settings-panel-hBZieAU2.js.gz +0 -0
- package/dist/web/assets/pie-RZYD4A2V-CynqTUkZ.js +1 -0
- package/dist/web/assets/pie-RZYD4A2V-CynqTUkZ.js.br +0 -0
- package/dist/web/assets/pie-RZYD4A2V-CynqTUkZ.js.gz +0 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-4hkZNMEH.js +39 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-4hkZNMEH.js.br +0 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-4hkZNMEH.js.gz +0 -0
- package/dist/web/assets/{project-file-popup-page-CAcF7DIa.js → project-file-popup-page-DGMiL1Oq.js} +1 -1
- package/dist/web/assets/project-file-popup-page-DGMiL1Oq.js.br +0 -0
- package/dist/web/assets/project-file-popup-page-DGMiL1Oq.js.gz +0 -0
- package/dist/web/assets/{project-source-dialog-DbOmvJBS.js → project-source-dialog-BOvAfWEP.js} +1 -1
- package/dist/web/assets/project-source-dialog-BOvAfWEP.js.br +0 -0
- package/dist/web/assets/project-source-dialog-BOvAfWEP.js.gz +0 -0
- package/dist/web/assets/project-source-panel-CkMURlQ0.js +1 -0
- package/dist/web/assets/project-source-panel-CkMURlQ0.js.br +0 -0
- package/dist/web/assets/project-source-panel-CkMURlQ0.js.gz +0 -0
- package/dist/web/assets/{prompt-input-DwT-XwSc.js → prompt-input-DrBC78Hu.js} +1 -1
- package/dist/web/assets/prompt-input-DrBC78Hu.js.br +0 -0
- package/dist/web/assets/prompt-input-DrBC78Hu.js.gz +0 -0
- package/dist/web/assets/{prompt-input-controls-CLasQrSj.js → prompt-input-controls-BBmAilY8.js} +1 -1
- package/dist/web/assets/prompt-input-controls-BBmAilY8.js.br +0 -0
- package/dist/web/assets/prompt-input-controls-BBmAilY8.js.gz +0 -0
- package/dist/web/assets/quadrantDiagram-CIZ2JOQS-C06AZQGb.js +7 -0
- package/dist/web/assets/quadrantDiagram-CIZ2JOQS-C06AZQGb.js.br +0 -0
- package/dist/web/assets/quadrantDiagram-CIZ2JOQS-C06AZQGb.js.gz +0 -0
- package/dist/web/assets/radar-I7S5WNFK-fIKE12aT.js +1 -0
- package/dist/web/assets/radar-I7S5WNFK-fIKE12aT.js.br +0 -0
- package/dist/web/assets/radar-I7S5WNFK-fIKE12aT.js.gz +0 -0
- package/dist/web/assets/railroad-3IZDKUUU-Bgx8HJTj.js +1 -0
- package/dist/web/assets/railroad-3IZDKUUU-Bgx8HJTj.js.br +0 -0
- package/dist/web/assets/railroad-3IZDKUUU-Bgx8HJTj.js.gz +0 -0
- package/dist/web/assets/railroad-abnf-AHOZXSZD-Nh6k60mH.js +1 -0
- package/dist/web/assets/railroad-abnf-AHOZXSZD-Nh6k60mH.js.br +0 -0
- package/dist/web/assets/railroad-abnf-AHOZXSZD-Nh6k60mH.js.gz +0 -0
- package/dist/web/assets/railroad-ebnf-EBAXGLYW-C74h3s_I.js +1 -0
- package/dist/web/assets/railroad-ebnf-EBAXGLYW-C74h3s_I.js.br +0 -0
- package/dist/web/assets/railroad-ebnf-EBAXGLYW-C74h3s_I.js.gz +0 -0
- package/dist/web/assets/railroad-peg-LSFZ7HO6-0hT-lN-u.js +1 -0
- package/dist/web/assets/railroad-peg-LSFZ7HO6-0hT-lN-u.js.br +0 -0
- package/dist/web/assets/railroad-peg-LSFZ7HO6-0hT-lN-u.js.gz +0 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-D4Wq0p9U.js +1 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-D4Wq0p9U.js.br +0 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-D4Wq0p9U.js.gz +0 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-ArFbcs78.js +84 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-ArFbcs78.js.br +0 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-ArFbcs78.js.gz +0 -0
- package/dist/web/assets/rough.esm-CSKSodPl.js +1 -0
- package/dist/web/assets/rough.esm-CSKSodPl.js.br +0 -0
- package/dist/web/assets/rough.esm-CSKSodPl.js.gz +0 -0
- package/dist/web/assets/sankeyDiagram-W5VNT64P-CGgT9hbx.js +40 -0
- package/dist/web/assets/sankeyDiagram-W5VNT64P-CGgT9hbx.js.br +0 -0
- package/dist/web/assets/sankeyDiagram-W5VNT64P-CGgT9hbx.js.gz +0 -0
- package/dist/web/assets/{scheduled-task-date-time-picker-CnSPVHna.js → scheduled-task-date-time-picker-s-hvK5n9.js} +1 -1
- package/dist/web/assets/scheduled-task-date-time-picker-s-hvK5n9.js.br +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-s-hvK5n9.js.gz +0 -0
- package/dist/web/assets/{scheduled-task-schedule-BnMdRADi.js → scheduled-task-schedule-D0B-pep7.js} +1 -1
- package/dist/web/assets/scheduled-task-schedule-D0B-pep7.js.br +0 -0
- package/dist/web/assets/scheduled-task-schedule-D0B-pep7.js.gz +0 -0
- package/dist/web/assets/{scheduled-tasks-container-CNCzsjiP.js → scheduled-tasks-container-BBDBsJaB.js} +2 -2
- package/dist/web/assets/scheduled-tasks-container-BBDBsJaB.js.br +0 -0
- package/dist/web/assets/scheduled-tasks-container-BBDBsJaB.js.gz +0 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-DkZlQ1n1.js +162 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-DkZlQ1n1.js.br +0 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-DkZlQ1n1.js.gz +0 -0
- package/dist/web/assets/{settings-personalization-CB_nnUys.js → settings-personalization-CmZxfd5e.js} +1 -1
- package/dist/web/assets/settings-personalization-CmZxfd5e.js.br +0 -0
- package/dist/web/assets/settings-personalization-CmZxfd5e.js.gz +0 -0
- package/dist/web/assets/{sheet-JpH2S7eZ.js → sheet-E4LM6iKO.js} +1 -1
- package/dist/web/assets/sheet-E4LM6iKO.js.br +0 -0
- package/dist/web/assets/sheet-E4LM6iKO.js.gz +0 -0
- package/dist/web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js +1 -0
- package/dist/web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js.br +0 -0
- package/dist/web/assets/sizeCapture-X5ZJPWSS-B0uUizjq.js.gz +0 -0
- package/dist/web/assets/{skills-market-container-BgtnwdI7.js → skills-market-container-CVVAKp6l.js} +2 -2
- package/dist/web/assets/skills-market-container-CVVAKp6l.js.br +0 -0
- package/dist/web/assets/skills-market-container-CVVAKp6l.js.gz +0 -0
- package/dist/web/assets/src-Cz8bXOH0.js +1 -0
- package/dist/web/assets/src-Cz8bXOH0.js.br +0 -0
- package/dist/web/assets/src-Cz8bXOH0.js.gz +0 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-DetLhpe1.js +1 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-DetLhpe1.js.br +0 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-DetLhpe1.js.gz +0 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DXz6bz0f.js +1 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DXz6bz0f.js.br +0 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DXz6bz0f.js.gz +0 -0
- package/dist/web/assets/swimlanes-SLNWSIFB-BQ2zuhR5.js +2 -0
- package/dist/web/assets/swimlanes-SLNWSIFB-BQ2zuhR5.js.br +0 -0
- package/dist/web/assets/swimlanes-SLNWSIFB-BQ2zuhR5.js.gz +0 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BpL4rYlw.js +8 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BpL4rYlw.js.br +0 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BpL4rYlw.js.gz +0 -0
- package/dist/web/assets/task-timeline-store-CWNL_FZu.js +6 -0
- package/dist/web/assets/task-timeline-store-CWNL_FZu.js.br +0 -0
- package/dist/web/assets/task-timeline-store-CWNL_FZu.js.gz +0 -0
- package/dist/web/assets/{third-party-marketplace-pane-CAI6XIWR.js → third-party-marketplace-pane-EcreIEPE.js} +1 -1
- package/dist/web/assets/third-party-marketplace-pane-EcreIEPE.js.br +0 -0
- package/dist/web/assets/third-party-marketplace-pane-EcreIEPE.js.gz +0 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-Bq-LxrYU.js +120 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-Bq-LxrYU.js.br +0 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-Bq-LxrYU.js.gz +0 -0
- package/dist/web/assets/treeView-QDETBFTQ-CygwzEgj.js +1 -0
- package/dist/web/assets/treeView-QDETBFTQ-CygwzEgj.js.br +0 -0
- package/dist/web/assets/treeView-QDETBFTQ-CygwzEgj.js.gz +0 -0
- package/dist/web/assets/treemap-6X3UGDF4-BbCXbaXr.js +1 -0
- package/dist/web/assets/treemap-6X3UGDF4-BbCXbaXr.js.br +0 -0
- package/dist/web/assets/treemap-6X3UGDF4-BbCXbaXr.js.gz +0 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-BeRjhB53.js +34 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-BeRjhB53.js.br +0 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-BeRjhB53.js.gz +0 -0
- package/dist/web/assets/wardley-OPB4EBWU-BjXxCRf_.js +1 -0
- package/dist/web/assets/wardley-OPB4EBWU-BjXxCRf_.js.br +0 -0
- package/dist/web/assets/wardley-OPB4EBWU-BjXxCRf_.js.gz +0 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-DCaHyzft.js +78 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-DCaHyzft.js.br +0 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-DCaHyzft.js.gz +0 -0
- package/dist/web/assets/workbench-composer-DADJ-NVk.js +8 -0
- package/dist/web/assets/workbench-composer-DADJ-NVk.js.br +0 -0
- package/dist/web/assets/workbench-composer-DADJ-NVk.js.gz +0 -0
- package/dist/web/assets/workbench-inspector-changes-TU-0Es7d.js +2 -0
- package/dist/web/assets/workbench-inspector-changes-TU-0Es7d.js.br +0 -0
- package/dist/web/assets/workbench-inspector-changes-TU-0Es7d.js.gz +0 -0
- package/dist/web/assets/workbench-pet-canvas-BQH6uPrr.js +1 -0
- package/dist/web/assets/workbench-pet-canvas-BQH6uPrr.js.br +0 -0
- package/dist/web/assets/workbench-pet-canvas-BQH6uPrr.js.gz +0 -0
- package/dist/web/assets/workbench-shell-Dc-kWIVc.js +3 -0
- package/dist/web/assets/workbench-shell-Dc-kWIVc.js.br +0 -0
- package/dist/web/assets/workbench-shell-Dc-kWIVc.js.gz +0 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-CpqOE9KP.js +7 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-CpqOE9KP.js.br +0 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-CpqOE9KP.js.gz +0 -0
- package/dist/web/index.html +3 -3
- package/dist/web/index.html.br +0 -0
- package/dist/web/index.html.gz +0 -0
- package/package.json +2 -2
- package/dist/web/assets/agent-settings-panel-Ci9mJOS-.js.br +0 -0
- package/dist/web/assets/agent-settings-panel-Ci9mJOS-.js.gz +0 -0
- package/dist/web/assets/attachments-uWbRsPJj.js.br +0 -0
- package/dist/web/assets/attachments-uWbRsPJj.js.gz +0 -0
- package/dist/web/assets/background-image-picker-qGpdQPQi.js.br +0 -0
- package/dist/web/assets/background-image-picker-qGpdQPQi.js.gz +0 -0
- package/dist/web/assets/bing-wallpaper-queries-uesKD16x.js.br +0 -0
- package/dist/web/assets/bing-wallpaper-queries-uesKD16x.js.gz +0 -0
- package/dist/web/assets/button-group-075rCj_f.js.br +0 -0
- package/dist/web/assets/button-group-075rCj_f.js.gz +0 -0
- package/dist/web/assets/chunk-BO2N2NFS-D6bbuE0-.js +0 -131
- package/dist/web/assets/chunk-BO2N2NFS-D6bbuE0-.js.br +0 -0
- package/dist/web/assets/chunk-BO2N2NFS-D6bbuE0-.js.gz +0 -0
- package/dist/web/assets/code-block-C9eTeWWd.js.br +0 -0
- package/dist/web/assets/code-block-C9eTeWWd.js.gz +0 -0
- package/dist/web/assets/commit-settings-panel-CaMMU0oA.js.br +0 -0
- package/dist/web/assets/commit-settings-panel-CaMMU0oA.js.gz +0 -0
- package/dist/web/assets/context-menu-Dj3lnor1.js.br +0 -0
- package/dist/web/assets/context-menu-Dj3lnor1.js.gz +0 -0
- package/dist/web/assets/file-review-dialog-D8XVZ21M.js.br +0 -0
- package/dist/web/assets/file-review-dialog-D8XVZ21M.js.gz +0 -0
- package/dist/web/assets/git-history-panel-D2fKSR66.js.br +0 -0
- package/dist/web/assets/git-history-panel-D2fKSR66.js.gz +0 -0
- package/dist/web/assets/global-search-dialog-BxT-UjpZ.js.br +0 -0
- package/dist/web/assets/global-search-dialog-BxT-UjpZ.js.gz +0 -0
- package/dist/web/assets/global-settings-about-DiblprcD.js.br +0 -0
- package/dist/web/assets/global-settings-about-DiblprcD.js.gz +0 -0
- package/dist/web/assets/global-settings-fields-D5T5SPXY.js.br +0 -0
- package/dist/web/assets/global-settings-fields-D5T5SPXY.js.gz +0 -0
- package/dist/web/assets/global-settings-model-COz331Sr.js.br +0 -0
- package/dist/web/assets/global-settings-model-COz331Sr.js.gz +0 -0
- package/dist/web/assets/global-settings-page-DEBGBxSg.js.br +0 -0
- package/dist/web/assets/global-settings-page-DEBGBxSg.js.gz +0 -0
- package/dist/web/assets/global-settings-pets-DwJnj_6N.js.br +0 -0
- package/dist/web/assets/global-settings-pets-DwJnj_6N.js.gz +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-D0ZQwVKA.js.br +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-D0ZQwVKA.js.gz +0 -0
- package/dist/web/assets/history-task-timeline-oQRRdMbY.js.br +0 -0
- package/dist/web/assets/history-task-timeline-oQRRdMbY.js.gz +0 -0
- package/dist/web/assets/index-Cm5l38kF.css +0 -2
- package/dist/web/assets/index-Cm5l38kF.css.br +0 -0
- package/dist/web/assets/index-Cm5l38kF.css.gz +0 -0
- package/dist/web/assets/index-DRfXjZ2a.js +0 -4
- package/dist/web/assets/index-DRfXjZ2a.js.br +0 -0
- package/dist/web/assets/index-DRfXjZ2a.js.gz +0 -0
- package/dist/web/assets/initial-deps-DipJkDUX.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-v1IcvRKL.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-v1IcvRKL.js.gz +0 -0
- package/dist/web/assets/lazy-message-response-B6dT9kbf.js +0 -2
- package/dist/web/assets/lazy-message-response-B6dT9kbf.js.br +0 -0
- package/dist/web/assets/lazy-message-response-B6dT9kbf.js.gz +0 -0
- package/dist/web/assets/mcp-management-pane-DiPUaZAO.js.br +0 -0
- package/dist/web/assets/mcp-management-pane-DiPUaZAO.js.gz +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-BghgL98l.js +0 -1
- package/dist/web/assets/mermaid-GHXKKRXX-BghgL98l.js.br +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-BghgL98l.js.gz +0 -0
- package/dist/web/assets/message-response-BZZGbaVm.js +0 -7
- package/dist/web/assets/message-response-BZZGbaVm.js.br +0 -0
- package/dist/web/assets/message-response-BZZGbaVm.js.gz +0 -0
- package/dist/web/assets/official-plugins-pane-Cis1hRgm.js.br +0 -0
- package/dist/web/assets/official-plugins-pane-Cis1hRgm.js.gz +0 -0
- package/dist/web/assets/personalization-settings-panel-BB5nguhA.js.br +0 -0
- package/dist/web/assets/personalization-settings-panel-BB5nguhA.js.gz +0 -0
- package/dist/web/assets/project-file-popup-page-CAcF7DIa.js.br +0 -0
- package/dist/web/assets/project-file-popup-page-CAcF7DIa.js.gz +0 -0
- package/dist/web/assets/project-source-dialog-DbOmvJBS.js.br +0 -0
- package/dist/web/assets/project-source-dialog-DbOmvJBS.js.gz +0 -0
- package/dist/web/assets/project-source-panel-DGafRUDi.js +0 -1
- package/dist/web/assets/project-source-panel-DGafRUDi.js.br +0 -0
- package/dist/web/assets/project-source-panel-DGafRUDi.js.gz +0 -0
- package/dist/web/assets/prompt-input-DwT-XwSc.js.br +0 -0
- package/dist/web/assets/prompt-input-DwT-XwSc.js.gz +0 -0
- package/dist/web/assets/prompt-input-controls-CLasQrSj.js.br +0 -0
- package/dist/web/assets/prompt-input-controls-CLasQrSj.js.gz +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-CnSPVHna.js.br +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-CnSPVHna.js.gz +0 -0
- package/dist/web/assets/scheduled-task-schedule-BnMdRADi.js.br +0 -0
- package/dist/web/assets/scheduled-task-schedule-BnMdRADi.js.gz +0 -0
- package/dist/web/assets/scheduled-tasks-container-CNCzsjiP.js.br +0 -0
- package/dist/web/assets/scheduled-tasks-container-CNCzsjiP.js.gz +0 -0
- package/dist/web/assets/settings-personalization-CB_nnUys.js.br +0 -0
- package/dist/web/assets/settings-personalization-CB_nnUys.js.gz +0 -0
- package/dist/web/assets/sheet-JpH2S7eZ.js.br +0 -0
- package/dist/web/assets/sheet-JpH2S7eZ.js.gz +0 -0
- package/dist/web/assets/skills-market-container-BgtnwdI7.js.br +0 -0
- package/dist/web/assets/skills-market-container-BgtnwdI7.js.gz +0 -0
- package/dist/web/assets/task-timeline-store-BN41mX3t.js +0 -6
- package/dist/web/assets/task-timeline-store-BN41mX3t.js.br +0 -0
- package/dist/web/assets/task-timeline-store-BN41mX3t.js.gz +0 -0
- package/dist/web/assets/third-party-marketplace-pane-CAI6XIWR.js.br +0 -0
- package/dist/web/assets/third-party-marketplace-pane-CAI6XIWR.js.gz +0 -0
- package/dist/web/assets/workbench-composer-dKix0zGK.js +0 -8
- package/dist/web/assets/workbench-composer-dKix0zGK.js.br +0 -0
- package/dist/web/assets/workbench-composer-dKix0zGK.js.gz +0 -0
- package/dist/web/assets/workbench-inspector-changes-Bl5nS-_2.js +0 -2
- package/dist/web/assets/workbench-inspector-changes-Bl5nS-_2.js.br +0 -0
- package/dist/web/assets/workbench-inspector-changes-Bl5nS-_2.js.gz +0 -0
- package/dist/web/assets/workbench-pet-canvas-CnwZR5HG.js +0 -1
- package/dist/web/assets/workbench-pet-canvas-CnwZR5HG.js.br +0 -0
- package/dist/web/assets/workbench-pet-canvas-CnwZR5HG.js.gz +0 -0
- package/dist/web/assets/workbench-shell-B8lBrj2O.js +0 -3
- package/dist/web/assets/workbench-shell-B8lBrj2O.js.br +0 -0
- 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-
|
|
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
|
|
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,
|
|
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:
|
|
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"] ||
|
|
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:
|
|
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
|
|
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"] ||
|
|
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"] ||
|
|
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 (
|
|
2694
|
+
if (isAbsolute8(origin) || origin.indexOf("file://") === 0) {
|
|
2695
2695
|
return origin;
|
|
2696
2696
|
}
|
|
2697
2697
|
if (origin === "pino/file") {
|
|
2698
|
-
return
|
|
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
|
|
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
|
-
|
|
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 +=
|
|
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 += `${
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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 +=
|
|
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 += `${
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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 +=
|
|
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 += `${
|
|
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
|
|
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,
|
|
3925
|
+
res += stringifyTypedArray(value, join9, maximumBreadth);
|
|
3926
3926
|
keys = keys.slice(value.length);
|
|
3927
3927
|
maximumPropertiesToStringify -= value.length;
|
|
3928
|
-
separator =
|
|
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 =
|
|
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 =
|
|
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.
|
|
4470
|
-
var SUPPORTED_CODEX_VERSION_RANGE = ">=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 !==
|
|
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
|
|
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")
|
|
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 ?
|
|
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
|
|
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
|
|
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
|
-
|
|
11993
|
-
|
|
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,
|
|
13291
|
-
return this.#providerConnection.configureCustom(input,
|
|
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 = [
|
|
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;
|