@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,4 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/global-settings-page-t1WBVqHm.js","assets/rolldown-runtime-B0Z9INg1.js","assets/initial-deps-CqwWvUnY.js","assets/react-runtime-CMZHB3u8.js","assets/initial-deps-DrGiv6wG.js","assets/initial-deps-CG4ykI_P.js","assets/initial-deps-D0opk7c-.js","assets/initial-deps-wXx8Atmt.js","assets/initial-deps-BOjpvLsi.js","assets/initial-deps-CBhPCsGd.js","assets/initial-deps-BvCty1IU.js","assets/scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~git-history-pa~7hgfnn0i-ClgveiMa.js","assets/prompt-input-BDkiLB2S.js","assets/sliders-horizontal-DCvEwl5f.js","assets/image-preview-DHojYYCu.js","assets/global-settings-page-BqzYrF2U.css","assets/global-search-dialog-B7WhRB5J.js","assets/external-link-CRvDdrtD.js","assets/history-location-V7apsueQ.js","assets/search-highlight-D1T4q4Lr.js","assets/search-highlight-Ct60jVKA.css","assets/workbench-shell-dY_e5m74.js","assets/attachments-CuciRoPj.js","assets/project-source-panel-B_iPZ4Xn.js","assets/snapshot-memory-BU8oqjvK.js","assets/clipboard-Bj7t4C3K.js","assets/lazy-message-response-CgZbm6_f.js","assets/download-Dk0nDBlp.js","assets/git-fork-Xq4RKTgF.js","assets/prompt-reference-token-_srKof11.js","assets/workbench-pet-canvas-UNLOz4Hj.js","assets/project-file-popup-page-DJCEoy22.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e,r as t}from"./rolldown-runtime-B0Z9INg1.js";import{t as n}from"./initial-deps-CqwWvUnY.js";import{i as r,n as i,t as a}from"./react-runtime-CMZHB3u8.js";import{_ as o,a as s,b as c,c as l,d as u,g as d,h as f,i as p,l as m,m as h,n as g,o as _,p as v,r as y,s as b,t as x,u as S,v as C,x as w,y as T}from"./initial-deps-DrGiv6wG.js";import{c as E,l as D,u as ee}from"./initial-deps-wXx8Atmt.js";import{$ as O,A as k,B as A,C as j,D as M,E as N,F as P,G as F,H as te,I,J as ne,K as re,N as ie,O as L,P as ae,Q as oe,R,S as se,T as z,U as ce,V as B,W as le,X as ue,Y as de,Z as fe,_ as pe,a as V,b as me,et as he,g as H,h as U,ht as ge,j as _e,k as ve,m as ye,mt as be,n as xe,p as Se,q as Ce,r as we,st as W,t as Te,tt as Ee,v as G,w as De,y as Oe,z as ke}from"./initial-deps-BOjpvLsi.js";import{$ as Ae,A as je,B as Me,C as Ne,D as Pe,E as Fe,F as Ie,G as Le,H as Re,I as ze,J as Be,L as Ve,M as He,N as Ue,O as We,P as Ge,Q as Ke,R as qe,T as Je,V as Ye,W as Xe,X as Ze,Y as Qe,Z as $e,_ as et,at as K,b as tt,c as nt,ct as q,d as rt,et as it,f as at,g as ot,h as st,it as ct,j as lt,k as ut,l as dt,m as ft,nt as pt,o as mt,ot as ht,p as gt,r as _t,rt as vt,s as yt,st as bt,u as xt,v as St,w as Ct,x as wt,y as Tt,z as Et}from"./initial-deps-CBhPCsGd.js";import{n as J,r as Dt,t as Ot}from"./snapshot-memory-BU8oqjvK.js";var Y=e(r(),1),kt=i(),At=`search-source`,X=new he;function jt(e=X){return s({queryFn:({signal:t})=>e.getAppInfo({signal:t}),queryKey:[`app-info`],staleTime:3e5})}function Mt(e=X,t=!1){return s({enabled:t,queryFn:({signal:t})=>e.getAppUpdateProgress({signal:t}),queryKey:[`app-update`,`progress`],refetchInterval:t?250:!1})}function Nt(e=X){return g({mutationFn:t=>e.installAppUpdate(t),mutationKey:[`app-update`,`install`],scope:{id:`app-update`}})}var Pt=`codexly.language-preference`,Ft=1,It=`zh-CN`;function Lt(e){return e===`zh-CN`||e===`en`}function Rt(e){for(let t of e){let e=t.toLowerCase();if(e===`en`||e.startsWith(`en-`))return`en`;if(e===`zh`||e.startsWith(`zh-`))return`zh-CN`}return It}function zt(e){try{let t=JSON.parse(e.getItem(Pt)??`null`);if(typeof t==`object`&&t&&`version`in t&&t.version===Ft&&`language`in t&&Lt(t.language))return t.language}catch{}return null}function Bt(e,t){try{t.setItem(Pt,JSON.stringify({language:e,version:Ft}))}catch{}}function Vt(e,t){t.lang=e}function Ht(e,t){return(e===null?null:zt(e))??Rt(t)}var Ut={imagePreview:{actualSize:`Original size`,fit:`Fit to container`,loadError:`Unable to preview image`,loading:`Loading image`,zoomIn:`Zoom in`,zoomOut:`Zoom out`},access:{checking:`Checking access`,codeLabel:`Access password`,loadError:`Unable to check access`,pair:`Pair`,pairing:`Pairing`,pairingDescription:`Enter the access password configured or shown when Codexly started.`,pairingError:`Unable to pair. Check the access password and try again`,pairingTitle:`Connect to a trusted LAN session`},actions:{backToWorkbench:`Back to workbench`,retry:`Retry`},app:{actionFailed:`Action failed`,actionSucceeded:`Action completed`,loadingProjects:`Loading projects`,noProjects:`No projects added`,notificationRegion:`Notifications`},errors:{notFoundDescription:`This address does not match a registered application route.`,notFoundTitle:`Page not found`,routeErrorLabel:`Route error`,routeErrorTitle:`Failed to load page`,runtimeUnavailableDescription:`First run <command>codex login</command> in the official Codex CLI, then retry after signing in.`,runtimeUnavailableTitle:`Codex Runtime unavailable`},language:{english:`English`,simplifiedChinese:`Simplified Chinese`}},Wt={asyncQuestions:{deliveryPending:`Answer delivery is unconfirmed. Check task progress before sending again.`,pending:`Pending questions`,pendingCount:`Pending · {{count}} groups`,previous:`Previous questions`,next:`Next questions`,collapse:`Collapse questions`,expand:`Expand questions`,close:`Close questions`,other:`Other answer`,answer:`Answer: {{question}}`,send:`Send answers`,sent:`Sent`},agentComponents:{addFile:`Add file`,addImage:`Add image`,addImageOrFile:`Add image or file`,currentDevice:`Current device`,deploymentHost:`Deployment host`,approval:`Approval`,approvalAccepted:`Request allowed`,approvalRejected:`Request denied`,approvalRequest:`{{title}} request`,codeComments:`{{count}} code comments`,contextPercent:`{{percentage}}% of context used`,contextSummary:`{{percentage}}% of context used`,contextUnknown:`Context usage unavailable`,contextWaiting:`Waiting for context usage from the model`,copied:`Copied`,copyCode:`Copy code`,copyOutput:`Copy command output`,copiedCode:`Code copied`,copiedOutput:`Command output copied`,fileTooLarge:`{{name}} exceeds the size limit`,folderCollapse:`Collapse folder {{name}}`,folderExpand:`Expand folder {{name}}`,invalidFileType:`{{name}} has an unsupported file type`,nextBranch:`Next response branch`,previousBranch:`Previous response branch`,removeAttachment:`Remove {{name}}`,scrollToBottom:`Scroll to bottom`,status:{completed:`Completed`,error:`Failed`,inProgress:`In progress`,pending:`Pending`,denied:`Denied`,responded:`Responded`,running:`Running`,waitingApproval:`Awaiting approval`},streamingOutput:`Receiving command output`,tooManyImages:`You can add up to {{count}} images`,totalAttachmentSizeExceeded:`Attachments exceed the total size limit`,totalImageSizeExceeded:`Images exceed the total size limit`,toolError:`Error`,toolInput:`Parameters`,toolResult:`Result`},errors:{addProject:`Failed to add project`,deleteProject:`Failed to delete project`,renameProject:`Failed to rename project`,reorderProject:`Failed to save project order`,reorderProjectChanged:`The project list changed. Try reordering again.`,stopTerminal:`Failed to stop terminal`},inspector:{attachmentDetail:`Attachment`,changeIndicator:`{{path}}, {{additions}} additions, {{removals}} deletions`,changes:`Changes`,closeFile:`Close file`,commit:`Commit`,context:`Context`,contextSources:`Context sources`,runtimeWarnings:`Runtime warnings`,emptyFolder:`Empty folder`,fileTree:`Project files`,file:`File`,gitChanges:`Uncommitted changes`,gitChangedFilesCount:`{{count}} files`,gitChangesRetrying:`Git change refresh failed. Retrying automatically`,gitLoading:`Loading Git changes...`,goal:`Goal`,goalClear:`Clear goal`,goalDuration:`{{minutes}}m {{seconds}}s`,goalMutationFailed:`Unable to update the goal. Try again.`,goalPause:`Pause goal`,goalResume:`Resume goal`,goalSeconds:`{{count}}s`,goalStatus:{active:`Active`,blocked:`Blocked`,budget_limited:`Budget exhausted`,complete:`Complete`,paused:`Paused`,usage_limited:`Usage limited`},goalTokenBudget:`{{used}} / {{budget}} tokens`,goalTokens:`{{used}} tokens used`,history:`History`,loading:`Loading...`,mcpEnabled:`MCP servers for this task`,mcpReload:`Reload MCP servers`,mcpReloading:`Reloading MCP servers`,mcpStatus:{authenticationRequired:`Authentication required`,cancelled:`Cancelled`,connected:`Connected`,disabled:`Disabled`,failed:`Startup failed`,notStarted:`Not started`,starting:`Starting`,unknown:`Unknown`},project:`Project`,mcpToolCount:`{{count}} tools`,openFailed:`The selected application could not open the target`,plan:`Plan`,planStatus:{completed:`Completed`,in_progress:`In progress`,pending:`Pending`},projectFilesEmpty:`This project has no files to display`,projectFilesError:`Failed to load project files`,projectFilesLoading:`Loading project files...`,readFolder:`Loading folder {{name}}`,readFolderError:`Failed to load folder {{name}}`,reading:`Loading`,refreshFolder:`Reload folder {{name}}`,refreshGit:`Refresh Git changes`,reviewChanges:`Review {{count}} uncommitted changes`,refreshProject:`Refresh project {{name}}`,refreshProjectFiles:`Reload project files`,commitChanges:`Commit {{count}} uncommitted changes`,source:`Sources`,showMore:`Show more`,sourceRole:{admin:`Admin`,repo:`Project`,system:`System`,user:`User`},subagents:`Subagents`,subagentCount:`{{count}} subagents`,subagentOutput:`View output from subagent {{nickname}}`,terminalError:`Failed to load running terminals`,terminalLoading:`Loading terminals...`,terminalRunning:`Terminal running`,terminalStop:`Stop terminal {{command}}`,terminalStopping:`Stopping {{command}}`,terminalStopRetry:`Failed to stop terminal. Try again.`,terminals:`Running terminals`,title:`Runtime environment`},gitHistory:{branch:`Current branch: {{branch}}`,branchLoading:`Current branch: Loading...`,commits:`Commit history`,copyAuthor:`Copy author`,copyHash:`Copy full commit hash`,copyMenuLabel:`Copy commit details`,copyMessage:`Copy commit message`,empty:`This repository has no commits`,diffLoadError:`Failed to load this file's commit Diff`,diffLoading:`Loading file Diff...`,diffTruncated:`This Diff is too long; showing the first 512 KiB`,filesEmpty:`This commit has no files to review`,filesLoadError:`Failed to load commit files`,filesLoading:`Loading commit files...`,end:`All commits loaded`,loadError:`Failed to load Git history`,loadMore:`Load more`,loadMoreFiles:`Load more files`,loading:`Loading Git history...`,loadingMore:`Loading...`,loadingMoreFiles:`Loading files...`,repositories:`Repositories`,retry:`Retry`},notification:{completed:`Task completed`,failed:`Task failed`,failedWithMessage:`Task failed: {{message}}`,interrupted:`Task was interrupted and cannot continue`,waitingApproval:`Task is waiting for approval`,waitingInput:`Task is waiting for input`},taskTitle:{replying:`Replying`},reorder:{cancelled:`Project reordering cancelled`,moved:`{{name}} moved to position {{position}}`,projectFallback:`Project`,started:`Project reordering started. Drag and release to save the position.`,title:`Drag to reorder, or press Alt + Arrow Up/Down`},subagent:{count:`{{count}} subagents`,defaultName:`Subagent {{index}}`,operationCompleted:`Subagent operation completed`,operationFailed:`{{count}} subagents failed`,operationRunning:`{{count}} subagents running`,operationSucceeded:`{{count}} subagents completed`,operationTitles:{close:`Close subagent`,resume:`Resume subagent`,sendInput:`Send message to subagent`,spawn:`Start subagent`,wait:`Wait for subagent`},orchestrating:`Coordinating subagents`},timeline:{approvalReview:{action:{command:`Command`,file_change:`File change`,mcp_tool_call:`MCP tool`,network_access:`Network access`,permissions:`Permission request`},actionDetail:`{{action}}: {{detail}}`,authorization:`User authorization: {{level}}`,authorizationLevel:{high:`High`,low:`Low`,medium:`Medium`,unknown:`Unknown`},rationale:`Review rationale: {{rationale}}`,reviewing:`Running automatic approval review`,risk:`Risk: {{level}}`,riskLevel:{critical:`Critical`,high:`High`,low:`Low`,medium:`Medium`},status:{aborted:`Aborted`,approved:`Approved`,denied:`Denied`,in_progress:`Reviewing`,timed_out:`Timed out`},title:`Automatic approval: {{status}}`},aiRunning:`AI response is running`,aiRunningOperation:`AI response is running: {{operation}}`,attachments:`Message attachments`,changedFiles:`This response changed {{count}} files`,collapseFiles:`Collapse file list`,collapseProcess:`Collapse process`,closeImagePreview:`Close image preview`,commandPending:`Running command`,conversation:`Conversation`,copied:`Copied`,copyMessage:`Copy message`,downloadAttachment:`Download attachment {{name}}`,openAttachment:`Open attachment {{name}}`,emptyAfter:`?`,emptyBefore:`What should we do in`,expandProcess:`Expand process`,fileChange:`{{operation}} {{name}}, {{additions}} additions, {{removals}} deletions, open Diff`,fileOperation:{create:`Created`,delete:`Deleted`,update:`Edited`},fork:`Fork task`,forkFailed:`Failed to fork task. Try again.`,forking:`Forking task`,loading:`Loading task history`,loadError:`Failed to load task history`,loadingOlder:`Loading earlier messages...`,loadOlder:`Load earlier messages`,loadOlderError:`Could not load earlier messages. Try again.`,jumpToMessage:`Jump to user message {{index}}`,moreFiles:`Show {{count}} more files`,noHistory:`This task has no history`,output:`Output`,outputOmitted:`Command output omitted {{bytes}} UTF-8 bytes and {{lines}} lines. Showing the beginning and end.`,outputRetained:`Older command output was removed to stay within the memory budget`,operationGroup:{collapse:`Collapse operation details: {{summary}}`,commandsOnly:`Commands complete: {{count}}`,expand:`Expand operation details: {{summary}}`,failed:`; {{count}} failed`,filesOnly:`Operations complete: {{count}} files changed`,filesSuffix:`, {{count}} files changed`,reasoningOnly:`Reasoning complete: {{count}} summaries`,reasoningSuffix:`, {{count}} reasoning summaries`,summary:`Operations complete: {{toolCount}} tool calls, {{commandCount}} commands`,toolsOnly:`Tool calls complete: {{count}}`},buildPlan:`Build`,plan:`Plan`,planGenerating:`Generating plan`,planReady:`Plan ready to build`,processing:`Processed`,quickNavigation:`User message quick navigation`,reconnecting:`Restoring live connection`,review:`Review`,reviewMode:`Review mode`,reviewPrompt:{baseBranch:`Review my changes against {{branch}}`,commit:`Review commit {{sha}}`,commitWithTitle:`Review commit {{sha}}: {{title}}`,custom:`Review the code using these instructions: {{instructions}}`,uncommitted:`Review my uncommitted changes`},running:`Running`,runningOperation:`Running {{operation}}`,selectProject:`Select a project for the new chat`,showImage:`View image {{name}}`,skillsUsed:`Skills used`,editedFiles:`Edited {{count}} files`,editingFiles:`Editing {{count}} files`,liveDiff:`Live file changes`,liveFileChange:`Editing {{name}}, {{additions}} additions, {{removals}} deletions`,notice:{guardian_warning:`Safety warning`,hook_status:`Hook status`,model_verification:`Model verification`,runtime_warning:`Runtime warning`,modelVerification:`Verifying model availability`,strict_review_required:`Strict review required`,strictReviewRequired:`Safety review was escalated; this action will continue after review`},reasoning:`Reasoning summary`,reasoningStreaming:`Reasoning`,runtimeStatus:{duration:`Completed in {{duration}} ms`,fasterModel:`A faster model is available: {{model}}`,hook:`Running hook {{eventName}}`,modelRerouted:`Rerouted from {{fromModel}} to {{toModel}}`,safetyBuffering:`Using safety buffering model {{model}}`}}},Gt={sectionKeywords:{appearance:`Color mode language notifications editor default open follow-up messages background wallpaper Bing custom blur overlay non-project temporary task folder storage location`,personalization:`Codex instructions AGENTS.md global memory MCP web search Git commit messages model prompt generation rules`,pets:`Enable pet selection`,provider:`API key Base URL models official custom`,agent:`Fast mode model reasoning approval file access sandbox web search output verbosity`,about:`Version update release notes diagnostics`},search:{label:`Search settings`,placeholder:`Search settings...`,clear:`Clear search`,empty:`No matching settings`},groups:{personal:`Personal`,coding:`Coding`,app:`Application`},about:{available:`Version {{version}} is available`,check:`Check for updates`,checking:`Checking`,codexlyVersion:`Codexly version`,codexVersion:`Codex version`,current:`Codexly is up to date`,github:`Project GitHub`,loading:`Checking for updates`,progress:{backingUp:`Backing up the current version`,checking:`Confirming the latest version`,completed:`Update installed`,downloading:`Downloading the update`,installing:`Installing the new version`,label:`Codexly update progress`,rollingBack:`Installation failed. Restoring the previous version`},restartRequired:`Update installed. Restart Codexly to apply it.`,retry:`Check again`,releaseNotes:`Release notes`,releaseNotesTitle:`{{version}} release notes`,releaseNotesUnavailable:`Release notes for this version are temporarily unavailable.`,update:`Software update`,updateTo:`Update to {{version}}`,updating:`Updating`},access:{currentSession:`Current browser`,loggingOut:`Logging out`,logout:`Log out of LAN access`,sessionDescription:`This browser is paired with the current Codexly LAN session.`},actions:{backToApp:`Back to app`,cancel:`Cancel`,close:`Close`,closeDialog:`Close global settings`,closeReleaseNotes:`Close release notes`,save:`Save`,saving:`Saving`},appearance:{automatic:`Automatic`,automaticMode:`Automatic mode`,colorMode:`Color mode`,dark:`Dark`,darkMode:`Dark mode`,language:`Language`,light:`Light`,lightMode:`Light mode`,notifications:`Notifications`},approval:{autoReview:`Automatic review`,never:`Never ask`,onRequest:`On request`},background:{bing:`Bing wallpaper`,bingAria:`Bing daily wallpaper`,blur:`Wallpaper background blur`,blurLabel:`Background blur`,custom:`Custom`,customAria:`Custom workbench background`,delete:`Delete image`,deleteImage:`Delete {{name}}`,galleryLabel:`Custom background images`,invalidImage:`Choose a PNG, JPEG, WebP, or GIF image up to 20 MiB.`,label:`Workbench background`,none:`None`,noneAria:`No workbench background`,overlayOpacity:`Wallpaper overlay opacity`,overlayOpacityLabel:`Overlay opacity`,previewAlt:`Custom workbench background preview`,selectImage:`Use {{name}} as the workbench background`,upload:`Upload image`,uploadInput:`Upload custom background image`,uploadRequired:`Image required`},effort:{high:`High`,low:`Low`,medium:`Medium`,minimal:`Minimal`,xhigh:`Extra high`},errors:{appInfo:`Unable to load version information`,load:`Unable to load global settings`,logout:`Unable to log out of LAN access`,save:`Unable to save global settings`,update:`Update failed. Try again.`,updateCheck:`Unable to check for updates`},fields:{approvalPolicy:`Approval policy`,commitMessagePrompt:`Commit message prompt`,commitModel:`Commit model`,defaultOpenWith:`Default open with`,fastMode:`Fast mode`,followUpMessages:`Follow-up messages`,model:`Model`,prompt:`Prompt`,reasoningEffort:`Reasoning effort`,sandbox:`Sandbox`},followUp:{queue:`Queue`,steer:`Steer`},integration:{automatic:`Select automatically`},languages:{en:`English`,zhCN:`简体中文`},loading:`Loading global settings`,navigationLabel:`Settings categories`,notifications:{disabled:`Off`,enabled:`On`},provider:{apiKey:`API key (optional)`,baseUrl:`API base URL`,cancelLogin:`Cancel login`,connect:`Connect`,connected:`Connected`,custom:`Custom API`,disconnected:`Not connected`,errors:{connect:`Unable to connect to the custom API`,load:`Unable to read model service status`,login:`Unable to start official login`},loading:`Reading model service status`,login:`Sign in with ChatGPT`,logout:`Log out`,addModel:`Add model`,modelId:`Model ID`,modelName:`Model name`,mode:`Model service mode`,models:`Custom models (optional)`,official:`Official login`,reconnect:`Reconnect`,removeModel:`Remove model`,retry:`Retry`,title:`Connect a Codex model service`,waiting:`Waiting for browser login`},pets:{availability:{downloadable:`Download required`,ready:`Ready`},enabled:`Enable workbench pet`,errors:{load:`Unable to load pet assets. Try again.`},loading:`Loading pet assets`,refresh:`Refresh list`,selectionLabel:`Choose a workbench pet`},sandbox:{dangerFullAccess:`Full access`,readOnly:`Read only`,workspaceWrite:`Workspace write`},sections:{personalization:`Personalization`,about:`About`,access:`LAN access`,agent:`Agent configuration`,appearance:`General`,pets:`Workbench pet`,provider:`Model service`},title:`Global settings`},Kt={codexCompatible:`Codex compatible`,compatible:`Verified`,current:`Up to date`,downloads:`{{count}} downloads`,emptyInstalled:`No installed skills found`,emptyMarket:`No compatible skills found`,emptyMcp:`No MCP servers configured`,emptyPlugins:`No official plugins available`,emptyInstalledPlugins:`No official plugins installed`,emptyAvailablePlugins:`No official plugins available to install`,authorize:`Authorize`,closeDetails:`Close plugin details`,closeSkillDetails:`Close skill details`,installComplete:`Skill installed`,installGlobal:`Install globally`,installProject:`Install in project`,installPlugin:`Install plugin`,installed:`Installed`,installedPlugins:`Installed`,availablePlugins:`Not installed`,installedCount:`{{count}} skills installed`,loadError:`Failed to load skill information`,loadMore:`Load more`,loading:`Loading skills`,loadingDetail:`Loading details`,loadingExtension:`Loading extension`,loadingMarket:`Loading market`,loadingMcp:`Loading MCP`,loadingPlugins:`Loading official plugins`,newSessionRequired:`Plugin installed. Start a new session to load its capabilities.`,marketError:`The market is temporarily unavailable`,mcpCount:`{{count}} MCP servers`,mcpEnabled:`Running`,mcpError:`Failed to load MCP configuration`,mcpStopped:`Stopped`,openMarketplace:`Open market page`,openSkill:`Show {{name}} in file manager`,official:`Official by OpenAI`,officialPublisher:`OpenAI official catalog`,projectTarget:`Install project`,refresh:`Refresh skills`,refreshMcp:`Refresh MCP`,refreshPlugins:`Refresh official plugins`,scan:`Scan: {{status}}`,scope:{admin:`Administrator`,repo:`Project`,system:`System`,user:`Global`},search:`Search market`,searchPlugins:`Search official plugins`,sectionsLabel:`Extension type`,sort:`Market sorting`,sortDownloads:`Most downloaded`,sortRecommended:`Recommended`,sortUpdated:`Recently updated`,stars:`{{count}} stars`,tabs:{marketplace:`Third-party market`,mcp:`MCP`,plugins:`Official plugins`,skills:`Skills`},title:`Extension Center`,toggle:`Enable or disable {{name}}`,toggleMcp:`Start or stop {{name}}`,update:`Update`,uninstallPlugin:`Uninstall plugin`,pluginError:`Official plugins are temporarily unavailable`,pluginFallbackDescription:`A Codex extension from the official catalog`,version:`Version {{version}}`},qt={title:`New project`,parent:`Parent folder`,name:`Folder name`,path:`Project path`,choose:`Choose…`,cancel:`Cancel`,create:`Create and add`,creating:`Working`,invalidName:`Enter a single folder name without path separators, reserved names, or trailing spaces or periods`,loadError:`Could not read the parent folder. Retry or choose another folder.`,createError:`Could not create the folder. Check the parent folder and write permissions.`,addError:`The folder is ready, but adding the project failed. Retry adding.`,existsDirectory:`A folder with this name already exists. Add it or choose another name.`,existsFile:`A file with this name already exists. Choose another name.`,addExisting:`Add existing folder`,retryAdd:`Retry adding`,retry:`Retry`,loading:`Loading folders`,selectParent:`Choose parent folder`,useFolder:`Use this folder`,back:`Back`,existing:`Add existing project`,host:`Server: {{host}}`,localHost:`This device`},Jt={all:`All`,runUnavailable:`Task deleted, archived, or unavailable.`,taskActions:`Actions for {{name}}`,enable:`Enable`,disable:`Disable`,details:`Execution details`,filter:`Task status`,frequency:`Schedule`,newChat:`New chat each run`,noMatches:`No matching tasks`,runIn:`Run in`,welcome:`Keep recurring work on schedule`,welcomeHint:`Schedule code reviews, briefings, or regular check-ins. Select a task to see its prompt, schedule, and run history.`,enabled:`Enabled`,nextRun:`Next run`,chooseDate:`Choose date`,create:`New scheduled task`,custom:`Custom`,weekends:`Weekends`,daily:`Daily`,dateUnavailable:`Unavailable date`,delete:`Delete`,deleteConfirm:`Confirm delete`,disabled:`Paused`,disableTask:`Disable {{name}}`,empty:`No scheduled tasks`,enableTask:`Enable {{name}}`,failed:`Failed`,lastRun:`Last run`,monthly:`Monthly`,monthDay:`Day of month`,name:`Task name`,namePlaceholder:`For example: Daily code review`,nextMonth:`Next month`,noRuns:`Not run yet`,once:`Once`,previousMonth:`Previous month`,project:`Project`,prompt:`Prompt`,repeat:`Repeat`,rrule:`RRULE`,rrulePlaceholder:`RRULE:FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0`,runNow:`Run now`,running:`Starting`,unknown:`Outcome unknown`,cleanup_pending:`Started, finishing cleanup`,unknownHint:`The launch outcome is unconfirmed. Further runs are paused. Inspect the linked conversation before deleting and recreating this schedule.`,cleanupHint:`The task has started. Resource cleanup is being retried; do not run it again.`,save:`Save task`,scheduleInvalid:`Check the date, time, or recurrence rule`,search:`Search scheduled tasks`,selectTask:`Select a task on the left to view its configuration`,skipped:`Skipped`,started:`Started`,time:`Trigger time`,timeOfDay:`Time`,title:`Scheduled tasks`,weekdays:`Weekdays`,weekday:`Day of week`,weekly:`Weekly`},Yt={globalSearch:{all:`All`,archived:`Archived tasks`,back:`Back to results`,categories:`Search scope`,clear:`Clear search`,close:`Close search`,empty:`No matching results`,error:`Search failed. Please retry.`,fileHint:`Search file names and paths`,fileLimit:`Showing the first 50 files. Refine your search.`,files:`Project files`,hint:`Search all projects and temporary tasks`,history:`History`,historyHint:`Search user messages and final assistant replies`,keyboard:`↑ ↓ Select · Enter Open · Esc Close`,latest:`Back to latest messages`,loading:`Searching…`,location:`Search match`,next:`Next page`,occurrences:`Matching messages`,openSystem:`Open with default application`,openTask:`Open task`,partial:`Some project file searches failed`,placeholder:`Search tasks, messages, project files…`,previous:`Previous page`,resultCount:`{{count}} results`,retry:`Retry`,tasks:`Tasks`,temporary:`Temporary tasks`,title:`Global search`,unavailable:`This message is no longer available. Search again.`},scheduledTasks:Jt,skillsMarket:Kt,pet:{activeTasks:`Active tasks`,activitySummary:`{{count}} active tasks, {{waiting}} waiting for attention`,move:`Move workbench pet {{name}}`,openTask:`Open task {{name}}, {{status}}`,status:{completed:`Task completed`,running:`Task running`,waiting:`Task waiting for attention`}},actions:{cancel:`Cancel`,close:`Close`,retry:`Retry`,save:`Save`},commit:{allFiles:`All files`,commit:`Commit`,commitActions:`Choose commit action`,commitAndPush:`Commit and push`,commitAndPushComplete:`Commit and push completed`,commitAndPushSucceeded:`Committed and pushed successfully`,commitComplete:`Commit completed`,commitCompletePushFailed:`Commit completed, but push failed`,commitCompleteUpstreamMissing:`Commit completed; the current branch has no upstream`,commitMessage:`Commit message`,commitSucceeded:`Committed successfully`,changes:`Changes`,generateMessage:`Generate message content`,messagePlaceholder:`Enter a commit message`,repository:`Git project`,repositoryLoading:`Loading Git project`,repositoryUnavailable:`No committable Git project was found`,selectAllFiles:`Select all files`,selectFiles:`Select files`,selectRepository:`Select Git project`,selectionLabel:`Select files, {{selected}} of {{total}} selected`,staged:`Staged`,totalFiles_one:`{{count}} total`,totalFiles_other:`{{count}} total`,unstaged:`Unstaged`},diff:{changedFiles:`Changed files`,changedFilesNavigation:`Changed files navigation`,close:`Close file Diff`,closeReview:`Close file review`,collapseChangedFilesNavigation:`Collapse changed files navigation`,expandChangedFilesNavigation:`Expand changed files navigation`,fileStats:`{{path}}, {{additions}} lines added, {{removals}} lines removed`,loading:`Loading Diff`,nextFile:`Review next file`,previousFile:`Review previous file`,reviewContent:`File review content`,reviewTitle:`File review`,showFileList:`Switch to file list`,showFileTree:`Switch to file tree`},composer:{addedAttachments:`Added attachments`,applyTodo:`Apply todo`,applyTodoDescription:`Applying this todo will replace the current composer content. Continue?`,applyTodoTitle:`Replace current input?`,approvalMode:`Approval policy`,attachmentCount_one:`{{count}} attachment`,attachmentCount_other:`{{count}} attachments`,attachmentReadFailed:`Unable to read attachment`,attachmentUploadFailed:`Unable to upload attachment`,baseBranchReview:`Review against a base branch`,buildPlanPrompt:`Start implementing the plan above.`,cancelGoalMode:`Cancel Goal mode`,cancelPlanMode:`Cancel plan mode`,cancelQueued:`Cancel queued message: {{summary}}`,cancelQueuedTooltip:`Cancel queued message`,editQueued:`Edit queued message: {{summary}}`,editQueuedTooltip:`Edit queued message`,editingQueued:`Editing`,disableFastMode:`Disable fast mode`,enableFastMode:`Enable fast mode`,commandGroup:`Commands`,commandInput:`Command input`,commandNoMatch:`No matching Skill or command`,fileSearch:`Search project files`,fileSearchEmpty:`No matching project files`,fileSearchFailed:`Project file search failed`,fileSearchGroup:`Project files`,fileSearchLoading:`Searching project files`,deleteTodo:`Delete todo: {{summary}}`,compacting:`Compacting context`,gitBranchMissing:`No branch checked out`,branchSwitcherLabel:`Switch branch, current branch {{branch}}`,branchSwitcherMenu:`Switch branch`,branchSwitchFailed:`Unable to create or switch branches. Try again.`,branchName:`Branch name`,createBranch:`New branch`,createBranchDescription:`Create from the current branch and switch immediately`,createAndSwitchBranch:`Create and switch`,goalMode:`Goal`,goalStatus:{active:`Goal active`,blocked:`Goal blocked`,budget_limited:`Goal budget exhausted`,complete:`Goal complete`,paused:`Goal paused`,usage_limited:`Goal usage limited`},goalStatusLabel:`{{status}}: {{objective}}`,goalObjectiveRequired:`Goal mode requires an objective`,goalObjectiveTooLong:`The goal objective cannot exceed 4,000 characters`,goalStructuredInputUnsupported:`Goal mode does not support attachments or Skills; use text and @file paths instead`,initializingAgentsPrompt:`Inspect the current project and create or improve AGENTS.md in the project root with Codex project guidance, common commands, and verification requirements.`,landmark:`Message composer`,modelListFailed:`Failed to load model list`,modelLoading:`Loading models`,model:`Model`,modelSelect:`Select model`,modelSelectCurrent:`Select model: {{model}}`,moveQueuedDown:`Move queued message down: {{summary}}`,moveQueuedDownTooltip:`Move down`,moveQueuedUp:`Move queued message up: {{summary}}`,moveQueuedUpTooltip:`Move up`,noBaseBranch:`No base branch available`,noModels:`No models available`,openProjectFolder:`Open in system file manager`,operationFailed:`Operation failed. Please retry.`,placeholder:`Tell Codexly what you want to accomplish`,planMode:`Plan`,projectPath:`Project path`,queueMessage:`Queue message`,queuedMessages:`Queued messages`,reasonEffortSelect:`Select reasoning effort`,reasonEffortSelectCurrent:`Select reasoning effort: {{effort}}`,reasoningEffort:`Reasoning effort`,reviewBaseBranchGroup:`Select base branch`,reviewScopeGroup:`Select review scope`,reviewStarted:`Code review started`,reviewUncommitted:`Review uncommitted changes`,sandboxMode:`Sandbox mode`,saveAsTodo:`Save as todo`,saveTodoChanges:`Save todo changes`,saveTodoFailed:`Unable to save todo`,retryTodoLoad:`Reload todo`,todoMigrationError:`Some previous todos could not be imported. The original data is preserved. Check for expired attachments, then reload to retry.`,sendSteer:`Send steer`,steerNow:`Steer now: {{summary}}`,steerNowTooltip:`Send as a steer now`,stop:`Stop`,submit:`Submit`,taskInput:`Task input`,taskRunning:`Task is running`,uncommittedChangesMissing:`No uncommitted changes available`,waitingToSend:`Waiting to send`,todoCount:`Todos {{count}}`,todoHasChanges:`Unsaved changes`,todoList:`{{project}} todos`,followUpPlaceholder:`Enter follow-up instructions`},openMenu:{choose:`Choose how to open`,copyAbsolutePath:`Copy absolute path`,copyName:`Copy name`,copyRelativePath:`Copy relative path`,detect:`Detecting available apps`,delete:`Delete`,download:`Download file`,moreActions:`More actions`,none:`No apps available`,open:`Open`,openContainingFolder:`Open containing folder`,openInNewWindow:`Open in new window`,openIn:`Open in {{app}}`,reference:`Reference`,rename:`Rename`,systemDefault:`System default app`,targetLabel:`Actions for {{path}}`},projectFile:{deleteDescription:{directory:`This will delete the directory and its contents from disk. This cannot be undone.`,file:`This will delete the file from disk. This cannot be undone.`},deleteTitle:`Delete {{name}}?`,name:`Name`,renameDescription:{directory:`This will change the directory name on disk.`,file:`This will change the file name on disk.`},renameTitle:`Rename`},promptCommand:{availability:{noTask:`Open a task first`,notReady:`Runtime capabilities are not ready`,unsupported:`The current Runtime does not support this command`},compact:{description:`Compact the context for this task`,label:`Compact`},fork:{description:`Copy the current task and its conversation history`,label:`Fork`},goal:{description:`Set a persistent goal and keep working until it is complete`,label:`Goal`},initialize:{description:`Create an AGENTS.md file with Codex guidance`,label:`Initialize`},plan:{description:`Analyze the task and propose an implementation plan first`,label:`Plan`},review:{description:`Review uncommitted changes or compare against a branch`,label:`Code review`}},pending:{allow:`Allow`,allowTurn:`Allow for this turn`,additionalPermissions:`Additional permissions`,allowSession:`Allow for this session`,answerFailed:`Unable to submit the answer. Please retry.`,commandApproval:`Command approval`,cancel:`Cancel`,deny:`Deny`,expired:`Request expired`,fileChangeApproval:`File change approval`,fileChangeFallback:`File change awaiting confirmation`,inputRequired:`Your input is required`,mcpForm:`{{server}} input request`,mcpRequest:`{{server}} confirmation`,networkApproval:`Network access approval`,networkPermission:`Network access`,other:`Other`,otherAnswer:`{{header}} other answer`,openUrl:`Open link`,previousPending:`Waiting for the previous item`,processed:`Request processed`,permissionAccess:{deny:`Deny`,read:`Read`,write:`Write`},permissionApproval:`Permission approval`,permissionGlobDepth:`Glob scan depth: {{depth}}`,permissionMinimal:`Minimal filesystem`,permissionProjectRoots:`Project roots`,permissionRoot:`Filesystem root`,permissionTmpdir:`System temporary directory`,permissionUnknownPath:`Unknown path`,fileSystemPermission:`Filesystem`,requestFailed:`Unable to process the request. Please retry.`,terminalInputApproval:`Terminal input approval`,submitAnswers:`Submit answers`,unsupportedForm:`This form cannot be displayed safely. Decline or cancel the request.`},projectDialog:{closeImagePreview:`Close image preview`,closeSource:`Close source file`,delete:`Remove`,loadImageError:`Unable to load image`,loadMoreSourceError:`Unable to load more content`,loadSourceError:`Unable to load source file`,loadingMoreSource:`Loading more content`,loadingSource:`Loading source file`,name:`Project name`,previewMarkdown:`Preview Markdown`,remove:`Remove project`,removeDescription:`Remove {{name}} from Codexly? Files on disk will not be deleted.`,rename:`Rename project`,renameDescription:`This changes only the sidebar display name, not the folder name on disk.`,showDiff:`View Diff`,showRawContent:`Show raw content`,sourcePartial:`Partial content`},newProject:qt,projectPicker:{primaryRoot:`Primary`,primaryRootHint:`The first selected folder becomes the primary folder`,primaryRootSummary:`{{path}} (Primary)`,rootSeparator:`, `,selectedRoots:`{{count}} project folders selected`,selectRoot:`Select {{name}}`,add:`Add this folder`,addError:`Unable to add the selected folder`,adding:`Adding`,description:`Browse folders on the device running Codexly`,directPathReady:`Directory verified and ready to add`,empty:`This folder has no subfolders`,filesystemRoot:`Select drive`,goToPath:`Go to path`,hideHidden:`Hide hidden folders`,loadBranchError:`Unable to read this folder`,loadError:`Unable to read folders`,loading:`Reading folders`,loadingBranch:`Reading`,noSelection:`No folder selected`,parent:`Go to parent folder`,pathLabel:`Absolute directory path`,pathPlaceholder:`Enter an absolute directory path`,resolvingPath:`Locating home directory`,title:`Select project folder`,showHidden:`Show hidden folders`,treeLabel:`Project folder tree`},hostAttachmentPicker:{add:`Add selected file`,description:`Browse files on the device running Codexly`,empty:`This folder has no supported files`,filesystemRoot:`Select drive`,fileTitle:`Select deployment host file`,goToPath:`Go to path`,hideHidden:`Hide hidden files`,imageTitle:`Select deployment host image`,importError:`Unable to add the selected file`,importing:`Adding`,loadBranchError:`Unable to read this folder`,loadError:`Unable to read files`,loading:`Reading files`,loadingBranch:`Reading`,noSelection:`No file selected`,parent:`Go to parent folder`,pathLabel:`Absolute directory path`,pathPlaceholder:`Enter an absolute directory path`,resolvingPath:`Locating home directory`,showHidden:`Show hidden files`,treeLabel:`Deployment host file tree`},subagentOutput:{close:`Close subagent output`,error:`Unable to load subagent output`,loading:`Loading subagent output`,reconnecting:`Restoring the live subagent connection`,task:`Subagent {{taskId}}`,title:`Subagent output`},shell:{selectProjectRoot:`Select project folder`,closeInspector:`Close context panel`,closeSidebar:`Close project sidebar`,collapseInspector:`Collapse context panel`,collapseSidebar:`Collapse project sidebar`,expandInspector:`Expand context panel`,expandSidebar:`Expand project sidebar`,newChat:`New chat`,renameTask:`Rename task {{title}}`,resizeInspector:`Resize context panel`,resizeSidebar:`Resize project sidebar`,timeline:`Task timeline`,temporaryTask:`Chat`},skillEditor:{tokenLabel:`Skill {{name}}, serialized text {{text}}`},archivedTasks:{confirmDelete:`Delete permanently`,confirmDeleteAll:`Delete all permanently`,delete:`Delete permanently`,deleteAll:`Delete all`,deleteAllDescription:`All archived tasks in "{{project}}" and their associated history will be permanently deleted. This cannot be undone.`,deleteAllTitle:`Permanently delete all archived tasks`,deleteAllPartialFailure:`Deleted {{deletedCount}} tasks; {{failedCount}} could not be deleted. Refresh and retry.`,deleteDescription:`"{{task}}" and its associated history will be permanently deleted. This cannot be undone.`,deleteTask:`Permanently delete task {{task}}`,deleteTitle:`Permanently delete task`,empty:`No archived tasks`,loadError:`Unable to load archived tasks`,loading:`Loading archived tasks`,next:`Next page`,page:`Page {{page}}`,previous:`Previous page`,restore:`Restore`,restoreTask:`Restore task {{task}}`,search:`Search archived tasks`,title:`Archived tasks for {{project}}`,updatedAt:`Updated {{date}}`},sidebar:{addProject:`Add project`,agentNavigation:`Agent navigation`,archive:`Archive`,archived:`Archived`,close:`Close project sidebar`,closeSearch:`Close task search`,collapse:`Show less`,connection:{connecting:`Connecting`,offline:`Offline`,online:`Online`,reconnecting:`Reconnecting`},aboutStatus:`About, Codexly {{version}}{{update}}, terminal connection status: {{status}}`,createInProject:`Create a task in {{project}}`,createWorktreeTask:`Create a worktree task in {{project}}`,createWorktreeTaskConfirm:`Create worktree and task`,worktreeTaskDescription:`Create an isolated worktree from the current checkout and start a task in it`,worktreeTaskTitle:`Create worktree task`,deletePermanently:`Delete permanently`,deleteTaskDescription:`"{{task}}" and its associated history will be permanently deleted. This cannot be undone.`,deleteTaskTitle:`Permanently delete task`,errorAddProject:`Unable to add project`,errorArchiveTask:`Unable to archive task`,errorLoadTasks:`Unable to load tasks`,errorPinTask:`Unable to update pin status`,errorProjectOrder:`Unable to save project order`,errorRenameTask:`Unable to rename task`,errorSearchTasks:`Unable to search tasks`,expand:`Show more`,expandLoading:`Loading more`,expandRetry:`Retry loading more`,newTask:`New task`,landmark:`Project sidebar`,noMatchingTasks:`No matching tasks`,noTasks:`No tasks yet`,noTemporaryTasks:`No chats yet`,openProjectActions:`Open actions for {{project}}`,openTaskActions:`Open actions for {{task}}`,pin:`Pin`,pinned:`Pinned`,projects:`Projects`,projectActions:`Actions for {{project}}`,remove:`Remove`,rename:`Rename`,search:`Search tasks`,searchAll:`Searching all tasks`,settings:`Settings`,updateAvailableLabel:`, update available`,taskActions:`Actions for {{task}}`,taskApproval:`Task awaiting approval`,taskComplete:`AI response completed`,taskIncomplete:`AI response incomplete`,taskLoading:`Loading tasks`,taskRunning:`Task running`,temporaryTasks:`Chats`,toggleProject:`Toggle project {{project}}`,unpin:`Unpin`},taskBoard:{allProjects:`All projects`,approval:`Awaiting approval`,completed:`Completed`,completedLoadError:`Failed to load completed tasks`,copyTaskId:`Copy task ID: {{id}}`,copyTaskIdHint:`Copy task ID`,emptyApproval:`No tasks awaiting approval`,emptyCompleted:`No completed tasks`,emptyRunning:`No running tasks`,emptyTodos:`No todos`,label:`Task board`,loading:`Loading task board`,loadingMore:`Loading more tasks`,newCompleted:`Newly completed`,openTask:`Open task: {{task}}`,openTodo:`Open todo: {{todo}}`,pinned:`Pinned`,projectFilter:`Project filter`,retryCompleted:`Reload completed tasks`,running:`Running`,runningFor:`Running for {{duration}}`,title:`Task board`,todo:`Todo`},taskDialog:{name:`Task name`,rename:`Rename task`}},Xt={imagePreview:{actualSize:`原始尺寸`,fit:`适应容器`,loadError:`图片无法预览`,loading:`正在加载图片`,zoomIn:`放大图片`,zoomOut:`缩小图片`},access:{checking:`正在验证访问权限`,codeLabel:`访问密码`,loadError:`无法验证访问权限`,pair:`配对`,pairing:`正在配对`,pairingDescription:`输入 Codexly 启动时设置或显示的访问密码。`,pairingError:`无法完成配对,请检查访问密码后重试`,pairingTitle:`连接可信局域网会话`},actions:{backToWorkbench:`返回工作台`,retry:`重试`},app:{actionFailed:`操作失败`,actionSucceeded:`操作成功`,loadingProjects:`正在加载项目`,noProjects:`尚未添加项目`,notificationRegion:`通知`},errors:{notFoundDescription:`当前地址不属于已注册的应用路由。`,notFoundTitle:`页面不存在`,routeErrorLabel:`路由错误`,routeErrorTitle:`页面加载失败`,runtimeUnavailableDescription:`请先在官方 Codex CLI 中运行 <command>codex login</command>,完成登录后重试。`,runtimeUnavailableTitle:`Codex Runtime 不可用`},language:{english:`English`,simplifiedChinese:`简体中文`}},Zt={asyncQuestions:{deliveryPending:`答案已提交,投递结果尚未确认。请查看任务进展,勿重复发送。`,pending:`待回答问题`,pendingCount:`待回答 · {{count}} 组`,previous:`上一组问题`,next:`下一组问题`,collapse:`收起问题`,expand:`展开问题`,close:`关闭问题`,other:`其他回答`,answer:`回答:{{question}}`,send:`发送回答`,sent:`已发送`},agentComponents:{addFile:`添加文件`,addImage:`添加图片`,addImageOrFile:`添加图片或文件`,currentDevice:`当前设备`,deploymentHost:`部署主机`,approval:`审批`,approvalAccepted:`请求已允许`,approvalRejected:`请求已拒绝`,approvalRequest:`{{title}}请求`,codeComments:`{{count}} 个代码评论`,contextPercent:`上下文已使用 {{percentage}}%`,contextSummary:`{{percentage}}% 上下文已使用`,contextUnknown:`上下文用量未知`,contextWaiting:`等待模型返回上下文用量`,copied:`已复制`,copyCode:`复制代码`,copyOutput:`复制命令输出`,copiedCode:`代码已复制`,copiedOutput:`命令输出已复制`,fileTooLarge:`{{name}} 超过大小限制`,folderCollapse:`收起文件夹 {{name}}`,folderExpand:`展开文件夹 {{name}}`,invalidFileType:`{{name}} 的文件类型不受支持`,nextBranch:`下一个回复分支`,previousBranch:`上一个回复分支`,removeAttachment:`移除 {{name}}`,scrollToBottom:`回到底部`,status:{completed:`已完成`,error:`失败`,inProgress:`进行中`,pending:`等待中`,denied:`已拒绝`,responded:`已响应`,running:`运行中`,waitingApproval:`等待批准`},streamingOutput:`正在接收命令输出`,tooManyImages:`最多添加 {{count}} 张图片`,totalAttachmentSizeExceeded:`附件总大小超过限制`,totalImageSizeExceeded:`图片总大小超过限制`,toolError:`错误`,toolInput:`参数`,toolResult:`结果`},errors:{addProject:`添加项目失败`,deleteProject:`无法删除项目`,renameProject:`无法重命名项目`,reorderProject:`保存项目排序失败`,reorderProjectChanged:`项目列表已变化,请重试排序`,stopTerminal:`停止终端失败`},inspector:{attachmentDetail:`附件`,changeIndicator:`{{path}},新增 {{additions}} 行,删除 {{removals}} 行`,changes:`变更`,closeFile:`关闭文件`,commit:`提交`,context:`上下文`,contextSources:`上下文来源`,runtimeWarnings:`运行时警告`,emptyFolder:`空文件夹`,fileTree:`项目文件`,file:`文件`,gitChanges:`未提交变更`,gitChangedFilesCount:`{{count}} 个文件`,gitChangesRetrying:`Git 变更刷新失败,正在自动重试`,gitLoading:`正在读取 Git 变更...`,goal:`目标`,goalClear:`清除目标`,goalDuration:`{{minutes}} 分 {{seconds}} 秒`,goalMutationFailed:`无法更新目标,请重试`,goalPause:`暂停目标`,goalResume:`恢复目标`,goalSeconds:`{{count}} 秒`,goalStatus:{active:`进行中`,blocked:`受阻`,budget_limited:`预算已用尽`,complete:`已完成`,paused:`已暂停`,usage_limited:`用量受限`},goalTokenBudget:`{{used}} / {{budget}} tokens`,goalTokens:`已使用 {{used}} tokens`,history:`历史`,loading:`正在读取...`,mcpEnabled:`当前任务的 MCP 服务`,mcpReload:`重新加载 MCP`,mcpReloading:`正在重新加载 MCP`,mcpStatus:{authenticationRequired:`需要认证`,cancelled:`已取消`,connected:`已连接`,disabled:`已禁用`,failed:`启动失败`,notStarted:`未启动`,starting:`正在启动`,unknown:`状态未知`},project:`项目`,mcpToolCount:`{{count}} 个工具`,openFailed:`无法使用所选应用打开目标`,plan:`计划`,planStatus:{completed:`已完成`,in_progress:`进行中`,pending:`待处理`},projectFilesEmpty:`当前项目没有可显示的文件`,projectFilesError:`无法读取项目文件`,projectFilesLoading:`正在读取项目文件...`,readFolder:`正在读取文件夹 {{name}}`,readFolderError:`无法读取文件夹 {{name}}`,reading:`正在读取`,refreshFolder:`重新读取文件夹 {{name}}`,refreshGit:`手动刷新 Git 变更`,reviewChanges:`审核 {{count}} 个未提交变更`,refreshProject:`刷新项目 {{name}}`,refreshProjectFiles:`重新读取项目文件`,commitChanges:`提交 {{count}} 个未提交变更`,source:`来源`,showMore:`显示更多`,sourceRole:{admin:`管理员`,repo:`项目`,system:`系统`,user:`用户`},subagents:`子代理`,subagentCount:`{{count}} 个子代理`,subagentOutput:`查看子代理 {{nickname}} 的输出`,terminalError:`无法读取运行中的终端`,terminalLoading:`正在读取终端...`,terminalRunning:`终端运行中`,terminalStop:`停止终端 {{command}}`,terminalStopping:`正在停止 {{command}}`,terminalStopRetry:`停止终端失败,请重试`,terminals:`运行中的终端`,title:`运行环境`},gitHistory:{branch:`当前分支:{{branch}}`,branchLoading:`当前分支:读取中...`,commits:`提交记录`,copyAuthor:`复制提交人`,copyHash:`复制完整提交哈希值`,copyMenuLabel:`复制提交内容`,copyMessage:`复制提交信息`,empty:`当前仓库暂无提交记录`,diffLoadError:`无法读取此文件的提交 Diff`,diffLoading:`正在读取文件 Diff...`,diffTruncated:`Diff 过长,仅展示前 512 KiB`,filesEmpty:`此提交没有可审核的文件`,filesLoadError:`无法读取提交文件`,filesLoading:`正在读取提交文件...`,end:`已加载全部提交`,loadError:`无法读取 Git 历史`,loadMore:`加载更多`,loadMoreFiles:`加载更多文件`,loading:`正在读取 Git 历史...`,loadingMore:`正在加载...`,loadingMoreFiles:`正在加载文件...`,repositories:`子仓库`,retry:`重试`},notification:{completed:`Task 已完成`,failed:`Task 运行失败`,failedWithMessage:`Task 运行失败:{{message}}`,interrupted:`Task 已中断,无法继续`,waitingApproval:`Task 等待审批`,waitingInput:`Task 等待输入`},taskTitle:{replying:`正在回复`},reorder:{cancelled:`已取消项目排序`,moved:`{{name}} 已移动到第 {{position}} 位`,projectFallback:`项目`,started:`已进入项目排序,拖动后释放以保存位置`,title:`拖动排序;也可按 Alt + 上下方向键移动`},subagent:{count:`{{count}} 个子代理`,defaultName:`子代理 {{index}}`,operationCompleted:`子代理操作已完成`,operationFailed:`{{count}} 个子代理执行失败`,operationRunning:`{{count}} 个子代理正在执行`,operationSucceeded:`{{count}} 个子代理已完成`,operationTitles:{close:`关闭子代理`,resume:`恢复子代理`,sendInput:`向子代理发送消息`,spawn:`启动子代理`,wait:`等待子代理`},orchestrating:`正在协调子代理`},timeline:{approvalReview:{action:{command:`命令`,file_change:`文件变更`,mcp_tool_call:`MCP 工具`,network_access:`网络访问`,permissions:`权限请求`},actionDetail:`{{action}}:{{detail}}`,authorization:`用户授权:{{level}}`,authorizationLevel:{high:`高`,low:`低`,medium:`中`,unknown:`未知`},rationale:`审批理由:{{rationale}}`,reviewing:`正在自动审批`,risk:`风险:{{level}}`,riskLevel:{critical:`严重`,high:`高`,low:`低`,medium:`中`},status:{aborted:`已中止`,approved:`已批准`,denied:`已拒绝`,in_progress:`审批中`,timed_out:`已超时`},title:`自动审批:{{status}}`},aiRunning:`AI 回复正在运行`,aiRunningOperation:`AI 回复正在运行:{{operation}}`,attachments:`消息附件`,changedFiles:`本次修改了 {{count}} 个文件`,collapseFiles:`收起文件列表`,collapseProcess:`收起执行过程`,closeImagePreview:`关闭图片预览`,commandPending:`正在执行命令`,conversation:`会话内容`,copied:`已复制`,copyMessage:`复制消息`,downloadAttachment:`下载附件 {{name}}`,openAttachment:`打开附件 {{name}}`,emptyAfter:`中做些什么?`,emptyBefore:`我们应该在`,expandProcess:`展开执行过程`,fileChange:`{{operation}} {{name}},新增 {{additions}} 行,删除 {{removals}} 行,打开 Diff`,fileOperation:{create:`已创建`,delete:`已删除`,update:`已编辑`},fork:`复制任务`,forkFailed:`复制任务失败,请重试`,forking:`正在复制任务`,loading:`正在加载任务历史`,loadError:`无法加载任务历史`,loadingOlder:`正在加载更早记录...`,loadOlder:`加载更早记录`,loadOlderError:`无法加载更早记录,请重试`,jumpToMessage:`跳转到用户消息 {{index}}`,moreFiles:`再显示 {{count}} 个文件`,noHistory:`此任务暂无历史`,output:`输出`,outputOmitted:`命令输出已省略 {{bytes}} 个 UTF-8 字节和 {{lines}} 行,显示开头和结尾内容。`,outputRetained:`较早的命令输出已按内存预算清理`,operationGroup:{collapse:`收起执行详情:{{summary}}`,commandsOnly:`命令执行完成:{{count}} 条`,expand:`展开执行详情:{{summary}}`,failed:`;其中 {{count}} 项失败`,filesOnly:`操作完成:修改 {{count}} 个文件`,filesSuffix:`,修改 {{count}} 个文件`,reasoningOnly:`推理完成:{{count}} 条`,reasoningSuffix:`,推理 {{count}} 条`,summary:`操作完成:调用 {{toolCount}} 个工具,执行 {{commandCount}} 条命令`,toolsOnly:`工具调用完成:{{count}} 个`},buildPlan:`构建`,plan:`计划`,planGenerating:`正在生成计划`,planReady:`计划已生成,可开始构建`,processing:`已处理`,quickNavigation:`用户消息快捷导航`,reconnecting:`实时连接恢复中`,review:`审核`,reviewMode:`审查模式`,reviewPrompt:{baseBranch:`请检查我相对于 {{branch}} 的更改`,commit:`请检查提交 {{sha}}`,commitWithTitle:`请检查提交 {{sha}}:{{title}}`,custom:`请按以下要求检查代码:{{instructions}}`,uncommitted:`请检查我未提交的更改`},running:`正在运行`,runningOperation:`正在运行 {{operation}}`,selectProject:`选择新聊天项目`,showImage:`查看图片 {{name}}`,skillsUsed:`使用的 Skills`,editedFiles:`已编辑 {{count}} 个文件`,editingFiles:`正在编辑 {{count}} 个文件`,liveDiff:`实时文件变更`,liveFileChange:`正在修改 {{name}},新增 {{additions}} 行,删除 {{removals}} 行`,notice:{guardian_warning:`安全警告`,hook_status:`Hook 状态`,model_verification:`模型验证`,runtime_warning:`运行时警告`,modelVerification:`正在验证模型可用性`,strict_review_required:`需要严格审核`,strictReviewRequired:`安全审核已升级,当前操作将在严格审核完成后继续`},reasoning:`推理摘要`,reasoningStreaming:`正在推理`,runtimeStatus:{duration:`耗时 {{duration}} 毫秒`,fasterModel:`可使用更快的模型:{{model}}`,hook:`正在运行 Hook {{eventName}}`,modelRerouted:`模型已从 {{fromModel}} 切换到 {{toModel}}`,safetyBuffering:`正在使用安全缓冲模型 {{model}}`}}},Qt={sectionKeywords:{appearance:`颜色模式 语言 通知 编辑器 默认打开方式 跟进消息 背景 壁纸 Bing 自定义 模糊 遮罩`,personalization:`Codex 说明 AGENTS.md 全局指令 记忆 MCP 网页搜索 Git 提交消息 提交模型 提示词 生成规则`,pets:`启用 宠物 选择`,provider:`API 密钥 Base URL 模型 官方 自定义`,agent:`快速模式 模型 思考强度 审批 文件访问 沙箱 网页搜索 输出详细程度`,about:`版本 更新 更新日志 诊断`},search:{label:`搜索设置`,placeholder:`搜索设置…`,clear:`清除搜索`,empty:`未找到相关设置`},groups:{personal:`个人`,coding:`编码`,app:`应用`},about:{available:`发现新版本 {{version}}`,check:`检查更新`,checking:`正在检查`,codexlyVersion:`Codexly 版本`,codexVersion:`Codex 版本`,current:`已是最新版本`,github:`项目 GitHub`,loading:`正在检查更新`,progress:{backingUp:`正在备份当前版本`,checking:`正在确认最新版本`,completed:`更新安装完成`,downloading:`正在下载更新包`,installing:`正在安装新版本`,label:`Codexly 更新进度`,rollingBack:`安装失败,正在恢复原版本`},restartRequired:`更新完成,重启 Codexly 后生效`,retry:`重新检查`,releaseNotes:`更新日志`,releaseNotesTitle:`{{version}} 更新日志`,releaseNotesUnavailable:`暂时无法获取此版本的更新日志。`,update:`软件更新`,updateTo:`更新到 {{version}}`,updating:`正在更新`},access:{currentSession:`当前浏览器`,loggingOut:`正在退出`,logout:`退出局域网访问`,sessionDescription:`此浏览器当前已配对到本次 Codexly 局域网会话。`},actions:{backToApp:`返回应用`,cancel:`取消`,close:`关闭`,closeDialog:`关闭全局设置`,closeReleaseNotes:`关闭更新日志`,save:`保存`,saving:`正在保存`},appearance:{automatic:`自动`,automaticMode:`自动模式`,colorMode:`颜色模式`,dark:`深色`,darkMode:`深色模式`,language:`语言`,light:`浅色`,lightMode:`浅色模式`,notifications:`通知`},approval:{autoReview:`自动审核`,never:`从不询问`,onRequest:`按需审批`},background:{bing:`Bing 壁纸`,bingAria:`Bing 每日壁纸`,blur:`壁纸背景模糊度`,blurLabel:`背景模糊度`,custom:`自定义`,customAria:`自定义工作台背景`,delete:`删除图片`,deleteImage:`删除 {{name}}`,galleryLabel:`自定义背景图片`,invalidImage:`请选择 20 MiB 以内的 PNG、JPEG、WebP 或 GIF 图片。`,label:`工作台背景`,none:`无`,noneAria:`无工作台背景`,overlayOpacity:`壁纸遮罩不透明度`,overlayOpacityLabel:`遮罩不透明度`,previewAlt:`自定义工作台背景预览`,selectImage:`使用 {{name}} 作为工作台背景`,upload:`上传图片`,uploadInput:`上传自定义背景图片`,uploadRequired:`需要上传图片`},effort:{high:`高`,low:`低`,medium:`中`,minimal:`最低`,xhigh:`极高`},errors:{appInfo:`无法加载版本信息`,load:`无法加载全局设置`,logout:`无法退出局域网访问`,save:`无法保存全局设置`,update:`更新失败,请重试`,updateCheck:`无法检查更新`},fields:{approvalPolicy:`审批`,commitMessagePrompt:`提交提示词`,commitModel:`提交模型`,defaultOpenWith:`默认打开方式`,fastMode:`快速模式`,followUpMessages:`跟进消息`,model:`模型`,prompt:`提示词`,reasoningEffort:`思考量`,sandbox:`工作区`},followUp:{queue:`排队`,steer:`引导`},integration:{automatic:`自动选择`},languages:{en:`English`,zhCN:`简体中文`},loading:`正在加载全局设置`,navigationLabel:`设置分类`,notifications:{disabled:`关闭`,enabled:`开启`},provider:{apiKey:`API Key(可选)`,baseUrl:`API Base URL`,cancelLogin:`取消登录`,connect:`连接`,connected:`已连接`,custom:`自定义 API`,disconnected:`未连接`,errors:{connect:`无法连接自定义 API`,load:`无法读取模型服务状态`,login:`无法启动官方登录`},loading:`正在读取模型服务状态`,login:`使用 ChatGPT 登录`,logout:`退出登录`,addModel:`添加模型`,modelId:`模型 ID`,modelName:`模型名称`,mode:`模型服务模式`,models:`自定义模型(可选)`,official:`官方登录`,reconnect:`重新连接`,removeModel:`删除模型`,retry:`重试`,title:`连接 Codex 模型服务`,waiting:`等待浏览器登录`},pets:{availability:{downloadable:`需要下载`,ready:`已就绪`},enabled:`启用工作台宠物`,errors:{load:`无法加载宠物资源,请重试`},loading:`正在加载宠物资源`,refresh:`刷新列表`,selectionLabel:`选择工作台宠物`},sandbox:{dangerFullAccess:`完全访问`,readOnly:`只读`,workspaceWrite:`工作区可写`},sections:{personalization:`个性化`,about:`关于`,access:`局域网访问`,agent:`智能体配置`,appearance:`常规`,pets:`宠物`,provider:`模型服务`},title:`全局设置`},$t={codexCompatible:`Codex 兼容`,compatible:`已验证`,current:`已是最新`,downloads:`{{count}} 次下载`,emptyInstalled:`尚未发现已安装的 Skill`,emptyMarket:`没有找到兼容的 Skill`,emptyMcp:`尚未配置 MCP 服务`,emptyPlugins:`没有可用的官方插件`,emptyInstalledPlugins:`尚未安装官方插件`,emptyAvailablePlugins:`没有待安装的官方插件`,authorize:`前往授权`,closeDetails:`关闭插件详情`,closeSkillDetails:`关闭 Skill 详情`,installComplete:`Skill 安装完成`,installGlobal:`安装到全局`,installProject:`安装到项目`,installPlugin:`安装插件`,installed:`已安装`,installedPlugins:`已安装`,availablePlugins:`未安装`,installedCount:`已安装 {{count}} 个 Skill`,loadError:`Skill 信息加载失败`,loadMore:`加载更多`,loading:`正在加载 Skills`,loadingDetail:`正在加载详情`,loadingExtension:`正在加载扩展`,loadingMarket:`正在加载市场`,loadingMcp:`正在加载 MCP`,loadingPlugins:`正在加载官方插件`,newSessionRequired:`插件已安装。请新建会话以加载插件能力。`,marketError:`市场暂时不可用`,mcpCount:`{{count}} 个 MCP 服务`,mcpEnabled:`运行中`,mcpError:`MCP 配置加载失败`,mcpStopped:`已停止`,openMarketplace:`打开市场页面`,openSkill:`在文件管理器中显示 {{name}}`,official:`OpenAI 官方`,officialPublisher:`OpenAI 官方目录`,projectTarget:`安装项目`,refresh:`刷新 Skills`,refreshMcp:`刷新 MCP`,refreshPlugins:`刷新官方插件`,scan:`扫描:{{status}}`,scope:{admin:`管理员`,repo:`项目`,system:`系统`,user:`全局`},search:`搜索市场`,searchPlugins:`搜索官方插件`,sectionsLabel:`扩展类型`,sort:`市场排序`,sortDownloads:`下载最多`,sortRecommended:`推荐`,sortUpdated:`最近更新`,stars:`{{count}} 个收藏`,tabs:{marketplace:`三方市场`,mcp:`MCP 管理`,plugins:`官方插件`,skills:`Skills 管理`},title:`扩展中心`,toggle:`启用或停用 {{name}}`,toggleMcp:`启用或停止 {{name}}`,update:`更新`,uninstallPlugin:`卸载插件`,pluginError:`官方插件暂时不可用`,pluginFallbackDescription:`由官方目录提供的 Codex 扩展`,version:`版本 {{version}}`},en={title:`新建项目`,parent:`父文件夹`,name:`文件夹名称`,path:`项目路径`,choose:`选择…`,cancel:`取消`,create:`创建并添加`,creating:`正在处理`,invalidName:`请输入有效的单层文件夹名称,不含路径分隔符、保留名称或末尾空格及句点`,loadError:`无法读取父文件夹,请重试或重新选择`,createError:`无法创建文件夹,请检查父文件夹是否存在及写入权限`,addError:`文件夹已就绪,但添加项目失败,请重试添加`,existsDirectory:`同名文件夹已存在,可添加已有文件夹或修改名称`,existsFile:`同名文件已存在,请修改名称`,addExisting:`添加已有文件夹`,retryAdd:`重试添加`,retry:`重试`,loading:`正在读取文件夹`,selectParent:`选择父文件夹`,useFolder:`使用此文件夹`,back:`返回`,existing:`添加已有项目`,host:`服务器:{{host}}`,localHost:`本机`},tn={all:`全部`,runUnavailable:`任务已删除、归档或不可用。`,taskActions:`{{name}}操作`,enable:`启用`,disable:`停用`,details:`执行配置`,filter:`任务状态`,frequency:`执行计划`,newChat:`每次运行开启新对话`,noMatches:`没有匹配的任务`,runIn:`运行方式`,welcome:`让重复的工作,按时完成`,welcomeHint:`安排代码巡检、整理简报或定期回顾。选择一个任务,查看提示词、执行计划和运行记录。`,enabled:`已启用`,nextRun:`下次执行`,chooseDate:`选择日期`,create:`新建定时任务`,custom:`自定义`,weekends:`周末`,daily:`每天`,dateUnavailable:`不可选日期`,delete:`删除`,deleteConfirm:`确认删除`,disabled:`已暂停`,disableTask:`停用{{name}}`,empty:`暂无定时任务`,enableTask:`启用{{name}}`,failed:`执行失败`,lastRun:`最近执行`,monthly:`每月`,monthDay:`每月几号`,name:`任务名称`,namePlaceholder:`例如:每日代码巡检`,nextMonth:`下个月`,noRuns:`尚未执行`,once:`仅一次`,previousMonth:`上个月`,project:`执行项目`,prompt:`执行提示词`,repeat:`重复规则`,rrule:`RRULE`,rrulePlaceholder:`RRULE:FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0`,runNow:`立即运行`,running:`正在启动`,unknown:`结果未知`,cleanup_pending:`已启动,正在收尾`,unknownHint:`启动结果尚未确认,已暂停再次运行。请先查看对应对话;确认后可删除此计划并重新创建。`,cleanupHint:`任务已启动,正在重试资源清理,无需再次运行。`,save:`保存任务`,scheduleInvalid:`请检查日期、时间或重复规则`,search:`搜索定时任务`,selectTask:`选择左侧任务查看配置`,skipped:`已跳过`,started:`已启动`,time:`触发时间`,timeOfDay:`时间`,title:`定时任务`,weekdays:`工作日`,weekday:`周几`,weekly:`每周`},nn={globalSearch:{all:`全部`,archived:`已归档任务`,back:`返回搜索结果`,categories:`搜索范围`,clear:`清空搜索`,close:`关闭搜索`,empty:`没有找到匹配结果`,error:`搜索失败,请重试`,fileHint:`按文件名和路径搜索`,fileLimit:`仅显示前 50 个文件,请细化关键词`,files:`项目文件`,hint:`输入关键词,搜索所有项目和临时任务`,history:`历史记录`,historyHint:`搜索用户消息和助手最终答复`,keyboard:`↑ ↓ 选择 · Enter 打开 · Esc 关闭`,latest:`返回最新消息`,loading:`正在搜索…`,location:`搜索命中位置`,next:`下一页`,occurrences:`消息中的匹配位置`,openSystem:`使用系统默认应用打开`,openTask:`打开任务`,partial:`部分项目文件搜索失败`,placeholder:`搜索任务、历史消息、项目文件…`,previous:`上一页`,resultCount:`{{count}} 个结果`,retry:`重试`,tasks:`任务`,temporary:`临时任务`,title:`全局搜索`,unavailable:`命中消息已不可用,请重新搜索`},scheduledTasks:tn,skillsMarket:$t,pet:{activeTasks:`活动任务`,activitySummary:`{{count}} 个活动任务,其中 {{waiting}} 个等待处理`,move:`移动工作台宠物 {{name}}`,openTask:`打开任务 {{name}},{{status}}`,status:{completed:`任务已完成`,running:`任务运行中`,waiting:`任务等待处理`}},actions:{cancel:`取消`,close:`关闭`,retry:`重试`,save:`保存`},commit:{allFiles:`全选`,commit:`提交`,commitActions:`选择提交方式`,commitAndPush:`提交并推送`,commitAndPushComplete:`提交并推送已完成`,commitAndPushSucceeded:`提交并推送成功`,commitComplete:`提交已完成`,commitCompletePushFailed:`提交已完成,但推送失败`,commitCompleteUpstreamMissing:`提交已完成,当前分支未配置上游`,commitMessage:`提交信息`,commitSucceeded:`提交成功`,changes:`变更`,generateMessage:`生成 message 信息`,messagePlaceholder:`输入提交信息`,repository:`Git 项目`,repositoryLoading:`正在加载 Git 项目`,repositoryUnavailable:`未找到可提交的 Git 项目`,selectAllFiles:`全选文件`,selectFiles:`选择文件`,selectRepository:`选择 Git 项目`,selectionLabel:`选择文件,已选择 {{selected}}/{{total}} 个文件`,staged:`已暂存`,totalFiles_one:`共 {{count}} 个`,totalFiles_other:`共 {{count}} 个`,unstaged:`未暂存`},diff:{changedFiles:`变更文件`,changedFilesNavigation:`变更文件导航`,close:`关闭文件 Diff`,closeReview:`关闭文件审核`,collapseChangedFilesNavigation:`收起变更文件导航`,expandChangedFilesNavigation:`展开变更文件导航`,fileStats:`{{path}},新增 {{additions}} 行,删除 {{removals}} 行`,loading:`正在加载 Diff`,nextFile:`审核下一个文件`,previousFile:`审核上一个文件`,reviewContent:`审核文件内容`,reviewTitle:`文件审核`,showFileList:`切换为文件列表`,showFileTree:`切换为文件树`},composer:{addedAttachments:`已添加附件`,applyTodo:`应用待办`,applyTodoDescription:`应用待办将覆盖输入框中的当前内容。是否继续?`,applyTodoTitle:`覆盖当前输入?`,approvalMode:`批准模式`,attachmentCount_one:`{{count}} 个附件`,attachmentCount_other:`{{count}} 个附件`,attachmentReadFailed:`附件读取失败`,attachmentUploadFailed:`附件上传失败`,baseBranchReview:`基于基础分支进行审查`,buildPlanPrompt:`请开始按照上述计划进行开发。`,cancelGoalMode:`取消目标模式`,cancelPlanMode:`取消计划模式`,cancelQueued:`取消排队:{{summary}}`,cancelQueuedTooltip:`取消排队`,editQueued:`编辑排队消息:{{summary}}`,editQueuedTooltip:`编辑排队消息`,editingQueued:`编辑中`,disableFastMode:`关闭快速模式`,enableFastMode:`开启快速模式`,commandGroup:`命令`,commandInput:`输入命令`,commandNoMatch:`没有匹配的 Skill 或命令`,fileSearch:`搜索项目文件`,fileSearchEmpty:`没有匹配的项目文件`,fileSearchFailed:`无法搜索项目文件`,fileSearchGroup:`项目文件`,fileSearchLoading:`正在搜索项目文件`,deleteTodo:`删除待办:{{summary}}`,compacting:`正在压缩上下文`,gitBranchMissing:`未检出分支`,branchSwitcherLabel:`切换分支,当前分支 {{branch}}`,branchSwitcherMenu:`切换分支`,branchSwitchFailed:`无法创建或切换分支,请重试`,branchName:`分支名称`,createBranch:`新建分支`,createBranchDescription:`基于当前分支创建并立即切换`,createAndSwitchBranch:`创建并切换`,goalMode:`目标`,goalStatus:{active:`目标进行中`,blocked:`目标受阻`,budget_limited:`目标预算已用尽`,complete:`目标已完成`,paused:`目标已暂停`,usage_limited:`目标用量受限`},goalStatusLabel:`{{status}}:{{objective}}`,goalObjectiveRequired:`目标模式需要输入目标文本`,goalObjectiveTooLong:`目标文本不能超过 4,000 个字符`,goalStructuredInputUnsupported:`目标模式暂不支持附件或 Skill,请改用文本和 @文件路径`,initializingAgentsPrompt:`请检查当前项目,并在项目根目录创建或完善 AGENTS.md,写入适用于 Codex 的项目说明、常用命令和验证要求。`,landmark:`消息编辑器`,modelListFailed:`模型列表加载失败`,modelLoading:`模型加载中`,model:`模型`,modelSelect:`选择模型`,modelSelectCurrent:`选择模型:{{model}}`,moveQueuedDown:`下移排队消息:{{summary}}`,moveQueuedDownTooltip:`下移`,moveQueuedUp:`上移排队消息:{{summary}}`,moveQueuedUpTooltip:`上移`,noBaseBranch:`未发现可用分支`,noModels:`暂无可用模型`,openProjectFolder:`在系统文件夹中打开`,operationFailed:`操作失败,请重试`,placeholder:`告诉 Codexly 你想完成什么`,planMode:`计划`,projectPath:`项目路径`,queueMessage:`排队消息`,queuedMessages:`已排队消息`,reasonEffortSelect:`选择思考量`,reasonEffortSelectCurrent:`选择思考量:{{effort}}`,reasoningEffort:`思考量`,reviewBaseBranchGroup:`选择基础分支`,reviewScopeGroup:`选择审查范围`,reviewStarted:`代码审查已开始`,reviewUncommitted:`审查未提交的更改`,sandboxMode:`沙盒模式`,saveAsTodo:`保存为待办`,saveTodoChanges:`保存待办修改`,saveTodoFailed:`无法保存待办`,retryTodoLoad:`重新加载待办`,todoMigrationError:`部分旧待办未能导入,原始数据已保留。请检查附件是否过期,修复后刷新重试。`,sendSteer:`发送引导`,steerNow:`立即引导:{{summary}}`,steerNowTooltip:`立即作为引导发送`,stop:`停止`,submit:`提交`,taskInput:`任务输入`,taskRunning:`任务运行中`,uncommittedChangesMissing:`未发现可用的基础分支`,waitingToSend:`等待发送`,todoCount:`待办 {{count}}`,todoHasChanges:`有未保存修改`,todoList:`{{project}} 的待办`,followUpPlaceholder:`输入后续要求`},openMenu:{choose:`选择打开方式`,copyAbsolutePath:`复制绝对路径`,copyName:`复制名称`,copyRelativePath:`复制相对路径`,detect:`正在检测打开方式`,delete:`删除`,download:`下载文件`,moreActions:`更多操作`,none:`没有可用的打开方式`,open:`打开`,openContainingFolder:`打开所在文件夹`,openInNewWindow:`在独立窗口打开`,openIn:`在 {{app}} 中打开`,reference:`引用`,rename:`重命名`,systemDefault:`系统默认应用`,targetLabel:`{{path}} 的操作`},projectFile:{deleteDescription:{directory:`确认后将删除磁盘上的目录及其内容,此操作无法撤销。`,file:`确认后将删除磁盘上的文件,此操作无法撤销。`},deleteTitle:`删除 {{name}}?`,name:`名称`,renameDescription:{directory:`确认后将更改磁盘上的目录名称。`,file:`确认后将更改磁盘上的文件名称。`},renameTitle:`重命名`},promptCommand:{availability:{noTask:`需要先打开一个任务`,notReady:`运行时能力尚未就绪`,unsupported:`当前运行时不支持此命令`},compact:{description:`压缩此任务的上下文`,label:`压缩`},fork:{description:`复制当前任务及其对话历史`,label:`复制`},goal:{description:`设置持久目标并持续工作直到完成`,label:`目标`},initialize:{description:`创建包含 Codex 说明的 AGENTS.md 文件`,label:`初始化`},plan:{description:`先分析任务并制定实施计划`,label:`计划`},review:{description:`审查未暂存的更改,或与某个分支进行比较`,label:`代码审查`}},pending:{allow:`允许`,allowTurn:`本轮允许`,additionalPermissions:`额外权限`,allowSession:`本次会话允许`,answerFailed:`回答提交失败,请重试`,commandApproval:`命令审批`,cancel:`取消`,deny:`拒绝`,expired:`请求已过期`,fileChangeApproval:`文件变更审批`,fileChangeFallback:`待确认文件变更`,inputRequired:`需要你的输入`,mcpForm:`{{server}} 输入请求`,mcpRequest:`{{server}} 确认请求`,networkApproval:`网络访问审批`,networkPermission:`网络访问`,other:`其他`,otherAnswer:`{{header}}其他回答`,openUrl:`打开链接`,previousPending:`等待处理前一项`,processed:`请求已处理`,permissionAccess:{deny:`拒绝`,read:`读取`,write:`写入`},permissionApproval:`权限审批`,permissionGlobDepth:`Glob 扫描深度:{{depth}}`,permissionMinimal:`最小文件系统`,permissionProjectRoots:`项目根目录`,permissionRoot:`文件系统根目录`,permissionTmpdir:`系统临时目录`,permissionUnknownPath:`未知路径`,fileSystemPermission:`文件系统`,requestFailed:`请求处理失败,请重试`,terminalInputApproval:`终端输入审批`,submitAnswers:`提交回答`,unsupportedForm:`此表单无法安全显示,请拒绝或取消请求。`},projectDialog:{closeImagePreview:`关闭图片预览`,closeSource:`关闭源文件`,delete:`删除`,loadImageError:`无法加载图片`,loadMoreSourceError:`加载更多内容失败`,loadSourceError:`无法加载源文件`,loadingMoreSource:`正在加载更多内容`,loadingSource:`正在加载源文件`,name:`项目名称`,previewMarkdown:`预览 Markdown`,remove:`移除项目`,removeDescription:`将“{{name}}”从 Codexly 左栏移除,不会删除磁盘上的文件夹及文件。`,rename:`重命名项目`,renameDescription:`只修改左栏显示名称,不会修改磁盘上的文件夹名称。`,showDiff:`查看 Diff`,showRawContent:`显示原始内容`,sourcePartial:`部分内容`},newProject:en,projectPicker:{primaryRoot:`主目录`,primaryRootHint:`首个勾选的文件夹将作为主目录`,primaryRootSummary:`{{path}}(主目录)`,rootSeparator:`、`,selectedRoots:`已选择 {{count}} 个项目目录`,selectRoot:`选择 {{name}}`,add:`添加此文件夹`,addError:`无法添加所选文件夹`,adding:`正在添加`,description:`浏览 Codexly 运行设备上的文件夹`,directPathReady:`已验证目录,可直接添加`,empty:`此文件夹中没有子文件夹`,filesystemRoot:`选择磁盘`,goToPath:`前往此路径`,hideHidden:`隐藏隐藏文件夹`,loadBranchError:`无法读取此文件夹`,loadError:`无法读取文件夹`,loading:`正在读取文件夹`,loadingBranch:`正在读取`,noSelection:`尚未选择文件夹`,parent:`返回上一级文件夹`,pathLabel:`绝对目录路径`,pathPlaceholder:`输入绝对目录路径`,resolvingPath:`正在定位主目录`,title:`选择项目文件夹`,showHidden:`显示隐藏文件夹`,treeLabel:`项目文件夹目录树`},hostAttachmentPicker:{add:`添加所选文件`,description:`浏览 Codexly 运行设备上的文件`,empty:`此文件夹中没有支持的文件`,filesystemRoot:`选择磁盘`,fileTitle:`选择部署主机文件`,goToPath:`前往此路径`,hideHidden:`隐藏隐藏文件`,imageTitle:`选择部署主机图片`,importError:`无法添加所选文件`,importing:`正在添加`,loadBranchError:`无法读取此文件夹`,loadError:`无法读取文件`,loading:`正在读取文件`,loadingBranch:`正在读取`,noSelection:`尚未选择文件`,parent:`返回上一级文件夹`,pathLabel:`绝对目录路径`,pathPlaceholder:`输入绝对目录路径`,resolvingPath:`正在定位主目录`,showHidden:`显示隐藏文件`,treeLabel:`部署主机文件目录树`},subagentOutput:{close:`关闭子代理输出`,error:`无法加载子代理输出`,loading:`正在加载子代理输出`,reconnecting:`子代理实时连接恢复中`,task:`子代理 {{taskId}}`,title:`子代理输出`},shell:{selectProjectRoot:`选择项目目录`,closeInspector:`关闭上下文面板`,closeSidebar:`关闭项目侧栏`,collapseInspector:`收起上下文面板`,collapseSidebar:`收起项目侧栏`,expandInspector:`展开上下文面板`,expandSidebar:`展开项目侧栏`,newChat:`新聊天`,renameTask:`重命名任务 {{title}}`,resizeInspector:`调整上下文面板宽度`,resizeSidebar:`调整项目侧栏宽度`,timeline:`任务时间线`,temporaryTask:`聊天`},skillEditor:{tokenLabel:`Skill {{name}},实际文本 {{text}}`},archivedTasks:{confirmDelete:`永久删除`,confirmDeleteAll:`全部永久删除`,delete:`永久删除`,deleteAll:`全部删除`,deleteAllDescription:`“{{project}}”中的全部已归档任务及其关联历史将被永久删除,此操作无法撤销。`,deleteAllTitle:`永久删除全部已归档任务`,deleteAllPartialFailure:`已删除 {{deletedCount}} 个任务,{{failedCount}} 个任务未能删除,请刷新后重试。`,deleteDescription:`“{{task}}”及其关联历史将被永久删除,此操作无法撤销。`,deleteTask:`永久删除任务 {{task}}`,deleteTitle:`永久删除任务`,empty:`没有已归档任务`,loadError:`无法加载已归档任务`,loading:`正在加载已归档任务`,next:`下一页`,page:`第 {{page}} 页`,previous:`上一页`,restore:`恢复`,restoreTask:`恢复任务 {{task}}`,search:`搜索已归档任务`,title:`{{project}} 的已归档任务`,updatedAt:`更新于 {{date}}`},sidebar:{addProject:`添加项目`,agentNavigation:`Agent 导航`,archive:`归档`,archived:`已归档`,close:`关闭项目侧栏`,closeSearch:`关闭任务搜索`,collapse:`收起`,connection:{connecting:`正在连接`,offline:`离线`,online:`在线`,reconnecting:`正在重新连接`},aboutStatus:`关于,Codexly {{version}}{{update}},终端连接状态:{{status}}`,createInProject:`在 {{project}} 中新建任务`,createWorktreeTask:`在 {{project}} 中创建 worktree 任务`,createWorktreeTaskConfirm:`创建 worktree 和任务`,worktreeTaskDescription:`基于当前检出创建独立 worktree,并在其中开始任务`,worktreeTaskTitle:`创建 worktree 任务`,deletePermanently:`永久删除`,deleteTaskDescription:`“{{task}}”及其关联历史将被永久删除,此操作无法撤销。`,deleteTaskTitle:`永久删除任务`,errorAddProject:`无法添加项目`,errorArchiveTask:`无法归档任务`,errorLoadTasks:`无法加载任务`,errorPinTask:`无法更新固定状态`,errorProjectOrder:`无法保存项目排序`,errorRenameTask:`无法重命名任务`,errorSearchTasks:`无法搜索任务`,expand:`显示更多`,expandLoading:`正在加载更多`,expandRetry:`重试加载更多`,newTask:`新建任务`,landmark:`项目侧栏`,noMatchingTasks:`未找到匹配任务`,noTasks:`暂无任务`,noTemporaryTasks:`暂无聊天`,openProjectActions:`打开 {{project}} 的项目操作菜单`,openTaskActions:`打开 {{task}} 的操作菜单`,pin:`固定`,pinned:`已固定`,projects:`项目`,projectActions:`{{project}} 的项目操作`,remove:`删除`,rename:`重命名`,search:`搜索任务`,searchAll:`正在搜索全部任务`,settings:`设置`,updateAvailableLabel:`,有可用更新`,taskActions:`{{task}} 的任务操作`,taskApproval:`任务等待审批`,taskComplete:`AI 回复已完成`,taskIncomplete:`AI 回复未完成`,taskLoading:`正在加载任务`,taskRunning:`任务运行中`,temporaryTasks:`聊天`,toggleProject:`切换项目 {{project}}`,unpin:`取消固定`},taskBoard:{allProjects:`全部项目`,approval:`待审批`,completed:`已完成`,completedLoadError:`已完成任务加载失败`,copyTaskId:`复制任务 ID:{{id}}`,copyTaskIdHint:`复制任务 ID`,emptyApproval:`暂无待审批任务`,emptyCompleted:`暂无已完成任务`,emptyRunning:`暂无运行中任务`,emptyTodos:`暂无待办`,label:`任务看板`,loading:`正在加载任务看板`,loadingMore:`正在加载更多任务`,newCompleted:`新完成`,openTask:`打开任务:{{task}}`,openTodo:`打开待办:{{todo}}`,pinned:`已固定`,projectFilter:`项目过滤`,retryCompleted:`重新加载已完成任务`,running:`运行中`,runningFor:`已运行 {{duration}}`,title:`任务看板`,todo:`待办`},taskDialog:{name:`任务名称`,rename:`重命名任务`}},rn=`common`,an=[`common`,`settings`,`workbench`,`conversation`],on={en:{common:Ut,conversation:Wt,settings:Gt,workbench:Yt},"zh-CN":{common:Xt,conversation:Zt,settings:Qt,workbench:nn}};function sn(){try{return typeof window>`u`?null:window.localStorage}catch{return null}}var cn=sn(),ln=Ht(cn,typeof window>`u`||typeof navigator>`u`?[]:navigator.languages);q.use(bt).init({defaultNS:rn,fallbackLng:`zh-CN`,initAsync:!1,interpolation:{escapeValue:!1},lng:ln,ns:an,resources:on,supportedLngs:[`zh-CN`,`en`]}),typeof document<`u`&&Vt(ln,document.documentElement);async function un(e){Bt(e,cn??{setItem:()=>void 0}),typeof document<`u`&&Vt(e,document.documentElement),await q.changeLanguage(e)}function dn(){return zt(cn??{getItem:()=>null})??(q.resolvedLanguage===`en`?`en`:`zh-CN`)}function fn(e,t,n){return e.invalidateQueries({exact:!0,queryKey:de(t,n)})}function pn(e){let t=new Map;for(let n of e?.pages??[])for(let e of n.data)t.has(e.id)||t.set(e.id,e);return[...t.values()]}async function mn(e,t){let n=e.getQueriesData({queryKey:re}).flatMap(([e,n])=>{let r=e[2];return n!==void 0&&Array.isArray(r)&&r.includes(t.projectId)?[e]:[]});await Promise.all(n.map(t=>e.cancelQueries({exact:!0,queryKey:t})));for(let r of n)e.setQueryData(r,e=>{if(e===void 0||e.pages.length===0)return e;let n=e.pages.map(e=>({...e,data:e.data.filter(e=>e.id!==t.id)})),r=n[0];return r===void 0?e:{...e,pages:[{...r,data:[t,...r.data]},...n.slice(1)]}})}function hn(e,t){if(e===void 0||e.pages.length===0)return{pageParams:[void 0],pages:[{data:[t],nextCursor:null}]};let n=e.pages.map(e=>({...e,data:e.data.filter(e=>e.id!==t.id)})),r=n[0];return{...e,pages:[{...r,data:[t,...r?.data??[]],nextCursor:r?.nextCursor??null},...n.slice(1)]}}function gn(e,t){return e===void 0?{pageParams:[void 0],pages:[{data:[t],nextCursor:null}]}:{...e,pages:e.pages.map(e=>({...e,data:e.data.map(e=>e.id===t.id?t:e)}))}}function _n(e,t,n){e.setQueryData([`projects`,t.projectId,`tasks`],e=>gn(e,t)),e.setQueryData([`projects`,t.projectId,`tasks`,F],e=>e?.map(e=>e.id===t.id?t:e)),e.setQueryData([`projects`,t.projectId,`tasks`,At],n)}function vn(e,t,n){let r=[`projects`,t.projectId,`tasks`];e.setQueryData(r,e=>gn(e,t)),e.setQueryData([...r,F],n),e.setQueryData([...r,At],e=>e?.map(e=>e.id===t.id?t:e))}function yn(e,t={}){if(t.assistantReplyStarted===!0||e.turns.some(e=>e.items.some(e=>e.type===`message`&&e.role===`assistant`))){if(e.title!==`新聊天`)return e.title;for(let t of e.turns)for(let e of t.items){if(e.type!==`message`||e.role!==`user`)continue;let t=e.text.trim().split(/\r?\n/u)[0]?.trim();if(t)return t;let n=e.skills?.[0]?.name;if(n!==void 0)return n;let r=e.attachments?.[0]?.name;if(r!==void 0)return r}return q.t(`taskTitle.replying`,{ns:`conversation`})}}function bn(e,t,n={}){if(e===void 0)return;let r=e.pages.map(e=>{let r=xn(e.data,t,n);return r===e.data?e:{...e,data:r}});return r.some((t,n)=>t!==e.pages[n])?{...e,pages:r}:e}function xn(e,t,n={}){let r=yn(t,n);if(r===void 0)return e;let i=e.findIndex(e=>e.id===t.id&&e.projectId===t.projectId&&e.title===`新聊天`);return i<0?e:e.map((e,n)=>n===i?{...e,title:r,updatedAt:t.updatedAt}:e)}function Sn(e,t,n){e.setQueryData([`projects`,t.projectId,`tasks`],e=>bn(e,t,n));for(let r of[F,At])e.setQueryData([`projects`,t.projectId,`tasks`,r],e=>e===void 0?void 0:xn(e,t,n))}function Cn(e,t){if(e!==void 0)return{...e,pages:e.pages.map(e=>({...e,data:e.data.filter(e=>e.id!==t)}))}}async function wn(e,t,n,r){return(r===void 0?await t.listTaskCatalog(e,n):await t.listTaskCatalog(e,n,{signal:r})).data}function Tn(e,t,n){return wn(e,t,{pinned:!0},n)}function En(e,t=X){return s({queryFn:({signal:n})=>Tn(e,t,n),queryKey:[`projects`,e,`tasks`,F]})}async function Dn(e,t,n){let r=[`projects`,t,`tasks`];e.setQueryData(r,e=>Cn(e,n)),e.setQueryData([...r,F],e=>e?.filter(e=>e.id!==n)),e.setQueryData([...r,At],e=>e?.filter(e=>e.id!==n)),await e.invalidateQueries({exact:!0,queryKey:r})}function On(e,t,n,r){let i=[`projects`,t,`tasks`];e.setQueryData(i,{pageParams:[void 0],pages:[r]}),e.setQueryData([...i,F],e=>e?.filter(e=>e.id!==n)),e.setQueryData([...i,At],e=>e?.filter(e=>e.id!==n))}function kn(e,t,n){let r=[`projects`,t,`tasks`];e.setQueryData(r,{pageParams:[void 0],pages:[n]}),e.removeQueries({exact:!0,queryKey:[...r,F]}),e.removeQueries({exact:!0,queryKey:[...r,At]})}function An(e,t){if(e===void 0||e.data.length!==t.length||new Set(t).size!==t.length)return;let n=new Map(e.data.map(e=>[e.id,e])),r=t.flatMap(e=>{let t=n.get(e);return t===void 0?[]:[t]});if(r.length===e.data.length)return{...e,data:r}}function jn(e=X){return g({mutationFn:({pinned:t,projectId:n,taskId:r})=>e.pinTask(n,r,t),mutationKey:[`tasks`,`pin`]})}function Mn(e=X){return g({mutationFn:({projectId:t,taskId:n,title:r})=>e.renameTask(t,n,r),mutationKey:[`tasks`,`rename`]})}function Nn(e=X){return g({mutationFn:({projectId:t,taskId:n})=>e.archiveTask(t,n),mutationKey:[`tasks`,`archive`]})}function Pn(e=X){return g({mutationFn:({projectId:t,taskId:n})=>e.unarchiveTask(t,n),mutationKey:[`tasks`,`unarchive`]})}function Fn(e=X){return g({mutationFn:({projectId:t,taskId:n})=>e.deleteTask(t,n),mutationKey:[`tasks`,`delete`]})}function In(e=X){return g({mutationFn:({name:t,projectId:n})=>e.renameProject(n,t),mutationKey:[`projects`,`rename`],scope:{id:`projects:actions`}})}function Ln(e=X){return g({mutationFn:t=>e.removeProject(t),mutationKey:[`projects`,`remove`],scope:{id:`projects:actions`}})}function Rn(e=X){return s({queryFn:({signal:t})=>e.getCapabilities({signal:t}),queryKey:[`capabilities`]})}function zn(e=X){return s({queryFn:({signal:t})=>e.listModels({signal:t}),queryKey:[`models`],staleTime:3e5})}function Bn(e=X){return s({queryFn:({signal:t})=>e.getGlobalSettings({signal:t}),queryKey:[`settings`]})}function Vn(e=X){return g({mutationFn:t=>e.updateGlobalSettings(t),mutationKey:[`settings`,`update`],scope:{id:`global-settings`}})}function Hn(e,t=X,n=!0){return s({enabled:n,queryFn:({signal:n})=>t.getProjectOpenCapabilities(e,{signal:n}),queryKey:[`projects`,e,`open-capabilities`],staleTime:6e4})}function Un(e,t=X,n=!0){return s({enabled:n,queryFn:({signal:n})=>t.listSkills(e,{signal:n}),queryKey:[`projects`,e,`skills`]})}function Wn(e,t,n=X,r=!0){return s({enabled:r&&t!==void 0,queryFn:async({signal:r})=>t===void 0?{data:[]}:n.listMcpServers(e,t,{signal:r}),queryKey:[`projects`,e,`tasks`,t??null,`mcp-servers`]})}function Gn(e,t,n=X){return g({mutationFn:async()=>{if(t===void 0)throw Error(`Cannot reload MCP servers without a task`);return n.retryMcpServers(e,t)},mutationKey:[`projects`,e,`tasks`,t??null,`mcp-servers`,`reload`],scope:{id:`task-mcp:${e}:${t??`none`}`}})}function Kn(e,t=X,n=!0){return s({enabled:n,queryFn:({signal:n})=>t.getProjectDefaults(e,{signal:n}),queryKey:[`projects`,e,`defaults`]})}function qn(e,t=X){return g({meta:{actionNotification:{successMessage:!1}},mutationFn:n=>t.updateProjectDefaults(e,n),mutationKey:[`projects`,e,`defaults`,`update`],scope:{id:`project-defaults:${e}`}})}function Jn(e=X){return s({queryFn:({signal:t})=>e.listProjects({signal:t}),queryKey:[`projects`]})}function Yn(e=X){return g({mutationFn:t=>e.reorderProjects(t),mutationKey:[`projects`,`reorder`],scope:{id:`projects:reorder`}})}function Xn(e,t,n=X,r=!0){return s({enabled:r,queryFn:({signal:r})=>n.getProjectGitStatus(e,{rootPath:t},{signal:r}),queryKey:[`projects`,e,t,`git-status`],refetchOnMount:`always`,retry:1})}function Zn(e,t,n,r,i,a=X){return s({enabled:i,queryFn:({signal:r})=>a.getProjectGitStatus(e,{includeDiff:!0,rootPath:t,...n===null?{}:{repository:n}},{signal:r}),queryKey:[`projects`,e,t,`git-status-detail`,n,r],retry:1})}function Qn(e,t,n,r,i=X){return s({enabled:r&&n!==null,queryFn:({signal:r})=>n===null?Promise.reject(Error(`Git repository is not selected`)):i.getProjectGitStatus(e,{includeDiff:!0,repository:n,rootPath:t},{signal:r}),queryKey:[`projects`,e,t,`git-status`,n],retry:1})}function $n(e,t,n,r,i=X){return p({enabled:r,getNextPageParam:(e,t,n)=>e.nextCursor===null||e.nextCursor===n?void 0:e.nextCursor,initialPageParam:void 0,queryFn:({pageParam:r,signal:a})=>i.getProjectGitHistory(e,{...r===void 0?{}:{cursor:r},...n===void 0?{}:{repository:n},rootPath:t},{signal:a}),queryKey:[`projects`,e,t,`git-history`,n??null]})}function er(e,t,n,r,i,a=X){return p({enabled:i,getNextPageParam:(e,t,n)=>e.nextCursor===null||e.nextCursor===n?void 0:e.nextCursor,initialPageParam:void 0,queryFn:({pageParam:i,signal:o})=>a.getProjectGitCommitFiles(e,{...i===void 0?{}:{cursor:i},...n===void 0?{}:{repository:n},rootPath:t,sha:r},{signal:o}),queryKey:[`projects`,e,t,`git-commit-files`,n??null,r]})}function tr(e,t,n,r,i,a,o=X){return s({enabled:a,gcTime:3e4,queryFn:({signal:a})=>o.getProjectGitCommitFileDiff(e,{path:i,...n===void 0?{}:{repository:n},rootPath:t,sha:r},{signal:a}),queryKey:[`projects`,e,t,`git-commit-diff`,n??null,r,i],staleTime:1/0})}function nr(e,t,n=X){return g({meta:{actionNotification:{successMessage:!1}},mutationFn:r=>n.generateCommitMessage(e,t,r),mutationKey:[`projects`,e,t,`git`,`commit-message`],scope:{id:`project-git-message:${e}:${t}`}})}function rr(e,t,n=X){return g({mutationFn:r=>n.commitProjectChanges(e,t,r),mutationKey:[`projects`,e,t,`git`,`commit`],scope:{id:`project-git-mutation:${e}:${t}`}})}function ir(e,t,n,r=X,i=!0){return s({enabled:i,queryFn:({signal:i})=>r.listProjectFiles(e,t,n,{signal:i}),queryKey:[`projects`,e,t,`file-tree`,n],staleTime:3e4})}function ar(e,t,n,r=X){return s(Ce(e,t,n,i=>r.listTasks(e,{archived:!0,...t===void 0?{}:{cursor:t},limit:20,...n.length===0?{}:{searchTerm:n}},{signal:i})))}function or(e,t=X){return p({getNextPageParam:e=>e.nextCursor??void 0,initialPageParam:void 0,queryFn:({pageParam:n,signal:r})=>t.queryCompletedTasks({projectIds:e,...n===void 0?{}:{cursor:n}},{signal:r}),queryKey:[...re,e]})}function sr(e,t=X){return p(ne(e,(n,r)=>t.listTasks(e,{...n===void 0?{}:{cursor:n},limit:5},{signal:r})))}function cr(e,t,n=X){return s(ue(e,t,r=>n.readTask(e,t,{signal:r})))}var lr=[],ur={error:null,hasNextPage:!1,isFetchingNextPage:!1,isPending:!0};async function dr(e,t){await e.get(t)?.fetchNextPage()}var fr=(0,Y.createContext)(void 0),pr=(0,Y.createContext)(void 0),mr=(0,Y.createContext)(void 0),hr=(0,Y.createContext)(void 0);function gr({client:e,onRemove:t,onUpdate:n,projectId:r}){let i=x(sr(r,e)),a=(0,Y.useMemo)(()=>pn(i.data),[i.data]);return(0,Y.useEffect)(()=>{n(r,{controller:{fetchNextPage:i.fetchNextPage},state:{error:i.error,hasNextPage:i.hasNextPage,isFetchingNextPage:i.isFetchingNextPage,isPending:i.isPending},tasks:a})},[n,r,i.error,i.fetchNextPage,i.hasNextPage,i.isFetchingNextPage,i.isPending,a]),(0,Y.useEffect)(()=>()=>{t(r)},[t,r]),null}function _r(e,t){let n=e.flatMap(e=>t.get(e)?.tasks??lr);return{projectTaskStates:new Map(e.map(e=>[e,t.get(e)?.state??ur])),tasks:n}}function vr(){let e=(0,Y.useContext)(fr);if(e===void 0)throw Error(`useProjectData must be used inside ProjectProvider`);return e}function yr(){let e=(0,Y.useContext)(pr);if(e===void 0)throw Error(`useProjectActions must be used inside ProjectProvider`);return e}function br(){let e=(0,Y.useContext)(mr);if(e===void 0)throw Error(`useProjectActivity must be used inside ProjectProvider`);return e}function xr(){let e=(0,Y.useContext)(hr);if(e===void 0)throw Error(`useProjectRootSelection must be used inside ProjectProvider`);return e}function Sr(e){let{client:t,projects:n}=vr(),r=(0,Y.useMemo)(()=>e===null?[W,...n.map(e=>e.id)]:[e],[e,n]),i=x(or(r,t)),a=(0,Y.useMemo)(()=>{let e=new Map;for(let t of i.data?.pages??[])for(let n of t.data)e.set(`${n.projectId}\u0000${n.id}`,n);return[...e.values()].sort((e,t)=>Date.parse(t.updatedAt)-Date.parse(e.updatedAt))},[i.data]);return{error:i.error,fetchNextPage:i.fetchNextPage,hasNextPage:i.hasNextPage,isFetchingNextPage:i.isFetchingNextPage,isPending:i.isPending,refetch:i.refetch,tasks:a}}function Cr(){let{client:e,projects:t}=vr(),n=[W,...t.map(e=>e.id)],r=b({queries:n.map(t=>En(t,e))});return{error:r.find(e=>e.error!==null)?.error??null,isPending:r.some(e=>e.isPending),tasks:r.flatMap(e=>e.data??lr)}}function wr(){let e=!1;return{async run(t){if(!e){e=!0;try{return await t()}finally{e=!1}}}}}function Tr(e){return e instanceof Error&&e.message.trim().length>0?e.message:typeof e==`string`&&e.trim().length>0?e:`Unknown internal error`}function Z(e,t,n={}){console.warn(`Codexly internal warning`,{diagnosticCode:e,errorMessage:Tr(t),...n})}var Er=256;function Dr(){if(globalThis.Notification===void 0)return;let e=globalThis.Notification;return{getPermission:()=>e.permission,requestPermission:()=>e.requestPermission(),show(t,n){let r=new e(t,n);return{addClickListener(e){r.addEventListener(`click`,e)},close(){r.close()}}}}}function Or(e){return`${e.taskId}:${e.turnId}`}function kr(e,t){switch(t.type){case`turn.completed`:{let n=t.payload.turn.status===`completed`?q.t(`notification.completed`,{ns:`conversation`}):t.payload.turn.status===`interrupted`?q.t(`notification.interrupted`,{ns:`conversation`}):t.payload.turn.status===`failed`?q.t(`notification.failed`,{ns:`conversation`}):void 0;return n===void 0?void 0:{body:n,tag:`${e}:${t.taskId}:${t.turnId}:terminal`}}case`provider.error`:return t.payload.willRetry?void 0:{body:q.t(`notification.failedWithMessage`,{message:t.payload.message,ns:`conversation`}),tag:`${e}:${t.taskId}:${t.turnId}:terminal`};case`pending_request.created`:return{body:t.payload.request.type===`user_input`?q.t(`notification.waitingInput`,{ns:`conversation`}):q.t(`notification.waitingApproval`,{ns:`conversation`}),tag:`${e}:${t.taskId}:${t.payload.request.requestId}:request`};default:return}}var Ar=class{#e;#t=new Set;#n;#r;#i;#a;#o;constructor(e){this.#e=e.api,this.#n=e.focusPage??(()=>{globalThis.window.focus()}),this.#r=e.isEnabled??(()=>!0),this.#i=e.isPageForeground??(()=>globalThis.document.visibilityState===`visible`&&globalThis.document.hasFocus()),this.#a=e.navigateToTask??(()=>void 0)}notify(e,t,n){if(!this.#r()||this.#e?.getPermission()!==`granted`||this.#i())return;if(t.type===`provider.error`&&!t.payload.willRetry){let e=Or(t);if(this.#t.has(e))return;if(this.#t.size>=Er){let e=this.#t.values().next().value;e!==void 0&&this.#t.delete(e)}this.#t.add(e)}else if(t.type===`turn.completed`&&this.#t.delete(Or(t)))return;let r=kr(e,t);if(r!==void 0)try{let i=n.trim()||`Task`,a=this.#e.show(`Codexly · ${i}`,{body:r.body,data:{projectId:e,taskId:t.taskId},tag:r.tag});a.addClickListener(()=>{a.close(),this.#n(),this.#a(e,t.taskId)})}catch(n){Z(`browser_notification_show_failed`,n,{projectId:e,taskId:t.taskId})}}requestPermission(){if(!this.#r()||this.#e===void 0)return Promise.resolve();if(this.#o!==void 0)return this.#o;let e;try{if(this.#e.getPermission()!=="default")return Promise.resolve();e=this.#e.requestPermission()}catch(e){return Z(`notification_permission_failed`,e),Promise.resolve()}return this.#o=e.then(()=>void 0).catch(e=>{Z(`notification_permission_failed`,e)}).finally(()=>{this.#o=void 0}),this.#o}};function jr(e={}){return new Ar({...e,api:e.api??Dr()})}var Mr={attention:null,isAwaitingApproval:!1,isRunning:!1};function Nr(e,t){return`${e}\u0000${t}`}function Pr(e){return e.type===`command_approval`||e.type===`file_change_approval`||e.type===`permissions_approval`||e.type===`mcp_elicitation`}function Fr(e){return new Set(e.filter(e=>e.status===`pending`&&Pr(e)).map(e=>e.requestId))}function Ir(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Lr(e,t,n,r){let i=Nr(t,n),a=e.get(i);if(a?.attention===r.attention&&a.isRunning===r.isRunning&&a.startedAt===r.startedAt&&a.taskName===r.taskName&&Ir(a.pendingApprovalRequestIds,r.pendingApprovalRequestIds))return e;let o=new Map(e);return o.set(i,r),o}function Rr(e,t,n){let r=e.get(Nr(t,n));return Lr(e,t,n,{attention:null,isRunning:!0,pendingApprovalRequestIds:r?.pendingApprovalRequestIds??new Set,projectId:t,...r?.startedAt===void 0?{startedAt:new Date().toISOString()}:{startedAt:r.startedAt},taskId:n,taskName:r?.taskName??n})}function zr(e){let t=[];for(let n of e.values())(n.isRunning||n.pendingApprovalRequestIds.size!==0)&&t.push({id:n.taskId,projectId:n.projectId,...n.startedAt===void 0?{}:{startedAt:n.startedAt},status:n.pendingApprovalRequestIds.size>0?`approval`:`running`,title:n.taskName??n.taskId});return t}function Br(e,t,n){let r=e.get(Nr(t,n));return r===void 0?Mr:{attention:r.attention,isAwaitingApproval:r.pendingApprovalRequestIds.size>0,isRunning:r.isRunning}}function Vr(e,t,n){let r=e.get(Nr(t,n));return r?.attention===void 0||r.attention===null?e:Lr(e,t,n,{...r,attention:null})}function Hr(e,t){for(let n of e.values())if(n.projectId===t&&(n.isRunning||n.pendingApprovalRequestIds.size>0))return!0;return!1}function Ur(e,t){let n=[];for(let r of e.values())r.projectId===t&&(r.isRunning||r.pendingApprovalRequestIds.size>0)&&n.push(r.taskId);return n}function Wr(e,t,n){let r=Nr(t,n);if(!e.has(r))return e;let i=new Map(e);return i.delete(r),i}function Gr(e,t,n=!1){let r=e.get(Nr(t.projectId,t.id)),i=Fr(t.pendingRequests),a=t.turns.findLast(e=>e.status===`running`),o=n?null:i.size>0?`approval`:t.status===`running`?null:r?.attention===`completed`||r?.attention===`failed`?r.attention:null;return Lr(e,t.projectId,t.id,{attention:o,isRunning:t.status===`running`,pendingApprovalRequestIds:i,projectId:t.projectId,...typeof a?.startedAt==`string`?{startedAt:a.startedAt}:r?.startedAt===void 0?{}:{startedAt:r.startedAt},taskId:t.id,taskName:t.title})}function Kr(e,t,n,r=!1){let i=Nr(t,n.taskId),a=e.get(i)??{attention:null,isRunning:!1,pendingApprovalRequestIds:new Set,projectId:t,taskId:n.taskId,taskName:n.taskId},o=a.attention,s=a.isRunning,c=a.pendingApprovalRequestIds;switch(n.type){case`turn.started`:o=null,s=!0;break;case`task.status_updated`:s=n.payload.status===`running`,s&&(o=null);break;case`turn.completed`:o=r?null:n.payload.turn.status===`failed`||n.payload.turn.status===`interrupted`?`failed`:`completed`,s=!1,c=new Set;break;case`provider.error`:n.payload.willRetry||(o=r?null:`failed`,s=!1,c=new Set);break;case`pending_request.created`:Pr(n.payload.request)&&(o=r?null:`approval`,c=new Set(c).add(n.payload.request.requestId));break;case`pending_request.resolved`:case`pending_request.expired`:if(c.has(n.payload.request.requestId)){let e=new Set(c);e.delete(n.payload.request.requestId),c=e,e.size===0&&o===`approval`&&(o=null)}break;default:return e}return Lr(e,t,n.taskId,{attention:o,isRunning:s,pendingApprovalRequestIds:c,projectId:t,...n.type===`turn.started`?typeof n.payload.turn.startedAt==`string`?{startedAt:n.payload.turn.startedAt}:{}:a.startedAt===void 0?{}:{startedAt:a.startedAt},taskId:n.taskId,...a.taskName===void 0?{}:{taskName:a.taskName}})}var qr=1e3,Jr=3e4,Yr=class extends fe{constructor(e){super({...e,estimateBytes:J})}};function Xr(e,t){return`${e}\u0000${t}`}function Zr(e,t,n){return`${Xr(e,t)}\u0000${n}`}var Qr=1048576,$r=1e3,ei=new TextEncoder;function ti(e){let t=e.items.map(e=>{if(e.type!==`message`||e.role!==`user`||(e.skills?.length??0)===0)return e;let t=be(e.text,e.skills??[]);return t===e.text?e:{...e,text:t}});return t.some((t,n)=>t!==e.items[n])?{...e,items:t}:e}function ni(e,t,n){let r=ti(t),i=r.items.find(e=>e.type===`message`&&e.role===`user`);if(n.text.length===0&&n.skills.length===0&&n.attachments.length===0&&i===void 0)return e;let a=e.turns.findIndex(e=>e.id===r.id),o=e.turns[a],s=ti(o??r),c=s.items.findIndex(e=>e.type===`message`&&e.role===`user`),l=s.items[c],u=c>=0;if(a>=0&&l?.type===`message`){if((l.attachments?.length??0)>0||(n.messageAttachments?.length??0)===0){if(s===o)return e;let t=[...e.turns];return t[a]=s,{...e,turns:t}}let t=[...e.turns],r=[...s.items];return r[c]={...l,attachments:[...n.messageAttachments??[]],...n.text.length===0?{text:``}:{}},t[a]={...s,items:r},{...e,turns:t}}let d=u?s:{...s,items:[i??{id:`submitted-user-${t.id}`,role:`user`,...n.skills.length===0?{}:{skills:n.skills.map(e=>({name:e.name}))},...(n.messageAttachments?.length??0)===0?{}:{attachments:[...n.messageAttachments??[]]},text:n.text,type:`message`},...s.items]};if(a<0)return{...e,status:`running`,turns:[...e.turns,d]};let f=[...e.turns];return f[a]=d,{...e,turns:f}}function ri(e){return e.type===`message.delta`||e.type===`plan.delta`||e.type===`reasoning.delta`||e.type===`command.output_delta`}function ii(e){let t=e.type===`reasoning.delta`?`${e.payload.field}:${String(e.payload.sectionIndex??-1)}`:`value`;return`${e.taskId}:${e.turnId}:${e.itemId}:${e.type}:${t}`}var ai=class{#e;#t;#n=[];#r=0;constructor(e={}){if(this.#e=e.maxBytes??Qr,this.#t=e.maxEvents??$r,!Number.isInteger(this.#e)||this.#e<=0)throw RangeError(`Agent Event buffer maxBytes must be a positive integer`);if(!Number.isInteger(this.#t)||this.#t<=0)throw RangeError(`Agent Event buffer maxEvents must be a positive integer`)}push(e){if(!ri(e))throw TypeError(`Only Agent Event deltas can be buffered`);let t=ii(e),n=this.#n.at(-1),r=n?.event,i=r!==void 0&&ii(r)===t,a=ei.encode(e.payload.delta).byteLength;return this.#n.length+ +!i>this.#t||this.#r+a>this.#e?(this.#n.length=0,this.#r=0,!1):(this.#r+=a,i?(this.#n[this.#n.length-1]={event:{...e,payload:{...e.payload,delta:`${r.payload.delta}${e.payload.delta}`}},retainedBytes:(n?.retainedBytes??0)+a},!0):(this.#n.push({event:e,retainedBytes:a}),!0))}drain(){return this.flushThrough(1/0)}flushThrough(e){let t=this.#n.findIndex(({event:t})=>t.sequence>=e),n=t<0?this.#n.length:t,r=this.#n.splice(0,n);for(let e of r)this.#r-=e.retainedBytes;return r.map(({event:e})=>e)}},oi=4,si=class{#e;#t=new Set;#n;#r=!1;#i=0;#a=!1;#o;constructor(e,t){this.#n=e,this.#e=t}dispose(){this.#r=!0,this.#t.clear(),this.#s()}forgetTask(e){this.#t.delete(e),this.#c()}markRecovered(e){this.#t.delete(e),this.#c()}requestRecovery(e){if(!this.#r){for(let t of e)t.length>0&&this.#t.add(t);this.#t.size>0&&!this.#a&&this.#o===void 0&&this.#u()}}#s(){this.#o!==void 0&&(clearTimeout(this.#o),this.#o=void 0)}#c(){this.#t.size>0||this.#a||(this.#s(),this.#i=0)}#l(){if(this.#r||this.#t.size===0){this.#c();return}let e=Math.min(qr*2**this.#i,Jr);this.#i+=1,this.#o=setTimeout(()=>{this.#o=void 0,this.#u()},e)}#u(){if(this.#r||this.#a||this.#t.size===0)return;this.#a=!0;let e=[...this.#t],t=0,n=async()=>{for(;!this.#r;){let n=e[t];if(t+=1,n===void 0)return;if(!this.#t.has(n))continue;let r;try{r=await this.#n(n)}catch(e){Z(`snapshot_recovery_failed`,e);continue}if(r!==void 0&&this.#t.delete(n))try{this.#e(n,r)}catch(e){this.#t.add(n),Z(`snapshot_recovery_failed`,e)}}},r=Math.min(oi,e.length);Promise.all(Array.from({length:r},n)).then(()=>{if(this.#a=!1,!this.#r){if(this.#t.size===0){this.#i=0;return}this.#l()}})}},ci=class{#e;#t;#n;#r=0;#i=0;#a=`ready`;#o;constructor(e,t,n=()=>void 0){this.#n=e,this.#e=t,this.#t=n}get isReady(){return this.#a===`ready`}dispose(){this.#a=`disposed`,this.#i+=1,this.#s()}requestRecovery(){this.#a===`ready`&&this.#l()}reset(){this.#a!==`disposed`&&(this.#s(),this.#r=0,this.#i+=1,this.#a=`ready`)}#s(){this.#o!==void 0&&(clearTimeout(this.#o),this.#o=void 0)}#c(){if(this.#a===`disposed`)return;this.#a=`waiting_to_retry`;let e=Math.min(qr*2**this.#r,Jr);this.#r+=1,this.#o=setTimeout(()=>{this.#o=void 0,this.#l()},e)}#l(){if(this.#a===`disposed`)return;this.#a=`recovering`,this.#t();let e=this.#i,t;try{t=Promise.resolve(this.#n())}catch(t){Z(`snapshot_recovery_failed`,t),e===this.#i&&this.#c();return}t.then(t=>{if(this.#a===`recovering`&&e===this.#i){if(t===void 0){this.#c();return}this.#e(t)}}).catch(t=>{Z(`snapshot_recovery_failed`,t),this.#a===`recovering`&&e===this.#i&&this.#c()})}},li=class{#e=new ai;#t;#n=new Set;#r;#i;#a;constructor(e,t,n){this.#i=e,this.#n.add(t),this.#t=n,this.#r=new ci(async()=>this.#n.values().next().value?.(),e=>{this.#t(e,this)},()=>{this.#i.getState().setConnectionState(`reconnecting`)})}get sessionId(){return this.#i.getState().checkpoint?.sessionId}get taskId(){return this.#i.getState().taskId}addConsumer(e){this.#n.add(e)}removeConsumer(e){return this.#n.delete(e),this.#n.size}resetForSnapshot(){this.#a!==void 0&&(cancelAnimationFrame(this.#a),this.#a=void 0),this.#e.drain(),this.#r.reset()}apply(e){if(this.#r.isReady){if(oe(e)){if(this.#a===void 0){this.#a=requestAnimationFrame(()=>{this.#a=void 0;let e=this.#e.drain();e.length>0&&this.#i.getState().applyEvents(e)}),this.#i.getState().applyEvents([e]);return}if(!this.#e.push(e)){this.requestRecovery();return}return}this.#o(e.sequence),this.#i.getState().applyEvents([e])}}dispose(){this.#r.dispose(),this.#a!==void 0&&(cancelAnimationFrame(this.#a),this.#a=void 0),this.#e.drain()}requestRecovery(){this.#r.isReady&&(this.#a!==void 0&&(cancelAnimationFrame(this.#a),this.#a=void 0),this.#e.drain(),this.#r.requestRecovery())}setConnectionState(e){let t=e===`connected`&&!this.#r.isReady?`reconnecting`:e;this.#i.getState().setConnectionState(t),t===`connected`&&this.#i.getState().setError(null)}#o(e){this.#a!==void 0&&(cancelAnimationFrame(this.#a),this.#a=void 0),this.#i.getState().applyEvents(this.#e.flushThrough(e))}},ui=1e3,di=3e4,fi=class{#e;#t=new Map;#n;#r;#i=!1;constructor(e,t,n){this.#e=t,this.#n=n,this.#r=e}cancel(e){let t=this.#t.get(e);t?.timer!==void 0&&clearTimeout(t.timer),this.#t.delete(e)}dispose(){this.#i=!0;for(let e of this.#t.keys())this.cancel(e)}request(e){if(this.#i||this.#t.has(e))return;let t={attempt:0,timer:void 0};this.#t.set(e,t),this.#a(e,t)}async#a(e,t){try{let n=await this.#e.unsubscribeTask(this.#r,e);if(this.#i||this.#t.get(e)!==t)return;if(n.status!==`busy`){this.#t.delete(e);return}let r=Math.min(ui*2**t.attempt,di);t.attempt+=1,t.timer=setTimeout(()=>{t.timer=void 0,this.#a(e,t)},r)}catch(n){this.#t.get(e)===t&&(this.#t.delete(e),this.#n(n,e))}}},pi=class{#e;#t;#n;#r;#i;#a;#o;#s=new Map;#c;#l=`closed`;#u=!1;#d;#f=Date.now();#p=0;#m;#h=!1;constructor(e,t,n,r){this.#i=e,this.#t=t,this.#e=n,this.#r=r.idleTimeoutMs,this.#n=new Yr({maxBytes:r.maxEventHistoryBytes,maxEvents:r.maxEventHistoryEvents}),this.#a=new si(async e=>this.#t.readTask(this.#i,e),(e,t)=>{this.#e.onSnapshot(t)}),this.#o=new fi(e,t,(t,n)=>{Z(`task_unsubscribe_failed`,t,{projectId:e,taskId:n})})}attachTaskStore(e,t,n){this.#_(e),this.#o.cancel(e.snapshot.id);let r=t.getState();if(r.projectId!==this.#i||r.taskId!==e.snapshot.id)throw Error(`Task store identity does not match the Project Runtime snapshot`);this.#D(),r.reconcile(e);let i=this.#s.get(t);i===void 0?(i=new li(t,n,(e,n)=>{this.#S(e,t,n)}),this.#s.set(t,i)):i.addConsumer(n),i.resetForSnapshot(),i.setConnectionState(this.#l===`closed`?`connecting`:this.#l),this.observeSnapshot(e),this.#w(e.checkpoint,i);let a=!0;return()=>{if(!a)return;a=!1;let e=this.#s.get(t);e!==i||e.removeConsumer(n)>0||(e.dispose(),this.#s.delete(t),this.#o.request(t.getState().taskId),this.#D(),this.#C())}}dispose(){if(!this.#u){this.#u=!0,this.#y(),this.#a.dispose(),this.#o.dispose(),this.#E();for(let e of this.#s.values())e.dispose();this.#s.clear(),this.#v()}}forgetTask(e){this.#o.cancel(e),this.#a.forgetTask(e),this.#C()}markAccess(){this.#D(),this.#C()}observeSnapshot(e){this.#_(e),this.#a.markRecovered(e.snapshot.id),this.#h=!1,this.#D(),this.#b(e.checkpoint);for(let t of this.#s.values())t.sessionId===e.checkpoint.sessionId?t.setConnectionState(this.#l):t.requestRecovery();this.#C()}reconcileTaskSnapshot(e){this.#_(e);let t=[];for(let[n,r]of this.#s)n.getState().taskId===e.snapshot.id&&(n.getState().reconcile(e),r.resetForSnapshot(),t.push(r));this.observeSnapshot(e);for(let n of t)n.setConnectionState(this.#l),this.#w(e.checkpoint,n)}#g(e){this.#n.append(e)}#_(e){if(e.snapshot.projectId!==this.#i)throw Error(`Snapshot Project does not match the Project Runtime`)}#v(){this.#n.reset()}#y(){this.#d!==void 0&&(clearTimeout(this.#d),this.#d=void 0)}#b(e){if(this.#u||this.#c!==void 0&&this.#m===e.sessionId)return;this.#E(),this.#m=e.sessionId,this.#p=e.sequence,this.#n.reset(e.sequence);let t=this.#t.subscribeEvents({afterSequence:e.sequence,onConnectionState:e=>{this.#l=e,e===`reconnecting`&&(this.#h=!0);let t=e===`closed`&&this.#h?`reconnecting`:e;for(let e of this.#s.values())e.setConnectionState(t);e===`reconnecting`&&this.#T()},onError:e=>{Z(`event_connection_failed`,e,{projectId:this.#i})},onEvent:e=>{this.#p=e.sequence,this.#g(e),this.#e.onActivityEvent(this.#i,e);for(let[t,n]of this.#s)t.getState().taskId===e.taskId&&n.apply(e);e.type===`turn.completed`&&!this.#x(e.taskId)&&this.#o.request(e.taskId),this.#C()},onResyncRequired:()=>{this.#h=!0,this.#E(),this.#l=`reconnecting`;for(let e of this.#s.values())e.setConnectionState(`reconnecting`);this.#T()},projectId:this.#i,sessionId:e.sessionId});this.#c=t}#x(e){for(let t of this.#s.keys())if(t.getState().taskId===e)return!0;return!1}#S(e,t,n){if(this.#s.get(t)!==n)return;this.#_(e);let r=t.getState();if(r.projectId!==this.#i||r.taskId!==e.snapshot.id)throw Error(`Task store identity does not match the recovered snapshot`);r.reconcile(e),n.resetForSnapshot(),this.#e.onSnapshot(e),this.#w(e.checkpoint,n)}#C(){if(this.#y(),this.#u||this.#c===void 0||this.#s.size>0||Hr(this.#e.getTaskActivity(),this.#i))return;let e=this.#r-(Date.now()-this.#f);if(e<=0){this.dispose(),this.#e.onIdle(this);return}this.#d=setTimeout(()=>{this.#d=void 0,this.#C()},e)}#w(e,t){if(e.sessionId!==this.#m){t.requestRecovery();return}if(e.sequence<this.#n.floorSequence&&e.sequence<this.#p){t.requestRecovery();return}this.#n.forEachAfter(e.sequence,e=>{e.taskId===t.taskId&&t.apply(e)})}#T(){let e=new Set;for(let t of this.#s.values())e.add(t.taskId),t.requestRecovery();let t=Ur(this.#e.getTaskActivity(),this.#i).filter(t=>!e.has(t));this.#a.requestRecovery(t)}#E(){let e=this.#c;this.#c=void 0;try{e?.()}catch(e){Z(`event_connection_cleanup_failed`,e,{projectId:this.#i})}this.#l=`closed`}#D(){this.#f=Date.now(),this.#y()}},mi=class{#e=new Set;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;#d=new Map;#f;#p=new Map;#m=new Map;#h=new Map;#g=new Set;#_;client;constructor(e,t={}){if(this.client=e,this.#t=t.idleTimeoutMs??12e4,this.#n=t.maxEventHistoryBytes??4194304,this.#r=t.maxEventHistoryEvents??2048,this.#i=t.onMcpServerStatusChanged??(()=>void 0),this.#a=t.onProjectGitActivity??(()=>void 0),this.#o=t.onProjectGitMetadataChanged??(()=>void 0),this.#s=t.onQueueChanged??(()=>void 0),this.#c=t.onSkillsChanged??(()=>void 0),this.#l=t.onTaskRemoved??(()=>void 0),this.#u=t.onTaskMetadataChanged??(()=>void 0),this.#f=t.taskNotifier??jr(),!Number.isSafeInteger(this.#t)||this.#t<0)throw RangeError(`Project Runtime idleTimeoutMs must be non-negative`);if(!Number.isSafeInteger(this.#n)||this.#n<0)throw RangeError(`Project Runtime maxEventHistoryBytes must be non-negative`);if(!Number.isSafeInteger(this.#r)||this.#r<0)throw RangeError(`Project Runtime maxEventHistoryEvents must be non-negative`)}attachTaskStore(e,t,n){return this.#S(e.snapshot),this.#x(e),this.#v(e.snapshot.projectId).attachTaskStore(e,t,n)}dispose(){for(let e of this.#d.values())e.dispose();this.#d.clear(),this.#e.clear(),this.#m.clear(),this.#h.clear(),this.#g.clear()}forgetTask(e,t){this.#y(Wr(this.#p,e,t)),this.#m.delete(Xr(e,t)),this.#h.delete(Xr(e,t)),this.#d.get(e)?.forgetTask(t)}forgetProject(e){this.#d.get(e)?.dispose(),this.#d.delete(e);let t=this.#p;for(let n of this.#p.values())n.projectId===e&&(t=Wr(t,e,n.taskId));this.#y(t);let n=`${e}\u0000`;for(let e of this.#m.keys())e.startsWith(n)&&this.#m.delete(e);for(let e of this.#h.keys())e.startsWith(n)&&this.#h.delete(e);for(let e of this.#g)e.startsWith(n)&&this.#g.delete(e);this.#_?.projectId===e&&(this.#_=void 0)}getTaskActivity(){return this.#p}markTaskRunning(e,t){this.#y(Rr(this.#p,e,t)),this.#a(e,t,`turn_started`),this.#d.get(e)?.markAccess()}observeSnapshot(e){this.#S(e.snapshot),this.#x(e),this.#v(e.snapshot.projectId).observeSnapshot(e)}requestNotificationPermission(){return this.#f.requestPermission().catch(e=>{Z(`notification_permission_failed`,e)})}reconcileTaskSnapshot(e){this.#S(e.snapshot),this.#x(e),this.#v(e.snapshot.projectId).reconcileTaskSnapshot(e)}async refreshTaskSnapshot(e,t){let n=await this.client.readTask(e,t);return this.reconcileTaskSnapshot(n),n}rememberTaskTitles(e){for(let t of e)this.#S(t)}viewTask(e,t){this.#_=t===void 0?void 0:{projectId:e,taskId:t},t!==void 0&&this.#y(Vr(this.#p,e,t)),this.#d.get(e)?.markAccess()}subscribeTaskActivity(e){return this.#e.add(e),()=>{this.#e.delete(e)}}#v(e){let t=this.#d.get(e);return t===void 0?(t=new pi(e,this.client,{getTaskActivity:()=>this.#p,onActivityEvent:(e,t)=>{if(t.type===`project.git_metadata_changed`){this.#o(e,t.payload.rootPath);return}if(t.type===`skills.changed`?this.#c(e):t.type===`queue.changed`?this.#s(e,t.taskId):t.type===`task.metadata_changed`?this.#u(e,t.taskId,`native_notification`):t.type===`task.removed`?(this.#l(e,t.taskId),this.forgetTask(e,t.taskId)):t.type===`mcp_server.status_updated`?this.#i(e,t.taskId):t.type===`turn.started`?this.#a(e,t.taskId,`turn_started`):t.type===`item.completed`&&t.payload.item.type===`file_change`&&t.payload.item.status===`completed`&&this.#a(e,t.taskId,`file_changed`),t.type===`message.delta`){let n=Zr(e,t.taskId,t.turnId);if(!this.#g.has(n)){if(this.#g.add(n),this.#g.size>2048){let e=this.#g.values().next().value;e!==void 0&&this.#g.delete(e)}this.#u(e,t.taskId,`assistant_reply_started`)}}if(t.type===`turn.completed`){let n=Zr(e,t.taskId,t.turnId);this.#g.delete(n),this.#a(e,t.taskId,`turn_completed`),this.#u(e,t.taskId,`turn_completed`)}try{this.#f.notify(e,t,this.#h.get(Xr(e,t.taskId))??`Task`)}catch(n){Z(`task_notification_failed`,n,{projectId:e,taskId:t.taskId})}t.type!==`task.removed`&&this.#m.set(Xr(e,t.taskId),{sequence:t.sequence,sessionId:t.sessionId}),this.#y(Kr(this.#p,e,t,this.#b(e,t.taskId)))},onIdle:t=>{this.#d.get(e)===t&&this.#d.delete(e)},onSnapshot:e=>{this.observeSnapshot(e)}},{idleTimeoutMs:this.#t,maxEventHistoryBytes:this.#n,maxEventHistoryEvents:this.#r}),this.#d.set(e,t),t):t}#y(e){if(e!==this.#p){this.#p=e;for(let e of this.#e)e()}}#b(e,t){return this.#_?.projectId===e&&this.#_.taskId===t}#x(e){let{checkpoint:t,snapshot:n}=e,r=Xr(n.projectId,n.id),i=this.#m.get(r);if(i?.sessionId===t.sessionId&&i.sequence>t.sequence)return;this.#m.set(r,t);let a=Br(this.#p,n.projectId,n.id).isRunning,o=n.status===`running`;o!==a&&this.#a(n.projectId,n.id,o?`turn_started`:`turn_completed`),this.#y(Gr(this.#p,n,this.#b(n.projectId,n.id)))}#S(e){let t=Xr(e.projectId,e.id);if(this.#h.delete(t),this.#h.set(t,e.title),this.#h.size>2048){let e=this.#h.keys().next().value;e!==void 0&&this.#h.delete(e)}}};function hi(e,t={}){return new mi(e,t)}var gi=`actionNotification`;function _i(e){let t=e.meta?.[gi];if(t===!1)return!1;if(typeof t!=`object`||!t||Array.isArray(t))return;let n=`error`in t&&typeof t.error==`boolean`?t.error:void 0,r=`successMessage`in t&&(typeof t.successMessage==`string`||t.successMessage===!1)?t.successMessage:void 0;return{...n===void 0?{}:{error:n},...r===void 0?{}:{successMessage:r}}}function vi(e){return e instanceof Error&&e.message.trim().length>0?e.message:typeof e==`string`&&e.trim().length>0?e:q.t(`app.actionFailed`,{ns:`common`})}function Q(e){vt.error(vi(e))}function yi(e=q.t(`app.actionSucceeded`,{ns:`common`})){vt.success(e)}function bi(){return new u({onError(e,t,n,r){let i=_i(r);i!==!1&&i?.error!==!1&&Q(e)},onSuccess(e,t,n,r){let i=_i(r);i!==!1&&i?.successMessage!==!1&&yi(i?.successMessage)}})}function xi(){return typeof document>`u`||document.visibilityState===`visible`}var Si=class{#e;#t;#n;#r;#i=new Map;#a;#o;#s;#c;#l=!1;constructor(e,t,n={}){this.#a=e,this.#e=t,this.#t=n.fileChangeDebounceMs??300,this.#n=n.isPageVisible??xi,this.#r=n.pollIntervalMs??3e5,this.#o=n.random??Math.random,this.#s=n.retryBaseMs??1e3,this.#c=n.retryMaxMs??3e4}dispose(){if(!this.#l){this.#l=!0;for(let e of this.#i.values())this.#p(e);this.#i.clear()}}forgetProject(e){for(let[t,n]of this.#i)n.projectId===e&&(this.#p(n),this.#i.delete(t))}handleActivity(e,t,n,r){if(this.#l)return;let i=this.#h(e,t);if(r===`turn_started`){let e=i.activeTaskIds.size===0,t=i.consecutiveFailures>0||i.retryTimer!==void 0;if(i.activeTaskIds.add(n),i.isGitProject===!1)return;e||t?(this.#f(i),this.#v(i)):this.#m(i);return}if(r===`file_changed`){if(i.activeTaskIds.add(n),this.#f(i),i.isGitProject===!1)return;this.#y(i);return}if(i.activeTaskIds.delete(n),this.#u(i),this.#f(i),i.activeTaskIds.size===0&&this.#d(i),i.isGitProject===!1){i.activeTaskIds.size===0&&this.#i.delete(this.#g(i.projectId,i.rootPath));return}this.#v(i)}handleGitMetadataChanged(e,t){if(this.#l)return;let n=this.#h(e,t);this.#f(n),this.#y(n)}async refreshProject(e,t){if(this.#l)return;let n=this.#h(e,t);this.#f(n),await this.#_(n,`manual`)}#u(e){e.fileChangeTimer!==void 0&&(clearTimeout(e.fileChangeTimer),e.fileChangeTimer=void 0)}#d(e){e.pollingTimer!==void 0&&(clearInterval(e.pollingTimer),e.pollingTimer=void 0)}#f(e){e.retryTimer!==void 0&&(clearTimeout(e.retryTimer),e.retryTimer=void 0)}#p(e){e.closed=!0,e.refreshPending=void 0,this.#u(e),this.#d(e),this.#f(e)}#m(e){e.closed||e.isGitProject!==!0||e.consecutiveFailures>0||e.activeTaskIds.size===0||e.pollingTimer!==void 0||e.retryTimer!==void 0||(e.pollingTimer=setInterval(()=>{this.#n()&&this.#v(e)},this.#r))}#h(e,t){let n=this.#g(e,t),r=this.#i.get(n);if(r!==void 0)return r;let i={activeTaskIds:new Set,closed:!1,consecutiveFailures:0,fileChangeTimer:void 0,inFlight:void 0,isGitProject:void 0,pollingTimer:void 0,projectId:e,rootPath:t,refreshPending:void 0,retryTimer:void 0};return this.#i.set(n,i),i}#g(e,t){return`${e}\u0000${t}`}#_(e,t){if(e.closed||this.#l)return Promise.resolve();if(e.inFlight!==void 0)return e.refreshPending=t===`manual`||e.refreshPending===`manual`?`manual`:`background`,e.inFlight;let n=Xn(e.projectId,e.rootPath,this.#e),r=this.#e.getProjectGitStatus(e.projectId,{rootPath:e.rootPath}).then(t=>{this.#a.setQueryData(n.queryKey,t),e.consecutiveFailures=0,e.isGitProject=t.repositoryMode!==`none`,e.isGitProject||(this.#u(e),this.#d(e),this.#f(e))}).catch(t=>{throw e.consecutiveFailures+=1,this.#d(e),t}).finally(()=>{if(e.closed||this.#l)return;e.inFlight=void 0;let t=e.refreshPending;if(e.refreshPending=void 0,t!==void 0&&(t===`manual`||e.isGitProject!==!1)){this.#v(e,t);return}if(e.activeTaskIds.size>0){e.consecutiveFailures>0?e.isGitProject!==!1&&this.#b(e):this.#m(e);return}e.activeTaskIds.size===0&&e.fileChangeTimer===void 0&&this.#i.delete(this.#g(e.projectId,e.rootPath))});return e.inFlight=r,r}#v(e,t=`background`){this.#_(e,t).catch(t=>{Z(`git_status_poll_failed`,t,{projectId:e.projectId,rootPath:e.rootPath})})}#y(e){this.#u(e),e.fileChangeTimer=setTimeout(()=>{e.fileChangeTimer=void 0,this.#v(e)},this.#t)}#b(e){if(e.closed||e.isGitProject===!1||e.activeTaskIds.size===0||e.retryTimer!==void 0)return;let t=Math.min(this.#c,this.#s*2**Math.min(e.consecutiveFailures-1,30)),n=Math.min(this.#c,Math.round(t*(.8+this.#o()*.4)));e.retryTimer=setTimeout(()=>{e.retryTimer=void 0,this.#n()?this.#v(e):this.#b(e)},n)}};function Ci(e,t){if(e!==void 0)return e.roots.find(n=>t?.projectId===e.id&&n.id===t.rootId)??e.roots[0]}function wi(e,t){if(e===void 0)return;let n=t.get(e.id);return Ci(e,n===void 0?void 0:{projectId:e.id,rootId:n})}function Ti(e,t,n){return n?e.includes(t)?e:[...e,t]:e.filter(e=>e!==t)}function Ei(e){let t=t=>wi(e.getProject(t),e.getSelectedRootIds());return{onProjectGitActivity(n,r,i){if(n===`temporary`)return;let a=e.getProject(n),o=e.getTaskWorkspacePath?.(n,r),s=o!==void 0&&!a?.roots.some(e=>e.path===o)?o:t(n)?.path;s!==void 0&&e.coordinator.handleActivity(n,s,r,i)},onProjectGitMetadataChanged(n,r){t(n)?.path===r&&e.coordinator.handleGitMetadataChanged(n,r)}}}var Di=[`scheduled-tasks`];async function Oi(e,t,n){let r=new Set(t?.data.flatMap(e=>e.runs.map(e=>e.taskId))),i=new Set(n.data.filter(e=>e.runs.some(e=>e.taskId!==null&&!r.has(e.taskId))).map(e=>e.projectId));i.size!==0&&await e.invalidateQueries({predicate:({queryKey:e})=>e[0]===`projects`&&typeof e[1]==`string`&&i.has(e[1])&&e[2]===`tasks`&&(e.length===3||e[3]===`pinned`||e[3]===`search-source`)})}function ki(e,t){return s({queryKey:Di,queryFn:async({signal:n})=>{let r=t.getQueryData(Di),i=await e.listScheduledTasks({signal:n});return await Oi(t,r,i),i}})}function Ai({client:e}){let t=m();return _(ki(e,t)),(0,Y.useEffect)(()=>{let n=!0,r=!1,i=!1,a=()=>n,o=async()=>{if(!i&&n){i=!0;try{for(;a()&&r;)r=!1,await t.invalidateQueries({queryKey:Di},{cancelRefetch:!1})}finally{i=!1}}},s=e.subscribeScheduledTasks(()=>{r=!0,queueMicrotask(()=>{o()})});return()=>{n=!1,s()}},[e,t]),null}var $=a();function ji({actions:e,activity:t,children:n,client:r,data:i,onRemoveTaskQuery:a,onUpdateTaskQuery:o,projects:s,rootSelection:c}){return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ai,{client:r}),(0,$.jsx)(gr,{client:r,onRemove:a,onUpdate:o,projectId:W}),s.map(e=>(0,$.jsx)(gr,{client:r,onRemove:a,onUpdate:o,projectId:e.id},e.id)),(0,$.jsx)(fr.Provider,{value:i,children:(0,$.jsx)(pr.Provider,{value:e,children:(0,$.jsx)(hr.Provider,{value:c,children:(0,$.jsx)(mr.Provider,{value:t,children:n})})})})]})}var Mi=[];function Ni({children:e,client:t=X,taskNotifier:n}){let r=m(),[i,a]=(0,Y.useState)(()=>new Map),o=(0,Y.useRef)(i);o.current=i;let s=(0,Y.useCallback)((e,t)=>{a(n=>{if(n.get(e)===t)return n;let r=new Map(n);return r.set(e,t),r})},[]),c=(0,Y.useMemo)(()=>new Si(r,t),[t,r]),l=(0,Y.useMemo)(()=>{let e=new Map;return hi(t,{...n===void 0?{}:{taskNotifier:n},...Ei({coordinator:c,getProject:e=>r.getQueryData([`projects`])?.data.find(t=>t.id===e),getSelectedRootIds:()=>o.current,getTaskWorkspacePath:(e,t)=>r.getQueryData([`projects`,e,`task-workspace-paths`,t])??r.getQueryData([`projects`,e,`tasks`])?.pages.flatMap(e=>e.data).find(e=>e.id===t)?.workspacePath}),onMcpServerStatusChanged(e,t){r.invalidateQueries({exact:!0,queryKey:[`projects`,e,`tasks`,t,`mcp-servers`]})},onQueueChanged(e,t){fn(r,e,t)},onSkillsChanged(e){r.invalidateQueries({exact:!0,queryKey:[`projects`,e,`skills`]})},onTaskRemoved(e,t){Dn(r,e,t),r.invalidateQueries({queryKey:re}),r.removeQueries({exact:!0,queryKey:[`projects`,e,`tasks`,t]})},onTaskMetadataChanged(n,i,a){let o=async()=>{(a===`turn_completed`||a===`native_notification`)&&await Promise.all([r.invalidateQueries({exact:!0,queryKey:[`projects`,n,`tasks`]}),r.invalidateQueries({exact:!0,queryKey:[`projects`,n,`tasks`,At]}),r.invalidateQueries({exact:!0,queryKey:[`projects`,n,`tasks`,F]}),r.invalidateQueries({queryKey:re})]),r.removeQueries({exact:!0,queryKey:[`projects`,n,`tasks`,i]});let e=await t.readTask(n,i);l.reconcileTaskSnapshot(e),a===`turn_completed`&&e.snapshot.status===`idle`&&await mn(r,e.snapshot),Sn(r,e.snapshot,{assistantReplyStarted:a===`assistant_reply_started`})},s=`${n}\u0000${i}`,c=(e.get(s)??Promise.resolve()).catch(()=>void 0).then(o);e.set(s,c);let u=()=>{e.get(s)===c&&e.delete(s)};c.then(u,u)}})},[t,c,r,n]),[u,d]=(0,Y.useState)(!1),[f,p]=(0,Y.useState)(()=>new Map),[h,g]=(0,Y.useState)(),[v,b]=(0,Y.useState)(()=>new Set),x=(0,Y.useSyncExternalStore)((0,Y.useCallback)(e=>l.subscribeTaskActivity(e),[l]),(0,Y.useCallback)(()=>l.getTaskActivity(),[l]),(0,Y.useCallback)(()=>l.getTaskActivity(),[l])),S=_(Rn(t)),C=_(Jn(t)),{isPending:w,mutateAsync:T}=y(Yn(t)),{isPending:E,mutateAsync:D}=y(In(t)),{isPending:ee,mutateAsync:O}=y(Ln(t)),k=(0,Y.useRef)(wr()),A=(0,Y.useRef)(wr()),j=(0,Y.useRef)(wr()),M=C.data?.data??Mi,N=(0,Y.useMemo)(()=>{let e=new Set(v);return h!==void 0&&e.add(h),e},[h,v]),P=(0,Y.useMemo)(()=>M.filter(e=>N.has(e.id)),[M,N]),te=(0,Y.useMemo)(()=>[W,...P.map(e=>e.id)],[P]),I=(0,Y.useRef)(f);I.current=f;let ne=(0,Y.useCallback)((e,t)=>{l.rememberTaskTitles(t.tasks),p(n=>{let r=n.get(e);if(r?.tasks===t.tasks&&r.state.error===t.state.error&&r.state.hasNextPage===t.state.hasNextPage&&r.state.isFetchingNextPage===t.state.isFetchingNextPage&&r.state.isPending===t.state.isPending)return n;let i=new Map(n);return i.set(e,t),i})},[l]),ie=(0,Y.useCallback)(e=>{p(t=>{if(!t.has(e))return t;let n=new Map(t);return n.delete(e),n})},[]),{projectTaskStates:L,tasks:ae}=(0,Y.useMemo)(()=>_r(te,f),[f,te]),oe=(0,Y.useCallback)(async e=>{await dr(new Map([...I.current].map(([e,t])=>[e,t.controller])),e)},[]),R=C.isPending,se=(0,Y.useCallback)((e,t)=>{l.markTaskRunning(e,t)},[l]),z=(0,Y.useCallback)((e,t)=>{l.forgetTask(e,t)},[l]),ce=(0,Y.useCallback)((e,t)=>{g(t=>t===e?t:e),l.viewTask(e,t)},[l]),B=(0,Y.useCallback)(e=>{b(t=>t.size===e.size&&[...t].every(t=>e.has(t))?t:new Set(e))},[]),le=(0,Y.useCallback)(()=>{l.requestNotificationPermission()},[l]),ue=(0,Y.useCallback)(e=>k.current.run(async()=>{d(!0);try{let n=await t.addProject(e);return r.setQueryData([`projects`],n.projects),yi(),n.project}catch(e){Q(e);return}finally{d(!1)}}),[t,r]),de=(0,Y.useCallback)(async e=>await j.current.run(async()=>{let t=r.getQueryData([`projects`]),n=An(t,e);if(n===void 0)return Q(Error(q.t(`errors.reorderProjectChanged`,{ns:`conversation`}))),!1;r.setQueryData([`projects`],n);try{let t=await T(e);return r.setQueryData([`projects`],t),!0}catch{return r.setQueryData([`projects`],t),!1}})??!1,[T,r]),fe=(0,Y.useCallback)(async(e,t)=>await A.current.run(async()=>{try{let n=await D({name:t,projectId:e});return r.setQueryData([`projects`],n.projects),!0}catch{return!1}})??!1,[D,r]),pe=(0,Y.useCallback)(e=>A.current.run(async()=>{try{let t=await O(e);await r.cancelQueries({queryKey:[`projects`,e]}),r.removeQueries({queryKey:[`projects`,e]}),c.forgetProject(e),l.forgetProject(e);let n=t.projects.data;return a(t=>{if(!t.has(e))return t;let n=new Map(t);return n.delete(e),n}),r.setQueryData([`projects`],t.projects),n}catch{return}}),[c,O,l,r]),V=(0,Y.useCallback)(async(e,t)=>{try{await c.refreshProject(e,t),yi()}catch(e){Q(e)}},[c]),me=(0,Y.useCallback)(async()=>{await r.invalidateQueries()},[r]);(0,Y.useEffect)(()=>()=>{l.dispose(),c.dispose()},[c,l]);let he=(0,Y.useMemo)(()=>({capabilities:S.data,client:t,error:S.error??C.error,isPending:R,projectTaskStates:L,projects:M,tasks:ae}),[S.data,S.error,t,R,L,M,C.error,ae]),H=(0,Y.useMemo)(()=>({addProject:ue,fetchNextProjectTaskPage:oe,forgetTask:z,markTaskRunning:se,projectRuntime:l,refreshProjectGitStatus:V,removeProject:pe,renameProject:fe,reorderProjects:de,requestNotificationPermission:le,retry:me,setExpandedProjectTaskIds:B,viewTask:ce}),[ue,oe,z,se,l,V,pe,fe,de,le,me,B,ce]),U=(0,Y.useMemo)(()=>({isProjectActionPending:E||ee,isProjectOrderPending:w,isProjectAddPending:u,taskActivity:x}),[u,w,ee,E,x]),ge=(0,Y.useMemo)(()=>({selectedRootIds:i,setSelectedProjectRoot:s}),[i,s]);return(0,$.jsx)(ji,{actions:H,activity:U,client:t,data:he,onRemoveTaskQuery:ie,onUpdateTaskQuery:ne,projects:P,rootSelection:ge,children:e})}function Pi(){return n(()=>import(`./global-settings-page-t1WBVqHm.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))}var Fi={error:null,loading:!0,pairing:!1},Ii=class{#e;#t=new Set;#n;#r=0;#i=Fi;#a;constructor(e,t){this.#e=e,this.#n=t}getSnapshot=()=>this.#i;subscribe=e=>(this.#t.add(e),()=>this.#t.delete(e));start(){this.#a===void 0&&(this.#a=this.#e.subscribeUnauthorized(()=>{this.#r+=1,this.#o()}),this.load())}stop(){this.#r+=1,this.#a?.(),this.#a=void 0}async load(){let e=this.#r+=1;this.#s({...this.#i,error:null,loading:!0});try{let t=await this.#e.getAccessStatus();e===this.#r&&this.#s({error:null,loading:!1,pairing:!1,status:t})}catch{e===this.#r&&this.#s({...this.#i,error:`load`,loading:!1})}}async pair(e){this.#s({...this.#i,error:null,pairing:!0});try{let t=await this.#e.pairAccess(e);this.#s({error:null,loading:!1,pairing:!1,status:t}),yi()}catch(e){this.#s({...this.#i,error:null,pairing:!1}),Q(e)}}async logout(){try{let e=await this.#e.logoutAccess();this.#n.clear(),this.#s({error:null,loading:!1,pairing:!1,status:e}),yi()}catch(e){throw Q(e),e}}#o(){this.#n.clear(),this.#s({error:null,loading:!1,pairing:!1,status:{authenticated:!1,mode:`lan`,version:1}})}#s(e){this.#i=e;for(let e of this.#t)e()}},Li=(0,Y.createContext)(void 0);function Ri({children:e,client:t,queryClient:n}){let[r]=(0,Y.useState)(()=>new Ii(t,n)),i=(0,Y.useSyncExternalStore)(r.subscribe,r.getSnapshot,r.getSnapshot);(0,Y.useEffect)(()=>(r.start(),()=>{r.stop()}),[r]);let a=(0,Y.useMemo)(()=>({...i,logout:()=>r.logout(),pair:e=>r.pair(e),retry:()=>{r.load()}}),[r,i]);return(0,$.jsx)(Li.Provider,{value:a,children:e})}function zi(){let e=(0,Y.useContext)(Li);if(e===void 0)throw Error(`useAccess must be used inside AccessProvider`);return e}function Bi(){return(0,Y.useContext)(Li)?.status?.mode===`lan`}function Vi({onRetry:e}){let{t}=K(`common`);return(0,$.jsx)(`section`,{className:`grid min-h-0 flex-1 place-items-center bg-content px-6 py-10 text-center`,"aria-labelledby":`runtime-unavailable-title`,children:(0,$.jsxs)(`div`,{className:`max-w-md`,children:[(0,$.jsx)(Re,{className:`mx-auto size-8 text-danger`,"aria-hidden":`true`,strokeWidth:1.6}),(0,$.jsx)(`h1`,{id:`runtime-unavailable-title`,className:`mt-4 text-xl font-semibold`,children:t(`errors.runtimeUnavailableTitle`)}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-muted-foreground`,children:(0,$.jsx)(ht,{components:{command:(0,$.jsx)(`code`,{className:`font-mono text-foreground`})},i18nKey:`errors.runtimeUnavailableDescription`,ns:`common`})}),(0,$.jsxs)(I,{className:`mx-auto mt-5`,onClick:e,size:`lg`,type:`button`,children:[(0,$.jsx)(et,{className:`size-4`,"aria-hidden":`true`}),t(`actions.retry`)]})]})})}function Hi(e){return e.filter(e=>e.pinned)}function Ui(e,t){return t||e.length<=5?{hasMore:!1,tasks:e}:{hasMore:!0,tasks:e.slice(0,5)}}function Wi(e){let t=Math.max(1,Math.floor((Date.now()-Date.parse(e))/6e4));if(t<60)return`${String(t)}m`;let n=Math.floor(t/60);return n<24?`${String(n)}h`:`${String(Math.floor(n/24))}d`}var Gi=class{buffer;changed=!1;initialSummary;constructor(e){this.initialSummary=e,this.buffer=new P(e??``)}get hasChanges(){return this.changed}append(e){this.buffer.append(e),this.changed=!0}read(){if(this.initialSummary!==void 0)return this.buffer.materialize()}getSnapshot(){return this.initialSummary===void 0?void 0:this.buffer.getSnapshot()}replace(e){this.buffer=new P(e??``),this.changed=!1,this.initialSummary=e}},Ki=`__CODEXLY_PENDING_COMMAND__`,qi=`__CODEXLY_RETAINED_COMMAND_OUTPUT__`,Ji=new TextEncoder().encode(qi).byteLength;function Yi(e){if(e.type!==`command`||e.output===`__CODEXLY_RETAINED_COMMAND_OUTPUT__`)return e;let t={...e};return delete t.output,t}function Xi(e){let t=Yi(e),n=new Map,r=0,i=e.type===`command`?-1:0,a=t,o=new Gi(e.type===`reasoning`?e.summary:void 0),s,c=e.type===`reasoning`?e.summary.length:0,l=e.type===`command`?new O(e.output,e.outputOmitted):void 0,u=J(t)+(l?.getView().outputBytes??0),d=D()(()=>({revision:0}));function f(e){let r=n.get(e);if(r===void 0){let i=t.type===`reasoning`?t.content:t.type===`message`||t.type===`plan`?t.text:``;r=new P(i),n.set(e,r)}return r}function p(e,t){e===`summary`?(o.append(t),c+=t.length):f(e).append(t),u+=Dt(t),r+=1}return Object.assign(d,{appendDelta(e){if(e.type===`message.delta`)return t.type!==`message`||t.role!==`assistant`?!1:(p(`text`,e.payload.delta),!0);if(e.type===`reasoning.delta`)return t.type===`reasoning`&&(e.payload.field===`summary`&&e.payload.sectionIndex!==void 0&&((s===void 0?e.payload.sectionIndex>0:e.payload.sectionIndex!==s)&&c>0&&p(`summary`,`
|
|
3
|
-
|
|
4
|
-
`),s=e.payload.sectionIndex),p(e.payload.field,e.payload.delta),!0);if(e.type===`plan.delta`)return t.type===`plan`&&(p(`plan`,e.payload.delta),!0);if(t.type!==`command`)return!1;let n=l?.getView().outputBytes??0;return l?.append(e.payload.delta),u+=(l?.getView().outputBytes??0)-n,r+=1,!0},getRetainedBytes:()=>u,peek:()=>t,publish(){d.setState(e=>({revision:e.revision+1}))},read(){if(i===r)return a;let e=t;if(t.type===`message`){let r=n.get(`text`);r!==void 0&&(e={...t,text:r.materialize()})}else if(t.type===`reasoning`){let r=n.get(`content`);(r!==void 0||o.hasChanges)&&(e={...t,content:r===void 0?t.content:r.materialize(),summary:o.read()??t.summary})}else if(t.type===`command`){let n=l?.getView();n!==void 0&&(e={...t,...n.hasOutput?{output:n.materialize()}:{},outputOmitted:n.outputOmitted})}else if(t.type===`plan`){let r=n.get(`plan`);r!==void 0&&(e={...t,text:r.materialize()})}return a=e,i=r,a},readCommandOutput(){return l?.getView()},readReasoningSummary:()=>o.read(),readText(){if(t.type===`reasoning`)return o.getSnapshot();if(t.type===`plan`)return f(`plan`).getSnapshot();if(t.type===`message`)return f(`text`).getSnapshot()},replace(e){t=Yi(e),n.clear(),o.replace(e.type===`reasoning`?e.summary:void 0),s=void 0,c=e.type===`reasoning`?e.summary.length:0,l=e.type===`command`?new O(e.output,e.outputOmitted):void 0,u=J(t)+(l?.getView().outputBytes??0),r+=1}})}function Zi(e,t){return e.itemStoresByKey.get(t)?.read()}function Qi(e){let{pendingRequests:t,turns:n,turnsNextCursor:r,...i}=e.snapshot,a=[],o={},s={},c=new Map;for(let e of n){let{items:t,...n}=e;a.push(e.id),o[e.id]=n,s[e.id]=t.map(t=>B(e.id,t.id));for(let n of t){let t=B(e.id,n.id);c.set(t,Xi(n))}}let l={pendingRequestIds:[],pendingRequestsById:{}};for(let e of t)l=te(l,e);let{budget:u}=$i({previousBudget:{commandOutputAccessByItemKey:new Map,commandOutputAccessSequence:0,commandOutputBytes:0,commandOutputBytesByItemKey:new Map},sourceItemStoresByKey:c,touchedItemKeys:[...c.keys()]}),d=J(e.checkpoint)+J(i)+J(r);for(let e of a){d+=J(o[e]);for(let t of s[e]??[])d+=c.get(t)?.getRetainedBytes()??0}for(let e of l.pendingRequestIds)d+=J(l.pendingRequestsById[e]);return{checkpoint:e.checkpoint,...u,itemKeysByTurnId:s,itemStoresByKey:c,itemStructureRevision:0,notices:[],...l,retainedBytes:d,snapshotMetadata:i,turnIds:a,turnsNextCursor:r,turnsById:o}}function $i(e){let t=e.previousBudget.commandOutputAccessByItemKey,n=e.previousBudget.commandOutputBytesByItemKey,r=e.previousBudget.commandOutputAccessSequence,i=e.previousBudget.commandOutputBytes,a=new Map;for(let a of new Set(e.touchedItemKeys)){let o=n.get(a)??0,s=e.sourceItemStoresByKey.get(a)?.readCommandOutput();if(!s?.hasOutput){t.delete(a),n.delete(a),i-=o;continue}r+=1,t.set(a,r),n.set(a,s.outputBytes),i+=s.outputBytes-o}if(i<=8388608)return{budget:{commandOutputAccessByItemKey:t,commandOutputAccessSequence:r,commandOutputBytes:i,commandOutputBytesByItemKey:n},retainedBytesDeltaByItemKey:a};let o=[...t.keys()].toSorted((e,n)=>(t.get(e)??0)-(t.get(n)??0));for(let t of o){if(i<=8388608)break;let r=e.sourceItemStoresByKey.get(t),o=r?.peek();if(r===void 0||o?.type!==`command`)continue;let s=n.get(t)??0,c=r.getRetainedBytes(),l=r.readCommandOutput();r.replace({...o,output:qi,outputOmitted:{bytes:(l?.outputOmitted.bytes??o.outputOmitted.bytes)+s,lines:(l?.outputOmitted.lines??o.outputOmitted.lines)+(l?.outputLines??0)}}),e.changedItemStores?.add(r),n.set(t,Ji),i-=s-Ji,a.set(t,r.getRetainedBytes()-c)}return{budget:{commandOutputAccessByItemKey:t,commandOutputAccessSequence:r,commandOutputBytes:i,commandOutputBytesByItemKey:n},retainedBytesDeltaByItemKey:a}}function ea(e,t,n){let r=new Map;for(let e of t)if(e.type===`message`)for(let t of e.identityAliases??[])r.set(t,e);let i=t.find(e=>e.type===`message`&&e.role===`user`);i!==void 0&&r.set(`submitted-user-${n}`,i);let a=new Set;return e.flatMap(e=>{let t=r.get(e.id)??e;return a.has(t.id)?[]:(a.add(t.id),[t])})}function ta(e,t,n){let r=e.itemKeysByTurnId[t]??[];if(n.type!==`message`||!n.identityAliases?.length)return r;let i=B(t,n.id),a=new Set(n.identityAliases.filter(e=>e!==n.id).map(e=>B(t,e)));for(let t of a)e.itemStoresByKey.delete(t);return[...new Set(r.map(e=>a.has(e)?i:e))]}function na(e,t){if(e===void 0)return t;if(t===void 0)return e;let n={...e};for(let[r,i]of Object.entries(t))n[r]={...e[r],...i};return n}function ra(e,t){let n=na(e?.itemTimings,t.itemTimings);return n===void 0?t:{...t,itemTimings:n}}function ia(e,t){if(t.payload.item.type!==`command`&&t.payload.item.type!==`tool`&&t.payload.item.type!==`file_change`)return e;let n=Date.parse(t.timestamp);if(!Number.isFinite(n))return e;let r=e.itemTimings?.[t.itemId],i=t.type===`item.started`?{...r,startedAtMs:r?.startedAtMs??n}:{...r,completedAtMs:n};return{...e,itemTimings:{...e.itemTimings,[t.itemId]:i}}}function aa(e){switch(e.type){case`message.delta`:return{id:e.itemId,role:`assistant`,text:``,type:`message`};case`reasoning.delta`:return{content:``,id:e.itemId,summary:``,type:`reasoning`};case`plan.delta`:return{id:e.itemId,text:``,type:`plan`};case`command.output_delta`:return{command:Ki,cwd:``,id:e.itemId,output:``,outputOmitted:{bytes:0,lines:0},status:`running`,type:`command`};default:return}}function oa(e,t,n,r){let i=e.itemKeysByTurnId[t]??[],a=new Set(n.map(e=>B(t,e.id)));for(let t of i)a.has(t)||e.itemStoresByKey.delete(t);for(let i of n){let n=B(t,i.id),a=e.itemStoresByKey.get(n);a===void 0?e.itemStoresByKey.set(n,Xi(i)):(a.replace(i),r.add(a))}return{itemKeysByTurnId:{...e.itemKeysByTurnId,[t]:[...a]}}}function sa(e,t,n){let r=ea((e.itemKeysByTurnId[t]??[]).flatMap(t=>{let n=Zi(e,t);return n===void 0?[]:[n]}),n,t),i=new Set(r.map(e=>e.id)),a=new Map(n.map(e=>[e.id,e])),o=new Map,s=[];for(let e of n){if(!i.has(e.id)){s.push(e);continue}s.length>0&&(o.set(e.id,s),s=[])}return[...r.flatMap(e=>[...o.get(e.id)??[],a.get(e.id)??e]),...s]}function ca(e,t,n){let r=e.snapshotMetadata;if(r===null)return{};let i={sequence:t.sequence,sessionId:t.sessionId};switch(t.type){case`project.git_metadata_changed`:return{};case`turn.started`:{let{items:a,...o}=t.payload.turn;return{checkpoint:i,...oa(e,t.turnId,a,n),snapshotMetadata:{...r,status:`running`,updatedAt:t.timestamp},itemStructureRevision:e.itemStructureRevision+1,turnIds:[...e.turnIds.filter(e=>e!==t.turnId),t.turnId],turnsById:{...e.turnsById,[t.turnId]:ra(e.turnsById[t.turnId],o)}}}case`message.delta`:case`plan.delta`:case`reasoning.delta`:case`command.output_delta`:{let a=e.turnsById[t.turnId];if(a===void 0)return{checkpoint:i,snapshotMetadata:{...r,updatedAt:t.timestamp}};let o=a.status===`running`&&a.error!==null?{...e.turnsById,[t.turnId]:{...a,error:null}}:e.turnsById,s=B(t.turnId,t.itemId),c=e.itemStoresByKey.get(s);if(c!==void 0)return c.appendDelta(t)&&n.add(c),{checkpoint:i,snapshotMetadata:{...r,updatedAt:t.timestamp},turnsById:o};let l=aa(t);if(l===void 0)return{checkpoint:i};let u=Xi(l);return u.appendDelta(t),e.itemStoresByKey.set(s,u),n.add(u),{checkpoint:i,itemKeysByTurnId:{...e.itemKeysByTurnId,[t.turnId]:[...e.itemKeysByTurnId[t.turnId]??[],s]},itemStructureRevision:e.itemStructureRevision+1,snapshotMetadata:{...r,updatedAt:t.timestamp},turnsById:o}}case`tool.progress`:{let a=B(t.turnId,t.itemId),o=e.itemStoresByKey.get(a);if(o===void 0)return{checkpoint:i,snapshotMetadata:{...r,updatedAt:t.timestamp}};let s=o.read();return s.type===`tool`?(o.replace({...s,progress:t.payload.message}),n.add(o),{checkpoint:i,snapshotMetadata:{...r,updatedAt:t.timestamp}}):{checkpoint:i}}case`file_change.updated`:{let a=B(t.turnId,t.itemId),o=e.itemStoresByKey.get(a);if(o!==void 0){let e=o.read();return e.type===`file_change`?(o.replace({...e,changes:t.payload.changes,status:`running`}),n.add(o),{checkpoint:i,snapshotMetadata:{...r,updatedAt:t.timestamp}}):{checkpoint:i}}if(e.turnsById[t.turnId]===void 0)return{checkpoint:i};let s=Xi({changes:t.payload.changes,id:t.itemId,status:`running`,type:`file_change`});return e.itemStoresByKey.set(a,s),n.add(s),{checkpoint:i,itemKeysByTurnId:{...e.itemKeysByTurnId,[t.turnId]:[...e.itemKeysByTurnId[t.turnId]??[],a]},itemStructureRevision:e.itemStructureRevision+1,snapshotMetadata:{...r,updatedAt:t.timestamp}}}case`task.notice`:{if(t.payload.code===`guardian_warning`)return{checkpoint:i,snapshotMetadata:{...r,updatedAt:t.timestamp}};let n=[...e.notices,t],a=n.filter(e=>e.payload.code!==`runtime_warning`),o=new Set(a.slice(0,-20));return{checkpoint:i,notices:n.filter(e=>!o.has(e)),snapshotMetadata:{...r,updatedAt:t.timestamp}}}case`mcp_server.status_updated`:return{checkpoint:i};case`goal.updated`:return{checkpoint:i,snapshotMetadata:{...r,goal:t.payload.goal,updatedAt:t.timestamp}};case`goal.cleared`:return{checkpoint:i,snapshotMetadata:{...r,goal:null,updatedAt:t.timestamp}};case`queue.changed`:return{checkpoint:i};case`task.status_updated`:return{checkpoint:i,snapshotMetadata:{...r,status:t.payload.status,updatedAt:t.timestamp}};case`skills.changed`:case`task.metadata_changed`:case`task.removed`:return{checkpoint:i};case`item.started`:case`item.completed`:{let a=e.turnsById[t.turnId];if(a===void 0)return{checkpoint:i,snapshotMetadata:{...r,updatedAt:t.timestamp}};let o=B(t.turnId,t.itemId),s=e.itemStoresByKey.get(o),c=ta(e,t.turnId,t.payload.item),l=c.includes(o),u=`submitted-user-${t.turnId}`,d=B(t.turnId,u),f=t.payload.item.type===`message`&&t.payload.item.role===`user`&&c.includes(d),p=f?c.filter(e=>e!==d).concat(l?[]:o):l?c:[...c,o];f&&e.itemStoresByKey.delete(d),s===void 0?e.itemStoresByKey.set(o,Xi(t.payload.item)):(s.replace(t.payload.item),n.add(s));let m=ia(a,t);return{checkpoint:i,itemKeysByTurnId:p===e.itemKeysByTurnId[t.turnId]?e.itemKeysByTurnId:{...e.itemKeysByTurnId,[t.turnId]:p},itemStructureRevision:e.itemStructureRevision+1,snapshotMetadata:{...r,updatedAt:t.timestamp},...m===a?{}:{turnsById:{...e.turnsById,[t.turnId]:m}}}}case`turn.completed`:{let a=e.turnsById[t.turnId],o=a?.status===`failed`?a.error:null,s=t.payload.turn.error===null&&o!==null?{...t.payload.turn,error:o}:t.payload.turn,{items:c,...l}=s,u=sa(e,t.turnId,c);return{checkpoint:i,...a===void 0?{}:oa(e,t.turnId,u,n),notices:e.notices.filter(e=>e.payload.code===`runtime_warning`),snapshotMetadata:{...r,status:s.status===`failed`?`failed`:`idle`,updatedAt:t.timestamp},itemStructureRevision:e.itemStructureRevision+1,turnsById:a===void 0?e.turnsById:{...e.turnsById,[t.turnId]:ra(a,l)}}}case`plan.updated`:return{checkpoint:i,snapshotMetadata:{...r,plan:t.payload.plan,updatedAt:t.timestamp}};case`usage.updated`:return{checkpoint:i,snapshotMetadata:{...r,contextUsage:t.payload.usage,updatedAt:t.timestamp}};case`provider.error`:{let n=e.turnsById[t.turnId],a=n===void 0?e.turnsById:{...e.turnsById,[t.turnId]:{...n,error:t.payload.message,status:t.payload.willRetry?n.status:`failed`}};return{checkpoint:i,snapshotMetadata:t.payload.willRetry?r:{...r,status:`failed`,updatedAt:t.timestamp},turnsById:a}}case`pending_request.created`:case`pending_request.resolved`:case`pending_request.expired`:{let n=t.payload.request;return{checkpoint:i,...te(e,n),snapshotMetadata:{...r,updatedAt:t.timestamp}}}}}function la(e){if(e.snapshotMetadata!==null)return{...e.snapshotMetadata,pendingRequests:e.pendingRequestIds.flatMap(t=>{let n=e.pendingRequestsById[t];return n?.status===`pending`?[n]:[]}),turnsNextCursor:e.turnsNextCursor,turns:e.turnIds.flatMap(t=>{let n=e.turnsById[t];if(n===void 0)return[];let r=(e.itemKeysByTurnId[t]??[]).flatMap(t=>{let n=Zi(e,t);return n===void 0?[]:[n]});return[{...n,items:r}]})}}function ua(e,t){let n=new Map(t.items.map(e=>[e.id,e]));return[...ea(e.items,t.items,e.id).map(e=>{let t=n.get(e.id);return n.delete(e.id),t??e}),...n.values()]}function da(e,t){if(e.checkpoint!==null&&e.checkpoint.sessionId!==t.checkpoint.sessionId)return t;let n=la(e);return n===void 0?t:{...t,snapshot:{...t.snapshot,...le(n,t.snapshot,(e,t)=>{let n=na(e.itemTimings,t.itemTimings);return{...t,...n===void 0?{}:{itemTimings:n},items:ua(e,t)}})}}}function fa(e,t){let n=t===void 0?{checkpoint:null,commandOutputAccessByItemKey:new Map,commandOutputAccessSequence:0,commandOutputBytesByItemKey:new Map,commandOutputBytes:0,itemKeysByTurnId:{},itemStoresByKey:new Map,itemStructureRevision:0,notices:[],pendingRequestIds:[],pendingRequestsById:{},retainedBytes:0,snapshotMetadata:null,turnIds:[],turnsNextCursor:null,turnsById:{}}:Qi(t);if(t!==void 0&&(t.snapshot.projectId!==e.projectId||t.snapshot.id!==e.taskId))throw Error(`Task store identity does not match the initial snapshot`);return D()((t,r)=>({...n,applyEvents(e){if(e.length===0)return;let n=new Set;t(t=>{let r=t;for(let t of e){if(!A(r.taskId,r.checkpoint,t))continue;let e=r,i=ma(e,t),a=ga(e,t);r={...r,...ca(r,t,n)};let o=ce(e,r,t),s=new Map;if(o!==void 0){let t=$i({previousBudget:e,changedItemStores:n,sourceItemStoresByKey:r.itemStoresByKey,touchedItemKeys:o});({retainedBytesDeltaByItemKey:s}=t),r={...r,...t.budget}}let c=new Set([...a.keys(),...ha(r,t)]),l=_a(r,c)-va(a),u=[...s].reduce((e,[t,n])=>e+(c.has(t)?0:n),0);r={...r,retainedBytes:r.retainedBytes+ma(r,t)-i+l+u}}return r});for(let e of n)e.publish()},connectionState:`connecting`,error:null,hydrate(n){if(n.snapshot.projectId!==e.projectId||n.snapshot.id!==e.taskId)throw Error(`Task store identity does not match the snapshot`);t(e=>{let t=Qi(n),r=e.checkpoint?.sessionId===n.checkpoint.sessionId?e.notices.filter(e=>e.payload.code===`runtime_warning`):[];return{...t,notices:r,retainedBytes:t.retainedBytes+r.reduce((e,t)=>e+J(t),0),itemStructureRevision:e.itemStructureRevision+1,connectionState:`connecting`,error:null}})},projectId:e.projectId,prependHistory(n){if(n.snapshot.projectId!==e.projectId||n.snapshot.id!==e.taskId)throw Error(`Task store identity does not match the history page`);let r=new Set;t(e=>pa(e,n,r));for(let e of r)e.publish()},reconcile(n){if(n.snapshot.projectId!==e.projectId||n.snapshot.id!==e.taskId)throw Error(`Task store identity does not match the snapshot`);t(e=>{let t=e.checkpoint;if(t!==null&&t.sessionId===n.checkpoint.sessionId&&t.sequence>n.checkpoint.sequence)return e;let r=Qi(da(e,n)),i=t?.sessionId===n.checkpoint.sessionId?e.notices.filter(e=>e.payload.code===`runtime_warning`):[];return{...r,notices:i,retainedBytes:r.retainedBytes+i.reduce((e,t)=>e+J(t),0),itemStructureRevision:e.itemStructureRevision+1,connectionState:`connecting`,error:null}})},getItem:(e,t)=>r().itemStoresByKey.get(B(t,e))?.read(),getItemByKey:e=>r().itemStoresByKey.get(e)?.read(),reconstructSnapshot:()=>la(r()),setConnectionState(e){t({connectionState:e})},setError(e){t({error:e})},setTaskSettings(e){t(t=>t.snapshotMetadata===null?t:{snapshotMetadata:{...t.snapshotMetadata,settings:e}})},taskId:e.taskId}))}function pa(e,t,n){let r=Qi(t),i=r.turnIds.filter(t=>e.turnsById[t]===void 0),a=new Set(i.flatMap(e=>r.itemKeysByTurnId[e]??[])),o=new Map(e.itemStoresByKey);for(let e of a){let t=r.itemStoresByKey.get(e);t!==void 0&&o.set(e,t)}let s={...e.itemKeysByTurnId},c={...e.turnsById};for(let e of i){s[e]=r.itemKeysByTurnId[e]??[];let t=r.turnsById[e];t!==void 0&&(c[e]=t)}let{budget:l,retainedBytesDeltaByItemKey:u}=$i({previousBudget:{commandOutputAccessByItemKey:new Map,commandOutputAccessSequence:0,commandOutputBytes:0,commandOutputBytesByItemKey:new Map},changedItemStores:n,sourceItemStoresByKey:o,touchedItemKeys:[...a,...e.itemStoresByKey.keys()]}),d=e.retainedBytes-J(e.turnsNextCursor)+J(t.snapshot.turnsNextCursor);for(let e of i){d+=J(c[e]);for(let t of s[e]??[])d+=o.get(t)?.getRetainedBytes()??0}for(let[e,t]of u)a.has(e)||(d+=t);return{...e,...l,checkpoint:e.checkpoint??t.checkpoint,itemKeysByTurnId:s,itemStoresByKey:o,itemStructureRevision:e.itemStructureRevision+1,retainedBytes:d,turnIds:[...i,...e.turnIds],turnsNextCursor:t.snapshot.turnsNextCursor,turnsById:c}}function ma(e,t){let n=0;if((t.type===`turn.started`||t.type===`turn.completed`||t.type===`provider.error`)&&(n+=J(e.turnsById[t.turnId])),(t.type===`task.notice`||t.type===`turn.completed`)&&(n+=e.notices.reduce((e,t)=>e+J(t),0)),(t.type===`goal.updated`||t.type===`goal.cleared`||t.type===`plan.updated`||t.type===`provider.error`||t.type===`task.status_updated`||t.type===`turn.started`||t.type===`turn.completed`||t.type===`usage.updated`)&&(n+=J(e.snapshotMetadata)),t.type===`pending_request.created`||t.type===`pending_request.resolved`||t.type===`pending_request.expired`)for(let t of e.pendingRequestIds)n+=J(e.pendingRequestsById[t]);return n}function ha(e,t){if(t.type===`turn.started`||t.type===`turn.completed`)return e.itemKeysByTurnId[t.turnId]??[];if(!(`itemId`in t)||!(`turnId`in t))return[];let n=[B(t.turnId,t.itemId)];if(t.type===`item.started`||t.type===`item.completed`){let r=(e.itemKeysByTurnId[t.turnId]??[]).at(-1);r!==void 0&&n.push(r),n.push(B(t.turnId,`submitted-user-${t.turnId}`))}return n}function ga(e,t){return new Map(ha(e,t).map(t=>[t,e.itemStoresByKey.get(t)?.getRetainedBytes()??0]))}function _a(e,t){let n=0;for(let r of t)n+=e.itemStoresByKey.get(r)?.getRetainedBytes()??0;return n}function va(e){let t=0;for(let n of e.values())t+=n;return t}function ya(e={}){return new ke({...e,createStore:e.createStore??fa})}var ba=ya({maxRetainedStores:20}),xa=fa({projectId:``,taskId:``});function Sa(e,t,n){let r=m(),i=n.client,a=`${e}\u0000${t??``}`,[o,s]=(0,Y.useState)({error:null,isPending:t!==void 0,scope:a}),[c,l]=(0,Y.useState)(),[u,d]=(0,Y.useState)(!1),[f,p]=(0,Y.useState)(null),h=(0,Y.useRef)(null),g=c??xa,_=E(g,e=>e.turnIds.findLast(t=>e.turnsById[t]?.status===`running`)),v=E(g,e=>e.connectionState),y=E(g,e=>e.error),b=E(g,e=>e.snapshotMetadata??void 0),x=E(g,e=>e.itemStructureRevision),S=E(g,e=>e.turnsNextCursor);(0,Y.useEffect)(()=>{h.current=null,d(!1),p(null)},[e,t]),(0,Y.useEffect)(()=>{if(t===void 0){l(void 0);return}let n=ba.acquire(e,t);return l(n),()=>{ba.release(e,t)}},[e,t]),(0,Y.useEffect)(()=>{if(c===void 0||t===void 0)return;let o=c.getState();if(o.projectId!==e||o.taskId!==t)return;let l=new AbortController,u=cr(e,t,i).queryKey,d,f=!1;s({error:null,isPending:!0,scope:a});let p=Ca(r,u);return(p===void 0?i.readTask(e,t,{signal:l.signal}):Promise.resolve(p)).then(o=>{f||(o.snapshot.workspacePath!==void 0&&r.setQueryData([`projects`,e,`task-workspace-paths`,t],o.snapshot.workspacePath),d=n.attachTaskStore(o,c,()=>i.readTask(e,t)),r.removeQueries({exact:!0,queryKey:u}),s({error:null,isPending:!1,scope:a}))}).catch(e=>{!f&&!l.signal.aborted&&s({error:e instanceof Error?e:Error(String(e)),isPending:!1,scope:a})}),()=>{f=!0,l.abort(),d?.()}},[i,e,n,r,c,t,a]);let C=c===void 0?void 0:Ta(c,e,t),w=(0,Y.useCallback)(async()=>{if(C===void 0||t===void 0||S===null||h.current!==null)return;let n={};h.current=n,d(!0),p(null);try{let n=await i.readTask(e,t,{cursor:S});C.getState().prependHistory(n)}catch(e){h.current===n&&p(e instanceof Error?e:Error(String(e)))}finally{h.current===n&&(h.current=null,d(!1))}},[C,i,e,t,S]),T=C?.getState().snapshotMetadata!==null,D=o.scope===a?o.error:null,ee=t!==void 0&&(o.scope!==a||o.isPending),O=C===void 0||!T?D:v===`closed`?y:null,k=(0,Y.useCallback)(()=>C?.getState().reconstructSnapshot(),[C]),A=Ea({error:O,hasActiveRuntime:C!==void 0,hasHydratedSnapshot:T,snapshotPending:ee});return(0,Y.useMemo)(()=>({activeTurnId:_,connectionState:C===void 0?`connecting`:v,error:O,hasOlderHistory:S!==null,isLoadingOlderHistory:u,isPending:A,itemStructureRevision:x,loadOlderHistory:w,metadata:b,olderHistoryError:f,readSnapshot:k,store:C}),[C,_,v,O,u,A,x,w,b,f,k,S])}function Ca(e,t){let n=e.getQueryData(t);return n!==void 0&&e.removeQueries({exact:!0,queryKey:t}),n}function wa(e,t){return ba.remove(e,t)}function Ta(e,t,n){let r=e?.getState();return n!==void 0&&r?.projectId===t&&r.taskId===n?e:void 0}function Ea(e){return e.error!==null||e.hasHydratedSnapshot?!1:e.snapshotPending||!e.hasActiveRuntime}var Da=8;function Oa(e,t,n,r){if(t===n||!e.includes(t))return e;let i=e.filter(e=>e!==t),a=i.indexOf(n);if(a===-1)return e;let o=r===`after`?a+1:a;return i.toSpliced(o,0,t)}function ka(e,t,n){let r=e.indexOf(t),i=r+n;return r===-1||i<0||i>=e.length?e:e.toSpliced(r,1).toSpliced(i,0,t)}function Aa(e,t){if(t===null)return e;let n=new Map(e.map(e=>[e.id,e])),r=t.flatMap(e=>{let t=n.get(e);return t===void 0?[]:[t]}),i=new Set(r.map(e=>e.id));return[...r,...e.filter(e=>!i.has(e.id))]}function ja({disabled:e=!1,onReorder:t,projects:n}){let{t:r}=K(`conversation`),[i,a]=(0,Y.useState)(null),[o,s]=(0,Y.useState)(``),[c,l]=(0,Y.useState)(null),u=(0,Y.useRef)(null),d=(0,Y.useRef)(null),f=Aa(n,c),p=(0,Y.useRef)(f);p.current=f;let m=e=>{let t=u.current;t!==null&&(t.removeGlobalListeners(),e&&t.element.hasPointerCapture(t.pointerId)&&t.element.releasePointerCapture(t.pointerId),u.current=null)};(0,Y.useEffect)(()=>()=>{m(!1)},[]);let h=async(e,i)=>{let a=await t(e);if(l(null),a){let t=n.find(e=>e.id===i),a=e.indexOf(i)+1;s(r(`reorder.moved`,{name:t?.name??r(`reorder.projectFallback`),position:a}))}},g=(t,n)=>{if(e||t.button!==0)return;m(!0),t.currentTarget.setPointerCapture(t.pointerId);let r=t.currentTarget,i=e=>{v(e.pointerId)},a=e=>{y(e.pointerId)},o={activated:!1,element:r,pointerId:t.pointerId,projectId:n,projectIds:p.current.map(e=>e.id),removeGlobalListeners:()=>{window.removeEventListener(`pointercancel`,a),window.removeEventListener(`pointerup`,i)},startClientX:t.clientX,startClientY:t.clientY};u.current=o,window.addEventListener(`pointercancel`,a),window.addEventListener(`pointerup`,i)},_=e=>{let t=u.current;if(t?.pointerId!==e.pointerId)return;let n=Math.hypot(e.clientX-t.startClientX,e.clientY-t.startClientY);if(!t.activated){if(n<=Da)return;t.activated=!0,t.element.hasPointerCapture(t.pointerId)&&t.element.releasePointerCapture(t.pointerId),l(t.projectIds),a(t.projectId),s(r(`reorder.started`))}e.preventDefault();let i=document.elementFromPoint(e.clientX,e.clientY)?.closest(`[data-project-reorder-id]`)??null;if(i===null)return;let o=i.dataset.projectReorderId;if(o===void 0)return;let c=i.getBoundingClientRect(),d=e.clientY<c.top+c.height/2?`before`:`after`;t.projectIds=Oa(t.projectIds,t.projectId,o,d),l(t.projectIds)},v=e=>{let t=u.current;if(t?.pointerId!==e)return;let n=t.activated;m(!0),n&&(d.current=t.projectId,a(null),h(t.projectIds,t.projectId))},y=e=>{u.current?.pointerId===e&&(m(!1),a(null),l(null),s(r(`reorder.cancelled`)))},b=e=>{v(e.pointerId)},x=e=>{y(e.pointerId)},S=(e,t)=>{d.current===t&&(d.current=null,e.preventDefault(),e.stopPropagation())},C=(t,n)=>{if(e||!t.altKey||t.key!==`ArrowUp`&&t.key!==`ArrowDown`)return;t.preventDefault();let r=p.current.map(e=>e.id),i=ka(r,n,t.key===`ArrowUp`?-1:1);i!==r&&(l(i),h(i,n))};return{activeProjectId:i,announcement:o,getProjectReorderProps:e=>({"aria-keyshortcuts":`Alt+ArrowUp Alt+ArrowDown`,"data-project-reorder-id":e,onClickCapture:t=>{S(t,e)},onKeyDown:t=>{C(t,e)},onPointerCancel:x,onPointerDown:t=>{g(t,e)},onPointerMove:_,onPointerUp:b,title:r(`reorder.title`)}),orderedProjects:f}}function Ma({actionLock:e,activeProjectId:t,activeTaskId:n}){let{client:r}=vr(),{forgetTask:i}=yr(),a=w(),o=m(),[s,c]=(0,Y.useState)(null),l=y(Fn(r));return{closeTaskDeletion:()=>{l.isPending||c(null)},confirmTaskDeletion:()=>{let u=s;return u===null?Promise.resolve(void 0):e.run(async()=>{try{let e=await l.mutateAsync({projectId:u.projectId,taskId:u.id});c(null),On(o,u.projectId,e.taskId,e.tasks),o.removeQueries({exact:!0,queryKey:[`projects`,u.projectId,`tasks`,u.id]}),i(u.projectId,u.id),wa(u.projectId,u.id),u.projectId===t&&u.id===n&&await(u.projectId===`temporary`?a({to:`/temporary`}):a({params:{projectId:u.projectId},to:`/p/$projectId`})),r.unsubscribeTask(u.projectId,u.id).catch(()=>void 0)}catch{}})},deletingTask:s,isDeletePending:l.isPending,requestTaskDeletion:c}}var Na=`(max-width: 760px)`,Pa=`(max-width: 1100px)`,Fa={default:288,maximum:400,minimum:220},Ia={default:320,minimum:320};function La(e){return typeof window>`u`||!window.matchMedia(e).matches}function Ra(e,t){return Math.max(Ia.minimum,Math.floor((e-t)/2))}function za({inspectorInitiallyOpen:e=!0}={}){let[t,n]=(0,Y.useState)(()=>La(Na)),[r,i]=(0,Y.useState)(()=>e&&La(`(max-width: 1100px)`)),[a,o]=(0,Y.useState)(Fa.default),[s,c]=(0,Y.useState)(Ia.default),[l,u]=(0,Y.useState)(()=>typeof window>`u`?1440:window.innerWidth),d=(0,Y.useRef)(null),f=Ra(l,t?a:0);return(0,Y.useLayoutEffect)(()=>{let e=d.current;if(e===null)return;let t=()=>{u(e.getBoundingClientRect().width)};t();let n=new ResizeObserver(t);return n.observe(e),()=>{n.disconnect()}},[]),(0,Y.useLayoutEffect)(()=>{c(e=>Math.min(e,f))},[f]),{inspectorMaximumWidth:f,inspectorOpen:r,inspectorWidth:s,setInspectorOpen:i,setInspectorWidth:c,setSidebarOpen:n,setSidebarWidth:o,sidebarOpen:t,sidebarWidth:a,workbenchShellRef:d}}function Ba(e,t){let n=v({select:e=>e.href}),r=(0,Y.useRef)(n),i=(0,Y.useCallback)(()=>{window.matchMedia(`(max-width: 760px)`).matches&&t()},[t]);return(0,Y.useEffect)(()=>{r.current!==n&&i(),r.current=n},[n,i]),(0,Y.useEffect)(()=>{let t=e.current,n=e=>{if(e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.target instanceof Element?e.target.closest(`a[href]`):null;t&&!t.hasAttribute(`target`)&&i()};return t?.addEventListener(`click`,n),()=>t?.removeEventListener(`click`,n)},[i,e]),i}var Va=`codexly:project-sidebar:expanded-projects:v1`,Ha=`codexly:project-sidebar:temporary-tasks-expanded:v1`;function Ua(){try{return typeof window>`u`?void 0:window.localStorage}catch{return}}function Wa(e){if(e===void 0)return null;try{let t=e.getItem(Va);if(t===null)return null;let n=JSON.parse(t);return Xa(n)?new Set(n.expandedProjectIds):null}catch{return null}}function Ga(e,t){if(e===void 0)return;let n={expandedProjectIds:[...t],version:1};try{e.setItem(Va,JSON.stringify(n))}catch{}}function Ka(e){if(e===void 0)return!0;try{let t=e.getItem(Ha);if(t===null)return!0;let n=JSON.parse(t);return!Za(n)||n.expanded}catch{return!0}}function qa(e,t){if(e===void 0)return;let n={expanded:t,version:1};try{e.setItem(Ha,JSON.stringify(n))}catch{}}function Ja(e,t){if(t===null){let t=e[0];return t===void 0?new Set:new Set([t])}return new Set(e.filter(e=>t.has(e)))}function Ya(e,t){let n=Ja(e,t);return e.find(e=>n.has(e))??e[0]}function Xa(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.version===1&&Array.isArray(t.expandedProjectIds)&&t.expandedProjectIds.every(e=>typeof e==`string`)}function Za(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.version===1&&typeof t.expanded==`boolean`}var Qa=new Set,$a=(0,Y.createContext)({expandedPaths:Qa,onSelect:void 0,selectedPath:void 0,togglePath:()=>void 0});function eo({children:e,className:t=``,defaultExpanded:n=Qa,expanded:r,onExpandedChange:i,onSelect:a,selectedPath:o,...s}){let[c,l]=(0,Y.useState)(()=>new Set(n)),u=r??c,d=(0,Y.useCallback)(e=>{let t=new Set(u);t.has(e)?t.delete(e):t.add(e),r===void 0&&l(t),i?.(t)},[r,u,i]),f=(0,Y.useMemo)(()=>({expandedPaths:u,onSelect:a,selectedPath:o,togglePath:d}),[u,a,o,d]);return(0,$.jsx)($a.Provider,{value:f,children:(0,$.jsx)(`div`,{className:`w-full font-mono text-label text-foreground ${t}`,"data-ai-file-tree":``,role:`tree`,...s,children:e})})}function to({className:e=``,...t}){return(0,$.jsx)(`span`,{className:`shrink-0 ${e}`,...t})}function no({className:e=``,...t}){return(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate ${e}`,...t})}function ro({children:e,className:t=``,name:n,path:r,selectionControl:i,trailing:a,...o}){let{expandedPaths:s,onSelect:c,selectedPath:l,togglePath:u}=(0,Y.useContext)($a),{t:d}=K(`conversation`),f=s.has(r),p=l===r,m=()=>{u(r),c?.(r)};return(0,$.jsxs)(`div`,{"aria-expanded":f,"aria-selected":p,className:t,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`ArrowRight`&&!f||e.key===`ArrowLeft`&&f?(e.preventDefault(),u(r)):(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),m()))},role:`treeitem`,tabIndex:0,...o,children:[(0,$.jsxs)(`div`,{className:`group/file-tree-node flex min-h-7 w-full items-center gap-1 rounded-control px-1.5 text-left transition-colors hover:bg-control-hover ${p?`bg-control`:``}`,children:[(0,$.jsx)(I,{"aria-label":d(f?`agentComponents.folderCollapse`:`agentComponents.folderExpand`,{name:n}),className:`inline-grid size-5 shrink-0 place-items-center rounded-control text-muted-foreground hover:text-foreground focus-visible:shadow-focus focus-visible:outline-none`,onClick:()=>{u(r)},size:`embedded`,type:`button`,variant:`embedded`,children:(0,$.jsx)(Xe,{"aria-hidden":`true`,className:`size-3.5 transition-transform ${f?`rotate-90`:``}`})}),i,(0,$.jsxs)(I,{className:`flex min-w-0 flex-1 items-center gap-1.5 text-left focus-visible:outline-none`,contentAlign:`start`,onClick:m,size:`embedded`,type:`button`,variant:`embedded`,children:[(0,$.jsx)(to,{children:f?(0,$.jsx)(lt,{"aria-hidden":`true`,className:`size-3.5 text-brand`}):(0,$.jsx)(ut,{"aria-hidden":`true`,className:`size-3.5 text-brand`})}),(0,$.jsx)(no,{title:n,children:n})]}),a]}),f?(0,$.jsx)(`div`,{className:`ml-3 border-l border-separator pl-1`,role:`group`,children:e}):null]})}function io({children:e,className:t=``,icon:n,name:r,path:i,trailing:a,...o}){let{onSelect:s,selectedPath:c}=(0,Y.useContext)($a),l=c===i,u=()=>{s?.(i)};return(0,$.jsxs)(`div`,{"aria-selected":l,className:`group/file-tree-node flex min-h-7 cursor-pointer items-center gap-1.5 rounded-control px-1.5 transition-colors hover:bg-control-hover focus-visible:shadow-focus focus-visible:outline-none ${l?`bg-control`:``} ${t}`,onClick:u,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),u())},role:`treeitem`,tabIndex:0,...o,children:[e??(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`size-5 shrink-0`}),(0,$.jsx)(to,{children:n??(0,$.jsx)(He,{"aria-hidden":`true`,className:`size-3.5 text-muted-foreground`})}),(0,$.jsx)(no,{title:i,children:r})]}),a]})}function ao(e){e.stopPropagation()}function oo({className:e=``,...t}){return(0,$.jsx)(`div`,{className:`ml-auto flex items-center gap-1 ${e}`,onClick:ao,onKeyDown:ao,role:`group`,...t})}function so({draftPath:e,isPathValidated:t,requestedPath:n,selectedPaths:r,submittedPath:i,validatedPath:a}){return r.length>0?r:!t||e!==void 0||i===void 0||n!==i||a===void 0?[]:[a]}function co(e,t){let n=t.toLowerCase();return e.find(e=>n.startsWith(e.path.toLowerCase()))}function lo({disabled:e,includeHidden:t,labels:n,listing:r,onNavigateParent:i,onNavigatePath:a,onNavigateRoot:o,onPathChange:s,onToggleHidden:c,path:l}){let u=r===void 0?void 0:co(r.roots,r.path)?.path,d=t?n.hideHidden:n.showHidden;return(0,$.jsxs)(`div`,{className:`flex min-h-10 items-center gap-2 border-y border-separator bg-panel px-3 sm:px-4`,children:[r===void 0||r.roots.length<2?null:(0,$.jsxs)(Oe,{disabled:e,onValueChange:o,...u===void 0?{}:{value:u},children:[(0,$.jsx)(j,{"aria-label":n.filesystemRoot,className:`h-8 min-w-20 px-2 font-mono`,size:`sm`,children:(0,$.jsx)(De,{placeholder:n.filesystemRoot})}),(0,$.jsx)(me,{position:`popper`,children:r.roots.map(e=>(0,$.jsx)(se,{value:e.path,children:e.name},e.path))})]}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":n.parent,disabled:r?.parentPath===null||r===void 0||e,onClick:i,size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(Ze,{"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:n.parent})]}),(0,$.jsxs)(`form`,{className:`flex min-w-0 flex-1 items-center gap-1`,onSubmit:e=>{e.preventDefault(),a()},children:[(0,$.jsx)(z,{"aria-label":n.pathLabel,autoComplete:`off`,className:`h-8 min-w-0 px-2 font-mono text-caption max-workbench:h-11`,disabled:e,onChange:e=>{s(e.target.value)},placeholder:n.pathPlaceholder,spellCheck:!1,value:l,variant:`compact`}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":n.goToPath,disabled:l.trim().length===0||e,size:`icon-sm`,type:`submit`,variant:`ghost`,children:(0,$.jsx)($e,{"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:n.goToPath})]})]}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":d,"aria-pressed":t,disabled:e,onClick:c,size:`icon-sm`,type:`button`,variant:`ghost`,children:t?(0,$.jsx)(Ge,{"aria-hidden":`true`}):(0,$.jsx)(Ue,{"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:d})]})]})}function uo({singleSelection:e=!1,directoryStates:t,entries:n,expandedPaths:r,onRetry:i,onRootCheckedChange:a,selectedPaths:o,selectionDisabled:s=!1}){let{t:c}=K(`workbench`);return n.map(n=>{let l=t.get(n.path),u=r.has(n.path);return(0,$.jsx)(ro,{name:n.name,path:n.path,selectionControl:e?(0,$.jsx)(ae,{name:`project-parent-directory`,"aria-label":c(`projectPicker.selectRoot`,{name:n.name}),checked:o.has(n.path),disabled:s,onClick:e=>{e.stopPropagation()},onChange:()=>{a(n.path,!0)}}):(0,$.jsx)(ie,{"aria-label":c(`projectPicker.selectRoot`,{name:n.name}),checked:o.has(n.path),disabled:s,onCheckedChange:e=>{a(n.path,e===!0)}}),trailing:u&&l?.isFetching===!0?(0,$.jsx)(Fe,{"aria-hidden":`true`,className:`size-3.5 animate-spin text-muted-foreground`}):void 0,children:u?l?.error!==null&&l?.error!==void 0?(0,$.jsxs)(`div`,{className:`flex min-h-9 items-center justify-between gap-2 px-2 py-1`,children:[(0,$.jsx)(`p`,{className:`min-w-0 text-caption text-danger`,role:`alert`,children:c(`projectPicker.loadBranchError`)}),(0,$.jsxs)(I,{className:`shrink-0`,onClick:()=>{i(n.path)},size:`sm`,type:`button`,variant:`ghost`,children:[(0,$.jsx)(ot,{"aria-hidden":`true`,"data-icon":`inline-start`}),c(`actions.retry`)]})]}):l?.data===void 0?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-caption text-muted-foreground`,role:`status`,children:c(`projectPicker.loadingBranch`)}):l.data.entries.length===0?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-caption text-muted-foreground`,children:c(`projectPicker.empty`)}):(0,$.jsx)(uo,{singleSelection:e,directoryStates:t,entries:l.data.entries,expandedPaths:r,onRetry:i,onRootCheckedChange:a,selectedPaths:o,selectionDisabled:s}):null},n.path)})}function fo({singleSelection:e=!1,directoryStates:t,expandedPaths:n,listing:r,onExpandedChange:i,onRetry:a,onRootCheckedChange:o,selectedPaths:s,selectionDisabled:c=!1}){let{t:l}=K(`workbench`),u=(0,Y.useMemo)(()=>new Map(t.map(e=>[e.path,e])),[t]);return(0,$.jsx)(eo,{"aria-label":l(`projectPicker.treeLabel`),expanded:n,onExpandedChange:i,children:(0,$.jsx)(uo,{singleSelection:e,directoryStates:u,entries:r.entries,expandedPaths:n,onRetry:a,onRootCheckedChange:o,selectedPaths:s,selectionDisabled:c})})}function po({mode:e=`project`,initialPath:t,hostLabel:n,client:r,isAdding:i,onAdd:a,onClose:o}){let{t:s}=K(`workbench`),[c,l]=(0,Y.useState)(t),[u,d]=(0,Y.useState)(),[f,p]=(0,Y.useState)(),[m,h]=(0,Y.useState)(!1),[g,v]=(0,Y.useState)(()=>new Set),[y,x]=(0,Y.useState)([]),S=_({queryFn:({signal:e})=>r.listProjectDirectories(c,{includeHidden:m,signal:e}),queryKey:[`project-directories`,c??null,m],staleTime:3e4}),C=S.data,w=so({draftPath:u,isPathValidated:S.isSuccess,requestedPath:c,selectedPaths:y,submittedPath:f,validatedPath:C?.path}),T=e===`parent`?y.length?y:S.isSuccess&&u===void 0&&C?[C.path]:[]:w,E=T.length>0,D=y.length===0&&T.length===1,ee=(0,Y.useMemo)(()=>new Set(y),[y]),O=e===`parent`||D?T[0]??``:y.map((e,t)=>t===0?s(`projectPicker.primaryRootSummary`,{path:e}):e).join(s(`projectPicker.rootSeparator`)),A=(0,Y.useMemo)(()=>[...g],[g]),j=b({queries:A.map(e=>({queryFn:({signal:t})=>r.listProjectDirectories(e,{includeHidden:m,signal:t}),queryKey:[`project-directories`,e,m],staleTime:3e4}))}),P=A.map((e,t)=>{let n=j[t];return{...n?.data===void 0?{}:{data:n.data},error:n?.error??null,isFetching:n?.isFetching??!1,path:e}}),F=u??c??C?.path??``;return(0,$.jsx)(N,{onOpenChange:e=>{!e&&!i&&o()},open:!0,children:(0,$.jsxs)(M,{"aria-labelledby":`project-directory-picker-title`,className:`grid h-[min(84dvh,42rem)] max-w-2xl grid-rows-[auto_auto_minmax(0,1fr)_auto] gap-0 overflow-hidden p-0`,onEscapeKeyDown:e=>{i&&e.preventDefault()},onInteractOutside:e=>{i&&e.preventDefault()},children:[(0,$.jsxs)(k,{className:`px-4 pb-3 pt-4 sm:px-5 sm:pt-5`,children:[(0,$.jsx)(_e,{id:`project-directory-picker-title`,children:s(e===`parent`?`newProject.selectParent`:`projectPicker.title`)}),n?(0,$.jsx)(`p`,{className:`break-words text-caption text-muted-foreground [overflow-wrap:anywhere]`,children:n}):null,(0,$.jsx)(L,{className:`sr-only`,children:s(`projectPicker.description`)})]}),(0,$.jsx)(lo,{disabled:i,includeHidden:m,labels:{filesystemRoot:s(`projectPicker.filesystemRoot`),goToPath:s(`projectPicker.goToPath`),hideHidden:s(`projectPicker.hideHidden`),parent:s(`projectPicker.parent`),pathLabel:s(`projectPicker.pathLabel`),pathPlaceholder:s(`projectPicker.pathPlaceholder`),showHidden:s(`projectPicker.showHidden`)},listing:C,onNavigateParent:()=>{let e=C?.parentPath;e!=null&&(l(e),d(void 0),p(void 0),v(new Set),x([]))},onNavigatePath:()=>{let e=F.trim();e.length!==0&&(l(e),d(void 0),p(e),v(new Set),x([]))},onNavigateRoot:e=>{l(e),d(void 0),p(void 0),v(new Set),x([])},onPathChange:t=>{e===`parent`&&x([]),d(t),p(void 0)},onToggleHidden:()=>{h(e=>!e),x([])},path:F}),(0,$.jsx)(`div`,{className:`min-h-0 overflow-y-auto px-3 py-2 sm:px-4`,children:S.isPending?(0,$.jsxs)(`p`,{className:`flex min-h-32 items-center justify-center gap-2 text-body-small text-muted-foreground`,role:`status`,children:[(0,$.jsx)(Fe,{"aria-hidden":`true`,className:`size-4 animate-spin`}),s(`projectPicker.loading`)]}):S.error===null?C===void 0?null:C.entries.length===0?(0,$.jsx)(`p`,{className:`grid min-h-32 place-items-center text-body-small text-muted-foreground`,children:s(`projectPicker.empty`)}):(0,$.jsx)(fo,{singleSelection:e===`parent`,directoryStates:P,expandedPaths:g,listing:C,onExpandedChange:v,onRetry:e=>{let t=A.indexOf(e);j[t]?.refetch()},onRootCheckedChange:(t,n)=>{p(void 0),x(r=>e===`parent`?n?[t]:[]:Ti(r,t,n))},selectedPaths:ee,selectionDisabled:i}):(0,$.jsxs)(`div`,{className:`flex min-h-32 flex-col items-center justify-center gap-3 text-center`,children:[(0,$.jsx)(`p`,{className:`text-body-small text-danger`,role:`alert`,children:s(`projectPicker.loadError`)}),(0,$.jsxs)(I,{onClick:()=>void S.refetch(),type:`button`,variant:`outline`,children:[(0,$.jsx)(ot,{"aria-hidden":`true`,"data-icon":`inline-start`}),s(`actions.retry`)]})]})}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-3 border-t border-separator bg-raised px-4 py-3 sm:flex-row sm:items-center sm:px-5`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-x-3 gap-y-1`,children:[(0,$.jsx)(`p`,{"aria-live":`polite`,className:`text-caption text-muted-foreground`,children:e===`parent`?s(`newProject.parent`):D?s(`projectPicker.directPathReady`):s(`projectPicker.selectedRoots`,{count:y.length})}),e===`parent`||D?null:(0,$.jsx)(`p`,{className:`ml-auto text-right text-caption text-muted-foreground`,children:s(`projectPicker.primaryRootHint`)})]}),O.length===0?null:(0,$.jsx)(`p`,{className:`min-w-0 break-words font-mono text-caption text-foreground [overflow-wrap:anywhere]`,children:O})]}),(0,$.jsxs)(ve,{className:`w-full flex-col-reverse sm:w-auto sm:flex-row`,children:[(0,$.jsx)(I,{className:`h-10 w-full sm:h-8 sm:w-auto`,disabled:i,onClick:o,type:`button`,variant:`outline`,children:s(e===`parent`?`newProject.back`:`actions.cancel`)}),(0,$.jsxs)(I,{className:`h-10 w-full sm:h-8 sm:w-auto`,disabled:!E||i,onClick:()=>{T.length>0&&a(T)},type:`button`,children:[i?(0,$.jsx)(Fe,{"aria-hidden":`true`,className:`animate-spin`,"data-icon":`inline-start`}):(0,$.jsx)(je,{"aria-hidden":`true`,"data-icon":`inline-start`}),s(i?`projectPicker.adding`:e===`parent`?`newProject.useFolder`:`projectPicker.add`)]})]})]})]})})}function mo({client:e,onAdd:t,onClose:n}){let{t:r}=K(`workbench`),i=r(`newProject.host`,{host:typeof location>`u`?`Codexly`:location.host});return(0,$.jsx)(ye,{client:e,labels:{title:r(`newProject.title`),parent:r(`newProject.parent`),name:r(`newProject.name`),path:r(`newProject.path`),choose:r(`newProject.choose`),cancel:r(`newProject.cancel`),create:r(`newProject.create`),creating:r(`newProject.creating`),invalidName:r(`newProject.invalidName`),loadError:r(`newProject.loadError`),createError:r(`newProject.createError`),addError:r(`newProject.addError`),existsDirectory:r(`newProject.existsDirectory`),existsFile:r(`newProject.existsFile`),addExisting:r(`newProject.addExisting`),retryAdd:r(`newProject.retryAdd`),retry:r(`newProject.retry`),loading:r(`newProject.loading`)},createRequestId:ee,hostLabel:i,storageKey:`codexly:web:new-project-parent:v1`,validateName:ge,onAdd:t,onClose:n,renderDirectoryPicker:({initialPath:t,onSelect:n,onCancel:r})=>(0,$.jsx)(po,{client:e,initialPath:t,mode:`parent`,hostLabel:i,isAdding:!1,onAdd:e=>{e[0]&&n(e[0])},onClose:r})})}function ho({isPending:e,onClose:t,onRemove:n,project:r}){let{t:i}=K(`workbench`);return(0,$.jsx)(N,{onOpenChange:n=>{!n&&!e&&t()},open:!0,children:(0,$.jsxs)(M,{"aria-labelledby":`project-remove-title`,className:`max-w-96 p-4`,onEscapeKeyDown:t=>{e&&t.preventDefault()},onInteractOutside:t=>{e&&t.preventDefault()},children:[(0,$.jsxs)(k,{children:[(0,$.jsx)(_e,{id:`project-remove-title`,children:i(`projectDialog.remove`)}),(0,$.jsx)(L,{children:i(`projectDialog.removeDescription`,{name:r.name})})]}),(0,$.jsxs)(ve,{children:[(0,$.jsx)(I,{className:`h-8 rounded-control px-3 text-body-small text-muted-foreground hover:bg-control-hover hover:text-foreground`,disabled:e,onClick:t,type:`button`,variant:`ghost`,children:i(`actions.cancel`)}),(0,$.jsx)(I,{disabled:e,onClick:n,type:`button`,variant:`destructive`,children:i(`projectDialog.delete`)})]})]})})}function go({initialName:e,isPending:t,onClose:n,onRename:r}){let{t:i}=K(`workbench`),[a,o]=(0,Y.useState)(e),s=a.trim();return(0,$.jsx)(N,{onOpenChange:e=>{!e&&!t&&n()},open:!0,children:(0,$.jsx)(M,{"aria-labelledby":`project-rename-title`,className:`max-w-96 p-4`,onEscapeKeyDown:e=>{t&&e.preventDefault()},onInteractOutside:e=>{t&&e.preventDefault()},children:(0,$.jsxs)(`form`,{className:`grid gap-4`,onSubmit:e=>{e.preventDefault(),s.length>0&&r(s)},children:[(0,$.jsxs)(k,{children:[(0,$.jsx)(_e,{id:`project-rename-title`,children:i(`projectDialog.rename`)}),(0,$.jsx)(L,{children:i(`projectDialog.renameDescription`)})]}),(0,$.jsx)(z,{"aria-label":i(`projectDialog.name`),autoFocus:!0,disabled:t,maxLength:200,onChange:e=>{o(e.currentTarget.value)},value:a}),(0,$.jsxs)(ve,{children:[(0,$.jsx)(I,{disabled:t,onClick:n,type:`button`,variant:`ghost`,children:i(`actions.cancel`)}),(0,$.jsx)(I,{disabled:t||s.length===0||s===e,type:`submit`,children:i(`actions.save`)})]})]})})})}function _o({initialTitle:e,isPending:t,onClose:n,onRename:r}){let{t:i}=K(`workbench`),[a,o]=(0,Y.useState)(e);return(0,$.jsx)(N,{onOpenChange:e=>{!e&&!t&&n()},open:!0,children:(0,$.jsx)(M,{"aria-labelledby":`task-rename-title`,className:`max-w-96 p-4`,onEscapeKeyDown:e=>{t&&e.preventDefault()},onInteractOutside:e=>{t&&e.preventDefault()},children:(0,$.jsxs)(`form`,{className:`grid gap-4`,onSubmit:e=>{e.preventDefault();let t=a.trim();t.length>0&&r(t)},children:[(0,$.jsx)(k,{children:(0,$.jsx)(_e,{id:`task-rename-title`,children:i(`taskDialog.rename`)})}),(0,$.jsx)(z,{"aria-label":i(`taskDialog.name`),autoFocus:!0,disabled:t,maxLength:200,onChange:e=>{o(e.currentTarget.value)},value:a}),(0,$.jsxs)(ve,{children:[(0,$.jsx)(I,{disabled:t,onClick:n,type:`button`,variant:`ghost`,children:i(`actions.cancel`)}),(0,$.jsx)(I,{disabled:t||a.trim().length===0,type:`submit`,children:i(`actions.save`)})]})]})})})}function vo({client:e,isProjectActionPending:t,isProjectAddPending:n,isProjectPickerOpen:r,projectPickerMode:i,onAddProject:a,onCloseProjectDialog:o,onCloseProjectPicker:s,onCloseTaskRename:c,onRemoveProject:l,onRenameProject:u,onRenameTask:d,removingProject:f,renamingProject:p,renamingTask:m,taskRenamePending:h}){return(0,$.jsxs)($.Fragment,{children:[m===null?null:(0,$.jsx)(_o,{initialTitle:m.title,isPending:h,onClose:c,onRename:e=>{d(m,e)}},m.id),r&&i===`create`?(0,$.jsx)(mo,{client:e,onAdd:a,onClose:s}):r?(0,$.jsx)(po,{client:e,isAdding:n,onAdd:a,onClose:s}):null,p===null?null:(0,$.jsx)(go,{initialName:p.name,isPending:t,onClose:()=>{o(p.id)},onRename:e=>{u(p,e)}},p.id),f===null?null:(0,$.jsx)(ho,{isPending:t,onClose:()=>{o(f.id)},onRemove:()=>{l(f)},project:f},f.id)]})}function yo({confirmLabel:e,description:t,isPending:n,onClose:r,onConfirm:i,title:a}){let{t:o}=K(`workbench`);return(0,$.jsx)(N,{onOpenChange:e=>{!e&&!n&&r()},open:!0,children:(0,$.jsxs)(M,{"aria-labelledby":`task-delete-confirmation-title`,className:`max-w-96 p-4`,onEscapeKeyDown:e=>{n&&e.preventDefault()},onInteractOutside:e=>{n&&e.preventDefault()},children:[(0,$.jsxs)(k,{children:[(0,$.jsx)(_e,{id:`task-delete-confirmation-title`,children:a}),(0,$.jsx)(L,{children:t})]}),(0,$.jsxs)(ve,{children:[(0,$.jsx)(I,{disabled:n,onClick:r,type:`button`,variant:`ghost`,children:o(`actions.cancel`)}),(0,$.jsx)(I,{disabled:n,onClick:i,type:`button`,variant:`destructive`,children:e})]})]})})}function bo({isPending:e,onClose:t,onDelete:n,task:r}){let{t:i}=K(`workbench`);return(0,$.jsx)(yo,{confirmLabel:i(`sidebar.deletePermanently`),description:i(`sidebar.deleteTaskDescription`,{task:r.title}),isPending:e,onClose:t,onConfirm:n,title:i(`sidebar.deleteTaskTitle`)})}function xo({error:e,isPending:t,mutationPending:n,onDelete:r,onDeleteAll:i,onNext:a,onPrevious:o,onRestore:s,onRetry:c,page:l,pageNumber:u}){let{t:d}=K(`workbench`);return t?(0,$.jsxs)(`div`,{className:`flex min-h-48 items-center justify-center`,role:`status`,children:[(0,$.jsx)(Fe,{className:`size-5 animate-spin text-muted-foreground`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`sr-only`,children:d(`archivedTasks.loading`)})]}):e===null?(0,$.jsxs)(`div`,{className:`grid min-h-0 grid-rows-[minmax(0,1fr)_auto]`,children:[l?.data.length===0?(0,$.jsx)(`p`,{className:`flex min-h-48 items-center justify-center px-4 text-body-small text-muted-foreground`,children:d(`archivedTasks.empty`)}):(0,$.jsx)(`ul`,{className:`min-h-0 overflow-y-auto`,children:l?.data.map(e=>(0,$.jsxs)(`li`,{className:`flex min-h-14 min-w-0 items-center gap-3 px-4 py-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`p`,{className:`truncate text-body-small font-medium text-foreground`,children:e.title}),(0,$.jsx)(`p`,{className:`text-caption text-muted-foreground`,children:d(`archivedTasks.updatedAt`,{date:new Date(e.updatedAt).toLocaleString()})})]}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":d(`archivedTasks.restoreTask`,{task:e.title}),disabled:n,onClick:()=>{s(e)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(it,{"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:d(`archivedTasks.restore`)})]}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":d(`archivedTasks.deleteTask`,{task:e.title}),disabled:n,onClick:()=>{r(e)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(xt,{"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:d(`archivedTasks.delete`)})]})]},e.id))}),(0,$.jsxs)(`div`,{className:`flex min-h-12 items-center justify-between gap-2 px-4`,children:[(0,$.jsxs)(I,{className:`text-danger hover:text-danger`,disabled:n,onClick:i,size:`sm`,type:`button`,variant:`ghost`,children:[(0,$.jsx)(xt,{"aria-hidden":`true`}),d(`archivedTasks.deleteAll`)]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":d(`archivedTasks.previous`),className:`size-11 sm:size-8`,disabled:n||u===1,onClick:o,size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(Le,{"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:d(`archivedTasks.previous`)})]}),(0,$.jsx)(`span`,{className:`min-w-16 text-center text-caption text-muted-foreground`,children:d(`archivedTasks.page`,{page:u})}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":d(`archivedTasks.next`),className:`size-11 sm:size-8`,disabled:n||l?.nextCursor===null,onClick:a,size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(Xe,{"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:d(`archivedTasks.next`)})]})]})]})]}):(0,$.jsxs)(`div`,{className:`flex min-h-48 flex-col items-center justify-center gap-3 px-4 text-center`,children:[(0,$.jsx)(`p`,{className:`text-body-small text-danger`,role:`alert`,children:d(`archivedTasks.loadError`)}),(0,$.jsx)(I,{onClick:c,size:`sm`,type:`button`,variant:`outline`,children:d(`actions.retry`)})]})}function So({client:e,onClose:t,project:n}){let{t:r}=K(`workbench`),i=m(),[a,o]=(0,Y.useState)(``),[s,c]=(0,Y.useState)(``),[l,u]=(0,Y.useState)([void 0]),[d,f]=(0,Y.useState)(0),[p,h]=(0,Y.useState)(null),[g,v]=(0,Y.useState)(!1),b=(0,Y.useRef)(wr()),x=l[d],S=_(ar(n.id,x,s,e)),C=y(Pn(e)),w=y(Fn(e)),T=y({mutationFn:async()=>{let t=await e.deleteArchivedTasks(n.id);if(t.failedCount>0)throw Error(r(`archivedTasks.deleteAllPartialFailure`,t));return t},mutationKey:[`tasks`,`delete-all-archived`,n.id]}),E=C.isPending||w.isPending||T.isPending;(0,Y.useEffect)(()=>{let e=a.trim();if(e===s)return;let t=window.setTimeout(()=>{c(e),u([void 0]),f(0)},250);return()=>{window.clearTimeout(t)}},[a,s]);let D=()=>{u([void 0]),f(0),i.removeQueries({queryKey:[`projects`,n.id,`archived-tasks`]})},ee=e=>b.current.run(async()=>{try{let t=await C.mutateAsync({projectId:n.id,taskId:e.id});kn(i,n.id,t.tasks),D()}catch{}}),O=e=>b.current.run(async()=>{try{let t=await w.mutateAsync({projectId:n.id,taskId:e.id});On(i,n.id,t.taskId,t.tasks),h(null),D()}catch{}}),A=()=>b.current.run(async()=>{try{await T.mutateAsync(),v(!1)}catch{}finally{D()}});return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(N,{onOpenChange:e=>{!e&&!E&&t()},open:!0,children:(0,$.jsxs)(M,{className:`grid h-[min(42rem,calc(100dvh-2rem))] max-w-2xl grid-rows-[auto_auto_minmax(0,1fr)] gap-0 overflow-hidden p-0`,children:[(0,$.jsx)(k,{className:`px-4 pb-3 pt-4 sm:px-5 sm:pt-5`,children:(0,$.jsx)(_e,{children:r(`archivedTasks.title`,{project:n.name})})}),(0,$.jsxs)(`div`,{className:`relative px-4 pb-3 sm:px-5`,children:[(0,$.jsx)(ft,{"aria-hidden":`true`,className:`pointer-events-none absolute left-7 top-2.5 size-4 text-muted-foreground sm:left-8`}),(0,$.jsx)(z,{"aria-label":r(`archivedTasks.search`),className:`h-9 w-full pl-8`,onChange:e=>{o(e.currentTarget.value)},placeholder:r(`archivedTasks.search`),value:a})]}),(0,$.jsx)(xo,{error:S.error,isPending:S.isPending,mutationPending:E,onDelete:h,onDeleteAll:()=>{v(!0)},onNext:()=>{let e=S.data?.nextCursor;e!=null&&(u(t=>[...t.slice(0,d+1),e]),f(e=>e+1))},onPrevious:()=>{f(e=>Math.max(0,e-1))},onRestore:e=>{ee(e)},onRetry:()=>{S.refetch()},page:S.data,pageNumber:d+1})]})}),p===null?null:(0,$.jsx)(yo,{confirmLabel:r(`archivedTasks.confirmDelete`),description:r(`archivedTasks.deleteDescription`,{task:p.title}),isPending:w.isPending,onClose:()=>{h(null)},onConfirm:()=>{O(p)},title:r(`archivedTasks.deleteTitle`)}),g?(0,$.jsx)(yo,{confirmLabel:r(`archivedTasks.confirmDeleteAll`),description:r(`archivedTasks.deleteAllDescription`,{project:n.name}),isPending:T.isPending,onClose:()=>{v(!1)},onConfirm:()=>{A()},title:r(`archivedTasks.deleteAllTitle`)}):null]})}function Co(e){let t=new Map;for(let n of e){let e=t.get(n.projectId);e===void 0?t.set(n.projectId,[n]):e.push(n)}return t}function wo({error:e,hasHiddenLoadedTasks:t,hasNextPage:n,isExpanded:r,isFetchingNextPage:i}){return r?n?{action:`load`,disabled:i,label:i?q.t(`sidebar.expandLoading`,{ns:`workbench`}):e===null?q.t(`sidebar.expand`,{ns:`workbench`}):q.t(`sidebar.expandRetry`,{ns:`workbench`})}:t?{action:`collapse`,disabled:!1,label:q.t(`sidebar.collapse`,{ns:`workbench`})}:null:n?{action:`expand-and-load`,disabled:!1,label:q.t(`sidebar.expand`,{ns:`workbench`})}:t?{action:`expand`,disabled:!1,label:q.t(`sidebar.expand`,{ns:`workbench`})}:null}function To({hasActiveTask:e,projectDataFailed:t,projectDataPending:n,taskConnectionState:r}){return e?r:t?`closed`:n?`connecting`:`connected`}function Eo(e){switch(e){case`connected`:return{labelKey:`sidebar.connection.online`,toneClassName:`text-diff-added`};case`connecting`:return{labelKey:`sidebar.connection.connecting`,toneClassName:`text-warning`};case`reconnecting`:return{labelKey:`sidebar.connection.reconnecting`,toneClassName:`text-warning`};case`closed`:return{labelKey:`sidebar.connection.offline`,toneClassName:`text-danger`}}}function Do({disabled:e,onOpen:t}){let{t:n}=K(`workbench`);return(0,$.jsxs)(xe,{children:[(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(Se,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":n(`sidebar.addProject`),disabled:e,size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(St,{"aria-hidden":`true`,className:`size-3.5`})})})}),(0,$.jsx)(H,{children:n(`sidebar.addProject`)})]}),(0,$.jsxs)(we,{align:`end`,children:[(0,$.jsxs)(V,{onSelect:()=>{t(`existing`)},children:[(0,$.jsx)(lt,{"aria-hidden":`true`}),n(`newProject.existing`)]}),(0,$.jsxs)(V,{onSelect:()=>{t(`create`)},children:[(0,$.jsx)(je,{"aria-hidden":`true`}),n(`newProject.title`)]})]})]})}function Oo({isPending:e,onOpenArchived:t,onRemove:n,onRename:r,project:i}){let{t:a}=K(`workbench`);return(0,$.jsx)(`div`,{className:`relative shrink-0`,children:(0,$.jsxs)(xe,{modal:!1,children:[(0,$.jsx)(Se,{asChild:!0,children:(0,$.jsx)(I,{variant:`ghost`,"aria-label":a(`sidebar.openProjectActions`,{project:i.name}),className:`project-hover-action grid size-7 place-items-center rounded-control text-muted-foreground opacity-0 transition-[color,background-color,opacity] hover:bg-control-hover hover:text-foreground focus-visible:opacity-100 focus-visible:shadow-focus group-hover/project:opacity-100 data-[state=open]:opacity-100`,disabled:e,id:`project-actions-${i.id}`,type:`button`,children:(0,$.jsx)(Ie,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,$.jsx)(Ao,{isPending:e,onOpenArchived:()=>{t(i)},onRemove:()=>{n(i)},onRename:()=>{r(i)},project:i})]})})}var ko=`h-8 w-full text-left text-foreground`;function Ao({isPending:e,onOpenArchived:t,onRemove:n,onRename:r,project:i}){let{t:a}=K(`workbench`);return(0,$.jsxs)(we,{align:`start`,"aria-label":a(`sidebar.projectActions`,{project:i.name}),"aria-labelledby":void 0,className:`w-32`,children:[(0,$.jsxs)(V,{className:ko,disabled:e,onSelect:r,children:[(0,$.jsx)(tt,{className:`size-3.5`,"aria-hidden":`true`}),a(`sidebar.rename`)]}),(0,$.jsxs)(V,{className:ko,disabled:e,onSelect:t,children:[(0,$.jsx)(Ae,{className:`size-3.5`,"aria-hidden":`true`}),a(`sidebar.archived`)]}),(0,$.jsxs)(V,{className:`${ko} text-danger`,disabled:e,onSelect:n,children:[(0,$.jsx)(xt,{className:`size-3.5`,"aria-hidden":`true`}),a(`sidebar.remove`)]})]})}function jo({appInfo:e,connectionState:t,onOpen:n}){let{t:r}=K(`workbench`),i=Eo(t),a=r(i.labelKey),o=e?.appVersion??`…`,s=e?.updateAvailable===!0;return(0,$.jsxs)(`div`,{className:`flex h-9 w-full items-stretch text-body-small text-muted-foreground`,children:[(0,$.jsxs)(I,{"aria-label":r(`sidebar.settings`),className:`h-full min-w-0 flex-1 gap-2.5 rounded-r-none px-2.5`,contentAlign:`start`,id:`global-settings-trigger`,onClick:()=>{n(`appearance`)},type:`button`,variant:`ghost`,children:[(0,$.jsx)(rt,{className:`size-4`,"aria-hidden":`true`}),r(`sidebar.settings`)]}),(0,$.jsx)(I,{"aria-label":r(`sidebar.aboutStatus`,{status:a,update:s?r(`sidebar.updateAvailableLabel`):``,version:o}),className:`h-full gap-1 rounded-l-none px-2.5 text-caption`,id:`global-settings-about-trigger`,onClick:()=>{n(`about`)},type:`button`,variant:`ghost`,children:(0,$.jsxs)(`span`,{"aria-live":`polite`,className:`inline-flex items-center gap-1`,children:[(0,$.jsxs)(`span`,{className:s?`text-warning`:`text-muted-foreground`,children:[s?(0,$.jsx)(Ye,{"aria-hidden":`true`,className:`mr-1 inline size-3`}):null,`v`,o]}),(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`text-muted-foreground`,children:`·`}),(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 ${i.toneClassName}`,children:[(0,$.jsx)(Mo,{connectionState:t}),a]})]})})]})}function Mo({connectionState:e}){return e===`connected`?(0,$.jsx)(nt,{className:`size-3`,"aria-hidden":`true`}):e===`closed`?(0,$.jsx)(dt,{className:`size-3`,"aria-hidden":`true`}):(0,$.jsx)(`span`,{className:`inline-flex animate-spin`,"aria-hidden":`true`,children:(0,$.jsx)(Fe,{className:`size-3`})})}function No({branchLocked:e=!1,isPending:t,onClose:n,onCreate:r}){let{t:i}=K(`workbench`),[a,o]=(0,Y.useState)(``),s=(0,Y.useRef)(!1),c=a.trim();return(0,$.jsx)(N,{onOpenChange:e=>{!e&&!t&&!s.current&&n()},open:!0,children:(0,$.jsx)(M,{"aria-labelledby":`create-worktree-title`,className:`max-w-96 p-4`,onEscapeKeyDown:e=>{(t||s.current)&&e.preventDefault()},onInteractOutside:e=>{(t||s.current)&&e.preventDefault()},children:(0,$.jsxs)(`form`,{className:`grid gap-4`,onSubmit:e=>{e.preventDefault(),!(c.length===0||s.current)&&(s.current=!0,r(c).then(e=>{s.current=!1,e&&n()}))},children:[(0,$.jsxs)(k,{children:[(0,$.jsx)(_e,{id:`create-worktree-title`,children:i(`sidebar.worktreeTaskTitle`)}),(0,$.jsx)(L,{children:i(`sidebar.worktreeTaskDescription`)})]}),(0,$.jsxs)(`label`,{className:`grid gap-1.5 text-label font-medium text-foreground`,htmlFor:`create-worktree-branch`,children:[i(`composer.branchName`),(0,$.jsx)(z,{autoCapitalize:`none`,autoComplete:`off`,autoCorrect:`off`,autoFocus:!0,disabled:t||e,id:`create-worktree-branch`,maxLength:1024,name:`branch`,onChange:e=>{o(e.currentTarget.value)},placeholder:`feat/my-feature`,spellCheck:!1,value:a,variant:`outline`})]}),(0,$.jsxs)(ve,{children:[(0,$.jsx)(I,{disabled:t,onClick:n,type:`button`,variant:`ghost`,children:i(`actions.cancel`)}),(0,$.jsx)(I,{disabled:t||c.length===0,type:`submit`,children:i(`sidebar.createWorktreeTaskConfirm`)})]})]})})})}async function Po(e,t,n,r,i,a){let o=await R(e,{projectId:n,rootPath:r,branch:i,...a===void 0?{}:{existingWorktreePath:a}},()=>{t.invalidateQueries({queryKey:[`projects`,n,r,`git-worktrees`]}),t.invalidateQueries({queryKey:[`projects`,n,r,`git-status`]})});return`task`in o&&(t.setQueryData([`projects`,n,`task-workspace-paths`,o.task.id],o.worktreePath),t.setQueryData([`projects`,n,`tasks`],e=>hn(e,o.task))),o}function Fo({client:e,onCreated:t,project:n}){let{t:r}=K(`workbench`),[i,a]=(0,Y.useState)(!1),o=n.roots[0]?.path,s=r(`sidebar.createWorktreeTask`,{project:n.name});return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":s,className:`project-hover-action opacity-0 transition-[color,background-color,opacity] focus-visible:opacity-100 group-hover/project:opacity-100`,disabled:o===void 0,onClick:()=>{a(!0)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(We,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:s})]}),i&&o!==void 0?(0,$.jsx)(Io,{client:e,onClose:()=>{a(!1)},onCreated:t,projectId:n.id,rootPath:o}):null]})}function Io({client:e,onClose:t,onCreated:n,projectId:r,rootPath:i}){let a=w(),o=m(),[s,c]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)();return(0,$.jsx)(No,{branchLocked:l!==void 0,isPending:s,onClose:t,onCreate:async t=>{c(!0);try{let s=await Po(e,o,r,i,t,l);return`error`in s?(u(s.worktreePath),Q(s.error),!1):(n(r),await a({params:{projectId:r,taskId:s.task.id},to:`/p/$projectId/t/$taskId`}),!0)}catch(e){return Q(e),!1}finally{c(!1)}}})}function Lo(e,t){return e===`temporary`?{params:{taskId:t},to:`/temporary/t/$taskId`}:{params:{projectId:e,taskId:t},to:`/p/$projectId/t/$taskId`}}function Ro({active:e,attention:t,isActionPending:n,isAwaitingApproval:r,isRunning:i,onArchive:a,onDelete:o,onPin:s,onRename:l,projectName:u,task:d}){let{t:f}=K(`workbench`),p=Lo(d.projectId,d.id);return(0,$.jsxs)(`div`,{className:`group relative min-w-0`,children:[(0,$.jsxs)(c,{"aria-current":e?`page`:void 0,className:`flex h-8 min-w-0 items-center gap-2 rounded-control px-2 text-body-small transition-colors ${e?`bg-control-active font-medium text-foreground`:`text-muted-foreground hover:bg-control-hover hover:text-foreground`}`,...p,children:[(0,$.jsx)(Te,{projectName:u,title:d.title}),(0,$.jsx)(Bo,{attention:t,isAwaitingApproval:r,isRunning:i,updatedAt:d.updatedAt})]}),(0,$.jsxs)(xe,{modal:!1,children:[(0,$.jsx)(Se,{asChild:!0,children:(0,$.jsx)(I,{variant:`ghost`,"aria-label":f(`sidebar.openTaskActions`,{task:d.title}),className:`task-actions absolute right-1 top-1 grid size-6 place-items-center rounded-control text-muted-foreground transition-colors hover:bg-control-hover hover:text-foreground focus-visible:opacity-100 focus-visible:shadow-focus`,disabled:n,type:`button`,children:(0,$.jsx)(Ie,{className:`size-4`,"aria-hidden":`true`})})}),(0,$.jsx)(Ho,{isPending:n,onArchive:()=>{a(d)},onDelete:()=>{o(d)},onPin:()=>{s(d)},onRename:()=>{l(d)},task:d})]})]})}var zo=`size-3.5 stroke-[2.25]`;function Bo({attention:e,isAwaitingApproval:t,isRunning:n,updatedAt:r}){let{t:i}=K(`workbench`),a;return a=t||e===`approval`?{icon:(0,$.jsx)(Ve,{"aria-hidden":`true`,className:zo}),label:i(`sidebar.taskApproval`),tone:`text-task-waiting`}:n?{icon:(0,$.jsx)(`span`,{"aria-hidden":`true`,className:`task-status-dot block size-2 rounded-full bg-current`}),label:i(`sidebar.taskRunning`),tone:`text-task-running`}:e===`completed`?{icon:(0,$.jsx)(Me,{"aria-hidden":`true`,className:zo}),label:i(`sidebar.taskComplete`),tone:`text-task-completed`}:e===`failed`?{icon:(0,$.jsx)(Et,{"aria-hidden":`true`,className:zo}),label:i(`sidebar.taskIncomplete`),tone:`text-task-failed`}:null,a===null?(0,$.jsx)(`span`,{className:`task-age task-status ml-auto shrink-0 text-caption text-subtle-foreground`,children:Wi(r)}):(0,$.jsx)(`span`,{"aria-label":a.label,className:`task-status ml-auto inline-grid size-3.5 shrink-0 place-items-center ${a.tone}`,role:`status`,children:a.icon})}var Vo=`h-8 w-full text-left text-foreground`;function Ho({isPending:e,onArchive:t,onDelete:n,onPin:r,onRename:i,task:a}){let{t:o}=K(`workbench`);return(0,$.jsxs)(we,{align:`start`,"aria-label":o(`sidebar.taskActions`,{task:a.title}),"aria-labelledby":void 0,className:`w-40`,children:[(0,$.jsxs)(V,{className:Vo,disabled:e,onSelect:r,children:[(0,$.jsx)(Tt,{className:`size-3.5`,"aria-hidden":`true`}),a.pinned?o(`sidebar.unpin`):o(`sidebar.pin`)]}),(0,$.jsxs)(V,{className:Vo,disabled:e,onSelect:i,children:[(0,$.jsx)(tt,{className:`size-3.5`,"aria-hidden":`true`}),o(`sidebar.rename`)]}),(0,$.jsxs)(V,{className:`${Vo} text-danger`,disabled:e,onSelect:t,children:[(0,$.jsx)(Ae,{className:`size-3.5`,"aria-hidden":`true`}),o(`sidebar.archive`)]}),(0,$.jsxs)(V,{className:`${Vo} text-danger`,disabled:e,onSelect:n,children:[(0,$.jsx)(xt,{className:`size-3.5`,"aria-hidden":`true`}),o(`sidebar.deletePermanently`)]})]})}function Uo({expanded:e,onCreate:t,onOpenArchived:n,onToggle:r}){let{t:i}=K(`workbench`),a=i(`sidebar.temporaryTasks`),o=`touch-visible-action opacity-0 transition-[color,background-color,opacity] focus-visible:opacity-100 group-hover/temporary:opacity-100`;return(0,$.jsxs)(`div`,{className:`group/temporary flex h-8 items-center gap-0.5 text-muted-foreground`,children:[(0,$.jsxs)(I,{"aria-controls":`temporary-tasks-content`,"aria-expanded":e,className:`h-8 min-w-0 flex-1 gap-2 rounded-control px-2 text-body-small font-medium`,contentAlign:`start`,id:`temporary-tasks-title`,onClick:r,type:`button`,variant:`ghost`,children:[(0,$.jsx)(Ne,{className:`size-4 shrink-0`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`truncate`,children:a})]}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":i(`sidebar.archived`),className:o,id:`project-actions-${W}`,onClick:()=>{n({id:W,name:a})},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(Ae,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:i(`sidebar.archived`)})]}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":i(`sidebar.newTask`),className:o,onClick:t,size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(St,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:i(`sidebar.newTask`)})]})]})}var Wo=[];function Go({client:e,archiveTask:t,deleteTask:n,error:r,expandedProjects:i,expandedTaskProjects:a,fetchNextProjectTaskPage:o,getProjectReorderProps:s,hasTaskError:c,isPending:l,isProjectActionPending:u,isProjectAddPending:d,normalizedQuery:f,onOpenTemporaryDraft:p,onOpenProjectDraft:m,onWorktreeTaskCreated:h,onOpenArchived:g,onOpenProjectPicker:_,onRemoveProject:v,onRenameProject:y,orderedProjects:b,pinTask:x,pinnedTasks:S,projectId:C,projectOrderAnnouncement:w,projectTaskStates:T,reorderingProjectId:E,setExpandedTaskProjects:D,setRenamingTask:ee,taskActionPending:O,taskActivity:k,taskId:A,taskSearch:j,tasksByProjectId:M,toggleProject:N}){let{t:P}=K(`workbench`),[F]=(0,Y.useState)(Ua),[te,ne]=(0,Y.useState)(()=>Ka(F)),re=(0,Y.useMemo)(()=>new Map(b.map(e=>[e.id,e])),[b]),ie=M.get(`temporary`)??Wo,L=T.get(W),ae=a.has(W),oe=Ui(ie,ae),R=wo({error:L?.error??null,hasHiddenLoadedTasks:ie.length>5,hasNextPage:f.length===0?L?.hasNextPage??!1:!1,isExpanded:ae,isFetchingNextPage:L?.isFetchingNextPage??!1});return(0,$.jsx)($.Fragment,{children:(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-col overflow-hidden px-2 pt-2`,children:[S.length>0?(0,$.jsxs)(`section`,{className:`mb-4 max-h-40 shrink-0 overflow-y-auto`,"aria-labelledby":`pinned-title`,children:[(0,$.jsx)(`h2`,{className:`px-2 pb-2 text-meta font-semibold text-muted-foreground`,id:`pinned-title`,children:P(`sidebar.pinned`)}),(0,$.jsx)(`div`,{className:`space-y-0.5`,children:S.map(e=>{let r=Br(k,e.projectId,e.id);return(0,$.jsx)(Ro,{active:e.projectId===C&&e.id===A,attention:r.attention,isActionPending:O,isAwaitingApproval:r.isAwaitingApproval,isRunning:r.isRunning,onArchive:e=>void t(e),onDelete:e=>void n(e),onPin:e=>void x(e),onRename:ee,projectName:e.projectId===`temporary`?P(`sidebar.temporaryTasks`):re.get(e.projectId)?.name??e.projectId,task:e},`${e.projectId}:${e.id}`)})})]}):null,(0,$.jsxs)(`section`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,"aria-labelledby":`projects-title`,children:[(0,$.jsxs)(`div`,{className:`flex h-8 min-w-0 w-full shrink-0 items-center justify-between pl-2`,children:[(0,$.jsx)(`h2`,{className:`text-body-small font-semibold text-foreground`,id:`projects-title`,children:P(`sidebar.projects`)}),(0,$.jsx)(Do,{disabled:d,onOpen:_})]}),l?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-meta text-subtle-foreground`,children:P(`sidebar.taskLoading`)}):null,j.isPending?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-meta text-subtle-foreground`,children:P(`sidebar.searchAll`)}):null,r===null&&!c?null:(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-meta leading-5 text-danger`,role:`alert`,children:P(`sidebar.errorLoadTasks`)}),j.error===null?null:(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-meta leading-5 text-danger`,role:`alert`,children:P(`sidebar.errorSearchTasks`)}),(0,$.jsx)(`p`,{"aria-live":`polite`,className:`sr-only`,children:w}),(0,$.jsxs)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-x-hidden overflow-y-auto pb-3`,"data-testid":`project-tree-scroll`,children:[(0,$.jsxs)(`section`,{className:`min-w-0`,"aria-labelledby":`temporary-tasks-title`,children:[(0,$.jsx)(Uo,{expanded:te,onCreate:p,onOpenArchived:g,onToggle:()=>{ne(e=>{let t=!e;return qa(F,t),t})}}),te?(0,$.jsxs)(`div`,{className:`min-w-0 space-y-0.5 pl-5`,id:`temporary-tasks-content`,children:[oe.tasks.map(e=>{let r=Br(k,e.projectId,e.id);return(0,$.jsx)(Ro,{active:C===`temporary`&&e.id===A,attention:r.attention,isActionPending:O,isAwaitingApproval:r.isAwaitingApproval,isRunning:r.isRunning,onArchive:e=>void t(e),onDelete:e=>void n(e),onPin:e=>void x(e),onRename:ee,task:e},`${e.projectId}:${e.id}`)}),L?.isPending===!0?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-meta text-subtle-foreground`,children:P(`sidebar.taskLoading`)}):null,R===null?null:(0,$.jsx)(I,{variant:`ghost`,"aria-expanded":ae,className:`flex h-7 w-full items-center rounded-control px-2 text-left text-meta font-medium text-subtle-foreground transition-colors hover:bg-control-hover hover:text-foreground`,contentAlign:`start`,disabled:R.disabled,onClick:()=>{R.action===`expand`||R.action===`expand-and-load`?D(e=>new Set(e).add(W)):R.action===`collapse`&&D(e=>{let t=new Set(e);return t.delete(W),t}),(R.action===`expand-and-load`||R.action===`load`)&&o(W).catch(()=>void 0)},type:`button`,children:R.label}),ie.length===0&&f.length===0&&L?.isPending!==!0?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-meta text-subtle-foreground`,children:P(`sidebar.noTemporaryTasks`)}):null,ie.length===0&&f.length>0&&!j.isPending&&j.error===null?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-meta text-subtle-foreground`,children:P(`sidebar.noMatchingTasks`)}):null]}):null]}),b.map(r=>{let c=M.get(r.id)??Wo,l=i.has(r.id),d=a.has(r.id),p=Ui(c,d),_=T.get(r.id),b=wo({error:_?.error??null,hasHiddenLoadedTasks:c.length>5,hasNextPage:f.length===0?_?.hasNextPage??!1:!1,isExpanded:d,isFetchingNextPage:_?.isFetchingNextPage??!1});return(0,$.jsxs)(`div`,{className:`min-w-0 transition-[opacity,transform] ${E===r.id?`relative z-10 opacity-80`:``}`,"data-project-reordering":E===r.id?`true`:`false`,children:[(0,$.jsxs)(`div`,{className:`group/project flex min-w-0 items-center gap-0.5`,children:[(0,$.jsxs)(I,{variant:`ghost`,"aria-expanded":l,"aria-label":P(`sidebar.toggleProject`,{project:r.name}),className:`flex h-8 min-w-0 flex-1 touch-pan-y select-none items-center gap-2 rounded-control px-2 text-body-small font-medium transition-colors hover:bg-control-hover hover:text-foreground ${E===r.id?`cursor-grabbing bg-control-active text-foreground shadow-sm`:`cursor-grab text-muted-foreground`}`,contentAlign:`start`,onClick:()=>{N(r.id)},type:`button`,...s(r.id),children:[(0,$.jsx)(ut,{className:`size-4 shrink-0`,"aria-hidden":`true`}),(0,$.jsx)(`span`,{className:`truncate`,children:r.name})]}),(0,$.jsx)(Oo,{isPending:u,onOpenArchived:g,onRemove:e=>{v(e)},onRename:e=>{y(e)},project:r}),(0,$.jsx)(Fo,{client:e,onCreated:h,project:r}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":P(`sidebar.createInProject`,{project:r.name}),className:`project-hover-action opacity-0 transition-[color,background-color,opacity] focus-visible:opacity-100 group-hover/project:opacity-100`,onClick:()=>{m(r.id)},size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(St,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:P(`sidebar.createInProject`,{project:r.name})})]})]}),l?(0,$.jsxs)(`div`,{className:`mt-0.5 min-w-0 space-y-0.5 pl-5`,children:[p.tasks.map(e=>{let i=Br(k,e.projectId,e.id);return(0,$.jsx)(Ro,{active:r.id===C&&e.id===A,attention:i.attention,isActionPending:O,isAwaitingApproval:i.isAwaitingApproval,isRunning:i.isRunning,onArchive:e=>void t(e),onDelete:e=>void n(e),onPin:e=>void x(e),onRename:ee,task:e},`${e.projectId}:${e.id}`)}),_?.isPending===!0?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-meta text-subtle-foreground`,children:P(`sidebar.taskLoading`)}):null,b===null?null:(0,$.jsx)(I,{variant:`ghost`,"aria-expanded":d,className:`flex h-7 w-full items-center rounded-control px-2 text-left text-meta font-medium text-subtle-foreground transition-colors hover:bg-control-hover hover:text-foreground`,contentAlign:`start`,disabled:b.disabled,onClick:()=>{b.action===`expand`||b.action===`expand-and-load`?D(e=>new Set(e).add(r.id)):b.action===`collapse`&&D(e=>{let t=new Set(e);return t.delete(r.id),t}),(b.action===`expand-and-load`||b.action===`load`)&&o(r.id).catch(()=>void 0)},type:`button`,children:b.label}),c.length===0&&f.length===0&&_?.isPending!==!0?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-meta text-subtle-foreground`,children:P(`sidebar.noTasks`)}):null,c.length===0&&f.length>0&&!j.isPending&&j.error===null?(0,$.jsx)(`p`,{className:`px-2 py-1.5 text-meta text-subtle-foreground`,children:P(`sidebar.noMatchingTasks`)}):null]}):null]},r.id)})]})]})]})})}function Ko({className:e,iconClassName:t,projectId:n}){let{t:r}=K(`workbench`),i=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Be,{"aria-hidden":`true`,className:t}),r(`scheduledTasks.title`)]}),a={className:`${e} bg-control-active`};return n!==void 0&&n!==`temporary`?(0,$.jsx)(c,{activeProps:a,className:e,params:{projectId:n},to:`/p/$projectId/scheduled`,children:i}):(0,$.jsx)(c,{activeProps:a,className:e,to:`/temporary/scheduled`,children:i})}function qo({className:e,iconClassName:t,projectId:n}){let{t:r}=K(`workbench`),i=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Qe,{"aria-hidden":`true`,className:t}),r(`skillsMarket.title`)]}),a={className:`${e} bg-control-active`};return n!==void 0&&n!==`temporary`?(0,$.jsx)(c,{activeProps:a,className:e,activeOptions:{includeSearch:!1},params:{projectId:n,section:`skills`},to:`/p/$projectId/extensions/$section`,children:i}):(0,$.jsx)(c,{activeProps:a,className:e,params:{section:`skills`},to:`/temporary/extensions/$section`,children:i})}function Jo({className:e,iconClassName:t,projectId:n}){let{t:r}=K(`workbench`),i=(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ze,{"aria-hidden":`true`,className:t}),r(`taskBoard.title`)]}),a={className:`${e} bg-control-active`};return n!==void 0&&n!==`temporary`?(0,$.jsx)(c,{activeProps:a,className:e,params:{projectId:n},to:`/p/$projectId/board`,children:i}):(0,$.jsx)(c,{activeProps:a,className:e,to:`/temporary/board`,children:i})}function Yo(e){return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ko,{...e}),(0,$.jsx)(Jo,{...e}),(0,$.jsx)(qo,{...e})]})}function Xo({onClose:e,onSearch:t}){let{t:n}=K(`workbench`);return(0,$.jsxs)(`div`,{className:`flex h-workbench-header items-center gap-1.5 px-3`,children:[(0,$.jsx)(Zo,{}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-keyshortcuts":`Meta+F Control+F`,"aria-label":n(`globalSearch.title`),onClick:t,size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(ft,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:n(`globalSearch.title`)})]}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":n(`sidebar.close`),className:`min-workbench:hidden`,onClick:e,size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(wt,{className:`size-3.5`,"aria-hidden":`true`})})}),(0,$.jsx)(H,{children:n(`sidebar.close`)})]})]})}function Zo(){return(0,$.jsx)(`div`,{className:`flex min-w-0 flex-1 items-center`,children:(0,$.jsx)(`img`,{alt:`Codexly`,className:`h-7 w-auto max-w-full`,height:`28`,src:`/brand/codexly-logo.svg`,width:`116`})})}var Qo=(0,Y.lazy)(()=>n(()=>import(`./global-search-dialog-B7WhRB5J.js`).then(e=>({default:e.GlobalSearchDialog})),__vite__mapDeps([16,1,3,4,5,6,7,8,9,10,11,17,18,19,20]))),$o=`flex h-8 w-full items-center gap-2.5 rounded-control px-2.5 text-body-small font-medium text-foreground transition-colors hover:bg-control-hover`,es=`size-4 shrink-0 text-muted-foreground`;function ts({appInfo:e,connectionState:t,onClose:n,onOpenSettings:r,onOpenFile:i,projectId:a,taskId:o}){let{t:s}=K(`workbench`),{client:l,error:u,isPending:d,projects:f,projectTaskStates:p,tasks:h}=vr(),{addProject:g,fetchNextProjectTaskPage:_,forgetTask:v,reorderProjects:b,removeProject:x,renameProject:S,setExpandedProjectTaskIds:C}=yr(),{isProjectActionPending:T,isProjectOrderPending:E,isProjectAddPending:D,taskActivity:ee}=br(),O=w(),k=m(),A=(0,Y.useRef)(null),j=Ba(A,n),[M]=(0,Y.useState)(Ua),[N]=(0,Y.useState)(()=>Wa(M)),P=(0,Y.useRef)(N),F=(0,Y.useRef)(f.length>0),[te,I]=(0,Y.useState)(()=>Ja(f.map(e=>e.id),N)),ne=(0,Y.useRef)(te),[re,ie]=(0,Y.useState)(`idle`),[L,ae]=(0,Y.useState)(()=>new Set),[oe,R]=(0,Y.useState)(null),[se,z]=(0,Y.useState)(null),[ce,B]=(0,Y.useState)(null),[le,ue]=(0,Y.useState)(null),[de,fe]=(0,Y.useState)(!1),[pe,V]=(0,Y.useState)(`existing`),me=y(jn(l)),he=y(Mn(l)),H=y(Nn(l)),U=(0,Y.useRef)(wr()),ge=Ma({actionLock:U.current,activeProjectId:a,activeTaskId:o}),_e={error:null,isPending:!1},ve=Cr(),ye=h,be=(0,Y.useMemo)(()=>Co(ye),[ye]),xe=Hi(ve.tasks),Se=ve.error!==null||[...p.values()].some(e=>e.error!==null),Ce=me.isPending||he.isPending||H.isPending||ge.isDeletePending,{activeProjectId:we,announcement:W,getProjectReorderProps:Te,orderedProjects:Ee}=ja({disabled:E,onReorder:b,projects:f});(0,Y.useEffect)(()=>{if(d||a===void 0||a===`temporary`||f.some(e=>e.id===a))return;let e=f[0];O(e===void 0?{replace:!0,to:`/`}:{params:{projectId:e.id},replace:!0,to:`/p/$projectId`})},[d,O,a,f]),(0,Y.useEffect)(()=>{let e=f.map(e=>e.id);if(!F.current&&e.length>0){F.current=!0;let t=Ja(e,P.current);ne.current=t,I(t);return}let t=new Set(e),n=ne.current,r=new Set([...n].filter(e=>t.has(e)));r.size!==n.size&&(ne.current=r,I(r))},[f]),(0,Y.useEffect)(()=>{C(te)},[te,C]),(0,Y.useEffect)(()=>{let e=e=>{let t=Array.from(document.querySelectorAll(`[role="dialog"], [role="alertdialog"], dialog[open]`)).some(e=>e.getClientRects().length>0);A.current?.getClientRects().length===0||t||e.defaultPrevented||e.isComposing||e.repeat||e.altKey||e.shiftKey||e.key.toLocaleLowerCase()!==`f`||!(e.metaKey||e.ctrlKey)||(e.preventDefault(),ie(`open`))};return document.addEventListener(`keydown`,e),()=>{document.removeEventListener(`keydown`,e)}},[]);let G=(0,Y.useCallback)(e=>{let t=e(ne.current);ne.current=t,P.current=t,Ga(M,t),I(t)},[M]),De=e=>{G(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Oe=async e=>{let t=await g(e);return t!==void 0&&(fe(!1),pe===`create`&&await ke(t.id)),t!==void 0},ke=async e=>{G(t=>{if(t.has(e))return t;let n=new Set(t);return n.add(e),n}),await O({params:{projectId:e},to:`/p/$projectId`}).then(j)},Ae=e=>U.current.run(async()=>{try{let t=await me.mutateAsync({pinned:!e.pinned,projectId:e.projectId,taskId:e.id});vn(k,t.task,t.pinnedTasks.data)}catch{}}),je=(e,t)=>U.current.run(async()=>{try{let n=await he.mutateAsync({projectId:e.projectId,taskId:e.id,title:t});_n(k,n.task,n.taskCatalog.data),R(null)}catch{}}),Me=e=>U.current.run(async()=>{try{let t=await H.mutateAsync({projectId:e.projectId,taskId:e.id});On(k,e.projectId,e.id,t.tasks),k.removeQueries({exact:!0,queryKey:[`projects`,e.projectId,`tasks`,e.id]}),v(e.projectId,e.id),e.projectId===a&&e.id===o&&await(e.projectId===`temporary`?O({to:`/temporary`}):O({params:{projectId:e.projectId},to:`/p/$projectId`})),wa(e.projectId,e.id),l.unsubscribeTask(e.projectId,e.id).catch(()=>void 0)}catch{}}),Ne=e=>{ue(null),z(null),B(null),requestAnimationFrame(()=>{document.getElementById(`project-actions-${e}`)?.focus()})},Pe=async(e,t)=>{await S(e.id,t)&&Ne(e.id)},Fe=async e=>{await x(e.id)!==void 0&&B(null)};return(0,$.jsxs)(`aside`,{"aria-label":s(`sidebar.landmark`),className:`workbench-sidebar z-30 grid min-h-0 grid-rows-[auto_auto_minmax(0,1fr)_auto] bg-sidebar shadow-divider`,ref:A,children:[(0,$.jsx)(Xo,{onClose:n,onSearch:()=>{ie(`open`)}}),(0,$.jsxs)(`nav`,{className:`space-y-0.5 px-2`,"aria-label":s(`sidebar.agentNavigation`),children:[(0,$.jsxs)(c,{className:$o,to:`/temporary`,children:[(0,$.jsx)(gt,{className:es,"aria-hidden":`true`}),s(`sidebar.newTask`)]}),(0,$.jsx)(Yo,{className:$o,iconClassName:es,...a===void 0?{}:{projectId:a}})]}),(0,$.jsx)(Go,{archiveTask:Me,client:l,deleteTask:ge.requestTaskDeletion,error:u,expandedProjects:te,expandedTaskProjects:L,fetchNextProjectTaskPage:_,getProjectReorderProps:Te,hasTaskError:Se,isPending:d,isProjectActionPending:T,isProjectAddPending:D,normalizedQuery:``,onOpenTemporaryDraft:()=>void O({to:`/temporary`}).then(j),onOpenProjectDraft:ke,onWorktreeTaskCreated:e=>{G(t=>new Set(t).add(e))},onOpenArchived:ue,onOpenProjectPicker:e=>{V(e),fe(!0)},onRemoveProject:e=>{B(e)},onRenameProject:e=>{z(e)},orderedProjects:Ee,pinTask:Ae,pinnedTasks:xe,...a===void 0?{}:{projectId:a},projectOrderAnnouncement:W,projectTaskStates:p,reorderingProjectId:we,setExpandedTaskProjects:ae,setRenamingTask:R,taskActionPending:Ce,taskActivity:ee,...o===void 0?{}:{taskId:o},taskSearch:_e,tasksByProjectId:be,toggleProject:De}),le===null?null:(0,$.jsx)(So,{client:l,onClose:()=>{Ne(le.id)},project:le}),ge.deletingTask===null?null:(0,$.jsx)(bo,{isPending:ge.isDeletePending,onClose:ge.closeTaskDeletion,onDelete:()=>{ge.confirmTaskDeletion()},task:ge.deletingTask}),(0,$.jsx)(vo,{client:l,isProjectActionPending:T,isProjectAddPending:D,isProjectPickerOpen:de,projectPickerMode:pe,onAddProject:Oe,onCloseProjectDialog:Ne,onCloseProjectPicker:()=>{D||fe(!1)},onCloseTaskRename:()=>{R(null)},onRemoveProject:e=>{Fe(e)},onRenameProject:(e,t)=>{Pe(e,t)},onRenameTask:(e,t)=>{je(e,t)},removingProject:ce,renamingProject:se,renamingTask:oe,taskRenamePending:he.isPending}),(0,$.jsx)(`div`,{className:`p-2`,children:(0,$.jsx)(jo,{...e===void 0?{}:{appInfo:e},connectionState:t,onOpen:r})}),re===`idle`?null:(0,$.jsx)(Y.Suspense,{fallback:null,children:(0,$.jsx)(Qo,{client:l,onOpenFile:i,onClose:()=>{ie(`closed`)},open:re===`open`,projects:f})})]})}function ns(){let{t:e}=K(`common`);return(0,$.jsx)(`main`,{className:`grid h-full place-items-center bg-window px-6`,"aria-labelledby":`not-found-title`,children:(0,$.jsxs)(`section`,{className:`w-full max-w-md rounded-surface bg-raised p-6 shadow-panel`,children:[(0,$.jsx)(`p`,{className:`mb-2 font-mono text-xs text-warning`,children:`404`}),(0,$.jsx)(`h1`,{id:`not-found-title`,className:`text-xl font-semibold`,children:e(`errors.notFoundTitle`)}),(0,$.jsx)(`p`,{className:`mt-2 text-sm leading-6 text-muted-foreground`,children:e(`errors.notFoundDescription`)}),(0,$.jsxs)(c,{className:`mt-5 inline-flex items-center gap-2 text-sm font-medium text-brand-strong`,to:`/`,children:[(0,$.jsx)(Ke,{className:`size-4`,"aria-hidden":`true`}),e(`actions.backToWorkbench`)]})]})})}var rs=C({component:as,errorComponent:is,notFoundComponent:ns});function is({error:e,reset:t}){let{t:n}=K(`common`);return(0,$.jsx)(`main`,{className:`grid h-full place-items-center bg-window px-6`,"aria-labelledby":`route-error-title`,children:(0,$.jsxs)(`section`,{className:`w-full max-w-lg rounded-surface bg-raised p-6 shadow-panel`,children:[(0,$.jsx)(`p`,{className:`mb-2 text-xs font-semibold text-danger uppercase`,children:n(`errors.routeErrorLabel`)}),(0,$.jsx)(`h1`,{id:`route-error-title`,className:`text-xl font-semibold text-foreground`,children:n(`errors.routeErrorTitle`)}),(0,$.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:e.message}),(0,$.jsx)(I,{variant:`ghost`,className:`mt-5 rounded-control bg-control px-3 py-2 text-body font-medium text-foreground shadow-sm transition-colors hover:bg-control-hover`,onClick:t,type:`button`,children:n(`actions.retry`)})]})})}function as(){return(0,$.jsx)(`div`,{className:`h-full min-h-0 bg-window text-foreground`,"data-testid":`app-root`,children:(0,$.jsx)(o,{})})}var os={getItem:()=>null,setItem:()=>void 0};function ss(){try{return typeof window>`u`?os:window.localStorage}catch{return os}}var cs={blurPercentage:0,mode:`none`,overlayOpacity:60,selectedCustomImageId:null},ls=`codexly:workbench-background-changed`,us=`codexly.workbench-background-preference`,ds=3,fs=`codexly-workbench`,ps=2,ms=`background-images`,hs=20971520,gs=new Set([`image/gif`,`image/jpeg`,`image/png`,`image/webp`]);function _s(e){return e===`none`||e===`custom`||e===`bing`}function vs(e){try{let t=JSON.parse(e.getItem(us)??`null`);if(typeof t==`object`&&t&&`version`in t&&t.version===ds&&`blurPercentage`in t&&typeof t.blurPercentage==`number`&&Number.isInteger(t.blurPercentage)&&t.blurPercentage>=0&&t.blurPercentage<=95&&`mode`in t&&_s(t.mode)&&`overlayOpacity`in t&&typeof t.overlayOpacity==`number`&&Number.isInteger(t.overlayOpacity)&&t.overlayOpacity>=0&&t.overlayOpacity<=95&&`selectedCustomImageId`in t&&(t.selectedCustomImageId===null||typeof t.selectedCustomImageId==`string`))return{blurPercentage:t.blurPercentage,mode:t.mode,overlayOpacity:t.overlayOpacity,selectedCustomImageId:t.selectedCustomImageId,...`selectedBingDay`in t&&(t.selectedBingDay===null||typeof t.selectedBingDay==`string`&&/^\d{4}-\d{2}-\d{2}$/u.test(t.selectedBingDay))?{selectedBingDay:t.selectedBingDay}:{}}}catch{}return cs}function ys(e,t){try{t.setItem(us,JSON.stringify({...e,version:ds}))}catch{}}function bs(e){return e.size>0&&e.size<=hs&&gs.has(e.type)}function xs(e,t=crypto.randomUUID()){return{blob:e,createdAt:Date.now(),id:t,name:e.name}}function Ss(e,t,n){let r=e.filter(e=>e.id!==t);return{images:r,selectedCustomImageId:n===t?r[0]?.id??null:n}}function Cs(){return new Promise((e,t)=>{let n=window.indexedDB.open(fs,ps);n.onerror=()=>{t(n.error??Error(`Unable to open background image storage`))},n.onupgradeneeded=()=>{let e=n.result;e.objectStoreNames.contains(ms)&&e.deleteObjectStore(ms),e.createObjectStore(ms,{keyPath:`id`})},n.onsuccess=()=>{e(n.result)}})}function ws(e){return typeof e==`object`&&!!e&&`blob`in e&&e.blob instanceof Blob&&`createdAt`in e&&typeof e.createdAt==`number`&&`id`in e&&typeof e.id==`string`&&`name`in e&&typeof e.name==`string`}async function Ts(){let e=await Cs();return new Promise((t,n)=>{let r=e.transaction(ms,`readonly`),i=r.objectStore(ms).getAll();i.onerror=()=>{e.close(),n(i.error??Error(`Unable to read custom background images`))},i.onsuccess=()=>{t(i.result.filter(ws).sort((e,t)=>e.createdAt-t.createdAt))},r.oncomplete=()=>{e.close()}})}async function Es(e){let t=await Cs();return new Promise((n,r)=>{let i=t.transaction(ms,`readonly`),a=i.objectStore(ms).get(e);a.onerror=()=>{t.close(),r(a.error??Error(`Unable to read custom background image`))},a.onsuccess=()=>{n(ws(a.result)?a.result.blob:null)},i.oncomplete=()=>{t.close()}})}async function Ds(e){if(e.deletedImageIds.length===0&&e.imagesToSave.length===0)return;let t=await Cs();return new Promise((n,r)=>{let i=t.transaction(ms,`readwrite`),a=i.objectStore(ms);e.deletedImageIds.forEach(e=>a.delete(e)),e.imagesToSave.forEach(e=>a.put(e)),i.onerror=()=>{r(i.error??Error(`Unable to update custom background images`))},i.onabort=()=>{t.close()},i.oncomplete=()=>{t.close(),n()}})}async function Os(e,t){await Ds(t),ys(e,ss()),window.dispatchEvent(new CustomEvent(ls,{detail:e}))}function ks(e,t,n){return{height:Math.max(1,Math.round(t*n)),width:Math.max(1,Math.round(e*n))}}function As(e){return[e.source,e.width,e.height,e.devicePixelRatio,e.blurRadius].join(`\0`)}function js(e,t,n,r,i){let a=n+i*2,o=r+i*2,s=Math.max(a/e,o/t),c=e*s,l=t*s;return{height:l,width:c,x:(n-c)/2,y:(r-l)/2}}function Ms(e){let t=new Image;return t.decoding=`async`,t.src=e,t.decode().then(()=>t)}async function Ns(e,t){let n=await Ms(t.source);if(n.naturalWidth===0||n.naturalHeight===0)throw Error(`Decoded workbench background has no dimensions`);let r=ks(t.width,t.height,t.devicePixelRatio);e.width=r.width,e.height=r.height;let i=e.getContext(`2d`);if(i===null)throw Error(`Canvas 2D context is unavailable`);let a=js(n.naturalWidth,n.naturalHeight,t.width,t.height,t.blurRadius),o=t.devicePixelRatio;i.clearRect(0,0,r.width,r.height),i.save(),t.blurRadius>0&&(i.filter=`blur(${String(t.blurRadius*o)}px)`),i.drawImage(n,a.x*o,a.y*o,a.width*o,a.height*o),i.restore()}function Ps(e){try{let t=document.createElement(`canvas`);t.width=32,t.height=32;let n=t.getContext(`2d`,{willReadFrequently:!0});return n===null?null:(n.drawImage(e,0,0,t.width,t.height),n.getImageData(0,0,t.width,t.height).data)}catch{return null}}var Fs=Math.sqrt(1.05*.05)-.05,Is=120;function Ls(e){let t=e/255;return t<=.04045?t/12.92:((t+.055)/1.055)**2.4}function Rs(e){let t=[];for(let n=0;n+3<e.length;n+=4){if(e[n+3]===0)continue;let r=Ls(e[n]??0),i=Ls(e[n+1]??0),a=Ls(e[n+2]??0);t.push(.2126*r+.7152*i+.0722*a)}return t.length===0?null:(t.sort((e,t)=>e-t),(t[Math.floor(t.length/2)]??0)>Fs?`light`:`dark`)}function zs(e){return String(e).padStart(2,`0`)}function Bs(e){return`/v1/workbench-background/bing?day=${`${String(e.getFullYear())}-${zs(e.getMonth()+1)}-${zs(e.getDate())}`}`}function Vs(e){let t=new Date(e.getFullYear(),e.getMonth(),e.getDate()+1);return Math.max(1e3,t.getTime()-e.getTime()+1e3)}function Hs(e){return Math.round((e/95*20+2**-52)*100)/100}function Us({backgroundTone:e,canvasRef:t,children:n,imageLoaded:r,preference:i}){return(0,$.jsxs)(`div`,{className:`workbench-background h-full min-h-0 overflow-hidden`,"data-background-mode":i.mode,"data-background-tone":e??void 0,"data-has-image":r,"data-workbench-background":`true`,children:[i.mode===`none`?null:(0,$.jsx)(`canvas`,{"aria-hidden":`true`,className:`workbench-background__canvas`,"data-workbench-background-canvas":`true`,ref:t,style:{opacity:+!!r}}),r?(0,$.jsx)(`div`,{"aria-hidden":`true`,className:`workbench-background__overlay`,"data-workbench-background-overlay":`true`,style:{opacity:i.overlayOpacity/100}}):null,n]})}function Ws({children:e}){let[t,n]=(0,Y.useState)(null),[r,i]=(0,Y.useState)(()=>vs(ss())),[a,o]=(0,Y.useState)(null),[s,c]=(0,Y.useState)(()=>Bs(new Date)),[l,u]=(0,Y.useState)(!1),d=(0,Y.useRef)(null),f=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{let e=e=>{if(e instanceof CustomEvent){let t=e.detail;i(t)}};return window.addEventListener(ls,e),()=>{window.removeEventListener(ls,e)}},[]),(0,Y.useEffect)(()=>{if(r.mode!==`custom`){o(null);return}let e=!1,t=null,n=r.selectedCustomImageId;if(n===null){o(null);return}return Es(n).then(n=>{e||n===null||(t=URL.createObjectURL(n),o(t))}).catch(()=>{e||o(null)}),()=>{e=!0,t!==null&&URL.revokeObjectURL(t)}},[r.mode,r.selectedCustomImageId]),(0,Y.useEffect)(()=>{if(r.mode!==`bing`)return;let e,t=()=>{e=setTimeout(()=>{c(Bs(new Date)),t()},Vs(new Date))};return t(),()=>{clearTimeout(e)}},[r.mode]);let p=r.mode===`custom`?a:r.mode===`bing`?r.selectedBingDay?`/v1/workbench-background/bing/image?day=${encodeURIComponent(r.selectedBingDay)}`:s:null;return(0,Y.useEffect)(()=>{u(!1),n(null),f.current=null},[p]),(0,Y.useEffect)(()=>{if(p===null)return;let e=!1,t,i=0,a,o=()=>{let t=d.current;if(t===null||t.clientWidth===0||t.clientHeight===0)return;let a=t.getBoundingClientRect(),o={blurRadius:Hs(r.blurPercentage),devicePixelRatio:Math.max(1,window.devicePixelRatio||1),height:a.height,source:p,width:a.width},s=As(o);if(f.current===s)return;let c=++i;Ns(t,o).then(()=>{if(e||c!==i)return;f.current=s;let r=Ps(t);n(r===null?null:Rs(r)),u(!0)}).catch(()=>{e||c!==i||(f.current=null,n(null),u(!1))})},s=()=>{clearTimeout(t),t=setTimeout(o,Is)},c=()=>{a?.removeEventListener(`change`,l),a=window.matchMedia(`(resolution: ${String(window.devicePixelRatio)}dppx)`),a.addEventListener(`change`,l)};function l(){c(),s()}return o(),c(),window.addEventListener(`resize`,s),()=>{e=!0,i+=1,clearTimeout(t),window.removeEventListener(`resize`,s),a?.removeEventListener(`change`,l)}},[p,r.blurPercentage]),(0,$.jsx)(Us,{backgroundTone:t,canvasRef:d,imageLoaded:l,preference:r,children:e})}var Gs=(0,Y.lazy)(()=>Pi().then(e=>({default:e.GlobalSettingsPage}))),Ks=T({component:qs,getParentRoute:()=>rs,path:`/`});function qs(){let{t:e}=K(`common`),t=zi(),{client:n,error:r,isPending:i,projects:a}=vr(),{retry:o}=yr(),s=w(),c=m(),l=_(jt(n)),u=y({...Nt(n),onSuccess(e){c.setQueryData([`app-info`],e)}}),d=_(Bn(n)),f=_(zn(n)),p=y({...Vn(n),onSuccess(e){c.setQueryData([`settings`],e)}}),[h,g]=(0,Y.useState)(null),[v]=(0,Y.useState)(()=>Wa(Ua())),b=Ya(a.map(e=>e.id),v);return(0,Y.useEffect)(()=>{if(b!==void 0){s({params:{projectId:b},replace:!0,to:`/p/$projectId`});return}!i&&a.length===0&&s({replace:!0,to:`/temporary`})},[b,i,s,a.length]),r===null?i||b!==void 0||a.length===0?(0,$.jsx)(`main`,{className:`grid h-full place-items-center text-sm text-muted-foreground`,children:e(`app.loadingProjects`)}):(0,$.jsxs)(Ws,{children:[(0,$.jsxs)(`div`,{hidden:h!==null,className:`workbench-shell h-full min-h-0 overflow-hidden bg-window`,"data-inspector-open":`false`,"data-sidebar-open":`true`,children:[(0,$.jsx)(ts,{...l.data===void 0?{}:{appInfo:l.data},connectionState:`connected`,onClose:()=>void 0,onOpenFile:()=>void 0,onOpenSettings:e=>{g(e)}}),(0,$.jsx)(`main`,{className:`grid min-h-0 min-w-0 place-items-center bg-content text-sm text-muted-foreground`,children:e(`app.noProjects`)})]}),h===null?null:(0,$.jsx)(Y.Suspense,{fallback:null,children:(0,$.jsx)(Gs,{client:n,...t.status===void 0?{}:{accessMode:t.status.mode},...l.data===void 0?{}:{appInfo:l.data},appInfoError:l.error,initialSection:h,apps:[],error:d.error??f.error,isPending:d.isPending||f.isPending,isAppInfoPending:l.isPending,isAppUpdatePending:u.isPending,models:f.data?.data??[],onClose:()=>{let e=h===`about`?`#global-settings-about-trigger`:`#global-settings-trigger`;g(null),requestAnimationFrame(()=>{document.querySelector(e)?.focus()})},onLogoutAccess:t.logout,onRetry:()=>Promise.all([d.refetch(),f.refetch()]),onRetryAppInfo:()=>l.refetch(),onSave:e=>p.mutateAsync(e).then(()=>void 0),onUpdate:e=>u.mutateAsync(e).then(()=>void 0),...d.data===void 0?{}:{settings:d.data.settings}})})]}):(0,$.jsx)(`main`,{className:`flex h-full min-h-0`,children:(0,$.jsx)(Vi,{onRetry:()=>void o()})})}var Js=T({component:Ys,getParentRoute:()=>rs,id:`workbench`});function Ys(){let e=h({select:e=>{let t=e.matches.at(-1)?.params;return{board:e.location.pathname.endsWith(`/board`),scheduled:e.location.pathname.endsWith(`/scheduled`),extensionSection:t!==void 0&&`section`in t?t.section:void 0,projectId:t!==void 0&&`projectId`in t?t.projectId:void 0,taskId:t!==void 0&&`taskId`in t?t.taskId:void 0,todoId:t!==void 0&&`todoId`in t?t.todoId:void 0}}}),t=e.projectId??`temporary`,n=e.projectId===void 0;return(0,$.jsx)(Ws,{children:(0,$.jsx)(Qs,{board:e.board,...e.extensionSection===void 0?{}:{extensionSection:e.extensionSection},scheduled:e.scheduled,...e.todoId===void 0?{}:{todoId:e.todoId},projectId:t,temporary:n,...e.taskId===void 0?{}:{taskId:e.taskId}})})}function Xs(){return n(()=>import(`./workbench-shell-dY_e5m74.js`).then(e=>e.t),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10,11,22,12,23,24,25,26,14,27,17,28,18,29,30]))}var Zs=(0,Y.lazy)(()=>Xs().then(e=>({default:e.WorkbenchShell})));function Qs(e){let{t}=K(`common`);return(0,$.jsx)(Y.Suspense,{fallback:(0,$.jsx)(`main`,{className:`grid h-full place-items-center text-sm text-muted-foreground`,role:`status`,children:t(`app.loadingProjects`)}),children:(0,$.jsx)(Zs,{...e})})}var $s=T({getParentRoute:()=>Js,path:`p/$projectId`}),ec=T({getParentRoute:()=>Js,path:`p/$projectId/todo/$todoId`}),tc=1048576,nc=new Set([`gif`,`jpeg`,`jpg`,`png`,`webp`]),rc=new Set(`7z.avi.dmg.doc.docm.docx.exe.gz.key.mov.mp3.mp4.numbers.odp.ods.odt.pages.pdf.pkg.ppt.pptm.pptx.rar.tar.tgz.wav.xls.xlsb.xlsm.xlsx.zip`.split(`.`));function ic(e){let t=e.split(/[\\/]/u).at(-1)?.toLowerCase()??``,n=t.includes(`.`)?t.split(`.`).at(-1)??``:``;return nc.has(n)?`image`:rc.has(n)?`system`:`source`}function ac(e){return e.kind===`image`?`image`:e.kind===`text`?`source`:e.size>1048576?`system`:ic(e.name)===`source`?`source`:`system`}var oc=`codexly-project-file-popup`,sc=`popup,width=1100,height=800,resizable=yes,scrollbars=yes`;function cc(e){if(e==null||e===``)return null;let t=typeof e==`number`?e:Number(e);if(!Number.isSafeInteger(t)||t<1)throw TypeError(`Project file popup lineNumber must be a positive integer`);return t}function lc(e){let t=e.path,n=e.previewKind,r=e.rootPath;if(typeof t!=`string`||t.length===0)throw TypeError(`Project file popup path is required`);if(n!==`image`&&n!==`source`)throw TypeError(`Project file popup previewKind is invalid`);if(r!==void 0&&typeof r!=`string`)throw TypeError(`Project file popup rootPath is invalid`);return{lineNumber:cc(e.lineNumber),path:t,previewKind:n,...r===void 0?{}:{rootPath:r}}}function uc(e,t,n,r){let i=ic(n.path);if(i===`system`)throw TypeError(`System-default files do not have an internal popup URL`);let a=new URL(`/p/${encodeURIComponent(t)}/file`,e);return a.searchParams.set(`path`,n.path),a.searchParams.set(`previewKind`,i),n.lineNumber!==null&&a.searchParams.set(`lineNumber`,String(n.lineNumber)),r!==void 0&&a.searchParams.set(`rootPath`,r),a.href}function dc({onOpenSystemDefault:e,projectId:t,reference:n,rootPath:r}){if(ic(n.path)===`system`){e(n.path);return}let i=uc(window.location.href,t,n,r);window.open(i,oc,sc)}var fc=T({component:hc,getParentRoute:()=>rs,path:`p/$projectId/file`,validateSearch:lc});function pc(){return n(()=>import(`./project-file-popup-page-DJCEoy22.js`),__vite__mapDeps([31,1,3,23,2,4,5,6,7,8,9,10,11,24,25,26,14]))}var mc=(0,Y.lazy)(()=>pc().then(e=>({default:e.ProjectFilePopupPage})));function hc(){let{projectId:e}=fc.useParams(),t=fc.useSearch();return(0,$.jsx)(Y.Suspense,{fallback:null,children:(0,$.jsx)(mc,{projectId:e,search:t})})}var gc=T({getParentRoute:()=>Js,path:`p/$projectId/extensions/$section`}),_c=T({getParentRoute:()=>Js,path:`temporary/extensions/$section`}),vc=T({getParentRoute:()=>Js,path:`p/$projectId/t/$taskId`}),yc=T({getParentRoute:()=>Js,path:`p/$projectId/scheduled`}),bc=T({getParentRoute:()=>Js,path:`temporary/scheduled`}),xc=T({getParentRoute:()=>Js,path:`p/$projectId/board`}),Sc=T({getParentRoute:()=>Js,path:`temporary/board`}),Cc=T({getParentRoute:()=>Js,path:`temporary`}),wc=T({getParentRoute:()=>Js,path:`temporary/t/$taskId`}),Tc=rs.addChildren([Ks,fc,Js.addChildren([$s,yc,gc,ec,xc,vc,Cc,bc,_c,Sc,wc])]),Ec=d({defaultPreload:`intent`,routeTree:Tc,scrollRestoration:!0});function Dc(){return(0,$.jsx)(f,{router:Ec})}function Oc({error:e,loading:t,onPair:n,onRetry:r,pairing:i}){let{t:a}=K(`common`),[o,s]=(0,Y.useState)(``);return(0,$.jsx)(`main`,{className:`access-gate grid h-full min-h-0 place-items-center overflow-y-auto bg-window px-5 py-10 text-foreground`,children:(0,$.jsxs)(`section`,{"aria-labelledby":`access-gate-title`,className:`w-full max-w-sm`,children:[(0,$.jsx)(`h1`,{className:`mb-8`,id:`access-gate-title`,children:(0,$.jsx)(`img`,{alt:`Codexly`,className:`h-10 w-auto`,height:`40`,src:`/brand/codexly-logo.svg`,width:`165`})}),t?(0,$.jsx)(`p`,{className:`text-body-small text-muted-foreground`,role:`status`,children:a(`access.checking`)}):e===`load`?(0,$.jsxs)(`div`,{className:`space-y-4`,role:`alert`,children:[(0,$.jsx)(`p`,{className:`text-body-small text-danger`,children:a(`access.loadError`)}),(0,$.jsxs)(I,{onClick:r,size:`lg`,type:`button`,variant:`secondary`,children:[(0,$.jsx)(st,{"aria-hidden":`true`,className:`size-4`}),a(`actions.retry`)]})]}):(0,$.jsxs)(`form`,{className:`space-y-5`,onSubmit:e=>{e.preventDefault();let t=o.trim();t.length>0&&!i&&n(t)},children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`p`,{className:`text-heading font-semibold`,children:a(`access.pairingTitle`)}),(0,$.jsx)(`p`,{className:`mt-1 text-body-small text-muted-foreground`,children:a(`access.pairingDescription`)})]}),(0,$.jsx)(`label`,{className:`block text-body-small font-medium`,htmlFor:`access-pairing-code`,children:a(`access.codeLabel`)}),(0,$.jsxs)(`div`,{className:`flex h-10 items-center rounded-control border border-separator-strong bg-panel focus-within:border-brand focus-within:shadow-focus`,children:[(0,$.jsx)(Pe,{"aria-hidden":`true`,className:`ml-3 size-4 shrink-0 text-muted-foreground`}),(0,$.jsx)(z,{"aria-label":a(`access.codeLabel`),autoComplete:`current-password`,className:`access-code-input min-w-0 flex-1 bg-transparent px-3 font-mono text-body`,id:`access-pairing-code`,onChange:e=>{s(e.currentTarget.value)},spellCheck:!1,type:`password`,value:o,variant:`embedded`}),(0,$.jsx)(I,{"aria-label":a(`access.pair`),className:`mr-1`,disabled:i||o.trim().length===0,title:a(`access.pair`),type:`submit`,size:`icon-compact`,children:(0,$.jsx)($e,{"aria-hidden":`true`,className:`size-4`})})]}),i?(0,$.jsx)(`p`,{className:`text-meta text-muted-foreground`,role:`status`,children:a(`access.pairing`)}):null]})]})})}var kc=[`provider-connection`];function Ac(e){return e?.state===`pending`&&1e3}function jc(e=X){return s({queryFn:({signal:t})=>e.getProviderConnection({signal:t}),queryKey:kc,refetchInterval:e=>Ac(e.state.data)})}function Mc(e,t){e.setQueryData(kc,t.status),t.models!==void 0&&e.setQueryData([`models`],t.models)}async function Nc(e){await Promise.all([e.invalidateQueries({exact:!0,queryKey:[`settings`]}),e.invalidateQueries({predicate:e=>e.queryKey[0]===`projects`&&e.queryKey[2]===`defaults`})])}function Pc(e,t=X){return g({mutationFn:()=>t.startOfficialProviderLogin(),mutationKey:[`provider-connection`,`official-login`],onSuccess:async t=>{Mc(e,t),await Nc(e)},scope:{id:`provider-connection`}})}function Fc(e,t=X){return g({mutationFn:e=>t.cancelProviderLogin(e),mutationKey:[`provider-connection`,`official-login`,`cancel`],onSuccess:async t=>{Mc(e,t),await Nc(e)},scope:{id:`provider-connection`}})}function Ic(e,t=X){return g({mutationFn:()=>t.logoutProvider(),mutationKey:[`provider-connection`,`logout`],onSuccess:async t=>{Mc(e,t),await Nc(e)},scope:{id:`provider-connection`}})}async function Lc(e,t,n=X){let r=await n.configureCustomProvider(e);return Mc(t,r),await Nc(t),r}q.addResourceBundle(`zh-CN`,`settings`,{provider:{connection:`服务连接`,credentials:`连接配置`,account:`ChatGPT 账号`,showKey:`显示密钥`,hideKey:`隐藏密钥`,automaticModels:`自动获取模型`,modelCount:`{{count}} 个模型`,connecting:`正在连接`}},!0),q.addResourceBundle(`en`,`settings`,{provider:{connection:`Service connection`,credentials:`Connection settings`,account:`ChatGPT account`,showKey:`Show API key`,hideKey:`Hide API key`,automaticModels:`Automatic model discovery`,modelCount_one:`{{count}} model`,modelCount_other:`{{count}} models`,connecting:`Connecting`}},!0);var Rc=_t({extend:{theme:{text:[`caption`,`meta`,`label`,`body-small`,`body`,`heading`,`title`,`display`]}}});function zc(...e){return Rc(mt(e))}function Bc({disabled:e,models:t,onAdd:n,onChange:r,onRemove:i}){let{t:a}=K(`settings`),o=(0,Y.useId)();return(0,$.jsxs)(`section`,{"aria-labelledby":o,className:`grid gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`h2`,{className:`text-body font-semibold`,id:o,children:a(`provider.models`)}),t.length===0?null:(0,$.jsx)(`span`,{className:`text-label tabular-nums text-subtle-foreground`,children:a(`provider.modelCount`,{count:t.length})})]}),(0,$.jsxs)(I,{className:`h-8 gap-1.5 text-body-small`,disabled:e||t.length>=1e3,onClick:n,type:`button`,variant:`outline`,children:[(0,$.jsx)(St,{"aria-hidden":`true`,className:`size-3.5`}),a(`provider.addModel`)]})]}),t.length===0?(0,$.jsxs)(`div`,{className:`flex min-h-20 items-center gap-3 border-y border-separator text-muted-foreground`,children:[(0,$.jsx)(at,{"aria-hidden":`true`,className:`size-5 shrink-0 text-subtle-foreground`}),(0,$.jsx)(`span`,{className:`text-body-small`,children:a(`provider.automaticModels`)})]}):null,t.length===0?null:(0,$.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)_2rem] gap-3 border-b border-separator pb-2 text-label font-medium text-muted-foreground`,children:[(0,$.jsx)(`span`,{children:a(`provider.modelId`)}),(0,$.jsx)(`span`,{children:a(`provider.modelName`)}),(0,$.jsx)(`span`,{})]}),t.map(t=>(0,$.jsxs)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)_2rem] items-center gap-3`,children:[(0,$.jsxs)(`label`,{className:`grid min-w-0 gap-1`,children:[(0,$.jsx)(`span`,{className:`sr-only`,children:a(`provider.modelId`)}),(0,$.jsx)(z,{autoCapitalize:`none`,autoComplete:`off`,className:`font-mono`,disabled:e,maxLength:256,onChange:e=>{r(t.key,`id`,e.currentTarget.value)},spellCheck:!1,placeholder:`gpt-5.4`,value:t.id,variant:`outline`})]}),(0,$.jsxs)(`label`,{className:`grid min-w-0 gap-1`,children:[(0,$.jsx)(`span`,{className:`sr-only`,children:a(`provider.modelName`)}),(0,$.jsx)(z,{autoComplete:`off`,disabled:e,maxLength:256,placeholder:`GPT-5.4`,onChange:e=>{r(t.key,`name`,e.currentTarget.value)},value:t.name,variant:`outline`})]}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":a(`provider.removeModel`),className:`text-subtle-foreground hover:text-danger`,disabled:e,onClick:()=>{i(t.key)},size:`icon-compact`,type:`button`,variant:`ghost`,children:(0,$.jsx)(xt,{"aria-hidden":`true`,className:`size-4`})})}),(0,$.jsx)(H,{children:a(`provider.removeModel`)})]})]},t.key))]})}var Vc=[{value:`official`,icon:Je},{value:`custom`,icon:at}];function Hc({apiKey:e,baseUrl:t,error:n,isBusy:r,mode:i,models:a,onAddModel:o,onApiKeyChange:s,onBaseUrlChange:c,onCancelLogin:l,onConfigureCustom:u,onLogout:d,onModelChange:f,onModeChange:p,onRetry:m,onRemoveModel:h,onStartOfficialLogin:g,status:_}){let{t:v}=K(`settings`),y=(0,Y.useId)(),[b,x]=(0,Y.useState)(!1),S=_?.mode===i&&_.state===`connected`,C=_?.mode===`official`&&_.state===`pending`,w=r||i===`official`&&C,T=v(w?i===`official`&&C?`provider.waiting`:`provider.connecting`:S?`provider.connected`:`provider.disconnected`),E=w?Fe:S?Me:qe,D=S&&_.account?.type===`chatgpt`?_.account:null;return(0,$.jsxs)(`div`,{className:`w-full min-w-0 space-y-6`,children:[(0,$.jsxs)(`section`,{"aria-label":v(`provider.connection`),children:[(0,$.jsxs)(`div`,{className:`mb-3 flex min-h-6 flex-wrap items-center justify-between gap-3`,children:[(0,$.jsx)(`h2`,{className:`text-body font-semibold`,children:v(`provider.connection`)}),(0,$.jsxs)(`span`,{className:zc(`inline-flex items-center gap-1.5 text-label`,S?`text-brand`:`text-muted-foreground`),role:`status`,children:[(0,$.jsx)(E,{"aria-hidden":`true`,className:zc(`size-3.5 shrink-0`,w&&`motion-safe:animate-spin`)}),T]})]}),(0,$.jsx)(`div`,{"aria-label":v(`provider.mode`),className:`grid w-full grid-cols-2 gap-1 rounded-control bg-control p-1`,role:`group`,children:Vc.map(({value:e,icon:t})=>(0,$.jsxs)(I,{"aria-pressed":i===e,className:zc(`h-10 min-w-0 gap-2 text-body-small`,i===e?`bg-raised text-foreground shadow-control`:`text-muted-foreground`),disabled:r,onClick:()=>{x(!1),p(e)},type:`button`,variant:`ghost`,children:[(0,$.jsx)(t,{"aria-hidden":`true`,className:`size-4 shrink-0`}),v(`provider.${e}`)]},e))})]}),i===`official`?(0,$.jsx)(`section`,{"aria-label":v(`provider.account`),className:`border-y border-separator py-6`,children:(0,$.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,$.jsx)(`div`,{className:`grid size-12 shrink-0 place-items-center rounded-control bg-control text-foreground`,children:(0,$.jsx)(Je,{"aria-hidden":`true`,className:`size-6`})}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`h2`,{className:`text-body font-semibold`,children:v(`provider.account`)}),(0,$.jsx)(`p`,{className:`mt-1 break-all text-body-small text-muted-foreground`,children:D?.email??T}),(0,$.jsxs)(I,{className:`mt-5 h-9 gap-2`,disabled:r,onClick:C?l:S?d:g,type:`button`,variant:C||S?`outline`:`default`,children:[r?(0,$.jsx)(Fe,{"aria-hidden":`true`,className:`size-4 motion-safe:animate-spin`}):C?(0,$.jsx)(yt,{"aria-hidden":`true`,className:`size-4`}):S?(0,$.jsx)(Ct,{"aria-hidden":`true`,className:`size-4`}):(0,$.jsx)(Je,{"aria-hidden":`true`,className:`size-4`}),v(C?`provider.cancelLogin`:S?`provider.logout`:`provider.login`)]})]})]})}):(0,$.jsxs)(`form`,{className:`space-y-6`,onSubmit:e=>{e.preventDefault(),!r&&t.trim()!==``&&!Uc(a)&&u()},children:[(0,$.jsxs)(`section`,{"aria-labelledby":`${y}-credentials`,children:[(0,$.jsx)(`h2`,{className:`mb-3 text-body font-semibold`,id:`${y}-credentials`,children:v(`provider.credentials`)}),(0,$.jsxs)(`div`,{className:`divide-y divide-separator border-y border-separator`,children:[(0,$.jsxs)(`div`,{className:`grid sm:grid-cols-[minmax(9rem,1fr)_minmax(0,22rem)] items-center gap-4 py-4`,children:[(0,$.jsx)(`label`,{className:`text-body-small font-medium`,htmlFor:`${y}-url`,children:v(`provider.baseUrl`)}),(0,$.jsx)(z,{autoCapitalize:`none`,autoComplete:`url`,className:`font-mono`,disabled:r,id:`${y}-url`,inputMode:`url`,maxLength:2048,onChange:e=>{c(e.currentTarget.value)},placeholder:`https://api.example.com/v1`,spellCheck:!1,type:`url`,value:t,variant:`outline`})]}),(0,$.jsxs)(`div`,{className:`grid sm:grid-cols-[minmax(9rem,1fr)_minmax(0,22rem)] items-center gap-4 py-4`,children:[(0,$.jsx)(`label`,{className:`text-body-small font-medium`,htmlFor:`${y}-key`,children:v(`provider.apiKey`)}),(0,$.jsxs)(`div`,{className:`relative min-w-0`,children:[(0,$.jsx)(Pe,{"aria-hidden":`true`,className:`pointer-events-none absolute left-3 top-1/2 size-3.5 -translate-y-1/2 text-subtle-foreground`}),(0,$.jsx)(z,{autoComplete:`new-password`,className:`pl-9 pr-10 font-mono`,disabled:r,id:`${y}-key`,maxLength:16384,onChange:e=>{s(e.currentTarget.value)},spellCheck:!1,type:b?`text`:`password`,value:e,variant:`outline`}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":v(b?`provider.hideKey`:`provider.showKey`),"aria-pressed":b,className:`absolute right-1 top-1/2 -translate-y-1/2 text-muted-foreground`,disabled:r,onClick:()=>{x(e=>!e)},size:`icon-sm`,type:`button`,variant:`ghost`,children:b?(0,$.jsx)(Ge,{"aria-hidden":`true`,className:`size-4`}):(0,$.jsx)(Ue,{"aria-hidden":`true`,className:`size-4`})})}),(0,$.jsx)(H,{children:v(b?`provider.hideKey`:`provider.showKey`)})]})]})]})]})]}),(0,$.jsx)(Bc,{disabled:r,models:a,onAdd:o,onChange:f,onRemove:h}),(0,$.jsx)(`div`,{className:`flex justify-end border-t border-separator pt-4`,children:(0,$.jsxs)(I,{className:`h-9 gap-2`,disabled:r||t.trim()===``||Uc(a),type:`submit`,children:[r?(0,$.jsx)(Fe,{"aria-hidden":`true`,className:`size-4 motion-safe:animate-spin`}):(0,$.jsx)(at,{"aria-hidden":`true`,className:`size-4`}),v(r?`provider.connecting`:S?`provider.reconnect`:`provider.connect`)]})})]}),n===null?null:(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-3 border-l-2 border-danger pl-3 text-body-small`,role:`alert`,children:[(0,$.jsx)(`p`,{className:`min-w-0 break-words pt-1 text-danger`,children:n}),(0,$.jsxs)(U,{children:[(0,$.jsx)(G,{asChild:!0,children:(0,$.jsx)(I,{"aria-label":v(`provider.retry`),className:`shrink-0`,disabled:r,onClick:m,size:`icon-sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(et,{"aria-hidden":`true`,className:`size-4`})})}),(0,$.jsx)(H,{children:v(`provider.retry`)})]})]})]})}function Uc(e){return e.some(e=>e.id.trim().length===0||e.name.trim().length===0)}var Wc=t({ProviderConnectionPanel:()=>qc,createCustomProviderInput:()=>Gc});function Gc({apiKey:e,baseUrl:t,models:n}){let r=n.map(({id:e,name:t})=>({id:e.trim(),name:t.trim()}));return{...e.length===0?{}:{apiKey:e},baseUrl:t.trim(),...r.length===0?{}:{models:r}}}function Kc(e){let t=new URL(e);if(t.protocol!==`https:`)throw Error(`Official login URL must use HTTPS`);window.open(t,`_blank`,`noopener,noreferrer`)}function qc(){let e=m(),t=_(jc()),n=y(Pc(e)),r=y(Fc(e)),i=y(Ic(e)),[a,o]=(0,Y.useState)(`official`),[s,c]=(0,Y.useState)(``),[l,u]=(0,Y.useState)(``),[d,f]=(0,Y.useState)([]),p=(0,Y.useRef)(1),h=(0,Y.useRef)(void 0),[g,v]=(0,Y.useState)(!1),b=t.data;(0,Y.useEffect)(()=>{b!==void 0&&(o(b.mode),b.customBaseUrl!==null&&c(b.customBaseUrl))},[b]),(0,Y.useEffect)(()=>{if(b===void 0)return;let t=h.current,n=t?.mode!==b.mode||t.customBaseUrl!==b.customBaseUrl;b.state===`connected`&&(t?.state!==`connected`||n)&&e.invalidateQueries({exact:!0,queryKey:[`models`]}),h.current={customBaseUrl:b.customBaseUrl,mode:b.mode,state:b.state}},[e,b]);let x=n.isPending||r.isPending||i.isPending||g,S=t.error?.message??null;return(0,$.jsx)(Hc,{apiKey:l,baseUrl:s,error:S,isBusy:x,mode:a,models:d,onAddModel:()=>{let e=`custom-model-${String(p.current)}`;p.current+=1,f(t=>[...t,{id:``,key:e,name:``}])},onApiKeyChange:u,onBaseUrlChange:c,onCancelLogin:()=>{let e=b?.pendingLogin?.loginId;e!==void 0&&r.mutateAsync(e).catch(()=>void 0)},onConfigureCustom:()=>{v(!0),Lc(Gc({apiKey:l,baseUrl:s,models:d}),e).then(()=>{u(``),yi()}).catch(e=>{Q(e)}).finally(()=>{u(``),v(!1)})},onLogout:()=>{i.mutateAsync().catch(()=>void 0)},onModelChange:(e,t,n)=>{f(r=>r.map(r=>r.key===e?{...r,[t]:n}:r))},onModeChange:e=>{o(e)},onRetry:()=>{t.refetch()},onRemoveModel:e=>{f(t=>t.filter(t=>t.key!==e))},onStartOfficialLogin:()=>{n.mutateAsync().then(e=>{try{Kc(e.authUrl)}catch(e){Q(e)}}).catch(()=>void 0)},status:b})}function Jc({children:e}){let{t}=K(`settings`),n=_(jc());return n.data?.state===`connected`?e:n.isPending?(0,$.jsx)(`main`,{className:`grid h-full min-h-0 place-items-center bg-window text-body-small text-muted-foreground`,children:t(`provider.loading`)}):(0,$.jsx)(`main`,{className:`h-full min-h-0 overflow-y-auto bg-window px-5 py-8 sm:px-8 sm:py-12`,children:(0,$.jsxs)(`div`,{className:`mx-auto w-full max-w-[42rem]`,children:[(0,$.jsxs)(`header`,{className:`mb-8 border-b border-separator pb-5`,children:[(0,$.jsx)(`h1`,{className:`text-xl font-semibold text-foreground`,children:`Codexly`}),(0,$.jsx)(`p`,{className:`mt-1 text-body-small text-muted-foreground`,children:t(`provider.title`)})]}),n.error===null?(0,$.jsx)(qc,{}):(0,$.jsxs)(`div`,{className:`grid justify-items-start gap-3`,role:`alert`,children:[(0,$.jsx)(`p`,{className:`text-body-small text-danger`,children:t(`provider.errors.load`)}),(0,$.jsx)(I,{onClick:()=>void n.refetch(),type:`button`,variant:`outline`,children:t(`provider.retry`)})]})]})})}var Yc={attachments:[],content:[]},Xc=`codexly:composer-draft:v1:`,Zc=(0,Y.createContext)(void 0);function Qc(e,t){return JSON.stringify([e,t??`draft`])}function $c(e){return e.content.length===0&&e.attachments.length===0}function el(e){return e.attachments.map(e=>e.previewUrl)}function tl(e){for(let t of new Set(el(e)))t.startsWith(`blob:`)&&URL.revokeObjectURL(t)}function nl(e,t){let n=new Set(el(t));for(let t of new Set(el(e)))!n.has(t)&&t.startsWith(`blob:`)&&URL.revokeObjectURL(t)}function rl(){try{return globalThis.localStorage}catch{return}}function il(e,t){try{let n=JSON.parse(e?.getItem(`${Xc}${t}`)??`null`);if(typeof n!=`object`||!n)return;let r=n;return!Array.isArray(r.content)||!Array.isArray(r.attachments)?void 0:r}catch{return}}function al(e,t,n){if(e===void 0)return;let r=`${Xc}${t}`;if(n===void 0){e.removeItem(r);return}e.setItem(r,JSON.stringify({attachments:n.attachments.filter(e=>e.source===`host`),content:n.content}))}function ol(e=rl()){let t=new Map,n=n=>{let r=t.get(n);if(r!==void 0)return r;let i=il(e,n);return i!==void 0&&t.set(n,i),i??Yc};return{clear:n=>{let r=t.get(n);r!==void 0&&(tl(r),t.delete(n)),al(e,n,void 0)},dispose:()=>{t.forEach(tl),t.clear()},read:n,update:(r,i)=>{let a=n(r),o=i(a);nl(a,o),$c(o)?(t.delete(r),al(e,r,void 0)):(t.set(r,o),al(e,r,o))}}}function sl({children:e}){let t=(0,Y.useRef)(ol()).current;return(0,Y.useEffect)(()=>()=>{t.dispose()},[t]),(0,$.jsx)(Zc.Provider,{value:t,children:e})}function cl(){let e=(0,Y.useContext)(Zc);if(e===void 0)throw Error(`useComposerDraftStore must be used inside ComposerDraftProvider`);return e}function ll(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function ul(e,t,n){let r=new Map,i=async r=>{let i;try{i=ll(JSON.parse(t.getItem(`codexly:project-todos:v1:${r}`)??`null`))?.todos}catch{return}if(Array.isArray(i))for(let a of i){let i=ll(a)?.id;if(typeof i!=`string`||i.length===0)continue;let o=`codexly:project-todo:v1:${r}:${i}`;try{if(t.getItem(`${o}:imported`)===`1`)continue;let n=ll(JSON.parse(t.getItem(o)??`null`)),a=ll(n?.workingDraft??n?.draft),s=a?.attachments,c={content:a?.content,attachments:Array.isArray(s)?s.map(e=>{let t=ll(e);return{id:t?.id,kind:t?.kind,mediaType:t?.mediaType,name:t?.name,size:t?.size}}):void 0};await e.importProjectTodo(r,i,c,{idempotencyKey:`import:${i}`}),t.setItem(`${o}:imported`,`1`)}catch(e){n(e)}}};return e=>{let t=r.get(e);return t===void 0&&(t=i(e),r.set(e,t)),t}}var dl=e=>[`projects`,e,`todos`];function fl(e,t,n){return{queryKey:dl(e),queryFn:async({signal:r})=>(await n?.(e),t.listProjectTodos(e,{signal:r})),refetchInterval:1e4,refetchOnWindowFocus:!0,staleTime:0}}function pl(e){return{content:[...e.content],attachments:e.attachments.map(e=>{if(e.source!==`host`)throw Error(`Upload attachments before saving a project todo`);return{id:e.id,kind:e.kind,mediaType:e.mediaType,name:e.name,size:e.size}})}}function ml(e){return{...e,draft:{content:e.draft.content,attachments:e.draft.attachments.map(t=>({...t,attachment:t,source:`host`,previewUrl:Ee(``,e.projectId,t.id)}))}}}function hl(e,t){let n=new Set(t?.attachments.map(e=>e.previewUrl));for(let t of e?.attachments??[])t.previewUrl.startsWith(`blob:`)&&!n.has(t.previewUrl)&&URL.revokeObjectURL(t.previewUrl)}function gl({client:e,queryClient:t,prepareProject:n}){let r=new Map,i=new Map,a=new Set,o=new Map,s=[],c=0,l=0,u,d=(e,t)=>JSON.stringify([e,t]),f=()=>{c++;for(let e of a)e()},p=()=>{l++,f()},m=e=>{let n=t.getQueryData(dl(e))?.data??s,a=i.get(e);if(a?.data===n&&a.revision===l)return a.records;let o=n.map(t=>r.get(d(e,t.id))??ml(t));return i.set(e,{data:n,revision:l,records:o}),o},h=(e,t)=>m(e).find(e=>e.id===t),g=async(e,t,n)=>{let r=JSON.stringify(t),i=o.get(e);i?.fingerprint!==r&&(i={fingerprint:r,key:ee()},o.set(e,i));let a=await n(i.key);return o.delete(e),a},_=(e,t)=>{let n=d(e,t);hl(r.get(n)?.workingDraft),r.delete(n)&&p()};return{client:e,queryOptions:t=>fl(t,e,n),getRevision:()=>c,list:m,read:h,readWorking:(e,t)=>r.get(d(e,t))?.workingDraft,async create(n,r){let i=pl(r),{todo:a,todos:o}=await g(`create:${n}`,i,t=>e.createProjectTodo(n,i,{idempotencyKey:t}));return t.setQueryData(dl(n),o),ml(a)},async save(n,r,i){let a=h(n,r);if(a===void 0)throw Error(`Project todo is unavailable`);let o={draft:pl(i),expectedVersion:a.version},{todo:s,todos:c}=await g(`save:${d(n,r)}`,o,t=>e.saveProjectTodo(n,r,o,{idempotencyKey:t}));return _(n,r),t.setQueryData(dl(n),c),ml(s)},async remove(n,r){let i=h(n,r);if(i===void 0)return;let{todos:a}=await g(`delete:${d(n,r)}`,i.version,t=>e.deleteProjectTodo(n,r,i.version,{idempotencyKey:t}));_(n,r),t.setQueryData(dl(n),a)},discardWorking:_,updateWorking(e,t,n){let i=h(e,t);if(i===void 0)return;hl(i.workingDraft,n);let a={...i,workingDraft:n};return r.set(d(e,t),a),p(),a},subscribe:e=>(a.add(e),u??=t.getQueryCache().subscribe(e=>{if(e.type!==`updated`&&e.type!==`removed`)return;let t=e.query.queryKey;t[2]===`todos`&&(e.type===`removed`&&i.delete(String(t[1])),f())}),()=>{a.delete(e),a.size===0&&(u?.(),u=void 0)})}}var _l=(0,Y.createContext)(void 0);function vl({children:e}){let t=m(),n=(0,Y.useRef)(null);return n.current??=gl({client:X,queryClient:t,prepareProject:ul(X,ss(),()=>{Q(q.t(`composer.todoMigrationError`,{ns:`workbench`}))})}),(0,$.jsx)(_l.Provider,{value:n.current,children:e})}function yl(){let e=(0,Y.useContext)(_l);if(e===void 0)throw Error(`useProjectTodoStore must be used inside ProjectTodoProvider`);return e}function bl(e){let t=yl(),n=(0,Y.useCallback)(()=>t.list(e),[e,t]);return(0,Y.useSyncExternalStore)(t.subscribe,n,n)}function xl(e){let t=yl(),n=_({...t.queryOptions(e),enabled:e!==W});return(0,Y.useEffect)(()=>{n.error!==null&&Q(n.error)},[n.error]),n}function Sl(e){let t=yl(),n=b({queries:e.map(e=>t.queryOptions(e))}).find(e=>e.error!==null)?.error;return(0,Y.useEffect)(()=>{n!==void 0&&Q(n)},[n]),(0,Y.useSyncExternalStore)(t.subscribe,t.getRevision,t.getRevision),e.flatMap(e=>t.list(e).map(t=>({projectId:e,record:t})))}var Cl=`codexly.notification-preference`,wl=1;function Tl(e){try{let t=JSON.parse(e.getItem(Cl)??`null`);if(typeof t==`object`&&t&&`version`in t&&t.version===wl&&`enabled`in t&&typeof t.enabled==`boolean`)return t.enabled}catch{}return!0}function El(e,t){try{t.setItem(Cl,JSON.stringify({enabled:e,version:wl}))}catch{}}function Dl(){try{return typeof window>`u`||Tl(window.localStorage)}catch{return!0}}function Ol(e){try{typeof window<`u`&&El(e,window.localStorage)}catch{}}var kl=50331648;function Al(e){return Array.isArray(e)&&e.length===4&&e[0]===`projects`&&typeof e[1]==`string`&&e[2]===`tasks`&&typeof e[3]==`string`}function jl(e,t=kl,n=12){let r=new Ot({getRetainedBytes:(e,t)=>t.retainedBytes,maxBytes:t,maxEntries:n,onEvict(t,n,r){r!==`replaced`&&e.getQueryCache().find({exact:!0,queryKey:n.queryKey})?.getObserversCount()===0&&e.removeQueries({exact:!0,queryKey:n.queryKey})}});return e.getQueryCache().subscribe(e=>{let t=e.query,n=t.queryKey,i=t.queryHash,a=t.state.data;if(Al(n)&&typeof i==`string`){if(e.type===`removed`||t.getObserversCount()>0||a===void 0){r.delete(i);return}r.set(i,{queryKey:n,retainedBytes:J(a)})}})}var Ml=12e4;function Nl(){let e=new S({mutationCache:bi(),defaultOptions:{queries:{gcTime:Ml,refetchOnWindowFocus:!1,retry:1,staleTime:3e4}}});return jl(e),e}var Pl=Nl();function Fl(e,t){e===`temporary`?Ec.navigate({params:{taskId:t},to:`/temporary/t/$taskId`}):Ec.navigate({params:{projectId:e,taskId:t},to:`/p/$projectId/t/$taskId`})}var Il=jr({isEnabled:Dl,navigateToTask:Fl});function Ll({access:e,children:t}){return e.status?.authenticated===!0?t:(0,$.jsx)(Oc,{error:e.error,loading:e.loading,onPair:e.pair,onRetry:e.retry,pairing:e.pairing})}function Rl({children:e}){let t=zi(),{t:n}=K(`common`);return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ll,{access:t,children:(0,$.jsx)(Jc,{children:(0,$.jsx)(Ni,{taskNotifier:Il,children:(0,$.jsx)(vl,{children:(0,$.jsx)(sl,{children:e})})})})}),(0,$.jsx)(pt,{containerAriaLabel:n(`app.notificationRegion`),duration:5e3,position:`top-center`,richColors:!0,theme:`system`})]})}function zl({children:e}){return(0,$.jsx)(ct,{i18n:q,children:(0,$.jsx)(pe,{children:(0,$.jsx)(l,{client:Pl,children:(0,$.jsx)(Ri,{client:X,queryClient:Pl,children:(0,$.jsx)(Rl,{children:e})})})})})}var Bl=`codexly.theme-preference`,Vl=1,Hl=`(prefers-color-scheme: dark)`,Ul;function Wl(e){try{let t=JSON.parse(e.getItem(Bl)??`null`);if(typeof t==`object`&&t&&`version`in t&&t.version===Vl&&`theme`in t&&(t.theme===`dark`||t.theme===`light`||t.theme===`system`))return t.theme}catch{}return`system`}function Gl(e,t){try{t.setItem(Bl,JSON.stringify({theme:e,version:Vl}))}catch{}}function Kl(e,t,n=!1){t.dataset.theme=e===`system`?n?`dark`:`light`:e}function ql(e){Ul?.(),Ul=void 0;let t=window.matchMedia(Hl),n=()=>{Kl(e,document.documentElement,t.matches)};n(),e===`system`&&(t.addEventListener(`change`,n),Ul=()=>{t.removeEventListener(`change`,n)})}function Jl(e){Gl(e,ss()),ql(e)}function Yl(){let e=Wl(ss());return ql(e),e}var Xl=document.querySelector(`#root`);if(!(Xl instanceof HTMLElement))throw Error(`Missing #root element`);Yl(),(0,kt.createRoot)(Xl).render((0,$.jsx)(Y.StrictMode,{children:(0,$.jsx)(zl,{children:(0,$.jsx)(Dc,{})})}));export{yi as $,lo as A,_n as At,Fa as B,At as Bt,vs as C,Zn as Ct,To as D,Hn as Dt,ts as E,Xn as Et,to as F,tn as Ft,qi as G,Sa as H,no as I,Jt as It,Bi as J,Vi as K,Pa as L,jt as Lt,oo as M,hn as Mt,io as N,un as Nt,yo as O,Un as Ot,ro as P,dn as Pt,Q,Ia as R,Nt as Rt,Ts as S,er as St,ss as T,Qn as Tt,fa as U,za as V,X as Vt,Ki as W,ki as X,Pi as Y,wi as Z,ic as _,nr as _t,Sl as a,Sr as at,xs as b,ir as bt,bl as c,vr as ct,Wc as d,Vn as dt,ni as et,zc as f,Bn as ft,ac as g,rr as gt,tc as h,zn as ht,Ol as i,wr as it,eo as j,bn as jt,_o as k,Mn as kt,Qc as l,xr as lt,dc as m,Gn as mt,Jl as n,zr as nt,xl as o,yr as ot,jc as p,Wn as pt,zi as q,Dl as r,Z as rt,yl as s,br as st,Wl as t,Br as tt,cl as u,cr as ut,cs as v,qn as vt,Ss as w,$n as wt,bs as x,tr as xt,Os as y,Kn as yt,Na as z,Mt as zt};
|