@bryanhu/codexly 0.33.2 → 0.35.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 +52 -0
- package/README.md +10 -0
- package/README.zh-CN.md +10 -0
- package/dist/{chunk-6UFHSWVR.js → chunk-6TW6YUSL.js} +909 -588
- package/dist/{chunk-PO2R4H3G.js → chunk-BRKY2HKI.js} +57 -1
- package/dist/chunk-GBLVWFLZ.js +23 -0
- package/dist/{chunk-NZDI7HXO.js → chunk-OM52Z4J7.js} +1 -1
- package/dist/{chunk-FX2JDWP4.js → chunk-RGMQBXXC.js} +699 -300
- package/dist/cli.js +6 -5
- package/dist/client/index.js +88 -13
- package/dist/historical-attachment-worker.js +94 -0
- package/dist/protocol/index.js +1 -1
- package/dist/providers/codex/index.js +3 -2
- package/dist/server/index.js +5 -4
- package/dist/web/.vite/manifest.json +370 -218
- package/dist/web/.vite/manifest.json.br +0 -0
- package/dist/web/.vite/manifest.json.gz +0 -0
- package/dist/web/assets/{abnfDiagram-N423BO3Z-N5qHzn33.js → abnfDiagram-N423BO3Z-DjEUmHES.js} +1 -1
- package/dist/web/assets/abnfDiagram-N423BO3Z-DjEUmHES.js.br +0 -0
- package/dist/web/assets/abnfDiagram-N423BO3Z-DjEUmHES.js.gz +0 -0
- package/dist/web/assets/{agent-settings-panel-BEjmbkLC.js → agent-settings-panel-CuLgzC2n.js} +1 -1
- package/dist/web/assets/agent-settings-panel-CuLgzC2n.js.br +0 -0
- package/dist/web/assets/agent-settings-panel-CuLgzC2n.js.gz +0 -0
- package/dist/web/assets/{architectureDiagram-T3A2C74G-iq1e_PZv.js → architectureDiagram-T3A2C74G-DNtnW8Fq.js} +1 -1
- package/dist/web/assets/architectureDiagram-T3A2C74G-DNtnW8Fq.js.br +0 -0
- package/dist/web/assets/{architectureDiagram-T3A2C74G-iq1e_PZv.js.gz → architectureDiagram-T3A2C74G-DNtnW8Fq.js.gz} +0 -0
- package/dist/web/assets/{background-image-picker-DlIaB70A.js → background-image-picker-D4xlUwrb.js} +1 -1
- package/dist/web/assets/background-image-picker-D4xlUwrb.js.br +0 -0
- package/dist/web/assets/background-image-picker-D4xlUwrb.js.gz +0 -0
- package/dist/web/assets/{chunk-5RXB4S5H-6sn5NP9q.js → chunk-5RXB4S5H-BDaXxnei.js} +1 -1
- package/dist/web/assets/chunk-5RXB4S5H-BDaXxnei.js.br +0 -0
- package/dist/web/assets/chunk-5RXB4S5H-BDaXxnei.js.gz +0 -0
- package/dist/web/assets/{chunk-6Q2QTUOP-BtzeG1FZ.js → chunk-6Q2QTUOP-BcTojajm.js} +1 -1
- package/dist/web/assets/chunk-6Q2QTUOP-BcTojajm.js.br +0 -0
- package/dist/web/assets/chunk-6Q2QTUOP-BcTojajm.js.gz +0 -0
- package/dist/web/assets/{chunk-GF5L2VYU-DGhiJb6X.js → chunk-GF5L2VYU-XelwAXnk.js} +1 -1
- package/dist/web/assets/chunk-GF5L2VYU-XelwAXnk.js.br +0 -0
- package/dist/web/assets/chunk-GF5L2VYU-XelwAXnk.js.gz +0 -0
- package/dist/web/assets/{chunk-JQJVKLGR-B7ezqhFY.js → chunk-JQJVKLGR-Cyok4-2b.js} +1 -1
- package/dist/web/assets/chunk-JQJVKLGR-Cyok4-2b.js.br +0 -0
- package/dist/web/assets/chunk-JQJVKLGR-Cyok4-2b.js.gz +0 -0
- package/dist/web/assets/{classDiagram-JCYQIIEL-BB7G_j3w.js → classDiagram-JCYQIIEL-B9HBTIG7.js} +1 -1
- package/dist/web/assets/classDiagram-JCYQIIEL-B9HBTIG7.js.br +0 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-B9HBTIG7.js.gz +0 -0
- package/dist/web/assets/{classDiagram-v2-OCEON4UE-BB7G_j3w.js → classDiagram-v2-OCEON4UE-B9HBTIG7.js} +1 -1
- package/dist/web/assets/classDiagram-v2-OCEON4UE-B9HBTIG7.js.br +0 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-B9HBTIG7.js.gz +0 -0
- package/dist/web/assets/code-highlighter-BDJkbu1d.js +3 -0
- package/dist/web/assets/code-highlighter-BDJkbu1d.js.br +0 -0
- package/dist/web/assets/code-highlighter-BDJkbu1d.js.gz +0 -0
- package/dist/web/assets/{commit-settings-panel-espYgo6c.js → commit-settings-panel-j2yqctr_.js} +1 -1
- package/dist/web/assets/commit-settings-panel-j2yqctr_.js.br +0 -0
- package/dist/web/assets/commit-settings-panel-j2yqctr_.js.gz +0 -0
- package/dist/web/assets/{cynefinDiagram-MW4NZA55-CkDwFn1d.js → cynefinDiagram-MW4NZA55-D9tIBEvv.js} +1 -1
- package/dist/web/assets/cynefinDiagram-MW4NZA55-D9tIBEvv.js.br +0 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-D9tIBEvv.js.gz +0 -0
- package/dist/web/assets/{diagram-7IWD3JNH-By70CZGW.js → diagram-7IWD3JNH-BfnXF08-.js} +1 -1
- package/dist/web/assets/diagram-7IWD3JNH-BfnXF08-.js.br +0 -0
- package/dist/web/assets/diagram-7IWD3JNH-BfnXF08-.js.gz +0 -0
- package/dist/web/assets/{diagram-LBJQPF4R-yLEEPweE.js → diagram-LBJQPF4R-BlYQtbyl.js} +1 -1
- package/dist/web/assets/diagram-LBJQPF4R-BlYQtbyl.js.br +0 -0
- package/dist/web/assets/diagram-LBJQPF4R-BlYQtbyl.js.gz +0 -0
- package/dist/web/assets/{diagram-Q27KOJAE-DvtR09mH.js → diagram-Q27KOJAE-CDWObxjb.js} +1 -1
- package/dist/web/assets/diagram-Q27KOJAE-CDWObxjb.js.br +0 -0
- package/dist/web/assets/diagram-Q27KOJAE-CDWObxjb.js.gz +0 -0
- package/dist/web/assets/{diagram-UB23O5K3-CHz0410-.js → diagram-UB23O5K3-DJnddvpy.js} +1 -1
- package/dist/web/assets/diagram-UB23O5K3-DJnddvpy.js.br +0 -0
- package/dist/web/assets/diagram-UB23O5K3-DJnddvpy.js.gz +0 -0
- package/dist/web/assets/dist-BRQ8hrs7.js +1 -0
- package/dist/web/assets/dist-BRQ8hrs7.js.br +0 -0
- package/dist/web/assets/dist-BRQ8hrs7.js.gz +0 -0
- package/dist/web/assets/dist-BS9Es7bq.js +9 -0
- package/dist/web/assets/dist-BS9Es7bq.js.br +0 -0
- package/dist/web/assets/dist-BS9Es7bq.js.gz +0 -0
- package/dist/web/assets/dist-BsHoamEK.js +1 -0
- package/dist/web/assets/dist-BsHoamEK.js.br +0 -0
- package/dist/web/assets/dist-BsHoamEK.js.gz +0 -0
- package/dist/web/assets/dist-C9Xo-R3R.js +23 -0
- package/dist/web/assets/dist-C9Xo-R3R.js.br +0 -0
- package/dist/web/assets/dist-C9Xo-R3R.js.gz +0 -0
- package/dist/web/assets/dist-CYMTYgBk.js +1 -0
- package/dist/web/assets/dist-CYMTYgBk.js.br +0 -0
- package/dist/web/assets/dist-CYMTYgBk.js.gz +0 -0
- package/dist/web/assets/dist-CZxkC4sf.js +1 -0
- package/dist/web/assets/dist-CZxkC4sf.js.br +0 -0
- package/dist/web/assets/dist-CZxkC4sf.js.gz +0 -0
- package/dist/web/assets/dist-Cdr0TsB-.js +1 -0
- package/dist/web/assets/dist-Cdr0TsB-.js.br +0 -0
- package/dist/web/assets/dist-Cdr0TsB-.js.gz +0 -0
- package/dist/web/assets/{dist-jnof4ZZu.js → dist-Ci1kbFbB.js} +1 -1
- package/dist/web/assets/dist-Ci1kbFbB.js.br +0 -0
- package/dist/web/assets/dist-Ci1kbFbB.js.gz +0 -0
- package/dist/web/assets/dist-D5aBWTdK.js +1 -0
- package/dist/web/assets/dist-D5aBWTdK.js.br +0 -0
- package/dist/web/assets/dist-D5aBWTdK.js.gz +0 -0
- package/dist/web/assets/dist-DQyQRzkb.js +1 -0
- package/dist/web/assets/dist-DQyQRzkb.js.br +0 -0
- package/dist/web/assets/dist-DQyQRzkb.js.gz +0 -0
- package/dist/web/assets/dist-Dda7I8j1.js +6 -0
- package/dist/web/assets/dist-Dda7I8j1.js.br +0 -0
- package/dist/web/assets/dist-Dda7I8j1.js.gz +0 -0
- package/dist/web/assets/dist-ZywOhMVT.js +1 -0
- package/dist/web/assets/dist-ZywOhMVT.js.br +0 -0
- package/dist/web/assets/dist-ZywOhMVT.js.gz +0 -0
- package/dist/web/assets/dist-dQCgoXMl.js +2 -0
- package/dist/web/assets/dist-dQCgoXMl.js.br +0 -0
- package/dist/web/assets/dist-dQCgoXMl.js.gz +0 -0
- package/dist/web/assets/{ebnfDiagram-BXEA7PRR-CV8xXTHv.js → ebnfDiagram-BXEA7PRR-D_b18zMS.js} +1 -1
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-D_b18zMS.js.br +0 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-D_b18zMS.js.gz +0 -0
- package/dist/web/assets/{erDiagram-JOGREHBK-BijmGpoF.js → erDiagram-JOGREHBK-BOKR1NS3.js} +1 -1
- package/dist/web/assets/erDiagram-JOGREHBK-BOKR1NS3.js.br +0 -0
- package/dist/web/assets/erDiagram-JOGREHBK-BOKR1NS3.js.gz +0 -0
- package/dist/web/assets/file-review-dialog-DvgO1Ae8.js +2 -0
- package/dist/web/assets/file-review-dialog-DvgO1Ae8.js.br +0 -0
- package/dist/web/assets/file-review-dialog-DvgO1Ae8.js.gz +0 -0
- package/dist/web/assets/{flowDiagram-UKHOOZJN-BmGD99Sz.js → flowDiagram-UKHOOZJN-CEamRwMR.js} +1 -1
- package/dist/web/assets/flowDiagram-UKHOOZJN-CEamRwMR.js.br +0 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-CEamRwMR.js.gz +0 -0
- package/dist/web/assets/git-commit-review-D5ge3jwI.js +2 -0
- package/dist/web/assets/git-commit-review-D5ge3jwI.js.br +0 -0
- package/dist/web/assets/git-commit-review-D5ge3jwI.js.gz +0 -0
- package/dist/web/assets/git-history-panel-DsGqR_Zc.js +1 -0
- package/dist/web/assets/git-history-panel-DsGqR_Zc.js.br +0 -0
- package/dist/web/assets/git-history-panel-DsGqR_Zc.js.gz +0 -0
- package/dist/web/assets/global-search-dialog-JzDBjqX4.js +2 -0
- package/dist/web/assets/global-search-dialog-JzDBjqX4.js.br +0 -0
- package/dist/web/assets/global-search-dialog-JzDBjqX4.js.gz +0 -0
- package/dist/web/assets/{global-settings-about-D9N_zbp_.js → global-settings-about-CULXi1Dn.js} +1 -1
- package/dist/web/assets/global-settings-about-CULXi1Dn.js.br +0 -0
- package/dist/web/assets/global-settings-about-CULXi1Dn.js.gz +0 -0
- package/dist/web/assets/global-settings-page-AK_j6aZC.js +2 -0
- package/dist/web/assets/global-settings-page-AK_j6aZC.js.br +0 -0
- package/dist/web/assets/global-settings-page-AK_j6aZC.js.gz +0 -0
- package/dist/web/assets/{global-settings-pets-DzP64-PW.js → global-settings-pets-hPG36aUL.js} +1 -1
- package/dist/web/assets/global-settings-pets-hPG36aUL.js.br +0 -0
- package/dist/web/assets/global-settings-pets-hPG36aUL.js.gz +0 -0
- package/dist/web/assets/{highlighted-body-OFNGDK62-Bt8Ro1l8.js → highlighted-body-OFNGDK62-CoO9fhim.js} +1 -1
- package/dist/web/assets/highlighted-body-OFNGDK62-CoO9fhim.js.br +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-CoO9fhim.js.gz +0 -0
- package/dist/web/assets/{history-task-timeline-C-NMmZZ-.js → history-task-timeline-CQphWf0m.js} +1 -1
- package/dist/web/assets/history-task-timeline-CQphWf0m.js.br +0 -0
- package/dist/web/assets/history-task-timeline-CQphWf0m.js.gz +0 -0
- package/dist/web/assets/{image-preview-DiO8_dX0.js → image-preview-Dtx8uVmp.js} +2 -2
- package/dist/web/assets/image-preview-Dtx8uVmp.js.br +0 -0
- package/dist/web/assets/image-preview-Dtx8uVmp.js.gz +0 -0
- package/dist/web/assets/{image-preview-content-qI8-1LIR.js → image-preview-content-zLsEpLCA.js} +2 -2
- package/dist/web/assets/image-preview-content-zLsEpLCA.js.br +0 -0
- package/dist/web/assets/image-preview-content-zLsEpLCA.js.gz +0 -0
- package/dist/web/assets/index-BUv6KmcO.css +2 -0
- package/dist/web/assets/index-BUv6KmcO.css.br +0 -0
- package/dist/web/assets/index-BUv6KmcO.css.gz +0 -0
- package/dist/web/assets/index-DR8WqP5v.js +4 -0
- package/dist/web/assets/index-DR8WqP5v.js.br +0 -0
- package/dist/web/assets/index-DR8WqP5v.js.gz +0 -0
- package/dist/web/assets/{infoDiagram-6WML65LV-uUbDSCmK.js → infoDiagram-6WML65LV-DegAUKx4.js} +1 -1
- package/dist/web/assets/infoDiagram-6WML65LV-DegAUKx4.js.br +0 -0
- package/dist/web/assets/infoDiagram-6WML65LV-DegAUKx4.js.gz +0 -0
- package/dist/web/assets/{initial-deps-CjThEvcM.js → initial-deps-Be-R---T.js} +1 -1
- package/dist/web/assets/initial-deps-Be-R---T.js.br +0 -0
- package/dist/web/assets/initial-deps-Be-R---T.js.gz +0 -0
- package/dist/web/assets/initial-deps-DRuEePWq.js +2 -0
- package/dist/web/assets/initial-deps-DRuEePWq.js.br +0 -0
- package/dist/web/assets/initial-deps-DRuEePWq.js.gz +0 -0
- package/dist/web/assets/{initial-deps-Hmv0m4RH.js → initial-deps-Dk9v1WhK.js} +1 -1
- package/dist/web/assets/initial-deps-Dk9v1WhK.js.br +0 -0
- package/dist/web/assets/{initial-deps-Hmv0m4RH.js.gz → initial-deps-Dk9v1WhK.js.gz} +0 -0
- package/dist/web/assets/{installed-skills-pane-Duf2Drj5.js → installed-skills-pane-DBJ_KuXN.js} +1 -1
- package/dist/web/assets/installed-skills-pane-DBJ_KuXN.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-DBJ_KuXN.js.gz +0 -0
- package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-BiGqQPSQ.js → ishikawaDiagram-WSZJBQD7-CcWhd8w9.js} +1 -1
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-CcWhd8w9.js.br +0 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-CcWhd8w9.js.gz +0 -0
- package/dist/web/assets/{kanban-definition-27J2QSJJ-Cn26tmRk.js → kanban-definition-27J2QSJJ-DEkge27F.js} +1 -1
- package/dist/web/assets/kanban-definition-27J2QSJJ-DEkge27F.js.br +0 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-DEkge27F.js.gz +0 -0
- package/dist/web/assets/lazy-message-response-3j-D3CVS.js +2 -0
- package/dist/web/assets/lazy-message-response-3j-D3CVS.js.br +0 -0
- package/dist/web/assets/lazy-message-response-3j-D3CVS.js.gz +0 -0
- package/dist/web/assets/markdown-finalization.worker-DzLgTkf3.js +65 -0
- package/dist/web/assets/markdown-finalization.worker-DzLgTkf3.js.br +0 -0
- package/dist/web/assets/markdown-finalization.worker-DzLgTkf3.js.gz +0 -0
- package/dist/web/assets/{mcp-management-pane-CDJGAeMR.js → mcp-management-pane-16qr0aVZ.js} +1 -1
- package/dist/web/assets/mcp-management-pane-16qr0aVZ.js.br +0 -0
- package/dist/web/assets/mcp-management-pane-16qr0aVZ.js.gz +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-kGjGANId.js +1 -0
- package/dist/web/assets/mermaid-GHXKKRXX-kGjGANId.js.br +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-kGjGANId.js.gz +0 -0
- package/dist/web/assets/message-response-DWYIVlqg.js +188 -0
- package/dist/web/assets/message-response-DWYIVlqg.js.br +0 -0
- package/dist/web/assets/message-response-DWYIVlqg.js.gz +0 -0
- package/dist/web/assets/{mindmap-definition-FAOFIHXS-B4YXdlAS.js → mindmap-definition-FAOFIHXS-DubrGaue.js} +1 -1
- package/dist/web/assets/mindmap-definition-FAOFIHXS-DubrGaue.js.br +0 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-DubrGaue.js.gz +0 -0
- package/dist/web/assets/{official-plugins-pane-DK8qT-_B.js → official-plugins-pane-vADxh_le.js} +1 -1
- package/dist/web/assets/official-plugins-pane-vADxh_le.js.br +0 -0
- package/dist/web/assets/official-plugins-pane-vADxh_le.js.gz +0 -0
- package/dist/web/assets/{patch-diff-viewer-BXC_BZDr.js → patch-diff-viewer-C5hjChAK.js} +3 -3
- package/dist/web/assets/patch-diff-viewer-C5hjChAK.js.br +0 -0
- package/dist/web/assets/patch-diff-viewer-C5hjChAK.js.gz +0 -0
- package/dist/web/assets/pdf-preview-BG-XpATo.js +3 -0
- package/dist/web/assets/pdf-preview-BG-XpATo.js.br +0 -0
- package/dist/web/assets/pdf-preview-BG-XpATo.js.gz +0 -0
- package/dist/web/assets/{pegDiagram-VL7TDLO6-NbYGYJTB.js → pegDiagram-VL7TDLO6-CJodWN8I.js} +1 -1
- package/dist/web/assets/pegDiagram-VL7TDLO6-CJodWN8I.js.br +0 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-CJodWN8I.js.gz +0 -0
- package/dist/web/assets/{personalization-settings-panel-kuddr4pp.js → personalization-settings-panel-Br7qXDQ7.js} +1 -1
- package/dist/web/assets/personalization-settings-panel-Br7qXDQ7.js.br +0 -0
- package/dist/web/assets/personalization-settings-panel-Br7qXDQ7.js.gz +0 -0
- package/dist/web/assets/{pieDiagram-7S7Q4E2Y-yHKToX8b.js → pieDiagram-7S7Q4E2Y-CHATPeJh.js} +1 -1
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-CHATPeJh.js.br +0 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-CHATPeJh.js.gz +0 -0
- package/dist/web/assets/{project-file-popup-page-6En9Rr6E.js → project-file-popup-page-CmNJLTSV.js} +1 -1
- package/dist/web/assets/project-file-popup-page-CmNJLTSV.js.br +0 -0
- package/dist/web/assets/project-file-popup-page-CmNJLTSV.js.gz +0 -0
- package/dist/web/assets/project-source-panel-ze7jsbMy.js +2 -0
- package/dist/web/assets/project-source-panel-ze7jsbMy.js.br +0 -0
- package/dist/web/assets/project-source-panel-ze7jsbMy.js.gz +0 -0
- package/dist/web/assets/{prompt-input-C1ywdkU4.js → prompt-input-Brfimssc.js} +1 -1
- package/dist/web/assets/prompt-input-Brfimssc.js.br +0 -0
- package/dist/web/assets/prompt-input-Brfimssc.js.gz +0 -0
- package/dist/web/assets/prompt-reference-token-BW8a7fO2.js +3 -0
- package/dist/web/assets/prompt-reference-token-BW8a7fO2.js.br +0 -0
- package/dist/web/assets/prompt-reference-token-BW8a7fO2.js.gz +0 -0
- package/dist/web/assets/{railroadDiagram-AXF67PYL-DWQcic4X.js → railroadDiagram-AXF67PYL-BOP9pMNb.js} +1 -1
- package/dist/web/assets/railroadDiagram-AXF67PYL-BOP9pMNb.js.br +0 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-BOP9pMNb.js.gz +0 -0
- package/dist/web/assets/{requirementDiagram-LRYGKXZP-CPzp08lo.js → requirementDiagram-LRYGKXZP-CG8KWt_j.js} +1 -1
- package/dist/web/assets/requirementDiagram-LRYGKXZP-CG8KWt_j.js.br +0 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-CG8KWt_j.js.gz +0 -0
- package/dist/web/assets/{scheduled-task-date-time-picker-BS5y3xEd.js → scheduled-task-date-time-picker-DeOtns9O.js} +1 -1
- package/dist/web/assets/scheduled-task-date-time-picker-DeOtns9O.js.br +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-DeOtns9O.js.gz +0 -0
- package/dist/web/assets/{scheduled-task-floating-ui~scheduled-task-date-time-picker-C9XdROQX.js → scheduled-task-floating-ui~scheduled-task-date-time-picker-CbWhx_7u.js} +1 -1
- package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-CbWhx_7u.js.br +0 -0
- package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-CbWhx_7u.js.gz +0 -0
- package/dist/web/assets/scheduled-tasks-container-a34CrlrM.js +2 -0
- package/dist/web/assets/scheduled-tasks-container-a34CrlrM.js.br +0 -0
- package/dist/web/assets/scheduled-tasks-container-a34CrlrM.js.gz +0 -0
- package/dist/web/assets/{sequenceDiagram-SI44F4Z6-ZN8ZLfuR.js → sequenceDiagram-SI44F4Z6-DbZoTul2.js} +1 -1
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-DbZoTul2.js.br +0 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-DbZoTul2.js.gz +0 -0
- package/dist/web/assets/{sheet-DQXlYPSf.js → sheet-B9MDuGoF.js} +1 -1
- package/dist/web/assets/sheet-B9MDuGoF.js.br +0 -0
- package/dist/web/assets/sheet-B9MDuGoF.js.gz +0 -0
- package/dist/web/assets/{shiki-bundle-BHjdRMkM.js → shiki-bundle-BlbGsyMZ.js} +1 -1
- package/dist/web/assets/shiki-bundle-BlbGsyMZ.js.br +0 -0
- package/dist/web/assets/shiki-bundle-BlbGsyMZ.js.gz +0 -0
- package/dist/web/assets/skills-market-container-CWO3CeMr.js +2 -0
- package/dist/web/assets/skills-market-container-CWO3CeMr.js.br +0 -0
- package/dist/web/assets/skills-market-container-CWO3CeMr.js.gz +0 -0
- package/dist/web/assets/split-workspace-menu-content-rImPq6wj.js +1 -0
- package/dist/web/assets/split-workspace-menu-content-rImPq6wj.js.br +0 -0
- package/dist/web/assets/split-workspace-menu-content-rImPq6wj.js.gz +0 -0
- package/dist/web/assets/{stateDiagram-OKZ733FA-BM7CXH39.js → stateDiagram-OKZ733FA-BBZnBYr0.js} +1 -1
- package/dist/web/assets/stateDiagram-OKZ733FA-BBZnBYr0.js.br +0 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-BBZnBYr0.js.gz +0 -0
- package/dist/web/assets/{stateDiagram-v2-UEYNNEHI-CmijPEeQ.js → stateDiagram-v2-UEYNNEHI-DrsX6D2d.js} +1 -1
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DrsX6D2d.js.br +1 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-DrsX6D2d.js.gz +0 -0
- package/dist/web/assets/{swimlanesDiagram-ULZ7WXOC-CKfmTZ-C.js → swimlanesDiagram-ULZ7WXOC-RILHYzJF.js} +1 -1
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-RILHYzJF.js.br +0 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-RILHYzJF.js.gz +0 -0
- package/dist/web/assets/text-file-editor-CEKsFPli.js +14 -0
- package/dist/web/assets/text-file-editor-CEKsFPli.js.br +0 -0
- package/dist/web/assets/text-file-editor-CEKsFPli.js.gz +0 -0
- package/dist/web/assets/{third-party-marketplace-pane-CLT2SrUQ.js → third-party-marketplace-pane-DKWMNoa3.js} +1 -1
- package/dist/web/assets/third-party-marketplace-pane-DKWMNoa3.js.br +0 -0
- package/dist/web/assets/third-party-marketplace-pane-DKWMNoa3.js.gz +0 -0
- package/dist/web/assets/{timeline-definition-Z64GVDOM-2ViTcv_D.js → timeline-definition-Z64GVDOM-BQMes8Ld.js} +1 -1
- package/dist/web/assets/timeline-definition-Z64GVDOM-BQMes8Ld.js.br +0 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-BQMes8Ld.js.gz +0 -0
- package/dist/web/assets/{vennDiagram-T6HMQDX7-DtvEprHV.js → vennDiagram-T6HMQDX7-qBMuOWPn.js} +1 -1
- package/dist/web/assets/vennDiagram-T6HMQDX7-qBMuOWPn.js.br +0 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-qBMuOWPn.js.gz +0 -0
- package/dist/web/assets/{wardleyDiagram-T6FBY63Y-BIYFyd3H.js → wardleyDiagram-T6FBY63Y-BXVFrJeX.js} +1 -1
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-BXVFrJeX.js.br +0 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-BXVFrJeX.js.gz +0 -0
- package/dist/web/assets/workbench-inspector-changes-D5k96_nR.js +2 -0
- package/dist/web/assets/workbench-inspector-changes-D5k96_nR.js.br +0 -0
- package/dist/web/assets/workbench-inspector-changes-D5k96_nR.js.gz +0 -0
- package/dist/web/assets/{workbench-pet-canvas-CK9lEOvO.js → workbench-pet-canvas-BM6S31jL.js} +1 -1
- package/dist/web/assets/workbench-pet-canvas-BM6S31jL.js.br +0 -0
- package/dist/web/assets/workbench-pet-canvas-BM6S31jL.js.gz +0 -0
- package/dist/web/assets/workbench-shell-DEH5FG9a.js +14 -0
- package/dist/web/assets/workbench-shell-DEH5FG9a.js.br +0 -0
- package/dist/web/assets/workbench-shell-DEH5FG9a.js.gz +0 -0
- package/dist/web/assets/{xychartDiagram-ELKLHX3M-CFaKO_zz.js → xychartDiagram-ELKLHX3M-DT2u1V83.js} +1 -1
- package/dist/web/assets/xychartDiagram-ELKLHX3M-DT2u1V83.js.br +0 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-DT2u1V83.js.gz +0 -0
- package/dist/web/index.html +6 -7
- package/dist/web/index.html.br +0 -0
- package/dist/web/index.html.gz +0 -0
- package/package.json +1 -1
- package/dist/web/assets/abnfDiagram-N423BO3Z-N5qHzn33.js.br +0 -0
- package/dist/web/assets/abnfDiagram-N423BO3Z-N5qHzn33.js.gz +0 -0
- package/dist/web/assets/agent-settings-panel-BEjmbkLC.js.br +0 -0
- package/dist/web/assets/agent-settings-panel-BEjmbkLC.js.gz +0 -0
- package/dist/web/assets/architectureDiagram-T3A2C74G-iq1e_PZv.js.br +0 -0
- package/dist/web/assets/background-image-picker-DlIaB70A.js.br +0 -0
- package/dist/web/assets/background-image-picker-DlIaB70A.js.gz +0 -0
- package/dist/web/assets/chunk-5RXB4S5H-6sn5NP9q.js.br +0 -0
- package/dist/web/assets/chunk-5RXB4S5H-6sn5NP9q.js.gz +0 -0
- package/dist/web/assets/chunk-6Q2QTUOP-BtzeG1FZ.js.br +0 -0
- package/dist/web/assets/chunk-6Q2QTUOP-BtzeG1FZ.js.gz +0 -0
- package/dist/web/assets/chunk-GF5L2VYU-DGhiJb6X.js.br +0 -0
- package/dist/web/assets/chunk-GF5L2VYU-DGhiJb6X.js.gz +0 -0
- package/dist/web/assets/chunk-JQJVKLGR-B7ezqhFY.js.br +0 -0
- package/dist/web/assets/chunk-JQJVKLGR-B7ezqhFY.js.gz +0 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-BB7G_j3w.js.br +0 -0
- package/dist/web/assets/classDiagram-JCYQIIEL-BB7G_j3w.js.gz +0 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-BB7G_j3w.js.br +0 -0
- package/dist/web/assets/classDiagram-v2-OCEON4UE-BB7G_j3w.js.gz +0 -0
- package/dist/web/assets/code-highlighter-DPLcL7tE.js +0 -1
- package/dist/web/assets/code-highlighter-DPLcL7tE.js.br +0 -0
- package/dist/web/assets/code-highlighter-DPLcL7tE.js.gz +0 -0
- package/dist/web/assets/commit-settings-panel-espYgo6c.js.br +0 -0
- package/dist/web/assets/commit-settings-panel-espYgo6c.js.gz +0 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-CkDwFn1d.js.br +0 -0
- package/dist/web/assets/cynefinDiagram-MW4NZA55-CkDwFn1d.js.gz +0 -0
- package/dist/web/assets/diagram-7IWD3JNH-By70CZGW.js.br +0 -0
- package/dist/web/assets/diagram-7IWD3JNH-By70CZGW.js.gz +0 -0
- package/dist/web/assets/diagram-LBJQPF4R-yLEEPweE.js.br +0 -0
- package/dist/web/assets/diagram-LBJQPF4R-yLEEPweE.js.gz +0 -0
- package/dist/web/assets/diagram-Q27KOJAE-DvtR09mH.js.br +0 -0
- package/dist/web/assets/diagram-Q27KOJAE-DvtR09mH.js.gz +0 -0
- package/dist/web/assets/diagram-UB23O5K3-CHz0410-.js.br +0 -0
- package/dist/web/assets/diagram-UB23O5K3-CHz0410-.js.gz +0 -0
- package/dist/web/assets/dist-jnof4ZZu.js.br +0 -0
- package/dist/web/assets/dist-jnof4ZZu.js.gz +0 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-CV8xXTHv.js.br +0 -0
- package/dist/web/assets/ebnfDiagram-BXEA7PRR-CV8xXTHv.js.gz +0 -0
- package/dist/web/assets/erDiagram-JOGREHBK-BijmGpoF.js.br +0 -0
- package/dist/web/assets/erDiagram-JOGREHBK-BijmGpoF.js.gz +0 -0
- package/dist/web/assets/file-review-dialog-B7ZZsWSg.js +0 -2
- package/dist/web/assets/file-review-dialog-B7ZZsWSg.js.br +0 -0
- package/dist/web/assets/file-review-dialog-B7ZZsWSg.js.gz +0 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-BmGD99Sz.js.br +0 -0
- package/dist/web/assets/flowDiagram-UKHOOZJN-BmGD99Sz.js.gz +0 -0
- package/dist/web/assets/git-commit-review-BkVSj-PK.js +0 -2
- package/dist/web/assets/git-commit-review-BkVSj-PK.js.br +0 -0
- package/dist/web/assets/git-commit-review-BkVSj-PK.js.gz +0 -0
- package/dist/web/assets/git-history-panel-BlX3-8Lo.js +0 -1
- package/dist/web/assets/git-history-panel-BlX3-8Lo.js.br +0 -0
- package/dist/web/assets/git-history-panel-BlX3-8Lo.js.gz +0 -0
- package/dist/web/assets/global-search-dialog-Dhkbc7CQ.js +0 -2
- package/dist/web/assets/global-search-dialog-Dhkbc7CQ.js.br +0 -0
- package/dist/web/assets/global-search-dialog-Dhkbc7CQ.js.gz +0 -0
- package/dist/web/assets/global-settings-about-D9N_zbp_.js.br +0 -0
- package/dist/web/assets/global-settings-about-D9N_zbp_.js.gz +0 -0
- package/dist/web/assets/global-settings-page-CFWea4X9.js +0 -2
- package/dist/web/assets/global-settings-page-CFWea4X9.js.br +0 -0
- package/dist/web/assets/global-settings-page-CFWea4X9.js.gz +0 -0
- package/dist/web/assets/global-settings-pets-DzP64-PW.js.br +0 -0
- package/dist/web/assets/global-settings-pets-DzP64-PW.js.gz +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-Bt8Ro1l8.js.br +0 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-Bt8Ro1l8.js.gz +0 -0
- package/dist/web/assets/history-task-timeline-C-NMmZZ-.js.br +0 -0
- package/dist/web/assets/history-task-timeline-C-NMmZZ-.js.gz +0 -0
- package/dist/web/assets/image-preview-DiO8_dX0.js.br +0 -0
- package/dist/web/assets/image-preview-DiO8_dX0.js.gz +0 -0
- package/dist/web/assets/image-preview-content-qI8-1LIR.js.br +0 -0
- package/dist/web/assets/image-preview-content-qI8-1LIR.js.gz +0 -0
- package/dist/web/assets/index-HGztPHO8.js +0 -4
- package/dist/web/assets/index-HGztPHO8.js.br +0 -0
- package/dist/web/assets/index-HGztPHO8.js.gz +0 -0
- package/dist/web/assets/index-tfIo-15z.css +0 -2
- package/dist/web/assets/index-tfIo-15z.css.br +0 -0
- package/dist/web/assets/index-tfIo-15z.css.gz +0 -0
- package/dist/web/assets/infoDiagram-6WML65LV-uUbDSCmK.js.br +0 -0
- package/dist/web/assets/infoDiagram-6WML65LV-uUbDSCmK.js.gz +0 -0
- package/dist/web/assets/initial-deps-3Wb3IGZt.js +0 -2
- package/dist/web/assets/initial-deps-3Wb3IGZt.js.br +0 -0
- package/dist/web/assets/initial-deps-3Wb3IGZt.js.gz +0 -0
- package/dist/web/assets/initial-deps-CjThEvcM.js.br +0 -0
- package/dist/web/assets/initial-deps-CjThEvcM.js.gz +0 -0
- package/dist/web/assets/initial-deps-Hmv0m4RH.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-Duf2Drj5.js.br +0 -0
- package/dist/web/assets/installed-skills-pane-Duf2Drj5.js.gz +0 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-BiGqQPSQ.js.br +0 -0
- package/dist/web/assets/ishikawaDiagram-WSZJBQD7-BiGqQPSQ.js.gz +0 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-Cn26tmRk.js.br +0 -0
- package/dist/web/assets/kanban-definition-27J2QSJJ-Cn26tmRk.js.gz +0 -0
- package/dist/web/assets/lazy-message-response-BwDvftCZ.js +0 -2
- package/dist/web/assets/lazy-message-response-BwDvftCZ.js.br +0 -0
- package/dist/web/assets/lazy-message-response-BwDvftCZ.js.gz +0 -0
- package/dist/web/assets/mcp-management-pane-CDJGAeMR.js.br +0 -0
- package/dist/web/assets/mcp-management-pane-CDJGAeMR.js.gz +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-DcFI66qc.js +0 -1
- package/dist/web/assets/mermaid-GHXKKRXX-DcFI66qc.js.br +0 -0
- package/dist/web/assets/mermaid-GHXKKRXX-DcFI66qc.js.gz +0 -0
- package/dist/web/assets/message-response-CTSaT37R.js +0 -190
- package/dist/web/assets/message-response-CTSaT37R.js.br +0 -0
- package/dist/web/assets/message-response-CTSaT37R.js.gz +0 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-B4YXdlAS.js.br +0 -0
- package/dist/web/assets/mindmap-definition-FAOFIHXS-B4YXdlAS.js.gz +0 -0
- package/dist/web/assets/official-plugins-pane-DK8qT-_B.js.br +0 -0
- package/dist/web/assets/official-plugins-pane-DK8qT-_B.js.gz +0 -0
- package/dist/web/assets/patch-diff-viewer-BXC_BZDr.js.br +0 -0
- package/dist/web/assets/patch-diff-viewer-BXC_BZDr.js.gz +0 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-NbYGYJTB.js.br +0 -0
- package/dist/web/assets/pegDiagram-VL7TDLO6-NbYGYJTB.js.gz +0 -0
- package/dist/web/assets/personalization-settings-panel-kuddr4pp.js.br +0 -0
- package/dist/web/assets/personalization-settings-panel-kuddr4pp.js.gz +0 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-yHKToX8b.js.br +0 -0
- package/dist/web/assets/pieDiagram-7S7Q4E2Y-yHKToX8b.js.gz +0 -0
- package/dist/web/assets/project-file-popup-page-6En9Rr6E.js.br +0 -0
- package/dist/web/assets/project-file-popup-page-6En9Rr6E.js.gz +0 -0
- package/dist/web/assets/project-source-panel-CBX-E9jx.js +0 -3
- package/dist/web/assets/project-source-panel-CBX-E9jx.js.br +0 -0
- package/dist/web/assets/project-source-panel-CBX-E9jx.js.gz +0 -0
- package/dist/web/assets/prompt-input-C1ywdkU4.js.br +0 -0
- package/dist/web/assets/prompt-input-C1ywdkU4.js.gz +0 -0
- package/dist/web/assets/prompt-reference-token-cMxHiKmI.js +0 -1
- package/dist/web/assets/prompt-reference-token-cMxHiKmI.js.br +0 -0
- package/dist/web/assets/prompt-reference-token-cMxHiKmI.js.gz +0 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-DWQcic4X.js.br +0 -0
- package/dist/web/assets/railroadDiagram-AXF67PYL-DWQcic4X.js.gz +0 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-CPzp08lo.js.br +0 -0
- package/dist/web/assets/requirementDiagram-LRYGKXZP-CPzp08lo.js.gz +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-BS5y3xEd.js.br +0 -0
- package/dist/web/assets/scheduled-task-date-time-picker-BS5y3xEd.js.gz +0 -0
- package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-C9XdROQX.js.br +0 -0
- package/dist/web/assets/scheduled-task-floating-ui~scheduled-task-date-time-picker-C9XdROQX.js.gz +0 -0
- package/dist/web/assets/scheduled-tasks-container-PGgSoPpl.js +0 -2
- package/dist/web/assets/scheduled-tasks-container-PGgSoPpl.js.br +0 -0
- package/dist/web/assets/scheduled-tasks-container-PGgSoPpl.js.gz +0 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-ZN8ZLfuR.js.br +0 -0
- package/dist/web/assets/sequenceDiagram-SI44F4Z6-ZN8ZLfuR.js.gz +0 -0
- package/dist/web/assets/sheet-DQXlYPSf.js.br +0 -0
- package/dist/web/assets/sheet-DQXlYPSf.js.gz +0 -0
- package/dist/web/assets/shiki-bundle-BHjdRMkM.js.br +0 -0
- package/dist/web/assets/shiki-bundle-BHjdRMkM.js.gz +0 -0
- package/dist/web/assets/skills-market-container-CBcJhTq0.js +0 -2
- package/dist/web/assets/skills-market-container-CBcJhTq0.js.br +0 -0
- package/dist/web/assets/skills-market-container-CBcJhTq0.js.gz +0 -0
- package/dist/web/assets/snapshot-memory-BU8oqjvK.js +0 -1
- package/dist/web/assets/snapshot-memory-BU8oqjvK.js.br +0 -0
- package/dist/web/assets/snapshot-memory-BU8oqjvK.js.gz +0 -0
- package/dist/web/assets/split-workspace-menu-content-CsWwhnXx.js +0 -1
- package/dist/web/assets/split-workspace-menu-content-CsWwhnXx.js.br +0 -0
- package/dist/web/assets/split-workspace-menu-content-CsWwhnXx.js.gz +0 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-BM7CXH39.js.br +0 -0
- package/dist/web/assets/stateDiagram-OKZ733FA-BM7CXH39.js.gz +0 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-CmijPEeQ.js.br +0 -0
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-CmijPEeQ.js.gz +0 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CKfmTZ-C.js.br +0 -0
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-CKfmTZ-C.js.gz +0 -0
- package/dist/web/assets/third-party-marketplace-pane-CLT2SrUQ.js.br +0 -0
- package/dist/web/assets/third-party-marketplace-pane-CLT2SrUQ.js.gz +0 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-2ViTcv_D.js.br +0 -0
- package/dist/web/assets/timeline-definition-Z64GVDOM-2ViTcv_D.js.gz +0 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-DtvEprHV.js.br +0 -0
- package/dist/web/assets/vennDiagram-T6HMQDX7-DtvEprHV.js.gz +0 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-BIYFyd3H.js.br +0 -0
- package/dist/web/assets/wardleyDiagram-T6FBY63Y-BIYFyd3H.js.gz +0 -0
- package/dist/web/assets/workbench-inspector-changes-Ba7oHLMx.js +0 -2
- package/dist/web/assets/workbench-inspector-changes-Ba7oHLMx.js.br +0 -0
- package/dist/web/assets/workbench-inspector-changes-Ba7oHLMx.js.gz +0 -0
- package/dist/web/assets/workbench-pet-canvas-CK9lEOvO.js.br +0 -0
- package/dist/web/assets/workbench-pet-canvas-CK9lEOvO.js.gz +0 -0
- package/dist/web/assets/workbench-shell-BwqyzEc4.js +0 -16
- package/dist/web/assets/workbench-shell-BwqyzEc4.js.br +0 -0
- package/dist/web/assets/workbench-shell-BwqyzEc4.js.gz +0 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-CFaKO_zz.js.br +0 -0
- package/dist/web/assets/xychartDiagram-ELKLHX3M-CFaKO_zz.js.gz +0 -0
- /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~git-history-pa~5gghezpc-ClgveiMa.js → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~git-history-pa~l4z6ozb1-ClgveiMa.js} +0 -0
- /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~git-history-pa~5gghezpc-ClgveiMa.js.br → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~git-history-pa~l4z6ozb1-ClgveiMa.js.br} +0 -0
- /package/dist/web/assets/{scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~git-history-pa~5gghezpc-ClgveiMa.js.gz → scheduled-task-floating-ui~index~workbench-shell~workbench-inspector-changes~git-history-pa~l4z6ozb1-ClgveiMa.js.gz} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { require_pino, require_safe_stable_stringify, CodexProtocolMappingError, CodexProviderConnectionError, RpcConnectionClosedError, RpcProtocolError, RpcResponseError, RpcTimeoutError } from './chunk-RGMQBXXC.js';
|
|
3
|
+
import { value_exports } from './chunk-OM52Z4J7.js';
|
|
4
4
|
import { normalizeCustomModelReasoning, WorkbenchPetProviderError, listTaskCatalog, PendingRequestResolutionError, restoreAsyncQuestionAnswers, deleteArchivedTasks, queryCompletedTasks, CompletedTasksQueryError, submitTask, TaskSubmissionError, collectQuestionGroups, formatQuestionAnswers, ProjectTodoError, saveProjectTodo } from './chunk-REIMOLGX.js';
|
|
5
|
-
import { Type, SkillInstallScopeSchema, ScheduledTaskSchema, SubmitTaskResponseSchema, AgentTaskSchema, AsyncQuestionGroupSchema, AnswerAsyncQuestionResultSchema, AgentTurnSchema, DEFAULT_COMMIT_MESSAGE_MODEL, TEMPORARY_TASK_API_PATH, TEMPORARY_TASK_SCOPE_ID, MAX_AGENT_FILE_BYTES, AccessStatusResponseSchema, PairAccessRequestSchema, BingWallpaperCatalogSchema, HealthResponseSchema, AppInfoResponseSchema, AppUpdateProgressResponseSchema, AgentMutationErrorSchema, InstallAppUpdateResponseSchema, InstallAppUpdateRequestSchema, EventStreamMetricsResponseSchema, AgentCapabilitiesSchema, AgentModelPageSchema, AgentGlobalSettingsResponseSchema, AgentGlobalSettingsSchema, MAX_AGENT_IMAGE_BYTES, MAX_AGENT_TEXT_BYTES, GlobalInstructionsSchema, MemorySettingsSchema, AgentPreferencesSchema, SaveGlobalInstructionsSchema, MemorySettingsUpdateSchema, PersonalizationResetSchema, HistoryCompressionResultSchema, AgentProviderConnectionStatusSchema, StartOfficialProviderLoginResponseSchema, StartOfficialProviderLoginRequestSchema, AgentProviderConnectionMutationResponseSchema, CancelProviderLoginRequestSchema, ConfigureCustomProviderResponseSchema, ConfigureCustomProviderRequestSchema, WorkbenchPetCatalogResponseSchema, WorkbenchPetDownloadResponseSchema, WorkbenchPetDownloadRequestSchema, ProjectPageSchema, HostFileListingSchema, HostFileQuerySchema, ProjectDirectoryListingSchema, ProjectDirectoryQuerySchema, ProjectOpenCapabilitiesResponseSchema, OpenProjectResponseSchema, ProjectRootQuerySchema, OpenProjectRequestSchema, ReorderProjectsResponseSchema, ReorderProjectsRequestSchema, AgentSkillPageSchema, AgentProjectDefaultsResponseSchema, AgentProjectDefaultsSchema, AddProjectResponseSchema, AddProjectRequestSchema, RenameProjectResponseSchema, RenameProjectRequestSchema, RemoveProjectResponseSchema, RemoveProjectRequestSchema, PluginReconcileResultSchema, InstalledSkillPageSchema, OfficialPluginPageSchema, OfficialPluginDetailSchema, OfficialPluginInstallResponseSchema, OfficialPluginUninstallResponseSchema, ClawhubSkillPageSchema, ClawhubSkillDetailSchema, ConfiguredMcpServerPageSchema, OpenSkillDirectoryResponseSchema, SetSkillEnabledResponseSchema, SetMcpServerEnabledResponseSchema, SkillInstallResponseSchema, ScheduledTaskPreviewSchema, ScheduledTaskPreviewRequestSchema, ScheduledTaskPageSchema, ScheduledTaskMutationResponseSchema, ScheduledTaskInputSchema, DeleteScheduledTaskResponseSchema, SetScheduledTaskEnabledRequestSchema, AgentTaskPageSchema, UnsubscribeAgentTaskResponseSchema, AgentTaskSnapshotResponseSchema, AgentMcpServerPageSchema, AgentBackgroundTerminalPageSchema, TerminateAgentBackgroundTerminalResponseSchema, PinAgentTaskResponseSchema, PinAgentTaskRequestSchema, RenameAgentTaskResponseSchema, RenameAgentTaskRequestSchema, ArchiveAgentTaskResponseSchema, ArchiveAgentTaskRequestSchema, UnarchiveAgentTaskResponseSchema, UnarchiveAgentTaskRequestSchema, DeleteAgentTaskResponseSchema, DeleteAgentTaskRequestSchema, TaskSearchPageSchema, TaskSearchQuerySchema, SearchOccurrencesPageSchema, SearchOccurrencesQuerySchema, StartAgentTaskResponseSchema, StartAgentTaskRequestSchema, StartAgentTurnResponseSchema, StartAgentTurnRequestSchema, SteerAgentTurnResponseSchema, SteerAgentTurnRequestSchema, InterruptAgentTurnResponseSchema, InterruptAgentTurnRequestSchema, ResolvePendingRequestResponseSchema, ResolvePendingRequestRequestSchema, SubmitTaskRequestSchema, AsyncQuestionPageSchema, AnswerAsyncQuestionResponseSchema, AnswerAsyncQuestionRequestSchema, DismissAsyncQuestionsRequestSchema, ProjectTodoPageSchema, ProjectTodoResponseSchema, ProjectTodoDraftSchema, SaveProjectTodoRequestSchema, DeleteProjectTodoResponseSchema, DeleteProjectTodoRequestSchema, AgentQueuedSubmissionListSchema, AddAgentQueuedSubmissionResponseSchema, AddAgentQueuedSubmissionRequestSchema, UpdateAgentQueuedSubmissionResponseSchema, UpdateAgentQueuedSubmissionRequestSchema, DeleteAgentQueuedSubmissionResponseSchema, ReorderAgentQueuedSubmissionsResponseSchema, ReorderAgentQueuedSubmissionsRequestSchema, StartAgentQueuedSubmissionResponseSchema, StartAgentQueuedSubmissionRequestSchema, AgentPromptInputSchema, AgentProviderConnectionRecordSchema, MAX_AGENT_IMAGES, MAX_AGENT_IMAGE_TOTAL_BYTES, MAX_AGENT_FILE_TOTAL_BYTES, CODEXLY_USER_AGENT, CreateProjectDirectoryResponseSchema, CreateProjectDirectoryRequestSchema, isValidProjectDirectoryName, ProjectGitStatusSchema, ProjectGitStatusQuerySchema, ProjectGitHistoryPageSchema, ProjectGitHistoryQuerySchema, ProjectGitCommitFilesPageSchema, ProjectGitCommitFilesQuerySchema, ProjectGitCommitFileDiffSchema, ProjectGitCommitFileDiffQuerySchema, SwitchProjectBranchRequestSchema, CreateProjectBranchRequestSchema, GenerateCommitMessageResponseSchema, GenerateCommitMessageRequestSchema, CommitProjectChangesResponseSchema, CommitProjectChangesRequestSchema, ProjectSourceFileQuerySchema, ProjectFileTreeSchema, ProjectFileTreeQuerySchema, ProjectFileSearchPageSchema, ProjectFileSearchQuerySchema, StopProjectFileSearchResponseSchema, StopProjectFileSearchRequestSchema, ProjectSourceFileSchema, AgentAttachmentUploadResponseSchema, HostFileKindSchema, ImportHostAttachmentRequestSchema, AgentAttachmentKindSchema, AgentTaskSettingsResponseSchema, AgentTaskSettingsSchema, ReloadAgentMcpServersResponseSchema, ReloadAgentMcpServersRequestSchema, ReviewAgentTaskResponseSchema, ReviewAgentTaskRequestSchema, CompactAgentTaskResponseSchema, CompactAgentTaskRequestSchema, ForkAgentTaskResponseSchema, ForkAgentTaskRequestSchema, UploadAgentFeedbackResponseSchema, UploadAgentFeedbackRequestSchema, DeleteArchivedTasksResponseSchema, DeleteArchivedTasksRequestSchema, AgentTaskCatalogSchema, TaskCatalogQuerySchema, CompletedTasksPageSchema, CompletedTasksQuerySchema, UpdateTaskSettingsAndDefaultsResponseSchema, UpdateTaskSettingsAndDefaultsRequestSchema, NavigableAgentTaskResponseSchema, OpenAgentTaskAttachmentResponseSchema, OpenAgentTaskAttachmentRequestSchema, UpdateAgentGoalResponseSchema, UpdateAgentGoalRequestSchema, ClearAgentGoalResponseSchema, ProjectTodoSchema, AgentMessageAttachmentSchema, ProjectGitWorktreePageSchema, CreateTaskWorktreeResponseSchema, CreateProjectWorktreeRequestSchema, CreateProjectWorktreeResponseSchema, ProjectWorktreeMutationResponseSchema, SwitchProjectWorktreeRequestSchema, RenameProjectFileResponseSchema, RenameProjectFileRequestSchema, DeleteProjectFileResponseSchema, DeleteProjectFileRequestSchema, MAX_EVENT_BATCH_SIZE } from './chunk-
|
|
5
|
+
import { Type, SkillInstallScopeSchema, ScheduledTaskSchema, SubmitTaskResponseSchema, AgentTaskSchema, AsyncQuestionGroupSchema, AnswerAsyncQuestionResultSchema, AgentTurnSchema, MAX_AGENT_EVENT_BYTES, DEFAULT_COMMIT_MESSAGE_MODEL, TEMPORARY_TASK_API_PATH, TEMPORARY_TASK_SCOPE_ID, MAX_AGENT_FILE_BYTES, AccessStatusResponseSchema, PairAccessRequestSchema, BingWallpaperCatalogSchema, HealthResponseSchema, AppInfoResponseSchema, AppUpdateProgressResponseSchema, AgentMutationErrorSchema, InstallAppUpdateResponseSchema, InstallAppUpdateRequestSchema, EventStreamMetricsResponseSchema, AgentCapabilitiesSchema, AgentModelPageSchema, AgentGlobalSettingsResponseSchema, AgentGlobalSettingsSchema, MAX_AGENT_IMAGE_BYTES, MAX_AGENT_TEXT_BYTES, GlobalInstructionsSchema, MemorySettingsSchema, AgentPreferencesSchema, SaveGlobalInstructionsSchema, MemorySettingsUpdateSchema, PersonalizationResetSchema, HistoryCompressionResultSchema, AgentProviderConnectionStatusSchema, StartOfficialProviderLoginResponseSchema, StartOfficialProviderLoginRequestSchema, AgentProviderConnectionMutationResponseSchema, CancelProviderLoginRequestSchema, ConfigureCustomProviderResponseSchema, ConfigureCustomProviderRequestSchema, WorkbenchPetCatalogResponseSchema, WorkbenchPetDownloadResponseSchema, WorkbenchPetDownloadRequestSchema, ProjectPageSchema, HostFileListingSchema, HostFileQuerySchema, ProjectDirectoryListingSchema, ProjectDirectoryQuerySchema, ProjectOpenCapabilitiesResponseSchema, OpenProjectResponseSchema, ProjectRootQuerySchema, OpenProjectRequestSchema, ReorderProjectsResponseSchema, ReorderProjectsRequestSchema, AgentSkillPageSchema, AgentProjectDefaultsResponseSchema, AgentProjectDefaultsSchema, AddProjectResponseSchema, AddProjectRequestSchema, RenameProjectResponseSchema, RenameProjectRequestSchema, RemoveProjectResponseSchema, RemoveProjectRequestSchema, PluginReconcileResultSchema, InstalledSkillPageSchema, OfficialPluginPageSchema, OfficialPluginDetailSchema, OfficialPluginInstallResponseSchema, OfficialPluginUninstallResponseSchema, ClawhubSkillPageSchema, ClawhubSkillDetailSchema, ConfiguredMcpServerPageSchema, OpenSkillDirectoryResponseSchema, SetSkillEnabledResponseSchema, SetMcpServerEnabledResponseSchema, SkillInstallResponseSchema, ScheduledTaskPreviewSchema, ScheduledTaskPreviewRequestSchema, ScheduledTaskPageSchema, ScheduledTaskMutationResponseSchema, ScheduledTaskInputSchema, DeleteScheduledTaskResponseSchema, SetScheduledTaskEnabledRequestSchema, AgentTaskPageSchema, UnsubscribeAgentTaskResponseSchema, AgentTaskSnapshotResponseSchema, AgentMcpServerPageSchema, AgentBackgroundTerminalPageSchema, TerminateAgentBackgroundTerminalResponseSchema, PinAgentTaskResponseSchema, PinAgentTaskRequestSchema, RenameAgentTaskResponseSchema, RenameAgentTaskRequestSchema, ArchiveAgentTaskResponseSchema, ArchiveAgentTaskRequestSchema, UnarchiveAgentTaskResponseSchema, UnarchiveAgentTaskRequestSchema, DeleteAgentTaskResponseSchema, DeleteAgentTaskRequestSchema, TaskSearchPageSchema, TaskSearchQuerySchema, SearchOccurrencesPageSchema, SearchOccurrencesQuerySchema, StartAgentTaskResponseSchema, StartAgentTaskRequestSchema, StartAgentTurnResponseSchema, StartAgentTurnRequestSchema, SteerAgentTurnResponseSchema, SteerAgentTurnRequestSchema, InterruptAgentTurnResponseSchema, InterruptAgentTurnRequestSchema, ResolvePendingRequestResponseSchema, ResolvePendingRequestRequestSchema, SubmitTaskRequestSchema, AsyncQuestionPageSchema, AnswerAsyncQuestionResponseSchema, AnswerAsyncQuestionRequestSchema, DismissAsyncQuestionsRequestSchema, ProjectTodoPageSchema, ProjectTodoResponseSchema, ProjectTodoDraftSchema, SaveProjectTodoRequestSchema, DeleteProjectTodoResponseSchema, DeleteProjectTodoRequestSchema, AgentQueuedSubmissionListSchema, AddAgentQueuedSubmissionResponseSchema, AddAgentQueuedSubmissionRequestSchema, UpdateAgentQueuedSubmissionResponseSchema, UpdateAgentQueuedSubmissionRequestSchema, DeleteAgentQueuedSubmissionResponseSchema, ReorderAgentQueuedSubmissionsResponseSchema, ReorderAgentQueuedSubmissionsRequestSchema, StartAgentQueuedSubmissionResponseSchema, StartAgentQueuedSubmissionRequestSchema, AgentPromptInputSchema, AgentProviderConnectionRecordSchema, MAX_AGENT_IMAGES, MAX_AGENT_IMAGE_TOTAL_BYTES, MAX_AGENT_FILE_TOTAL_BYTES, CODEXLY_USER_AGENT, CreateProjectDirectoryResponseSchema, CreateProjectDirectoryRequestSchema, isValidProjectDirectoryName, ProjectGitStatusSchema, ProjectGitStatusQuerySchema, ProjectGitHistoryPageSchema, ProjectGitHistoryQuerySchema, ProjectGitCommitFilesPageSchema, ProjectGitCommitFilesQuerySchema, ProjectGitCommitFileDiffSchema, ProjectGitCommitFileDiffQuerySchema, SwitchProjectBranchRequestSchema, CreateProjectBranchRequestSchema, GenerateCommitMessageResponseSchema, GenerateCommitMessageRequestSchema, CommitProjectChangesResponseSchema, CommitProjectChangesRequestSchema, ProjectSourceFileQuerySchema, ProjectFileTreeSchema, ProjectFileTreeQuerySchema, ProjectFileSearchPageSchema, ProjectFileSearchQuerySchema, StopProjectFileSearchResponseSchema, StopProjectFileSearchRequestSchema, ProjectSourceFileSchema, AgentAttachmentUploadResponseSchema, HostFileKindSchema, ImportHostAttachmentRequestSchema, AgentAttachmentKindSchema, AgentTaskSettingsResponseSchema, AgentTaskSettingsSchema, ReloadAgentMcpServersResponseSchema, ReloadAgentMcpServersRequestSchema, ReviewAgentTaskResponseSchema, ReviewAgentTaskRequestSchema, CompactAgentTaskResponseSchema, CompactAgentTaskRequestSchema, ForkAgentTaskResponseSchema, ForkAgentTaskRequestSchema, UploadAgentFeedbackResponseSchema, UploadAgentFeedbackRequestSchema, DeleteArchivedTasksResponseSchema, DeleteArchivedTasksRequestSchema, AgentTaskCatalogSchema, TaskCatalogQuerySchema, CompletedTasksPageSchema, CompletedTasksQuerySchema, UpdateTaskSettingsAndDefaultsResponseSchema, UpdateTaskSettingsAndDefaultsRequestSchema, NavigableAgentTaskResponseSchema, OpenAgentTaskAttachmentResponseSchema, OpenAgentTaskAttachmentRequestSchema, UpdateAgentGoalResponseSchema, UpdateAgentGoalRequestSchema, ClearAgentGoalResponseSchema, ProjectTodoSchema, AgentMessageAttachmentSchema, ProjectGitWorktreePageSchema, CreateTaskWorktreeResponseSchema, CreateProjectWorktreeRequestSchema, CreateProjectWorktreeResponseSchema, ProjectWorktreeMutationResponseSchema, SwitchProjectWorktreeRequestSchema, RenameProjectFileResponseSchema, RenameProjectFileRequestSchema, DeleteProjectFileResponseSchema, DeleteProjectFileRequestSchema, ProjectTextFileRevisionSchema, ProjectTextFileSchema, SaveProjectTextFileResponseSchema, SaveProjectTextFileRequestSchema, MAX_TEXT_FILE_BYTES, MAX_EVENT_BATCH_BYTES, MAX_EVENT_BATCH_SIZE } from './chunk-BRKY2HKI.js';
|
|
6
6
|
import { __commonJS, __require, __toESM } from './chunk-K6J42667.js';
|
|
7
7
|
import { Buffer as Buffer$1 } from 'buffer';
|
|
8
8
|
import { randomBytes, createHash, timingSafeEqual, randomUUID } from 'crypto';
|
|
@@ -287,41 +287,41 @@ var require_queue = __commonJS({
|
|
|
287
287
|
queue.drained = drained;
|
|
288
288
|
return queue;
|
|
289
289
|
function push(value) {
|
|
290
|
-
var p2 = new Promise(function(
|
|
290
|
+
var p2 = new Promise(function(resolve11, reject) {
|
|
291
291
|
pushCb(value, function(err2, result) {
|
|
292
292
|
if (err2) {
|
|
293
293
|
reject(err2);
|
|
294
294
|
return;
|
|
295
295
|
}
|
|
296
|
-
|
|
296
|
+
resolve11(result);
|
|
297
297
|
});
|
|
298
298
|
});
|
|
299
299
|
p2.catch(noop);
|
|
300
300
|
return p2;
|
|
301
301
|
}
|
|
302
302
|
function unshift(value) {
|
|
303
|
-
var p2 = new Promise(function(
|
|
303
|
+
var p2 = new Promise(function(resolve11, reject) {
|
|
304
304
|
unshiftCb(value, function(err2, result) {
|
|
305
305
|
if (err2) {
|
|
306
306
|
reject(err2);
|
|
307
307
|
return;
|
|
308
308
|
}
|
|
309
|
-
|
|
309
|
+
resolve11(result);
|
|
310
310
|
});
|
|
311
311
|
});
|
|
312
312
|
p2.catch(noop);
|
|
313
313
|
return p2;
|
|
314
314
|
}
|
|
315
315
|
function drained() {
|
|
316
|
-
var p2 = new Promise(function(
|
|
316
|
+
var p2 = new Promise(function(resolve11) {
|
|
317
317
|
process.nextTick(function() {
|
|
318
318
|
if (queue.idle()) {
|
|
319
|
-
|
|
319
|
+
resolve11();
|
|
320
320
|
} else {
|
|
321
321
|
var previousDrain = queue.drain;
|
|
322
322
|
queue.drain = function() {
|
|
323
323
|
if (typeof previousDrain === "function") previousDrain();
|
|
324
|
-
|
|
324
|
+
resolve11();
|
|
325
325
|
queue.drain = previousDrain;
|
|
326
326
|
};
|
|
327
327
|
}
|
|
@@ -658,8 +658,8 @@ var require_create_promise = __commonJS({
|
|
|
658
658
|
reject: null,
|
|
659
659
|
promise: null
|
|
660
660
|
};
|
|
661
|
-
obj.promise = new Promise((
|
|
662
|
-
obj.resolve =
|
|
661
|
+
obj.promise = new Promise((resolve11, reject) => {
|
|
662
|
+
obj.resolve = resolve11;
|
|
663
663
|
obj.reject = reject;
|
|
664
664
|
});
|
|
665
665
|
return obj;
|
|
@@ -922,11 +922,11 @@ var require_thenify = __commonJS({
|
|
|
922
922
|
return;
|
|
923
923
|
}
|
|
924
924
|
debug("thenify");
|
|
925
|
-
return (
|
|
925
|
+
return (resolve11, reject) => {
|
|
926
926
|
const p2 = this._loadRegistered();
|
|
927
927
|
return p2.then(() => {
|
|
928
928
|
this[kThenifyDoNotWrap] = true;
|
|
929
|
-
return
|
|
929
|
+
return resolve11(this._server);
|
|
930
930
|
}, reject);
|
|
931
931
|
};
|
|
932
932
|
}
|
|
@@ -1061,12 +1061,12 @@ var require_avvio = __commonJS({
|
|
|
1061
1061
|
inherits(Boot, EE);
|
|
1062
1062
|
if ("asyncDispose" in Symbol) {
|
|
1063
1063
|
Boot.prototype[Symbol.asyncDispose] = function() {
|
|
1064
|
-
return new Promise((
|
|
1064
|
+
return new Promise((resolve11, reject) => {
|
|
1065
1065
|
this.close((err2) => {
|
|
1066
1066
|
if (err2) {
|
|
1067
1067
|
return reject(err2);
|
|
1068
1068
|
}
|
|
1069
|
-
|
|
1069
|
+
resolve11();
|
|
1070
1070
|
});
|
|
1071
1071
|
});
|
|
1072
1072
|
};
|
|
@@ -1213,12 +1213,12 @@ var require_avvio = __commonJS({
|
|
|
1213
1213
|
throw new AVV_ERR_CALLBACK_NOT_FN("close", typeof func);
|
|
1214
1214
|
}
|
|
1215
1215
|
} else {
|
|
1216
|
-
promise = new Promise(function(
|
|
1216
|
+
promise = new Promise(function(resolve11, reject) {
|
|
1217
1217
|
func = function(err2) {
|
|
1218
1218
|
if (err2) {
|
|
1219
1219
|
return reject(err2);
|
|
1220
1220
|
}
|
|
1221
|
-
|
|
1221
|
+
resolve11();
|
|
1222
1222
|
};
|
|
1223
1223
|
});
|
|
1224
1224
|
}
|
|
@@ -1238,7 +1238,7 @@ var require_avvio = __commonJS({
|
|
|
1238
1238
|
queueMicrotask(this.start.bind(this));
|
|
1239
1239
|
return;
|
|
1240
1240
|
}
|
|
1241
|
-
return new Promise((
|
|
1241
|
+
return new Promise((resolve11, reject) => {
|
|
1242
1242
|
this._readyQ.push(readyPromiseCB);
|
|
1243
1243
|
this.start();
|
|
1244
1244
|
const relativeContext = this._current[0].server;
|
|
@@ -1246,7 +1246,7 @@ var require_avvio = __commonJS({
|
|
|
1246
1246
|
if (err2) {
|
|
1247
1247
|
reject(err2);
|
|
1248
1248
|
} else {
|
|
1249
|
-
|
|
1249
|
+
resolve11(relativeContext);
|
|
1250
1250
|
}
|
|
1251
1251
|
process.nextTick(done);
|
|
1252
1252
|
}
|
|
@@ -2625,8 +2625,8 @@ var require_promise = __commonJS({
|
|
|
2625
2625
|
var { kTestInternals } = require_symbols2();
|
|
2626
2626
|
function withResolvers() {
|
|
2627
2627
|
let res, rej;
|
|
2628
|
-
const promise = new Promise((
|
|
2629
|
-
res =
|
|
2628
|
+
const promise = new Promise((resolve11, reject) => {
|
|
2629
|
+
res = resolve11;
|
|
2630
2630
|
rej = reject;
|
|
2631
2631
|
});
|
|
2632
2632
|
return { promise, resolve: res, reject: rej };
|
|
@@ -2724,15 +2724,15 @@ var require_server = __commonJS({
|
|
|
2724
2724
|
if (cb === void 0) {
|
|
2725
2725
|
const listening = listenPromise.call(this, server, listenOptions);
|
|
2726
2726
|
return listening.then((address) => {
|
|
2727
|
-
const { promise, resolve:
|
|
2727
|
+
const { promise, resolve: resolve11 } = PonyPromise.withResolvers();
|
|
2728
2728
|
if (host === "localhost") {
|
|
2729
2729
|
multipleBindings.call(this, server, httpHandler, options, listenOptions, () => {
|
|
2730
2730
|
this[kState].listening = true;
|
|
2731
|
-
|
|
2731
|
+
resolve11(address);
|
|
2732
2732
|
onListenHookRunner(this);
|
|
2733
2733
|
});
|
|
2734
2734
|
} else {
|
|
2735
|
-
|
|
2735
|
+
resolve11(address);
|
|
2736
2736
|
onListenHookRunner(this);
|
|
2737
2737
|
}
|
|
2738
2738
|
return promise;
|
|
@@ -2859,7 +2859,7 @@ var require_server = __commonJS({
|
|
|
2859
2859
|
}
|
|
2860
2860
|
return this.ready().then(() => {
|
|
2861
2861
|
if (this[kState].aborted) return;
|
|
2862
|
-
const { promise, resolve:
|
|
2862
|
+
const { promise, resolve: resolve11, reject } = PonyPromise.withResolvers();
|
|
2863
2863
|
const errEventHandler = (err2) => {
|
|
2864
2864
|
cleanup();
|
|
2865
2865
|
this[kState].listening = false;
|
|
@@ -2868,7 +2868,7 @@ var require_server = __commonJS({
|
|
|
2868
2868
|
const listeningEventHandler = () => {
|
|
2869
2869
|
cleanup();
|
|
2870
2870
|
this[kState].listening = true;
|
|
2871
|
-
|
|
2871
|
+
resolve11(logServerAddress.call(
|
|
2872
2872
|
this,
|
|
2873
2873
|
server,
|
|
2874
2874
|
listenOptions.listenTextResolver || defaultResolveServerListeningText
|
|
@@ -12434,7 +12434,7 @@ var require_compile = __commonJS({
|
|
|
12434
12434
|
const schOrFunc = root.refs[ref];
|
|
12435
12435
|
if (schOrFunc)
|
|
12436
12436
|
return schOrFunc;
|
|
12437
|
-
let _sch =
|
|
12437
|
+
let _sch = resolve11.call(this, root, ref);
|
|
12438
12438
|
if (_sch === void 0) {
|
|
12439
12439
|
const schema = (_a2 = root.localRefs) === null || _a2 === void 0 ? void 0 : _a2[ref];
|
|
12440
12440
|
const { schemaId } = this.opts;
|
|
@@ -12461,7 +12461,7 @@ var require_compile = __commonJS({
|
|
|
12461
12461
|
function sameSchemaEnv(s1, s2) {
|
|
12462
12462
|
return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
|
|
12463
12463
|
}
|
|
12464
|
-
function
|
|
12464
|
+
function resolve11(root, ref) {
|
|
12465
12465
|
let sch;
|
|
12466
12466
|
while (typeof (sch = this.refs[ref]) == "string")
|
|
12467
12467
|
ref = sch;
|
|
@@ -13288,7 +13288,7 @@ var require_fast_uri = __commonJS({
|
|
|
13288
13288
|
}
|
|
13289
13289
|
return uri;
|
|
13290
13290
|
}
|
|
13291
|
-
function
|
|
13291
|
+
function resolve11(baseURI, relativeURI, options) {
|
|
13292
13292
|
const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
|
|
13293
13293
|
const {
|
|
13294
13294
|
parsed: baseParsed,
|
|
@@ -13321,49 +13321,49 @@ var require_fast_uri = __commonJS({
|
|
|
13321
13321
|
schemelessOptions.skipEscape = true;
|
|
13322
13322
|
return serialize(resolved, schemelessOptions);
|
|
13323
13323
|
}
|
|
13324
|
-
function resolveComponent(base,
|
|
13324
|
+
function resolveComponent(base, relative10, options, skipNormalization) {
|
|
13325
13325
|
const target = {};
|
|
13326
13326
|
if (!skipNormalization) {
|
|
13327
13327
|
base = parse2(serialize(base, options), options);
|
|
13328
|
-
|
|
13328
|
+
relative10 = parse2(serialize(relative10, options), options);
|
|
13329
13329
|
}
|
|
13330
13330
|
options = options || {};
|
|
13331
|
-
if (!options.tolerant &&
|
|
13332
|
-
target.scheme =
|
|
13333
|
-
target.userinfo =
|
|
13334
|
-
target.host =
|
|
13335
|
-
target.port =
|
|
13336
|
-
target.path = removeDotSegments(
|
|
13337
|
-
target.query =
|
|
13331
|
+
if (!options.tolerant && relative10.scheme) {
|
|
13332
|
+
target.scheme = relative10.scheme;
|
|
13333
|
+
target.userinfo = relative10.userinfo;
|
|
13334
|
+
target.host = relative10.host;
|
|
13335
|
+
target.port = relative10.port;
|
|
13336
|
+
target.path = removeDotSegments(relative10.path || "");
|
|
13337
|
+
target.query = relative10.query;
|
|
13338
13338
|
} else {
|
|
13339
|
-
if (
|
|
13340
|
-
target.userinfo =
|
|
13341
|
-
target.host =
|
|
13342
|
-
target.port =
|
|
13343
|
-
target.path = removeDotSegments(
|
|
13344
|
-
target.query =
|
|
13339
|
+
if (relative10.userinfo !== void 0 || relative10.host !== void 0 || relative10.port !== void 0) {
|
|
13340
|
+
target.userinfo = relative10.userinfo;
|
|
13341
|
+
target.host = relative10.host;
|
|
13342
|
+
target.port = relative10.port;
|
|
13343
|
+
target.path = removeDotSegments(relative10.path || "");
|
|
13344
|
+
target.query = relative10.query;
|
|
13345
13345
|
} else {
|
|
13346
|
-
if (!
|
|
13346
|
+
if (!relative10.path) {
|
|
13347
13347
|
target.path = base.path;
|
|
13348
|
-
if (
|
|
13349
|
-
target.query =
|
|
13348
|
+
if (relative10.query !== void 0) {
|
|
13349
|
+
target.query = relative10.query;
|
|
13350
13350
|
} else {
|
|
13351
13351
|
target.query = base.query;
|
|
13352
13352
|
}
|
|
13353
13353
|
} else {
|
|
13354
|
-
if (
|
|
13355
|
-
target.path = removeDotSegments(
|
|
13354
|
+
if (relative10.path[0] === "/") {
|
|
13355
|
+
target.path = removeDotSegments(relative10.path);
|
|
13356
13356
|
} else {
|
|
13357
13357
|
if ((base.userinfo !== void 0 || base.host !== void 0 || base.port !== void 0) && !base.path) {
|
|
13358
|
-
target.path = "/" +
|
|
13358
|
+
target.path = "/" + relative10.path;
|
|
13359
13359
|
} else if (!base.path) {
|
|
13360
|
-
target.path =
|
|
13360
|
+
target.path = relative10.path;
|
|
13361
13361
|
} else {
|
|
13362
|
-
target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) +
|
|
13362
|
+
target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative10.path;
|
|
13363
13363
|
}
|
|
13364
13364
|
target.path = removeDotSegments(target.path);
|
|
13365
13365
|
}
|
|
13366
|
-
target.query =
|
|
13366
|
+
target.query = relative10.query;
|
|
13367
13367
|
}
|
|
13368
13368
|
target.userinfo = base.userinfo;
|
|
13369
13369
|
target.host = base.host;
|
|
@@ -13371,7 +13371,7 @@ var require_fast_uri = __commonJS({
|
|
|
13371
13371
|
}
|
|
13372
13372
|
target.scheme = base.scheme;
|
|
13373
13373
|
}
|
|
13374
|
-
target.fragment =
|
|
13374
|
+
target.fragment = relative10.fragment;
|
|
13375
13375
|
return target;
|
|
13376
13376
|
}
|
|
13377
13377
|
function equal(uriA, uriB, options) {
|
|
@@ -13657,7 +13657,7 @@ var require_fast_uri = __commonJS({
|
|
|
13657
13657
|
var fastUri = {
|
|
13658
13658
|
SCHEMES,
|
|
13659
13659
|
normalize,
|
|
13660
|
-
resolve:
|
|
13660
|
+
resolve: resolve11,
|
|
13661
13661
|
resolveComponent,
|
|
13662
13662
|
equal,
|
|
13663
13663
|
serialize,
|
|
@@ -19851,7 +19851,7 @@ var require_fast_uri2 = __commonJS({
|
|
|
19851
19851
|
}
|
|
19852
19852
|
return uri;
|
|
19853
19853
|
}
|
|
19854
|
-
function
|
|
19854
|
+
function resolve11(baseURI, relativeURI, options) {
|
|
19855
19855
|
const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
|
|
19856
19856
|
const {
|
|
19857
19857
|
parsed: baseParsed,
|
|
@@ -19884,49 +19884,49 @@ var require_fast_uri2 = __commonJS({
|
|
|
19884
19884
|
schemelessOptions.skipEscape = true;
|
|
19885
19885
|
return serialize(resolved, schemelessOptions);
|
|
19886
19886
|
}
|
|
19887
|
-
function resolveComponent(base,
|
|
19887
|
+
function resolveComponent(base, relative10, options, skipNormalization) {
|
|
19888
19888
|
const target = {};
|
|
19889
19889
|
if (!skipNormalization) {
|
|
19890
19890
|
base = parse2(serialize(base, options), options);
|
|
19891
|
-
|
|
19891
|
+
relative10 = parse2(serialize(relative10, options), options);
|
|
19892
19892
|
}
|
|
19893
19893
|
options = options || {};
|
|
19894
|
-
if (!options.tolerant &&
|
|
19895
|
-
target.scheme =
|
|
19896
|
-
target.userinfo =
|
|
19897
|
-
target.host =
|
|
19898
|
-
target.port =
|
|
19899
|
-
target.path = removeDotSegments(
|
|
19900
|
-
target.query =
|
|
19894
|
+
if (!options.tolerant && relative10.scheme) {
|
|
19895
|
+
target.scheme = relative10.scheme;
|
|
19896
|
+
target.userinfo = relative10.userinfo;
|
|
19897
|
+
target.host = relative10.host;
|
|
19898
|
+
target.port = relative10.port;
|
|
19899
|
+
target.path = removeDotSegments(relative10.path || "");
|
|
19900
|
+
target.query = relative10.query;
|
|
19901
19901
|
} else {
|
|
19902
|
-
if (
|
|
19903
|
-
target.userinfo =
|
|
19904
|
-
target.host =
|
|
19905
|
-
target.port =
|
|
19906
|
-
target.path = removeDotSegments(
|
|
19907
|
-
target.query =
|
|
19902
|
+
if (relative10.userinfo !== void 0 || relative10.host !== void 0 || relative10.port !== void 0) {
|
|
19903
|
+
target.userinfo = relative10.userinfo;
|
|
19904
|
+
target.host = relative10.host;
|
|
19905
|
+
target.port = relative10.port;
|
|
19906
|
+
target.path = removeDotSegments(relative10.path || "");
|
|
19907
|
+
target.query = relative10.query;
|
|
19908
19908
|
} else {
|
|
19909
|
-
if (!
|
|
19909
|
+
if (!relative10.path) {
|
|
19910
19910
|
target.path = base.path;
|
|
19911
|
-
if (
|
|
19912
|
-
target.query =
|
|
19911
|
+
if (relative10.query !== void 0) {
|
|
19912
|
+
target.query = relative10.query;
|
|
19913
19913
|
} else {
|
|
19914
19914
|
target.query = base.query;
|
|
19915
19915
|
}
|
|
19916
19916
|
} else {
|
|
19917
|
-
if (
|
|
19918
|
-
target.path = removeDotSegments(
|
|
19917
|
+
if (relative10.path[0] === "/") {
|
|
19918
|
+
target.path = removeDotSegments(relative10.path);
|
|
19919
19919
|
} else {
|
|
19920
19920
|
if ((base.userinfo !== void 0 || base.host !== void 0 || base.port !== void 0) && !base.path) {
|
|
19921
|
-
target.path = "/" +
|
|
19921
|
+
target.path = "/" + relative10.path;
|
|
19922
19922
|
} else if (!base.path) {
|
|
19923
|
-
target.path =
|
|
19923
|
+
target.path = relative10.path;
|
|
19924
19924
|
} else {
|
|
19925
|
-
target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) +
|
|
19925
|
+
target.path = base.path.slice(0, base.path.lastIndexOf("/") + 1) + relative10.path;
|
|
19926
19926
|
}
|
|
19927
19927
|
target.path = removeDotSegments(target.path);
|
|
19928
19928
|
}
|
|
19929
|
-
target.query =
|
|
19929
|
+
target.query = relative10.query;
|
|
19930
19930
|
}
|
|
19931
19931
|
target.userinfo = base.userinfo;
|
|
19932
19932
|
target.host = base.host;
|
|
@@ -19934,7 +19934,7 @@ var require_fast_uri2 = __commonJS({
|
|
|
19934
19934
|
}
|
|
19935
19935
|
target.scheme = base.scheme;
|
|
19936
19936
|
}
|
|
19937
|
-
target.fragment =
|
|
19937
|
+
target.fragment = relative10.fragment;
|
|
19938
19938
|
return target;
|
|
19939
19939
|
}
|
|
19940
19940
|
function equal(uriA, uriB, options) {
|
|
@@ -20225,7 +20225,7 @@ var require_fast_uri2 = __commonJS({
|
|
|
20225
20225
|
var fastUri = {
|
|
20226
20226
|
SCHEMES,
|
|
20227
20227
|
normalize,
|
|
20228
|
-
resolve:
|
|
20228
|
+
resolve: resolve11,
|
|
20229
20229
|
resolveComponent,
|
|
20230
20230
|
equal,
|
|
20231
20231
|
serialize,
|
|
@@ -29553,7 +29553,7 @@ var require_parse_url = __commonJS({
|
|
|
29553
29553
|
// node_modules/.pnpm/light-my-request@6.6.0/node_modules/light-my-request/lib/form-data.js
|
|
29554
29554
|
var require_form_data = __commonJS({
|
|
29555
29555
|
"node_modules/.pnpm/light-my-request@6.6.0/node_modules/light-my-request/lib/form-data.js"(exports, module) {
|
|
29556
|
-
var { randomUUID:
|
|
29556
|
+
var { randomUUID: randomUUID10 } = __require("crypto");
|
|
29557
29557
|
var { Readable: Readable4 } = __require("stream");
|
|
29558
29558
|
var textEncoder;
|
|
29559
29559
|
function isFormDataLike(payload) {
|
|
@@ -29561,7 +29561,7 @@ var require_form_data = __commonJS({
|
|
|
29561
29561
|
}
|
|
29562
29562
|
function formDataToStream(formdata) {
|
|
29563
29563
|
textEncoder = textEncoder ?? new TextEncoder();
|
|
29564
|
-
const boundary = `----formdata-${
|
|
29564
|
+
const boundary = `----formdata-${randomUUID10()}`;
|
|
29565
29565
|
const prefix = `--${boundary}\r
|
|
29566
29566
|
Content-Disposition: form-data`;
|
|
29567
29567
|
const escape2 = (str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22");
|
|
@@ -31059,9 +31059,9 @@ var require_light_my_request = __commonJS({
|
|
|
31059
31059
|
const res = new Response(req, callback);
|
|
31060
31060
|
return makeRequest(dispatchFunc, server, req, res);
|
|
31061
31061
|
} else {
|
|
31062
|
-
return new Promise((
|
|
31062
|
+
return new Promise((resolve11, reject) => {
|
|
31063
31063
|
const req = new RequestConstructor(options);
|
|
31064
|
-
const res = new Response(req,
|
|
31064
|
+
const res = new Response(req, resolve11, reject);
|
|
31065
31065
|
makeRequest(dispatchFunc, server, req, res);
|
|
31066
31066
|
});
|
|
31067
31067
|
}
|
|
@@ -36765,10 +36765,10 @@ var require_resolve_block_map = __commonJS({
|
|
|
36765
36765
|
let offset = bm.offset;
|
|
36766
36766
|
let commentEnd = null;
|
|
36767
36767
|
for (const collItem of bm.items) {
|
|
36768
|
-
const { start, key, sep:
|
|
36768
|
+
const { start, key, sep: sep9, value } = collItem;
|
|
36769
36769
|
const keyProps = resolveProps.resolveProps(start, {
|
|
36770
36770
|
indicator: "explicit-key-ind",
|
|
36771
|
-
next: key ??
|
|
36771
|
+
next: key ?? sep9?.[0],
|
|
36772
36772
|
offset,
|
|
36773
36773
|
onError,
|
|
36774
36774
|
parentIndent: bm.indent,
|
|
@@ -36782,7 +36782,7 @@ var require_resolve_block_map = __commonJS({
|
|
|
36782
36782
|
else if ("indent" in key && key.indent !== bm.indent)
|
|
36783
36783
|
onError(offset, "BAD_INDENT", startColMsg);
|
|
36784
36784
|
}
|
|
36785
|
-
if (!keyProps.anchor && !keyProps.tag && !
|
|
36785
|
+
if (!keyProps.anchor && !keyProps.tag && !sep9) {
|
|
36786
36786
|
commentEnd = keyProps.end;
|
|
36787
36787
|
if (keyProps.comment) {
|
|
36788
36788
|
if (map.comment)
|
|
@@ -36806,7 +36806,7 @@ var require_resolve_block_map = __commonJS({
|
|
|
36806
36806
|
ctx.atKey = false;
|
|
36807
36807
|
if (utilMapIncludes.mapIncludes(ctx, map.items, keyNode))
|
|
36808
36808
|
onError(keyStart, "DUPLICATE_KEY", "Map keys must be unique");
|
|
36809
|
-
const valueProps = resolveProps.resolveProps(
|
|
36809
|
+
const valueProps = resolveProps.resolveProps(sep9 ?? [], {
|
|
36810
36810
|
indicator: "map-value-ind",
|
|
36811
36811
|
next: value,
|
|
36812
36812
|
offset: keyNode.range[2],
|
|
@@ -36822,7 +36822,7 @@ var require_resolve_block_map = __commonJS({
|
|
|
36822
36822
|
if (ctx.options.strict && keyProps.start < valueProps.found.offset - 1024)
|
|
36823
36823
|
onError(keyNode.range, "KEY_OVER_1024_CHARS", "The : indicator must be at most 1024 chars after the start of an implicit block mapping key");
|
|
36824
36824
|
}
|
|
36825
|
-
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : composeEmptyNode(ctx, offset,
|
|
36825
|
+
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : composeEmptyNode(ctx, offset, sep9, null, valueProps, onError);
|
|
36826
36826
|
if (ctx.schema.compat)
|
|
36827
36827
|
utilFlowIndentCheck.flowIndentCheck(bm.indent, value, onError);
|
|
36828
36828
|
offset = valueNode.range[2];
|
|
@@ -36911,7 +36911,7 @@ var require_resolve_end = __commonJS({
|
|
|
36911
36911
|
let comment = "";
|
|
36912
36912
|
if (end) {
|
|
36913
36913
|
let hasSpace = false;
|
|
36914
|
-
let
|
|
36914
|
+
let sep9 = "";
|
|
36915
36915
|
for (const token of end) {
|
|
36916
36916
|
const { source, type } = token;
|
|
36917
36917
|
switch (type) {
|
|
@@ -36925,13 +36925,13 @@ var require_resolve_end = __commonJS({
|
|
|
36925
36925
|
if (!comment)
|
|
36926
36926
|
comment = cb;
|
|
36927
36927
|
else
|
|
36928
|
-
comment +=
|
|
36929
|
-
|
|
36928
|
+
comment += sep9 + cb;
|
|
36929
|
+
sep9 = "";
|
|
36930
36930
|
break;
|
|
36931
36931
|
}
|
|
36932
36932
|
case "newline":
|
|
36933
36933
|
if (comment)
|
|
36934
|
-
|
|
36934
|
+
sep9 += source;
|
|
36935
36935
|
hasSpace = true;
|
|
36936
36936
|
break;
|
|
36937
36937
|
default:
|
|
@@ -36973,18 +36973,18 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
36973
36973
|
let offset = fc.offset + fc.start.source.length;
|
|
36974
36974
|
for (let i = 0; i < fc.items.length; ++i) {
|
|
36975
36975
|
const collItem = fc.items[i];
|
|
36976
|
-
const { start, key, sep:
|
|
36976
|
+
const { start, key, sep: sep9, value } = collItem;
|
|
36977
36977
|
const props = resolveProps.resolveProps(start, {
|
|
36978
36978
|
flow: fcName,
|
|
36979
36979
|
indicator: "explicit-key-ind",
|
|
36980
|
-
next: key ??
|
|
36980
|
+
next: key ?? sep9?.[0],
|
|
36981
36981
|
offset,
|
|
36982
36982
|
onError,
|
|
36983
36983
|
parentIndent: fc.indent,
|
|
36984
36984
|
startOnNewline: false
|
|
36985
36985
|
});
|
|
36986
36986
|
if (!props.found) {
|
|
36987
|
-
if (!props.anchor && !props.tag && !
|
|
36987
|
+
if (!props.anchor && !props.tag && !sep9 && !value) {
|
|
36988
36988
|
if (i === 0 && props.comma)
|
|
36989
36989
|
onError(props.comma, "UNEXPECTED_TOKEN", `Unexpected , in ${fcName}`);
|
|
36990
36990
|
else if (i < fc.items.length - 1)
|
|
@@ -37038,8 +37038,8 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
37038
37038
|
}
|
|
37039
37039
|
}
|
|
37040
37040
|
}
|
|
37041
|
-
if (!isMap && !
|
|
37042
|
-
const valueNode = value ? composeNode(ctx, value, props, onError) : composeEmptyNode(ctx, props.end,
|
|
37041
|
+
if (!isMap && !sep9 && !props.found) {
|
|
37042
|
+
const valueNode = value ? composeNode(ctx, value, props, onError) : composeEmptyNode(ctx, props.end, sep9, null, props, onError);
|
|
37043
37043
|
coll.items.push(valueNode);
|
|
37044
37044
|
offset = valueNode.range[2];
|
|
37045
37045
|
if (isBlock(value))
|
|
@@ -37051,7 +37051,7 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
37051
37051
|
if (isBlock(key))
|
|
37052
37052
|
onError(keyNode.range, "BLOCK_IN_FLOW", blockMsg);
|
|
37053
37053
|
ctx.atKey = false;
|
|
37054
|
-
const valueProps = resolveProps.resolveProps(
|
|
37054
|
+
const valueProps = resolveProps.resolveProps(sep9 ?? [], {
|
|
37055
37055
|
flow: fcName,
|
|
37056
37056
|
indicator: "map-value-ind",
|
|
37057
37057
|
next: value,
|
|
@@ -37062,8 +37062,8 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
37062
37062
|
});
|
|
37063
37063
|
if (valueProps.found) {
|
|
37064
37064
|
if (!isMap && !props.found && ctx.options.strict) {
|
|
37065
|
-
if (
|
|
37066
|
-
for (const st2 of
|
|
37065
|
+
if (sep9)
|
|
37066
|
+
for (const st2 of sep9) {
|
|
37067
37067
|
if (st2 === valueProps.found)
|
|
37068
37068
|
break;
|
|
37069
37069
|
if (st2.type === "newline") {
|
|
@@ -37080,7 +37080,7 @@ var require_resolve_flow_collection = __commonJS({
|
|
|
37080
37080
|
else
|
|
37081
37081
|
onError(valueProps.start, "MISSING_CHAR", `Missing , or : between ${fcName} items`);
|
|
37082
37082
|
}
|
|
37083
|
-
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : valueProps.found ? composeEmptyNode(ctx, valueProps.end,
|
|
37083
|
+
const valueNode = value ? composeNode(ctx, value, valueProps, onError) : valueProps.found ? composeEmptyNode(ctx, valueProps.end, sep9, null, valueProps, onError) : null;
|
|
37084
37084
|
if (valueNode) {
|
|
37085
37085
|
if (isBlock(value))
|
|
37086
37086
|
onError(valueNode.range, "BLOCK_IN_FLOW", blockMsg);
|
|
@@ -37258,7 +37258,7 @@ var require_resolve_block_scalar = __commonJS({
|
|
|
37258
37258
|
chompStart = i + 1;
|
|
37259
37259
|
}
|
|
37260
37260
|
let value = "";
|
|
37261
|
-
let
|
|
37261
|
+
let sep9 = "";
|
|
37262
37262
|
let prevMoreIndented = false;
|
|
37263
37263
|
for (let i = 0; i < contentStart; ++i)
|
|
37264
37264
|
value += lines[i][0].slice(trimIndent) + "\n";
|
|
@@ -37275,24 +37275,24 @@ var require_resolve_block_scalar = __commonJS({
|
|
|
37275
37275
|
indent = "";
|
|
37276
37276
|
}
|
|
37277
37277
|
if (type === Scalar.Scalar.BLOCK_LITERAL) {
|
|
37278
|
-
value +=
|
|
37279
|
-
|
|
37278
|
+
value += sep9 + indent.slice(trimIndent) + content;
|
|
37279
|
+
sep9 = "\n";
|
|
37280
37280
|
} else if (indent.length > trimIndent || content[0] === " ") {
|
|
37281
|
-
if (
|
|
37282
|
-
|
|
37283
|
-
else if (!prevMoreIndented &&
|
|
37284
|
-
|
|
37285
|
-
value +=
|
|
37286
|
-
|
|
37281
|
+
if (sep9 === " ")
|
|
37282
|
+
sep9 = "\n";
|
|
37283
|
+
else if (!prevMoreIndented && sep9 === "\n")
|
|
37284
|
+
sep9 = "\n\n";
|
|
37285
|
+
value += sep9 + indent.slice(trimIndent) + content;
|
|
37286
|
+
sep9 = "\n";
|
|
37287
37287
|
prevMoreIndented = true;
|
|
37288
37288
|
} else if (content === "") {
|
|
37289
|
-
if (
|
|
37289
|
+
if (sep9 === "\n")
|
|
37290
37290
|
value += "\n";
|
|
37291
37291
|
else
|
|
37292
|
-
|
|
37292
|
+
sep9 = "\n";
|
|
37293
37293
|
} else {
|
|
37294
|
-
value +=
|
|
37295
|
-
|
|
37294
|
+
value += sep9 + content;
|
|
37295
|
+
sep9 = " ";
|
|
37296
37296
|
prevMoreIndented = false;
|
|
37297
37297
|
}
|
|
37298
37298
|
}
|
|
@@ -37473,25 +37473,25 @@ var require_resolve_flow_scalar = __commonJS({
|
|
|
37473
37473
|
if (!match)
|
|
37474
37474
|
return source;
|
|
37475
37475
|
let res = match[1];
|
|
37476
|
-
let
|
|
37476
|
+
let sep9 = " ";
|
|
37477
37477
|
let pos = first.lastIndex;
|
|
37478
37478
|
line.lastIndex = pos;
|
|
37479
37479
|
while (match = line.exec(source)) {
|
|
37480
37480
|
if (match[1] === "") {
|
|
37481
|
-
if (
|
|
37482
|
-
res +=
|
|
37481
|
+
if (sep9 === "\n")
|
|
37482
|
+
res += sep9;
|
|
37483
37483
|
else
|
|
37484
|
-
|
|
37484
|
+
sep9 = "\n";
|
|
37485
37485
|
} else {
|
|
37486
|
-
res +=
|
|
37487
|
-
|
|
37486
|
+
res += sep9 + match[1];
|
|
37487
|
+
sep9 = " ";
|
|
37488
37488
|
}
|
|
37489
37489
|
pos = line.lastIndex;
|
|
37490
37490
|
}
|
|
37491
37491
|
const last = /[ \t]*(.*)/sy;
|
|
37492
37492
|
last.lastIndex = pos;
|
|
37493
37493
|
match = last.exec(source);
|
|
37494
|
-
return res +
|
|
37494
|
+
return res + sep9 + (match?.[1] ?? "");
|
|
37495
37495
|
}
|
|
37496
37496
|
function doubleQuotedValue(source, onError) {
|
|
37497
37497
|
let res = "";
|
|
@@ -38294,14 +38294,14 @@ var require_cst_stringify = __commonJS({
|
|
|
38294
38294
|
}
|
|
38295
38295
|
}
|
|
38296
38296
|
}
|
|
38297
|
-
function stringifyItem({ start, key, sep:
|
|
38297
|
+
function stringifyItem({ start, key, sep: sep9, value }) {
|
|
38298
38298
|
let res = "";
|
|
38299
38299
|
for (const st2 of start)
|
|
38300
38300
|
res += st2.source;
|
|
38301
38301
|
if (key)
|
|
38302
38302
|
res += stringifyToken(key);
|
|
38303
|
-
if (
|
|
38304
|
-
for (const st2 of
|
|
38303
|
+
if (sep9)
|
|
38304
|
+
for (const st2 of sep9)
|
|
38305
38305
|
res += st2.source;
|
|
38306
38306
|
if (value)
|
|
38307
38307
|
res += stringifyToken(value);
|
|
@@ -39463,18 +39463,18 @@ var require_parser = __commonJS({
|
|
|
39463
39463
|
if (this.type === "map-value-ind") {
|
|
39464
39464
|
const prev = getPrevProps(this.peek(2));
|
|
39465
39465
|
const start = getFirstKeyStartProps(prev);
|
|
39466
|
-
let
|
|
39466
|
+
let sep9;
|
|
39467
39467
|
if (scalar.end) {
|
|
39468
|
-
|
|
39469
|
-
|
|
39468
|
+
sep9 = scalar.end;
|
|
39469
|
+
sep9.push(this.sourceToken);
|
|
39470
39470
|
delete scalar.end;
|
|
39471
39471
|
} else
|
|
39472
|
-
|
|
39472
|
+
sep9 = [this.sourceToken];
|
|
39473
39473
|
const map = {
|
|
39474
39474
|
type: "block-map",
|
|
39475
39475
|
offset: scalar.offset,
|
|
39476
39476
|
indent: scalar.indent,
|
|
39477
|
-
items: [{ start, key: scalar, sep:
|
|
39477
|
+
items: [{ start, key: scalar, sep: sep9 }]
|
|
39478
39478
|
};
|
|
39479
39479
|
this.onKeyLine = true;
|
|
39480
39480
|
this.stack[this.stack.length - 1] = map;
|
|
@@ -39627,15 +39627,15 @@ var require_parser = __commonJS({
|
|
|
39627
39627
|
} else if (isFlowToken(it2.key) && !includesToken(it2.sep, "newline")) {
|
|
39628
39628
|
const start2 = getFirstKeyStartProps(it2.start);
|
|
39629
39629
|
const key = it2.key;
|
|
39630
|
-
const
|
|
39631
|
-
|
|
39630
|
+
const sep9 = it2.sep;
|
|
39631
|
+
sep9.push(this.sourceToken);
|
|
39632
39632
|
delete it2.key;
|
|
39633
39633
|
delete it2.sep;
|
|
39634
39634
|
this.stack.push({
|
|
39635
39635
|
type: "block-map",
|
|
39636
39636
|
offset: this.offset,
|
|
39637
39637
|
indent: this.indent,
|
|
39638
|
-
items: [{ start: start2, key, sep:
|
|
39638
|
+
items: [{ start: start2, key, sep: sep9 }]
|
|
39639
39639
|
});
|
|
39640
39640
|
} else if (start.length > 0) {
|
|
39641
39641
|
it2.sep = it2.sep.concat(start, this.sourceToken);
|
|
@@ -39829,13 +39829,13 @@ var require_parser = __commonJS({
|
|
|
39829
39829
|
const prev = getPrevProps(parent);
|
|
39830
39830
|
const start = getFirstKeyStartProps(prev);
|
|
39831
39831
|
fixFlowSeqItems(fc);
|
|
39832
|
-
const
|
|
39833
|
-
|
|
39832
|
+
const sep9 = fc.end.splice(1, fc.end.length);
|
|
39833
|
+
sep9.push(this.sourceToken);
|
|
39834
39834
|
const map = {
|
|
39835
39835
|
type: "block-map",
|
|
39836
39836
|
offset: fc.offset,
|
|
39837
39837
|
indent: fc.indent,
|
|
39838
|
-
items: [{ start, key: fc, sep:
|
|
39838
|
+
items: [{ start, key: fc, sep: sep9 }]
|
|
39839
39839
|
};
|
|
39840
39840
|
this.onKeyLine = true;
|
|
39841
39841
|
this.stack[this.stack.length - 1] = map;
|
|
@@ -41106,20 +41106,20 @@ var require_decodeText = __commonJS({
|
|
|
41106
41106
|
return typeof data === "string" ? data : data.toString();
|
|
41107
41107
|
}
|
|
41108
41108
|
};
|
|
41109
|
-
function
|
|
41109
|
+
function decodeText2(text, sourceEncoding, destEncoding) {
|
|
41110
41110
|
if (text) {
|
|
41111
41111
|
return getDecoder(destEncoding)(text, sourceEncoding);
|
|
41112
41112
|
}
|
|
41113
41113
|
return text;
|
|
41114
41114
|
}
|
|
41115
|
-
module.exports =
|
|
41115
|
+
module.exports = decodeText2;
|
|
41116
41116
|
}
|
|
41117
41117
|
});
|
|
41118
41118
|
|
|
41119
41119
|
// node_modules/.pnpm/@fastify+busboy@3.2.2/node_modules/@fastify/busboy/lib/utils/parseParams.js
|
|
41120
41120
|
var require_parseParams = __commonJS({
|
|
41121
41121
|
"node_modules/.pnpm/@fastify+busboy@3.2.2/node_modules/@fastify/busboy/lib/utils/parseParams.js"(exports, module) {
|
|
41122
|
-
var
|
|
41122
|
+
var decodeText2 = require_decodeText();
|
|
41123
41123
|
var RE_ENCODED = /%[a-fA-F0-9][a-fA-F0-9]/g;
|
|
41124
41124
|
var EncodedLookup = {
|
|
41125
41125
|
"%00": "\0",
|
|
@@ -41613,7 +41613,7 @@ var require_parseParams = __commonJS({
|
|
|
41613
41613
|
function decodeUtf8Text(text) {
|
|
41614
41614
|
for (var i = 0, len = text.length; i < len; ++i) {
|
|
41615
41615
|
if (text.charCodeAt(i) > 127) {
|
|
41616
|
-
return
|
|
41616
|
+
return decodeText2(text, "binary", "utf8");
|
|
41617
41617
|
}
|
|
41618
41618
|
}
|
|
41619
41619
|
return text;
|
|
@@ -41717,7 +41717,7 @@ var require_parseParams = __commonJS({
|
|
|
41717
41717
|
state = STATE_KEY;
|
|
41718
41718
|
if (charset) {
|
|
41719
41719
|
if (tmp.length) {
|
|
41720
|
-
tmp =
|
|
41720
|
+
tmp = decodeText2(
|
|
41721
41721
|
tmp.replace(RE_ENCODED, encodedReplacer),
|
|
41722
41722
|
"binary",
|
|
41723
41723
|
charset
|
|
@@ -41742,7 +41742,7 @@ var require_parseParams = __commonJS({
|
|
|
41742
41742
|
tmp += char;
|
|
41743
41743
|
}
|
|
41744
41744
|
if (charset && tmp.length) {
|
|
41745
|
-
tmp =
|
|
41745
|
+
tmp = decodeText2(
|
|
41746
41746
|
tmp.replace(RE_ENCODED, encodedReplacer),
|
|
41747
41747
|
"binary",
|
|
41748
41748
|
charset
|
|
@@ -41791,7 +41791,7 @@ var require_multipart = __commonJS({
|
|
|
41791
41791
|
var { inherits } = __require("util");
|
|
41792
41792
|
var Dicer = require_Dicer();
|
|
41793
41793
|
var parseParams = require_parseParams();
|
|
41794
|
-
var
|
|
41794
|
+
var decodeText2 = require_decodeText();
|
|
41795
41795
|
var basename9 = require_basename();
|
|
41796
41796
|
var getLimit = require_getLimit();
|
|
41797
41797
|
var RE_BOUNDARY = /^boundary$/i;
|
|
@@ -42017,7 +42017,7 @@ var require_multipart = __commonJS({
|
|
|
42017
42017
|
onEnd = function() {
|
|
42018
42018
|
curField = void 0;
|
|
42019
42019
|
if (buffer.length) {
|
|
42020
|
-
buffer =
|
|
42020
|
+
buffer = decodeText2(buffer, "binary", charset);
|
|
42021
42021
|
}
|
|
42022
42022
|
boy.emit("field", fieldname, buffer, false, truncated, encoding, contype);
|
|
42023
42023
|
--nends;
|
|
@@ -42259,7 +42259,7 @@ var require_Decoder = __commonJS({
|
|
|
42259
42259
|
var require_urlencoded = __commonJS({
|
|
42260
42260
|
"node_modules/.pnpm/@fastify+busboy@3.2.2/node_modules/@fastify/busboy/lib/types/urlencoded.js"(exports, module) {
|
|
42261
42261
|
var Decoder = require_Decoder();
|
|
42262
|
-
var
|
|
42262
|
+
var decodeText2 = require_decodeText();
|
|
42263
42263
|
var getLimit = require_getLimit();
|
|
42264
42264
|
var RE_CHARSET = /^charset$/i;
|
|
42265
42265
|
UrlEncoded.detect = /^application\/x-www-form-urlencoded/i;
|
|
@@ -42357,7 +42357,7 @@ var require_urlencoded = __commonJS({
|
|
|
42357
42357
|
if (key.length) {
|
|
42358
42358
|
this.boy.emit(
|
|
42359
42359
|
"field",
|
|
42360
|
-
|
|
42360
|
+
decodeText2(key, "binary", this.charset),
|
|
42361
42361
|
"",
|
|
42362
42362
|
keyTrunc,
|
|
42363
42363
|
false
|
|
@@ -42406,8 +42406,8 @@ var require_urlencoded = __commonJS({
|
|
|
42406
42406
|
}
|
|
42407
42407
|
this.boy.emit(
|
|
42408
42408
|
"field",
|
|
42409
|
-
|
|
42410
|
-
|
|
42409
|
+
decodeText2(this._key, "binary", this.charset),
|
|
42410
|
+
decodeText2(this._val, "binary", this.charset),
|
|
42411
42411
|
this._keyTrunc,
|
|
42412
42412
|
this._valTrunc
|
|
42413
42413
|
);
|
|
@@ -42448,7 +42448,7 @@ var require_urlencoded = __commonJS({
|
|
|
42448
42448
|
if (this._state === "key" && this._key.length > 0) {
|
|
42449
42449
|
this.boy.emit(
|
|
42450
42450
|
"field",
|
|
42451
|
-
|
|
42451
|
+
decodeText2(this._key, "binary", this.charset),
|
|
42452
42452
|
"",
|
|
42453
42453
|
this._keyTrunc,
|
|
42454
42454
|
false
|
|
@@ -42456,8 +42456,8 @@ var require_urlencoded = __commonJS({
|
|
|
42456
42456
|
} else if (this._state === "val") {
|
|
42457
42457
|
this.boy.emit(
|
|
42458
42458
|
"field",
|
|
42459
|
-
|
|
42460
|
-
|
|
42459
|
+
decodeText2(this._key, "binary", this.charset),
|
|
42460
|
+
decodeText2(this._val, "binary", this.charset),
|
|
42461
42461
|
this._keyTrunc,
|
|
42462
42462
|
this._valTrunc
|
|
42463
42463
|
);
|
|
@@ -42826,14 +42826,14 @@ var require_generateId = __commonJS({
|
|
|
42826
42826
|
var require_stream_consumer = __commonJS({
|
|
42827
42827
|
"node_modules/.pnpm/@fastify+multipart@10.1.1/node_modules/@fastify/multipart/lib/stream-consumer.js"(exports, module) {
|
|
42828
42828
|
module.exports = function streamToNull(stream) {
|
|
42829
|
-
return new Promise((
|
|
42829
|
+
return new Promise((resolve11, reject) => {
|
|
42830
42830
|
stream.on("data", () => {
|
|
42831
42831
|
});
|
|
42832
42832
|
stream.on("close", () => {
|
|
42833
|
-
|
|
42833
|
+
resolve11();
|
|
42834
42834
|
});
|
|
42835
42835
|
stream.on("end", () => {
|
|
42836
|
-
|
|
42836
|
+
resolve11();
|
|
42837
42837
|
});
|
|
42838
42838
|
stream.on("error", (error) => {
|
|
42839
42839
|
reject(error);
|
|
@@ -42990,7 +42990,7 @@ var require_multipart2 = __commonJS({
|
|
|
42990
42990
|
var os2 = __require("os");
|
|
42991
42991
|
var fp = require_fastify_plugin();
|
|
42992
42992
|
var { createWriteStream: createWriteStream2 } = __require("fs");
|
|
42993
|
-
var { unlink:
|
|
42993
|
+
var { unlink: unlink4 } = __require("fs/promises");
|
|
42994
42994
|
var path = __require("path");
|
|
42995
42995
|
var { generateId } = require_generateId();
|
|
42996
42996
|
var createError = require_error();
|
|
@@ -43176,10 +43176,10 @@ var require_multipart2 = __commonJS({
|
|
|
43176
43176
|
}
|
|
43177
43177
|
};
|
|
43178
43178
|
const parts = () => {
|
|
43179
|
-
return new Promise((
|
|
43179
|
+
return new Promise((resolve11, reject) => {
|
|
43180
43180
|
handle((val) => {
|
|
43181
43181
|
if (val instanceof Error) return reject(val);
|
|
43182
|
-
|
|
43182
|
+
resolve11(val);
|
|
43183
43183
|
});
|
|
43184
43184
|
});
|
|
43185
43185
|
};
|
|
@@ -43419,7 +43419,7 @@ var require_multipart2 = __commonJS({
|
|
|
43419
43419
|
for (let i = 0; i < this.tmpUploads.length; ++i) {
|
|
43420
43420
|
const filepath = this.tmpUploads[i];
|
|
43421
43421
|
try {
|
|
43422
|
-
await
|
|
43422
|
+
await unlink4(filepath);
|
|
43423
43423
|
} catch (error) {
|
|
43424
43424
|
this.log.error(error, "Could not delete file");
|
|
43425
43425
|
}
|
|
@@ -46846,7 +46846,7 @@ var require_parseTokenList = __commonJS({
|
|
|
46846
46846
|
// node_modules/.pnpm/depd@2.0.0/node_modules/depd/index.js
|
|
46847
46847
|
var require_depd = __commonJS({
|
|
46848
46848
|
"node_modules/.pnpm/depd@2.0.0/node_modules/depd/index.js"(exports, module) {
|
|
46849
|
-
var
|
|
46849
|
+
var relative10 = __require("path").relative;
|
|
46850
46850
|
module.exports = depd;
|
|
46851
46851
|
var basePath = process.cwd();
|
|
46852
46852
|
function containsNamespace(str, namespace) {
|
|
@@ -47038,7 +47038,7 @@ var require_depd = __commonJS({
|
|
|
47038
47038
|
return formatted;
|
|
47039
47039
|
}
|
|
47040
47040
|
function formatLocation(callSite) {
|
|
47041
|
-
return
|
|
47041
|
+
return relative10(basePath, callSite[0]) + ":" + callSite[1] + ":" + callSite[2];
|
|
47042
47042
|
}
|
|
47043
47043
|
function getStack() {
|
|
47044
47044
|
var limit = Error.stackTraceLimit;
|
|
@@ -47564,11 +47564,11 @@ var require_send = __commonJS({
|
|
|
47564
47564
|
var { parseBytesRange } = require_parseBytesRange();
|
|
47565
47565
|
var { parseTokenList } = require_parseTokenList();
|
|
47566
47566
|
var { createHttpError } = require_createHttpError();
|
|
47567
|
-
var
|
|
47568
|
-
var
|
|
47567
|
+
var extname4 = path.extname;
|
|
47568
|
+
var join14 = path.join;
|
|
47569
47569
|
var normalize = path.normalize;
|
|
47570
|
-
var
|
|
47571
|
-
var
|
|
47570
|
+
var resolve11 = path.resolve;
|
|
47571
|
+
var sep9 = path.sep;
|
|
47572
47572
|
var Readable4 = stream.Readable;
|
|
47573
47573
|
var BYTES_RANGE_REGEXP = /^ *bytes=/;
|
|
47574
47574
|
var MAX_MAXAGE = 60 * 60 * 24 * 365 * 1e3;
|
|
@@ -47614,7 +47614,7 @@ var require_send = __commonJS({
|
|
|
47614
47614
|
const lastModified = options.lastModified !== void 0 ? Boolean(options.lastModified) : true;
|
|
47615
47615
|
const maxage = normalizeMaxAge(options.maxAge ?? options.maxage);
|
|
47616
47616
|
const maxContentRangeChunkSize = options.maxContentRangeChunkSize !== void 0 ? Number(options.maxContentRangeChunkSize) : null;
|
|
47617
|
-
const root = options.root ?
|
|
47617
|
+
const root = options.root ? resolve11(options.root) : null;
|
|
47618
47618
|
const highWaterMark = Number.isSafeInteger(options.highWaterMark) && options.highWaterMark > 0 ? options.highWaterMark : null;
|
|
47619
47619
|
return {
|
|
47620
47620
|
acceptRanges,
|
|
@@ -47645,21 +47645,21 @@ var require_send = __commonJS({
|
|
|
47645
47645
|
let parts;
|
|
47646
47646
|
if (root !== null) {
|
|
47647
47647
|
if (path2) {
|
|
47648
|
-
path2 = normalize("." +
|
|
47648
|
+
path2 = normalize("." + sep9 + path2);
|
|
47649
47649
|
}
|
|
47650
47650
|
if (UP_PATH_REGEXP.test(path2)) {
|
|
47651
47651
|
debug('malicious path "%s"', path2);
|
|
47652
47652
|
return { statusCode: 403 };
|
|
47653
47653
|
}
|
|
47654
|
-
parts = path2.split(
|
|
47655
|
-
path2 = normalize(
|
|
47654
|
+
parts = path2.split(sep9);
|
|
47655
|
+
path2 = normalize(join14(root, path2));
|
|
47656
47656
|
} else {
|
|
47657
47657
|
if (UP_PATH_REGEXP.test(path2)) {
|
|
47658
47658
|
debug('malicious path "%s"', path2);
|
|
47659
47659
|
return { statusCode: 403 };
|
|
47660
47660
|
}
|
|
47661
|
-
parts = normalize(path2).split(
|
|
47662
|
-
path2 =
|
|
47661
|
+
parts = normalize(path2).split(sep9);
|
|
47662
|
+
path2 = resolve11(path2);
|
|
47663
47663
|
}
|
|
47664
47664
|
return { path: path2, parts };
|
|
47665
47665
|
}
|
|
@@ -47755,13 +47755,13 @@ var require_send = __commonJS({
|
|
|
47755
47755
|
);
|
|
47756
47756
|
}
|
|
47757
47757
|
function tryStat(path2) {
|
|
47758
|
-
return new Promise((
|
|
47758
|
+
return new Promise((resolve12) => {
|
|
47759
47759
|
fs2.stat(path2, function onstat(error, stat7) {
|
|
47760
|
-
|
|
47760
|
+
resolve12({ error, stat: stat7 });
|
|
47761
47761
|
});
|
|
47762
47762
|
});
|
|
47763
47763
|
}
|
|
47764
|
-
function
|
|
47764
|
+
function sendError2(statusCode, err2) {
|
|
47765
47765
|
const headers = {};
|
|
47766
47766
|
if (err2 && err2.headers) {
|
|
47767
47767
|
for (const headerName in err2.headers) {
|
|
@@ -47787,9 +47787,9 @@ var require_send = __commonJS({
|
|
|
47787
47787
|
case "ENAMETOOLONG":
|
|
47788
47788
|
case "ENOTDIR":
|
|
47789
47789
|
case "ENOENT":
|
|
47790
|
-
return
|
|
47790
|
+
return sendError2(404, err2);
|
|
47791
47791
|
default:
|
|
47792
|
-
return
|
|
47792
|
+
return sendError2(500, err2);
|
|
47793
47793
|
}
|
|
47794
47794
|
}
|
|
47795
47795
|
function sendNotModified(headers, path2, stat7) {
|
|
@@ -47848,7 +47848,7 @@ var require_send = __commonJS({
|
|
|
47848
47848
|
}
|
|
47849
47849
|
if (isConditionalGET(request2)) {
|
|
47850
47850
|
if (isPreconditionFailure(request2, headers)) {
|
|
47851
|
-
return
|
|
47851
|
+
return sendError2(412);
|
|
47852
47852
|
}
|
|
47853
47853
|
if (isNotModifiedFailure(request2, headers)) {
|
|
47854
47854
|
return sendNotModified(headers, path2, stat7);
|
|
@@ -47867,7 +47867,7 @@ var require_send = __commonJS({
|
|
|
47867
47867
|
if (ranges.length === 0) {
|
|
47868
47868
|
debug("range unsatisfiable");
|
|
47869
47869
|
headers["Content-Range"] = contentRange("bytes", len);
|
|
47870
|
-
return
|
|
47870
|
+
return sendError2(416, {
|
|
47871
47871
|
headers: { "Content-Range": headers["Content-Range"] }
|
|
47872
47872
|
});
|
|
47873
47873
|
} else if (ranges.length === 1) {
|
|
@@ -47912,7 +47912,7 @@ var require_send = __commonJS({
|
|
|
47912
47912
|
}
|
|
47913
47913
|
function sendRedirect(path2, options) {
|
|
47914
47914
|
if (hasTrailingSlash(options.path)) {
|
|
47915
|
-
return
|
|
47915
|
+
return sendError2(403);
|
|
47916
47916
|
}
|
|
47917
47917
|
const loc = encodeURI(collapseLeadingSlashes(options.path + "/"));
|
|
47918
47918
|
const doc = createHtmlDocument("Redirecting", "Redirecting to " + escapeHtml(loc));
|
|
@@ -47935,7 +47935,7 @@ var require_send = __commonJS({
|
|
|
47935
47935
|
let err2;
|
|
47936
47936
|
for (let i = 0; i < options.index.length; i++) {
|
|
47937
47937
|
const index = options.index[i];
|
|
47938
|
-
const p2 =
|
|
47938
|
+
const p2 = join14(path2, index);
|
|
47939
47939
|
const { error, stat: stat7 } = await tryStat(p2);
|
|
47940
47940
|
if (error) {
|
|
47941
47941
|
err2 = error;
|
|
@@ -47947,11 +47947,11 @@ var require_send = __commonJS({
|
|
|
47947
47947
|
if (err2) {
|
|
47948
47948
|
return sendStatError(err2);
|
|
47949
47949
|
}
|
|
47950
|
-
return
|
|
47950
|
+
return sendError2(404);
|
|
47951
47951
|
}
|
|
47952
47952
|
async function sendFile(request2, path2, options) {
|
|
47953
47953
|
const { error, stat: stat7 } = await tryStat(path2);
|
|
47954
|
-
if (error && error.code === "ENOENT" && !
|
|
47954
|
+
if (error && error.code === "ENOENT" && !extname4(path2) && path2[path2.length - 1] !== sep9) {
|
|
47955
47955
|
let err2 = error;
|
|
47956
47956
|
for (let i = 0; i < options.extensions.length; i++) {
|
|
47957
47957
|
const extension = options.extensions[i];
|
|
@@ -47970,7 +47970,7 @@ var require_send = __commonJS({
|
|
|
47970
47970
|
if (err2) {
|
|
47971
47971
|
return sendStatError(err2);
|
|
47972
47972
|
}
|
|
47973
|
-
return
|
|
47973
|
+
return sendError2(404);
|
|
47974
47974
|
}
|
|
47975
47975
|
if (error) return sendStatError(error);
|
|
47976
47976
|
if (stat7.isDirectory()) return sendRedirect(path2, options);
|
|
@@ -47982,7 +47982,7 @@ var require_send = __commonJS({
|
|
|
47982
47982
|
const parsed = normalizePath(_path, opts.root);
|
|
47983
47983
|
const { path: path2, parts } = parsed;
|
|
47984
47984
|
if (parsed.statusCode !== void 0) {
|
|
47985
|
-
return
|
|
47985
|
+
return sendError2(parsed.statusCode);
|
|
47986
47986
|
}
|
|
47987
47987
|
if ((debug.enabled || // if debugging is enabled, then check for all cases to log allow case
|
|
47988
47988
|
opts.dotfiles !== 0) && containsDotFile(parts)) {
|
|
@@ -47995,12 +47995,12 @@ var require_send = __commonJS({
|
|
|
47995
47995
|
/* c8 ignore stop */
|
|
47996
47996
|
case 2:
|
|
47997
47997
|
debug('deny dotfile "%s"', path2);
|
|
47998
|
-
return
|
|
47998
|
+
return sendError2(403);
|
|
47999
47999
|
case 1:
|
|
48000
48000
|
// 'ignore'
|
|
48001
48001
|
default:
|
|
48002
48002
|
debug('ignore dotfile "%s"', path2);
|
|
48003
|
-
return
|
|
48003
|
+
return sendError2(404);
|
|
48004
48004
|
}
|
|
48005
48005
|
}
|
|
48006
48006
|
if (opts.index.length && hasTrailingSlash(_path)) {
|
|
@@ -48844,8 +48844,8 @@ var require_static = __commonJS({
|
|
|
48844
48844
|
}
|
|
48845
48845
|
}
|
|
48846
48846
|
}
|
|
48847
|
-
for (const [
|
|
48848
|
-
const pathname =
|
|
48847
|
+
for (const [dirname9, rootPath] of indexDirs.entries()) {
|
|
48848
|
+
const pathname = dirname9 + (dirname9.endsWith("/") ? "" : "/");
|
|
48849
48849
|
const file = "/" + pathname.replace(prefix, "");
|
|
48850
48850
|
setUpHeadAndGet(routeOpts, pathname, file, rootPath);
|
|
48851
48851
|
if (opts.redirect === true) {
|
|
@@ -51491,7 +51491,7 @@ var require_websocket = __commonJS({
|
|
|
51491
51491
|
var http = __require("http");
|
|
51492
51492
|
var net = __require("net");
|
|
51493
51493
|
var tls = __require("tls");
|
|
51494
|
-
var { randomBytes, createHash:
|
|
51494
|
+
var { randomBytes, createHash: createHash8 } = __require("crypto");
|
|
51495
51495
|
var { Duplex, Readable: Readable4 } = __require("stream");
|
|
51496
51496
|
var { URL: URL2 } = __require("url");
|
|
51497
51497
|
var PerMessageDeflate = require_permessage_deflate();
|
|
@@ -52159,7 +52159,7 @@ var require_websocket = __commonJS({
|
|
|
52159
52159
|
abortHandshake(websocket, socket, "Invalid Upgrade header");
|
|
52160
52160
|
return;
|
|
52161
52161
|
}
|
|
52162
|
-
const digest =
|
|
52162
|
+
const digest = createHash8("sha1").update(key + GUID).digest("base64");
|
|
52163
52163
|
if (res.headers["sec-websocket-accept"] !== digest) {
|
|
52164
52164
|
abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
|
|
52165
52165
|
return;
|
|
@@ -52439,7 +52439,7 @@ var require_stream = __commonJS({
|
|
|
52439
52439
|
};
|
|
52440
52440
|
duplex._final = function(callback) {
|
|
52441
52441
|
if (ws2.readyState === ws2.CONNECTING) {
|
|
52442
|
-
ws2.once("open", function
|
|
52442
|
+
ws2.once("open", function open7() {
|
|
52443
52443
|
duplex._final(callback);
|
|
52444
52444
|
});
|
|
52445
52445
|
return;
|
|
@@ -52460,7 +52460,7 @@ var require_stream = __commonJS({
|
|
|
52460
52460
|
};
|
|
52461
52461
|
duplex._write = function(chunk, encoding, callback) {
|
|
52462
52462
|
if (ws2.readyState === ws2.CONNECTING) {
|
|
52463
|
-
ws2.once("open", function
|
|
52463
|
+
ws2.once("open", function open7() {
|
|
52464
52464
|
duplex._write(chunk, encoding, callback);
|
|
52465
52465
|
});
|
|
52466
52466
|
return;
|
|
@@ -52525,7 +52525,7 @@ var require_websocket_server = __commonJS({
|
|
|
52525
52525
|
var EventEmitter = __require("events");
|
|
52526
52526
|
var http = __require("http");
|
|
52527
52527
|
var { Duplex } = __require("stream");
|
|
52528
|
-
var { createHash:
|
|
52528
|
+
var { createHash: createHash8 } = __require("crypto");
|
|
52529
52529
|
var extension = require_extension();
|
|
52530
52530
|
var PerMessageDeflate = require_permessage_deflate();
|
|
52531
52531
|
var subprotocol = require_subprotocol();
|
|
@@ -52832,7 +52832,7 @@ var require_websocket_server = __commonJS({
|
|
|
52832
52832
|
);
|
|
52833
52833
|
}
|
|
52834
52834
|
if (this._state > RUNNING) return abortHandshake(socket, 503);
|
|
52835
|
-
const digest =
|
|
52835
|
+
const digest = createHash8("sha1").update(key + GUID).digest("base64");
|
|
52836
52836
|
const headers = [
|
|
52837
52837
|
"HTTP/1.1 101 Switching Protocols",
|
|
52838
52838
|
"Upgrade: websocket",
|
|
@@ -53072,7 +53072,7 @@ var require_buffer_list = __commonJS({
|
|
|
53072
53072
|
}
|
|
53073
53073
|
}, {
|
|
53074
53074
|
key: "join",
|
|
53075
|
-
value: function
|
|
53075
|
+
value: function join14(s) {
|
|
53076
53076
|
if (this.length === 0) return "";
|
|
53077
53077
|
var p2 = this.head;
|
|
53078
53078
|
var ret = "" + p2.data;
|
|
@@ -54395,14 +54395,14 @@ var require_async_iterator = __commonJS({
|
|
|
54395
54395
|
};
|
|
54396
54396
|
}
|
|
54397
54397
|
function readAndResolve(iter) {
|
|
54398
|
-
var
|
|
54399
|
-
if (
|
|
54398
|
+
var resolve11 = iter[kLastResolve];
|
|
54399
|
+
if (resolve11 !== null) {
|
|
54400
54400
|
var data = iter[kStream].read();
|
|
54401
54401
|
if (data !== null) {
|
|
54402
54402
|
iter[kLastPromise] = null;
|
|
54403
54403
|
iter[kLastResolve] = null;
|
|
54404
54404
|
iter[kLastReject] = null;
|
|
54405
|
-
|
|
54405
|
+
resolve11(createIterResult(data, false));
|
|
54406
54406
|
}
|
|
54407
54407
|
}
|
|
54408
54408
|
}
|
|
@@ -54410,13 +54410,13 @@ var require_async_iterator = __commonJS({
|
|
|
54410
54410
|
process.nextTick(readAndResolve, iter);
|
|
54411
54411
|
}
|
|
54412
54412
|
function wrapForNext(lastPromise, iter) {
|
|
54413
|
-
return function(
|
|
54413
|
+
return function(resolve11, reject) {
|
|
54414
54414
|
lastPromise.then(function() {
|
|
54415
54415
|
if (iter[kEnded]) {
|
|
54416
|
-
|
|
54416
|
+
resolve11(createIterResult(void 0, true));
|
|
54417
54417
|
return;
|
|
54418
54418
|
}
|
|
54419
|
-
iter[kHandlePromise](
|
|
54419
|
+
iter[kHandlePromise](resolve11, reject);
|
|
54420
54420
|
}, reject);
|
|
54421
54421
|
};
|
|
54422
54422
|
}
|
|
@@ -54436,12 +54436,12 @@ var require_async_iterator = __commonJS({
|
|
|
54436
54436
|
return Promise.resolve(createIterResult(void 0, true));
|
|
54437
54437
|
}
|
|
54438
54438
|
if (this[kStream].destroyed) {
|
|
54439
|
-
return new Promise(function(
|
|
54439
|
+
return new Promise(function(resolve11, reject) {
|
|
54440
54440
|
process.nextTick(function() {
|
|
54441
54441
|
if (_this[kError]) {
|
|
54442
54442
|
reject(_this[kError]);
|
|
54443
54443
|
} else {
|
|
54444
|
-
|
|
54444
|
+
resolve11(createIterResult(void 0, true));
|
|
54445
54445
|
}
|
|
54446
54446
|
});
|
|
54447
54447
|
});
|
|
@@ -54464,13 +54464,13 @@ var require_async_iterator = __commonJS({
|
|
|
54464
54464
|
return this;
|
|
54465
54465
|
}), _defineProperty(_Object$setPrototypeO, "return", function _return() {
|
|
54466
54466
|
var _this2 = this;
|
|
54467
|
-
return new Promise(function(
|
|
54467
|
+
return new Promise(function(resolve11, reject) {
|
|
54468
54468
|
_this2[kStream].destroy(null, function(err2) {
|
|
54469
54469
|
if (err2) {
|
|
54470
54470
|
reject(err2);
|
|
54471
54471
|
return;
|
|
54472
54472
|
}
|
|
54473
|
-
|
|
54473
|
+
resolve11(createIterResult(void 0, true));
|
|
54474
54474
|
});
|
|
54475
54475
|
});
|
|
54476
54476
|
}), _Object$setPrototypeO), AsyncIteratorPrototype);
|
|
@@ -54492,15 +54492,15 @@ var require_async_iterator = __commonJS({
|
|
|
54492
54492
|
value: stream._readableState.endEmitted,
|
|
54493
54493
|
writable: true
|
|
54494
54494
|
}), _defineProperty(_Object$create, kHandlePromise, {
|
|
54495
|
-
value: function value(
|
|
54495
|
+
value: function value(resolve11, reject) {
|
|
54496
54496
|
var data = iterator[kStream].read();
|
|
54497
54497
|
if (data) {
|
|
54498
54498
|
iterator[kLastPromise] = null;
|
|
54499
54499
|
iterator[kLastResolve] = null;
|
|
54500
54500
|
iterator[kLastReject] = null;
|
|
54501
|
-
|
|
54501
|
+
resolve11(createIterResult(data, false));
|
|
54502
54502
|
} else {
|
|
54503
|
-
iterator[kLastResolve] =
|
|
54503
|
+
iterator[kLastResolve] = resolve11;
|
|
54504
54504
|
iterator[kLastReject] = reject;
|
|
54505
54505
|
}
|
|
54506
54506
|
},
|
|
@@ -54519,12 +54519,12 @@ var require_async_iterator = __commonJS({
|
|
|
54519
54519
|
iterator[kError] = err2;
|
|
54520
54520
|
return;
|
|
54521
54521
|
}
|
|
54522
|
-
var
|
|
54523
|
-
if (
|
|
54522
|
+
var resolve11 = iterator[kLastResolve];
|
|
54523
|
+
if (resolve11 !== null) {
|
|
54524
54524
|
iterator[kLastPromise] = null;
|
|
54525
54525
|
iterator[kLastResolve] = null;
|
|
54526
54526
|
iterator[kLastReject] = null;
|
|
54527
|
-
|
|
54527
|
+
resolve11(createIterResult(void 0, true));
|
|
54528
54528
|
}
|
|
54529
54529
|
iterator[kEnded] = true;
|
|
54530
54530
|
});
|
|
@@ -54538,7 +54538,7 @@ var require_async_iterator = __commonJS({
|
|
|
54538
54538
|
// node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/internal/streams/from.js
|
|
54539
54539
|
var require_from = __commonJS({
|
|
54540
54540
|
"node_modules/.pnpm/readable-stream@3.6.2/node_modules/readable-stream/lib/internal/streams/from.js"(exports, module) {
|
|
54541
|
-
function asyncGeneratorStep(gen,
|
|
54541
|
+
function asyncGeneratorStep(gen, resolve11, reject, _next, _throw, key, arg) {
|
|
54542
54542
|
try {
|
|
54543
54543
|
var info = gen[key](arg);
|
|
54544
54544
|
var value = info.value;
|
|
@@ -54547,7 +54547,7 @@ var require_from = __commonJS({
|
|
|
54547
54547
|
return;
|
|
54548
54548
|
}
|
|
54549
54549
|
if (info.done) {
|
|
54550
|
-
|
|
54550
|
+
resolve11(value);
|
|
54551
54551
|
} else {
|
|
54552
54552
|
Promise.resolve(value).then(_next, _throw);
|
|
54553
54553
|
}
|
|
@@ -54555,13 +54555,13 @@ var require_from = __commonJS({
|
|
|
54555
54555
|
function _asyncToGenerator(fn2) {
|
|
54556
54556
|
return function() {
|
|
54557
54557
|
var self2 = this, args = arguments;
|
|
54558
|
-
return new Promise(function(
|
|
54558
|
+
return new Promise(function(resolve11, reject) {
|
|
54559
54559
|
var gen = fn2.apply(self2, args);
|
|
54560
54560
|
function _next(value) {
|
|
54561
|
-
asyncGeneratorStep(gen,
|
|
54561
|
+
asyncGeneratorStep(gen, resolve11, reject, _next, _throw, "next", value);
|
|
54562
54562
|
}
|
|
54563
54563
|
function _throw(err2) {
|
|
54564
|
-
asyncGeneratorStep(gen,
|
|
54564
|
+
asyncGeneratorStep(gen, resolve11, reject, _next, _throw, "throw", err2);
|
|
54565
54565
|
}
|
|
54566
54566
|
_next(void 0);
|
|
54567
54567
|
});
|
|
@@ -56028,16 +56028,16 @@ var require_websocket2 = __commonJS({
|
|
|
56028
56028
|
const clientStream = new Duplexify(client2Server, server2Client);
|
|
56029
56029
|
const ws2 = new WebSocket(null, void 0, { isServer: false });
|
|
56030
56030
|
const head = Buffer.from([]);
|
|
56031
|
-
let
|
|
56031
|
+
let resolve11, reject;
|
|
56032
56032
|
const promise = new Promise((_resolve, _reject) => {
|
|
56033
|
-
|
|
56033
|
+
resolve11 = _resolve;
|
|
56034
56034
|
reject = _reject;
|
|
56035
56035
|
});
|
|
56036
56036
|
typeof options.onInit === "function" && options.onInit(ws2);
|
|
56037
56037
|
ws2.on("open", () => {
|
|
56038
56038
|
typeof options.onOpen === "function" && options.onOpen(ws2);
|
|
56039
56039
|
clientStream.removeListener("data", onData);
|
|
56040
|
-
|
|
56040
|
+
resolve11(ws2);
|
|
56041
56041
|
});
|
|
56042
56042
|
const onData = (chunk) => {
|
|
56043
56043
|
if (chunk.toString().includes("HTTP/1.1 101 Switching Protocols")) {
|
|
@@ -56184,6 +56184,9 @@ var require_websocket2 = __commonJS({
|
|
|
56184
56184
|
});
|
|
56185
56185
|
var EVENT_SOCKET_SOFT_BACKPRESSURE_BYTES = 256 * 1024;
|
|
56186
56186
|
var EVENT_SOCKET_HARD_BACKPRESSURE_BYTES = 1024 * 1024;
|
|
56187
|
+
var EVENT_BATCH_PREFIX = '{"events":[';
|
|
56188
|
+
var EVENT_BATCH_SUFFIX = '],"type":"events.batch","version":3}';
|
|
56189
|
+
var EVENT_BATCH_ENVELOPE_BYTES = EVENT_BATCH_PREFIX.length + EVENT_BATCH_SUFFIX.length;
|
|
56187
56190
|
var serializedMessages = /* @__PURE__ */ new WeakMap();
|
|
56188
56191
|
var serializedEventBatches = /* @__PURE__ */ new WeakMap();
|
|
56189
56192
|
function serializeEventStreamValue(value) {
|
|
@@ -56209,7 +56212,25 @@ function hasSameEvents(cachedEvents, events, offset, end) {
|
|
|
56209
56212
|
return cachedEvents.every((event, index) => event === events[offset + index]);
|
|
56210
56213
|
}
|
|
56211
56214
|
function serializeEventBatch(events, offset) {
|
|
56212
|
-
const
|
|
56215
|
+
const maxEnd = Math.min(offset + MAX_EVENT_BATCH_SIZE, events.length);
|
|
56216
|
+
let end = offset;
|
|
56217
|
+
let byteLength = EVENT_BATCH_ENVELOPE_BYTES;
|
|
56218
|
+
const serializedEvents = [];
|
|
56219
|
+
for (; end < maxEnd; end += 1) {
|
|
56220
|
+
const agentEvent = events[end];
|
|
56221
|
+
if (agentEvent === void 0) {
|
|
56222
|
+
throw new RangeError("Event batch must contain defined events");
|
|
56223
|
+
}
|
|
56224
|
+
const event = serializeEventStreamValue(agentEvent);
|
|
56225
|
+
if (event.byteLength > MAX_AGENT_EVENT_BYTES) {
|
|
56226
|
+
if (end === offset) return void 0;
|
|
56227
|
+
break;
|
|
56228
|
+
}
|
|
56229
|
+
const nextByteLength = byteLength + event.byteLength + (end === offset ? 0 : 1);
|
|
56230
|
+
if (nextByteLength > MAX_EVENT_BATCH_BYTES) break;
|
|
56231
|
+
byteLength = nextByteLength;
|
|
56232
|
+
serializedEvents.push(event);
|
|
56233
|
+
}
|
|
56213
56234
|
const firstEvent = events[offset];
|
|
56214
56235
|
if (firstEvent === void 0) {
|
|
56215
56236
|
throw new RangeError("Event batch must contain at least one event");
|
|
@@ -56218,24 +56239,18 @@ function serializeEventBatch(events, offset) {
|
|
|
56218
56239
|
const cachedByCount = serializedEventBatches.get(firstEvent);
|
|
56219
56240
|
const cached = cachedByCount?.get(eventCount);
|
|
56220
56241
|
if (cached !== void 0 && hasSameEvents(cached.events, events, offset, end)) {
|
|
56221
|
-
return cached
|
|
56242
|
+
return cached;
|
|
56222
56243
|
}
|
|
56223
56244
|
const batchEvents = events.slice(offset, end);
|
|
56224
|
-
const
|
|
56225
|
-
|
|
56226
|
-
|
|
56227
|
-
const data = `{"events":[${serializedEvents.map((event) => event.data).join(",")}],"type":"events.batch","version":3}`;
|
|
56228
|
-
message = { byteLength: Buffer$1.byteLength(data), data };
|
|
56229
|
-
} else {
|
|
56230
|
-
const batch = { events: batchEvents, type: "events.batch", version: 3 };
|
|
56231
|
-
message = serializeEventStreamValue(batch);
|
|
56232
|
-
}
|
|
56245
|
+
const data = `${EVENT_BATCH_PREFIX}${serializedEvents.map((event) => event.data).join(",")}${EVENT_BATCH_SUFFIX}`;
|
|
56246
|
+
const message = { byteLength, data };
|
|
56247
|
+
const batch = { events: batchEvents, message };
|
|
56233
56248
|
const batches = cachedByCount ?? /* @__PURE__ */ new Map();
|
|
56234
|
-
batches.set(eventCount,
|
|
56249
|
+
batches.set(eventCount, batch);
|
|
56235
56250
|
if (cachedByCount === void 0) {
|
|
56236
56251
|
serializedEventBatches.set(firstEvent, batches);
|
|
56237
56252
|
}
|
|
56238
|
-
return
|
|
56253
|
+
return batch;
|
|
56239
56254
|
}
|
|
56240
56255
|
function sendSerializedEventStreamMessage(socket, serialize, onSoftBackpressure, onSlowClientDisconnect) {
|
|
56241
56256
|
if (socket.readyState !== 1) {
|
|
@@ -56246,37 +56261,61 @@ function sendSerializedEventStreamMessage(socket, serialize, onSoftBackpressure,
|
|
|
56246
56261
|
socket.close(1013, "Client is too slow; refresh the snapshot");
|
|
56247
56262
|
return false;
|
|
56248
56263
|
}
|
|
56249
|
-
|
|
56264
|
+
const message = serialize();
|
|
56265
|
+
if (message === void 0 || message.byteLength > MAX_EVENT_BATCH_BYTES) {
|
|
56266
|
+
socket.close(1009, "Event frame is too large; refresh the snapshot");
|
|
56267
|
+
return false;
|
|
56268
|
+
}
|
|
56269
|
+
const projectedBufferedAmount = socket.bufferedAmount + message.byteLength;
|
|
56270
|
+
if (projectedBufferedAmount > EVENT_SOCKET_HARD_BACKPRESSURE_BYTES) {
|
|
56271
|
+
onSlowClientDisconnect();
|
|
56272
|
+
socket.close(1013, "Client is too slow; refresh the snapshot");
|
|
56273
|
+
return false;
|
|
56274
|
+
}
|
|
56275
|
+
if (projectedBufferedAmount > EVENT_SOCKET_SOFT_BACKPRESSURE_BYTES) {
|
|
56250
56276
|
onSoftBackpressure();
|
|
56251
56277
|
}
|
|
56252
|
-
socket.send(
|
|
56278
|
+
socket.send(message.data);
|
|
56253
56279
|
return true;
|
|
56254
56280
|
}
|
|
56255
56281
|
function sendEventStreamMessage(socket, message, onSoftBackpressure, onSlowClientDisconnect) {
|
|
56256
56282
|
return sendSerializedEventStreamMessage(
|
|
56257
56283
|
socket,
|
|
56258
|
-
() =>
|
|
56284
|
+
() => {
|
|
56285
|
+
if (message.type === "events.batch" && message.events.some(
|
|
56286
|
+
(event) => getSerializedAgentEventByteLength(event) > MAX_AGENT_EVENT_BYTES
|
|
56287
|
+
))
|
|
56288
|
+
return void 0;
|
|
56289
|
+
return serializeEventStreamMessage(message);
|
|
56290
|
+
},
|
|
56259
56291
|
onSoftBackpressure,
|
|
56260
56292
|
onSlowClientDisconnect
|
|
56261
56293
|
);
|
|
56262
56294
|
}
|
|
56263
56295
|
function sendEventStreamEvents(socket, events, onSoftBackpressure, onSlowClientDisconnect) {
|
|
56264
|
-
for (let offset = 0; offset < events.length;
|
|
56296
|
+
for (let offset = 0; offset < events.length; ) {
|
|
56297
|
+
let nextOffset = offset;
|
|
56265
56298
|
if (!sendSerializedEventStreamMessage(
|
|
56266
56299
|
socket,
|
|
56267
|
-
() =>
|
|
56300
|
+
() => {
|
|
56301
|
+
const batch = serializeEventBatch(events, offset);
|
|
56302
|
+
if (batch === void 0) return void 0;
|
|
56303
|
+
nextOffset += batch.events.length;
|
|
56304
|
+
return batch.message;
|
|
56305
|
+
},
|
|
56268
56306
|
onSoftBackpressure,
|
|
56269
56307
|
onSlowClientDisconnect
|
|
56270
56308
|
)) {
|
|
56271
56309
|
return false;
|
|
56272
56310
|
}
|
|
56311
|
+
offset = nextOffset;
|
|
56273
56312
|
}
|
|
56274
56313
|
return true;
|
|
56275
56314
|
}
|
|
56276
56315
|
|
|
56277
56316
|
// packages/server/src/agent-event-stream.ts
|
|
56278
56317
|
var DEFAULT_COALESCING_WINDOW_MS = 16;
|
|
56279
|
-
var DEFAULT_MAX_EVENT_BYTES =
|
|
56318
|
+
var DEFAULT_MAX_EVENT_BYTES = MAX_AGENT_EVENT_BYTES;
|
|
56280
56319
|
var DEFAULT_MAX_RETAINED_BYTES = 4 * 1048576;
|
|
56281
56320
|
var DEFAULT_PRESSURE_COALESCING_WINDOW_MS = 32;
|
|
56282
56321
|
function isCoalescedEvent(event) {
|
|
@@ -56709,6 +56748,322 @@ var registerHistoryStorageRoutes = (app, context, done) => {
|
|
|
56709
56748
|
done();
|
|
56710
56749
|
};
|
|
56711
56750
|
|
|
56751
|
+
// packages/server/src/workbench-changes.ts
|
|
56752
|
+
var WorkbenchChanges = class {
|
|
56753
|
+
#listeners = /* @__PURE__ */ new Set();
|
|
56754
|
+
subscribe(listener) {
|
|
56755
|
+
this.#listeners.add(listener);
|
|
56756
|
+
return () => {
|
|
56757
|
+
this.#listeners.delete(listener);
|
|
56758
|
+
};
|
|
56759
|
+
}
|
|
56760
|
+
publish(change) {
|
|
56761
|
+
for (const listener of this.#listeners) listener(change);
|
|
56762
|
+
}
|
|
56763
|
+
publishAgentEvent(projectId, event) {
|
|
56764
|
+
if (event.type === "turn.started" || event.type === "turn.completed" || event.type === "item.completed" && event.payload.item.type === "message" && (event.payload.item.questions?.length ?? 0) > 0) {
|
|
56765
|
+
this.publish({ type: "async-questions.changed", projectId, taskId: event.taskId });
|
|
56766
|
+
}
|
|
56767
|
+
}
|
|
56768
|
+
};
|
|
56769
|
+
|
|
56770
|
+
// packages/server/src/routes/access-routes.ts
|
|
56771
|
+
var ACCESS_SESSION_COOKIE = "codexly_session";
|
|
56772
|
+
function status(authenticated, mode) {
|
|
56773
|
+
return { authenticated, mode, version: 1 };
|
|
56774
|
+
}
|
|
56775
|
+
var registerAccessRoutes = (app, options, done) => {
|
|
56776
|
+
const { access: access3, service } = options;
|
|
56777
|
+
const mode = access3 === void 0 ? "local" : "lan";
|
|
56778
|
+
app.get(
|
|
56779
|
+
"/v1/access",
|
|
56780
|
+
{ schema: { response: { 200: AccessStatusResponseSchema } } },
|
|
56781
|
+
(request2) => status(
|
|
56782
|
+
mode === "local" || service?.validate(request2.cookies[ACCESS_SESSION_COOKIE]) === true,
|
|
56783
|
+
mode
|
|
56784
|
+
)
|
|
56785
|
+
);
|
|
56786
|
+
app.post(
|
|
56787
|
+
"/v1/access/pair",
|
|
56788
|
+
{
|
|
56789
|
+
schema: {
|
|
56790
|
+
body: PairAccessRequestSchema,
|
|
56791
|
+
response: { 200: AccessStatusResponseSchema }
|
|
56792
|
+
}
|
|
56793
|
+
},
|
|
56794
|
+
(request2, reply) => {
|
|
56795
|
+
if (access3 === void 0 || service === void 0) {
|
|
56796
|
+
return status(true, "local");
|
|
56797
|
+
}
|
|
56798
|
+
const result = service.pair(request2.body.code, request2.ip);
|
|
56799
|
+
if (result.status !== "paired") {
|
|
56800
|
+
return reply.code(result.status === "rate_limited" ? 429 : 403).send({
|
|
56801
|
+
code: result.status === "rate_limited" ? "PAIRING_RATE_LIMITED" : "PAIRING_FAILED",
|
|
56802
|
+
message: "Pairing request failed",
|
|
56803
|
+
retryable: result.status === "rate_limited"
|
|
56804
|
+
});
|
|
56805
|
+
}
|
|
56806
|
+
reply.setCookie(ACCESS_SESSION_COOKIE, result.sessionId, {
|
|
56807
|
+
...result.expiresAt === null || access3.sessionTtlMs === void 0 ? {} : {
|
|
56808
|
+
expires: new Date(result.expiresAt),
|
|
56809
|
+
maxAge: Math.ceil(access3.sessionTtlMs / 1e3)
|
|
56810
|
+
},
|
|
56811
|
+
httpOnly: true,
|
|
56812
|
+
path: "/",
|
|
56813
|
+
sameSite: "strict",
|
|
56814
|
+
secure: false
|
|
56815
|
+
});
|
|
56816
|
+
return status(true, "lan");
|
|
56817
|
+
}
|
|
56818
|
+
);
|
|
56819
|
+
app.post(
|
|
56820
|
+
"/v1/access/logout",
|
|
56821
|
+
{ schema: { response: { 200: AccessStatusResponseSchema } } },
|
|
56822
|
+
(request2, reply) => {
|
|
56823
|
+
service?.logout(request2.cookies[ACCESS_SESSION_COOKIE]);
|
|
56824
|
+
reply.clearCookie(ACCESS_SESSION_COOKIE, { path: "/", sameSite: "strict" });
|
|
56825
|
+
return status(mode === "local", mode);
|
|
56826
|
+
}
|
|
56827
|
+
);
|
|
56828
|
+
done();
|
|
56829
|
+
};
|
|
56830
|
+
|
|
56831
|
+
// packages/server/src/routes/event-routes.ts
|
|
56832
|
+
var MAX_TIMER_DELAY_MS = 2147483647;
|
|
56833
|
+
function scheduleSessionExpiry(socket, expiresAt) {
|
|
56834
|
+
let timer;
|
|
56835
|
+
const expire = () => {
|
|
56836
|
+
const remainingMs = expiresAt - Date.now();
|
|
56837
|
+
if (remainingMs <= 0) {
|
|
56838
|
+
socket.close(1008, "Access session expired");
|
|
56839
|
+
return;
|
|
56840
|
+
}
|
|
56841
|
+
timer = setTimeout(expire, Math.min(remainingMs, MAX_TIMER_DELAY_MS));
|
|
56842
|
+
timer.unref();
|
|
56843
|
+
};
|
|
56844
|
+
expire();
|
|
56845
|
+
return () => {
|
|
56846
|
+
if (timer !== void 0) {
|
|
56847
|
+
clearTimeout(timer);
|
|
56848
|
+
}
|
|
56849
|
+
};
|
|
56850
|
+
}
|
|
56851
|
+
var registerEventRoutes = (app, context, done) => {
|
|
56852
|
+
const { accessService, getProjectContext, projectContexts } = context;
|
|
56853
|
+
app.get(
|
|
56854
|
+
"/v1/projects/:projectId/events",
|
|
56855
|
+
{
|
|
56856
|
+
async preValidation(request2, reply) {
|
|
56857
|
+
if (await getProjectContext(request2.params.projectId) === void 0) {
|
|
56858
|
+
return await reply.code(404).send({ code: "PROJECT_NOT_FOUND", message: "Project not found" });
|
|
56859
|
+
}
|
|
56860
|
+
},
|
|
56861
|
+
schema: { params: ProjectParamsSchema, querystring: EventQuerySchema },
|
|
56862
|
+
websocket: true
|
|
56863
|
+
},
|
|
56864
|
+
(socket, request2) => {
|
|
56865
|
+
const sessionExpiresAt = accessService?.expiresAt(request2.cookies[ACCESS_SESSION_COOKIE]);
|
|
56866
|
+
if (accessService !== void 0 && sessionExpiresAt === void 0) {
|
|
56867
|
+
socket.close(1008, "Access session expired");
|
|
56868
|
+
return;
|
|
56869
|
+
}
|
|
56870
|
+
const context2 = projectContexts.get(request2.params.projectId);
|
|
56871
|
+
if (context2 === void 0) {
|
|
56872
|
+
socket.close(1008, "Project not found");
|
|
56873
|
+
return;
|
|
56874
|
+
}
|
|
56875
|
+
const eventStream = context2.eventStream;
|
|
56876
|
+
context2.transportMetrics.activeClients += 1;
|
|
56877
|
+
let cleanedUp = false;
|
|
56878
|
+
let liveFlushScheduled = false;
|
|
56879
|
+
const liveEvents = [];
|
|
56880
|
+
let unsubscribe = () => void 0;
|
|
56881
|
+
let cancelInvalidation = () => void 0;
|
|
56882
|
+
const cancelSessionExpiry = sessionExpiresAt === void 0 || sessionExpiresAt === null ? () => void 0 : scheduleSessionExpiry(socket, sessionExpiresAt);
|
|
56883
|
+
const cleanup = () => {
|
|
56884
|
+
if (cleanedUp) {
|
|
56885
|
+
return;
|
|
56886
|
+
}
|
|
56887
|
+
cleanedUp = true;
|
|
56888
|
+
liveEvents.length = 0;
|
|
56889
|
+
cancelSessionExpiry();
|
|
56890
|
+
cancelInvalidation();
|
|
56891
|
+
unsubscribe();
|
|
56892
|
+
context2.transportMetrics.activeClients -= 1;
|
|
56893
|
+
};
|
|
56894
|
+
socket.once("close", cleanup);
|
|
56895
|
+
socket.once("error", cleanup);
|
|
56896
|
+
cancelInvalidation = accessService?.onInvalidated(request2.cookies[ACCESS_SESSION_COOKIE], () => {
|
|
56897
|
+
cleanup();
|
|
56898
|
+
socket.close(1008, "Access session expired");
|
|
56899
|
+
}) ?? (() => void 0);
|
|
56900
|
+
if (socket.readyState !== socket.OPEN) return;
|
|
56901
|
+
const send = (message) => sendEventStreamMessage(
|
|
56902
|
+
socket,
|
|
56903
|
+
message,
|
|
56904
|
+
() => {
|
|
56905
|
+
eventStream.noteBackpressure();
|
|
56906
|
+
},
|
|
56907
|
+
() => {
|
|
56908
|
+
context2.transportMetrics.slowClientDisconnects += 1;
|
|
56909
|
+
}
|
|
56910
|
+
);
|
|
56911
|
+
const sendEvents = (events) => sendEventStreamEvents(
|
|
56912
|
+
socket,
|
|
56913
|
+
events,
|
|
56914
|
+
() => {
|
|
56915
|
+
eventStream.noteBackpressure();
|
|
56916
|
+
},
|
|
56917
|
+
() => {
|
|
56918
|
+
context2.transportMetrics.slowClientDisconnects += 1;
|
|
56919
|
+
}
|
|
56920
|
+
);
|
|
56921
|
+
const flushLiveEvents = () => {
|
|
56922
|
+
liveFlushScheduled = false;
|
|
56923
|
+
if (cleanedUp || liveEvents.length === 0) {
|
|
56924
|
+
return;
|
|
56925
|
+
}
|
|
56926
|
+
const events = liveEvents.splice(0);
|
|
56927
|
+
sendEvents(events);
|
|
56928
|
+
};
|
|
56929
|
+
const enqueueLiveEvent = (event) => {
|
|
56930
|
+
liveEvents.push(event);
|
|
56931
|
+
if (liveEvents.length >= MAX_EVENT_BATCH_SIZE) {
|
|
56932
|
+
flushLiveEvents();
|
|
56933
|
+
return;
|
|
56934
|
+
}
|
|
56935
|
+
if (liveFlushScheduled) {
|
|
56936
|
+
return;
|
|
56937
|
+
}
|
|
56938
|
+
liveFlushScheduled = true;
|
|
56939
|
+
queueMicrotask(() => {
|
|
56940
|
+
if (liveFlushScheduled) {
|
|
56941
|
+
flushLiveEvents();
|
|
56942
|
+
}
|
|
56943
|
+
});
|
|
56944
|
+
};
|
|
56945
|
+
const replay = eventStream.replayAfter(request2.query.afterSequence);
|
|
56946
|
+
if (replay.type === "resync") {
|
|
56947
|
+
const sent = send({
|
|
56948
|
+
latestSequence: replay.latestSequence,
|
|
56949
|
+
reason: replay.reason,
|
|
56950
|
+
sessionId: eventStream.checkpoint.sessionId,
|
|
56951
|
+
type: "resync.required",
|
|
56952
|
+
version: 3
|
|
56953
|
+
});
|
|
56954
|
+
if (sent) {
|
|
56955
|
+
socket.close(1e3, "Snapshot resync required");
|
|
56956
|
+
}
|
|
56957
|
+
return;
|
|
56958
|
+
}
|
|
56959
|
+
const checkpoint = eventStream.checkpoint;
|
|
56960
|
+
const initializationEvents = [];
|
|
56961
|
+
let isInitializing = true;
|
|
56962
|
+
unsubscribe = eventStream.subscribe((event) => {
|
|
56963
|
+
if (isInitializing) {
|
|
56964
|
+
initializationEvents.push(event);
|
|
56965
|
+
return;
|
|
56966
|
+
}
|
|
56967
|
+
enqueueLiveEvent(event);
|
|
56968
|
+
});
|
|
56969
|
+
const readySent = send({
|
|
56970
|
+
latestSequence: checkpoint.sequence,
|
|
56971
|
+
sessionId: checkpoint.sessionId,
|
|
56972
|
+
type: "connection.ready",
|
|
56973
|
+
version: 3
|
|
56974
|
+
});
|
|
56975
|
+
if (!readySent) {
|
|
56976
|
+
return;
|
|
56977
|
+
}
|
|
56978
|
+
if (!sendEvents(replay.events)) {
|
|
56979
|
+
return;
|
|
56980
|
+
}
|
|
56981
|
+
isInitializing = false;
|
|
56982
|
+
if (!sendEvents(initializationEvents)) {
|
|
56983
|
+
return;
|
|
56984
|
+
}
|
|
56985
|
+
}
|
|
56986
|
+
);
|
|
56987
|
+
done();
|
|
56988
|
+
};
|
|
56989
|
+
|
|
56990
|
+
// packages/server/src/routes/resource-change-events.ts
|
|
56991
|
+
function registerWorkbenchEvents(app, context) {
|
|
56992
|
+
registerResourceChangeEvents(
|
|
56993
|
+
app,
|
|
56994
|
+
context,
|
|
56995
|
+
"/v1/workbench/events",
|
|
56996
|
+
{ type: "workbench.ready" },
|
|
56997
|
+
(listener) => context.workbenchChanges.subscribe(listener)
|
|
56998
|
+
);
|
|
56999
|
+
}
|
|
57000
|
+
function registerResourceChangeEvents(app, context, path, initial, subscribe) {
|
|
57001
|
+
app.get(path, { websocket: true }, (socket, request2) => {
|
|
57002
|
+
const expiresAt = context.accessService?.expiresAt(request2.cookies[ACCESS_SESSION_COOKIE]);
|
|
57003
|
+
if (context.accessService !== void 0 && expiresAt === void 0) {
|
|
57004
|
+
socket.close(1008, "Access session expired");
|
|
57005
|
+
return;
|
|
57006
|
+
}
|
|
57007
|
+
const cancelExpiry = expiresAt == null ? () => void 0 : scheduleSessionExpiry(socket, expiresAt);
|
|
57008
|
+
const pending = /* @__PURE__ */ new Set();
|
|
57009
|
+
let closed = false;
|
|
57010
|
+
const send = (frame) => {
|
|
57011
|
+
if (closed || socket.readyState !== 1) return;
|
|
57012
|
+
if (socket.bufferedAmount > 65536) {
|
|
57013
|
+
socket.close(1013, "Slow client");
|
|
57014
|
+
return;
|
|
57015
|
+
}
|
|
57016
|
+
socket.send(frame, (error) => {
|
|
57017
|
+
if (error) socket.terminate();
|
|
57018
|
+
});
|
|
57019
|
+
};
|
|
57020
|
+
const unsubscribe = subscribe((change) => {
|
|
57021
|
+
if (closed) return;
|
|
57022
|
+
const queued = pending.size > 0;
|
|
57023
|
+
pending.add(JSON.stringify(change));
|
|
57024
|
+
if (pending.size > 256) {
|
|
57025
|
+
socket.close(1013, "Too many changes");
|
|
57026
|
+
return;
|
|
57027
|
+
}
|
|
57028
|
+
if (queued) return;
|
|
57029
|
+
queueMicrotask(() => {
|
|
57030
|
+
for (const frame of pending) send(frame);
|
|
57031
|
+
pending.clear();
|
|
57032
|
+
});
|
|
57033
|
+
});
|
|
57034
|
+
let alive = true;
|
|
57035
|
+
socket.on("pong", () => {
|
|
57036
|
+
alive = true;
|
|
57037
|
+
});
|
|
57038
|
+
const heartbeat = setInterval(() => {
|
|
57039
|
+
if (!alive) {
|
|
57040
|
+
socket.terminate();
|
|
57041
|
+
return;
|
|
57042
|
+
}
|
|
57043
|
+
alive = false;
|
|
57044
|
+
socket.ping();
|
|
57045
|
+
}, 3e4);
|
|
57046
|
+
heartbeat.unref();
|
|
57047
|
+
let cancelInvalidation = () => void 0;
|
|
57048
|
+
const cleanup = () => {
|
|
57049
|
+
if (closed) return;
|
|
57050
|
+
closed = true;
|
|
57051
|
+
unsubscribe();
|
|
57052
|
+
pending.clear();
|
|
57053
|
+
cancelExpiry();
|
|
57054
|
+
cancelInvalidation();
|
|
57055
|
+
clearInterval(heartbeat);
|
|
57056
|
+
};
|
|
57057
|
+
socket.once("close", cleanup);
|
|
57058
|
+
socket.once("error", cleanup);
|
|
57059
|
+
cancelInvalidation = context.accessService?.onInvalidated(request2.cookies[ACCESS_SESSION_COOKIE], () => {
|
|
57060
|
+
cleanup();
|
|
57061
|
+
socket.close(1008, "Access session expired");
|
|
57062
|
+
}) ?? (() => void 0);
|
|
57063
|
+
send(JSON.stringify(initial));
|
|
57064
|
+
});
|
|
57065
|
+
}
|
|
57066
|
+
|
|
56712
57067
|
// packages/server/src/app.ts
|
|
56713
57068
|
var import_fastify2 = __toESM(require_fastify(), 1);
|
|
56714
57069
|
|
|
@@ -60664,27 +61019,27 @@ function pLimit(concurrency) {
|
|
|
60664
61019
|
activeCount--;
|
|
60665
61020
|
resumeNext();
|
|
60666
61021
|
};
|
|
60667
|
-
const run = async (function_,
|
|
61022
|
+
const run = async (function_, resolve11, arguments_) => {
|
|
60668
61023
|
const result = (async () => function_(...arguments_))();
|
|
60669
|
-
|
|
61024
|
+
resolve11(result);
|
|
60670
61025
|
try {
|
|
60671
61026
|
await result;
|
|
60672
61027
|
} catch {
|
|
60673
61028
|
}
|
|
60674
61029
|
next();
|
|
60675
61030
|
};
|
|
60676
|
-
const enqueue = (function_,
|
|
61031
|
+
const enqueue = (function_, resolve11, reject, arguments_) => {
|
|
60677
61032
|
const queueItem = { reject };
|
|
60678
61033
|
new Promise((internalResolve) => {
|
|
60679
61034
|
queueItem.run = internalResolve;
|
|
60680
61035
|
queue.enqueue(queueItem);
|
|
60681
|
-
}).then(run.bind(void 0, function_,
|
|
61036
|
+
}).then(run.bind(void 0, function_, resolve11, arguments_));
|
|
60682
61037
|
if (activeCount < concurrency) {
|
|
60683
61038
|
resumeNext();
|
|
60684
61039
|
}
|
|
60685
61040
|
};
|
|
60686
|
-
const generator = (function_, ...arguments_) => new Promise((
|
|
60687
|
-
enqueue(function_,
|
|
61041
|
+
const generator = (function_, ...arguments_) => new Promise((resolve11, reject) => {
|
|
61042
|
+
enqueue(function_, resolve11, reject, arguments_);
|
|
60688
61043
|
});
|
|
60689
61044
|
Object.defineProperties(generator, {
|
|
60690
61045
|
activeCount: {
|
|
@@ -61008,7 +61363,7 @@ function createUntrackedTextDiff(path, content) {
|
|
|
61008
61363
|
);
|
|
61009
61364
|
}
|
|
61010
61365
|
function applyDiffBudget(changes, budget) {
|
|
61011
|
-
return changes.map((
|
|
61366
|
+
return changes.map((change) => ({ ...change, diff: budget.takeDiff(change.diff) }));
|
|
61012
61367
|
}
|
|
61013
61368
|
function parseTrackedDiffs(output) {
|
|
61014
61369
|
if (output === "") {
|
|
@@ -61312,17 +61667,17 @@ async function readResolvedGitWorkingTreeStatus(resolvedProjectRoot, gitCommandE
|
|
|
61312
61667
|
snapshotHash.update(root).update("\0").update(fingerprint).update("\0");
|
|
61313
61668
|
}
|
|
61314
61669
|
snapshotHash.update(repositoryBranches.branch ?? "").update("\0").update(repositoryMode);
|
|
61315
|
-
const fingerprintChanges = async (location, changes) => mapWithConcurrency(changes, MAX_FILE_IO_CONCURRENCY, async (
|
|
61670
|
+
const fingerprintChanges = async (location, changes) => mapWithConcurrency(changes, MAX_FILE_IO_CONCURRENCY, async (change) => {
|
|
61316
61671
|
let metadata = "missing";
|
|
61317
61672
|
try {
|
|
61318
61673
|
const stats = await limitGitFileIO(
|
|
61319
|
-
() => lstat(join(resolvedProjectRoot,
|
|
61674
|
+
() => lstat(join(resolvedProjectRoot, change.path), { bigint: true })
|
|
61320
61675
|
);
|
|
61321
61676
|
metadata = [stats.mode, stats.size, stats.mtimeNs, stats.ctimeNs].join(":");
|
|
61322
61677
|
} catch (error) {
|
|
61323
61678
|
if (error.code !== "ENOENT") throw error;
|
|
61324
61679
|
}
|
|
61325
|
-
return `${location}\0${
|
|
61680
|
+
return `${location}\0${change.kind}\0${change.path}\0${metadata}\0`;
|
|
61326
61681
|
});
|
|
61327
61682
|
for (const fingerprint of await fingerprintChanges("staged", staged)) {
|
|
61328
61683
|
snapshotHash.update(fingerprint);
|
|
@@ -61330,11 +61685,11 @@ async function readResolvedGitWorkingTreeStatus(resolvedProjectRoot, gitCommandE
|
|
|
61330
61685
|
for (const fingerprint of await fingerprintChanges("unstaged", unstaged)) {
|
|
61331
61686
|
snapshotHash.update(fingerprint);
|
|
61332
61687
|
}
|
|
61333
|
-
const
|
|
61688
|
+
const snapshot2 = snapshotHash.digest("hex");
|
|
61334
61689
|
return {
|
|
61335
61690
|
...repositoryBranches,
|
|
61336
61691
|
repositoryMode,
|
|
61337
|
-
snapshot,
|
|
61692
|
+
snapshot: snapshot2,
|
|
61338
61693
|
staged,
|
|
61339
61694
|
unstaged
|
|
61340
61695
|
};
|
|
@@ -61374,7 +61729,7 @@ async function executeGit2(repositoryRoot, arguments_, input = "", environment =
|
|
|
61374
61729
|
return limitGitProcess(() => runGitCommand(repositoryRoot, arguments_, input, environment));
|
|
61375
61730
|
}
|
|
61376
61731
|
async function runGitCommand(repositoryRoot, arguments_, input, environment) {
|
|
61377
|
-
return new Promise((
|
|
61732
|
+
return new Promise((resolve11, reject) => {
|
|
61378
61733
|
const consumesInput = input !== "";
|
|
61379
61734
|
const child = spawn("git", ["-C", repositoryRoot, ...arguments_], {
|
|
61380
61735
|
env: { ...createGitEnvironment(), ...environment, GIT_TERMINAL_PROMPT: "0" },
|
|
@@ -61397,7 +61752,7 @@ async function runGitCommand(repositoryRoot, arguments_, input, environment) {
|
|
|
61397
61752
|
if (error !== void 0) {
|
|
61398
61753
|
reject(error);
|
|
61399
61754
|
} else if (result !== void 0) {
|
|
61400
|
-
|
|
61755
|
+
resolve11(result);
|
|
61401
61756
|
}
|
|
61402
61757
|
};
|
|
61403
61758
|
const collect = (target, chunk) => {
|
|
@@ -61472,7 +61827,7 @@ async function commitSelectedProjectChanges(projectRoot, request2) {
|
|
|
61472
61827
|
if (status2.snapshot !== request2.expectedSnapshot) {
|
|
61473
61828
|
throw new GitCommitError("GIT_STATUS_CHANGED", "Git changes changed before the commit");
|
|
61474
61829
|
}
|
|
61475
|
-
const changedPaths = new Set([...status2.staged, ...status2.unstaged].map((
|
|
61830
|
+
const changedPaths = new Set([...status2.staged, ...status2.unstaged].map((change) => change.path));
|
|
61476
61831
|
if (request2.paths.some((path) => !changedPaths.has(path))) {
|
|
61477
61832
|
throw new GitCommitError(
|
|
61478
61833
|
"GIT_PATH_UNAVAILABLE",
|
|
@@ -61480,7 +61835,7 @@ async function commitSelectedProjectChanges(projectRoot, request2) {
|
|
|
61480
61835
|
);
|
|
61481
61836
|
}
|
|
61482
61837
|
const selectedPaths = request2.paths.map(literalPath);
|
|
61483
|
-
const stagedPaths = new Set(status2.staged.map((
|
|
61838
|
+
const stagedPaths = new Set(status2.staged.map((change) => change.path));
|
|
61484
61839
|
const selectedStagedPaths = request2.paths.filter((path) => stagedPaths.has(path));
|
|
61485
61840
|
const selectedUnstagedPaths = request2.paths.filter((path) => !stagedPaths.has(path));
|
|
61486
61841
|
const temporaryIndexRoot = await mkdtemp(join(tmpdir(), "codexly-git-index-"));
|
|
@@ -61678,8 +62033,8 @@ var MAX_COMMIT_CHANGE_SUMMARY_BYTES = 20 * 1024;
|
|
|
61678
62033
|
var MAX_COMMIT_DIFF_EXCERPT_BYTES = 36 * 1024;
|
|
61679
62034
|
var MAX_EXCERPTED_COMMIT_CHANGES = 16;
|
|
61680
62035
|
function selectedCommitChanges(status2, paths) {
|
|
61681
|
-
const stagedByPath = new Map(status2.staged.map((
|
|
61682
|
-
const unstagedByPath = new Map(status2.unstaged.map((
|
|
62036
|
+
const stagedByPath = new Map(status2.staged.map((change) => [change.path, change]));
|
|
62037
|
+
const unstagedByPath = new Map(status2.unstaged.map((change) => [change.path, change]));
|
|
61683
62038
|
return paths.flatMap((path) => {
|
|
61684
62039
|
const staged = stagedByPath.get(path);
|
|
61685
62040
|
const unstaged = unstagedByPath.get(path);
|
|
@@ -61729,10 +62084,10 @@ function readDiffLineStats(diff) {
|
|
|
61729
62084
|
return { additions, deletions };
|
|
61730
62085
|
}
|
|
61731
62086
|
function buildSelectedChangeSummary(changes) {
|
|
61732
|
-
const lines = changes.map(({ change
|
|
61733
|
-
const { additions, deletions } = readDiffLineStats(
|
|
61734
|
-
const binary =
|
|
61735
|
-
return `[${location}] ${
|
|
62087
|
+
const lines = changes.map(({ change, location }) => {
|
|
62088
|
+
const { additions, deletions } = readDiffLineStats(change.diff);
|
|
62089
|
+
const binary = change.diff.includes("Binary files ") ? ", binary" : "";
|
|
62090
|
+
return `[${location}] ${change.kind} ${change.path} (+${String(additions)} -${String(deletions)}, ${String(Buffer$1.byteLength(change.diff, "utf8"))} diff bytes${binary})`;
|
|
61736
62091
|
});
|
|
61737
62092
|
const completeSummary = lines.join("\n");
|
|
61738
62093
|
if (Buffer$1.byteLength(completeSummary, "utf8") <= MAX_COMMIT_CHANGE_SUMMARY_BYTES) {
|
|
@@ -61763,7 +62118,7 @@ function representativeCommitChanges(changes) {
|
|
|
61763
62118
|
{ length: count },
|
|
61764
62119
|
(_3, index) => Math.round(index * (changes.length - 1) / (count - 1))
|
|
61765
62120
|
);
|
|
61766
|
-
return indexes.map((index) => changes[index]).filter((
|
|
62121
|
+
return indexes.map((index) => changes[index]).filter((change) => change !== void 0);
|
|
61767
62122
|
}
|
|
61768
62123
|
function compactDiff(diff, maximumBytes) {
|
|
61769
62124
|
const diffBytes = Buffer$1.byteLength(diff, "utf8");
|
|
@@ -61788,28 +62143,28 @@ function buildSelectedDiffExcerpts(changes) {
|
|
|
61788
62143
|
const perChangeBudget = Math.floor(
|
|
61789
62144
|
(MAX_COMMIT_DIFF_EXCERPT_BYTES - separatorBytes) / representatives.length
|
|
61790
62145
|
);
|
|
61791
|
-
return representatives.map(({ change
|
|
61792
|
-
const header = `[${location}] ${
|
|
62146
|
+
return representatives.map(({ change, location }) => {
|
|
62147
|
+
const header = `[${location}] ${change.kind} ${change.path}
|
|
61793
62148
|
`;
|
|
61794
62149
|
const headerBytes = Buffer$1.byteLength(header, "utf8");
|
|
61795
62150
|
if (headerBytes >= perChangeBudget) {
|
|
61796
62151
|
return takeUtf8Prefix(header, perChangeBudget);
|
|
61797
62152
|
}
|
|
61798
|
-
return `${header}${compactDiff(
|
|
62153
|
+
return `${header}${compactDiff(change.diff, perChangeBudget - headerBytes)}`;
|
|
61799
62154
|
}).join("\n\n");
|
|
61800
62155
|
}
|
|
61801
62156
|
function buildInlineSelectedDiff(changes) {
|
|
61802
62157
|
const blocks = [];
|
|
61803
62158
|
let bytes = 0;
|
|
61804
|
-
for (const { change
|
|
61805
|
-
const header = `[${location}] ${
|
|
62159
|
+
for (const { change, location } of changes) {
|
|
62160
|
+
const header = `[${location}] ${change.path}
|
|
61806
62161
|
`;
|
|
61807
62162
|
const separatorBytes = blocks.length === 0 ? 0 : 2;
|
|
61808
|
-
bytes += separatorBytes + Buffer$1.byteLength(header, "utf8") + Buffer$1.byteLength(
|
|
62163
|
+
bytes += separatorBytes + Buffer$1.byteLength(header, "utf8") + Buffer$1.byteLength(change.diff, "utf8");
|
|
61809
62164
|
if (bytes > MAX_INLINE_COMMIT_DIFF_BYTES) {
|
|
61810
62165
|
return void 0;
|
|
61811
62166
|
}
|
|
61812
|
-
blocks.push(`${header}${
|
|
62167
|
+
blocks.push(`${header}${change.diff}`);
|
|
61813
62168
|
}
|
|
61814
62169
|
return blocks.join("\n\n");
|
|
61815
62170
|
}
|
|
@@ -62436,15 +62791,15 @@ function assertValidProjectDefaults(models, settings) {
|
|
|
62436
62791
|
);
|
|
62437
62792
|
}
|
|
62438
62793
|
}
|
|
62439
|
-
function taskFromSnapshot(
|
|
62794
|
+
function taskFromSnapshot(snapshot2, overrides = {}) {
|
|
62440
62795
|
return {
|
|
62441
|
-
id:
|
|
62442
|
-
pinned:
|
|
62443
|
-
projectId:
|
|
62444
|
-
...
|
|
62445
|
-
title: overrides.title ??
|
|
62446
|
-
updatedAt:
|
|
62447
|
-
...
|
|
62796
|
+
id: snapshot2.id,
|
|
62797
|
+
pinned: snapshot2.pinned,
|
|
62798
|
+
projectId: snapshot2.projectId,
|
|
62799
|
+
...snapshot2.threadConfiguration === void 0 ? {} : { threadConfiguration: snapshot2.threadConfiguration },
|
|
62800
|
+
title: overrides.title ?? snapshot2.title,
|
|
62801
|
+
updatedAt: snapshot2.updatedAt,
|
|
62802
|
+
...snapshot2.workspacePath === void 0 ? {} : { workspacePath: snapshot2.workspacePath }
|
|
62448
62803
|
};
|
|
62449
62804
|
}
|
|
62450
62805
|
function createModelCatalogLoader(provider, repository) {
|
|
@@ -62571,7 +62926,7 @@ function assertCommitSelection(status2, request2) {
|
|
|
62571
62926
|
409
|
|
62572
62927
|
);
|
|
62573
62928
|
}
|
|
62574
|
-
const changedPaths = new Set([...status2.staged, ...status2.unstaged].map((
|
|
62929
|
+
const changedPaths = new Set([...status2.staged, ...status2.unstaged].map((change) => change.path));
|
|
62575
62930
|
if (request2.paths.some((path) => !changedPaths.has(path))) {
|
|
62576
62931
|
throw new MutationHttpError(
|
|
62577
62932
|
"GIT_PATH_UNAVAILABLE",
|
|
@@ -62627,7 +62982,7 @@ async function generateCommitMessageWithCodex(provider, prompt, settings) {
|
|
|
62627
62982
|
let timeout;
|
|
62628
62983
|
let unsubscribeEvents;
|
|
62629
62984
|
try {
|
|
62630
|
-
const completedTurn = new Promise((
|
|
62985
|
+
const completedTurn = new Promise((resolve11, reject) => {
|
|
62631
62986
|
unsubscribeEvents = provider.subscribeEvents(
|
|
62632
62987
|
(event) => {
|
|
62633
62988
|
if (event.taskId !== task.id) {
|
|
@@ -62637,7 +62992,7 @@ async function generateCommitMessageWithCodex(provider, prompt, settings) {
|
|
|
62637
62992
|
completedAssistantMessages.set(event.turnId, event.payload.item.text);
|
|
62638
62993
|
} else if (event.type === "turn.completed") {
|
|
62639
62994
|
turnFinished = true;
|
|
62640
|
-
|
|
62995
|
+
resolve11(event.payload.turn);
|
|
62641
62996
|
} else if (event.type === "provider.error" && !event.payload.willRetry) {
|
|
62642
62997
|
reject(new Error(event.payload.message));
|
|
62643
62998
|
}
|
|
@@ -63264,15 +63619,15 @@ function macAppCandidates(home, appName) {
|
|
|
63264
63619
|
}
|
|
63265
63620
|
async function resolveMacCommands(environment, pathExists2) {
|
|
63266
63621
|
const commands = /* @__PURE__ */ new Map();
|
|
63267
|
-
const
|
|
63268
|
-
if (
|
|
63622
|
+
const open7 = await firstExisting(["/usr/bin/open"], pathExists2);
|
|
63623
|
+
if (open7 === void 0) {
|
|
63269
63624
|
return commands;
|
|
63270
63625
|
}
|
|
63271
63626
|
const home = readEnvironmentValue(environment, ["HOME"]);
|
|
63272
63627
|
const resolveApp = (name) => firstExisting(macAppCandidates(home, name), pathExists2);
|
|
63273
63628
|
const addMacApp = async (id, name, kind) => {
|
|
63274
63629
|
const appPath = await resolveApp(name);
|
|
63275
|
-
addCommand(commands, { id, kind, name }, appPath === void 0 ? void 0 :
|
|
63630
|
+
addCommand(commands, { id, kind, name }, appPath === void 0 ? void 0 : open7, (target) => [
|
|
63276
63631
|
"-a",
|
|
63277
63632
|
name,
|
|
63278
63633
|
kind === "terminal" ? target.directoryPath : target.absolutePath
|
|
@@ -63284,14 +63639,14 @@ async function resolveMacCommands(environment, pathExists2) {
|
|
|
63284
63639
|
addCommand(
|
|
63285
63640
|
commands,
|
|
63286
63641
|
{ id: "system-default", kind: "system-default", name: "\u7CFB\u7EDF\u9ED8\u8BA4\u5E94\u7528" },
|
|
63287
|
-
|
|
63642
|
+
open7,
|
|
63288
63643
|
(target) => [target.absolutePath],
|
|
63289
63644
|
{ targetTypes: ["file"] }
|
|
63290
63645
|
);
|
|
63291
63646
|
addCommand(
|
|
63292
63647
|
commands,
|
|
63293
63648
|
{ id: "finder", kind: "file-manager", name: "Finder" },
|
|
63294
|
-
|
|
63649
|
+
open7,
|
|
63295
63650
|
(target) => target.type === "file" ? ["-R", target.absolutePath] : [target.absolutePath]
|
|
63296
63651
|
);
|
|
63297
63652
|
const terminalPath = await firstExisting(
|
|
@@ -63301,7 +63656,7 @@ async function resolveMacCommands(environment, pathExists2) {
|
|
|
63301
63656
|
addCommand(
|
|
63302
63657
|
commands,
|
|
63303
63658
|
{ id: "terminal", kind: "terminal", name: "Terminal" },
|
|
63304
|
-
terminalPath === void 0 ? void 0 :
|
|
63659
|
+
terminalPath === void 0 ? void 0 : open7,
|
|
63305
63660
|
(target) => ["-a", "Terminal", target.directoryPath]
|
|
63306
63661
|
);
|
|
63307
63662
|
await addMacApp("ghostty", "Ghostty", "terminal");
|
|
@@ -63581,7 +63936,7 @@ async function defaultPathExists(path) {
|
|
|
63581
63936
|
}
|
|
63582
63937
|
}
|
|
63583
63938
|
function defaultSpawnDetached(file, args, options, launchConfirmationMs) {
|
|
63584
|
-
return new Promise((
|
|
63939
|
+
return new Promise((resolve11, reject) => {
|
|
63585
63940
|
const { observeEarlyExit, ...spawnOptions } = options;
|
|
63586
63941
|
const child = spawn(file, [...args], {
|
|
63587
63942
|
...spawnOptions,
|
|
@@ -63609,20 +63964,20 @@ function defaultSpawnDetached(file, args, options, launchConfirmationMs) {
|
|
|
63609
63964
|
if (!observeEarlyExit) {
|
|
63610
63965
|
settle(() => {
|
|
63611
63966
|
child.unref();
|
|
63612
|
-
|
|
63967
|
+
resolve11();
|
|
63613
63968
|
});
|
|
63614
63969
|
return;
|
|
63615
63970
|
}
|
|
63616
63971
|
confirmationTimer = setTimeout(() => {
|
|
63617
63972
|
settle(() => {
|
|
63618
63973
|
child.unref();
|
|
63619
|
-
|
|
63974
|
+
resolve11();
|
|
63620
63975
|
});
|
|
63621
63976
|
}, launchConfirmationMs);
|
|
63622
63977
|
});
|
|
63623
63978
|
child.once("exit", (exitCode, signal) => {
|
|
63624
63979
|
if (exitCode === 0) {
|
|
63625
|
-
settle(
|
|
63980
|
+
settle(resolve11);
|
|
63626
63981
|
return;
|
|
63627
63982
|
}
|
|
63628
63983
|
const reason = signal ? `signal ${signal}` : `code ${String(exitCode)}`;
|
|
@@ -64698,7 +65053,7 @@ function extractRelativePath(path, sourcePath) {
|
|
|
64698
65053
|
return selected.length === 0 ? "" : selected.join("/");
|
|
64699
65054
|
}
|
|
64700
65055
|
function decompressArchive(bytes, sourcePath) {
|
|
64701
|
-
return new Promise((
|
|
65056
|
+
return new Promise((resolve11, reject) => {
|
|
64702
65057
|
let declaredBytes = 0;
|
|
64703
65058
|
let fileCount = 0;
|
|
64704
65059
|
let validationError;
|
|
@@ -64745,7 +65100,7 @@ function decompressArchive(bytes, sourcePath) {
|
|
|
64745
65100
|
reject(invalidArchive("Skill archive is empty"));
|
|
64746
65101
|
return;
|
|
64747
65102
|
}
|
|
64748
|
-
|
|
65103
|
+
resolve11(files);
|
|
64749
65104
|
}
|
|
64750
65105
|
);
|
|
64751
65106
|
});
|
|
@@ -65020,6 +65375,7 @@ function createProjectRuntimeContext(options) {
|
|
|
65020
65375
|
invalidateProjectGitBranchCache(event.payload.rootPath);
|
|
65021
65376
|
}
|
|
65022
65377
|
eventStream.publish(event);
|
|
65378
|
+
options.workbenchChanges?.publishAgentEvent(scope.id, event);
|
|
65023
65379
|
})
|
|
65024
65380
|
};
|
|
65025
65381
|
}
|
|
@@ -65110,8 +65466,8 @@ var ProjectRuntimeLifecycleLock = class {
|
|
|
65110
65466
|
async run(projectId, operation) {
|
|
65111
65467
|
const predecessor = this.#tails.get(projectId) ?? Promise.resolve();
|
|
65112
65468
|
let release;
|
|
65113
|
-
const tail = new Promise((
|
|
65114
|
-
release =
|
|
65469
|
+
const tail = new Promise((resolve11) => {
|
|
65470
|
+
release = resolve11;
|
|
65115
65471
|
});
|
|
65116
65472
|
this.#tails.set(projectId, tail);
|
|
65117
65473
|
await predecessor.catch(() => void 0);
|
|
@@ -65315,8 +65671,8 @@ var PersistentTaskQueue = class {
|
|
|
65315
65671
|
const key = `${runtime.projectId}\0${runtime.taskId}`;
|
|
65316
65672
|
const previous = this.#locks.get(key) ?? Promise.resolve();
|
|
65317
65673
|
let release;
|
|
65318
|
-
const current = new Promise((
|
|
65319
|
-
release =
|
|
65674
|
+
const current = new Promise((resolve11) => {
|
|
65675
|
+
release = resolve11;
|
|
65320
65676
|
});
|
|
65321
65677
|
const tail = previous.then(() => current);
|
|
65322
65678
|
this.#locks.set(key, tail);
|
|
@@ -65491,226 +65847,6 @@ async function readProjectDirectory(requestedPath, options = {}) {
|
|
|
65491
65847
|
roots
|
|
65492
65848
|
};
|
|
65493
65849
|
}
|
|
65494
|
-
|
|
65495
|
-
// packages/server/src/routes/access-routes.ts
|
|
65496
|
-
var ACCESS_SESSION_COOKIE = "codexly_session";
|
|
65497
|
-
function status(authenticated, mode) {
|
|
65498
|
-
return { authenticated, mode, version: 1 };
|
|
65499
|
-
}
|
|
65500
|
-
var registerAccessRoutes = (app, options, done) => {
|
|
65501
|
-
const { access: access3, service } = options;
|
|
65502
|
-
const mode = access3 === void 0 ? "local" : "lan";
|
|
65503
|
-
app.get(
|
|
65504
|
-
"/v1/access",
|
|
65505
|
-
{ schema: { response: { 200: AccessStatusResponseSchema } } },
|
|
65506
|
-
(request2) => status(
|
|
65507
|
-
mode === "local" || service?.validate(request2.cookies[ACCESS_SESSION_COOKIE]) === true,
|
|
65508
|
-
mode
|
|
65509
|
-
)
|
|
65510
|
-
);
|
|
65511
|
-
app.post(
|
|
65512
|
-
"/v1/access/pair",
|
|
65513
|
-
{
|
|
65514
|
-
schema: {
|
|
65515
|
-
body: PairAccessRequestSchema,
|
|
65516
|
-
response: { 200: AccessStatusResponseSchema }
|
|
65517
|
-
}
|
|
65518
|
-
},
|
|
65519
|
-
(request2, reply) => {
|
|
65520
|
-
if (access3 === void 0 || service === void 0) {
|
|
65521
|
-
return status(true, "local");
|
|
65522
|
-
}
|
|
65523
|
-
const result = service.pair(request2.body.code, request2.ip);
|
|
65524
|
-
if (result.status !== "paired") {
|
|
65525
|
-
return reply.code(result.status === "rate_limited" ? 429 : 403).send({
|
|
65526
|
-
code: result.status === "rate_limited" ? "PAIRING_RATE_LIMITED" : "PAIRING_FAILED",
|
|
65527
|
-
message: "Pairing request failed",
|
|
65528
|
-
retryable: result.status === "rate_limited"
|
|
65529
|
-
});
|
|
65530
|
-
}
|
|
65531
|
-
reply.setCookie(ACCESS_SESSION_COOKIE, result.sessionId, {
|
|
65532
|
-
...result.expiresAt === null || access3.sessionTtlMs === void 0 ? {} : {
|
|
65533
|
-
expires: new Date(result.expiresAt),
|
|
65534
|
-
maxAge: Math.ceil(access3.sessionTtlMs / 1e3)
|
|
65535
|
-
},
|
|
65536
|
-
httpOnly: true,
|
|
65537
|
-
path: "/",
|
|
65538
|
-
sameSite: "strict",
|
|
65539
|
-
secure: false
|
|
65540
|
-
});
|
|
65541
|
-
return status(true, "lan");
|
|
65542
|
-
}
|
|
65543
|
-
);
|
|
65544
|
-
app.post(
|
|
65545
|
-
"/v1/access/logout",
|
|
65546
|
-
{ schema: { response: { 200: AccessStatusResponseSchema } } },
|
|
65547
|
-
(request2, reply) => {
|
|
65548
|
-
service?.logout(request2.cookies[ACCESS_SESSION_COOKIE]);
|
|
65549
|
-
reply.clearCookie(ACCESS_SESSION_COOKIE, { path: "/", sameSite: "strict" });
|
|
65550
|
-
return status(mode === "local", mode);
|
|
65551
|
-
}
|
|
65552
|
-
);
|
|
65553
|
-
done();
|
|
65554
|
-
};
|
|
65555
|
-
|
|
65556
|
-
// packages/server/src/routes/event-routes.ts
|
|
65557
|
-
var MAX_TIMER_DELAY_MS = 2147483647;
|
|
65558
|
-
function scheduleSessionExpiry(socket, expiresAt) {
|
|
65559
|
-
let timer;
|
|
65560
|
-
const expire = () => {
|
|
65561
|
-
const remainingMs = expiresAt - Date.now();
|
|
65562
|
-
if (remainingMs <= 0) {
|
|
65563
|
-
socket.close(1008, "Access session expired");
|
|
65564
|
-
return;
|
|
65565
|
-
}
|
|
65566
|
-
timer = setTimeout(expire, Math.min(remainingMs, MAX_TIMER_DELAY_MS));
|
|
65567
|
-
timer.unref();
|
|
65568
|
-
};
|
|
65569
|
-
expire();
|
|
65570
|
-
return () => {
|
|
65571
|
-
if (timer !== void 0) {
|
|
65572
|
-
clearTimeout(timer);
|
|
65573
|
-
}
|
|
65574
|
-
};
|
|
65575
|
-
}
|
|
65576
|
-
var registerEventRoutes = (app, context, done) => {
|
|
65577
|
-
const { accessService, getProjectContext, projectContexts } = context;
|
|
65578
|
-
app.get(
|
|
65579
|
-
"/v1/projects/:projectId/events",
|
|
65580
|
-
{
|
|
65581
|
-
async preValidation(request2, reply) {
|
|
65582
|
-
if (await getProjectContext(request2.params.projectId) === void 0) {
|
|
65583
|
-
return await reply.code(404).send({ code: "PROJECT_NOT_FOUND", message: "Project not found" });
|
|
65584
|
-
}
|
|
65585
|
-
},
|
|
65586
|
-
schema: { params: ProjectParamsSchema, querystring: EventQuerySchema },
|
|
65587
|
-
websocket: true
|
|
65588
|
-
},
|
|
65589
|
-
(socket, request2) => {
|
|
65590
|
-
const sessionExpiresAt = accessService?.expiresAt(request2.cookies[ACCESS_SESSION_COOKIE]);
|
|
65591
|
-
if (accessService !== void 0 && sessionExpiresAt === void 0) {
|
|
65592
|
-
socket.close(1008, "Access session expired");
|
|
65593
|
-
return;
|
|
65594
|
-
}
|
|
65595
|
-
const context2 = projectContexts.get(request2.params.projectId);
|
|
65596
|
-
if (context2 === void 0) {
|
|
65597
|
-
socket.close(1008, "Project not found");
|
|
65598
|
-
return;
|
|
65599
|
-
}
|
|
65600
|
-
const eventStream = context2.eventStream;
|
|
65601
|
-
context2.transportMetrics.activeClients += 1;
|
|
65602
|
-
let cleanedUp = false;
|
|
65603
|
-
let liveFlushScheduled = false;
|
|
65604
|
-
const liveEvents = [];
|
|
65605
|
-
let unsubscribe = () => void 0;
|
|
65606
|
-
let cancelInvalidation = () => void 0;
|
|
65607
|
-
const cancelSessionExpiry = sessionExpiresAt === void 0 || sessionExpiresAt === null ? () => void 0 : scheduleSessionExpiry(socket, sessionExpiresAt);
|
|
65608
|
-
const cleanup = () => {
|
|
65609
|
-
if (cleanedUp) {
|
|
65610
|
-
return;
|
|
65611
|
-
}
|
|
65612
|
-
cleanedUp = true;
|
|
65613
|
-
liveEvents.length = 0;
|
|
65614
|
-
cancelSessionExpiry();
|
|
65615
|
-
cancelInvalidation();
|
|
65616
|
-
unsubscribe();
|
|
65617
|
-
context2.transportMetrics.activeClients -= 1;
|
|
65618
|
-
};
|
|
65619
|
-
socket.once("close", cleanup);
|
|
65620
|
-
socket.once("error", cleanup);
|
|
65621
|
-
cancelInvalidation = accessService?.onInvalidated(request2.cookies[ACCESS_SESSION_COOKIE], () => {
|
|
65622
|
-
cleanup();
|
|
65623
|
-
socket.close(1008, "Access session expired");
|
|
65624
|
-
}) ?? (() => void 0);
|
|
65625
|
-
if (socket.readyState !== socket.OPEN) return;
|
|
65626
|
-
const send = (message) => sendEventStreamMessage(
|
|
65627
|
-
socket,
|
|
65628
|
-
message,
|
|
65629
|
-
() => {
|
|
65630
|
-
eventStream.noteBackpressure();
|
|
65631
|
-
},
|
|
65632
|
-
() => {
|
|
65633
|
-
context2.transportMetrics.slowClientDisconnects += 1;
|
|
65634
|
-
}
|
|
65635
|
-
);
|
|
65636
|
-
const sendEvents = (events) => sendEventStreamEvents(
|
|
65637
|
-
socket,
|
|
65638
|
-
events,
|
|
65639
|
-
() => {
|
|
65640
|
-
eventStream.noteBackpressure();
|
|
65641
|
-
},
|
|
65642
|
-
() => {
|
|
65643
|
-
context2.transportMetrics.slowClientDisconnects += 1;
|
|
65644
|
-
}
|
|
65645
|
-
);
|
|
65646
|
-
const flushLiveEvents = () => {
|
|
65647
|
-
liveFlushScheduled = false;
|
|
65648
|
-
if (cleanedUp || liveEvents.length === 0) {
|
|
65649
|
-
return;
|
|
65650
|
-
}
|
|
65651
|
-
const events = liveEvents.splice(0);
|
|
65652
|
-
sendEvents(events);
|
|
65653
|
-
};
|
|
65654
|
-
const enqueueLiveEvent = (event) => {
|
|
65655
|
-
liveEvents.push(event);
|
|
65656
|
-
if (liveEvents.length >= MAX_EVENT_BATCH_SIZE) {
|
|
65657
|
-
flushLiveEvents();
|
|
65658
|
-
return;
|
|
65659
|
-
}
|
|
65660
|
-
if (liveFlushScheduled) {
|
|
65661
|
-
return;
|
|
65662
|
-
}
|
|
65663
|
-
liveFlushScheduled = true;
|
|
65664
|
-
queueMicrotask(() => {
|
|
65665
|
-
if (liveFlushScheduled) {
|
|
65666
|
-
flushLiveEvents();
|
|
65667
|
-
}
|
|
65668
|
-
});
|
|
65669
|
-
};
|
|
65670
|
-
const replay = eventStream.replayAfter(request2.query.afterSequence);
|
|
65671
|
-
if (replay.type === "resync") {
|
|
65672
|
-
const sent = send({
|
|
65673
|
-
latestSequence: replay.latestSequence,
|
|
65674
|
-
reason: replay.reason,
|
|
65675
|
-
sessionId: eventStream.checkpoint.sessionId,
|
|
65676
|
-
type: "resync.required",
|
|
65677
|
-
version: 3
|
|
65678
|
-
});
|
|
65679
|
-
if (sent) {
|
|
65680
|
-
socket.close(1e3, "Snapshot resync required");
|
|
65681
|
-
}
|
|
65682
|
-
return;
|
|
65683
|
-
}
|
|
65684
|
-
const checkpoint = eventStream.checkpoint;
|
|
65685
|
-
const initializationEvents = [];
|
|
65686
|
-
let isInitializing = true;
|
|
65687
|
-
unsubscribe = eventStream.subscribe((event) => {
|
|
65688
|
-
if (isInitializing) {
|
|
65689
|
-
initializationEvents.push(event);
|
|
65690
|
-
return;
|
|
65691
|
-
}
|
|
65692
|
-
enqueueLiveEvent(event);
|
|
65693
|
-
});
|
|
65694
|
-
const readySent = send({
|
|
65695
|
-
latestSequence: checkpoint.sequence,
|
|
65696
|
-
sessionId: checkpoint.sessionId,
|
|
65697
|
-
type: "connection.ready",
|
|
65698
|
-
version: 3
|
|
65699
|
-
});
|
|
65700
|
-
if (!readySent) {
|
|
65701
|
-
return;
|
|
65702
|
-
}
|
|
65703
|
-
if (!sendEvents(replay.events)) {
|
|
65704
|
-
return;
|
|
65705
|
-
}
|
|
65706
|
-
isInitializing = false;
|
|
65707
|
-
if (!sendEvents(initializationEvents)) {
|
|
65708
|
-
return;
|
|
65709
|
-
}
|
|
65710
|
-
}
|
|
65711
|
-
);
|
|
65712
|
-
done();
|
|
65713
|
-
};
|
|
65714
65850
|
var ProjectRootScopeError = class extends Error {
|
|
65715
65851
|
constructor(code, message) {
|
|
65716
65852
|
super(message);
|
|
@@ -65903,6 +66039,230 @@ async function filterProjectFileSearchMatches(projectRoot, page) {
|
|
|
65903
66039
|
}
|
|
65904
66040
|
return { data };
|
|
65905
66041
|
}
|
|
66042
|
+
var TextFileError = class extends Error {
|
|
66043
|
+
constructor(code, message) {
|
|
66044
|
+
super(message);
|
|
66045
|
+
this.code = code;
|
|
66046
|
+
}
|
|
66047
|
+
code;
|
|
66048
|
+
};
|
|
66049
|
+
var unsupported = () => new TextFileError(
|
|
66050
|
+
"TEXT_FILE_UNSUPPORTED",
|
|
66051
|
+
"Only project UTF-8 text files up to 2 MiB with consistent line endings can be edited"
|
|
66052
|
+
);
|
|
66053
|
+
var conflict = () => new TextFileError("TEXT_FILE_CONFLICT", "File changed on disk; reload before saving");
|
|
66054
|
+
var blockedExtensions = /* @__PURE__ */ new Set([
|
|
66055
|
+
".doc",
|
|
66056
|
+
".docx",
|
|
66057
|
+
".odt",
|
|
66058
|
+
".rtf",
|
|
66059
|
+
".xls",
|
|
66060
|
+
".xlsx",
|
|
66061
|
+
".ppt",
|
|
66062
|
+
".pptx",
|
|
66063
|
+
".pdf",
|
|
66064
|
+
".zip",
|
|
66065
|
+
".png",
|
|
66066
|
+
".jpg",
|
|
66067
|
+
".jpeg",
|
|
66068
|
+
".gif",
|
|
66069
|
+
".webp",
|
|
66070
|
+
".woff",
|
|
66071
|
+
".woff2"
|
|
66072
|
+
]);
|
|
66073
|
+
var saves = /* @__PURE__ */ new Map();
|
|
66074
|
+
var versionOf = (bytes) => createHash("sha256").update(bytes).digest("hex");
|
|
66075
|
+
var revisionOf = (stat7) => createHash("sha256").update([stat7.dev, stat7.ino, stat7.size, stat7.mtimeNs, stat7.ctimeNs, stat7.birthtimeNs].join(":")).digest("hex");
|
|
66076
|
+
async function readProjectTextFileRevision(root, path) {
|
|
66077
|
+
const { target } = await resolveTarget(root, path);
|
|
66078
|
+
const stat7 = await lstat(target, { bigint: true });
|
|
66079
|
+
if (!stat7.isFile() || stat7.size > BigInt(MAX_TEXT_FILE_BYTES)) throw unsupported();
|
|
66080
|
+
return { revision: revisionOf(stat7) };
|
|
66081
|
+
}
|
|
66082
|
+
async function resolveTarget(root, requestedPath) {
|
|
66083
|
+
const canonicalRoot = await realpath(root);
|
|
66084
|
+
const path = isAbsolute(requestedPath) ? relative(
|
|
66085
|
+
requestedPath.startsWith(`${resolve(root)}${sep}`) ? resolve(root) : canonicalRoot,
|
|
66086
|
+
requestedPath
|
|
66087
|
+
) : requestedPath;
|
|
66088
|
+
const segments = path.split(/[\\/]/u);
|
|
66089
|
+
if (!path || isAbsolute(path) || segments.some(
|
|
66090
|
+
(s) => !s || s === "." || s === ".." || s.toLowerCase() === ".git" || s.includes(":")
|
|
66091
|
+
))
|
|
66092
|
+
throw unsupported();
|
|
66093
|
+
let target = canonicalRoot;
|
|
66094
|
+
for (const segment of segments) {
|
|
66095
|
+
target = resolve(target, segment);
|
|
66096
|
+
if ((await lstat(target)).isSymbolicLink()) throw unsupported();
|
|
66097
|
+
}
|
|
66098
|
+
if (blockedExtensions.has(extname(target).toLowerCase())) throw unsupported();
|
|
66099
|
+
return { target, path: relative(canonicalRoot, target).split(sep).join("/") };
|
|
66100
|
+
}
|
|
66101
|
+
function decodeText(bytes) {
|
|
66102
|
+
if (bytes.length > MAX_TEXT_FILE_BYTES) throw unsupported();
|
|
66103
|
+
let content;
|
|
66104
|
+
try {
|
|
66105
|
+
content = new TextDecoder("utf-8", { fatal: true, ignoreBOM: true }).decode(bytes);
|
|
66106
|
+
} catch {
|
|
66107
|
+
throw unsupported();
|
|
66108
|
+
}
|
|
66109
|
+
if (bytes.some((byte) => byte <= 8 || byte === 11 || byte === 12 || byte >= 14 && byte <= 31) || /\r(?!\n)/u.test(content) || content.includes("\r\n") && /(?<!\r)\n/u.test(content))
|
|
66110
|
+
throw unsupported();
|
|
66111
|
+
return content;
|
|
66112
|
+
}
|
|
66113
|
+
async function snapshot(target) {
|
|
66114
|
+
const handle = await open(target, "r");
|
|
66115
|
+
try {
|
|
66116
|
+
const before = await handle.stat({ bigint: true });
|
|
66117
|
+
if (!before.isFile() || before.size > BigInt(MAX_TEXT_FILE_BYTES)) throw unsupported();
|
|
66118
|
+
const buffer = Buffer.alloc(Number(before.size) + 1);
|
|
66119
|
+
let length = 0;
|
|
66120
|
+
while (length < buffer.length) {
|
|
66121
|
+
const { bytesRead } = await handle.read(buffer, length, buffer.length - length, length);
|
|
66122
|
+
if (!bytesRead) break;
|
|
66123
|
+
length += bytesRead;
|
|
66124
|
+
}
|
|
66125
|
+
const after = await handle.stat({ bigint: true });
|
|
66126
|
+
if (BigInt(length) !== before.size || revisionOf(after) !== revisionOf(before) || revisionOf(await lstat(target, { bigint: true })) !== revisionOf(before))
|
|
66127
|
+
throw conflict();
|
|
66128
|
+
const bytes = buffer.subarray(0, length);
|
|
66129
|
+
return {
|
|
66130
|
+
content: decodeText(bytes),
|
|
66131
|
+
version: versionOf(bytes),
|
|
66132
|
+
revision: revisionOf(before),
|
|
66133
|
+
mode: Number(before.mode),
|
|
66134
|
+
ino: before.ino,
|
|
66135
|
+
dev: before.dev
|
|
66136
|
+
};
|
|
66137
|
+
} finally {
|
|
66138
|
+
await handle.close();
|
|
66139
|
+
}
|
|
66140
|
+
}
|
|
66141
|
+
async function readProjectTextFile(root, path) {
|
|
66142
|
+
const resolved = await resolveTarget(root, path);
|
|
66143
|
+
const data = await snapshot(resolved.target);
|
|
66144
|
+
return {
|
|
66145
|
+
path: resolved.path,
|
|
66146
|
+
content: data.content,
|
|
66147
|
+
version: data.version,
|
|
66148
|
+
revision: data.revision
|
|
66149
|
+
};
|
|
66150
|
+
}
|
|
66151
|
+
async function saveProjectTextFile(root, input) {
|
|
66152
|
+
const { target } = await resolveTarget(root, input.path);
|
|
66153
|
+
const bytes = Buffer.from(input.content, "utf8");
|
|
66154
|
+
if (decodeText(bytes) !== input.content) throw unsupported();
|
|
66155
|
+
const previous = saves.get(target) ?? Promise.resolve();
|
|
66156
|
+
const operation = previous.catch(() => void 0).then(async () => {
|
|
66157
|
+
const original = await snapshot(target);
|
|
66158
|
+
if (original.version !== input.expectedVersion) throw conflict();
|
|
66159
|
+
const temporary = join(dirname(target), `.codexly-edit-${randomUUID()}.tmp`);
|
|
66160
|
+
const handle = await open(temporary, "wx", 384);
|
|
66161
|
+
try {
|
|
66162
|
+
await handle.writeFile(bytes);
|
|
66163
|
+
await handle.chmod(original.mode & 511);
|
|
66164
|
+
await handle.sync();
|
|
66165
|
+
const submitted = await handle.stat({ bigint: true });
|
|
66166
|
+
await resolveTarget(root, input.path);
|
|
66167
|
+
const latest = await snapshot(target);
|
|
66168
|
+
if (latest.version !== original.version || latest.ino !== original.ino || latest.dev !== original.dev)
|
|
66169
|
+
throw conflict();
|
|
66170
|
+
await rename(temporary, target);
|
|
66171
|
+
const written = await handle.stat({ bigint: true }).catch(() => null);
|
|
66172
|
+
const current = await lstat(target, { bigint: true }).catch(() => null);
|
|
66173
|
+
return {
|
|
66174
|
+
version: versionOf(bytes),
|
|
66175
|
+
...written !== null && current !== null && written.size === submitted.size && written.mtimeNs === submitted.mtimeNs && revisionOf(written) === revisionOf(current) ? { revision: revisionOf(written) } : {}
|
|
66176
|
+
};
|
|
66177
|
+
} finally {
|
|
66178
|
+
await handle.close();
|
|
66179
|
+
await unlink(temporary).catch((error) => {
|
|
66180
|
+
if (error.code !== "ENOENT") throw error;
|
|
66181
|
+
});
|
|
66182
|
+
}
|
|
66183
|
+
});
|
|
66184
|
+
saves.set(target, operation);
|
|
66185
|
+
try {
|
|
66186
|
+
return await operation;
|
|
66187
|
+
} finally {
|
|
66188
|
+
if (saves.get(target) === operation) saves.delete(target);
|
|
66189
|
+
}
|
|
66190
|
+
}
|
|
66191
|
+
|
|
66192
|
+
// packages/server/src/routes/project-text-file-routes.ts
|
|
66193
|
+
function sendError(reply, error) {
|
|
66194
|
+
if (error instanceof TextFileError)
|
|
66195
|
+
return reply.code(error.code === "TEXT_FILE_CONFLICT" ? 409 : 400).send({ code: error.code, message: error.message, retryable: false });
|
|
66196
|
+
if (error instanceof ProjectRootScopeError)
|
|
66197
|
+
return reply.code(error.code === "PROJECT_NOT_FOUND" ? 404 : 400).send({ code: error.code, message: error.message, retryable: false });
|
|
66198
|
+
return reply.code(404).send({ code: "TEXT_FILE_UNAVAILABLE", message: "Text file is unavailable", retryable: false });
|
|
66199
|
+
}
|
|
66200
|
+
function registerProjectTextFileRoutes(app, resolveRoot) {
|
|
66201
|
+
const errors3 = {
|
|
66202
|
+
400: AgentMutationErrorSchema,
|
|
66203
|
+
404: AgentMutationErrorSchema,
|
|
66204
|
+
409: AgentMutationErrorSchema
|
|
66205
|
+
};
|
|
66206
|
+
app.get(
|
|
66207
|
+
"/v1/projects/:projectId/files/text/revision",
|
|
66208
|
+
{
|
|
66209
|
+
schema: {
|
|
66210
|
+
params: ProjectParamsSchema,
|
|
66211
|
+
querystring: ProjectSourceFileQuerySchema,
|
|
66212
|
+
response: { 200: ProjectTextFileRevisionSchema, ...errors3 }
|
|
66213
|
+
}
|
|
66214
|
+
},
|
|
66215
|
+
async (request2, reply) => {
|
|
66216
|
+
try {
|
|
66217
|
+
const root = await resolveRoot(request2.params.projectId, request2.query.rootPath);
|
|
66218
|
+
reply.header("cache-control", "no-store");
|
|
66219
|
+
return await readProjectTextFileRevision(root.path, request2.query.path);
|
|
66220
|
+
} catch (error) {
|
|
66221
|
+
return sendError(reply, error);
|
|
66222
|
+
}
|
|
66223
|
+
}
|
|
66224
|
+
);
|
|
66225
|
+
app.get(
|
|
66226
|
+
"/v1/projects/:projectId/files/text",
|
|
66227
|
+
{
|
|
66228
|
+
schema: {
|
|
66229
|
+
params: ProjectParamsSchema,
|
|
66230
|
+
querystring: ProjectSourceFileQuerySchema,
|
|
66231
|
+
response: { 200: ProjectTextFileSchema, ...errors3 }
|
|
66232
|
+
}
|
|
66233
|
+
},
|
|
66234
|
+
async (request2, reply) => {
|
|
66235
|
+
try {
|
|
66236
|
+
const root = await resolveRoot(request2.params.projectId, request2.query.rootPath);
|
|
66237
|
+
reply.header("cache-control", "no-store");
|
|
66238
|
+
return await readProjectTextFile(root.path, request2.query.path);
|
|
66239
|
+
} catch (error) {
|
|
66240
|
+
return sendError(reply, error);
|
|
66241
|
+
}
|
|
66242
|
+
}
|
|
66243
|
+
);
|
|
66244
|
+
app.post(
|
|
66245
|
+
"/v1/projects/:projectId/files/text",
|
|
66246
|
+
{
|
|
66247
|
+
// JSON 控制字符转义可膨胀到六倍;解码后仍严格检查 UTF-8 字节上限。
|
|
66248
|
+
bodyLimit: MAX_TEXT_FILE_BYTES * 6 + 8192,
|
|
66249
|
+
schema: {
|
|
66250
|
+
params: ProjectParamsSchema,
|
|
66251
|
+
querystring: ProjectRootQuerySchema,
|
|
66252
|
+
body: SaveProjectTextFileRequestSchema,
|
|
66253
|
+
response: { 200: SaveProjectTextFileResponseSchema, ...errors3 }
|
|
66254
|
+
}
|
|
66255
|
+
},
|
|
66256
|
+
async (request2, reply) => {
|
|
66257
|
+
try {
|
|
66258
|
+
const root = await resolveRoot(request2.params.projectId, request2.query.rootPath);
|
|
66259
|
+
return await saveProjectTextFile(root.path, request2.body);
|
|
66260
|
+
} catch (error) {
|
|
66261
|
+
return sendError(reply, error);
|
|
66262
|
+
}
|
|
66263
|
+
}
|
|
66264
|
+
);
|
|
66265
|
+
}
|
|
65906
66266
|
function mapProjectFileMutationError(error) {
|
|
65907
66267
|
if (error instanceof ProjectRootScopeError) {
|
|
65908
66268
|
throw new MutationHttpError(
|
|
@@ -65916,11 +66276,11 @@ function mapProjectFileMutationError(error) {
|
|
|
65916
66276
|
throw new MutationHttpError("PROJECT_FILE_NOT_FOUND", "Project file was not found", 404);
|
|
65917
66277
|
}
|
|
65918
66278
|
if (error instanceof TypeError) {
|
|
65919
|
-
const
|
|
66279
|
+
const conflict2 = error.message.includes("already exists");
|
|
65920
66280
|
throw new MutationHttpError(
|
|
65921
|
-
|
|
65922
|
-
|
|
65923
|
-
|
|
66281
|
+
conflict2 ? "PROJECT_FILE_CONFLICT" : "INVALID_REQUEST",
|
|
66282
|
+
conflict2 ? "A file or directory with that name already exists" : "Project file request is invalid",
|
|
66283
|
+
conflict2 ? 409 : 400
|
|
65924
66284
|
);
|
|
65925
66285
|
}
|
|
65926
66286
|
throw new MutationHttpError("PROJECT_FILE_MUTATION_FAILED", "Project file mutation failed", 500);
|
|
@@ -65938,6 +66298,7 @@ function getParentDirectory(path) {
|
|
|
65938
66298
|
}
|
|
65939
66299
|
function registerProjectFileMutationRoutes(app, context, resolveProjectFileRoot2) {
|
|
65940
66300
|
const { deleteProjectFile: deleteProjectFile2, readFileTree, renameProjectFile: renameProjectFile2, runIdempotent } = context;
|
|
66301
|
+
registerProjectTextFileRoutes(app, resolveProjectFileRoot2);
|
|
65941
66302
|
app.post(
|
|
65942
66303
|
"/v1/projects/:projectId/files/rename",
|
|
65943
66304
|
{
|
|
@@ -68150,11 +68511,11 @@ var registerRuntimeRoutes = (app, context, done) => {
|
|
|
68150
68511
|
};
|
|
68151
68512
|
|
|
68152
68513
|
// packages/server/src/async-question-snapshot.ts
|
|
68153
|
-
async function restorePersistedAsyncQuestionAnswers(context, projectId, taskId,
|
|
68514
|
+
async function restorePersistedAsyncQuestionAnswers(context, projectId, taskId, snapshot2) {
|
|
68154
68515
|
const repository = context.asyncQuestionRepository;
|
|
68155
|
-
if (repository === void 0) return
|
|
68516
|
+
if (repository === void 0) return snapshot2;
|
|
68156
68517
|
const records = await repository.listAsyncQuestions(projectId, taskId);
|
|
68157
|
-
return restoreAsyncQuestionAnswers(
|
|
68518
|
+
return restoreAsyncQuestionAnswers(snapshot2, records);
|
|
68158
68519
|
}
|
|
68159
68520
|
|
|
68160
68521
|
// packages/server/src/routes/task-action-routes.ts
|
|
@@ -69252,7 +69613,7 @@ var registerSearchRoutes = (app, context, done) => {
|
|
|
69252
69613
|
{ id: TEMPORARY_TASK_SCOPE_ID, kind: "temporary" },
|
|
69253
69614
|
...projects.map((project) => ({ id: project.id, kind: "project" }))
|
|
69254
69615
|
];
|
|
69255
|
-
return provider.search.searchTasks(request2.query, scopes);
|
|
69616
|
+
return provider.search.searchTasks(request2.query, scopes, request2.signal);
|
|
69256
69617
|
}
|
|
69257
69618
|
);
|
|
69258
69619
|
app.get(
|
|
@@ -69282,7 +69643,8 @@ var registerSearchRoutes = (app, context, done) => {
|
|
|
69282
69643
|
return provider.search.searchTaskOccurrences(
|
|
69283
69644
|
request2.params.taskId,
|
|
69284
69645
|
request2.query,
|
|
69285
|
-
project.scope
|
|
69646
|
+
project.scope,
|
|
69647
|
+
request2.signal
|
|
69286
69648
|
);
|
|
69287
69649
|
}
|
|
69288
69650
|
);
|
|
@@ -69861,6 +70223,7 @@ var AsyncQuestionService = class {
|
|
|
69861
70223
|
async dismiss(projectId, taskId, ids) {
|
|
69862
70224
|
const { task } = await this.task(projectId, taskId);
|
|
69863
70225
|
await this.repository().dismissAsyncQuestions(projectId, taskId, ids);
|
|
70226
|
+
this.context.workbenchChanges.publish({ type: "async-questions.changed", projectId, taskId });
|
|
69864
70227
|
return this.pending(projectId, taskId, new Set(collectRunningTurnIds(task)));
|
|
69865
70228
|
}
|
|
69866
70229
|
async answer(projectId, taskId, id, answers) {
|
|
@@ -69905,6 +70268,7 @@ var AsyncQuestionService = class {
|
|
|
69905
70268
|
409
|
|
69906
70269
|
);
|
|
69907
70270
|
const checkpoint = runtime.eventStream.checkpoint;
|
|
70271
|
+
this.context.workbenchChanges.publish({ type: "async-questions.changed", projectId, taskId });
|
|
69908
70272
|
const providerInput = { text, skills: [], files: [], images: [], textAttachments: [] };
|
|
69909
70273
|
try {
|
|
69910
70274
|
const turn = running === void 0 ? await runtime.provider.startTurn(taskId, providerInput, settings) : null;
|
|
@@ -69921,6 +70285,7 @@ var AsyncQuestionService = class {
|
|
|
69921
70285
|
"answering"
|
|
69922
70286
|
))
|
|
69923
70287
|
throw new Error("Answer state changed unexpectedly");
|
|
70288
|
+
this.context.workbenchChanges.publish({ type: "async-questions.changed", projectId, taskId });
|
|
69924
70289
|
return result;
|
|
69925
70290
|
} catch {
|
|
69926
70291
|
throw this.unknownOutcome();
|
|
@@ -70094,7 +70459,9 @@ var registerProjectTodoRoutes = (app, context, done) => {
|
|
|
70094
70459
|
await assertProject(projectId);
|
|
70095
70460
|
return context.runIdempotent(scope, key, payload, async () => {
|
|
70096
70461
|
try {
|
|
70097
|
-
|
|
70462
|
+
const result = await action();
|
|
70463
|
+
context.workbenchChanges.publish({ type: "project-todos.changed", projectId });
|
|
70464
|
+
return result;
|
|
70098
70465
|
} catch (error) {
|
|
70099
70466
|
return toProjectTodoHttpError(error);
|
|
70100
70467
|
}
|
|
@@ -70746,13 +71113,13 @@ async function previewScheduledTask(schedule, afterUnixMs, limit = 5) {
|
|
|
70746
71113
|
resourceLimits: { maxOldGenerationSizeMb: 32 }
|
|
70747
71114
|
});
|
|
70748
71115
|
const runningWorker = worker;
|
|
70749
|
-
return await new Promise((
|
|
71116
|
+
return await new Promise((resolve11, reject) => {
|
|
70750
71117
|
timer = setTimeout(() => {
|
|
70751
71118
|
reject(new Error("Scheduled task RRULE computation timed out"));
|
|
70752
71119
|
}, COMPUTATION_TIMEOUT_MS);
|
|
70753
71120
|
runningWorker.once("message", (message) => {
|
|
70754
71121
|
if (message.error !== void 0) reject(new Error(message.error));
|
|
70755
|
-
else
|
|
71122
|
+
else resolve11(message.dates);
|
|
70756
71123
|
});
|
|
70757
71124
|
runningWorker.once("error", reject);
|
|
70758
71125
|
runningWorker.once("exit", () => {
|
|
@@ -71156,66 +71523,16 @@ var ScheduledTaskService = class {
|
|
|
71156
71523
|
};
|
|
71157
71524
|
|
|
71158
71525
|
// packages/server/src/routes/scheduled-task-events.ts
|
|
71159
|
-
var change = { type: "scheduled-tasks.changed" };
|
|
71160
|
-
var frame = JSON.stringify(change);
|
|
71161
71526
|
function registerScheduledTaskEvents(app, context) {
|
|
71162
|
-
|
|
71163
|
-
|
|
71164
|
-
|
|
71165
|
-
|
|
71166
|
-
|
|
71167
|
-
|
|
71168
|
-
|
|
71169
|
-
|
|
71170
|
-
|
|
71171
|
-
const send = () => {
|
|
71172
|
-
if (closed || socket.readyState !== 1) return;
|
|
71173
|
-
if (socket.bufferedAmount > 65536) {
|
|
71174
|
-
socket.close(1013, "Slow client");
|
|
71175
|
-
return;
|
|
71176
|
-
}
|
|
71177
|
-
socket.send(frame, (error) => {
|
|
71178
|
-
if (error) socket.terminate();
|
|
71179
|
-
});
|
|
71180
|
-
};
|
|
71181
|
-
const unsubscribe = context.scheduledTaskService.subscribe(() => {
|
|
71182
|
-
if (queued || closed) return;
|
|
71183
|
-
queued = true;
|
|
71184
|
-
queueMicrotask(() => {
|
|
71185
|
-
queued = false;
|
|
71186
|
-
send();
|
|
71187
|
-
});
|
|
71188
|
-
});
|
|
71189
|
-
let alive = true;
|
|
71190
|
-
socket.on("pong", () => {
|
|
71191
|
-
alive = true;
|
|
71192
|
-
});
|
|
71193
|
-
const heartbeat = setInterval(() => {
|
|
71194
|
-
if (!alive) {
|
|
71195
|
-
socket.terminate();
|
|
71196
|
-
return;
|
|
71197
|
-
}
|
|
71198
|
-
alive = false;
|
|
71199
|
-
socket.ping();
|
|
71200
|
-
}, 3e4);
|
|
71201
|
-
heartbeat.unref();
|
|
71202
|
-
let cancelInvalidation = () => void 0;
|
|
71203
|
-
const cleanup = () => {
|
|
71204
|
-
if (closed) return;
|
|
71205
|
-
closed = true;
|
|
71206
|
-
unsubscribe();
|
|
71207
|
-
cancelExpiry();
|
|
71208
|
-
cancelInvalidation();
|
|
71209
|
-
clearInterval(heartbeat);
|
|
71210
|
-
};
|
|
71211
|
-
socket.once("close", cleanup);
|
|
71212
|
-
socket.once("error", cleanup);
|
|
71213
|
-
cancelInvalidation = context.accessService?.onInvalidated(request2.cookies[ACCESS_SESSION_COOKIE], () => {
|
|
71214
|
-
cleanup();
|
|
71215
|
-
socket.close(1008, "Access session expired");
|
|
71216
|
-
}) ?? (() => void 0);
|
|
71217
|
-
send();
|
|
71218
|
-
});
|
|
71527
|
+
registerResourceChangeEvents(
|
|
71528
|
+
app,
|
|
71529
|
+
context,
|
|
71530
|
+
"/v1/scheduled-tasks/events",
|
|
71531
|
+
{ type: "scheduled-tasks.changed" },
|
|
71532
|
+
(listener) => context.scheduledTaskService.subscribe(() => {
|
|
71533
|
+
listener({ type: "scheduled-tasks.changed" });
|
|
71534
|
+
})
|
|
71535
|
+
);
|
|
71219
71536
|
}
|
|
71220
71537
|
|
|
71221
71538
|
// packages/server/src/routes/scheduled-task-routes.ts
|
|
@@ -72139,6 +72456,7 @@ async function createCodexlyServer(options) {
|
|
|
72139
72456
|
provider: options.provider
|
|
72140
72457
|
});
|
|
72141
72458
|
const attachmentStore = new AttachmentStore();
|
|
72459
|
+
const workbenchChanges = new WorkbenchChanges();
|
|
72142
72460
|
const resolveProviderTurnInput = createProviderTurnInputResolver(
|
|
72143
72461
|
attachmentStore,
|
|
72144
72462
|
(projectId, id) => options.projectTodoRepository?.readProjectTodoAttachment(projectId, id) ?? Promise.resolve(void 0)
|
|
@@ -72196,6 +72514,7 @@ async function createCodexlyServer(options) {
|
|
|
72196
72514
|
);
|
|
72197
72515
|
},
|
|
72198
72516
|
onTurnCompleted: (runtime) => taskQueue.startNext(runtime),
|
|
72517
|
+
workbenchChanges,
|
|
72199
72518
|
provider: resolved.provider,
|
|
72200
72519
|
scope: resolved.scope
|
|
72201
72520
|
});
|
|
@@ -72338,6 +72657,7 @@ async function createCodexlyServer(options) {
|
|
|
72338
72657
|
...options.staticRoot === void 0 ? {} : { staticRoot: options.staticRoot }
|
|
72339
72658
|
});
|
|
72340
72659
|
const routeContext = {
|
|
72660
|
+
workbenchChanges,
|
|
72341
72661
|
...options.asyncQuestionRepository === void 0 ? {} : { asyncQuestionRepository: options.asyncQuestionRepository },
|
|
72342
72662
|
...options.projectTodoRepository === void 0 ? {} : { projectTodoRepository: options.projectTodoRepository },
|
|
72343
72663
|
submissionRepository: options.submissionRepository ?? createMemorySubmissionRepository(idempotencyCacheSize),
|
|
@@ -72422,6 +72742,7 @@ async function createCodexlyServer(options) {
|
|
|
72422
72742
|
await app.register(registerSubmissionRoutes, routeContext);
|
|
72423
72743
|
await app.register(registerAsyncQuestionRoutes, routeContext);
|
|
72424
72744
|
await app.register(registerProjectTodoRoutes, routeContext);
|
|
72745
|
+
registerWorkbenchEvents(app, routeContext);
|
|
72425
72746
|
await app.register(registerQueueRoutes, routeContext);
|
|
72426
72747
|
await app.register(registerEventRoutes, routeContext);
|
|
72427
72748
|
await app.ready();
|