@bryanhu/codexly 0.30.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +374 -4
- package/README.md +6 -5
- package/README.zh-CN.md +6 -5
- package/dist/{chunk-T3TXYERG.js → chunk-DKYA55ID.js} +276 -133
- package/dist/{chunk-YEWVIPEB.js → chunk-NVO3WERA.js} +7973 -9176
- package/dist/{chunk-W6U4V35J.js → chunk-XAI75BER.js} +28 -1
- package/dist/{chunk-MWNYYQDP.js → chunk-XUFOQLNM.js} +1 -1
- package/dist/cli.js +5 -5
- package/dist/client/index.js +67 -47
- package/dist/protocol/index.js +1 -1
- package/dist/providers/codex/index.js +2 -2
- package/dist/server/index.js +4 -4
- package/dist/web/.vite/manifest.json +419 -418
- package/dist/web/.vite/manifest.json.br +0 -0
- package/dist/web/.vite/manifest.json.gz +0 -0
- package/dist/web/assets/{abnfDiagram-N423BO3Z-B5zsWXWU.js → abnfDiagram-N423BO3Z-BNQGyoKW.js} +1 -1
- package/dist/web/assets/abnfDiagram-N423BO3Z-BNQGyoKW.js.br +0 -0
- package/dist/web/assets/abnfDiagram-N423BO3Z-BNQGyoKW.js.gz +0 -0
- package/dist/web/assets/agent-settings-panel-Cw3jdY6t.js +1 -0
- package/dist/web/assets/agent-settings-panel-Cw3jdY6t.js.br +0 -0
- package/dist/web/assets/agent-settings-panel-Cw3jdY6t.js.gz +0 -0
- package/dist/web/assets/{architectureDiagram-T3A2C74G-VAJJokz3.js → architectureDiagram-T3A2C74G-DD3Wv08-.js} +1 -1
- package/dist/web/assets/architectureDiagram-T3A2C74G-DD3Wv08-.js.br +0 -0
- package/dist/web/assets/architectureDiagram-T3A2C74G-DD3Wv08-.js.gz +0 -0
- package/dist/web/assets/{attachments-CuciRoPj.js → attachments-RprEDfKR.js} +1 -1
- package/dist/web/assets/attachments-RprEDfKR.js.br +0 -0
- package/dist/web/assets/attachments-RprEDfKR.js.gz +0 -0
- package/dist/web/assets/{background-image-picker-D4S9VbWK.js → background-image-picker-QYAv3VbU.js} +1 -1
- package/dist/web/assets/background-image-picker-QYAv3VbU.js.br +0 -0
- package/dist/web/assets/background-image-picker-QYAv3VbU.js.gz +0 -0
- package/dist/web/assets/{blockDiagram-VBNYF7ZC-BV5k8m33.js → blockDiagram-VBNYF7ZC-CceBrXFU.js} +1 -1
- package/dist/web/assets/blockDiagram-VBNYF7ZC-CceBrXFU.js.br +0 -0
- package/dist/web/assets/blockDiagram-VBNYF7ZC-CceBrXFU.js.gz +0 -0
- package/dist/web/assets/{c4Diagram-5PPSVZJV-BxAKHU1O.js → c4Diagram-5PPSVZJV-w5l2XNGM.js} +1 -1
- package/dist/web/assets/c4Diagram-5PPSVZJV-w5l2XNGM.js.br +0 -0
- package/dist/web/assets/c4Diagram-5PPSVZJV-w5l2XNGM.js.gz +0 -0
- package/dist/web/assets/channel-DO_0Dk-j.js +1 -0
- package/dist/web/assets/channel-DO_0Dk-j.js.br +0 -0
- package/dist/web/assets/channel-DO_0Dk-j.js.gz +0 -0
- package/dist/web/assets/{chunk-2GRJ4B5K-BylLXQQW.js → chunk-2GRJ4B5K-CEv2MHXP.js} +1 -1
- package/dist/web/assets/chunk-2GRJ4B5K-CEv2MHXP.js.br +0 -0
- package/dist/web/assets/chunk-2GRJ4B5K-CEv2MHXP.js.gz +0 -0
- package/dist/web/assets/{chunk-4I5QYGJK-Sszv2sFO.js → chunk-4I5QYGJK-CFTW6BjH.js} +1 -1
- package/dist/web/assets/chunk-4I5QYGJK-CFTW6BjH.js.br +0 -0
- package/dist/web/assets/chunk-4I5QYGJK-CFTW6BjH.js.gz +0 -0
- package/dist/web/assets/{chunk-5RXB4S5H-fk5DV184.js → chunk-5RXB4S5H-ocsRY-Fj.js} +1 -1
- package/dist/web/assets/chunk-5RXB4S5H-ocsRY-Fj.js.br +0 -0
- package/dist/web/assets/chunk-5RXB4S5H-ocsRY-Fj.js.gz +0 -0
- package/dist/web/assets/{chunk-6Q2QTUOP-BOd4EM_k.js → chunk-6Q2QTUOP-UHk9h1D2.js} +1 -1
- package/dist/web/assets/chunk-6Q2QTUOP-UHk9h1D2.js.br +0 -0
- package/dist/web/assets/chunk-6Q2QTUOP-UHk9h1D2.js.gz +0 -0
- package/dist/web/assets/{chunk-7Z6QIM7H-KnmPl6Ej.js → chunk-7Z6QIM7H-EcjbjQJl.js} +1 -1
- package/dist/web/assets/chunk-7Z6QIM7H-EcjbjQJl.js.br +0 -0
- package/dist/web/assets/chunk-7Z6QIM7H-EcjbjQJl.js.gz +0 -0
- package/dist/web/assets/{chunk-GF5L2VYU-4S3VMyhe.js → chunk-GF5L2VYU-Cc92G1zw.js} +1 -1
- package/dist/web/assets/chunk-GF5L2VYU-Cc92G1zw.js.br +0 -0
- package/dist/web/assets/chunk-GF5L2VYU-Cc92G1zw.js.gz +0 -0
- package/dist/web/assets/{chunk-I66GZJ75-Cv1OO8mI.js → chunk-I66GZJ75-DQ6xf6w7.js} +1 -1
- package/dist/web/assets/chunk-I66GZJ75-DQ6xf6w7.js.br +0 -0
- package/dist/web/assets/{chunk-I66GZJ75-Cv1OO8mI.js.gz → chunk-I66GZJ75-DQ6xf6w7.js.gz} +0 -0
- package/dist/web/assets/{chunk-JQJVKLGR-BwAdww_a.js → chunk-JQJVKLGR-DlZkeUMZ.js} +1 -1
- package/dist/web/assets/chunk-JQJVKLGR-DlZkeUMZ.js.br +0 -0
- package/dist/web/assets/chunk-JQJVKLGR-DlZkeUMZ.js.gz +0 -0
- package/dist/web/assets/{chunk-KBJHAD2P-BJ17RizB.js → chunk-KBJHAD2P-B3r655RL.js} +1 -1
- package/dist/web/assets/chunk-KBJHAD2P-B3r655RL.js.br +0 -0
- package/dist/web/assets/chunk-KBJHAD2P-B3r655RL.js.gz +0 -0
- package/dist/web/assets/{chunk-NSK5VX7P-YD4zvQrY.js → chunk-NSK5VX7P-CWtmfyNT.js} +1 -1
- package/dist/web/assets/chunk-NSK5VX7P-CWtmfyNT.js.br +0 -0
- package/dist/web/assets/chunk-NSK5VX7P-CWtmfyNT.js.gz +0 -0
- package/dist/web/assets/{chunk-QR6OTTB3-B4Vn8un2.js → chunk-QR6OTTB3-glA5PGr7.js} +1 -1
- package/dist/web/assets/chunk-QR6OTTB3-glA5PGr7.js.br +0 -0
- package/dist/web/assets/chunk-QR6OTTB3-glA5PGr7.js.gz +0 -0
- package/dist/web/assets/{chunk-UBXNYLIW-C_5U1nW_.js → chunk-UBXNYLIW-CMSFSmVU.js} +1 -1
- package/dist/web/assets/chunk-UBXNYLIW-CMSFSmVU.js.br +0 -0
- package/dist/web/assets/chunk-UBXNYLIW-CMSFSmVU.js.gz +0 -0
- package/dist/web/assets/{chunk-W5SLKNZC-Cg_GuHYA.js → chunk-W5SLKNZC-BJLdBBKL.js} +1 -1
- package/dist/web/assets/chunk-W5SLKNZC-BJLdBBKL.js.br +0 -0
- package/dist/web/assets/chunk-W5SLKNZC-BJLdBBKL.js.gz +0 -0
- package/dist/web/assets/{chunk-WRU74C26-zXtZrpuc.js → chunk-WRU74C26-COKHzxBn.js} +1 -1
- package/dist/web/assets/chunk-WRU74C26-COKHzxBn.js.br +0 -0
- package/dist/web/assets/chunk-WRU74C26-COKHzxBn.js.gz +0 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-iOFL-bsh.js +1 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-iOFL-bsh.js.br +0 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-iOFL-bsh.js.gz +0 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-iOFL-bsh.js +1 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-iOFL-bsh.js.br +0 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-iOFL-bsh.js.gz +0 -0
- package/dist/web/assets/{code-highlighter-BjWXy_Iw.js → code-highlighter-DgU_0QxC.js} +1 -1
- package/dist/web/assets/code-highlighter-DgU_0QxC.js.br +0 -0
- package/dist/web/assets/code-highlighter-DgU_0QxC.js.gz +0 -0
- package/dist/web/assets/{commit-settings-panel-a9GtBcyN.js → commit-settings-panel-DNYXLonO.js} +1 -1
- package/dist/web/assets/commit-settings-panel-DNYXLonO.js.br +0 -0
- package/dist/web/assets/commit-settings-panel-DNYXLonO.js.gz +0 -0
- package/dist/web/assets/{cynefinDiagram-MW4NZA55-Ds3L2HYC.js → cynefinDiagram-MW4NZA55-BrF5N2I3.js} +1 -1
- package/dist/web/assets/cynefinDiagram-MW4NZA55-BrF5N2I3.js.br +0 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-BrF5N2I3.js.gz +0 -0
- package/dist/web/assets/{dagre-VZM6K2ZE-DPjpFaaI.js → dagre-VZM6K2ZE-BJMLqNJh.js} +1 -1
- package/dist/web/assets/dagre-VZM6K2ZE-BJMLqNJh.js.br +0 -0
- package/dist/web/assets/dagre-VZM6K2ZE-BJMLqNJh.js.gz +0 -0
- package/dist/web/assets/{diagram-7IWD3JNH-oAuqSBBd.js → diagram-7IWD3JNH-ifv8VJJc.js} +1 -1
- package/dist/web/assets/diagram-7IWD3JNH-ifv8VJJc.js.br +0 -0
- package/dist/web/assets/diagram-7IWD3JNH-ifv8VJJc.js.gz +0 -0
- package/dist/web/assets/{diagram-B4RE2ZJO-DutGwDiG.js → diagram-B4RE2ZJO-Ct90H1dH.js} +1 -1
- package/dist/web/assets/diagram-B4RE2ZJO-Ct90H1dH.js.br +0 -0
- package/dist/web/assets/diagram-B4RE2ZJO-Ct90H1dH.js.gz +0 -0
- package/dist/web/assets/{diagram-LBJQPF4R-BTr0W5cj.js → diagram-LBJQPF4R-CdIe_mMk.js} +1 -1
- package/dist/web/assets/diagram-LBJQPF4R-CdIe_mMk.js.br +0 -0
- package/dist/web/assets/diagram-LBJQPF4R-CdIe_mMk.js.gz +0 -0
- package/dist/web/assets/{diagram-Q27KOJAE-Xmz7kPoV.js → diagram-Q27KOJAE-CK_HN_bO.js} +1 -1
- package/dist/web/assets/diagram-Q27KOJAE-CK_HN_bO.js.br +0 -0
- package/dist/web/assets/diagram-Q27KOJAE-CK_HN_bO.js.gz +0 -0
- package/dist/web/assets/{diagram-UB23O5K3-Ccoz8RvZ.js → diagram-UB23O5K3-Bq_WN7-1.js} +1 -1
- package/dist/web/assets/diagram-UB23O5K3-Bq_WN7-1.js.br +0 -0
- package/dist/web/assets/diagram-UB23O5K3-Bq_WN7-1.js.gz +0 -0
- package/dist/web/assets/{dist-XXjZG1D0.js → dist-CluNskN2.js} +1 -1
- package/dist/web/assets/dist-CluNskN2.js.br +0 -0
- package/dist/web/assets/dist-CluNskN2.js.gz +0 -0
- package/dist/web/assets/{ebnfDiagram-BXEA7PRR-XLCtKL91.js → ebnfDiagram-BXEA7PRR-aHZ7rwz9.js} +1 -1
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-aHZ7rwz9.js.br +0 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-aHZ7rwz9.js.gz +0 -0
- package/dist/web/assets/{erDiagram-JOGREHBK-S2CHNYGV.js → erDiagram-JOGREHBK-BuinP8ud.js} +1 -1
- package/dist/web/assets/erDiagram-JOGREHBK-BuinP8ud.js.br +0 -0
- package/dist/web/assets/erDiagram-JOGREHBK-BuinP8ud.js.gz +0 -0
- package/dist/web/assets/{file-review-dialog-F6jB7Qb_.js → file-review-dialog-CT_Gw1pV.js} +2 -2
- package/dist/web/assets/file-review-dialog-CT_Gw1pV.js.br +0 -0
- package/dist/web/assets/file-review-dialog-CT_Gw1pV.js.gz +0 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-CshMgdUI.js +1 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-CshMgdUI.js.br +0 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-CshMgdUI.js.gz +0 -0
- package/dist/web/assets/{ganttDiagram-PKOTCBZU-BdtSBPJo.js → ganttDiagram-PKOTCBZU-DDBacU-N.js} +1 -1
- package/dist/web/assets/ganttDiagram-PKOTCBZU-DDBacU-N.js.br +0 -0
- package/dist/web/assets/ganttDiagram-PKOTCBZU-DDBacU-N.js.gz +0 -0
- package/dist/web/assets/{git-commit-review-BT1DisdC.js → git-commit-review-Dkpi8Sy-.js} +2 -2
- package/dist/web/assets/git-commit-review-Dkpi8Sy-.js.br +0 -0
- package/dist/web/assets/git-commit-review-Dkpi8Sy-.js.gz +0 -0
- package/dist/web/assets/{git-history-panel-D4wJqH0T.js → git-history-panel-DO8EvkcX.js} +1 -1
- package/dist/web/assets/git-history-panel-DO8EvkcX.js.br +0 -0
- package/dist/web/assets/git-history-panel-DO8EvkcX.js.gz +0 -0
- package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-B22e8CZo.js → gitGraphDiagram-DS77QQ5N-CuMvIZdK.js} +1 -1
- package/dist/web/assets/gitGraphDiagram-DS77QQ5N-CuMvIZdK.js.br +0 -0
- package/dist/web/assets/gitGraphDiagram-DS77QQ5N-CuMvIZdK.js.gz +0 -0
- package/dist/web/assets/global-search-dialog-dR0YZnzP.js +2 -0
- package/dist/web/assets/global-search-dialog-dR0YZnzP.js.br +0 -0
- package/dist/web/assets/global-search-dialog-dR0YZnzP.js.gz +0 -0
- package/dist/web/assets/{global-settings-about-DF9t5LPK.js → global-settings-about-D9Yo5hN3.js} +1 -1
- package/dist/web/assets/global-settings-about-D9Yo5hN3.js.br +0 -0
- package/dist/web/assets/global-settings-about-D9Yo5hN3.js.gz +0 -0
- package/dist/web/assets/global-settings-page-CFL-9PhV.js +2 -0
- package/dist/web/assets/global-settings-page-CFL-9PhV.js.br +0 -0
- package/dist/web/assets/global-settings-page-CFL-9PhV.js.gz +0 -0
- package/dist/web/assets/{global-settings-pets-D8Grr4dJ.js → global-settings-pets-CuoaZxtE.js} +1 -1
- package/dist/web/assets/global-settings-pets-CuoaZxtE.js.br +0 -0
- package/dist/web/assets/global-settings-pets-CuoaZxtE.js.gz +0 -0
- package/dist/web/assets/{highlighted-body-OFNGDK62-T0waXgH6.js → highlighted-body-OFNGDK62-CekJ_So6.js} +1 -1
- package/dist/web/assets/highlighted-body-OFNGDK62-CekJ_So6.js.br +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-CekJ_So6.js.gz +0 -0
- package/dist/web/assets/{history-task-timeline-BLiCPMY2.js → history-task-timeline-BcOpE-cC.js} +1 -1
- package/dist/web/assets/history-task-timeline-BcOpE-cC.js.br +0 -0
- package/dist/web/assets/history-task-timeline-BcOpE-cC.js.gz +0 -0
- package/dist/web/assets/{image-preview-DHojYYCu.js → image-preview-CgTdDcyJ.js} +2 -2
- package/dist/web/assets/image-preview-CgTdDcyJ.js.br +0 -0
- package/dist/web/assets/image-preview-CgTdDcyJ.js.gz +0 -0
- package/dist/web/assets/{image-preview-content-bIMPrgXt.js → image-preview-content-BU-oy7b2.js} +2 -2
- package/dist/web/assets/image-preview-content-BU-oy7b2.js.br +0 -0
- package/dist/web/assets/image-preview-content-BU-oy7b2.js.gz +0 -0
- package/dist/web/assets/index-CRdM3Dna.js +4 -0
- package/dist/web/assets/index-CRdM3Dna.js.br +0 -0
- package/dist/web/assets/index-CRdM3Dna.js.gz +0 -0
- package/dist/web/assets/index-DmDmJ9SS.css +2 -0
- package/dist/web/assets/index-DmDmJ9SS.css.br +0 -0
- package/dist/web/assets/index-DmDmJ9SS.css.gz +0 -0
- package/dist/web/assets/{infoDiagram-6WML65LV-8JSDIKEQ.js → infoDiagram-6WML65LV-DXj_UITp.js} +1 -1
- package/dist/web/assets/infoDiagram-6WML65LV-DXj_UITp.js.br +0 -0
- package/dist/web/assets/infoDiagram-6WML65LV-DXj_UITp.js.gz +0 -0
- package/dist/web/assets/{initial-deps-BvCty1IU.js → initial-deps-BpbvK27t.js} +1 -1
- package/dist/web/assets/initial-deps-BpbvK27t.js.br +0 -0
- package/dist/web/assets/{initial-deps-BvCty1IU.js.gz → initial-deps-BpbvK27t.js.gz} +0 -0
- package/dist/web/assets/initial-deps-C15hrUZ_.js +1 -0
- package/dist/web/assets/initial-deps-C15hrUZ_.js.br +0 -0
- package/dist/web/assets/initial-deps-C15hrUZ_.js.gz +0 -0
- package/dist/web/assets/{installed-skills-pane-Bnwd2-z8.js → installed-skills-pane-CARabzjL.js} +1 -1
- package/dist/web/assets/installed-skills-pane-CARabzjL.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-CARabzjL.js.gz +0 -0
- package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-BBsZ0aSy.js → ishikawaDiagram-WSZJBQD7-DhOryo-F.js} +1 -1
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-DhOryo-F.js.br +0 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-DhOryo-F.js.gz +0 -0
- package/dist/web/assets/{journeyDiagram-NVQOT4AX-CdhNlHim.js → journeyDiagram-NVQOT4AX-DQo3-f9r.js} +1 -1
- package/dist/web/assets/journeyDiagram-NVQOT4AX-DQo3-f9r.js.br +0 -0
- package/dist/web/assets/journeyDiagram-NVQOT4AX-DQo3-f9r.js.gz +0 -0
- package/dist/web/assets/{kanban-definition-27J2QSJJ-DUC5stHg.js → kanban-definition-27J2QSJJ-CFbVSWMX.js} +1 -1
- package/dist/web/assets/kanban-definition-27J2QSJJ-CFbVSWMX.js.br +0 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-CFbVSWMX.js.gz +0 -0
- package/dist/web/assets/katex-CqLmZ2j0.js +257 -0
- package/dist/web/assets/katex-CqLmZ2j0.js.br +0 -0
- package/dist/web/assets/katex-CqLmZ2j0.js.gz +0 -0
- package/dist/web/assets/{lazy-message-response-CgZbm6_f.js → lazy-message-response-CfjbPZ5J.js} +2 -2
- package/dist/web/assets/lazy-message-response-CfjbPZ5J.js.br +0 -0
- package/dist/web/assets/lazy-message-response-CfjbPZ5J.js.gz +0 -0
- package/dist/web/assets/{line-CkOY0j4D.js → line-CxzJiGLl.js} +1 -1
- package/dist/web/assets/line-CxzJiGLl.js.br +0 -0
- package/dist/web/assets/line-CxzJiGLl.js.gz +0 -0
- package/dist/web/assets/{mcp-management-pane-BwR_barH.js → mcp-management-pane-R_czmUhH.js} +1 -1
- package/dist/web/assets/mcp-management-pane-R_czmUhH.js.br +0 -0
- package/dist/web/assets/mcp-management-pane-R_czmUhH.js.gz +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-CzXsAmTg.js +1 -0
- package/dist/web/assets/mermaid-GHXKKRXX-CzXsAmTg.js.br +1 -0
- package/dist/web/assets/mermaid-GHXKKRXX-CzXsAmTg.js.gz +0 -0
- package/dist/web/assets/{message-response-BuAZphla.js → message-response-BFFFyTC8.js} +6 -6
- package/dist/web/assets/message-response-BFFFyTC8.js.br +0 -0
- package/dist/web/assets/message-response-BFFFyTC8.js.gz +0 -0
- package/dist/web/assets/{mindmap-definition-FAOFIHXS-DGzAA5ft.js → mindmap-definition-FAOFIHXS-CPvet4ko.js} +1 -1
- package/dist/web/assets/mindmap-definition-FAOFIHXS-CPvet4ko.js.br +0 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-CPvet4ko.js.gz +0 -0
- package/dist/web/assets/official-plugins-pane-8dU5tD5j.js +1 -0
- package/dist/web/assets/official-plugins-pane-8dU5tD5j.js.br +0 -0
- package/dist/web/assets/official-plugins-pane-8dU5tD5j.js.gz +0 -0
- package/dist/web/assets/{patch-diff-viewer-BigjXoO6.js → patch-diff-viewer-dwnWdpuh.js} +3 -3
- package/dist/web/assets/patch-diff-viewer-dwnWdpuh.js.br +0 -0
- package/dist/web/assets/patch-diff-viewer-dwnWdpuh.js.gz +0 -0
- package/dist/web/assets/{pegDiagram-VL7TDLO6-BfAVCl7E.js → pegDiagram-VL7TDLO6-g_Tl-OvY.js} +1 -1
- package/dist/web/assets/pegDiagram-VL7TDLO6-g_Tl-OvY.js.br +0 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-g_Tl-OvY.js.gz +0 -0
- package/dist/web/assets/{personalization-settings-panel-D-Gd--Rl.js → personalization-settings-panel-BNtf7M02.js} +1 -1
- package/dist/web/assets/personalization-settings-panel-BNtf7M02.js.br +0 -0
- package/dist/web/assets/personalization-settings-panel-BNtf7M02.js.gz +0 -0
- package/dist/web/assets/{pieDiagram-7S7Q4E2Y-kgcNar0g.js → pieDiagram-7S7Q4E2Y-D5nL0YX8.js} +1 -1
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-D5nL0YX8.js.br +0 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-D5nL0YX8.js.gz +0 -0
- package/dist/web/assets/{project-file-popup-page-DJCEoy22.js → project-file-popup-page-CAu_h4yX.js} +1 -1
- package/dist/web/assets/project-file-popup-page-CAu_h4yX.js.br +0 -0
- package/dist/web/assets/project-file-popup-page-CAu_h4yX.js.gz +0 -0
- package/dist/web/assets/project-source-panel-BxdWhG1a.js +3 -0
- package/dist/web/assets/project-source-panel-BxdWhG1a.js.br +0 -0
- package/dist/web/assets/project-source-panel-BxdWhG1a.js.gz +0 -0
- package/dist/web/assets/{prompt-input-BDkiLB2S.js → prompt-input-FmjDMq6f.js} +1 -1
- package/dist/web/assets/prompt-input-FmjDMq6f.js.br +0 -0
- package/dist/web/assets/prompt-input-FmjDMq6f.js.gz +0 -0
- package/dist/web/assets/{prompt-reference-token-_srKof11.js → prompt-reference-token-0nfC9-R_.js} +1 -1
- package/dist/web/assets/prompt-reference-token-0nfC9-R_.js.br +0 -0
- package/dist/web/assets/prompt-reference-token-0nfC9-R_.js.gz +0 -0
- package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-BYWpo7rG.js → quadrantDiagram-CIZ2JOQS-B2fgIvk_.js} +1 -1
- package/dist/web/assets/quadrantDiagram-CIZ2JOQS-B2fgIvk_.js.br +0 -0
- package/dist/web/assets/quadrantDiagram-CIZ2JOQS-B2fgIvk_.js.gz +0 -0
- package/dist/web/assets/{railroadDiagram-AXF67PYL-CmHkSqa8.js → railroadDiagram-AXF67PYL-G_Sn9seM.js} +1 -1
- package/dist/web/assets/railroadDiagram-AXF67PYL-G_Sn9seM.js.br +0 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-G_Sn9seM.js.gz +0 -0
- package/dist/web/assets/{requirementDiagram-LRYGKXZP-I035gQYY.js → requirementDiagram-LRYGKXZP-B2dOYlbZ.js} +1 -1
- package/dist/web/assets/requirementDiagram-LRYGKXZP-B2dOYlbZ.js.br +0 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-B2dOYlbZ.js.gz +0 -0
- package/dist/web/assets/{sankeyDiagram-W5VNT64P-B9EFX3Mg.js → sankeyDiagram-W5VNT64P-zjYX_iXE.js} +1 -1
- package/dist/web/assets/sankeyDiagram-W5VNT64P-zjYX_iXE.js.br +0 -0
- package/dist/web/assets/sankeyDiagram-W5VNT64P-zjYX_iXE.js.gz +0 -0
- package/dist/web/assets/{scheduled-task-date-time-picker-BCFLWNkx.js → scheduled-task-date-time-picker-wn0zkIRE.js} +1 -1
- package/dist/web/assets/scheduled-task-date-time-picker-wn0zkIRE.js.br +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-wn0zkIRE.js.gz +0 -0
- package/dist/web/assets/scheduled-tasks-container-D7FxT79y.js +2 -0
- package/dist/web/assets/scheduled-tasks-container-D7FxT79y.js.br +0 -0
- package/dist/web/assets/scheduled-tasks-container-D7FxT79y.js.gz +0 -0
- package/dist/web/assets/{sequenceDiagram-SI44F4Z6-BomGpYgp.js → sequenceDiagram-SI44F4Z6-Ct0L9UQM.js} +1 -1
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-Ct0L9UQM.js.br +0 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-Ct0L9UQM.js.gz +0 -0
- package/dist/web/assets/sheet-D_ZzYs2j.js +1 -0
- package/dist/web/assets/sheet-D_ZzYs2j.js.br +0 -0
- package/dist/web/assets/sheet-D_ZzYs2j.js.gz +0 -0
- package/dist/web/assets/{shiki-bundle-DirQN6eN.js → shiki-bundle-B4NQo3nh.js} +1 -1
- package/dist/web/assets/shiki-bundle-B4NQo3nh.js.br +1 -0
- package/dist/web/assets/shiki-bundle-B4NQo3nh.js.gz +0 -0
- package/dist/web/assets/{skills-market-container-Dra_SRsM.js → skills-market-container-Bg6Ve87y.js} +2 -2
- package/dist/web/assets/skills-market-container-Bg6Ve87y.js.br +0 -0
- package/dist/web/assets/skills-market-container-Bg6Ve87y.js.gz +0 -0
- package/dist/web/assets/{stateDiagram-OKZ733FA-C5gL7nOO.js → stateDiagram-OKZ733FA-CLwGaibs.js} +1 -1
- package/dist/web/assets/stateDiagram-OKZ733FA-CLwGaibs.js.br +0 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-CLwGaibs.js.gz +0 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DYLv6NAE.js +1 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DYLv6NAE.js.br +0 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DYLv6NAE.js.gz +0 -0
- package/dist/web/assets/{swimlanes-SLNWSIFB-CrO5FxiS.js → swimlanes-SLNWSIFB-BY6G7QkV.js} +1 -1
- package/dist/web/assets/swimlanes-SLNWSIFB-BY6G7QkV.js.br +0 -0
- package/dist/web/assets/swimlanes-SLNWSIFB-BY6G7QkV.js.gz +0 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BRGcuUsp.js +8 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BRGcuUsp.js.br +0 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-BRGcuUsp.js.gz +0 -0
- package/dist/web/assets/{third-party-marketplace-pane-D98JmIr4.js → third-party-marketplace-pane-DzkU9dvA.js} +1 -1
- package/dist/web/assets/third-party-marketplace-pane-DzkU9dvA.js.br +0 -0
- package/dist/web/assets/third-party-marketplace-pane-DzkU9dvA.js.gz +0 -0
- package/dist/web/assets/{timeline-definition-Z64GVDOM-DJi8dcVA.js → timeline-definition-Z64GVDOM-D9FegKpP.js} +1 -1
- package/dist/web/assets/timeline-definition-Z64GVDOM-D9FegKpP.js.br +0 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-D9FegKpP.js.gz +0 -0
- package/dist/web/assets/{vennDiagram-T6HMQDX7-CrKTcaED.js → vennDiagram-T6HMQDX7-CyrAMhsL.js} +1 -1
- package/dist/web/assets/vennDiagram-T6HMQDX7-CyrAMhsL.js.br +0 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-CyrAMhsL.js.gz +0 -0
- package/dist/web/assets/{wardleyDiagram-T6FBY63Y-bLfKjN8C.js → wardleyDiagram-T6FBY63Y-BLPI0lKI.js} +1 -1
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-BLPI0lKI.js.br +0 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-BLPI0lKI.js.gz +0 -0
- package/dist/web/assets/workbench-inspector-changes-CFspNW80.js +2 -0
- package/dist/web/assets/workbench-inspector-changes-CFspNW80.js.br +0 -0
- package/dist/web/assets/workbench-inspector-changes-CFspNW80.js.gz +0 -0
- package/dist/web/assets/{workbench-pet-canvas-UNLOz4Hj.js → workbench-pet-canvas-vCtdeug-.js} +1 -1
- package/dist/web/assets/workbench-pet-canvas-vCtdeug-.js.br +0 -0
- package/dist/web/assets/workbench-pet-canvas-vCtdeug-.js.gz +0 -0
- package/dist/web/assets/workbench-shell-C-jjSlml.js +16 -0
- package/dist/web/assets/workbench-shell-C-jjSlml.js.br +0 -0
- package/dist/web/assets/workbench-shell-C-jjSlml.js.gz +0 -0
- package/dist/web/assets/{xychartDiagram-ELKLHX3M-Cx1crMso.js → xychartDiagram-ELKLHX3M-y1HcEugd.js} +1 -1
- package/dist/web/assets/xychartDiagram-ELKLHX3M-y1HcEugd.js.br +0 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-y1HcEugd.js.gz +0 -0
- package/dist/web/index.html +4 -4
- 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/abnfDiagram-N423BO3Z-B5zsWXWU.js.br +0 -0
- package/dist/web/assets/abnfDiagram-N423BO3Z-B5zsWXWU.js.gz +0 -0
- package/dist/web/assets/agent-settings-panel-D0fbmF3P.js +0 -1
- package/dist/web/assets/agent-settings-panel-D0fbmF3P.js.br +0 -0
- package/dist/web/assets/agent-settings-panel-D0fbmF3P.js.gz +0 -0
- package/dist/web/assets/architectureDiagram-T3A2C74G-VAJJokz3.js.br +0 -0
- package/dist/web/assets/architectureDiagram-T3A2C74G-VAJJokz3.js.gz +0 -0
- package/dist/web/assets/attachments-CuciRoPj.js.br +0 -0
- package/dist/web/assets/attachments-CuciRoPj.js.gz +0 -0
- package/dist/web/assets/background-image-picker-D4S9VbWK.js.br +0 -0
- package/dist/web/assets/background-image-picker-D4S9VbWK.js.gz +0 -0
- package/dist/web/assets/blockDiagram-VBNYF7ZC-BV5k8m33.js.br +0 -0
- package/dist/web/assets/blockDiagram-VBNYF7ZC-BV5k8m33.js.gz +0 -0
- package/dist/web/assets/c4Diagram-5PPSVZJV-BxAKHU1O.js.br +0 -0
- package/dist/web/assets/c4Diagram-5PPSVZJV-BxAKHU1O.js.gz +0 -0
- package/dist/web/assets/channel-BsJlYD7r.js +0 -1
- package/dist/web/assets/channel-BsJlYD7r.js.br +0 -0
- package/dist/web/assets/channel-BsJlYD7r.js.gz +0 -0
- package/dist/web/assets/chunk-2GRJ4B5K-BylLXQQW.js.br +0 -0
- package/dist/web/assets/chunk-2GRJ4B5K-BylLXQQW.js.gz +0 -0
- package/dist/web/assets/chunk-4I5QYGJK-Sszv2sFO.js.br +0 -0
- package/dist/web/assets/chunk-4I5QYGJK-Sszv2sFO.js.gz +0 -0
- package/dist/web/assets/chunk-5RXB4S5H-fk5DV184.js.br +0 -0
- package/dist/web/assets/chunk-5RXB4S5H-fk5DV184.js.gz +0 -0
- package/dist/web/assets/chunk-6Q2QTUOP-BOd4EM_k.js.br +0 -0
- package/dist/web/assets/chunk-6Q2QTUOP-BOd4EM_k.js.gz +0 -0
- package/dist/web/assets/chunk-7Z6QIM7H-KnmPl6Ej.js.br +0 -0
- package/dist/web/assets/chunk-7Z6QIM7H-KnmPl6Ej.js.gz +0 -0
- package/dist/web/assets/chunk-GF5L2VYU-4S3VMyhe.js.br +0 -0
- package/dist/web/assets/chunk-GF5L2VYU-4S3VMyhe.js.gz +0 -0
- package/dist/web/assets/chunk-I66GZJ75-Cv1OO8mI.js.br +0 -0
- package/dist/web/assets/chunk-JQJVKLGR-BwAdww_a.js.br +0 -0
- package/dist/web/assets/chunk-JQJVKLGR-BwAdww_a.js.gz +0 -0
- package/dist/web/assets/chunk-KBJHAD2P-BJ17RizB.js.br +0 -0
- package/dist/web/assets/chunk-KBJHAD2P-BJ17RizB.js.gz +0 -0
- package/dist/web/assets/chunk-NSK5VX7P-YD4zvQrY.js.br +0 -0
- package/dist/web/assets/chunk-NSK5VX7P-YD4zvQrY.js.gz +0 -0
- package/dist/web/assets/chunk-QR6OTTB3-B4Vn8un2.js.br +0 -0
- package/dist/web/assets/chunk-QR6OTTB3-B4Vn8un2.js.gz +0 -0
- package/dist/web/assets/chunk-UBXNYLIW-C_5U1nW_.js.br +0 -0
- package/dist/web/assets/chunk-UBXNYLIW-C_5U1nW_.js.gz +0 -0
- package/dist/web/assets/chunk-W5SLKNZC-Cg_GuHYA.js.br +0 -0
- package/dist/web/assets/chunk-W5SLKNZC-Cg_GuHYA.js.gz +0 -0
- package/dist/web/assets/chunk-WRU74C26-zXtZrpuc.js.br +0 -0
- package/dist/web/assets/chunk-WRU74C26-zXtZrpuc.js.gz +0 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-CWvbxTV4.js +0 -1
- package/dist/web/assets/classDiagram-JCYQIIEL-CWvbxTV4.js.br +0 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-CWvbxTV4.js.gz +0 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-CWvbxTV4.js +0 -1
- package/dist/web/assets/classDiagram-v2-OCEON4UE-CWvbxTV4.js.br +0 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-CWvbxTV4.js.gz +0 -0
- package/dist/web/assets/code-highlighter-BjWXy_Iw.js.br +0 -0
- package/dist/web/assets/code-highlighter-BjWXy_Iw.js.gz +0 -0
- package/dist/web/assets/commit-settings-panel-a9GtBcyN.js.br +0 -0
- package/dist/web/assets/commit-settings-panel-a9GtBcyN.js.gz +0 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-Ds3L2HYC.js.br +0 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-Ds3L2HYC.js.gz +0 -0
- package/dist/web/assets/dagre-VZM6K2ZE-DPjpFaaI.js.br +0 -0
- package/dist/web/assets/dagre-VZM6K2ZE-DPjpFaaI.js.gz +0 -0
- package/dist/web/assets/diagram-7IWD3JNH-oAuqSBBd.js.br +0 -0
- package/dist/web/assets/diagram-7IWD3JNH-oAuqSBBd.js.gz +0 -0
- package/dist/web/assets/diagram-B4RE2ZJO-DutGwDiG.js.br +0 -0
- package/dist/web/assets/diagram-B4RE2ZJO-DutGwDiG.js.gz +0 -0
- package/dist/web/assets/diagram-LBJQPF4R-BTr0W5cj.js.br +0 -0
- package/dist/web/assets/diagram-LBJQPF4R-BTr0W5cj.js.gz +0 -0
- package/dist/web/assets/diagram-Q27KOJAE-Xmz7kPoV.js.br +0 -0
- package/dist/web/assets/diagram-Q27KOJAE-Xmz7kPoV.js.gz +0 -0
- package/dist/web/assets/diagram-UB23O5K3-Ccoz8RvZ.js.br +0 -0
- package/dist/web/assets/diagram-UB23O5K3-Ccoz8RvZ.js.gz +0 -0
- package/dist/web/assets/dist-XXjZG1D0.js.br +0 -0
- package/dist/web/assets/dist-XXjZG1D0.js.gz +0 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-XLCtKL91.js.br +0 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-XLCtKL91.js.gz +0 -0
- package/dist/web/assets/erDiagram-JOGREHBK-S2CHNYGV.js.br +0 -0
- package/dist/web/assets/erDiagram-JOGREHBK-S2CHNYGV.js.gz +0 -0
- package/dist/web/assets/file-review-dialog-F6jB7Qb_.js.br +0 -0
- package/dist/web/assets/file-review-dialog-F6jB7Qb_.js.gz +0 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-DZbuh7hy.js +0 -1
- package/dist/web/assets/flowDiagram-UKHOOZJN-DZbuh7hy.js.br +0 -5
- package/dist/web/assets/flowDiagram-UKHOOZJN-DZbuh7hy.js.gz +0 -0
- package/dist/web/assets/ganttDiagram-PKOTCBZU-BdtSBPJo.js.br +0 -0
- package/dist/web/assets/ganttDiagram-PKOTCBZU-BdtSBPJo.js.gz +0 -0
- package/dist/web/assets/git-commit-review-BT1DisdC.js.br +0 -0
- package/dist/web/assets/git-commit-review-BT1DisdC.js.gz +0 -0
- package/dist/web/assets/git-history-panel-D4wJqH0T.js.br +0 -0
- package/dist/web/assets/git-history-panel-D4wJqH0T.js.gz +0 -0
- package/dist/web/assets/gitGraphDiagram-DS77QQ5N-B22e8CZo.js.br +0 -0
- package/dist/web/assets/gitGraphDiagram-DS77QQ5N-B22e8CZo.js.gz +0 -0
- package/dist/web/assets/global-search-dialog-B7WhRB5J.js +0 -2
- package/dist/web/assets/global-search-dialog-B7WhRB5J.js.br +0 -0
- package/dist/web/assets/global-search-dialog-B7WhRB5J.js.gz +0 -0
- package/dist/web/assets/global-settings-about-DF9t5LPK.js.br +0 -0
- package/dist/web/assets/global-settings-about-DF9t5LPK.js.gz +0 -0
- package/dist/web/assets/global-settings-page-t1WBVqHm.js +0 -2
- package/dist/web/assets/global-settings-page-t1WBVqHm.js.br +0 -0
- package/dist/web/assets/global-settings-page-t1WBVqHm.js.gz +0 -0
- package/dist/web/assets/global-settings-pets-D8Grr4dJ.js.br +0 -0
- package/dist/web/assets/global-settings-pets-D8Grr4dJ.js.gz +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-T0waXgH6.js.br +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-T0waXgH6.js.gz +0 -0
- package/dist/web/assets/history-task-timeline-BLiCPMY2.js.br +0 -0
- package/dist/web/assets/history-task-timeline-BLiCPMY2.js.gz +0 -0
- package/dist/web/assets/image-preview-DHojYYCu.js.br +0 -0
- package/dist/web/assets/image-preview-DHojYYCu.js.gz +0 -0
- package/dist/web/assets/image-preview-content-bIMPrgXt.js.br +0 -0
- package/dist/web/assets/image-preview-content-bIMPrgXt.js.gz +0 -0
- package/dist/web/assets/index-ukQTBvh0.css +0 -2
- package/dist/web/assets/index-ukQTBvh0.css.br +0 -0
- package/dist/web/assets/index-ukQTBvh0.css.gz +0 -0
- package/dist/web/assets/index-ySw7zE7v.js +0 -4
- package/dist/web/assets/index-ySw7zE7v.js.br +0 -0
- package/dist/web/assets/index-ySw7zE7v.js.gz +0 -0
- package/dist/web/assets/infoDiagram-6WML65LV-8JSDIKEQ.js.br +0 -0
- package/dist/web/assets/infoDiagram-6WML65LV-8JSDIKEQ.js.gz +0 -0
- package/dist/web/assets/initial-deps-BOjpvLsi.js +0 -1
- package/dist/web/assets/initial-deps-BOjpvLsi.js.br +0 -0
- package/dist/web/assets/initial-deps-BOjpvLsi.js.gz +0 -0
- package/dist/web/assets/initial-deps-BvCty1IU.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-Bnwd2-z8.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-Bnwd2-z8.js.gz +0 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-BBsZ0aSy.js.br +0 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-BBsZ0aSy.js.gz +0 -0
- package/dist/web/assets/journeyDiagram-NVQOT4AX-CdhNlHim.js.br +0 -0
- package/dist/web/assets/journeyDiagram-NVQOT4AX-CdhNlHim.js.gz +0 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-DUC5stHg.js.br +0 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-DUC5stHg.js.gz +0 -0
- package/dist/web/assets/katex-ZlcWpGUi.js +0 -257
- package/dist/web/assets/katex-ZlcWpGUi.js.br +0 -0
- package/dist/web/assets/katex-ZlcWpGUi.js.gz +0 -0
- package/dist/web/assets/lazy-message-response-CgZbm6_f.js.br +0 -0
- package/dist/web/assets/lazy-message-response-CgZbm6_f.js.gz +0 -0
- package/dist/web/assets/line-CkOY0j4D.js.br +0 -0
- package/dist/web/assets/line-CkOY0j4D.js.gz +0 -0
- package/dist/web/assets/mcp-management-pane-BwR_barH.js.br +0 -0
- package/dist/web/assets/mcp-management-pane-BwR_barH.js.gz +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-DCtqsNyY.js +0 -1
- package/dist/web/assets/mermaid-GHXKKRXX-DCtqsNyY.js.br +0 -1
- package/dist/web/assets/mermaid-GHXKKRXX-DCtqsNyY.js.gz +0 -0
- package/dist/web/assets/message-response-BuAZphla.js.br +0 -0
- package/dist/web/assets/message-response-BuAZphla.js.gz +0 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-DGzAA5ft.js.br +0 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-DGzAA5ft.js.gz +0 -0
- package/dist/web/assets/official-plugins-pane-BYlHv1Zw.js +0 -1
- package/dist/web/assets/official-plugins-pane-BYlHv1Zw.js.br +0 -0
- package/dist/web/assets/official-plugins-pane-BYlHv1Zw.js.gz +0 -0
- package/dist/web/assets/patch-diff-viewer-BigjXoO6.js.br +0 -0
- package/dist/web/assets/patch-diff-viewer-BigjXoO6.js.gz +0 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-BfAVCl7E.js.br +0 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-BfAVCl7E.js.gz +0 -0
- package/dist/web/assets/personalization-settings-panel-D-Gd--Rl.js.br +0 -0
- package/dist/web/assets/personalization-settings-panel-D-Gd--Rl.js.gz +0 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-kgcNar0g.js.br +0 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-kgcNar0g.js.gz +0 -0
- package/dist/web/assets/project-file-popup-page-DJCEoy22.js.br +0 -0
- package/dist/web/assets/project-file-popup-page-DJCEoy22.js.gz +0 -0
- package/dist/web/assets/project-source-panel-B_iPZ4Xn.js +0 -3
- package/dist/web/assets/project-source-panel-B_iPZ4Xn.js.br +0 -0
- package/dist/web/assets/project-source-panel-B_iPZ4Xn.js.gz +0 -0
- package/dist/web/assets/prompt-input-BDkiLB2S.js.br +0 -0
- package/dist/web/assets/prompt-input-BDkiLB2S.js.gz +0 -0
- package/dist/web/assets/prompt-reference-token-_srKof11.js.br +0 -0
- package/dist/web/assets/prompt-reference-token-_srKof11.js.gz +0 -0
- package/dist/web/assets/quadrantDiagram-CIZ2JOQS-BYWpo7rG.js.br +0 -0
- package/dist/web/assets/quadrantDiagram-CIZ2JOQS-BYWpo7rG.js.gz +0 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-CmHkSqa8.js.br +0 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-CmHkSqa8.js.gz +0 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-I035gQYY.js.br +0 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-I035gQYY.js.gz +0 -0
- package/dist/web/assets/sankeyDiagram-W5VNT64P-B9EFX3Mg.js.br +0 -0
- package/dist/web/assets/sankeyDiagram-W5VNT64P-B9EFX3Mg.js.gz +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-BCFLWNkx.js.br +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-BCFLWNkx.js.gz +0 -0
- package/dist/web/assets/scheduled-tasks-container-Q8NazFRD.js +0 -2
- package/dist/web/assets/scheduled-tasks-container-Q8NazFRD.js.br +0 -0
- package/dist/web/assets/scheduled-tasks-container-Q8NazFRD.js.gz +0 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-BomGpYgp.js.br +0 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-BomGpYgp.js.gz +0 -0
- package/dist/web/assets/sheet-YYYqH36Y.js +0 -1
- package/dist/web/assets/sheet-YYYqH36Y.js.br +0 -0
- package/dist/web/assets/sheet-YYYqH36Y.js.gz +0 -0
- package/dist/web/assets/shiki-bundle-DirQN6eN.js.br +0 -0
- package/dist/web/assets/shiki-bundle-DirQN6eN.js.gz +0 -0
- package/dist/web/assets/skills-market-container-Dra_SRsM.js.br +0 -0
- package/dist/web/assets/skills-market-container-Dra_SRsM.js.gz +0 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-C5gL7nOO.js.br +0 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-C5gL7nOO.js.gz +0 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-QvfdP3k_.js +0 -1
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-QvfdP3k_.js.br +0 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-QvfdP3k_.js.gz +0 -0
- package/dist/web/assets/swimlanes-SLNWSIFB-CrO5FxiS.js.br +0 -0
- package/dist/web/assets/swimlanes-SLNWSIFB-CrO5FxiS.js.gz +0 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CaCw1cJg.js +0 -8
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CaCw1cJg.js.br +0 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CaCw1cJg.js.gz +0 -0
- package/dist/web/assets/third-party-marketplace-pane-D98JmIr4.js.br +0 -0
- package/dist/web/assets/third-party-marketplace-pane-D98JmIr4.js.gz +0 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-DJi8dcVA.js.br +0 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-DJi8dcVA.js.gz +0 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-CrKTcaED.js.br +0 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-CrKTcaED.js.gz +0 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-bLfKjN8C.js.br +0 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-bLfKjN8C.js.gz +0 -0
- package/dist/web/assets/workbench-inspector-changes-DYK3o-JB.js +0 -2
- package/dist/web/assets/workbench-inspector-changes-DYK3o-JB.js.br +0 -0
- package/dist/web/assets/workbench-inspector-changes-DYK3o-JB.js.gz +0 -0
- package/dist/web/assets/workbench-pet-canvas-UNLOz4Hj.js.br +0 -0
- package/dist/web/assets/workbench-pet-canvas-UNLOz4Hj.js.gz +0 -0
- package/dist/web/assets/workbench-shell-dY_e5m74.js +0 -16
- package/dist/web/assets/workbench-shell-dY_e5m74.js.br +0 -0
- package/dist/web/assets/workbench-shell-dY_e5m74.js.gz +0 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-Cx1crMso.js.br +0 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-Cx1crMso.js.gz +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
2
|
import { WorkbenchPetProviderError, CUSTOM_MODEL_REASONING_FALLBACK, normalizeCustomModelReasoning, PendingRequestResolutionError } from './chunk-REIMOLGX.js';
|
|
3
|
-
import { TEMPORARY_TASK_SCOPE_ID, MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES, isAgentFastModeAvailable, MAX_REALTIME_FILE_CHANGES, MAX_REALTIME_DIFF_BYTES, stripLeadingAgentSkillReferences, MAX_AGENT_HISTORY_IMAGES, MAX_AGENT_IMAGE_BYTES, MAX_AGENT_TEXT_BYTES, MAX_AGENT_FILE_BYTES } from './chunk-
|
|
3
|
+
import { TEMPORARY_TASK_SCOPE_ID, MAX_AGENT_HISTORY_IMAGE_TOTAL_BYTES, isAgentFastModeAvailable, MAX_REALTIME_FILE_CHANGES, MAX_REALTIME_DIFF_BYTES, stripLeadingAgentSkillReferences, MAX_AGENT_HISTORY_IMAGES, MAX_AGENT_IMAGE_BYTES, MAX_AGENT_TEXT_BYTES, MAX_AGENT_FILE_BYTES } from './chunk-XAI75BER.js';
|
|
4
4
|
import { __commonJS, __require, __toESM } from './chunk-K6J42667.js';
|
|
5
5
|
import { randomUUID, createHash } from 'crypto';
|
|
6
6
|
import { Buffer as Buffer$1 } from 'buffer';
|
|
7
7
|
import { mkdtempSync, rmSync, constants, createReadStream, mkdirSync, unlinkSync, renameSync, writeFileSync, readFileSync, statSync, existsSync, openSync, readSync, closeSync } from 'fs';
|
|
8
|
+
import { pipeline } from 'stream';
|
|
9
|
+
import { createZstdDecompress, constants as constants$1 } from 'zlib';
|
|
8
10
|
import { readFile, mkdir, writeFile, rename, rm, readdir, realpath, stat, access, open, unlink, lstat, opendir } from 'fs/promises';
|
|
9
11
|
import { homedir, tmpdir } from 'os';
|
|
10
12
|
import { resolve, join, basename, dirname, relative, sep, win32, posix, isAbsolute, extname } from 'path';
|
|
@@ -2643,7 +2645,7 @@ var require_transport = __commonJS({
|
|
|
2643
2645
|
stream.flushSync();
|
|
2644
2646
|
}
|
|
2645
2647
|
function transport(fullOptions) {
|
|
2646
|
-
const { pipeline, targets, levels, dedupe, worker = {}, caller = getCallers(), sync = false } = fullOptions;
|
|
2648
|
+
const { pipeline: pipeline2, targets, levels, dedupe, worker = {}, caller = getCallers(), sync = false } = fullOptions;
|
|
2647
2649
|
const options = {
|
|
2648
2650
|
...fullOptions.options
|
|
2649
2651
|
};
|
|
@@ -2671,9 +2673,9 @@ var require_transport = __commonJS({
|
|
|
2671
2673
|
};
|
|
2672
2674
|
});
|
|
2673
2675
|
});
|
|
2674
|
-
} else if (
|
|
2676
|
+
} else if (pipeline2) {
|
|
2675
2677
|
target = bundlerOverrides["pino-worker"] || join10(__dirname, "worker.js");
|
|
2676
|
-
options.pipelines = [
|
|
2678
|
+
options.pipelines = [pipeline2.map((dest) => {
|
|
2677
2679
|
return {
|
|
2678
2680
|
...dest,
|
|
2679
2681
|
target: fixTarget(dest.target)
|
|
@@ -2687,7 +2689,7 @@ var require_transport = __commonJS({
|
|
|
2687
2689
|
options.dedupe = dedupe;
|
|
2688
2690
|
}
|
|
2689
2691
|
options.pinoWillSendConfig = true;
|
|
2690
|
-
const name = targets ||
|
|
2692
|
+
const name = targets || pipeline2 ? "pino.transport" : target;
|
|
2691
2693
|
return buildStream(fixTarget(target), options, worker, sync, name);
|
|
2692
2694
|
function fixTarget(origin) {
|
|
2693
2695
|
origin = bundlerOverrides[origin] || origin;
|
|
@@ -3513,20 +3515,20 @@ var require_safe_stable_stringify = __commonJS({
|
|
|
3513
3515
|
}
|
|
3514
3516
|
return JSON.stringify(str);
|
|
3515
3517
|
}
|
|
3516
|
-
function sort(
|
|
3517
|
-
if (
|
|
3518
|
-
return
|
|
3518
|
+
function sort(array2, comparator) {
|
|
3519
|
+
if (array2.length > 200 || comparator) {
|
|
3520
|
+
return array2.sort(comparator);
|
|
3519
3521
|
}
|
|
3520
|
-
for (let i = 1; i <
|
|
3521
|
-
const currentValue =
|
|
3522
|
+
for (let i = 1; i < array2.length; i++) {
|
|
3523
|
+
const currentValue = array2[i];
|
|
3522
3524
|
let position = i;
|
|
3523
|
-
while (position !== 0 &&
|
|
3524
|
-
|
|
3525
|
+
while (position !== 0 && array2[position - 1] > currentValue) {
|
|
3526
|
+
array2[position] = array2[position - 1];
|
|
3525
3527
|
position--;
|
|
3526
3528
|
}
|
|
3527
|
-
|
|
3529
|
+
array2[position] = currentValue;
|
|
3528
3530
|
}
|
|
3529
|
-
return
|
|
3531
|
+
return array2;
|
|
3530
3532
|
}
|
|
3531
3533
|
var typedArrayPrototypeGetSymbolToStringTag = Object.getOwnPropertyDescriptor(
|
|
3532
3534
|
Object.getPrototypeOf(
|
|
@@ -3539,14 +3541,14 @@ var require_safe_stable_stringify = __commonJS({
|
|
|
3539
3541
|
function isTypedArrayWithEntries(value) {
|
|
3540
3542
|
return typedArrayPrototypeGetSymbolToStringTag.call(value) !== void 0 && value.length !== 0;
|
|
3541
3543
|
}
|
|
3542
|
-
function stringifyTypedArray(
|
|
3543
|
-
if (
|
|
3544
|
-
maximumBreadth =
|
|
3544
|
+
function stringifyTypedArray(array2, separator, maximumBreadth) {
|
|
3545
|
+
if (array2.length < maximumBreadth) {
|
|
3546
|
+
maximumBreadth = array2.length;
|
|
3545
3547
|
}
|
|
3546
3548
|
const whitespace = separator === "," ? "" : " ";
|
|
3547
|
-
let res = `"0":${whitespace}${
|
|
3549
|
+
let res = `"0":${whitespace}${array2[0]}`;
|
|
3548
3550
|
for (let i = 1; i < maximumBreadth; i++) {
|
|
3549
|
-
res += `${separator}"${i}":${whitespace}${
|
|
3551
|
+
res += `${separator}"${i}":${whitespace}${array2[i]}`;
|
|
3550
3552
|
}
|
|
3551
3553
|
return res;
|
|
3552
3554
|
}
|
|
@@ -4546,6 +4548,8 @@ var CODEX_IGNORED_NOTIFICATION_METHODS = /* @__PURE__ */ new Set([
|
|
|
4546
4548
|
"thread/compacted",
|
|
4547
4549
|
"thread/environment/connected",
|
|
4548
4550
|
"thread/environment/disconnected",
|
|
4551
|
+
// 线程预测尚无产品入口;主动关闭通知,避免额外传输和解析。
|
|
4552
|
+
"thread/prediction/updated",
|
|
4549
4553
|
"thread/project/updated",
|
|
4550
4554
|
"thread/realtime/closed",
|
|
4551
4555
|
"thread/realtime/error",
|
|
@@ -5680,6 +5684,72 @@ function mapCodexGoal(value, expectedTaskId) {
|
|
|
5680
5684
|
updatedAt: toDateTime(goal["updatedAt"], "Codex goal updatedAt")
|
|
5681
5685
|
};
|
|
5682
5686
|
}
|
|
5687
|
+
var MAX_READERS = 2;
|
|
5688
|
+
var IDLE_TIMEOUT_MS = 3e4;
|
|
5689
|
+
var readers = /* @__PURE__ */ new Set();
|
|
5690
|
+
var TranscriptZstdReader = class _TranscriptZstdReader {
|
|
5691
|
+
#source;
|
|
5692
|
+
#decoder;
|
|
5693
|
+
#iterator;
|
|
5694
|
+
#pending = Buffer.alloc(0);
|
|
5695
|
+
#timer;
|
|
5696
|
+
closed = false;
|
|
5697
|
+
done = false;
|
|
5698
|
+
constructor(path) {
|
|
5699
|
+
this.#source = createReadStream(path, { highWaterMark: 64 * 1024 });
|
|
5700
|
+
this.#decoder = createZstdDecompress({
|
|
5701
|
+
chunkSize: 64 * 1024,
|
|
5702
|
+
// 上游 level 3 的窗口小于此限制;拒绝异常大窗口,避免压缩文件放大内存占用。
|
|
5703
|
+
params: { [constants$1.ZSTD_d_windowLogMax]: 23 }
|
|
5704
|
+
});
|
|
5705
|
+
this.#iterator = this.#decoder[Symbol.asyncIterator]();
|
|
5706
|
+
pipeline(this.#source, this.#decoder, () => {
|
|
5707
|
+
});
|
|
5708
|
+
readers.add(this);
|
|
5709
|
+
}
|
|
5710
|
+
static open(path) {
|
|
5711
|
+
if (readers.size >= MAX_READERS) return void 0;
|
|
5712
|
+
return new _TranscriptZstdReader(path);
|
|
5713
|
+
}
|
|
5714
|
+
async read(limit, consume) {
|
|
5715
|
+
clearTimeout(this.#timer);
|
|
5716
|
+
let count = 0;
|
|
5717
|
+
try {
|
|
5718
|
+
while (count < limit && !this.closed) {
|
|
5719
|
+
if (this.#pending.length === 0) {
|
|
5720
|
+
const next = await this.#iterator.next();
|
|
5721
|
+
if (next.done) {
|
|
5722
|
+
this.done = true;
|
|
5723
|
+
this.close();
|
|
5724
|
+
break;
|
|
5725
|
+
}
|
|
5726
|
+
this.#pending = next.value;
|
|
5727
|
+
}
|
|
5728
|
+
const length = Math.min(limit - count, this.#pending.length);
|
|
5729
|
+
consume(this.#pending.subarray(0, length));
|
|
5730
|
+
this.#pending = this.#pending.subarray(length);
|
|
5731
|
+
count += length;
|
|
5732
|
+
}
|
|
5733
|
+
return count;
|
|
5734
|
+
} catch (error) {
|
|
5735
|
+
this.close();
|
|
5736
|
+
throw error;
|
|
5737
|
+
} finally {
|
|
5738
|
+
if (!this.closed)
|
|
5739
|
+
this.#timer = setTimeout(() => {
|
|
5740
|
+
this.close();
|
|
5741
|
+
}, IDLE_TIMEOUT_MS).unref();
|
|
5742
|
+
}
|
|
5743
|
+
}
|
|
5744
|
+
close() {
|
|
5745
|
+
this.closed = true;
|
|
5746
|
+
clearTimeout(this.#timer);
|
|
5747
|
+
this.#pending = Buffer.alloc(0);
|
|
5748
|
+
this.#source.destroy();
|
|
5749
|
+
this.#decoder.destroy();
|
|
5750
|
+
readers.delete(this);
|
|
5751
|
+
}
|
|
5752
|
+
};
|
|
5683
5753
|
var EXPANDED_SKILL_PATTERN = /^<skill>\s*<name>(?<name>[^<]+)<\/name>\s*<path>(?<path>[^<]+)<\/path>[\s\S]*<\/skill>\s*$/u;
|
|
5684
5754
|
var LINKED_SKILL_PATTERN = /\[\$(?<name>[^\]\s]+)\]\((?<path>[^)]+\/SKILL\.md)\)/gu;
|
|
5685
5755
|
var SAFE_THREAD_ID_PATTERN = /^[a-zA-Z0-9_-]+$/u;
|
|
@@ -5781,32 +5851,41 @@ function getTranscriptThreadCache(cacheKey) {
|
|
|
5781
5851
|
if (oldestKey === void 0) {
|
|
5782
5852
|
break;
|
|
5783
5853
|
}
|
|
5854
|
+
for (const file of transcriptCacheByThread.get(oldestKey)?.files.values() ?? [])
|
|
5855
|
+
file.reader?.close();
|
|
5784
5856
|
transcriptCacheByThread.delete(oldestKey);
|
|
5785
5857
|
}
|
|
5786
5858
|
return created;
|
|
5787
5859
|
}
|
|
5788
|
-
async function discoverTranscriptPaths(cache,
|
|
5860
|
+
async function discoverTranscriptPaths(cache, codexHome, threadId) {
|
|
5789
5861
|
const now = Date.now();
|
|
5790
5862
|
if (cache.transcriptPaths.length > 0 || now - cache.lastDiscoveryAt < TRANSCRIPT_DISCOVERY_INTERVAL_MS) {
|
|
5791
5863
|
return;
|
|
5792
5864
|
}
|
|
5793
5865
|
const transcriptPaths = [];
|
|
5794
5866
|
const transcriptSuffix = `-${threadId}.jsonl`;
|
|
5795
|
-
const
|
|
5796
|
-
|
|
5797
|
-
|
|
5798
|
-
|
|
5867
|
+
for (const name of ["sessions", "archived_sessions"]) {
|
|
5868
|
+
let directory;
|
|
5869
|
+
try {
|
|
5870
|
+
directory = await opendir(join(codexHome, name), { recursive: true });
|
|
5871
|
+
} catch (error) {
|
|
5872
|
+
if (isRecord2(error) && error["code"] === "ENOENT") continue;
|
|
5873
|
+
throw error;
|
|
5799
5874
|
}
|
|
5800
|
-
|
|
5801
|
-
|
|
5802
|
-
|
|
5875
|
+
for await (const entry of directory) {
|
|
5876
|
+
if (!entry.isFile() || !entry.name.startsWith("rollout-") || !(entry.name.endsWith(transcriptSuffix) || entry.name.endsWith(`${transcriptSuffix}.zst`)))
|
|
5877
|
+
continue;
|
|
5878
|
+
transcriptPaths.push(join(entry.parentPath, entry.name));
|
|
5879
|
+
if (transcriptPaths.length >= MAX_TRANSCRIPT_FILES_PER_THREAD) break;
|
|
5803
5880
|
}
|
|
5881
|
+
if (transcriptPaths.length >= MAX_TRANSCRIPT_FILES_PER_THREAD) break;
|
|
5804
5882
|
}
|
|
5805
5883
|
cache.transcriptPaths = transcriptPaths;
|
|
5806
5884
|
cache.lastDiscoveryAt = now;
|
|
5807
5885
|
const discoveredPaths = new Set(transcriptPaths);
|
|
5808
5886
|
for (const cachedPath of cache.files.keys()) {
|
|
5809
5887
|
if (!discoveredPaths.has(cachedPath)) {
|
|
5888
|
+
cache.files.get(cachedPath)?.reader?.close();
|
|
5810
5889
|
cache.files.delete(cachedPath);
|
|
5811
5890
|
cache.mergedSkillsDirty = true;
|
|
5812
5891
|
}
|
|
@@ -5814,11 +5893,12 @@ async function discoverTranscriptPaths(cache, sessionsDirectory, threadId) {
|
|
|
5814
5893
|
}
|
|
5815
5894
|
async function parseTranscriptFileIncrementally(transcriptPath, cache, remainingBytes) {
|
|
5816
5895
|
const transcriptStats = await stat(transcriptPath);
|
|
5896
|
+
const compressed = transcriptPath.endsWith(".zst");
|
|
5817
5897
|
const cachedFile = cache.files.get(transcriptPath);
|
|
5818
|
-
if (cachedFile?.mtimeMs === transcriptStats.mtimeMs && cachedFile.size === transcriptStats.size && cachedFile.offset === transcriptStats.size) {
|
|
5898
|
+
if (cachedFile?.mtimeMs === transcriptStats.mtimeMs && cachedFile.size === transcriptStats.size && (compressed ? cachedFile.complete : cachedFile.offset === transcriptStats.size)) {
|
|
5819
5899
|
return 0;
|
|
5820
5900
|
}
|
|
5821
|
-
const canContinue = cachedFile !== void 0 && transcriptStats.size >= cachedFile.size && transcriptStats.size >= cachedFile.offset && (transcriptStats.size > cachedFile.size || transcriptStats.mtimeMs === cachedFile.mtimeMs);
|
|
5901
|
+
const canContinue = cachedFile !== void 0 && (compressed ? cachedFile.size === transcriptStats.size && cachedFile.mtimeMs === transcriptStats.mtimeMs && cachedFile.reader?.closed === false : transcriptStats.size >= cachedFile.size && transcriptStats.size >= cachedFile.offset && (transcriptStats.size > cachedFile.size || transcriptStats.mtimeMs === cachedFile.mtimeMs));
|
|
5822
5902
|
const fileCache = canContinue ? cachedFile : {
|
|
5823
5903
|
cachedSkillNameBytes: 0,
|
|
5824
5904
|
discardUntilNewline: false,
|
|
@@ -5829,8 +5909,23 @@ async function parseTranscriptFileIncrementally(transcriptPath, cache, remaining
|
|
|
5829
5909
|
skillNamesByTurnId: /* @__PURE__ */ new Map()
|
|
5830
5910
|
};
|
|
5831
5911
|
if (cachedFile !== void 0 && fileCache !== cachedFile) {
|
|
5912
|
+
cachedFile.reader?.close();
|
|
5832
5913
|
cache.mergedSkillsDirty = true;
|
|
5833
5914
|
}
|
|
5915
|
+
if (compressed) {
|
|
5916
|
+
fileCache.reader ??= TranscriptZstdReader.open(transcriptPath);
|
|
5917
|
+
if (fileCache.reader === void 0) return 0;
|
|
5918
|
+
const bytes = await fileCache.reader.read(remainingBytes, (chunk) => {
|
|
5919
|
+
consumeTranscriptChunk(chunk, fileCache);
|
|
5920
|
+
});
|
|
5921
|
+
fileCache.complete = fileCache.reader.done;
|
|
5922
|
+
fileCache.offset += bytes;
|
|
5923
|
+
fileCache.mtimeMs = transcriptStats.mtimeMs;
|
|
5924
|
+
fileCache.size = transcriptStats.size;
|
|
5925
|
+
cache.files.set(transcriptPath, fileCache);
|
|
5926
|
+
cache.mergedSkillsDirty = true;
|
|
5927
|
+
return bytes;
|
|
5928
|
+
}
|
|
5834
5929
|
const availableBytes = transcriptStats.size - fileCache.offset;
|
|
5835
5930
|
const bytesToRead = Math.min(availableBytes, remainingBytes);
|
|
5836
5931
|
if (bytesToRead <= 0) {
|
|
@@ -5844,27 +5939,7 @@ async function parseTranscriptFileIncrementally(transcriptPath, cache, remaining
|
|
|
5844
5939
|
start: fileCache.offset
|
|
5845
5940
|
});
|
|
5846
5941
|
for await (const chunk of stream) {
|
|
5847
|
-
|
|
5848
|
-
fileCache.pendingLine = Buffer.alloc(0);
|
|
5849
|
-
let lineStart = 0;
|
|
5850
|
-
let lineEnd = data.indexOf(10, lineStart);
|
|
5851
|
-
while (lineEnd >= 0) {
|
|
5852
|
-
const line = data.subarray(lineStart, lineEnd);
|
|
5853
|
-
if (!fileCache.discardUntilNewline && line.length <= MAX_TRANSCRIPT_LINE_BYTES) {
|
|
5854
|
-
const contentEnd = line.at(-1) === 13 ? line.length - 1 : line.length;
|
|
5855
|
-
collectTranscriptLineSkills(line.subarray(0, contentEnd).toString("utf8"), fileCache);
|
|
5856
|
-
}
|
|
5857
|
-
fileCache.discardUntilNewline = false;
|
|
5858
|
-
lineStart = lineEnd + 1;
|
|
5859
|
-
lineEnd = data.indexOf(10, lineStart);
|
|
5860
|
-
}
|
|
5861
|
-
const incompleteLine = data.subarray(lineStart);
|
|
5862
|
-
if (!fileCache.discardUntilNewline && incompleteLine.length <= MAX_TRANSCRIPT_LINE_BYTES) {
|
|
5863
|
-
fileCache.pendingLine = Buffer.from(incompleteLine);
|
|
5864
|
-
} else if (incompleteLine.length > 0) {
|
|
5865
|
-
fileCache.pendingLine = Buffer.alloc(0);
|
|
5866
|
-
fileCache.discardUntilNewline = true;
|
|
5867
|
-
}
|
|
5942
|
+
consumeTranscriptChunk(chunk, fileCache);
|
|
5868
5943
|
}
|
|
5869
5944
|
fileCache.offset += bytesToRead;
|
|
5870
5945
|
fileCache.mtimeMs = transcriptStats.mtimeMs;
|
|
@@ -5873,6 +5948,29 @@ async function parseTranscriptFileIncrementally(transcriptPath, cache, remaining
|
|
|
5873
5948
|
cache.mergedSkillsDirty = true;
|
|
5874
5949
|
return bytesToRead;
|
|
5875
5950
|
}
|
|
5951
|
+
function consumeTranscriptChunk(chunk, fileCache) {
|
|
5952
|
+
const data = fileCache.pendingLine.length === 0 ? chunk : Buffer.concat([fileCache.pendingLine, chunk]);
|
|
5953
|
+
fileCache.pendingLine = Buffer.alloc(0);
|
|
5954
|
+
let lineStart = 0;
|
|
5955
|
+
let lineEnd = data.indexOf(10, lineStart);
|
|
5956
|
+
while (lineEnd >= 0) {
|
|
5957
|
+
const line = data.subarray(lineStart, lineEnd);
|
|
5958
|
+
if (!fileCache.discardUntilNewline && line.length <= MAX_TRANSCRIPT_LINE_BYTES) {
|
|
5959
|
+
const contentEnd = line.at(-1) === 13 ? line.length - 1 : line.length;
|
|
5960
|
+
collectTranscriptLineSkills(line.subarray(0, contentEnd).toString("utf8"), fileCache);
|
|
5961
|
+
}
|
|
5962
|
+
fileCache.discardUntilNewline = false;
|
|
5963
|
+
lineStart = lineEnd + 1;
|
|
5964
|
+
lineEnd = data.indexOf(10, lineStart);
|
|
5965
|
+
}
|
|
5966
|
+
const incompleteLine = data.subarray(lineStart);
|
|
5967
|
+
if (!fileCache.discardUntilNewline && incompleteLine.length <= MAX_TRANSCRIPT_LINE_BYTES) {
|
|
5968
|
+
fileCache.pendingLine = Buffer.from(incompleteLine);
|
|
5969
|
+
} else if (incompleteLine.length > 0) {
|
|
5970
|
+
fileCache.pendingLine = Buffer.alloc(0);
|
|
5971
|
+
fileCache.discardUntilNewline = true;
|
|
5972
|
+
}
|
|
5973
|
+
}
|
|
5876
5974
|
function mergeTranscriptSkills(cache) {
|
|
5877
5975
|
if (!cache.mergedSkillsDirty) {
|
|
5878
5976
|
return cache.mergedSkills;
|
|
@@ -5893,9 +5991,9 @@ function mergeTranscriptSkills(cache) {
|
|
|
5893
5991
|
cache.mergedSkillsDirty = false;
|
|
5894
5992
|
return cache.mergedSkills;
|
|
5895
5993
|
}
|
|
5896
|
-
async function readCachedCodexTranscriptTurnSkills(cache,
|
|
5994
|
+
async function readCachedCodexTranscriptTurnSkills(cache, codexHome, threadId) {
|
|
5897
5995
|
try {
|
|
5898
|
-
await discoverTranscriptPaths(cache,
|
|
5996
|
+
await discoverTranscriptPaths(cache, codexHome, threadId);
|
|
5899
5997
|
let remainingBytes = MAX_TRANSCRIPT_BYTES_PER_READ;
|
|
5900
5998
|
for (const transcriptPath of cache.transcriptPaths) {
|
|
5901
5999
|
if (remainingBytes <= 0) {
|
|
@@ -5909,10 +6007,19 @@ async function readCachedCodexTranscriptTurnSkills(cache, sessionsDirectory, thr
|
|
|
5909
6007
|
);
|
|
5910
6008
|
} catch (error) {
|
|
5911
6009
|
if (isRecord2(error) && error["code"] === "ENOENT") {
|
|
5912
|
-
cache.files.
|
|
5913
|
-
cache.
|
|
5914
|
-
cache.transcriptPaths = cache.transcriptPaths.filter((path) => path !== transcriptPath);
|
|
6010
|
+
cache.files.get(transcriptPath)?.reader?.close();
|
|
6011
|
+
cache.transcriptPaths = [];
|
|
5915
6012
|
cache.lastDiscoveryAt = 0;
|
|
6013
|
+
await discoverTranscriptPaths(cache, codexHome, threadId);
|
|
6014
|
+
for (const replacement of cache.transcriptPaths) {
|
|
6015
|
+
if (remainingBytes <= 0) break;
|
|
6016
|
+
remainingBytes -= await parseTranscriptFileIncrementally(
|
|
6017
|
+
replacement,
|
|
6018
|
+
cache,
|
|
6019
|
+
remainingBytes
|
|
6020
|
+
);
|
|
6021
|
+
}
|
|
6022
|
+
break;
|
|
5916
6023
|
}
|
|
5917
6024
|
}
|
|
5918
6025
|
}
|
|
@@ -5924,13 +6031,12 @@ async function readCodexTranscriptTurnSkills(threadId, codexHome = process.env["
|
|
|
5924
6031
|
if (!SAFE_THREAD_ID_PATTERN.test(threadId)) {
|
|
5925
6032
|
return /* @__PURE__ */ new Map();
|
|
5926
6033
|
}
|
|
5927
|
-
const sessionsDirectory = join(codexHome, "sessions");
|
|
5928
6034
|
const cacheKey = `${codexHome}\0${threadId}`;
|
|
5929
6035
|
const cache = getTranscriptThreadCache(cacheKey);
|
|
5930
6036
|
if (cache.pendingRead !== void 0) {
|
|
5931
6037
|
return cache.pendingRead;
|
|
5932
6038
|
}
|
|
5933
|
-
const pendingRead = readCachedCodexTranscriptTurnSkills(cache,
|
|
6039
|
+
const pendingRead = readCachedCodexTranscriptTurnSkills(cache, codexHome, threadId);
|
|
5934
6040
|
cache.pendingRead = pendingRead;
|
|
5935
6041
|
try {
|
|
5936
6042
|
return await pendingRead;
|
|
@@ -7093,15 +7199,15 @@ var JsonlFrameProcessor = class {
|
|
|
7093
7199
|
);
|
|
7094
7200
|
this.#worker.unref();
|
|
7095
7201
|
this.#worker.on("message", (response) => {
|
|
7096
|
-
const
|
|
7097
|
-
if (
|
|
7202
|
+
const pending2 = this.#pending.get(response.id);
|
|
7203
|
+
if (pending2 === void 0) return;
|
|
7098
7204
|
this.#pending.delete(response.id);
|
|
7099
7205
|
if (response.type === "error") {
|
|
7100
|
-
|
|
7206
|
+
pending2.reject(new JsonlFrameParseError(response.code));
|
|
7101
7207
|
return;
|
|
7102
7208
|
}
|
|
7103
7209
|
this.#hydrateStagedImages(response.message);
|
|
7104
|
-
|
|
7210
|
+
pending2.resolve(response.message);
|
|
7105
7211
|
});
|
|
7106
7212
|
this.#worker.once("error", (error) => {
|
|
7107
7213
|
this.#rejectPending(error);
|
|
@@ -7151,7 +7257,7 @@ var JsonlFrameProcessor = class {
|
|
|
7151
7257
|
}
|
|
7152
7258
|
}
|
|
7153
7259
|
#rejectPending(error) {
|
|
7154
|
-
for (const
|
|
7260
|
+
for (const pending2 of this.#pending.values()) pending2.reject(error);
|
|
7155
7261
|
this.#pending.clear();
|
|
7156
7262
|
}
|
|
7157
7263
|
};
|
|
@@ -7416,10 +7522,10 @@ var JsonlRpcClient = class {
|
|
|
7416
7522
|
const id = this.#nextRequestId++;
|
|
7417
7523
|
const request = params === void 0 ? { id, method } : { id, method, params };
|
|
7418
7524
|
return new Promise((resolve7, reject) => {
|
|
7419
|
-
const
|
|
7525
|
+
const pending2 = new RpcPendingRequest({
|
|
7420
7526
|
onTimeout: () => {
|
|
7421
|
-
if (this.#removePending(id,
|
|
7422
|
-
|
|
7527
|
+
if (this.#removePending(id, pending2)) {
|
|
7528
|
+
pending2.reject(new RpcTimeoutError(id, method, timeoutMs));
|
|
7423
7529
|
}
|
|
7424
7530
|
},
|
|
7425
7531
|
reject,
|
|
@@ -7427,7 +7533,7 @@ var JsonlRpcClient = class {
|
|
|
7427
7533
|
resolve: resolve7,
|
|
7428
7534
|
timeoutMs
|
|
7429
7535
|
});
|
|
7430
|
-
this.#pending.set(id,
|
|
7536
|
+
this.#pending.set(id, pending2);
|
|
7431
7537
|
try {
|
|
7432
7538
|
void this.#sendMessage(request).catch(() => void 0);
|
|
7433
7539
|
} catch {
|
|
@@ -7493,8 +7599,8 @@ var JsonlRpcClient = class {
|
|
|
7493
7599
|
this.#input.off("end", this.#handleInputEnd);
|
|
7494
7600
|
this.#input.off("error", this.#handleStreamError);
|
|
7495
7601
|
this.#output.off("error", this.#handleStreamError);
|
|
7496
|
-
for (const
|
|
7497
|
-
|
|
7602
|
+
for (const pending2 of this.#pending.values()) {
|
|
7603
|
+
pending2.reject(reason);
|
|
7498
7604
|
}
|
|
7499
7605
|
this.#pending.clear();
|
|
7500
7606
|
this.#frameBuffer.clear();
|
|
@@ -7661,8 +7767,8 @@ var JsonlRpcClient = class {
|
|
|
7661
7767
|
throw new RpcProtocolError("RPC frame is neither a response, server request, nor notification");
|
|
7662
7768
|
}
|
|
7663
7769
|
#handleResponse(id, message) {
|
|
7664
|
-
const
|
|
7665
|
-
if (!
|
|
7770
|
+
const pending2 = this.#pending.get(id);
|
|
7771
|
+
if (!pending2) {
|
|
7666
7772
|
return;
|
|
7667
7773
|
}
|
|
7668
7774
|
if ("error" in message) {
|
|
@@ -7671,12 +7777,12 @@ var JsonlRpcClient = class {
|
|
|
7671
7777
|
throw new RpcProtocolError("RPC error response has an invalid error payload");
|
|
7672
7778
|
}
|
|
7673
7779
|
if (isExplicitlyUnqueuedOverload(error)) {
|
|
7674
|
-
const scheduled =
|
|
7675
|
-
if (this.#pending.get(id) !==
|
|
7780
|
+
const scheduled = pending2.scheduleOverloadRetry(this.#overloadRetryPolicy, () => {
|
|
7781
|
+
if (this.#pending.get(id) !== pending2) {
|
|
7676
7782
|
return;
|
|
7677
7783
|
}
|
|
7678
7784
|
try {
|
|
7679
|
-
void this.#sendMessage(
|
|
7785
|
+
void this.#sendMessage(pending2.request).catch(() => void 0);
|
|
7680
7786
|
} catch {
|
|
7681
7787
|
}
|
|
7682
7788
|
});
|
|
@@ -7684,22 +7790,22 @@ var JsonlRpcClient = class {
|
|
|
7684
7790
|
return;
|
|
7685
7791
|
}
|
|
7686
7792
|
}
|
|
7687
|
-
this.#removePending(id,
|
|
7688
|
-
|
|
7793
|
+
this.#removePending(id, pending2);
|
|
7794
|
+
pending2.reject(new RpcResponseError(error));
|
|
7689
7795
|
return;
|
|
7690
7796
|
}
|
|
7691
7797
|
if (!("result" in message)) {
|
|
7692
7798
|
throw new RpcProtocolError("RPC response is missing result or error");
|
|
7693
7799
|
}
|
|
7694
|
-
this.#removePending(id,
|
|
7695
|
-
|
|
7800
|
+
this.#removePending(id, pending2);
|
|
7801
|
+
pending2.resolve(message["result"]);
|
|
7696
7802
|
}
|
|
7697
|
-
#removePending(id,
|
|
7698
|
-
if (this.#pending.get(id) !==
|
|
7803
|
+
#removePending(id, pending2) {
|
|
7804
|
+
if (this.#pending.get(id) !== pending2) {
|
|
7699
7805
|
return false;
|
|
7700
7806
|
}
|
|
7701
7807
|
this.#pending.delete(id);
|
|
7702
|
-
|
|
7808
|
+
pending2.clearTimers();
|
|
7703
7809
|
return true;
|
|
7704
7810
|
}
|
|
7705
7811
|
#assertOpen() {
|
|
@@ -8302,9 +8408,9 @@ var CodexPersistentHistoricalAttachmentStore = class {
|
|
|
8302
8408
|
return [...this.#pending.get(taskId)?.values() ?? []];
|
|
8303
8409
|
}
|
|
8304
8410
|
markPersisted(taskId, attachmentId) {
|
|
8305
|
-
const
|
|
8306
|
-
|
|
8307
|
-
if (
|
|
8411
|
+
const pending2 = this.#pending.get(taskId);
|
|
8412
|
+
pending2?.delete(attachmentId);
|
|
8413
|
+
if (pending2?.size === 0) this.#pending.delete(taskId);
|
|
8308
8414
|
}
|
|
8309
8415
|
async read(taskId, attachmentId) {
|
|
8310
8416
|
const entry = this.#entries.get(attachmentId);
|
|
@@ -9606,8 +9712,8 @@ function readReviewWorkerThread(value) {
|
|
|
9606
9712
|
};
|
|
9607
9713
|
}
|
|
9608
9714
|
var execFileAsync = promisify(execFile);
|
|
9609
|
-
var SUPPORTED_CODEX_VERSION = "0.
|
|
9610
|
-
var SUPPORTED_CODEX_VERSION_RANGE = ">=0.
|
|
9715
|
+
var SUPPORTED_CODEX_VERSION = "0.161.0";
|
|
9716
|
+
var SUPPORTED_CODEX_VERSION_RANGE = ">=0.161.0,<0.162.0";
|
|
9611
9717
|
var BUNDLED_CODEX_TARGETS = {
|
|
9612
9718
|
"darwin-arm64": {
|
|
9613
9719
|
executableName: "codex",
|
|
@@ -9749,7 +9855,7 @@ async function checkCodexVersion(binaryPath, options = {}) {
|
|
|
9749
9855
|
}
|
|
9750
9856
|
const [major, minor, patch] = version.split("-", 1)[0]?.split(".").map(Number) ?? [];
|
|
9751
9857
|
const isPrerelease = version.includes("-");
|
|
9752
|
-
if (major !== 0 || minor !==
|
|
9858
|
+
if (major !== 0 || minor !== 161 || patch === void 0 || isPrerelease) {
|
|
9753
9859
|
throw new Error(
|
|
9754
9860
|
`Unsupported Codex version ${version}; expected ${SUPPORTED_CODEX_VERSION_RANGE}`
|
|
9755
9861
|
);
|
|
@@ -10553,6 +10659,8 @@ var CodexAgentProviderTurns = class extends CodexAgentProviderQueue {
|
|
|
10553
10659
|
const goalResponse = expectRecord(
|
|
10554
10660
|
await this.client.request("thread/goal/set", {
|
|
10555
10661
|
objective,
|
|
10662
|
+
// 显式标记用户目标操作,让 Codex 在恢复执行前持久化用户指令。
|
|
10663
|
+
origin: "user",
|
|
10556
10664
|
status: "active",
|
|
10557
10665
|
threadId: taskId
|
|
10558
10666
|
}),
|
|
@@ -10617,7 +10725,7 @@ var CodexAgentProviderTurns = class extends CodexAgentProviderQueue {
|
|
|
10617
10725
|
async updateGoal(taskId, input) {
|
|
10618
10726
|
this.assertKnownProjectTask(taskId);
|
|
10619
10727
|
const response = expectRecord(
|
|
10620
|
-
await this.client.request("thread/goal/set", { ...input, threadId: taskId }),
|
|
10728
|
+
await this.client.request("thread/goal/set", { ...input, origin: "user", threadId: taskId }),
|
|
10621
10729
|
"thread/goal/set response"
|
|
10622
10730
|
);
|
|
10623
10731
|
return mapCodexGoal(response["goal"], taskId);
|
|
@@ -10625,7 +10733,7 @@ var CodexAgentProviderTurns = class extends CodexAgentProviderQueue {
|
|
|
10625
10733
|
async clearGoal(taskId) {
|
|
10626
10734
|
this.assertKnownProjectTask(taskId);
|
|
10627
10735
|
const response = expectRecord(
|
|
10628
|
-
await this.client.request("thread/goal/clear", { threadId: taskId }),
|
|
10736
|
+
await this.client.request("thread/goal/clear", { origin: "user", threadId: taskId }),
|
|
10629
10737
|
"thread/goal/clear response"
|
|
10630
10738
|
);
|
|
10631
10739
|
expectBoolean(response["cleared"], "thread/goal/clear cleared");
|
|
@@ -11695,6 +11803,64 @@ var CodexAgentProviderEvents = class extends CodexAgentProviderTasks {
|
|
|
11695
11803
|
};
|
|
11696
11804
|
var CodexAgentProvider = class extends CodexAgentProviderEvents {
|
|
11697
11805
|
};
|
|
11806
|
+
|
|
11807
|
+
// packages/provider-codex/src/history-storage.ts
|
|
11808
|
+
function createHistoryStorage(client) {
|
|
11809
|
+
let pending2;
|
|
11810
|
+
return {
|
|
11811
|
+
compress() {
|
|
11812
|
+
pending2 ??= client.request("rollout/compress", void 0).then((response) => {
|
|
11813
|
+
expectRecord(response, "rollout/compress response");
|
|
11814
|
+
return { status: "scheduled" };
|
|
11815
|
+
}).finally(() => {
|
|
11816
|
+
pending2 = void 0;
|
|
11817
|
+
});
|
|
11818
|
+
return pending2;
|
|
11819
|
+
}
|
|
11820
|
+
};
|
|
11821
|
+
}
|
|
11822
|
+
|
|
11823
|
+
// packages/provider-codex/src/plugin-reconcile.ts
|
|
11824
|
+
var pending = /* @__PURE__ */ new WeakMap();
|
|
11825
|
+
function array(value, name) {
|
|
11826
|
+
if (!Array.isArray(value))
|
|
11827
|
+
throw new CodexProtocolMappingError(`plugin/reconcile ${name} must be an array`);
|
|
11828
|
+
return value;
|
|
11829
|
+
}
|
|
11830
|
+
async function reconcile(client) {
|
|
11831
|
+
const result = expectRecord(
|
|
11832
|
+
await client.request("plugin/reconcile", { reason: "codexly.refresh" }),
|
|
11833
|
+
"plugin/reconcile response"
|
|
11834
|
+
);
|
|
11835
|
+
return {
|
|
11836
|
+
changedPlugins: array(result["changedPlugins"], "changedPlugins").map((value) => {
|
|
11837
|
+
const plugin = expectRecord(value, "plugin/reconcile plugin");
|
|
11838
|
+
const id = expectString(plugin["id"], "plugin/reconcile id");
|
|
11839
|
+
if (id.length === 0) throw new CodexProtocolMappingError("plugin/reconcile id is empty");
|
|
11840
|
+
return {
|
|
11841
|
+
id,
|
|
11842
|
+
hasApps: expectBoolean(plugin["hasApps"], "plugin/reconcile hasApps"),
|
|
11843
|
+
hasHooks: expectBoolean(plugin["hasHooks"], "plugin/reconcile hasHooks"),
|
|
11844
|
+
hasMcps: expectBoolean(plugin["hasMcps"], "plugin/reconcile hasMcps"),
|
|
11845
|
+
hasSkills: expectBoolean(plugin["hasSkills"], "plugin/reconcile hasSkills")
|
|
11846
|
+
};
|
|
11847
|
+
}),
|
|
11848
|
+
failedRemotePluginIds: array(result["failedRemotePluginIds"], "failedRemotePluginIds").map(
|
|
11849
|
+
(id) => expectString(id, "plugin/reconcile failedRemotePluginId")
|
|
11850
|
+
),
|
|
11851
|
+
failedMaterializationRemotePluginIds: array(
|
|
11852
|
+
result["failedMaterializationRemotePluginIds"],
|
|
11853
|
+
"failedMaterializationRemotePluginIds"
|
|
11854
|
+
).map((id) => expectString(id, "plugin/reconcile failedMaterializationRemotePluginId"))
|
|
11855
|
+
};
|
|
11856
|
+
}
|
|
11857
|
+
function reconcileCodexPlugins(client) {
|
|
11858
|
+
const existing = pending.get(client);
|
|
11859
|
+
if (existing !== void 0) return existing;
|
|
11860
|
+
const request = reconcile(client).finally(() => pending.delete(client));
|
|
11861
|
+
pending.set(client, request);
|
|
11862
|
+
return request;
|
|
11863
|
+
}
|
|
11698
11864
|
function taskTitlePrompt(text) {
|
|
11699
11865
|
let bounded = "";
|
|
11700
11866
|
let count = 0;
|
|
@@ -11886,13 +12052,13 @@ var CodexTaskTitles = class {
|
|
|
11886
12052
|
this.#pending.set(taskId, { project, cwd });
|
|
11887
12053
|
}
|
|
11888
12054
|
start(taskId, input) {
|
|
11889
|
-
const
|
|
11890
|
-
if (
|
|
12055
|
+
const pending2 = this.#pending.get(taskId);
|
|
12056
|
+
if (pending2 === void 0) return;
|
|
11891
12057
|
this.#pending.delete(taskId);
|
|
11892
12058
|
const fallback = [...input.skills, ...input.files, ...input.textAttachments].map((item) => item.name.trim()).find(Boolean) ?? "\u65B0\u4EFB\u52A1";
|
|
11893
12059
|
const prompt = taskTitlePrompt(input.text.trim() || fallback);
|
|
11894
12060
|
const controller = new AbortController();
|
|
11895
|
-
const active = { ...
|
|
12061
|
+
const active = { ...pending2, controller, done: Promise.resolve() };
|
|
11896
12062
|
this.#active.set(taskId, active);
|
|
11897
12063
|
active.done = Promise.resolve().then(async () => {
|
|
11898
12064
|
const model = await this.readModel();
|
|
@@ -11905,7 +12071,7 @@ var CodexTaskTitles = class {
|
|
|
11905
12071
|
this.#listeners.delete(listener);
|
|
11906
12072
|
};
|
|
11907
12073
|
},
|
|
11908
|
-
|
|
12074
|
+
pending2.cwd,
|
|
11909
12075
|
model,
|
|
11910
12076
|
prompt,
|
|
11911
12077
|
controller.signal
|
|
@@ -11920,7 +12086,7 @@ var CodexTaskTitles = class {
|
|
|
11920
12086
|
"thread/read response"
|
|
11921
12087
|
);
|
|
11922
12088
|
const thread = expectRecord(response["thread"], "task title thread");
|
|
11923
|
-
const projectId =
|
|
12089
|
+
const projectId = pending2.project.kind === "temporary" ? null : pending2.project.id;
|
|
11924
12090
|
if (thread["id"] !== taskId || thread["projectId"] !== projectId) {
|
|
11925
12091
|
throw new Error("Task title ownership mismatch");
|
|
11926
12092
|
}
|
|
@@ -11954,8 +12120,8 @@ var CodexTaskTitles = class {
|
|
|
11954
12120
|
this.#active.get(taskId)?.controller.abort();
|
|
11955
12121
|
}
|
|
11956
12122
|
async releaseProject(projectId) {
|
|
11957
|
-
for (const [taskId,
|
|
11958
|
-
if (
|
|
12123
|
+
for (const [taskId, pending2] of this.#pending) {
|
|
12124
|
+
if (pending2.project.id === projectId) this.#pending.delete(taskId);
|
|
11959
12125
|
}
|
|
11960
12126
|
const active = [...this.#active.values()].filter((entry) => entry.project.id === projectId);
|
|
11961
12127
|
for (const entry of active) entry.controller.abort();
|
|
@@ -12033,7 +12199,7 @@ async function readOptional(path) {
|
|
|
12033
12199
|
}
|
|
12034
12200
|
}
|
|
12035
12201
|
function createGlobalInstructionsStore(home) {
|
|
12036
|
-
let
|
|
12202
|
+
let pending2 = Promise.resolve();
|
|
12037
12203
|
const read = async () => ({
|
|
12038
12204
|
content: await readOptional(join(home, "AGENTS.md")),
|
|
12039
12205
|
path: join(home, "AGENTS.md"),
|
|
@@ -12042,7 +12208,7 @@ function createGlobalInstructionsStore(home) {
|
|
|
12042
12208
|
return {
|
|
12043
12209
|
read,
|
|
12044
12210
|
save(input) {
|
|
12045
|
-
const result =
|
|
12211
|
+
const result = pending2.then(async () => {
|
|
12046
12212
|
const path = join(home, "AGENTS.md");
|
|
12047
12213
|
if (await readOptional(path) !== input.expectedContent) {
|
|
12048
12214
|
throw Object.assign(new Error("Global instructions changed; reload before saving"), {
|
|
@@ -12080,7 +12246,7 @@ function createGlobalInstructionsStore(home) {
|
|
|
12080
12246
|
}
|
|
12081
12247
|
return read();
|
|
12082
12248
|
});
|
|
12083
|
-
|
|
12249
|
+
pending2 = result.then(
|
|
12084
12250
|
() => void 0,
|
|
12085
12251
|
() => void 0
|
|
12086
12252
|
);
|
|
@@ -12348,7 +12514,7 @@ function hasCurrentCustomModelCatalog(config) {
|
|
|
12348
12514
|
if (configuredBaseUrl === null || configuredCatalogUrl === null) return false;
|
|
12349
12515
|
const baseUrl = configuredBaseUrl.replace(/\/+$/u, "");
|
|
12350
12516
|
const catalogUrl = configuredCatalogUrl.replace(/\/+$/u, "");
|
|
12351
|
-
return catalogUrl === `${baseUrl}/models` && features?.["api_key_model_discovery"]
|
|
12517
|
+
return catalogUrl === `${baseUrl}/models` && features?.["api_key_model_discovery"] !== false;
|
|
12352
12518
|
}
|
|
12353
12519
|
function readActiveProvider(config) {
|
|
12354
12520
|
const providerId = readConfiguredProviderId(config) ?? "openai";
|
|
@@ -13237,7 +13403,6 @@ var CodexFuzzyFileSearchService = class {
|
|
|
13237
13403
|
}
|
|
13238
13404
|
};
|
|
13239
13405
|
var DEFAULT_CHANGE_DEBOUNCE_MS = 100;
|
|
13240
|
-
var MAX_GIT_REPOSITORIES_PER_ROOT = 32;
|
|
13241
13406
|
var MAX_CODEX_GIT_METADATA_WATCHES = 128;
|
|
13242
13407
|
function isRecord8(value) {
|
|
13243
13408
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -13284,21 +13449,7 @@ async function resolveGitMetadata(repositoryRoot) {
|
|
|
13284
13449
|
return { commonDir, gitDir };
|
|
13285
13450
|
}
|
|
13286
13451
|
async function discoverRepositoryRoots(rootPath) {
|
|
13287
|
-
|
|
13288
|
-
let entries;
|
|
13289
|
-
try {
|
|
13290
|
-
entries = (await readdir(rootPath, { withFileTypes: true })).filter((entry) => entry.isDirectory()).toSorted((left, right) => left.name.localeCompare(right.name));
|
|
13291
|
-
} catch (error) {
|
|
13292
|
-
if (error.code === "ENOENT") return [];
|
|
13293
|
-
throw error;
|
|
13294
|
-
}
|
|
13295
|
-
const repositories = [];
|
|
13296
|
-
for (const entry of entries) {
|
|
13297
|
-
const candidate = join(rootPath, entry.name);
|
|
13298
|
-
if (await pathExists(join(candidate, ".git"))) repositories.push(candidate);
|
|
13299
|
-
if (repositories.length >= MAX_GIT_REPOSITORIES_PER_ROOT) break;
|
|
13300
|
-
}
|
|
13301
|
-
return repositories;
|
|
13452
|
+
return await pathExists(join(rootPath, ".git")) ? [rootPath] : [];
|
|
13302
13453
|
}
|
|
13303
13454
|
function resolveHeadRef(commonDir, head) {
|
|
13304
13455
|
const refName = /^ref:\s*(refs\/.+)$/u.exec(head?.trim() ?? "")?.[1];
|
|
@@ -13374,9 +13525,9 @@ var CodexGitMetadataWatchService = class {
|
|
|
13374
13525
|
const owner = this.#watchOwners.get(params["watchId"]);
|
|
13375
13526
|
const state = owner === void 0 ? void 0 : this.#projects.get(owner.projectId);
|
|
13376
13527
|
if (owner === void 0 || state === void 0 || state.released) return;
|
|
13377
|
-
const
|
|
13378
|
-
if (
|
|
13379
|
-
|
|
13528
|
+
const pending2 = state.pendingRoots.get(owner.rootPath);
|
|
13529
|
+
if (pending2 !== void 0) {
|
|
13530
|
+
pending2.refreshTopology ||= owner.refreshTopology;
|
|
13380
13531
|
return;
|
|
13381
13532
|
}
|
|
13382
13533
|
const change = {
|
|
@@ -13399,7 +13550,7 @@ var CodexGitMetadataWatchService = class {
|
|
|
13399
13550
|
if (state === void 0) return;
|
|
13400
13551
|
this.#projects.delete(projectId);
|
|
13401
13552
|
state.released = true;
|
|
13402
|
-
for (const
|
|
13553
|
+
for (const pending2 of state.pendingRoots.values()) clearTimeout(pending2.timer);
|
|
13403
13554
|
state.pendingRoots.clear();
|
|
13404
13555
|
await state.operation.catch(() => void 0);
|
|
13405
13556
|
const registrations = [...state.registrationsByRoot.values()].flatMap((entries) => [
|
|
@@ -13850,6 +14001,7 @@ async function setCodexMcpServerEnabled(client, name, enabled) {
|
|
|
13850
14001
|
// packages/provider-codex/src/runtime-provider.ts
|
|
13851
14002
|
var CodexRuntimeProvider = class {
|
|
13852
14003
|
personalization;
|
|
14004
|
+
historyStorage;
|
|
13853
14005
|
fileSearch;
|
|
13854
14006
|
search;
|
|
13855
14007
|
#client;
|
|
@@ -13867,6 +14019,7 @@ var CodexRuntimeProvider = class {
|
|
|
13867
14019
|
#reviewWorkerOwners = /* @__PURE__ */ new Map();
|
|
13868
14020
|
constructor(client, logger = DEFAULT_PROVIDER_LOGGER, options = {}) {
|
|
13869
14021
|
this.#client = client;
|
|
14022
|
+
this.historyStorage = createHistoryStorage(client);
|
|
13870
14023
|
const codexHome = options.codexHome ?? process.env["CODEX_HOME"] ?? resolve(homedir(), ".codex");
|
|
13871
14024
|
this.#attachmentDirectory = join(codexHome, "codexly", "thread-attachments");
|
|
13872
14025
|
this.#forkTaskDirectory = join(codexHome, "codexly", "fork-tasks");
|
|
@@ -14019,11 +14172,6 @@ var CodexRuntimeProvider = class {
|
|
|
14019
14172
|
await this.#providerConnection.prepareModelCatalog();
|
|
14020
14173
|
catalogRuntime = await this.#modelCatalogRuntimeFactory();
|
|
14021
14174
|
return await this.#listModelsWithClient(catalogRuntime.client);
|
|
14022
|
-
} catch {
|
|
14023
|
-
this.#logger.warn(
|
|
14024
|
-
{ diagnosticCode: "model_catalog_refresh_failed" },
|
|
14025
|
-
"Fresh model catalog unavailable; falling back to the primary Codex CLI catalog"
|
|
14026
|
-
);
|
|
14027
14175
|
} finally {
|
|
14028
14176
|
if (catalogRuntime !== null) {
|
|
14029
14177
|
await catalogRuntime.close().catch(() => {
|
|
@@ -14071,6 +14219,9 @@ var CodexRuntimeProvider = class {
|
|
|
14071
14219
|
listInstalledSkills(projects, forceReload) {
|
|
14072
14220
|
return listCodexInstalledSkills(this.#client, projects, forceReload);
|
|
14073
14221
|
}
|
|
14222
|
+
reconcileOfficialPlugins() {
|
|
14223
|
+
return reconcileCodexPlugins(this.#client);
|
|
14224
|
+
}
|
|
14074
14225
|
listOfficialPlugins(projects, forceRefetch) {
|
|
14075
14226
|
return listCodexOfficialPlugins(this.#client, projects, forceRefetch);
|
|
14076
14227
|
}
|
|
@@ -14181,15 +14332,7 @@ function createCodexRuntimeProvider(options) {
|
|
|
14181
14332
|
...options.readTaskTitleModel === void 0 ? {} : { readTaskTitleModel: options.readTaskTitleModel }
|
|
14182
14333
|
});
|
|
14183
14334
|
}
|
|
14184
|
-
var APP_SERVER_ARGUMENTS = [
|
|
14185
|
-
"app-server",
|
|
14186
|
-
"--enable",
|
|
14187
|
-
"plugins",
|
|
14188
|
-
"--enable",
|
|
14189
|
-
"api_key_model_discovery",
|
|
14190
|
-
"--listen",
|
|
14191
|
-
"stdio://"
|
|
14192
|
-
];
|
|
14335
|
+
var APP_SERVER_ARGUMENTS = ["app-server", "--enable", "plugins", "--listen", "stdio://"];
|
|
14193
14336
|
var CodexAppServerExitedError = class extends RpcConnectionClosedError {
|
|
14194
14337
|
exitCode;
|
|
14195
14338
|
signal;
|