@hienlh/ppm 0.23.12 → 0.23.13
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 +186 -0
- package/CLAUDE.md +41 -6
- package/THIRD-PARTY-NOTICES.md +2 -2
- package/assets/skills/ppm/SKILL.md +5 -4
- package/assets/skills/ppm/references/cli-reference.md +34 -8
- package/assets/skills/ppm/references/common-tasks.md +8 -4
- package/assets/skills/ppm/references/http-api.md +65 -17
- package/bun.lock +53 -41
- package/dist/web/assets/_basePickBy-CPcPjurU.js +1 -0
- package/dist/web/assets/_basePickBy-CPcPjurU.js.br +0 -0
- package/dist/web/assets/_basePickBy-CPcPjurU.js.gz +0 -0
- package/dist/web/assets/_baseUniq-DI0z-mx3.js +1 -0
- package/dist/web/assets/_baseUniq-DI0z-mx3.js.br +0 -0
- package/dist/web/assets/_baseUniq-DI0z-mx3.js.gz +0 -0
- package/dist/web/assets/accounts-settings-section-DU-lTifs.js +1 -0
- package/dist/web/assets/accounts-settings-section-DU-lTifs.js.br +0 -0
- package/dist/web/assets/accounts-settings-section-DU-lTifs.js.gz +0 -0
- package/dist/web/assets/adaptive-context-menu-Cq7ynvIn.js +1 -0
- package/dist/web/assets/adaptive-context-menu-Cq7ynvIn.js.br +0 -0
- package/dist/web/assets/adaptive-context-menu-Cq7ynvIn.js.gz +0 -0
- package/dist/web/assets/agent-session-sheet-At6Rt-Yf.js +2 -0
- package/dist/web/assets/agent-session-sheet-At6Rt-Yf.js.br +0 -0
- package/dist/web/assets/agent-session-sheet-At6Rt-Yf.js.gz +0 -0
- package/dist/web/assets/agent-session-sheet-store-BoBrAw5i.js +1 -0
- package/dist/web/assets/agent-session-window-content-CB_uvabH.js +1 -0
- package/dist/web/assets/agent-session-window-content-CB_uvabH.js.br +0 -0
- package/dist/web/assets/agent-session-window-content-CB_uvabH.js.gz +0 -0
- package/dist/web/assets/ai-resource-editor-Czearm3I.js +1 -0
- package/dist/web/assets/ai-resource-editor-Czearm3I.js.br +0 -0
- package/dist/web/assets/ai-resource-editor-Czearm3I.js.gz +0 -0
- package/dist/web/assets/ai-settings-section-AOgAUCgH.js +1 -0
- package/dist/web/assets/ai-settings-section-B_OFMlrt.js +1 -0
- package/dist/web/assets/ai-settings-section-B_OFMlrt.js.br +0 -0
- package/dist/web/assets/ai-settings-section-B_OFMlrt.js.gz +0 -0
- package/dist/web/assets/android-tab-L7DmLfHG.js +2 -0
- package/dist/web/assets/android-tab-L7DmLfHG.js.br +0 -0
- package/dist/web/assets/android-tab-L7DmLfHG.js.gz +0 -0
- package/dist/web/assets/angular-html-DUhpSne7.js +1 -0
- package/dist/web/assets/angular-html-DUhpSne7.js.br +0 -0
- package/dist/web/assets/angular-html-DUhpSne7.js.gz +0 -0
- package/dist/web/assets/angular-ts-_PmhBAvx.js +1 -0
- package/dist/web/assets/angular-ts-_PmhBAvx.js.br +0 -0
- package/dist/web/assets/angular-ts-_PmhBAvx.js.gz +0 -0
- package/dist/web/assets/api-client-DAQfiXg0.js +1 -0
- package/dist/web/assets/api-client-OiA8Ida1.js +1 -0
- package/dist/web/assets/api-client-OiA8Ida1.js.br +0 -0
- package/dist/web/assets/api-client-OiA8Ida1.js.gz +0 -0
- package/dist/web/assets/api-settings-D2H6gjen.js +1 -0
- package/dist/web/assets/api-settings-D2H6gjen.js.br +0 -0
- package/dist/web/assets/api-settings-D2H6gjen.js.gz +0 -0
- package/dist/web/assets/api-settings-DHhcUHtx.js +1 -0
- package/dist/web/assets/api-themes-CE8gPZ3X.js +1 -0
- package/dist/web/assets/apl-Qu0ab_nv.js +1 -0
- package/dist/web/assets/apl-Qu0ab_nv.js.br +0 -0
- package/dist/web/assets/apl-Qu0ab_nv.js.gz +0 -0
- package/dist/web/assets/appearance-settings-section-s3KWKTBm.js +1 -0
- package/dist/web/assets/appearance-settings-section-s3KWKTBm.js.br +0 -0
- package/dist/web/assets/appearance-settings-section-s3KWKTBm.js.gz +0 -0
- package/dist/web/assets/apps-panel-DaojtUvh.js +1 -0
- package/dist/web/assets/apps-panel-DaojtUvh.js.br +0 -0
- package/dist/web/assets/apps-panel-DaojtUvh.js.gz +0 -0
- package/dist/web/assets/arc-Cbj2MTZU.js +1 -0
- package/dist/web/assets/arc-Cbj2MTZU.js.br +0 -0
- package/dist/web/assets/arc-Cbj2MTZU.js.gz +0 -0
- package/dist/web/assets/architecture-PBZL5I3N-BsjZHebV.js +1 -0
- package/dist/web/assets/architectureDiagram-2XIMDMQ5-B5N-uzUB.js +36 -0
- package/dist/web/assets/architectureDiagram-2XIMDMQ5-B5N-uzUB.js.br +0 -0
- package/dist/web/assets/architectureDiagram-2XIMDMQ5-B5N-uzUB.js.gz +0 -0
- package/dist/web/assets/astro-6xSNo-2E.js +1 -0
- package/dist/web/assets/astro-6xSNo-2E.js.br +0 -0
- package/dist/web/assets/astro-6xSNo-2E.js.gz +0 -0
- package/dist/web/assets/audio-preview-CWcPZqTA.js +1 -0
- package/dist/web/assets/audio-preview-CWcPZqTA.js.br +4 -0
- package/dist/web/assets/audio-preview-CWcPZqTA.js.gz +0 -0
- package/dist/web/assets/blade-p7SMjkdK.js +1 -0
- package/dist/web/assets/blade-p7SMjkdK.js.br +0 -0
- package/dist/web/assets/blade-p7SMjkdK.js.gz +0 -0
- package/dist/web/assets/blockDiagram-WCTKOSBZ-CNZJl-ap.js +132 -0
- package/dist/web/assets/blockDiagram-WCTKOSBZ-CNZJl-ap.js.br +0 -0
- package/dist/web/assets/blockDiagram-WCTKOSBZ-CNZJl-ap.js.gz +0 -0
- package/dist/web/assets/branch-review-tab-9UB4ccpF.js +1 -0
- package/dist/web/assets/branch-review-tab-9UB4ccpF.js.br +0 -0
- package/dist/web/assets/branch-review-tab-9UB4ccpF.js.gz +0 -0
- package/dist/web/assets/bsl-D0bT3Wjp.js +1 -0
- package/dist/web/assets/bsl-D0bT3Wjp.js.br +0 -0
- package/dist/web/assets/bsl-D0bT3Wjp.js.gz +0 -0
- package/dist/web/assets/button-Br60hGkw.js +1 -0
- package/dist/web/assets/button-Br60hGkw.js.br +0 -0
- package/dist/web/assets/button-Br60hGkw.js.gz +0 -0
- package/dist/web/assets/c4Diagram-IC4MRINW-hDrfu-4_.js +10 -0
- package/dist/web/assets/c4Diagram-IC4MRINW-hDrfu-4_.js.br +0 -0
- package/dist/web/assets/c4Diagram-IC4MRINW-hDrfu-4_.js.gz +0 -0
- package/dist/web/assets/cairo-DTuGb2w7.js +1 -0
- package/dist/web/assets/cairo-DTuGb2w7.js.br +0 -0
- package/dist/web/assets/cairo-DTuGb2w7.js.gz +0 -0
- package/dist/web/assets/channel-BYWG7Wl4.js +1 -0
- package/dist/web/assets/chat-preparation-cache-CRX9WAK5.js +1 -0
- package/dist/web/assets/chat-preparation-cache-CRX9WAK5.js.br +0 -0
- package/dist/web/assets/chat-preparation-cache-CRX9WAK5.js.gz +0 -0
- package/dist/web/assets/chat-tab-DMVb_mgx.js +1 -0
- package/dist/web/assets/chat-tab-DMVb_mgx.js.br +0 -0
- package/dist/web/assets/chat-tab-DMVb_mgx.js.gz +0 -0
- package/dist/web/assets/chat-tab-s7uAnh-h.js +17 -0
- package/dist/web/assets/chat-tab-s7uAnh-h.js.br +0 -0
- package/dist/web/assets/chat-tab-s7uAnh-h.js.gz +0 -0
- package/dist/web/assets/chunk-4BX2VUAB-hVAt6yvs.js +1 -0
- package/dist/web/assets/chunk-55IACEB6-C01pkYAe.js +1 -0
- package/dist/web/assets/chunk-7E7YKBS2-DzI9lMJG.js +1 -0
- package/dist/web/assets/chunk-7R4GIKGN-vQspoIwd.js +80 -0
- package/dist/web/assets/chunk-7R4GIKGN-vQspoIwd.js.br +0 -0
- package/dist/web/assets/chunk-7R4GIKGN-vQspoIwd.js.gz +0 -0
- package/dist/web/assets/chunk-C72U2L5F-B6xz3XVo.js +1 -0
- package/dist/web/assets/chunk-EGIJ26TM-piMHBD4l.js +1 -0
- package/dist/web/assets/chunk-FMBD7UC4-e6MPEMRh.js +15 -0
- package/dist/web/assets/chunk-GEFDOKGD-DnsnpeGb.js +2 -0
- package/dist/web/assets/chunk-GEFDOKGD-DnsnpeGb.js.br +0 -0
- package/dist/web/assets/chunk-GEFDOKGD-DnsnpeGb.js.gz +0 -0
- package/dist/web/assets/chunk-GLR3WWYH-Co8QL50g.js +2 -0
- package/dist/web/assets/chunk-GLR3WWYH-Co8QL50g.js.br +0 -0
- package/dist/web/assets/chunk-GLR3WWYH-Co8QL50g.js.gz +0 -0
- package/dist/web/assets/chunk-HHEYEP7N-CErk3LHZ.js +1 -0
- package/dist/web/assets/chunk-JSJVCQXG-B8pwPgsI.js +1 -0
- package/dist/web/assets/chunk-JSJVCQXG-B8pwPgsI.js.br +0 -0
- package/dist/web/assets/chunk-JSJVCQXG-B8pwPgsI.js.gz +0 -0
- package/dist/web/assets/chunk-KX2RTZJC-DeYfi-Vl.js +1 -0
- package/dist/web/assets/chunk-KYZI473N-B6LAvX90.js +53 -0
- package/dist/web/assets/chunk-KYZI473N-B6LAvX90.js.br +0 -0
- package/dist/web/assets/chunk-KYZI473N-B6LAvX90.js.gz +0 -0
- package/dist/web/assets/chunk-L3YUKLVL-BM-EQ2IR.js +1 -0
- package/dist/web/assets/chunk-MX3YWQON-EGGLXe7u.js +1 -0
- package/dist/web/assets/chunk-MX3YWQON-EGGLXe7u.js.br +0 -0
- package/dist/web/assets/chunk-MX3YWQON-EGGLXe7u.js.gz +0 -0
- package/dist/web/assets/chunk-NQ4KR5QH-BHn5FEPA.js +220 -0
- package/dist/web/assets/chunk-NQ4KR5QH-BHn5FEPA.js.br +0 -0
- package/dist/web/assets/chunk-NQ4KR5QH-BHn5FEPA.js.gz +0 -0
- package/dist/web/assets/chunk-O4XLMI2P-DeFJl-l6.js +7 -0
- package/dist/web/assets/chunk-O4XLMI2P-DeFJl-l6.js.br +0 -0
- package/dist/web/assets/chunk-O4XLMI2P-DeFJl-l6.js.gz +0 -0
- package/dist/web/assets/chunk-OZEHJAEY-BwMHWpJ8.js +1 -0
- package/dist/web/assets/chunk-OZEHJAEY-BwMHWpJ8.js.br +0 -0
- package/dist/web/assets/chunk-OZEHJAEY-BwMHWpJ8.js.gz +0 -0
- package/dist/web/assets/chunk-PQ6SQG4A-B9GHRcOM.js +1 -0
- package/dist/web/assets/chunk-PQ6SQG4A-B9GHRcOM.js.br +0 -0
- package/dist/web/assets/chunk-PQ6SQG4A-B9GHRcOM.js.gz +0 -0
- package/dist/web/assets/chunk-PU5JKC2W-DJY3yjhJ.js +11 -0
- package/dist/web/assets/chunk-PU5JKC2W-DJY3yjhJ.js.br +0 -0
- package/dist/web/assets/chunk-PU5JKC2W-DJY3yjhJ.js.gz +0 -0
- package/dist/web/assets/chunk-QZHKN3VN--KxlfM05.js +1 -0
- package/dist/web/assets/chunk-R5LLSJPH-B8fEAHWI.js +1 -0
- package/dist/web/assets/chunk-WL4C6EOR-CTOYdnLV.js +189 -0
- package/dist/web/assets/chunk-WL4C6EOR-CTOYdnLV.js.br +0 -0
- package/dist/web/assets/chunk-WL4C6EOR-CTOYdnLV.js.gz +0 -0
- package/dist/web/assets/chunk-XIRO2GV7-CzjzQGr1.js +1 -0
- package/dist/web/assets/chunk-XPW4576I-CYBtYKPi.js +32 -0
- package/dist/web/assets/chunk-XPW4576I-CYBtYKPi.js.br +0 -0
- package/dist/web/assets/chunk-XPW4576I-CYBtYKPi.js.gz +0 -0
- package/dist/web/assets/chunk-XZSTWKYB-CkPHeT47.js +94 -0
- package/dist/web/assets/chunk-XZSTWKYB-CkPHeT47.js.br +0 -0
- package/dist/web/assets/chunk-XZSTWKYB-CkPHeT47.js.gz +0 -0
- package/dist/web/assets/chunk-YBOYWFTD-DVV5zPYi.js +1 -0
- package/dist/web/assets/classDiagram-VBA2DB6C-fXft2ivd.js +1 -0
- package/dist/web/assets/classDiagram-v2-RAHNMMFH-3Pc0szA4.js +1 -0
- package/dist/web/assets/clipboard-D3XnL7CB.js +1 -0
- package/dist/web/assets/clipboard-D3XnL7CB.js.br +0 -0
- package/dist/web/assets/clipboard-D3XnL7CB.js.gz +0 -0
- package/dist/web/assets/clone-BbqYojVU.js +1 -0
- package/dist/web/assets/cobol-N66t9bre.js +1 -0
- package/dist/web/assets/cobol-N66t9bre.js.br +0 -0
- package/dist/web/assets/cobol-N66t9bre.js.gz +0 -0
- package/dist/web/assets/code-editor-JK49X9EX.js +10 -0
- package/dist/web/assets/code-editor-JK49X9EX.js.br +0 -0
- package/dist/web/assets/code-editor-JK49X9EX.js.gz +0 -0
- package/dist/web/assets/code-fence-vHZyBehL.js +1 -0
- package/dist/web/assets/codex-reset-credit-button-CxJsBnff.js +1 -0
- package/dist/web/assets/codex-reset-credit-button-CxJsBnff.js.br +0 -0
- package/dist/web/assets/codex-reset-credit-button-CxJsBnff.js.gz +0 -0
- package/dist/web/assets/coffee-DH4EPzT2.js +1 -0
- package/dist/web/assets/coffee-DH4EPzT2.js.br +0 -0
- package/dist/web/assets/coffee-DH4EPzT2.js.gz +0 -0
- package/dist/web/assets/conflict-editor-rOpVkK9P.js +19 -0
- package/dist/web/assets/conflict-editor-rOpVkK9P.js.br +0 -0
- package/dist/web/assets/conflict-editor-rOpVkK9P.js.gz +0 -0
- package/dist/web/assets/connection-form-tab-BGmb918E.js +4 -0
- package/dist/web/assets/connection-form-tab-BGmb918E.js.br +0 -0
- package/dist/web/assets/connection-form-tab-BGmb918E.js.gz +0 -0
- package/dist/web/assets/context-menu-BoQ6lxte.js +1 -0
- package/dist/web/assets/context-menu-BoQ6lxte.js.br +0 -0
- package/dist/web/assets/context-menu-BoQ6lxte.js.gz +0 -0
- package/dist/web/assets/cose-bilkent-S5V4N54A-mB8HA52z.js +1 -0
- package/dist/web/assets/cose-bilkent-S5V4N54A-mB8HA52z.js.br +0 -0
- package/dist/web/assets/cose-bilkent-S5V4N54A-mB8HA52z.js.gz +0 -0
- package/dist/web/assets/cpp-D9qUQN_l.js +1 -0
- package/dist/web/assets/cpp-D9qUQN_l.js.br +0 -0
- package/dist/web/assets/cpp-D9qUQN_l.js.gz +0 -0
- package/dist/web/assets/crystal-BbeV_Mwx.js +1 -0
- package/dist/web/assets/crystal-BbeV_Mwx.js.br +0 -0
- package/dist/web/assets/crystal-BbeV_Mwx.js.gz +0 -0
- package/dist/web/assets/csv-preview-CM7su92m.js +10 -0
- package/dist/web/assets/csv-preview-CM7su92m.js.br +0 -0
- package/dist/web/assets/csv-preview-CM7su92m.js.gz +0 -0
- package/dist/web/assets/dagre-DCmRVAkd.js +1 -0
- package/dist/web/assets/dagre-DCmRVAkd.js.br +0 -0
- package/dist/web/assets/dagre-DCmRVAkd.js.gz +0 -0
- package/dist/web/assets/dagre-KLK3FWXG-BbiZfyLJ.js +4 -0
- package/dist/web/assets/dagre-KLK3FWXG-BbiZfyLJ.js.br +0 -0
- package/dist/web/assets/dagre-KLK3FWXG-BbiZfyLJ.js.gz +0 -0
- package/dist/web/assets/database-drivers-section-C6ZKPWaE.js +1 -0
- package/dist/web/assets/database-drivers-section-C6ZKPWaE.js.br +0 -0
- package/dist/web/assets/database-drivers-section-C6ZKPWaE.js.gz +0 -0
- package/dist/web/assets/db-explorer-store-BcLxq-X0.js +1 -0
- package/dist/web/assets/db-explorer-store-BcLxq-X0.js.br +0 -0
- package/dist/web/assets/db-explorer-store-BcLxq-X0.js.gz +0 -0
- package/dist/web/assets/db-tab-parts-DvmnlA6V.js +1 -0
- package/dist/web/assets/db-tab-parts-DvmnlA6V.js.br +0 -0
- package/dist/web/assets/db-tab-parts-DvmnlA6V.js.gz +0 -0
- package/dist/web/assets/db-types-9ac-eYxf.js +1 -0
- package/dist/web/assets/db-types-9ac-eYxf.js.br +0 -0
- package/dist/web/assets/db-types-9ac-eYxf.js.gz +0 -0
- package/dist/web/assets/design-canvas-check-Bo76Q6Qr.js +1 -0
- package/dist/web/assets/design-canvas-check-Bo76Q6Qr.js.br +0 -0
- package/dist/web/assets/design-canvas-check-Bo76Q6Qr.js.gz +0 -0
- package/dist/web/assets/design-export-client-ClwRg798.js +1 -0
- package/dist/web/assets/design-export-client-ClwRg798.js.br +0 -0
- package/dist/web/assets/design-export-client-ClwRg798.js.gz +0 -0
- package/dist/web/assets/design-responsive-dialog-Cdccv3Nw.js +1 -0
- package/dist/web/assets/design-responsive-dialog-Cdccv3Nw.js.br +0 -0
- package/dist/web/assets/design-responsive-dialog-Cdccv3Nw.js.gz +0 -0
- package/dist/web/assets/design-settings-section-CuxZSLAr.js +2 -0
- package/dist/web/assets/design-settings-section-CuxZSLAr.js.br +0 -0
- package/dist/web/assets/design-settings-section-CuxZSLAr.js.gz +0 -0
- package/dist/web/assets/design-skill-suggestion-DZQjG8FV.js +3 -0
- package/dist/web/assets/design-skill-suggestion-DZQjG8FV.js.br +0 -0
- package/dist/web/assets/design-skill-suggestion-DZQjG8FV.js.gz +0 -0
- package/dist/web/assets/design-tab-JlKmHVkd.js +57 -0
- package/dist/web/assets/design-tab-JlKmHVkd.js.br +0 -0
- package/dist/web/assets/design-tab-JlKmHVkd.js.gz +0 -0
- package/dist/web/assets/designs-sidebar-panel-C1EwWf4Z.js +1 -0
- package/dist/web/assets/designs-sidebar-panel-C1EwWf4Z.js.br +0 -0
- package/dist/web/assets/designs-sidebar-panel-C1EwWf4Z.js.gz +0 -0
- package/dist/web/assets/diagram-E7M64L7V-DqWzOwQy.js +24 -0
- package/dist/web/assets/diagram-E7M64L7V-DqWzOwQy.js.br +0 -0
- package/dist/web/assets/diagram-E7M64L7V-DqWzOwQy.js.gz +0 -0
- package/dist/web/assets/diagram-IFDJBPK2-Dxmm5YBr.js +43 -0
- package/dist/web/assets/diagram-IFDJBPK2-Dxmm5YBr.js.br +0 -0
- package/dist/web/assets/diagram-IFDJBPK2-Dxmm5YBr.js.gz +0 -0
- package/dist/web/assets/diagram-P4PSJMXO-D1gJGa3M.js +24 -0
- package/dist/web/assets/diagram-P4PSJMXO-D1gJGa3M.js.br +0 -0
- package/dist/web/assets/diagram-P4PSJMXO-D1gJGa3M.js.gz +0 -0
- package/dist/web/assets/dialog-DOaEX6AK.js +1 -0
- package/dist/web/assets/dialog-DOaEX6AK.js.br +0 -0
- package/dist/web/assets/dialog-DOaEX6AK.js.gz +0 -0
- package/dist/web/assets/diff-viewer-FidH7Nsq.js +4 -0
- package/dist/web/assets/diff-viewer-FidH7Nsq.js.br +0 -0
- package/dist/web/assets/diff-viewer-FidH7Nsq.js.gz +0 -0
- package/dist/web/assets/docx-preview-ENiLGqzy.js +12 -0
- package/dist/web/assets/docx-preview-ENiLGqzy.js.br +0 -0
- package/dist/web/assets/docx-preview-ENiLGqzy.js.gz +0 -0
- package/dist/web/assets/dropdown-menu-DB3yyoVz.js +1 -0
- package/dist/web/assets/dropdown-menu-DB3yyoVz.js.br +0 -0
- package/dist/web/assets/dropdown-menu-DB3yyoVz.js.gz +0 -0
- package/dist/web/assets/edge-vA_btsvt.js +1 -0
- package/dist/web/assets/edge-vA_btsvt.js.br +0 -0
- package/dist/web/assets/edge-vA_btsvt.js.gz +0 -0
- package/dist/web/assets/edit-diff-preview-D4EqC86X.js +7 -0
- package/dist/web/assets/edit-diff-preview-D4EqC86X.js.br +0 -0
- package/dist/web/assets/edit-diff-preview-D4EqC86X.js.gz +0 -0
- package/dist/web/assets/editor-dialog-DC7dUWAX.js +1 -0
- package/dist/web/assets/editor-dialog-DC7dUWAX.js.br +0 -0
- package/dist/web/assets/editor-dialog-DC7dUWAX.js.gz +0 -0
- package/dist/web/assets/editor-language-service-0pN0TxYN.js +1 -0
- package/dist/web/assets/editor-language-service-0pN0TxYN.js.br +0 -0
- package/dist/web/assets/editor-language-service-0pN0TxYN.js.gz +0 -0
- package/dist/web/assets/elixir-jDRKDZoF.js +1 -0
- package/dist/web/assets/elixir-jDRKDZoF.js.br +0 -0
- package/dist/web/assets/elixir-jDRKDZoF.js.gz +0 -0
- package/dist/web/assets/elm-DAS3eMJt.js +1 -0
- package/dist/web/assets/elm-DAS3eMJt.js.br +0 -0
- package/dist/web/assets/elm-DAS3eMJt.js.gz +0 -0
- package/dist/web/assets/erDiagram-INFDFZHY-DU44Y1XS.js +70 -0
- package/dist/web/assets/erDiagram-INFDFZHY-DU44Y1XS.js.br +0 -0
- package/dist/web/assets/erDiagram-INFDFZHY-DU44Y1XS.js.gz +0 -0
- package/dist/web/assets/erb-C7IJmpH8.js +1 -0
- package/dist/web/assets/erb-C7IJmpH8.js.br +0 -0
- package/dist/web/assets/erb-C7IJmpH8.js.gz +0 -0
- package/dist/web/assets/erlang-DW-GAdmv.js +1 -0
- package/dist/web/assets/erlang-DW-GAdmv.js.br +0 -0
- package/dist/web/assets/erlang-DW-GAdmv.js.gz +0 -0
- package/dist/web/assets/explorer-body-tFaUp9_Q.js +2 -0
- package/dist/web/assets/explorer-body-tFaUp9_Q.js.br +0 -0
- package/dist/web/assets/explorer-body-tFaUp9_Q.js.gz +0 -0
- package/dist/web/assets/explorer-model-BmgFEsj1.js +1 -0
- package/dist/web/assets/explorer-model-BmgFEsj1.js.br +0 -0
- package/dist/web/assets/explorer-model-BmgFEsj1.js.gz +0 -0
- package/dist/web/assets/explorer-window-content-XnRTZT_X.js +1 -0
- package/dist/web/assets/explorer-window-content-XnRTZT_X.js.br +0 -0
- package/dist/web/assets/explorer-window-content-XnRTZT_X.js.gz +0 -0
- package/dist/web/assets/extension-manager-section-DEbwRPf1.js +1 -0
- package/dist/web/assets/extension-manager-section-DEbwRPf1.js.br +0 -0
- package/dist/web/assets/extension-manager-section-DEbwRPf1.js.gz +0 -0
- package/dist/web/assets/extension-webview-C9ApceLU.js +12 -0
- package/dist/web/assets/extension-webview-C9ApceLU.js.br +0 -0
- package/dist/web/assets/extension-webview-C9ApceLU.js.gz +0 -0
- package/dist/web/assets/file-diff-lX1a7RLF.js +1 -0
- package/dist/web/assets/file-icons-DpwcJLL4.js +1 -0
- package/dist/web/assets/file-icons-DpwcJLL4.js.br +0 -0
- package/dist/web/assets/file-icons-DpwcJLL4.js.gz +0 -0
- package/dist/web/assets/file-icons.generated-BTxvyD8L.css +1 -0
- package/dist/web/assets/file-icons.generated-BTxvyD8L.css.br +0 -0
- package/dist/web/assets/file-icons.generated-BTxvyD8L.css.gz +0 -0
- package/dist/web/assets/file-store-Bk1WYfdy.js +1 -0
- package/dist/web/assets/file-store-Bk1WYfdy.js.br +0 -0
- package/dist/web/assets/file-store-Bk1WYfdy.js.gz +0 -0
- package/dist/web/assets/files-settings-section-C8MacVFQ.js +1 -0
- package/dist/web/assets/files-settings-section-C8MacVFQ.js.br +0 -0
- package/dist/web/assets/files-settings-section-C8MacVFQ.js.gz +0 -0
- package/dist/web/assets/filter-dialog-frame-CoWlaNRy.js +1 -0
- package/dist/web/assets/filter-dialog-frame-CoWlaNRy.js.br +0 -0
- package/dist/web/assets/filter-dialog-frame-CoWlaNRy.js.gz +0 -0
- package/dist/web/assets/flowDiagram-PKNHOUZH-XzNJSFMz.js +162 -0
- package/dist/web/assets/flowDiagram-PKNHOUZH-XzNJSFMz.js.br +0 -0
- package/dist/web/assets/flowDiagram-PKNHOUZH-XzNJSFMz.js.gz +0 -0
- package/dist/web/assets/format-file-meta-C0LKHE3e.js +1 -0
- package/dist/web/assets/format-file-meta-C0LKHE3e.js.br +0 -0
- package/dist/web/assets/format-file-meta-C0LKHE3e.js.gz +0 -0
- package/dist/web/assets/fortran-fixed-form-DrQbMSkt.js +1 -0
- package/dist/web/assets/fortran-fixed-form-DrQbMSkt.js.br +0 -0
- package/dist/web/assets/fortran-fixed-form-DrQbMSkt.js.gz +0 -0
- package/dist/web/assets/fs-api-BQrIEcvo.js +1 -0
- package/dist/web/assets/fs-api-BQrIEcvo.js.br +0 -0
- package/dist/web/assets/fs-api-BQrIEcvo.js.gz +0 -0
- package/dist/web/assets/fsharp-DvDj84Ys.js +1 -0
- package/dist/web/assets/fsharp-DvDj84Ys.js.br +0 -0
- package/dist/web/assets/fsharp-DvDj84Ys.js.gz +0 -0
- package/dist/web/assets/ganttDiagram-A5KZAMGK-5AL8Egrk.js +292 -0
- package/dist/web/assets/ganttDiagram-A5KZAMGK-5AL8Egrk.js.br +0 -0
- package/dist/web/assets/ganttDiagram-A5KZAMGK-5AL8Egrk.js.gz +0 -0
- package/dist/web/assets/gdresource-CPgY7R2s.js +1 -0
- package/dist/web/assets/gdresource-CPgY7R2s.js.br +0 -0
- package/dist/web/assets/gdresource-CPgY7R2s.js.gz +0 -0
- package/dist/web/assets/general-settings-section-DZRRGdlQ.js +1 -0
- package/dist/web/assets/general-settings-section-DZRRGdlQ.js.br +0 -0
- package/dist/web/assets/general-settings-section-DZRRGdlQ.js.gz +0 -0
- package/dist/web/assets/git-commit-NJ9iGbTd.js +1 -0
- package/dist/web/assets/git-commit-NJ9iGbTd.js.br +4 -0
- package/dist/web/assets/git-commit-NJ9iGbTd.js.gz +0 -0
- package/dist/web/assets/git-commit-horizontal-BVihXafd.js +1 -0
- package/dist/web/assets/git-log-panel-g2pBnu6r.js +1 -0
- package/dist/web/assets/git-log-panel-g2pBnu6r.js.br +0 -0
- package/dist/web/assets/git-log-panel-g2pBnu6r.js.gz +0 -0
- package/dist/web/assets/git-rebase-Cm4Uf8Bj.js +1 -0
- package/dist/web/assets/git-repo-store-BOYLnV67.js +1 -0
- package/dist/web/assets/git-repo-store-BOYLnV67.js.br +0 -0
- package/dist/web/assets/git-repo-store-BOYLnV67.js.gz +0 -0
- package/dist/web/assets/git-review-tab-BzI5mxWd.js +3 -0
- package/dist/web/assets/git-review-tab-BzI5mxWd.js.br +0 -0
- package/dist/web/assets/git-review-tab-BzI5mxWd.js.gz +0 -0
- package/dist/web/assets/gitGraph-HDMCJU4V-6AuIeDPs.js +1 -0
- package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-DzKvk1bR.js +65 -0
- package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-DzKvk1bR.js.br +0 -0
- package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-DzKvk1bR.js.gz +0 -0
- package/dist/web/assets/glide-data-grid-BxvI3ehr.js +177 -0
- package/dist/web/assets/glide-data-grid-BxvI3ehr.js.br +0 -0
- package/dist/web/assets/glide-data-grid-BxvI3ehr.js.gz +0 -0
- package/dist/web/assets/glimmer-js-BrXGdFD2.js +1 -0
- package/dist/web/assets/glimmer-js-BrXGdFD2.js.br +0 -0
- package/dist/web/assets/glimmer-js-BrXGdFD2.js.gz +0 -0
- package/dist/web/assets/glimmer-ts-V0NFutRE.js +1 -0
- package/dist/web/assets/glimmer-ts-V0NFutRE.js.br +0 -0
- package/dist/web/assets/glimmer-ts-V0NFutRE.js.gz +0 -0
- package/dist/web/assets/glsl-DtvoVBT2.js +1 -0
- package/dist/web/assets/glsl-DtvoVBT2.js.br +0 -0
- package/dist/web/assets/glsl-DtvoVBT2.js.gz +0 -0
- package/dist/web/assets/graphlib-BpGCrXCx.js +1 -0
- package/dist/web/assets/graphlib-BpGCrXCx.js.br +0 -0
- package/dist/web/assets/graphlib-BpGCrXCx.js.gz +0 -0
- package/dist/web/assets/graphql-BM_SRktm.js +1 -0
- package/dist/web/assets/graphql-BM_SRktm.js.br +0 -0
- package/dist/web/assets/graphql-BM_SRktm.js.gz +0 -0
- package/dist/web/assets/grid-save-dialog-D55Po6Vu.js +2 -0
- package/dist/web/assets/grid-save-dialog-D55Po6Vu.js.br +0 -0
- package/dist/web/assets/grid-save-dialog-D55Po6Vu.js.gz +0 -0
- package/dist/web/assets/group-chat-tab-CoMC-Fx1.js +1 -0
- package/dist/web/assets/group-chat-tab-CoMC-Fx1.js.br +0 -0
- package/dist/web/assets/group-chat-tab-CoMC-Fx1.js.gz +0 -0
- package/dist/web/assets/hack-Ban3lpvB.js +1 -0
- package/dist/web/assets/hack-Ban3lpvB.js.br +0 -0
- package/dist/web/assets/hack-Ban3lpvB.js.gz +0 -0
- package/dist/web/assets/haml-CmZRp0VI.js +1 -0
- package/dist/web/assets/haml-CmZRp0VI.js.br +0 -0
- package/dist/web/assets/haml-CmZRp0VI.js.gz +0 -0
- package/dist/web/assets/handlebars-BTEDAMAb.js +1 -0
- package/dist/web/assets/handlebars-BTEDAMAb.js.br +0 -0
- package/dist/web/assets/handlebars-BTEDAMAb.js.gz +0 -0
- package/dist/web/assets/html-ItWVe1s-.js +1 -0
- package/dist/web/assets/html-ItWVe1s-.js.br +0 -0
- package/dist/web/assets/html-ItWVe1s-.js.gz +0 -0
- package/dist/web/assets/html-derivative-D_5yGE7d.js +1 -0
- package/dist/web/assets/http-7C1QiRf1.js +1 -0
- package/dist/web/assets/http-7C1QiRf1.js.br +0 -0
- package/dist/web/assets/http-7C1QiRf1.js.gz +0 -0
- package/dist/web/assets/hurl-Pypp_tSf.js +1 -0
- package/dist/web/assets/hurl-Pypp_tSf.js.br +0 -0
- package/dist/web/assets/hurl-Pypp_tSf.js.gz +0 -0
- package/dist/web/assets/hxml-C2EdtM37.js +1 -0
- package/dist/web/assets/hxml-C2EdtM37.js.br +0 -0
- package/dist/web/assets/hxml-C2EdtM37.js.gz +0 -0
- package/dist/web/assets/icons-JMA45Ifw.js +1 -0
- package/dist/web/assets/icons-JMA45Ifw.js.br +0 -0
- package/dist/web/assets/icons-JMA45Ifw.js.gz +0 -0
- package/dist/web/assets/image-preview-D7KR11Xo.js +1 -0
- package/dist/web/assets/impexp-state-BWKOuRGj.js +4 -0
- package/dist/web/assets/impexp-state-BWKOuRGj.js.br +0 -0
- package/dist/web/assets/impexp-state-BWKOuRGj.js.gz +0 -0
- package/dist/web/assets/impexp-tab-JF6JF8eO.js +1 -0
- package/dist/web/assets/impexp-tab-JF6JF8eO.js.br +0 -0
- package/dist/web/assets/impexp-tab-JF6JF8eO.js.gz +0 -0
- package/dist/web/assets/index-DyYGWFVa.css +1 -0
- package/dist/web/assets/index-DyYGWFVa.css.br +0 -0
- package/dist/web/assets/index-DyYGWFVa.css.gz +0 -0
- package/dist/web/assets/index-ItT-dTPV.js +59 -0
- package/dist/web/assets/index-ItT-dTPV.js.br +0 -0
- package/dist/web/assets/index-ItT-dTPV.js.gz +0 -0
- package/dist/web/assets/info-3K5VOQVL-CE88wNg6.js +1 -0
- package/dist/web/assets/infoDiagram-LFFYTUFH-BCnHmp4F.js +2 -0
- package/dist/web/assets/input-CKGoVpYv.js +1 -0
- package/dist/web/assets/isEmpty-dcb0OVvj.js +1 -0
- package/dist/web/assets/isEmpty-dcb0OVvj.js.br +0 -0
- package/dist/web/assets/isEmpty-dcb0OVvj.js.gz +0 -0
- package/dist/web/assets/ishikawaDiagram-PHBUUO56-gS3UZ04x.js +70 -0
- package/dist/web/assets/ishikawaDiagram-PHBUUO56-gS3UZ04x.js.br +0 -0
- package/dist/web/assets/ishikawaDiagram-PHBUUO56-gS3UZ04x.js.gz +0 -0
- package/dist/web/assets/jinja-CUU2G4qS.js +1 -0
- package/dist/web/assets/jinja-CUU2G4qS.js.br +0 -0
- package/dist/web/assets/jinja-CUU2G4qS.js.gz +0 -0
- package/dist/web/assets/jira-watcher-section-CvyXLyjO.js +1 -0
- package/dist/web/assets/jison-Cafe7d1m.js +1 -0
- package/dist/web/assets/jison-Cafe7d1m.js.br +0 -0
- package/dist/web/assets/jison-Cafe7d1m.js.gz +0 -0
- package/dist/web/assets/journeyDiagram-4ABVD52K-COVa2Vge.js +139 -0
- package/dist/web/assets/journeyDiagram-4ABVD52K-COVa2Vge.js.br +0 -0
- package/dist/web/assets/journeyDiagram-4ABVD52K-COVa2Vge.js.gz +0 -0
- package/dist/web/assets/julia-6B24A_s4.js +1 -0
- package/dist/web/assets/julia-6B24A_s4.js.br +0 -0
- package/dist/web/assets/julia-6B24A_s4.js.gz +0 -0
- package/dist/web/assets/just-B-sDN3xg.js +1 -0
- package/dist/web/assets/just-B-sDN3xg.js.br +0 -0
- package/dist/web/assets/just-B-sDN3xg.js.gz +0 -0
- package/dist/web/assets/kanban-definition-K7BYSVSG-CtqP4i48.js +89 -0
- package/dist/web/assets/kanban-definition-K7BYSVSG-CtqP4i48.js.br +0 -0
- package/dist/web/assets/kanban-definition-K7BYSVSG-CtqP4i48.js.gz +0 -0
- package/dist/web/assets/keybindings-store-CeEtx6js.js +1 -0
- package/dist/web/assets/keyboard-shortcuts-section-MUIE0Rvf.js +1 -0
- package/dist/web/assets/keyboard-shortcuts-section-MUIE0Rvf.js.br +0 -0
- package/dist/web/assets/keyboard-shortcuts-section-MUIE0Rvf.js.gz +0 -0
- package/dist/web/assets/language-servers-section-DiYURB24.js +2 -0
- package/dist/web/assets/language-servers-section-DiYURB24.js.br +0 -0
- package/dist/web/assets/language-servers-section-DiYURB24.js.gz +0 -0
- package/dist/web/assets/latex-BRjk2Rtm.js +1 -0
- package/dist/web/assets/latex-BRjk2Rtm.js.br +0 -0
- package/dist/web/assets/latex-BRjk2Rtm.js.gz +0 -0
- package/dist/web/assets/line-DXN3CJk7.js +1 -0
- package/dist/web/assets/linear-A-Z2llI9.js +1 -0
- package/dist/web/assets/linear-A-Z2llI9.js.br +0 -0
- package/dist/web/assets/linear-A-Z2llI9.js.gz +0 -0
- package/dist/web/assets/liquid-C5GHq6B-.js +1 -0
- package/dist/web/assets/liquid-C5GHq6B-.js.br +0 -0
- package/dist/web/assets/liquid-C5GHq6B-.js.gz +0 -0
- package/dist/web/assets/logs-app-C4OVSXwd.css +1 -0
- package/dist/web/assets/logs-app-C4OVSXwd.css.br +0 -0
- package/dist/web/assets/logs-app-C4OVSXwd.css.gz +0 -0
- package/dist/web/assets/logs-app-CJlNqOdc.js +13 -0
- package/dist/web/assets/logs-app-CJlNqOdc.js.br +0 -0
- package/dist/web/assets/logs-app-CJlNqOdc.js.gz +0 -0
- package/dist/web/assets/logs-tab-BoAlm_8H.js +1 -0
- package/dist/web/assets/logs-window-content-nNm4jl1s.js +1 -0
- package/dist/web/assets/lsp-client-LnKiMWeG.js +1 -0
- package/dist/web/assets/lsp-client-LnKiMWeG.js.br +0 -0
- package/dist/web/assets/lsp-client-LnKiMWeG.js.gz +0 -0
- package/dist/web/assets/lua-CREU2Cg5.js +1 -0
- package/dist/web/assets/lua-CREU2Cg5.js.br +0 -0
- package/dist/web/assets/lua-CREU2Cg5.js.gz +0 -0
- package/dist/web/assets/markdown-renderer-8Hef5MLx.js +1 -0
- package/dist/web/assets/markdown-renderer-BH_CFPJw.js +5 -0
- package/dist/web/assets/markdown-renderer-BH_CFPJw.js.br +0 -0
- package/dist/web/assets/markdown-renderer-BH_CFPJw.js.gz +0 -0
- package/dist/web/assets/marko-A01nJSfd.js +1 -0
- package/dist/web/assets/marko-A01nJSfd.js.br +0 -0
- package/dist/web/assets/marko-A01nJSfd.js.gz +0 -0
- package/dist/web/assets/mdc-coGBHeYV.js +1 -0
- package/dist/web/assets/mdc-coGBHeYV.js.br +0 -0
- package/dist/web/assets/mdc-coGBHeYV.js.gz +0 -0
- package/dist/web/assets/media-url-CsdZ6q_T.js +1 -0
- package/dist/web/assets/mermaid-parser.core-BwbMfUJY.js +4 -0
- package/dist/web/assets/mermaid-parser.core-BwbMfUJY.js.br +0 -0
- package/dist/web/assets/mermaid-parser.core-BwbMfUJY.js.gz +0 -0
- package/dist/web/assets/mermaid.core-DNHX7DSU.js +11 -0
- package/dist/web/assets/mermaid.core-DNHX7DSU.js.br +0 -0
- package/dist/web/assets/mermaid.core-DNHX7DSU.js.gz +0 -0
- package/dist/web/assets/mindmap-definition-YRQLILUH-B7las60M.js +68 -0
- package/dist/web/assets/mindmap-definition-YRQLILUH-B7las60M.js.br +0 -0
- package/dist/web/assets/mindmap-definition-YRQLILUH-B7las60M.js.gz +0 -0
- package/dist/web/assets/mobile-bottom-sheet-CGmmdp_5.js +1 -0
- package/dist/web/assets/mobile-bottom-sheet-CGmmdp_5.js.br +0 -0
- package/dist/web/assets/mobile-bottom-sheet-CGmmdp_5.js.gz +0 -0
- package/dist/web/assets/mobile-explorer-sheet-Dh2ZECzL.js +1 -0
- package/dist/web/assets/mobile-explorer-sheet-Dh2ZECzL.js.br +0 -0
- package/dist/web/assets/mobile-explorer-sheet-Dh2ZECzL.js.gz +0 -0
- package/dist/web/assets/monaco-dotenv-language-IZxwhtNA.js +1 -0
- package/dist/web/assets/new-design-dialog-CgBUrVFx.js +1 -0
- package/dist/web/assets/new-design-dialog-CgBUrVFx.js.br +0 -0
- package/dist/web/assets/new-design-dialog-CgBUrVFx.js.gz +0 -0
- package/dist/web/assets/nextflow-DKFYidyC.js +1 -0
- package/dist/web/assets/nextflow-DKFYidyC.js.br +0 -0
- package/dist/web/assets/nextflow-DKFYidyC.js.gz +0 -0
- package/dist/web/assets/nginx-B9Y4fsja.js +1 -0
- package/dist/web/assets/nginx-B9Y4fsja.js.br +0 -0
- package/dist/web/assets/nginx-B9Y4fsja.js.gz +0 -0
- package/dist/web/assets/nim-BEDyxLED.js +1 -0
- package/dist/web/assets/nim-BEDyxLED.js.br +0 -0
- package/dist/web/assets/nim-BEDyxLED.js.gz +0 -0
- package/dist/web/assets/notification-store-CXC7u6MW.js +1 -0
- package/dist/web/assets/notifications-settings-section-CPbx23nU.js +1 -0
- package/dist/web/assets/notifications-settings-section-CPbx23nU.js.br +0 -0
- package/dist/web/assets/notifications-settings-section-CPbx23nU.js.gz +0 -0
- package/dist/web/assets/onboarding-entry--MWe4amV.js +1 -0
- package/dist/web/assets/onboarding-entry--MWe4amV.js.br +0 -0
- package/dist/web/assets/onboarding-entry--MWe4amV.js.gz +0 -0
- package/dist/web/assets/onboarding-quick-orientation-DZYQekRt.js +1 -0
- package/dist/web/assets/onboarding-quick-orientation-DZYQekRt.js.br +0 -0
- package/dist/web/assets/onboarding-quick-orientation-DZYQekRt.js.gz +0 -0
- package/dist/web/assets/open-db-tabs-CkQe49j_.js +1 -0
- package/dist/web/assets/open-db-tabs-CkQe49j_.js.br +0 -0
- package/dist/web/assets/open-db-tabs-CkQe49j_.js.gz +0 -0
- package/dist/web/assets/open-settings-DsGBn73g.js +1 -0
- package/dist/web/assets/ordinal-U3GzwL7N.js +1 -0
- package/dist/web/assets/ordinal-U3GzwL7N.js.br +0 -0
- package/dist/web/assets/ordinal-U3GzwL7N.js.gz +0 -0
- package/dist/web/assets/overview-panel-CcUGDvnt.js +1 -0
- package/dist/web/assets/overview-panel-CcUGDvnt.js.br +0 -0
- package/dist/web/assets/overview-panel-CcUGDvnt.js.gz +0 -0
- package/dist/web/assets/packet-RMMSAZCW-m_QfwO7e.js +1 -0
- package/dist/web/assets/panel-store-DmP16Fo0.js +1 -0
- package/dist/web/assets/panel-store-DmP16Fo0.js.br +0 -0
- package/dist/web/assets/panel-store-DmP16Fo0.js.gz +0 -0
- package/dist/web/assets/patch-tab-metadata-B-jH5svY.js +1 -0
- package/dist/web/assets/pdf-preview-DMUIWb9B.js +1 -0
- package/dist/web/assets/pdf-preview-DMUIWb9B.js.br +0 -0
- package/dist/web/assets/pdf-preview-DMUIWb9B.js.gz +0 -0
- package/dist/web/assets/performance-panel-CJDLUwrs.js +3 -0
- package/dist/web/assets/performance-panel-CJDLUwrs.js.br +0 -0
- package/dist/web/assets/performance-panel-CJDLUwrs.js.gz +0 -0
- package/dist/web/assets/perl-CSnMi18C.js +1 -0
- package/dist/web/assets/perl-CSnMi18C.js.br +0 -0
- package/dist/web/assets/perl-CSnMi18C.js.gz +0 -0
- package/dist/web/assets/php-BXzT2401.js +1 -0
- package/dist/web/assets/php-BXzT2401.js.br +0 -0
- package/dist/web/assets/php-BXzT2401.js.gz +0 -0
- package/dist/web/assets/pie-UPGHQEXC-CLkXafuF.js +1 -0
- package/dist/web/assets/pieDiagram-SKSYHLDU-BO4P6Wpl.js +30 -0
- package/dist/web/assets/pieDiagram-SKSYHLDU-BO4P6Wpl.js.br +0 -0
- package/dist/web/assets/pieDiagram-SKSYHLDU-BO4P6Wpl.js.gz +0 -0
- package/dist/web/assets/ppmbot-settings-section-DTCTPQ-R.js +1 -0
- package/dist/web/assets/ppmbot-settings-section-DTCTPQ-R.js.br +0 -0
- package/dist/web/assets/ppmbot-settings-section-DTCTPQ-R.js.gz +0 -0
- package/dist/web/assets/pptx-export-BxmgltJ4.js +111 -0
- package/dist/web/assets/pptx-export-BxmgltJ4.js.br +0 -0
- package/dist/web/assets/pptx-export-BxmgltJ4.js.gz +0 -0
- package/dist/web/assets/problems-panel-DX32QDH_.js +1 -0
- package/dist/web/assets/problems-panel-DX32QDH_.js.br +0 -0
- package/dist/web/assets/problems-panel-DX32QDH_.js.gz +0 -0
- package/dist/web/assets/process-row-format-CBw-CQCx.js +1 -0
- package/dist/web/assets/process-table-CX-NhOg6.js +1 -0
- package/dist/web/assets/process-table-CX-NhOg6.js.br +0 -0
- package/dist/web/assets/process-table-CX-NhOg6.js.gz +0 -0
- package/dist/web/assets/project-framework-store-Bi5dyHdx.js +1 -0
- package/dist/web/assets/project-store-CEGoLMOl.js +1 -0
- package/dist/web/assets/project-store-CEGoLMOl.js.br +0 -0
- package/dist/web/assets/project-store-CEGoLMOl.js.gz +0 -0
- package/dist/web/assets/proxy-settings-section-BGNvFe7e.js +1 -0
- package/dist/web/assets/proxy-settings-section-BGNvFe7e.js.br +0 -0
- package/dist/web/assets/proxy-settings-section-BGNvFe7e.js.gz +0 -0
- package/dist/web/assets/pug-Bv9xupen.js +1 -0
- package/dist/web/assets/pug-Bv9xupen.js.br +0 -0
- package/dist/web/assets/pug-Bv9xupen.js.gz +0 -0
- package/dist/web/assets/qml-C3E1ICV4.js +1 -0
- package/dist/web/assets/qml-C3E1ICV4.js.br +0 -0
- package/dist/web/assets/qml-C3E1ICV4.js.gz +0 -0
- package/dist/web/assets/quadrantDiagram-337W2JSQ-B4TWXN8P.js +7 -0
- package/dist/web/assets/quadrantDiagram-337W2JSQ-B4TWXN8P.js.br +0 -0
- package/dist/web/assets/quadrantDiagram-337W2JSQ-B4TWXN8P.js.gz +0 -0
- package/dist/web/assets/query-audit-section-DTHI5GP7.js +1 -0
- package/dist/web/assets/query-audit-section-DTHI5GP7.js.br +0 -0
- package/dist/web/assets/query-audit-section-DTHI5GP7.js.gz +0 -0
- package/dist/web/assets/query-tab-qMlIkHRk.js +22 -0
- package/dist/web/assets/query-tab-qMlIkHRk.js.br +0 -0
- package/dist/web/assets/query-tab-qMlIkHRk.js.gz +0 -0
- package/dist/web/assets/radar-KQ55EAFF-BMCQVm9g.js +1 -0
- package/dist/web/assets/razor-wo4lUwpU.js +1 -0
- package/dist/web/assets/razor-wo4lUwpU.js.br +0 -0
- package/dist/web/assets/razor-wo4lUwpU.js.gz +0 -0
- package/dist/web/assets/remote-access-settings-section-t2BYAA9g.js +1 -0
- package/dist/web/assets/remote-access-settings-section-t2BYAA9g.js.br +0 -0
- package/dist/web/assets/remote-access-settings-section-t2BYAA9g.js.gz +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-ChUU6Jts.js +1 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-ChUU6Jts.js.br +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-ChUU6Jts.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-_bopEtCa.js +2 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-_bopEtCa.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-_bopEtCa.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-D9G4kDfa.js +1 -0
- package/dist/web/assets/remote-desktop-mobile-view-D9G4kDfa.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-D9G4kDfa.js.gz +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate-Yz9eVB3-.js +1 -0
- package/dist/web/assets/remote-desktop-readiness-gate-Yz9eVB3-.js.br +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate-Yz9eVB3-.js.gz +0 -0
- package/dist/web/assets/remote-desktop-settings-section-BTGGSjZY.js +1 -0
- package/dist/web/assets/remote-desktop-settings-section-BTGGSjZY.js.br +0 -0
- package/dist/web/assets/remote-desktop-settings-section-BTGGSjZY.js.gz +0 -0
- package/dist/web/assets/remote-desktop-window-content-B8ZaG2bL.js +1 -0
- package/dist/web/assets/remote-desktop-window-content-B8ZaG2bL.js.br +0 -0
- package/dist/web/assets/remote-desktop-window-content-B8ZaG2bL.js.gz +0 -0
- package/dist/web/assets/rename-object-dialog-FSlcdUoB.js +1 -0
- package/dist/web/assets/rename-object-dialog-FSlcdUoB.js.br +0 -0
- package/dist/web/assets/rename-object-dialog-FSlcdUoB.js.gz +0 -0
- package/dist/web/assets/requirementDiagram-Z7DCOOCP-C3bEBd6h.js +73 -0
- package/dist/web/assets/requirementDiagram-Z7DCOOCP-C3bEBd6h.js.br +0 -0
- package/dist/web/assets/requirementDiagram-Z7DCOOCP-C3bEBd6h.js.gz +0 -0
- package/dist/web/assets/review-code-CfuJeLYd.js +5 -0
- package/dist/web/assets/review-code-CfuJeLYd.js.br +0 -0
- package/dist/web/assets/review-code-CfuJeLYd.js.gz +0 -0
- package/dist/web/assets/rst-BP6JFRY2.js +1 -0
- package/dist/web/assets/rst-BP6JFRY2.js.br +0 -0
- package/dist/web/assets/rst-BP6JFRY2.js.gz +0 -0
- package/dist/web/assets/ruby-EPVx8l1i.js +1 -0
- package/dist/web/assets/ruby-EPVx8l1i.js.br +0 -0
- package/dist/web/assets/ruby-EPVx8l1i.js.gz +0 -0
- package/dist/web/assets/run-in-terminal-Bk9Bw7G1.js +1 -0
- package/dist/web/assets/run-in-terminal-button-DFPQUlZs.js +1 -0
- package/dist/web/assets/sankeyDiagram-WA2Y5GQK-BxAKhnHw.js +10 -0
- package/dist/web/assets/sankeyDiagram-WA2Y5GQK-BxAKhnHw.js.br +0 -0
- package/dist/web/assets/sankeyDiagram-WA2Y5GQK-BxAKhnHw.js.gz +0 -0
- package/dist/web/assets/sas-NhxEMTOf.js +1 -0
- package/dist/web/assets/sas-NhxEMTOf.js.br +0 -0
- package/dist/web/assets/sas-NhxEMTOf.js.gz +0 -0
- package/dist/web/assets/save-as-dialog-Bj9VpGYf.js +1 -0
- package/dist/web/assets/save-as-dialog-Bj9VpGYf.js.br +0 -0
- package/dist/web/assets/save-as-dialog-Bj9VpGYf.js.gz +0 -0
- package/dist/web/assets/schedules-settings-section-DNJ4K7zS.js +1 -0
- package/dist/web/assets/schedules-settings-section-DNJ4K7zS.js.br +0 -0
- package/dist/web/assets/schedules-settings-section-DNJ4K7zS.js.gz +0 -0
- package/dist/web/assets/scroll-area-6Am1KMiB.js +1 -0
- package/dist/web/assets/scroll-area-6Am1KMiB.js.br +0 -0
- package/dist/web/assets/scroll-area-6Am1KMiB.js.gz +0 -0
- package/dist/web/assets/scss-DdAMYXTJ.js +1 -0
- package/dist/web/assets/scss-DdAMYXTJ.js.br +0 -0
- package/dist/web/assets/scss-DdAMYXTJ.js.gz +0 -0
- package/dist/web/assets/send-to-chat-Bcm_Lcog.js +1 -0
- package/dist/web/assets/send-to-chat-Bcm_Lcog.js.br +0 -0
- package/dist/web/assets/send-to-chat-Bcm_Lcog.js.gz +0 -0
- package/dist/web/assets/separator-BOYUIPkH.js +1 -0
- package/dist/web/assets/sequenceDiagram-2WXFIKYE-Dfq9uyFD.js +145 -0
- package/dist/web/assets/sequenceDiagram-2WXFIKYE-Dfq9uyFD.js.br +0 -0
- package/dist/web/assets/sequenceDiagram-2WXFIKYE-Dfq9uyFD.js.gz +0 -0
- package/dist/web/assets/services-panel-CBRTsROB.js +1 -0
- package/dist/web/assets/services-panel-CBRTsROB.js.br +0 -0
- package/dist/web/assets/services-panel-CBRTsROB.js.gz +0 -0
- package/dist/web/assets/session-changes-bar-BRopa3Dh.js +1 -0
- package/dist/web/assets/session-changes-bar-BRopa3Dh.js.br +0 -0
- package/dist/web/assets/session-changes-bar-BRopa3Dh.js.gz +0 -0
- package/dist/web/assets/session-list-sync-triggers-DitiR5h1.js +1 -0
- package/dist/web/assets/session-list-sync-triggers-DitiR5h1.js.br +0 -0
- package/dist/web/assets/session-list-sync-triggers-DitiR5h1.js.gz +0 -0
- package/dist/web/assets/session-review-tab--kNB_FKQ.js +6 -0
- package/dist/web/assets/session-review-tab--kNB_FKQ.js.br +0 -0
- package/dist/web/assets/session-review-tab--kNB_FKQ.js.gz +0 -0
- package/dist/web/assets/session-turns-gmrmXzeg.js +9 -0
- package/dist/web/assets/session-turns-gmrmXzeg.js.br +0 -0
- package/dist/web/assets/session-turns-gmrmXzeg.js.gz +0 -0
- package/dist/web/assets/settings-body-B-s0fEjc.js +1 -0
- package/dist/web/assets/settings-body-B-s0fEjc.js.br +0 -0
- package/dist/web/assets/settings-body-B-s0fEjc.js.gz +0 -0
- package/dist/web/assets/settings-categories-CcR9eL3x.js +1 -0
- package/dist/web/assets/settings-categories-CcR9eL3x.js.br +0 -0
- package/dist/web/assets/settings-categories-CcR9eL3x.js.gz +0 -0
- package/dist/web/assets/settings-section-content-BJ35dy5r.js +1 -0
- package/dist/web/assets/settings-section-content-DckksvTg.js +2 -0
- package/dist/web/assets/settings-section-content-DckksvTg.js.br +0 -0
- package/dist/web/assets/settings-section-content-DckksvTg.js.gz +0 -0
- package/dist/web/assets/settings-store-WeJyQVL8.js +2 -0
- package/dist/web/assets/settings-store-WeJyQVL8.js.br +0 -0
- package/dist/web/assets/settings-store-WeJyQVL8.js.gz +0 -0
- package/dist/web/assets/settings-tab-BlX33GEN.js +1 -0
- package/dist/web/assets/settings-window-content-B-7yV1_q.js +1 -0
- package/dist/web/assets/shaderlab-Cv3mWofL.js +1 -0
- package/dist/web/assets/shaderlab-Cv3mWofL.js.br +0 -0
- package/dist/web/assets/shaderlab-Cv3mWofL.js.gz +0 -0
- package/dist/web/assets/shellsession-47z2x_c2.js +1 -0
- package/dist/web/assets/slash-command-picker-BBcy6w6m.js +1 -0
- package/dist/web/assets/slash-command-picker-BBcy6w6m.js.br +0 -0
- package/dist/web/assets/slash-command-picker-BBcy6w6m.js.gz +0 -0
- package/dist/web/assets/sortable-header-B9gfWik4.js +1 -0
- package/dist/web/assets/sortable-header-B9gfWik4.js.br +0 -0
- package/dist/web/assets/sortable-header-B9gfWik4.js.gz +0 -0
- package/dist/web/assets/soy-DbMmewuy.js +1 -0
- package/dist/web/assets/soy-DbMmewuy.js.br +0 -0
- package/dist/web/assets/soy-DbMmewuy.js.gz +0 -0
- package/dist/web/assets/sparql-TvnQmFDh.js +1 -0
- package/dist/web/assets/sparql-TvnQmFDh.js.br +0 -0
- package/dist/web/assets/sparql-TvnQmFDh.js.gz +0 -0
- package/dist/web/assets/sql-completion-provider-CaTHVr1l.js +5 -0
- package/dist/web/assets/sql-completion-provider-CaTHVr1l.js.br +0 -0
- package/dist/web/assets/sql-completion-provider-CaTHVr1l.js.gz +0 -0
- package/dist/web/assets/sql-identifiers-DDISwQor.js +1 -0
- package/dist/web/assets/sql-identifiers-DDISwQor.js.br +0 -0
- package/dist/web/assets/sql-identifiers-DDISwQor.js.gz +0 -0
- package/dist/web/assets/sql-object-tab-DVo4bxRI.js +1 -0
- package/dist/web/assets/sql-object-tab-DVo4bxRI.js.br +0 -0
- package/dist/web/assets/sql-object-tab-DVo4bxRI.js.gz +0 -0
- package/dist/web/assets/sqlite-viewer-BGfIpl5x.js +1 -0
- package/dist/web/assets/sqlite-viewer-BGfIpl5x.js.br +0 -0
- package/dist/web/assets/sqlite-viewer-BGfIpl5x.js.gz +0 -0
- package/dist/web/assets/start-ellipsis-rBh37k0n.js +1 -0
- package/dist/web/assets/stata-ColYzPoX.js +1 -0
- package/dist/web/assets/stata-ColYzPoX.js.br +0 -0
- package/dist/web/assets/stata-ColYzPoX.js.gz +0 -0
- package/dist/web/assets/stateDiagram-RAJIS63D-B8YqGq27.js +1 -0
- package/dist/web/assets/stateDiagram-RAJIS63D-B8YqGq27.js.br +0 -0
- package/dist/web/assets/stateDiagram-RAJIS63D-B8YqGq27.js.gz +0 -0
- package/dist/web/assets/stateDiagram-v2-FVOUBMTO-U76Fcmmw.js +1 -0
- package/dist/web/assets/structure-save-dialog-STK_RFCK.js +1 -0
- package/dist/web/assets/structure-save-dialog-STK_RFCK.js.br +0 -0
- package/dist/web/assets/structure-save-dialog-STK_RFCK.js.gz +0 -0
- package/dist/web/assets/structure-tab-DuLnsTC4.js +3 -0
- package/dist/web/assets/structure-tab-DuLnsTC4.js.br +0 -0
- package/dist/web/assets/structure-tab-DuLnsTC4.js.gz +0 -0
- package/dist/web/assets/surrealql-Bq6PTSr5.js +1 -0
- package/dist/web/assets/surrealql-Bq6PTSr5.js.br +0 -0
- package/dist/web/assets/surrealql-Bq6PTSr5.js.gz +0 -0
- package/dist/web/assets/svelte-QMQkUlOI.js +1 -0
- package/dist/web/assets/svelte-QMQkUlOI.js.br +0 -0
- package/dist/web/assets/svelte-QMQkUlOI.js.gz +0 -0
- package/dist/web/assets/system-monitor-body-BIjW16Pb.js +2 -0
- package/dist/web/assets/system-monitor-body-BIjW16Pb.js.br +0 -0
- package/dist/web/assets/system-monitor-body-BIjW16Pb.js.gz +0 -0
- package/dist/web/assets/system-monitor-tab-B6_tC9LO.js +1 -0
- package/dist/web/assets/system-monitor-window-content-CwBzqMUe.js +1 -0
- package/dist/web/assets/tab-host-window-content-CpdEjkZd.js +1 -0
- package/dist/web/assets/tab-host-window-content-CpdEjkZd.js.br +0 -0
- package/dist/web/assets/tab-host-window-content-CpdEjkZd.js.gz +0 -0
- package/dist/web/assets/tab-store-nNzRNfVV.js +1 -0
- package/dist/web/assets/table-tab-B5asfTBP.js +2 -0
- package/dist/web/assets/table-tab-B5asfTBP.js.br +0 -0
- package/dist/web/assets/table-tab-B5asfTBP.js.gz +0 -0
- package/dist/web/assets/telegram-bot-token-field-BiqKbXwE.js +1 -0
- package/dist/web/assets/telegram-bot-token-field-BiqKbXwE.js.br +0 -0
- package/dist/web/assets/telegram-bot-token-field-BiqKbXwE.js.gz +0 -0
- package/dist/web/assets/templ-C1kESo-I.js +1 -0
- package/dist/web/assets/templ-C1kESo-I.js.br +0 -0
- package/dist/web/assets/templ-C1kESo-I.js.gz +0 -0
- package/dist/web/assets/terminal-tab-DpMONMVB.js +3 -0
- package/dist/web/assets/terminal-tab-DpMONMVB.js.br +0 -0
- package/dist/web/assets/terminal-tab-DpMONMVB.js.gz +0 -0
- package/dist/web/assets/tex-B0snethp.js +1 -0
- package/dist/web/assets/tex-B0snethp.js.br +0 -0
- package/dist/web/assets/tex-B0snethp.js.gz +0 -0
- package/dist/web/assets/timeline-definition-YZTLITO2-3U3p-lPX.js +61 -0
- package/dist/web/assets/timeline-definition-YZTLITO2-3U3p-lPX.js.br +0 -0
- package/dist/web/assets/timeline-definition-YZTLITO2-3U3p-lPX.js.gz +0 -0
- package/dist/web/assets/tool-cards-DoDKxqN4.js +14 -0
- package/dist/web/assets/tool-cards-DoDKxqN4.js.br +0 -0
- package/dist/web/assets/tool-cards-DoDKxqN4.js.gz +0 -0
- package/dist/web/assets/treemap-KZPCXAKY-X6uv-HhJ.js +1 -0
- package/dist/web/assets/ts-tags-XXdX0qhp.js +1 -0
- package/dist/web/assets/ts-tags-XXdX0qhp.js.br +0 -0
- package/dist/web/assets/ts-tags-XXdX0qhp.js.gz +0 -0
- package/dist/web/assets/twig-DIZPhfGq.js +1 -0
- package/dist/web/assets/twig-DIZPhfGq.js.br +0 -0
- package/dist/web/assets/twig-DIZPhfGq.js.gz +0 -0
- package/dist/web/assets/use-at-most-wide-BQFi1Sjv.js +1 -0
- package/dist/web/assets/use-blob-url-D7ElNPnW.js +1 -0
- package/dist/web/assets/use-db-driver-installed-BscdI-wS.js +1 -0
- package/dist/web/assets/use-db-read-DYuyNA5i.js +1 -0
- package/dist/web/assets/use-db-read-DYuyNA5i.js.br +0 -0
- package/dist/web/assets/use-db-read-DYuyNA5i.js.gz +0 -0
- package/dist/web/assets/use-db-tab-Cr4lXxwF.js +1 -0
- package/dist/web/assets/use-db-tab-Cr4lXxwF.js.br +0 -0
- package/dist/web/assets/use-db-tab-Cr4lXxwF.js.gz +0 -0
- package/dist/web/assets/use-design-canvas-check-DKlyMp-S.js +1 -0
- package/dist/web/assets/use-design-canvas-check-DKlyMp-S.js.br +0 -0
- package/dist/web/assets/use-design-canvas-check-DKlyMp-S.js.gz +0 -0
- package/dist/web/assets/use-inline-blame-DS0HrHJ3.js +16 -0
- package/dist/web/assets/use-inline-blame-DS0HrHJ3.js.br +0 -0
- package/dist/web/assets/use-inline-blame-DS0HrHJ3.js.gz +0 -0
- package/dist/web/assets/use-lsp-BTVDYrt6.js +6 -0
- package/dist/web/assets/use-lsp-BTVDYrt6.js.br +0 -0
- package/dist/web/assets/use-lsp-BTVDYrt6.js.gz +0 -0
- package/dist/web/assets/use-monaco-theme-DqnhExsm.js +1 -0
- package/dist/web/assets/use-opener-focus-C5L5UUJs.js +1 -0
- package/dist/web/assets/use-process-kill-D-SGQxDn.js +1 -0
- package/dist/web/assets/use-process-kill-D-SGQxDn.js.br +0 -0
- package/dist/web/assets/use-process-kill-D-SGQxDn.js.gz +0 -0
- package/dist/web/assets/use-sql-schema-info-DRb9dAKi.js +4 -0
- package/dist/web/assets/use-sql-schema-info-DRb9dAKi.js.br +0 -0
- package/dist/web/assets/use-sql-schema-info-DRb9dAKi.js.gz +0 -0
- package/dist/web/assets/use-websocket-C6RnlNVJ.js +1 -0
- package/dist/web/assets/vendor-ui-CS1GvlOm.js +45 -0
- package/dist/web/assets/vendor-ui-CS1GvlOm.js.br +0 -0
- package/dist/web/assets/vendor-ui-CS1GvlOm.js.gz +0 -0
- package/dist/web/assets/vennDiagram-LZ73GAT5-DA_6uAVT.js +34 -0
- package/dist/web/assets/vennDiagram-LZ73GAT5-DA_6uAVT.js.br +0 -0
- package/dist/web/assets/vennDiagram-LZ73GAT5-DA_6uAVT.js.gz +0 -0
- package/dist/web/assets/video-preview-CYzeUPfH.js +1 -0
- package/dist/web/assets/video-preview-CYzeUPfH.js.br +0 -0
- package/dist/web/assets/video-preview-CYzeUPfH.js.gz +0 -0
- package/dist/web/assets/voice-settings-section-C01d-toF.js +1 -0
- package/dist/web/assets/voice-settings-section-C01d-toF.js.br +0 -0
- package/dist/web/assets/voice-settings-section-C01d-toF.js.gz +0 -0
- package/dist/web/assets/vue-Bzq4wgkZ.js +1 -0
- package/dist/web/assets/vue-Bzq4wgkZ.js.br +0 -0
- package/dist/web/assets/vue-Bzq4wgkZ.js.gz +0 -0
- package/dist/web/assets/vue-html-Cw1hn392.js +1 -0
- package/dist/web/assets/vue-html-Cw1hn392.js.br +0 -0
- package/dist/web/assets/vue-html-Cw1hn392.js.gz +0 -0
- package/dist/web/assets/vue-vine-BnNe0hw6.js +1 -0
- package/dist/web/assets/vue-vine-BnNe0hw6.js.br +0 -0
- package/dist/web/assets/vue-vine-BnNe0hw6.js.gz +0 -0
- package/dist/web/assets/web-preview-tab-F5C3quQs.js +1 -0
- package/dist/web/assets/web-preview-tab-F5C3quQs.js.br +0 -0
- package/dist/web/assets/web-preview-tab-F5C3quQs.js.gz +0 -0
- package/dist/web/assets/window-pip-registry-DSoB7T3k.js +1 -0
- package/dist/web/assets/window-store-zJczRsv4.js +1 -0
- package/dist/web/assets/window-store-zJczRsv4.js.br +0 -0
- package/dist/web/assets/window-store-zJczRsv4.js.gz +0 -0
- package/dist/web/assets/ws-auth-cWeQ7_61.js +1 -0
- package/dist/web/assets/xml-B_Dd-eqG.js +1 -0
- package/dist/web/assets/xml-B_Dd-eqG.js.br +0 -0
- package/dist/web/assets/xml-B_Dd-eqG.js.gz +0 -0
- package/dist/web/assets/xsl-gLqXzcUZ.js +1 -0
- package/dist/web/assets/xsl-gLqXzcUZ.js.br +0 -0
- package/dist/web/assets/xsl-gLqXzcUZ.js.gz +0 -0
- package/dist/web/assets/xychartDiagram-JWTSCODW-B02PE8Cu.js +7 -0
- package/dist/web/assets/xychartDiagram-JWTSCODW-B02PE8Cu.js.br +0 -0
- package/dist/web/assets/xychartDiagram-JWTSCODW-B02PE8Cu.js.gz +0 -0
- package/dist/web/index.html +52 -35
- package/dist/web/index.html.br +0 -0
- package/dist/web/index.html.gz +0 -0
- package/dist/web/sw.js +1 -1
- package/dist/web/sw.js.br +0 -0
- package/dist/web/sw.js.gz +0 -0
- package/docs/architecture/ai-chat-and-providers.md +389 -0
- package/docs/architecture/data-and-storage.md +108 -172
- package/docs/architecture/integrations.md +12 -4
- package/docs/architecture/workspace-and-ui.md +168 -6
- package/docs/code-standards.md +30 -1
- package/docs/codebase-summary.md +36 -23
- package/docs/deployment-guide.md +56 -12
- package/docs/project-overview-pdr.md +2 -2
- package/docs/project-roadmap.md +21 -2
- package/docs/system-architecture.md +12 -7
- package/package.json +4 -3
- package/packages/ext-git-graph/src/checkout-pathspec.test.ts +52 -0
- package/packages/ext-git-graph/src/commit-detail-escaping.test.ts +84 -30
- package/packages/ext-git-graph/src/commit-detail-status.test.ts +83 -0
- package/packages/ext-git-graph/src/commit-keeps-typing.test.ts +54 -0
- package/packages/ext-git-graph/src/commit-paging.test.ts +93 -0
- package/packages/ext-git-graph/src/discard-undo-toast.test.ts +46 -0
- package/packages/ext-git-graph/src/extension.ts +517 -308
- package/packages/ext-git-graph/src/fetch-through-ppm.test.ts +152 -0
- package/packages/ext-git-graph/src/git-log-parser.ts +3 -1
- package/packages/ext-git-graph/src/gone-branch-filter.test.ts +65 -0
- package/packages/ext-git-graph/src/inspector-file-icons.test.ts +93 -0
- package/packages/ext-git-graph/src/log-args.test.ts +2 -2
- package/packages/ext-git-graph/src/outside-ref-changes.test.ts +185 -0
- package/packages/ext-git-graph/src/panel-test-harness.ts +242 -0
- package/packages/ext-git-graph/src/ppm-git.test.ts +76 -0
- package/packages/ext-git-graph/src/ppm-git.ts +151 -0
- package/packages/ext-git-graph/src/remote-head-refs.test.ts +32 -0
- package/packages/ext-git-graph/src/request-answers.test.ts +76 -0
- package/packages/ext-git-graph/src/search-marks.test.ts +53 -0
- package/packages/ext-git-graph/src/stash-list.test.ts +56 -0
- package/packages/ext-git-graph/src/types.ts +53 -16
- package/packages/ext-git-graph/src/undo-commit-webview.test.ts +82 -0
- package/packages/ext-git-graph/src/undo-targets-through-ppm.test.ts +164 -0
- package/packages/ext-git-graph/src/webview-html.test.ts +529 -595
- package/packages/ext-git-graph/src/webview-html.ts +144 -3765
- package/packages/ext-git-graph/src/webview-icons.generated.ts +69 -0
- package/packages/ext-git-graph/src/webview-protocol.test.ts +135 -0
- package/packages/ext-git-graph/src/webview-script-actions.ts +1291 -0
- package/packages/ext-git-graph/src/webview-script-core.ts +624 -0
- package/packages/ext-git-graph/src/webview-script-graph.ts +570 -0
- package/packages/ext-git-graph/src/webview-script-inspector.ts +571 -0
- package/packages/ext-git-graph/src/webview-script-list.ts +696 -0
- package/packages/ext-git-graph/src/webview-script-main.ts +279 -0
- package/packages/ext-git-graph/src/webview-script-settings.ts +285 -0
- package/packages/ext-git-graph/src/webview-styles.ts +615 -0
- package/packages/ext-git-graph/src/wip-model.ts +299 -0
- package/scripts/gen-db-driver-locks.ts +41 -0
- package/scripts/gen-file-icons.ts +27 -0
- package/scripts/gen-git-graph-icons.ts +135 -0
- package/scripts/gen-product-icons.ts +34 -0
- package/scripts/vite-glide-eager-editors.ts +37 -0
- package/src/cli/commands/config-cmd.ts +10 -0
- package/src/cli/commands/db-cmd.ts +279 -50
- package/src/cli/commands/logs.ts +26 -7
- package/src/cli/utils/tty-prompt.ts +51 -0
- package/src/index.ts +4 -0
- package/src/lib/account-crypto.ts +6 -0
- package/src/providers/claude-agent-sdk-query-options.ts +111 -0
- package/src/providers/claude-agent-sdk.ts +326 -133
- package/src/providers/claude-warm-spare.ts +26 -9
- package/src/providers/cli-provider-base.ts +28 -5
- package/src/providers/codex-app-server/codex-event-mapper.ts +4 -9
- package/src/providers/codex-app-server/codex-file-baselines.ts +47 -0
- package/src/providers/codex-app-server/codex-history.ts +1 -1
- package/src/providers/codex-app-server/codex-jsonrpc-client.ts +57 -11
- package/src/providers/codex-app-server/codex-patch.ts +68 -4
- package/src/providers/codex-app-server/codex-provider.ts +76 -14
- package/src/providers/codex-app-server/codex-rollout-header.ts +2 -1
- package/src/providers/codex-app-server/codex-rollout-items.ts +22 -0
- package/src/providers/codex-app-server/codex-thread-params.ts +34 -1
- package/src/providers/cursor-cli/cursor-history.ts +2 -1
- package/src/providers/registry.ts +12 -7
- package/src/server/index.ts +224 -103
- package/src/server/middleware/access-log.ts +127 -0
- package/src/server/middleware/auth.ts +8 -0
- package/src/server/routes/accounts.ts +13 -2
- package/src/server/routes/android.ts +6 -0
- package/src/server/routes/chat-file-changes.ts +215 -0
- package/src/server/routes/chat-history-page.ts +116 -0
- package/src/server/routes/chat.ts +125 -38
- package/src/server/routes/database-changeset.ts +178 -0
- package/src/server/routes/database-drivers.ts +36 -0
- package/src/server/routes/database-grid-export.ts +212 -0
- package/src/server/routes/database-grid.ts +317 -0
- package/src/server/routes/database-impexp.ts +317 -0
- package/src/server/routes/database-query.ts +186 -0
- package/src/server/routes/database-route-helpers.ts +130 -0
- package/src/server/routes/database-structure.ts +292 -0
- package/src/server/routes/database.ts +539 -280
- package/src/server/routes/design-settings.ts +30 -6
- package/src/server/routes/git.ts +254 -16
- package/src/server/routes/html-preview.ts +42 -9
- package/src/server/routes/jira-watcher-routes.ts +7 -1
- package/src/server/routes/logs.ts +158 -0
- package/src/server/routes/mcp.ts +11 -1
- package/src/server/routes/notifications.ts +192 -0
- package/src/server/routes/port-forwarding.ts +19 -19
- package/src/server/routes/project-scoped.ts +0 -2
- package/src/server/routes/query-audit-hook.ts +37 -31
- package/src/server/routes/remote-desktop.ts +19 -0
- package/src/server/routes/settings.ts +140 -45
- package/src/server/routes/system-services.ts +12 -6
- package/src/server/routes/tailscale.ts +70 -0
- package/src/server/routes/trace.ts +4 -1
- package/src/server/routes/tunnel-spawn.ts +55 -12
- package/src/server/routes/tunnel.ts +5 -0
- package/src/server/routes/tunnels.ts +63 -11
- package/src/server/routes/upgrade.ts +5 -1
- package/src/server/ws/android.ts +36 -11
- package/src/server/ws/chat.ts +294 -69
- package/src/server/ws/extensions.ts +13 -10
- package/src/server/ws/global.ts +14 -0
- package/src/server/ws/group-chat.ts +5 -0
- package/src/server/ws/lsp.ts +29 -4
- package/src/server/ws/remote-desktop.ts +25 -9
- package/src/server/ws/terminal.ts +8 -1
- package/src/services/account-pick.service.ts +1 -1
- package/src/services/account-selector.service.ts +76 -14
- package/src/services/account.service.ts +54 -23
- package/src/services/agent-transcript/agent-transcript-activity.ts +11 -4
- package/src/services/ai-chat-env.ts +28 -0
- package/src/services/android/android-operations.ts +10 -0
- package/src/services/android/android-session.ts +20 -0
- package/src/services/android/android-video.ts +41 -7
- package/src/services/android/avd-manager.ts +21 -3
- package/src/services/android/emulator-launcher.ts +40 -2
- package/src/services/autostart-register.ts +24 -8
- package/src/services/bash-output-spy.ts +6 -3
- package/src/services/binary-content.ts +8 -0
- package/src/services/binary-upgrade-apply.ts +5 -0
- package/src/services/binary-upgrade-download.ts +9 -1
- package/src/services/binary-upgrade-swap.ts +18 -3
- package/src/services/chat-prepare/chat-prepare.service.ts +4 -1
- package/src/services/chat-prepare/settle-within-budget.ts +10 -3
- package/src/services/chat-search.service.ts +4 -2
- package/src/services/chat.service.ts +115 -5
- package/src/services/claude-transcript-exists.ts +24 -0
- package/src/services/cloud-ws.service.ts +46 -12
- package/src/services/cloud.service.ts +40 -9
- package/src/services/cloudflared.service.ts +25 -3
- package/src/services/codex-account-cooldown.ts +4 -0
- package/src/services/codex-account-login.ts +15 -4
- package/src/services/compact-segment.ts +156 -0
- package/src/services/compaction-savings.ts +8 -2
- package/src/services/config-secret-keys.ts +2 -0
- package/src/services/config.service.ts +44 -6
- package/src/services/database/analyser-mysql.ts +384 -0
- package/src/services/database/analyser-postgres.ts +259 -0
- package/src/services/database/analyser-sqlite.ts +411 -0
- package/src/services/database/changeset.service.ts +60 -0
- package/src/services/database/changeset.ts +473 -0
- package/src/services/database/connection-config.ts +370 -0
- package/src/services/database/connection-database.ts +90 -0
- package/src/services/database/connection-endpoint.ts +160 -0
- package/src/services/database/connection-login.ts +144 -0
- package/src/services/database/connection-test.ts +191 -0
- package/src/services/database/db-errors.ts +57 -0
- package/src/services/database/db-values.ts +45 -0
- package/src/services/database/ddl/ddl-common.ts +47 -0
- package/src/services/database/ddl/ddl-mysql.ts +202 -0
- package/src/services/database/ddl/ddl-objects.ts +116 -0
- package/src/services/database/ddl/ddl-postgres.ts +208 -0
- package/src/services/database/ddl/ddl-sqlite.ts +172 -0
- package/src/services/database/ddl/ddl-types.ts +61 -0
- package/src/services/database/ddl/sqlite-alter-plan.ts +61 -0
- package/src/services/database/ddl/sqlite-apply.ts +112 -0
- package/src/services/database/ddl/sqlite-recreate.ts +202 -0
- package/src/services/database/ddl/table-diff.ts +187 -0
- package/src/services/database/dialect-mysql.ts +58 -0
- package/src/services/database/dialect-postgres.ts +52 -0
- package/src/services/database/dialect-sqlite.ts +30 -0
- package/src/services/database/dialect.ts +108 -0
- package/src/services/database/dialects.ts +20 -0
- package/src/services/database/drivers/db-driver-catalog.ts +99 -0
- package/src/services/database/drivers/db-driver-install.ts +348 -0
- package/src/services/database/drivers/db-driver-loader.ts +103 -0
- package/src/services/database/drivers/db-driver-locks.generated.json +201 -0
- package/src/services/database/drivers/db-driver-store.ts +75 -0
- package/src/services/database/export-batch.ts +68 -0
- package/src/services/database/file-database.ts +105 -0
- package/src/services/database/grid-cell.ts +80 -0
- package/src/services/database/grid-export-text.ts +318 -0
- package/src/services/database/grid-export-tickets.ts +61 -0
- package/src/services/database/grid-export-xlsx.ts +296 -0
- package/src/services/database/grid-export.ts +13 -0
- package/src/services/database/grid-query-builder.ts +397 -0
- package/src/services/database/grid.service.ts +157 -0
- package/src/services/database/host-files.ts +52 -0
- package/src/services/database/impexp/column-map.ts +58 -0
- package/src/services/database/impexp/export-job-runner.ts +281 -0
- package/src/services/database/impexp/impexp-files.ts +118 -0
- package/src/services/database/impexp/impexp-job-store.ts +195 -0
- package/src/services/database/impexp/impexp-request.ts +279 -0
- package/src/services/database/impexp/import-job-runner.ts +181 -0
- package/src/services/database/impexp/import-table-writer.ts +319 -0
- package/src/services/database/impexp/import-uploads.ts +167 -0
- package/src/services/database/impexp/readers/csv-reader.ts +359 -0
- package/src/services/database/impexp/readers/file-rows.ts +59 -0
- package/src/services/database/impexp/readers/file-text.ts +80 -0
- package/src/services/database/impexp/readers/json-reader.ts +505 -0
- package/src/services/database/impexp/zip-output.ts +55 -0
- package/src/services/database/init-adapters.ts +4 -0
- package/src/services/database/isolation-level.ts +18 -0
- package/src/services/database/mysql-adapter.ts +62 -0
- package/src/services/database/object-scripts.ts +20 -0
- package/src/services/database/object-sql-mysql.ts +53 -0
- package/src/services/database/object-sql-postgres.ts +265 -0
- package/src/services/database/object-sql-sqlite.ts +25 -0
- package/src/services/database/postgres-adapter.ts +93 -23
- package/src/services/database/postgres-array-nulls.ts +101 -0
- package/src/services/database/postgres-connect-options.ts +92 -0
- package/src/services/database/query-script-runner.ts +203 -0
- package/src/services/database/readonly-check.ts +39 -15
- package/src/services/database/sqlite-adapter.ts +100 -17
- package/src/services/database/ssh-agent-socket.ts +50 -0
- package/src/services/database/ssh-known-hosts.ts +113 -0
- package/src/services/database/ssh-tunnel.ts +613 -0
- package/src/services/database/structure-change-request.ts +214 -0
- package/src/services/database/structure-edit.service.ts +143 -0
- package/src/services/database/tls-identity-check.ts +81 -0
- package/src/services/db-backup/db-backup-restore.ts +14 -2
- package/src/services/db.service.ts +153 -54
- package/src/services/design/bridge/bridge-script.ts +14 -6
- package/src/services/design/bridge/html-preview-bridge.ts +23 -0
- package/src/services/design/comments/design-comments-store.ts +7 -2
- package/src/services/design/design-skill-install.service.ts +269 -0
- package/src/services/design/design-turn-snapshot.ts +5 -2
- package/src/services/design/mcp/design-mcp-endpoint.ts +15 -77
- package/src/services/design/mcp/design-mcp-tokens.ts +9 -65
- package/src/services/design/preview/design-preview-html.ts +1 -1
- package/src/services/draft.service.ts +10 -3
- package/src/services/edge-forwarder.ts +50 -3
- package/src/services/event-loop-lag.ts +37 -2
- package/src/services/extension-host-worker.ts +41 -6
- package/src/services/extension-installer.ts +13 -5
- package/src/services/extension-manifest.ts +9 -2
- package/src/services/extension-rpc-handlers.ts +39 -4
- package/src/services/extension-rpc.ts +31 -2
- package/src/services/extension.service.ts +48 -13
- package/src/services/file-lines.ts +2 -2
- package/src/services/file-list-index.service.ts +17 -1
- package/src/services/file-watcher/linux-inotify.ts +47 -6
- package/src/services/file-watcher/watch-tree.ts +42 -6
- package/src/services/file-watcher.service.ts +15 -7
- package/src/services/file.service.ts +6 -0
- package/src/services/fs-ops/fs-core-ops.ts +5 -1
- package/src/services/fs-ops/fs-git-init.service.ts +13 -1
- package/src/services/fs-ops/fs-ops-copy-move.service.ts +5 -0
- package/src/services/fs-ops/fs-ops-mutate.service.ts +6 -1
- package/src/services/fs-ops/fs-ops-trash.service.ts +17 -3
- package/src/services/git-changes/diff-sections.ts +230 -0
- package/src/services/git-changes/git-changes.service.ts +471 -0
- package/src/services/git-changes/git-events.ts +28 -0
- package/src/services/git-changes/git-operation.ts +86 -0
- package/src/services/git-changes/porcelain-v2.ts +117 -0
- package/src/services/git-commit-draft.service.ts +51 -0
- package/src/services/git-discard-journal/git-discard-journal.service.ts +412 -0
- package/src/services/git-hunks/git-hunks.service.ts +50 -11
- package/src/services/git-workflow/git-workflow.service.ts +198 -0
- package/src/services/git.service.ts +64 -8
- package/src/services/group-chat/group-chat.service.ts +31 -5
- package/src/services/group-chat/responder-router.ts +15 -3
- package/src/services/host-info/host-info.service.ts +16 -0
- package/src/services/host-info/spawn-runner.ts +25 -0
- package/src/services/jira-config.service.ts +13 -1
- package/src/services/jira-debug-session.service.ts +19 -4
- package/src/services/jira-watcher.service.ts +53 -11
- package/src/services/jsonl-transcript-parser.ts +49 -19
- package/src/services/log-level-config.ts +36 -0
- package/src/services/logger.ts +280 -0
- package/src/services/logs/browser-logs.ts +84 -0
- package/src/services/logs/github-issues.ts +76 -0
- package/src/services/logs/log-ai.ts +40 -0
- package/src/services/logs/log-columns.ts +160 -0
- package/src/services/logs/log-environment.ts +94 -0
- package/src/services/logs/log-file-index.ts +355 -0
- package/src/services/logs/log-issues.ts +390 -0
- package/src/services/logs/log-live.ts +82 -0
- package/src/services/logs/log-report-draft.ts +63 -0
- package/src/services/logs/log-store.ts +609 -0
- package/src/services/lsp/lsp-install.ts +199 -11
- package/src/services/lsp/lsp-manager.ts +31 -7
- package/src/services/lsp/lsp-release-catalog.ts +87 -0
- package/src/services/lsp/lsp-session.ts +29 -2
- package/src/services/lsp/server-registry.ts +85 -18
- package/src/services/mcp-http-endpoint.ts +127 -0
- package/src/services/mcp-oauth/mcp-oauth-flows.ts +11 -4
- package/src/services/mcp-session-tokens.ts +77 -0
- package/src/services/media-transcode/ffmpeg-capabilities.ts +33 -2
- package/src/services/media-transcode/transcode-stream.ts +7 -1
- package/src/services/memory-diagnostics.ts +86 -0
- package/src/services/mysql.service.ts +1065 -0
- package/src/services/named-tunnel/cloudflared-login-helpers.ts +4 -2
- package/src/services/named-tunnel/cloudflared-login.service.ts +15 -2
- package/src/services/named-tunnel/named-tunnel-setup-confirm.ts +7 -1
- package/src/services/named-tunnel/named-tunnel-setup.service.ts +9 -1
- package/src/services/nested-subagent-spy.ts +7 -4
- package/src/services/notification-format.ts +74 -0
- package/src/services/notification-link.ts +22 -0
- package/src/services/notification.service.ts +157 -12
- package/src/services/ntfy-notification.service.ts +134 -0
- package/src/services/picked-account-binding.ts +7 -1
- package/src/services/port-forward/forward-hop.ts +296 -0
- package/src/services/port-forward/frame-ancestors.ts +117 -0
- package/src/services/port-forward/tailscale-forward.ts +261 -0
- package/src/services/postgres.service.ts +815 -21
- package/src/services/ppmbot/cli-reference-default.ts +17 -4
- package/src/services/ppmbot/ppmbot-delegation.ts +8 -0
- package/src/services/ppmbot/ppmbot-service.ts +58 -46
- package/src/services/ppmbot/ppmbot-session.ts +14 -10
- package/src/services/ppmbot/ppmbot-streamer.ts +6 -3
- package/src/services/ppmbot/ppmbot-telegram.ts +45 -13
- package/src/services/project.service.ts +12 -1
- package/src/services/provider-usage/usage-registry.ts +12 -2
- package/src/services/proxy-agent-anthropic-bridge.ts +11 -1
- package/src/services/proxy-agent-bridge.ts +11 -1
- package/src/services/proxy-agent-turn.ts +25 -2
- package/src/services/proxy-image-bridge.ts +2 -2
- package/src/services/proxy-openai-bridge.ts +1 -1
- package/src/services/proxy-sdk-bridge.ts +1 -1
- package/src/services/proxy.service.ts +32 -9
- package/src/services/query-audit/query-audit.service.ts +10 -2
- package/src/services/read-lines.ts +16 -4
- package/src/services/redact-secrets.ts +23 -2
- package/src/services/remote-desktop/ffmpeg-install.ts +85 -0
- package/src/services/remote-desktop/mediamtx-install.service.ts +11 -2
- package/src/services/remote-desktop/mediamtx-process.ts +31 -2
- package/src/services/remote-desktop/remote-desktop-audio.ts +24 -7
- package/src/services/remote-desktop/remote-desktop-capture-input.ts +7 -4
- package/src/services/remote-desktop/remote-desktop-capture-wayland.ts +30 -10
- package/src/services/remote-desktop/remote-desktop-capture.ts +40 -6
- package/src/services/remote-desktop/remote-desktop-displays-win32.ts +92 -0
- package/src/services/remote-desktop/remote-desktop-displays.ts +8 -5
- package/src/services/remote-desktop/remote-desktop-input-uinput.ts +20 -1
- package/src/services/remote-desktop/remote-desktop-input-win32.ts +49 -9
- package/src/services/remote-desktop/remote-desktop-portal.ts +19 -3
- package/src/services/remote-desktop/remote-desktop-privacy.ts +8 -1
- package/src/services/remote-desktop/remote-desktop-requirements.ts +3 -2
- package/src/services/remote-desktop/remote-desktop-resolution.ts +6 -0
- package/src/services/remote-desktop/remote-desktop-session.ts +111 -27
- package/src/services/remote-desktop/remote-desktop-x11.ts +25 -2
- package/src/services/scheduler-core.ts +22 -10
- package/src/services/scheduler-runner.ts +28 -10
- package/src/services/sd-notify.ts +26 -2
- package/src/services/session-file-baselines/reverse-unified-diff.ts +85 -0
- package/src/services/session-file-baselines/session-file-baselines.service.ts +241 -0
- package/src/services/session-file-baselines/session-file-blame.ts +200 -0
- package/src/services/session-file-baselines/session-file-changes.service.ts +321 -0
- package/src/services/session-file-baselines/session-file-history.ts +347 -0
- package/src/services/session-file-baselines/session-review-actions.ts +560 -0
- package/src/services/session-file-baselines/session-review-blocks.ts +90 -0
- package/src/services/session-file-baselines/session-review-marks.ts +90 -0
- package/src/services/session-file-baselines/session-turn-revert.ts +374 -0
- package/src/services/session-file-baselines/shell-change-tracker.ts +489 -0
- package/src/services/session-trace/session-trace-db.ts +14 -1
- package/src/services/session-trace/session-trace-store.ts +56 -0
- package/src/services/session-trace/turn-stop-reader.ts +70 -0
- package/src/services/speech-to-text/whisper-install.service.ts +13 -1
- package/src/services/sqlite-types.ts +2 -0
- package/src/services/sqlite.service.ts +507 -13
- package/src/services/supervisor-state.ts +6 -4
- package/src/services/supervisor-stopped-page.ts +6 -6
- package/src/services/supervisor.ts +118 -44
- package/src/services/system-metrics/gpu-collector-nvidia.ts +13 -3
- package/src/services/system-metrics/kill-request-handler.ts +9 -8
- package/src/services/system-metrics/powershell-session.ts +40 -7
- package/src/services/system-metrics/process-collector-windows.ts +4 -3
- package/src/services/system-metrics/process-net-collector-darwin.ts +13 -5
- package/src/services/system-metrics/signal-request-handler.ts +9 -8
- package/src/services/system-metrics/system-metrics-platform.ts +11 -2
- package/src/services/system-metrics/system-metrics.service.ts +31 -4
- package/src/services/system-services/app-icon-service.ts +19 -1
- package/src/services/system-services/app-icons-windows.ts +105 -0
- package/src/services/system-services/apps-windows-native.ts +233 -0
- package/src/services/system-services/apps-windows.ts +156 -0
- package/src/services/system-services/launchd-collector.ts +12 -1
- package/src/services/system-services/service-backend.ts +6 -3
- package/src/services/system-services/systemd-collector.ts +9 -1
- package/src/services/system-services/windows-services-parse.ts +186 -0
- package/src/services/system-services/windows-services.ts +200 -0
- package/src/services/tab-tools-mcp/tab-open-broker.ts +135 -0
- package/src/services/tab-tools-mcp/tab-target.ts +88 -0
- package/src/services/tab-tools-mcp/tab-tools-mcp-endpoint.ts +116 -0
- package/src/services/tab-tools-mcp/tab-tools-mcp-tokens.ts +36 -0
- package/src/services/tab-tools-mcp/tab-tools-mcp-tool.ts +78 -0
- package/src/services/table-cache.service.ts +4 -2
- package/src/services/tailscale/tailscale-app-service.ts +239 -0
- package/src/services/tailscale/tailscale-cli.ts +48 -0
- package/src/services/tailscale/tailscale-login.ts +257 -0
- package/src/services/tailscale/tailscale-state.ts +198 -0
- package/src/services/telegram-bot-api.ts +80 -0
- package/src/services/telegram-bots.ts +131 -0
- package/src/services/telegram-connect.service.ts +262 -0
- package/src/services/telegram-notification.service.ts +48 -55
- package/src/services/terminal.service.ts +46 -11
- package/src/services/theme-import/fetch-url.ts +11 -2
- package/src/services/tunnel-registry-parse.ts +4 -0
- package/src/services/tunnel.service.ts +15 -0
- package/src/services/upgrade.service.ts +30 -2
- package/src/services/web-push/web-push-crypto.ts +150 -0
- package/src/services/web-push/web-push-store.ts +116 -0
- package/src/services/web-push/web-push.service.ts +240 -0
- package/src/shared/agent-transcript-protocol.ts +4 -1
- package/src/shared/chat-reply.ts +51 -0
- package/src/shared/db-changeset.ts +89 -0
- package/src/shared/db-column-kind.ts +90 -0
- package/src/shared/db-connection-config.ts +256 -0
- package/src/shared/db-connection-url.ts +252 -0
- package/src/shared/db-drivers.ts +36 -0
- package/src/shared/db-explorer-prefs.ts +123 -0
- package/src/shared/db-filter-parser.ts +534 -0
- package/src/shared/db-grid-export.ts +88 -0
- package/src/shared/db-grid.ts +234 -0
- package/src/shared/db-impexp.ts +313 -0
- package/src/shared/db-lookup-prefs.ts +37 -0
- package/src/shared/db-query-script.ts +110 -0
- package/src/shared/db-structure-change.ts +83 -0
- package/src/shared/db-structure.ts +195 -0
- package/src/shared/db-table-model.ts +500 -0
- package/src/shared/db-types.ts +31 -0
- package/src/shared/design-canvas-check-format.ts +23 -0
- package/src/shared/design-skill-suggestion.ts +20 -4
- package/src/shared/git-changes.ts +220 -0
- package/src/shared/log-fingerprint.ts +32 -0
- package/src/shared/log-levels.ts +41 -0
- package/src/shared/log-redact.ts +82 -0
- package/src/shared/logs-api.ts +145 -0
- package/src/shared/logs-model.ts +230 -0
- package/src/shared/notification-settings.ts +184 -0
- package/src/shared/ppmbot-telegram.ts +16 -0
- package/src/shared/review-blocks.ts +222 -0
- package/src/shared/session-file-changes.ts +136 -0
- package/src/shared/split-sql-statements.ts +388 -0
- package/src/shared/sql-identifiers.ts +97 -0
- package/src/shared/tab-open-protocol.ts +70 -0
- package/src/shared/tailscale-setup.ts +126 -0
- package/src/shared/terminal-size.ts +23 -0
- package/src/shared/tool-result-content.ts +5 -0
- package/src/shared/turn-stop.ts +30 -0
- package/src/shared/user-agent-label.ts +59 -0
- package/src/shared/web-push-payload.ts +41 -0
- package/src/types/api.ts +12 -3
- package/src/types/chat.ts +6 -0
- package/src/types/config.ts +25 -0
- package/src/types/database.ts +215 -7
- package/src/types/system-metrics.ts +9 -5
- package/src/types/system-services.ts +8 -3
- package/src/web/app.tsx +31 -7
- package/src/web/components/auth/login-screen.tsx +21 -10
- package/src/web/components/chat/change-file-row.tsx +1 -79
- package/src/web/components/chat/chat-history-bar.tsx +3 -2
- package/src/web/components/chat/chat-tab.tsx +183 -39
- package/src/web/components/chat/chat-toolbar-overflow-menu.tsx +7 -1
- package/src/web/components/chat/message-action-bar.tsx +3 -1
- package/src/web/components/chat/message-input.tsx +66 -8
- package/src/web/components/chat/message-list.tsx +146 -9
- package/src/web/components/chat/message-reply-reference.ts +43 -0
- package/src/web/components/chat/message-user-bubble.tsx +10 -3
- package/src/web/components/chat/reply-card.tsx +28 -0
- package/src/web/components/chat/running-agents-bar.tsx +78 -44
- package/src/web/components/chat/session-change-row.tsx +118 -0
- package/src/web/components/chat/session-changes-bar.tsx +219 -0
- package/src/web/components/chat/session-changes-context.tsx +21 -0
- package/src/web/components/chat/tab-tool-card.tsx +93 -0
- package/src/web/components/chat/tool-cards.tsx +11 -0
- package/src/web/components/chat/turn-change-pill.tsx +20 -2
- package/src/web/components/chat/turn-change-review.tsx +383 -0
- package/src/web/components/chat/turn-change-rollup.tsx +15 -4
- package/src/web/components/chat/turn-change-sheet.tsx +103 -94
- package/src/web/components/chat/turn-change-tray.tsx +90 -93
- package/src/web/components/chat/turn-stop-bar.tsx +42 -0
- package/src/web/components/chat/user-message-parse.ts +5 -2
- package/src/web/components/database/connection-color-picker.tsx +42 -46
- package/src/web/components/database/connection-form/connection-advanced-pane.tsx +82 -0
- package/src/web/components/database/connection-form/connection-form-state.ts +719 -0
- package/src/web/components/database/connection-form/connection-form-tab.tsx +160 -0
- package/src/web/components/database/connection-form/connection-general-pane.tsx +231 -0
- package/src/web/components/database/connection-form/connection-ssh-pane.tsx +136 -0
- package/src/web/components/database/connection-form/connection-ssl-pane.tsx +68 -0
- package/src/web/components/database/connection-form/connection-test-result.tsx +90 -0
- package/src/web/components/database/connection-form/database-picker.tsx +136 -0
- package/src/web/components/database/connection-form/engine-tiles.tsx +72 -0
- package/src/web/components/database/connection-form/form-controls.tsx +219 -0
- package/src/web/components/database/connection-form/use-connection-form.ts +369 -0
- package/src/web/components/database/connection-import-export.tsx +6 -5
- package/src/web/components/database/connections-section/connection-menus.ts +100 -0
- package/src/web/components/database/connections-section/connection-tree-model.ts +113 -0
- package/src/web/components/database/connections-section/connections-section.tsx +432 -0
- package/src/web/components/database/connections-section/delete-connection-dialog.tsx +75 -0
- package/src/web/components/database/connections-section/folder-name-input.tsx +41 -0
- package/src/web/components/database/database-sidebar.tsx +55 -78
- package/src/web/components/database/db-login/db-login-dialog.tsx +255 -0
- package/src/web/components/database/db-login/db-login-store.ts +63 -0
- package/src/web/components/database/db-rows-status.tsx +32 -0
- package/src/web/components/database/db-sidebar-reveal.ts +66 -0
- package/src/web/components/database/db-tab-parts.tsx +117 -0
- package/src/web/components/database/driver-missing-notice.tsx +72 -0
- package/src/web/components/database/explorer/db-explorer-store.ts +658 -0
- package/src/web/components/database/explorer/explorer-menu.tsx +193 -0
- package/src/web/components/database/explorer/explorer-model.ts +341 -0
- package/src/web/components/database/explorer/open-db-tabs.ts +160 -0
- package/src/web/components/database/explorer/open-new-query.ts +22 -0
- package/src/web/components/database/explorer/open-new-table.ts +37 -0
- package/src/web/components/database/explorer/sql-templates.ts +110 -0
- package/src/web/components/database/explorer/tree-parts.tsx +109 -0
- package/src/web/components/database/explorer/use-db-explorer-sync.ts +25 -0
- package/src/web/components/database/explorer/use-row-menu.ts +37 -0
- package/src/web/components/database/explorer/use-tree-keys.ts +92 -0
- package/src/web/components/database/export-button.tsx +96 -113
- package/src/web/components/database/extract-query-table.ts +4 -3
- package/src/web/components/database/focused-database-prompt.tsx +85 -0
- package/src/web/components/database/glide-context-menu.tsx +52 -62
- package/src/web/components/database/glide-data-grid.tsx +1401 -157
- package/src/web/components/database/glide-grid-theme.ts +49 -2
- package/src/web/components/database/glide-grid-types.ts +222 -48
- package/src/web/components/database/glide-header-menu.tsx +52 -103
- package/src/web/components/database/glide-save-bar.tsx +4 -3
- package/src/web/components/database/grid/cell-context-menu.tsx +151 -0
- package/src/web/components/database/grid/cell-data-formats.ts +298 -0
- package/src/web/components/database/grid/cell-data-panel.tsx +662 -0
- package/src/web/components/database/grid/cell-display.ts +52 -0
- package/src/web/components/database/grid/cell-editor.tsx +55 -0
- package/src/web/components/database/grid/cell-menu.ts +210 -0
- package/src/web/components/database/grid/change-marks.ts +51 -0
- package/src/web/components/database/grid/column-filter-cell.ts +34 -0
- package/src/web/components/database/grid/column-menu.ts +51 -0
- package/src/web/components/database/grid/columns-panel.tsx +241 -0
- package/src/web/components/database/grid/columns-sheet.tsx +172 -0
- package/src/web/components/database/grid/copy-as.ts +170 -0
- package/src/web/components/database/grid/dictionary-lookup-dialog.tsx +169 -0
- package/src/web/components/database/grid/fetch-all-dialog.tsx +51 -0
- package/src/web/components/database/grid/filter-chips.tsx +107 -0
- package/src/web/components/database/grid/filter-dialog-frame.tsx +95 -0
- package/src/web/components/database/grid/filter-dialog-host.tsx +43 -0
- package/src/web/components/database/grid/filter-funnel-menu.ts +131 -0
- package/src/web/components/database/grid/filter-multiple-values-dialog.tsx +61 -0
- package/src/web/components/database/grid/filter-row.tsx +216 -0
- package/src/web/components/database/grid/filter-sheet.tsx +227 -0
- package/src/web/components/database/grid/filters-panel.tsx +163 -0
- package/src/web/components/database/grid/fk-cell-button.ts +67 -0
- package/src/web/components/database/grid/fk-cell-editor.tsx +36 -0
- package/src/web/components/database/grid/form-view-model.ts +263 -0
- package/src/web/components/database/grid/form-view.tsx +505 -0
- package/src/web/components/database/grid/generate-sql-dialog.tsx +135 -0
- package/src/web/components/database/grid/generate-sql.ts +101 -0
- package/src/web/components/database/grid/grid-changeset.ts +262 -0
- package/src/web/components/database/grid/grid-filters.ts +172 -0
- package/src/web/components/database/grid/grid-header-overlay.tsx +140 -0
- package/src/web/components/database/grid/grid-save-dialog.tsx +251 -0
- package/src/web/components/database/grid/grid-save-host.tsx +19 -0
- package/src/web/components/database/grid/grid-save-model.ts +64 -0
- package/src/web/components/database/grid/grid-save-store.ts +65 -0
- package/src/web/components/database/grid/grid-status-bar.tsx +54 -0
- package/src/web/components/database/grid/header-bands.ts +232 -0
- package/src/web/components/database/grid/json-document.ts +139 -0
- package/src/web/components/database/grid/json-tree.tsx +74 -0
- package/src/web/components/database/grid/load-more.ts +22 -0
- package/src/web/components/database/grid/master-detail-split.tsx +233 -0
- package/src/web/components/database/grid/pick-table.tsx +109 -0
- package/src/web/components/database/grid/reference-filter.ts +48 -0
- package/src/web/components/database/grid/references-panel.tsx +82 -0
- package/src/web/components/database/grid/references.ts +104 -0
- package/src/web/components/database/grid/refresh-menu.tsx +133 -0
- package/src/web/components/database/grid/row-form-sheet.tsx +234 -0
- package/src/web/components/database/grid/selection-commands.ts +124 -0
- package/src/web/components/database/grid/selection-stats.ts +131 -0
- package/src/web/components/database/grid/set-filter-dialog.tsx +93 -0
- package/src/web/components/database/grid/table-keys.ts +130 -0
- package/src/web/components/database/grid/table-toolbar.tsx +326 -0
- package/src/web/components/database/grid/table-view-state.ts +63 -0
- package/src/web/components/database/grid/text-value-dialog.tsx +80 -0
- package/src/web/components/database/grid/use-cell-long-press.ts +146 -0
- package/src/web/components/database/grid/use-changeset.ts +48 -0
- package/src/web/components/database/grid/use-filter-pickers.ts +76 -0
- package/src/web/components/database/grid/use-grid-copy.ts +99 -0
- package/src/web/components/database/grid/use-opener-focus.ts +17 -0
- package/src/web/components/database/grid/use-pick-search.ts +38 -0
- package/src/web/components/database/grid/use-table-filters.ts +84 -0
- package/src/web/components/database/grid/value-filter-text.ts +96 -0
- package/src/web/components/database/grid/value-lookup-dialog.tsx +91 -0
- package/src/web/components/database/impexp/impexp-columns-dialog.tsx +171 -0
- package/src/web/components/database/impexp/impexp-config.tsx +131 -0
- package/src/web/components/database/impexp/impexp-database-fields.tsx +107 -0
- package/src/web/components/database/impexp/impexp-file-input.tsx +118 -0
- package/src/web/components/database/impexp/impexp-format-options.tsx +127 -0
- package/src/web/components/database/impexp/impexp-map-table.tsx +187 -0
- package/src/web/components/database/impexp/impexp-parts.tsx +77 -0
- package/src/web/components/database/impexp/impexp-side-panes.tsx +191 -0
- package/src/web/components/database/impexp/impexp-state.ts +590 -0
- package/src/web/components/database/impexp/impexp-tab.tsx +222 -0
- package/src/web/components/database/impexp/impexp-tables-select.tsx +169 -0
- package/src/web/components/database/impexp/impexp-upload.ts +52 -0
- package/src/web/components/database/impexp/open-impexp-tab.ts +58 -0
- package/src/web/components/database/impexp/use-impexp-database.ts +75 -0
- package/src/web/components/database/impexp/use-impexp-job.ts +114 -0
- package/src/web/components/database/object-tree/object-menus.ts +141 -0
- package/src/web/components/database/object-tree/object-tree-model.ts +132 -0
- package/src/web/components/database/object-tree/objects-section.tsx +503 -0
- package/src/web/components/database/open-connection-form.ts +21 -0
- package/src/web/components/database/query/discard-result-edits-dialog.tsx +43 -0
- package/src/web/components/database/query/format-sql.ts +67 -0
- package/src/web/components/database/query/history-panel.tsx +177 -0
- package/src/web/components/database/query/messages-panel.tsx +98 -0
- package/src/web/components/database/query/query-file.ts +56 -0
- package/src/web/components/database/query/query-history.ts +56 -0
- package/src/web/components/database/query/query-run-state.ts +282 -0
- package/src/web/components/database/query/query-tab.tsx +397 -0
- package/src/web/components/database/query/query-target-picker.tsx +95 -0
- package/src/web/components/database/query/result-tabs.tsx +104 -0
- package/src/web/components/database/query/result-view.tsx +111 -0
- package/src/web/components/database/query/use-query-file-save.tsx +117 -0
- package/src/web/components/database/query/use-query-runner.ts +202 -0
- package/src/web/components/database/query/use-sql-schema-info.ts +40 -0
- package/src/web/components/database/reformat-cursor.ts +40 -0
- package/src/web/components/database/sidebar-split.tsx +89 -0
- package/src/web/components/database/sql-completion-provider.ts +149 -49
- package/src/web/components/database/sql-object/sql-object-model.ts +39 -0
- package/src/web/components/database/sql-object/sql-object-tab.tsx +138 -0
- package/src/web/components/database/sql-query-editor.tsx +203 -36
- package/src/web/components/database/sql-run.ts +40 -0
- package/src/web/components/database/structure/structure-model.ts +90 -0
- package/src/web/components/database/structure/structure-tab.tsx +326 -0
- package/src/web/components/database/table/table-tab.tsx +694 -0
- package/src/web/components/database/table-editor/column-dialog.tsx +129 -0
- package/src/web/components/database/table-editor/editor-dialog.tsx +122 -0
- package/src/web/components/database/table-editor/foreign-key-dialog.tsx +188 -0
- package/src/web/components/database/table-editor/key-dialog.tsx +197 -0
- package/src/web/components/database/table-editor/rename-object-dialog.tsx +45 -0
- package/src/web/components/database/table-editor/structure-save-dialog.tsx +167 -0
- package/src/web/components/database/table-editor/structure-save-host.tsx +24 -0
- package/src/web/components/database/table-editor/structure-save-model.ts +91 -0
- package/src/web/components/database/table-editor/structure-save-store.ts +52 -0
- package/src/web/components/database/table-editor/table-editor-commands.ts +27 -0
- package/src/web/components/database/table-editor/table-editor-dialogs.tsx +32 -0
- package/src/web/components/database/table-editor/table-editor-model.ts +252 -0
- package/src/web/components/database/table-editor/table-editor.tsx +485 -0
- package/src/web/components/database/table-editor/use-table-editor-tab.ts +145 -0
- package/src/web/components/database/use-connections.ts +39 -85
- package/src/web/components/database/use-database.ts +419 -214
- package/src/web/components/database/use-db-read.ts +88 -0
- package/src/web/components/database/use-db-tab.ts +68 -0
- package/src/web/components/database/use-glide-cell-content.ts +81 -88
- package/src/web/components/database/use-glide-columns.ts +16 -32
- package/src/web/components/database/use-glide-grid-actions.ts +44 -99
- package/src/web/components/database/use-glide-selection.ts +6 -18
- package/src/web/components/design/design-skill-suggestion.tsx +46 -11
- package/src/web/components/editor/code-editor.tsx +81 -47
- package/src/web/components/editor/conflict-editor.tsx +4 -1
- package/src/web/components/editor/diff-viewer.tsx +40 -4
- package/src/web/components/editor/editor-fix-with-ai.tsx +111 -0
- package/src/web/components/editor/editor-selection-context.tsx +70 -0
- package/src/web/components/editor/html-preview.tsx +48 -9
- package/src/web/components/editor/lsp-status.tsx +18 -4
- package/src/web/components/editor/video-player/video-player-controls.tsx +19 -3
- package/src/web/components/editor/video-player/video-player.tsx +67 -14
- package/src/web/components/extensions/extension-webview.tsx +44 -9
- package/src/web/components/extensions/webview-external-link.ts +29 -0
- package/src/web/components/extensions/webview-file-icons.ts +87 -0
- package/src/web/components/extensions/webview-theme.ts +12 -0
- package/src/web/components/floating-window/window-content-registry.ts +2 -0
- package/src/web/components/floating-window/window-geometry.ts +3 -3
- package/src/web/components/floating-window/window-store-types.ts +1 -1
- package/src/web/components/git/git-branch-row.tsx +138 -0
- package/src/web/components/git/git-change-parts.tsx +142 -0
- package/src/web/components/git/git-change-row.tsx +218 -0
- package/src/web/components/git/git-change-tree.tsx +190 -0
- package/src/web/components/git/git-commit-composer.tsx +126 -0
- package/src/web/components/git/git-confirm.tsx +84 -0
- package/src/web/components/git/git-operation-banner.tsx +48 -0
- package/src/web/components/git/git-stash-section.tsx +128 -0
- package/src/web/components/git/git-status-panel.tsx +588 -1043
- package/src/web/components/git/git-worktree-panel.tsx +7 -7
- package/src/web/components/git-review/git-review-block.tsx +356 -0
- package/src/web/components/git-review/git-review-desktop.tsx +355 -0
- package/src/web/components/git-review/git-review-parts.tsx +238 -0
- package/src/web/components/git-review/git-review-phone.tsx +230 -0
- package/src/web/components/git-review/git-review-tab.tsx +123 -0
- package/src/web/components/layout/cloud-share-named-tunnel-row.tsx +2 -2
- package/src/web/components/layout/command-palette-db-commands.ts +56 -0
- package/src/web/components/layout/command-palette.tsx +41 -16
- package/src/web/components/layout/draggable-tab.tsx +7 -0
- package/src/web/components/layout/mobile-drawer.tsx +27 -14
- package/src/web/components/layout/mobile-nav.tsx +4 -3
- package/src/web/components/layout/mobile-tab-switcher-sheet.tsx +8 -1
- package/src/web/components/layout/nav-section-rail.tsx +22 -6
- package/src/web/components/layout/sidebar.tsx +2 -2
- package/src/web/components/layout/status-bar.tsx +3 -0
- package/src/web/components/layout/tab-bar.tsx +5 -8
- package/src/web/components/layout/tab-close-confirm-dialog.tsx +62 -0
- package/src/web/components/layout/tab-content.tsx +47 -7
- package/src/web/components/layout/tab-pool.tsx +10 -2
- package/src/web/components/layout/upgrade-button.tsx +3 -2
- package/src/web/components/logs/logs-actions.ts +84 -0
- package/src/web/components/logs/logs-app.tsx +265 -0
- package/src/web/components/logs/logs-client.ts +31 -0
- package/src/web/components/logs/logs-issues-pane.tsx +214 -0
- package/src/web/components/logs/logs-pane.tsx +683 -0
- package/src/web/components/logs/logs-phone-pane.tsx +365 -0
- package/src/web/components/logs/logs-report-pane.tsx +440 -0
- package/src/web/components/logs/logs-report-store.ts +153 -0
- package/src/web/components/logs/logs-state.ts +93 -0
- package/src/web/components/logs/logs-tab.tsx +4 -0
- package/src/web/components/logs/logs-ui.tsx +104 -0
- package/src/web/components/logs/logs-window-content.tsx +13 -0
- package/src/web/components/logs/logs.css +440 -0
- package/src/web/components/logs/open-logs.ts +65 -0
- package/src/web/components/logs/use-follow-list.ts +90 -0
- package/src/web/components/logs/use-logs-badge.ts +57 -0
- package/src/web/components/logs/use-logs-feed.ts +251 -0
- package/src/web/components/logs/use-logs-issues.ts +61 -0
- package/src/web/components/onboarding/onboarding-quick-orientation.tsx +4 -4
- package/src/web/components/os-explorer/views/inline-name-input.tsx +13 -4
- package/src/web/components/remote-desktop/ffmpeg-install-button.tsx +59 -0
- package/src/web/components/remote-desktop/remote-desktop-readiness-gate.tsx +2 -0
- package/src/web/components/remote-desktop/use-remote-desktop-readiness.ts +1 -0
- package/src/web/components/session-review/review-code.tsx +507 -0
- package/src/web/components/session-review/review-desktop.tsx +256 -0
- package/src/web/components/session-review/review-parts.tsx +267 -0
- package/src/web/components/session-review/review-phone.tsx +206 -0
- package/src/web/components/session-review/review-tokens.tsx +70 -0
- package/src/web/components/session-review/review-view.tsx +158 -0
- package/src/web/components/session-review/session-review-tab.tsx +71 -0
- package/src/web/components/settings/ai-settings-section.tsx +20 -0
- package/src/web/components/settings/database-drivers-section.tsx +251 -0
- package/src/web/components/settings/design-settings-section.tsx +52 -3
- package/src/web/components/settings/language-servers-section.tsx +8 -2
- package/src/web/components/settings/notifications-settings-section.tsx +463 -24
- package/src/web/components/settings/ntfy-server-form.tsx +192 -0
- package/src/web/components/settings/open-settings.ts +11 -9
- package/src/web/components/settings/ppmbot-settings-section.tsx +6 -214
- package/src/web/components/settings/ppmbot-telegram-section.tsx +139 -0
- package/src/web/components/settings/remote-access/public-link-pane.tsx +282 -0
- package/src/web/components/settings/remote-access/remote-access-settings-section.tsx +49 -0
- package/src/web/components/settings/remote-access/remote-access-tab-store.ts +24 -0
- package/src/web/components/settings/run-in-terminal-button.tsx +32 -0
- package/src/web/components/settings/settings-body.tsx +14 -2
- package/src/web/components/settings/settings-categories.ts +14 -1
- package/src/web/components/settings/settings-rows.tsx +61 -0
- package/src/web/components/settings/settings-section-content.tsx +2 -0
- package/src/web/components/settings/tailscale/tailscale-settings-section.tsx +410 -0
- package/src/web/components/settings/tailscale/tailscale-setup-steps.tsx +248 -0
- package/src/web/components/settings/tailscale/tailscale-sign-in-dialog.tsx +98 -0
- package/src/web/components/settings/tailscale/tailscale-ui.tsx +81 -0
- package/src/web/components/settings/telegram-bot-token-field.tsx +129 -0
- package/src/web/components/settings/telegram-connect.tsx +147 -0
- package/src/web/components/settings/voice-settings-section.tsx +28 -3
- package/src/web/components/sqlite/sqlite-viewer.tsx +92 -134
- package/src/web/components/system/apps/app-rows.ts +19 -3
- package/src/web/components/system/apps/apps-panel.tsx +3 -1
- package/src/web/components/system/services/service-action-confirm.tsx +20 -1
- package/src/web/components/system/services/service-details-sheet.tsx +14 -4
- package/src/web/components/system/services/service-details-text.ts +5 -0
- package/src/web/components/system/services/services-panel.tsx +7 -5
- package/src/web/components/terminal/terminal-selection-chat.tsx +178 -0
- package/src/web/components/terminal/terminal-tab.tsx +10 -6
- package/src/web/components/tunnels/named-tunnel/named-tunnel-copy.ts +1 -20
- package/src/web/components/tunnels/named-tunnel/named-tunnel-setup-content.tsx +1 -1
- package/src/web/components/tunnels/named-tunnel/named-tunnel-setup-popup.tsx +2 -2
- package/src/web/components/tunnels/named-tunnel/use-named-tunnel-setup.ts +1 -1
- package/src/web/components/tunnels/open-port-forwarding.ts +17 -0
- package/src/web/components/tunnels/port-forwarding-panel.tsx +370 -0
- package/src/web/components/ui/adaptive-context-menu.tsx +32 -3
- package/src/web/components/ui/sidebar-header.tsx +1 -1
- package/src/web/components/web-preview/open-web-preview-tab.ts +14 -0
- package/src/web/components/web-preview/web-preview-tab.tsx +92 -0
- package/src/web/hooks/use-at-most-wide.ts +20 -0
- package/src/web/hooks/use-chat.ts +214 -11
- package/src/web/hooks/use-commit-draft.ts +59 -0
- package/src/web/hooks/use-db-driver-installed.ts +16 -0
- package/src/web/hooks/use-draft.ts +25 -15
- package/src/web/hooks/use-extension-ws.ts +15 -1
- package/src/web/hooks/use-git-changes.ts +114 -0
- package/src/web/hooks/use-git-review.ts +617 -0
- package/src/web/hooks/use-global-events.ts +5 -0
- package/src/web/hooks/use-lsp.ts +4 -2
- package/src/web/hooks/use-notification-clicks.ts +43 -0
- package/src/web/hooks/use-session-file-changes.ts +100 -0
- package/src/web/hooks/use-session-review.ts +554 -0
- package/src/web/hooks/use-session-turns.ts +65 -0
- package/src/web/hooks/use-terminal.ts +19 -5
- package/src/web/hooks/use-turn-review.ts +204 -0
- package/src/web/hooks/use-url-sync.ts +15 -12
- package/src/web/lib/aggregate-turn-file-changes.ts +127 -35
- package/src/web/lib/ai-tab-placement.ts +102 -0
- package/src/web/lib/api-client.ts +113 -47
- package/src/web/lib/api-settings.ts +1 -0
- package/src/web/lib/api-tailscale.ts +12 -0
- package/src/web/lib/api-tunnels.ts +13 -1
- package/src/web/lib/code-fence.ts +7 -0
- package/src/web/lib/db-drivers.ts +41 -0
- package/src/web/lib/db-table-edit.ts +94 -0
- package/src/web/lib/db-tabs.ts +273 -0
- package/src/web/lib/design/api-design-settings.ts +11 -0
- package/src/web/lib/file-icon-name.ts +6 -0
- package/src/web/lib/file-icons.generated.ts +10 -1
- package/src/web/lib/file-icons.tsx +34 -6
- package/src/web/lib/git-changes-view.ts +292 -0
- package/src/web/lib/git-file-tree.ts +8 -8
- package/src/web/lib/git-review-model.ts +496 -0
- package/src/web/lib/html-preview-loads.ts +87 -0
- package/src/web/lib/icons.generated.tsx +41 -1
- package/src/web/lib/logs/logs-report.ts +128 -0
- package/src/web/lib/logs/logs-view-model.ts +201 -0
- package/src/web/lib/lsp/lsp-client.ts +1 -1
- package/src/web/lib/lsp/lsp-documents.ts +8 -0
- package/src/web/lib/lsp/register-providers.ts +5 -1
- package/src/web/lib/monaco-lightbulb-gutter.ts +32 -0
- package/src/web/lib/open-ai-tab.ts +160 -0
- package/src/web/lib/open-git-review.ts +24 -0
- package/src/web/lib/read-ndjson.ts +35 -0
- package/src/web/lib/running-agent-rows.ts +14 -16
- package/src/web/lib/send-to-chat.ts +55 -9
- package/src/web/lib/session-file-changes-client.ts +148 -0
- package/src/web/lib/session-file-changes.ts +69 -0
- package/src/web/lib/session-review-model.ts +379 -0
- package/src/web/lib/session-turns.ts +123 -0
- package/src/web/lib/sidebar-tabs/tab-registry.ts +1 -1
- package/src/web/lib/tab-tool-call.ts +69 -0
- package/src/web/lib/tab-type-icons.ts +12 -3
- package/src/web/lib/turn-review.ts +102 -0
- package/src/web/lib/web-preview-url.ts +31 -0
- package/src/web/lib/web-push-client.ts +91 -0
- package/src/web/lib/web-push-support.ts +88 -0
- package/src/web/stores/chat-jump-store.ts +31 -0
- package/src/web/stores/commit-draft-store.ts +119 -0
- package/src/web/stores/db-rows-status-store.ts +31 -0
- package/src/web/stores/git-status-store.ts +21 -2
- package/src/web/stores/panel-store.ts +34 -0
- package/src/web/stores/panel-utils.ts +69 -8
- package/src/web/stores/session-turns-store.ts +40 -0
- package/src/web/stores/settings-store.ts +72 -42
- package/src/web/stores/tab-close-confirm-store.ts +59 -0
- package/src/web/stores/tab-store.ts +10 -2
- package/src/web/stores/unsaved-grid-rows-store.ts +42 -0
- package/src/web/stores/window-panel-persistence.ts +23 -10
- package/src/web/styles/file-icons.generated.css +6 -0
- package/src/web/styles/globals.css +54 -0
- package/src/web/sw-notification-click.ts +51 -0
- package/src/web/sw.ts +35 -0
- package/src/web/theme/adapters/shiki-adapter.ts +55 -1
- package/templates/skill/SKILL.md.tmpl +4 -3
- package/templates/skill/common-tasks.md +8 -4
- package/vite.config.ts +3 -0
- package/dist/web/assets/_basePickBy-BEVUuplK.js +0 -1
- package/dist/web/assets/_basePickBy-BEVUuplK.js.br +0 -0
- package/dist/web/assets/_basePickBy-BEVUuplK.js.gz +0 -0
- package/dist/web/assets/_baseUniq-qb_BgEfK.js +0 -1
- package/dist/web/assets/_baseUniq-qb_BgEfK.js.br +0 -0
- package/dist/web/assets/_baseUniq-qb_BgEfK.js.gz +0 -0
- package/dist/web/assets/accounts-settings-section-CGe5ikvs.js +0 -1
- package/dist/web/assets/accounts-settings-section-CGe5ikvs.js.br +0 -0
- package/dist/web/assets/accounts-settings-section-CGe5ikvs.js.gz +0 -0
- package/dist/web/assets/agent-session-sheet-store-_OeezCXB.js +0 -1
- package/dist/web/assets/agent-session-sheet-vBhfHYrC.js +0 -2
- package/dist/web/assets/agent-session-sheet-vBhfHYrC.js.br +0 -0
- package/dist/web/assets/agent-session-sheet-vBhfHYrC.js.gz +0 -0
- package/dist/web/assets/agent-session-window-content-BxIxDN5i.js +0 -1
- package/dist/web/assets/agent-session-window-content-BxIxDN5i.js.br +0 -0
- package/dist/web/assets/agent-session-window-content-BxIxDN5i.js.gz +0 -0
- package/dist/web/assets/ai-resource-editor-Y8clBPRv.js +0 -1
- package/dist/web/assets/ai-resource-editor-Y8clBPRv.js.br +0 -0
- package/dist/web/assets/ai-resource-editor-Y8clBPRv.js.gz +0 -0
- package/dist/web/assets/ai-settings-section-BB8vscte.js +0 -1
- package/dist/web/assets/ai-settings-section-Ck8uN_Bw.js +0 -1
- package/dist/web/assets/ai-settings-section-Ck8uN_Bw.js.br +0 -0
- package/dist/web/assets/ai-settings-section-Ck8uN_Bw.js.gz +0 -0
- package/dist/web/assets/android-tab-BIOUVVoW.js +0 -2
- package/dist/web/assets/android-tab-BIOUVVoW.js.br +0 -0
- package/dist/web/assets/android-tab-BIOUVVoW.js.gz +0 -0
- package/dist/web/assets/angular-html-Djm1KT_p.js +0 -1
- package/dist/web/assets/angular-html-Djm1KT_p.js.br +0 -0
- package/dist/web/assets/angular-html-Djm1KT_p.js.gz +0 -0
- package/dist/web/assets/angular-ts-D8ZYU4i0.js +0 -1
- package/dist/web/assets/angular-ts-D8ZYU4i0.js.br +0 -0
- package/dist/web/assets/angular-ts-D8ZYU4i0.js.gz +0 -0
- package/dist/web/assets/api-client-CbrcysYC.js +0 -1
- package/dist/web/assets/api-client-F5Zi1sR0.js +0 -1
- package/dist/web/assets/api-client-F5Zi1sR0.js.br +0 -0
- package/dist/web/assets/api-client-F5Zi1sR0.js.gz +0 -0
- package/dist/web/assets/api-settings-Cc_CpfmC.js +0 -1
- package/dist/web/assets/api-settings-Cc_CpfmC.js.br +0 -0
- package/dist/web/assets/api-settings-Cc_CpfmC.js.gz +0 -0
- package/dist/web/assets/api-settings-D1axn9vm.js +0 -1
- package/dist/web/assets/api-themes-BtMBSjuM.js +0 -1
- package/dist/web/assets/apl-Bxk9ez2r.js +0 -1
- package/dist/web/assets/apl-Bxk9ez2r.js.br +0 -0
- package/dist/web/assets/apl-Bxk9ez2r.js.gz +0 -0
- package/dist/web/assets/appearance-settings-section-Bv5_n9lH.js +0 -1
- package/dist/web/assets/appearance-settings-section-Bv5_n9lH.js.br +0 -0
- package/dist/web/assets/appearance-settings-section-Bv5_n9lH.js.gz +0 -0
- package/dist/web/assets/apps-panel-DXHF0QEv.js +0 -1
- package/dist/web/assets/apps-panel-DXHF0QEv.js.br +0 -0
- package/dist/web/assets/apps-panel-DXHF0QEv.js.gz +0 -0
- package/dist/web/assets/arc-CrBOnruw.js +0 -1
- package/dist/web/assets/arc-CrBOnruw.js.br +0 -0
- package/dist/web/assets/arc-CrBOnruw.js.gz +0 -0
- package/dist/web/assets/architecture-PBZL5I3N-bv6Z6ZTl.js +0 -1
- package/dist/web/assets/architectureDiagram-2XIMDMQ5-sFj2GCA0.js +0 -36
- package/dist/web/assets/architectureDiagram-2XIMDMQ5-sFj2GCA0.js.br +0 -0
- package/dist/web/assets/architectureDiagram-2XIMDMQ5-sFj2GCA0.js.gz +0 -0
- package/dist/web/assets/astro-CCE8GTuJ.js +0 -1
- package/dist/web/assets/astro-CCE8GTuJ.js.br +0 -0
- package/dist/web/assets/astro-CCE8GTuJ.js.gz +0 -0
- package/dist/web/assets/audio-preview-DpjOKEm4.js +0 -1
- package/dist/web/assets/audio-preview-DpjOKEm4.js.br +0 -0
- package/dist/web/assets/audio-preview-DpjOKEm4.js.gz +0 -0
- package/dist/web/assets/blade-pJLFJ0pe.js +0 -1
- package/dist/web/assets/blade-pJLFJ0pe.js.br +0 -0
- package/dist/web/assets/blade-pJLFJ0pe.js.gz +0 -0
- package/dist/web/assets/blockDiagram-WCTKOSBZ-DFag_MHk.js +0 -132
- package/dist/web/assets/blockDiagram-WCTKOSBZ-DFag_MHk.js.br +0 -0
- package/dist/web/assets/blockDiagram-WCTKOSBZ-DFag_MHk.js.gz +0 -0
- package/dist/web/assets/branch-review-tab-4dgMNadQ.js +0 -1
- package/dist/web/assets/branch-review-tab-4dgMNadQ.js.br +0 -0
- package/dist/web/assets/branch-review-tab-4dgMNadQ.js.gz +0 -0
- package/dist/web/assets/bsl-DJPQP6gj.js +0 -1
- package/dist/web/assets/bsl-DJPQP6gj.js.br +0 -0
- package/dist/web/assets/bsl-DJPQP6gj.js.gz +0 -0
- package/dist/web/assets/button-DeAyLH9U.js +0 -1
- package/dist/web/assets/button-DeAyLH9U.js.br +0 -0
- package/dist/web/assets/button-DeAyLH9U.js.gz +0 -0
- package/dist/web/assets/c4Diagram-IC4MRINW-Bs9OCCbR.js +0 -10
- package/dist/web/assets/c4Diagram-IC4MRINW-Bs9OCCbR.js.br +0 -0
- package/dist/web/assets/c4Diagram-IC4MRINW-Bs9OCCbR.js.gz +0 -0
- package/dist/web/assets/cairo-6pdze4qN.js +0 -1
- package/dist/web/assets/cairo-6pdze4qN.js.br +0 -0
- package/dist/web/assets/cairo-6pdze4qN.js.gz +0 -0
- package/dist/web/assets/channel-C97aABFT.js +0 -1
- package/dist/web/assets/chat-preparation-cache-BUCR58h4.js +0 -1
- package/dist/web/assets/chat-preparation-cache-BUCR58h4.js.br +0 -0
- package/dist/web/assets/chat-preparation-cache-BUCR58h4.js.gz +0 -0
- package/dist/web/assets/chat-tab-Bbe_77oJ.js +0 -15
- package/dist/web/assets/chat-tab-Bbe_77oJ.js.br +0 -0
- package/dist/web/assets/chat-tab-Bbe_77oJ.js.gz +0 -0
- package/dist/web/assets/chat-tab-D3i5O3dO.js +0 -1
- package/dist/web/assets/chat-tab-D3i5O3dO.js.br +0 -0
- package/dist/web/assets/chat-tab-D3i5O3dO.js.gz +0 -0
- package/dist/web/assets/chunk-4BX2VUAB-Dd8hGWzs.js +0 -1
- package/dist/web/assets/chunk-55IACEB6-BUOmRdCb.js +0 -1
- package/dist/web/assets/chunk-7E7YKBS2-D5i9aZ57.js +0 -1
- package/dist/web/assets/chunk-7R4GIKGN-DBr9s6EE.js +0 -80
- package/dist/web/assets/chunk-7R4GIKGN-DBr9s6EE.js.br +0 -0
- package/dist/web/assets/chunk-7R4GIKGN-DBr9s6EE.js.gz +0 -0
- package/dist/web/assets/chunk-C72U2L5F-CEUvONYx.js +0 -1
- package/dist/web/assets/chunk-EGIJ26TM-BG89sF-p.js +0 -1
- package/dist/web/assets/chunk-FMBD7UC4-BDtpoO-Q.js +0 -15
- package/dist/web/assets/chunk-GEFDOKGD-lFQnV7FQ.js +0 -2
- package/dist/web/assets/chunk-GEFDOKGD-lFQnV7FQ.js.br +0 -0
- package/dist/web/assets/chunk-GEFDOKGD-lFQnV7FQ.js.gz +0 -0
- package/dist/web/assets/chunk-GLR3WWYH-CBQYONd8.js +0 -2
- package/dist/web/assets/chunk-GLR3WWYH-CBQYONd8.js.br +0 -0
- package/dist/web/assets/chunk-GLR3WWYH-CBQYONd8.js.gz +0 -0
- package/dist/web/assets/chunk-HHEYEP7N-Cz5o2sXg.js +0 -1
- package/dist/web/assets/chunk-JSJVCQXG-FBF1o1AC.js +0 -1
- package/dist/web/assets/chunk-JSJVCQXG-FBF1o1AC.js.br +0 -0
- package/dist/web/assets/chunk-JSJVCQXG-FBF1o1AC.js.gz +0 -0
- package/dist/web/assets/chunk-KX2RTZJC-Dfwu46M7.js +0 -1
- package/dist/web/assets/chunk-KYZI473N-DQTRCz9g.js +0 -53
- package/dist/web/assets/chunk-KYZI473N-DQTRCz9g.js.br +0 -0
- package/dist/web/assets/chunk-KYZI473N-DQTRCz9g.js.gz +0 -0
- package/dist/web/assets/chunk-L3YUKLVL-DytBx0nd.js +0 -1
- package/dist/web/assets/chunk-MX3YWQON-Da7GPDei.js +0 -1
- package/dist/web/assets/chunk-MX3YWQON-Da7GPDei.js.br +0 -0
- package/dist/web/assets/chunk-MX3YWQON-Da7GPDei.js.gz +0 -0
- package/dist/web/assets/chunk-NQ4KR5QH-D9-qngPN.js +0 -220
- package/dist/web/assets/chunk-NQ4KR5QH-D9-qngPN.js.br +0 -0
- package/dist/web/assets/chunk-NQ4KR5QH-D9-qngPN.js.gz +0 -0
- package/dist/web/assets/chunk-O4XLMI2P-BFAbMP-p.js +0 -7
- package/dist/web/assets/chunk-O4XLMI2P-BFAbMP-p.js.br +0 -0
- package/dist/web/assets/chunk-O4XLMI2P-BFAbMP-p.js.gz +0 -0
- package/dist/web/assets/chunk-OZEHJAEY-DM7Vtv5V.js +0 -1
- package/dist/web/assets/chunk-OZEHJAEY-DM7Vtv5V.js.br +0 -0
- package/dist/web/assets/chunk-OZEHJAEY-DM7Vtv5V.js.gz +0 -0
- package/dist/web/assets/chunk-PQ6SQG4A-CfSY-HG3.js +0 -1
- package/dist/web/assets/chunk-PQ6SQG4A-CfSY-HG3.js.br +0 -0
- package/dist/web/assets/chunk-PQ6SQG4A-CfSY-HG3.js.gz +0 -0
- package/dist/web/assets/chunk-PU5JKC2W-BFI9jx5F.js +0 -11
- package/dist/web/assets/chunk-PU5JKC2W-BFI9jx5F.js.br +0 -0
- package/dist/web/assets/chunk-PU5JKC2W-BFI9jx5F.js.gz +0 -0
- package/dist/web/assets/chunk-QZHKN3VN-_jIwYKZ3.js +0 -1
- package/dist/web/assets/chunk-R5LLSJPH-CZY_f--s.js +0 -1
- package/dist/web/assets/chunk-WL4C6EOR-BUFIzsiK.js +0 -189
- package/dist/web/assets/chunk-WL4C6EOR-BUFIzsiK.js.br +0 -0
- package/dist/web/assets/chunk-WL4C6EOR-BUFIzsiK.js.gz +0 -0
- package/dist/web/assets/chunk-XIRO2GV7-BxPFOPRI.js +0 -1
- package/dist/web/assets/chunk-XPW4576I-DfOF_qdG.js +0 -32
- package/dist/web/assets/chunk-XPW4576I-DfOF_qdG.js.br +0 -0
- package/dist/web/assets/chunk-XPW4576I-DfOF_qdG.js.gz +0 -0
- package/dist/web/assets/chunk-XZSTWKYB-BNlQ8dIW.js +0 -94
- package/dist/web/assets/chunk-XZSTWKYB-BNlQ8dIW.js.br +0 -0
- package/dist/web/assets/chunk-XZSTWKYB-BNlQ8dIW.js.gz +0 -0
- package/dist/web/assets/chunk-YBOYWFTD-0Is1vHmh.js +0 -1
- package/dist/web/assets/classDiagram-VBA2DB6C-HwLNQY_4.js +0 -1
- package/dist/web/assets/classDiagram-v2-RAHNMMFH-CLUQCcjH.js +0 -1
- package/dist/web/assets/clone-B5kRZECd.js +0 -1
- package/dist/web/assets/cobol-6JrtZ3xT.js +0 -1
- package/dist/web/assets/cobol-6JrtZ3xT.js.br +0 -0
- package/dist/web/assets/cobol-6JrtZ3xT.js.gz +0 -0
- package/dist/web/assets/code-editor-DXsIWoQ1.js +0 -7
- package/dist/web/assets/code-editor-DXsIWoQ1.js.br +0 -0
- package/dist/web/assets/code-editor-DXsIWoQ1.js.gz +0 -0
- package/dist/web/assets/codex-reset-credit-button-DRhievFQ.js +0 -1
- package/dist/web/assets/codex-reset-credit-button-DRhievFQ.js.br +0 -0
- package/dist/web/assets/codex-reset-credit-button-DRhievFQ.js.gz +0 -0
- package/dist/web/assets/coffee-eR0Qd-vR.js +0 -1
- package/dist/web/assets/coffee-eR0Qd-vR.js.br +0 -0
- package/dist/web/assets/coffee-eR0Qd-vR.js.gz +0 -0
- package/dist/web/assets/conflict-editor-D_RImo_V.js +0 -19
- package/dist/web/assets/conflict-editor-D_RImo_V.js.br +0 -0
- package/dist/web/assets/conflict-editor-D_RImo_V.js.gz +0 -0
- package/dist/web/assets/context-menu-7OX80HDB.js +0 -1
- package/dist/web/assets/context-menu-7OX80HDB.js.br +0 -0
- package/dist/web/assets/context-menu-7OX80HDB.js.gz +0 -0
- package/dist/web/assets/cose-bilkent-S5V4N54A-CAPPRjYz.js +0 -1
- package/dist/web/assets/cose-bilkent-S5V4N54A-CAPPRjYz.js.br +0 -0
- package/dist/web/assets/cose-bilkent-S5V4N54A-CAPPRjYz.js.gz +0 -0
- package/dist/web/assets/cpp-Bp_Laxmd.js +0 -1
- package/dist/web/assets/cpp-Bp_Laxmd.js.br +0 -0
- package/dist/web/assets/cpp-Bp_Laxmd.js.gz +0 -0
- package/dist/web/assets/crystal-bc0lS6i8.js +0 -1
- package/dist/web/assets/crystal-bc0lS6i8.js.br +0 -0
- package/dist/web/assets/crystal-bc0lS6i8.js.gz +0 -0
- package/dist/web/assets/csv-parser-CoxPdyLw.js +0 -6
- package/dist/web/assets/csv-parser-CoxPdyLw.js.br +0 -0
- package/dist/web/assets/csv-parser-CoxPdyLw.js.gz +0 -0
- package/dist/web/assets/csv-preview-BuFdfLo3.js +0 -2
- package/dist/web/assets/csv-preview-BuFdfLo3.js.br +0 -0
- package/dist/web/assets/csv-preview-BuFdfLo3.js.gz +0 -0
- package/dist/web/assets/dagre-D__SE4Ki.js +0 -1
- package/dist/web/assets/dagre-D__SE4Ki.js.br +0 -0
- package/dist/web/assets/dagre-D__SE4Ki.js.gz +0 -0
- package/dist/web/assets/dagre-KLK3FWXG-By-0HuN_.js +0 -4
- package/dist/web/assets/dagre-KLK3FWXG-By-0HuN_.js.br +0 -0
- package/dist/web/assets/dagre-KLK3FWXG-By-0HuN_.js.gz +0 -0
- package/dist/web/assets/data-grid-overlay-editor-CeZoduke.js +0 -1
- package/dist/web/assets/data-grid-overlay-editor-CeZoduke.js.br +0 -0
- package/dist/web/assets/data-grid-overlay-editor-CeZoduke.js.gz +0 -0
- package/dist/web/assets/data-grid-types-CHD9-pon.js +0 -1
- package/dist/web/assets/data-grid-types-CHD9-pon.js.br +0 -0
- package/dist/web/assets/data-grid-types-CHD9-pon.js.gz +0 -0
- package/dist/web/assets/database-viewer-ChcbYn9E.js +0 -1
- package/dist/web/assets/database-viewer-ChcbYn9E.js.br +0 -0
- package/dist/web/assets/database-viewer-ChcbYn9E.js.gz +0 -0
- package/dist/web/assets/design-export-client-BfdZB7xK.js +0 -1
- package/dist/web/assets/design-export-client-BfdZB7xK.js.br +0 -0
- package/dist/web/assets/design-export-client-BfdZB7xK.js.gz +0 -0
- package/dist/web/assets/design-responsive-dialog-BiYy3ibS.js +0 -1
- package/dist/web/assets/design-responsive-dialog-BiYy3ibS.js.br +0 -0
- package/dist/web/assets/design-responsive-dialog-BiYy3ibS.js.gz +0 -0
- package/dist/web/assets/design-settings-section-B_xOf51h.js +0 -2
- package/dist/web/assets/design-settings-section-B_xOf51h.js.br +0 -0
- package/dist/web/assets/design-settings-section-B_xOf51h.js.gz +0 -0
- package/dist/web/assets/design-skill-suggestion-BbEDg15Z.js +0 -3
- package/dist/web/assets/design-skill-suggestion-BbEDg15Z.js.br +0 -0
- package/dist/web/assets/design-skill-suggestion-BbEDg15Z.js.gz +0 -0
- package/dist/web/assets/design-tab-BQSYJ4cS.js +0 -57
- package/dist/web/assets/design-tab-BQSYJ4cS.js.br +0 -0
- package/dist/web/assets/design-tab-BQSYJ4cS.js.gz +0 -0
- package/dist/web/assets/designs-sidebar-panel-AiPaYfSU.js +0 -1
- package/dist/web/assets/designs-sidebar-panel-AiPaYfSU.js.br +0 -0
- package/dist/web/assets/designs-sidebar-panel-AiPaYfSU.js.gz +0 -0
- package/dist/web/assets/diagram-E7M64L7V-w1uoD2zJ.js +0 -24
- package/dist/web/assets/diagram-E7M64L7V-w1uoD2zJ.js.br +0 -0
- package/dist/web/assets/diagram-E7M64L7V-w1uoD2zJ.js.gz +0 -0
- package/dist/web/assets/diagram-IFDJBPK2-DIZ1Hm8C.js +0 -43
- package/dist/web/assets/diagram-IFDJBPK2-DIZ1Hm8C.js.br +0 -0
- package/dist/web/assets/diagram-IFDJBPK2-DIZ1Hm8C.js.gz +0 -0
- package/dist/web/assets/diagram-P4PSJMXO-DJg8_uM2.js +0 -24
- package/dist/web/assets/diagram-P4PSJMXO-DJg8_uM2.js.br +0 -0
- package/dist/web/assets/diagram-P4PSJMXO-DJg8_uM2.js.gz +0 -0
- package/dist/web/assets/dialog-Bocc0Fgb.js +0 -1
- package/dist/web/assets/dialog-Bocc0Fgb.js.br +0 -0
- package/dist/web/assets/dialog-Bocc0Fgb.js.gz +0 -0
- package/dist/web/assets/diff-viewer-BZ6glGK-.js +0 -4
- package/dist/web/assets/diff-viewer-BZ6glGK-.js.br +0 -0
- package/dist/web/assets/diff-viewer-BZ6glGK-.js.gz +0 -0
- package/dist/web/assets/dist-CBtAY9iX.js +0 -1
- package/dist/web/assets/dist-CBtAY9iX.js.br +0 -0
- package/dist/web/assets/dist-CBtAY9iX.js.gz +0 -0
- package/dist/web/assets/dist-CWwUZUqE.js +0 -11
- package/dist/web/assets/dist-CWwUZUqE.js.br +0 -0
- package/dist/web/assets/dist-CWwUZUqE.js.gz +0 -0
- package/dist/web/assets/docx-preview-Dt6RQpfA.js +0 -12
- package/dist/web/assets/docx-preview-Dt6RQpfA.js.br +0 -0
- package/dist/web/assets/docx-preview-Dt6RQpfA.js.gz +0 -0
- package/dist/web/assets/edge-BxayftlC.js +0 -1
- package/dist/web/assets/edge-BxayftlC.js.br +0 -0
- package/dist/web/assets/edge-BxayftlC.js.gz +0 -0
- package/dist/web/assets/edit-diff-preview-D-FNLOU2.js +0 -7
- package/dist/web/assets/edit-diff-preview-D-FNLOU2.js.br +0 -0
- package/dist/web/assets/edit-diff-preview-D-FNLOU2.js.gz +0 -0
- package/dist/web/assets/editor-language-service-4sbsdqBV.js +0 -1
- package/dist/web/assets/editor-language-service-4sbsdqBV.js.br +0 -0
- package/dist/web/assets/editor-language-service-4sbsdqBV.js.gz +0 -0
- package/dist/web/assets/elixir-CncTBq2d.js +0 -1
- package/dist/web/assets/elixir-CncTBq2d.js.br +0 -0
- package/dist/web/assets/elixir-CncTBq2d.js.gz +0 -0
- package/dist/web/assets/elm-1uJDe5N1.js +0 -1
- package/dist/web/assets/elm-1uJDe5N1.js.br +0 -0
- package/dist/web/assets/elm-1uJDe5N1.js.gz +0 -0
- package/dist/web/assets/erDiagram-INFDFZHY-CXGHzu5w.js +0 -70
- package/dist/web/assets/erDiagram-INFDFZHY-CXGHzu5w.js.br +0 -0
- package/dist/web/assets/erDiagram-INFDFZHY-CXGHzu5w.js.gz +0 -0
- package/dist/web/assets/erb-dH8FUiNl.js +0 -1
- package/dist/web/assets/erb-dH8FUiNl.js.br +0 -0
- package/dist/web/assets/erb-dH8FUiNl.js.gz +0 -0
- package/dist/web/assets/erlang-D0F-1O48.js +0 -1
- package/dist/web/assets/erlang-D0F-1O48.js.br +0 -0
- package/dist/web/assets/erlang-D0F-1O48.js.gz +0 -0
- package/dist/web/assets/esm-C3TeLjGW.js +0 -2
- package/dist/web/assets/esm-C3TeLjGW.js.br +0 -0
- package/dist/web/assets/esm-C3TeLjGW.js.gz +0 -0
- package/dist/web/assets/explorer-body-DbgrG1fe.js +0 -2
- package/dist/web/assets/explorer-body-DbgrG1fe.js.br +0 -0
- package/dist/web/assets/explorer-body-DbgrG1fe.js.gz +0 -0
- package/dist/web/assets/explorer-window-content-BCjWvHpp.js +0 -1
- package/dist/web/assets/explorer-window-content-BCjWvHpp.js.br +0 -0
- package/dist/web/assets/explorer-window-content-BCjWvHpp.js.gz +0 -0
- package/dist/web/assets/extension-manager-section-DiMF4RnT.js +0 -1
- package/dist/web/assets/extension-manager-section-DiMF4RnT.js.br +0 -0
- package/dist/web/assets/extension-manager-section-DiMF4RnT.js.gz +0 -0
- package/dist/web/assets/extension-webview-Coti6Vfw.js +0 -12
- package/dist/web/assets/extension-webview-Coti6Vfw.js.br +0 -0
- package/dist/web/assets/extension-webview-Coti6Vfw.js.gz +0 -0
- package/dist/web/assets/file-icons-CK0J4QSy.js +0 -1
- package/dist/web/assets/file-icons-CK0J4QSy.js.br +0 -0
- package/dist/web/assets/file-icons-CK0J4QSy.js.gz +0 -0
- package/dist/web/assets/file-icons.generated-BtBErEwb.css +0 -1
- package/dist/web/assets/file-icons.generated-BtBErEwb.css.br +0 -0
- package/dist/web/assets/file-icons.generated-BtBErEwb.css.gz +0 -0
- package/dist/web/assets/file-store-Cm7-pHux.js +0 -1
- package/dist/web/assets/file-store-Cm7-pHux.js.br +0 -0
- package/dist/web/assets/file-store-Cm7-pHux.js.gz +0 -0
- package/dist/web/assets/files-settings-section-ZTVwOwx0.js +0 -1
- package/dist/web/assets/files-settings-section-ZTVwOwx0.js.br +0 -0
- package/dist/web/assets/files-settings-section-ZTVwOwx0.js.gz +0 -0
- package/dist/web/assets/flowDiagram-PKNHOUZH-CZmY6JEk.js +0 -162
- package/dist/web/assets/flowDiagram-PKNHOUZH-CZmY6JEk.js.br +0 -0
- package/dist/web/assets/flowDiagram-PKNHOUZH-CZmY6JEk.js.gz +0 -0
- package/dist/web/assets/format-file-meta-Drxf2J-k.js +0 -1
- package/dist/web/assets/format-file-meta-Drxf2J-k.js.br +0 -0
- package/dist/web/assets/format-file-meta-Drxf2J-k.js.gz +0 -0
- package/dist/web/assets/fortran-fixed-form-DB7wVefV.js +0 -1
- package/dist/web/assets/fortran-fixed-form-DB7wVefV.js.br +0 -0
- package/dist/web/assets/fortran-fixed-form-DB7wVefV.js.gz +0 -0
- package/dist/web/assets/fs-api-IX9SHt5k.js +0 -1
- package/dist/web/assets/fs-api-IX9SHt5k.js.br +0 -0
- package/dist/web/assets/fs-api-IX9SHt5k.js.gz +0 -0
- package/dist/web/assets/fsharp-B5-po_gS.js +0 -1
- package/dist/web/assets/fsharp-B5-po_gS.js.br +0 -0
- package/dist/web/assets/fsharp-B5-po_gS.js.gz +0 -0
- package/dist/web/assets/ganttDiagram-A5KZAMGK-CZbyfmux.js +0 -292
- package/dist/web/assets/ganttDiagram-A5KZAMGK-CZbyfmux.js.br +0 -0
- package/dist/web/assets/ganttDiagram-A5KZAMGK-CZbyfmux.js.gz +0 -0
- package/dist/web/assets/gdresource-DkWx6_xT.js +0 -1
- package/dist/web/assets/gdresource-DkWx6_xT.js.br +0 -0
- package/dist/web/assets/gdresource-DkWx6_xT.js.gz +0 -0
- package/dist/web/assets/general-settings-section-B7Hjx_fb.js +0 -1
- package/dist/web/assets/general-settings-section-B7Hjx_fb.js.br +0 -0
- package/dist/web/assets/general-settings-section-B7Hjx_fb.js.gz +0 -0
- package/dist/web/assets/git-commit-XsMhdamD.js +0 -1
- package/dist/web/assets/git-commit-XsMhdamD.js.br +0 -0
- package/dist/web/assets/git-commit-XsMhdamD.js.gz +0 -0
- package/dist/web/assets/git-log-panel-CbcJ_YEH.js +0 -1
- package/dist/web/assets/git-log-panel-CbcJ_YEH.js.br +0 -0
- package/dist/web/assets/git-log-panel-CbcJ_YEH.js.gz +0 -0
- package/dist/web/assets/git-rebase-CXs4QunZ.js +0 -1
- package/dist/web/assets/git-repo-store-B_u5RzIM.js +0 -1
- package/dist/web/assets/git-repo-store-B_u5RzIM.js.br +0 -0
- package/dist/web/assets/git-repo-store-B_u5RzIM.js.gz +0 -0
- package/dist/web/assets/gitGraph-HDMCJU4V-COyQftEp.js +0 -1
- package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-C9g4d3bV.js +0 -65
- package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-C9g4d3bV.js.br +0 -0
- package/dist/web/assets/gitGraphDiagram-K3NZZRJ6-C9g4d3bV.js.gz +0 -0
- package/dist/web/assets/glide-data-grid-BfByGSf1.js +0 -141
- package/dist/web/assets/glide-data-grid-BfByGSf1.js.br +0 -0
- package/dist/web/assets/glide-data-grid-BfByGSf1.js.gz +0 -0
- package/dist/web/assets/glimmer-js-CHoxSy4K.js +0 -1
- package/dist/web/assets/glimmer-js-CHoxSy4K.js.br +0 -0
- package/dist/web/assets/glimmer-js-CHoxSy4K.js.gz +0 -0
- package/dist/web/assets/glimmer-ts-DY0DCf-r.js +0 -1
- package/dist/web/assets/glimmer-ts-DY0DCf-r.js.br +0 -0
- package/dist/web/assets/glimmer-ts-DY0DCf-r.js.gz +0 -0
- package/dist/web/assets/glsl-E9hxFBBJ.js +0 -1
- package/dist/web/assets/glsl-E9hxFBBJ.js.br +0 -0
- package/dist/web/assets/glsl-E9hxFBBJ.js.gz +0 -0
- package/dist/web/assets/graphlib-eYluCODn.js +0 -1
- package/dist/web/assets/graphlib-eYluCODn.js.br +0 -0
- package/dist/web/assets/graphlib-eYluCODn.js.gz +0 -0
- package/dist/web/assets/graphql-DAalq3Uo.js +0 -1
- package/dist/web/assets/graphql-DAalq3Uo.js.br +0 -0
- package/dist/web/assets/graphql-DAalq3Uo.js.gz +0 -0
- package/dist/web/assets/group-chat-tab-DCo9OP3D.js +0 -1
- package/dist/web/assets/group-chat-tab-DCo9OP3D.js.br +0 -0
- package/dist/web/assets/group-chat-tab-DCo9OP3D.js.gz +0 -0
- package/dist/web/assets/hack-e6ehmpqx.js +0 -1
- package/dist/web/assets/hack-e6ehmpqx.js.br +0 -0
- package/dist/web/assets/hack-e6ehmpqx.js.gz +0 -0
- package/dist/web/assets/haml-Pr4yq62b.js +0 -1
- package/dist/web/assets/haml-Pr4yq62b.js.br +0 -0
- package/dist/web/assets/haml-Pr4yq62b.js.gz +0 -0
- package/dist/web/assets/handlebars-ZERVZ8gn.js +0 -1
- package/dist/web/assets/handlebars-ZERVZ8gn.js.br +0 -0
- package/dist/web/assets/handlebars-ZERVZ8gn.js.gz +0 -0
- package/dist/web/assets/html-BmwVFf5D.js +0 -1
- package/dist/web/assets/html-BmwVFf5D.js.br +0 -0
- package/dist/web/assets/html-BmwVFf5D.js.gz +0 -0
- package/dist/web/assets/html-derivative-C1JIrmAY.js +0 -1
- package/dist/web/assets/http-BI6PtTvX.js +0 -1
- package/dist/web/assets/http-BI6PtTvX.js.br +0 -0
- package/dist/web/assets/http-BI6PtTvX.js.gz +0 -0
- package/dist/web/assets/hurl-CJGLGxAF.js +0 -1
- package/dist/web/assets/hurl-CJGLGxAF.js.br +0 -0
- package/dist/web/assets/hurl-CJGLGxAF.js.gz +0 -0
- package/dist/web/assets/hxml-B6i0QuF9.js +0 -1
- package/dist/web/assets/hxml-B6i0QuF9.js.br +0 -0
- package/dist/web/assets/hxml-B6i0QuF9.js.gz +0 -0
- package/dist/web/assets/icons-CO_II6D-.js +0 -1
- package/dist/web/assets/icons-CO_II6D-.js.br +0 -0
- package/dist/web/assets/icons-CO_II6D-.js.gz +0 -0
- package/dist/web/assets/image-preview-Cjlps7Pt.js +0 -1
- package/dist/web/assets/index-CyDLBddf.js +0 -52
- package/dist/web/assets/index-CyDLBddf.js.br +0 -0
- package/dist/web/assets/index-CyDLBddf.js.gz +0 -0
- package/dist/web/assets/index-Dh5apC3I.css +0 -1
- package/dist/web/assets/index-Dh5apC3I.css.br +0 -0
- package/dist/web/assets/index-Dh5apC3I.css.gz +0 -0
- package/dist/web/assets/info-3K5VOQVL-M5BVLjMe.js +0 -1
- package/dist/web/assets/infoDiagram-LFFYTUFH-BpJuT5o9.js +0 -2
- package/dist/web/assets/input-CG8PS8mS.js +0 -1
- package/dist/web/assets/isEmpty-BjAN1oSC.js +0 -1
- package/dist/web/assets/isEmpty-BjAN1oSC.js.br +0 -0
- package/dist/web/assets/isEmpty-BjAN1oSC.js.gz +0 -0
- package/dist/web/assets/ishikawaDiagram-PHBUUO56-JbOmOY2f.js +0 -70
- package/dist/web/assets/ishikawaDiagram-PHBUUO56-JbOmOY2f.js.br +0 -0
- package/dist/web/assets/ishikawaDiagram-PHBUUO56-JbOmOY2f.js.gz +0 -0
- package/dist/web/assets/jinja-CM-duDMo.js +0 -1
- package/dist/web/assets/jinja-CM-duDMo.js.br +0 -0
- package/dist/web/assets/jinja-CM-duDMo.js.gz +0 -0
- package/dist/web/assets/jira-watcher-section-Dz_-sUC2.js +0 -1
- package/dist/web/assets/jison-F9rAmqyI.js +0 -1
- package/dist/web/assets/jison-F9rAmqyI.js.br +0 -0
- package/dist/web/assets/jison-F9rAmqyI.js.gz +0 -0
- package/dist/web/assets/journeyDiagram-4ABVD52K-C7_tilrE.js +0 -139
- package/dist/web/assets/journeyDiagram-4ABVD52K-C7_tilrE.js.br +0 -0
- package/dist/web/assets/journeyDiagram-4ABVD52K-C7_tilrE.js.gz +0 -0
- package/dist/web/assets/julia-AVSSuAUz.js +0 -1
- package/dist/web/assets/julia-AVSSuAUz.js.br +0 -0
- package/dist/web/assets/julia-AVSSuAUz.js.gz +0 -0
- package/dist/web/assets/just-Dw8IR-fy.js +0 -1
- package/dist/web/assets/just-Dw8IR-fy.js.br +0 -0
- package/dist/web/assets/just-Dw8IR-fy.js.gz +0 -0
- package/dist/web/assets/kanban-definition-K7BYSVSG-DvbxKeXt.js +0 -89
- package/dist/web/assets/kanban-definition-K7BYSVSG-DvbxKeXt.js.br +0 -0
- package/dist/web/assets/kanban-definition-K7BYSVSG-DvbxKeXt.js.gz +0 -0
- package/dist/web/assets/keybindings-store-BTq5Z7XP.js +0 -1
- package/dist/web/assets/keyboard-shortcuts-section-Ba5NYwlG.js +0 -1
- package/dist/web/assets/keyboard-shortcuts-section-Ba5NYwlG.js.br +0 -0
- package/dist/web/assets/keyboard-shortcuts-section-Ba5NYwlG.js.gz +0 -0
- package/dist/web/assets/language-servers-section-DJJ7SFXo.js +0 -2
- package/dist/web/assets/language-servers-section-DJJ7SFXo.js.br +0 -0
- package/dist/web/assets/language-servers-section-DJJ7SFXo.js.gz +0 -0
- package/dist/web/assets/latex-37_9fLdz.js +0 -1
- package/dist/web/assets/latex-37_9fLdz.js.br +0 -0
- package/dist/web/assets/latex-37_9fLdz.js.gz +0 -0
- package/dist/web/assets/lib-6APiJkU3.js +0 -4
- package/dist/web/assets/lib-6APiJkU3.js.br +0 -0
- package/dist/web/assets/lib-6APiJkU3.js.gz +0 -0
- package/dist/web/assets/line-CYtSrseF.js +0 -1
- package/dist/web/assets/linear-DyCrWAir.js +0 -1
- package/dist/web/assets/linear-DyCrWAir.js.br +0 -0
- package/dist/web/assets/linear-DyCrWAir.js.gz +0 -0
- package/dist/web/assets/liquid-CaR1gaJt.js +0 -1
- package/dist/web/assets/liquid-CaR1gaJt.js.br +0 -0
- package/dist/web/assets/liquid-CaR1gaJt.js.gz +0 -0
- package/dist/web/assets/lsp-client-Dr3vQ1bb.js +0 -1
- package/dist/web/assets/lsp-client-Dr3vQ1bb.js.br +0 -0
- package/dist/web/assets/lsp-client-Dr3vQ1bb.js.gz +0 -0
- package/dist/web/assets/lua-IFhrYmKl.js +0 -1
- package/dist/web/assets/lua-IFhrYmKl.js.br +0 -0
- package/dist/web/assets/lua-IFhrYmKl.js.gz +0 -0
- package/dist/web/assets/markdown-renderer-CmnqFfTU.js +0 -5
- package/dist/web/assets/markdown-renderer-CmnqFfTU.js.br +0 -0
- package/dist/web/assets/markdown-renderer-CmnqFfTU.js.gz +0 -0
- package/dist/web/assets/markdown-renderer-LJdVMbGl.js +0 -1
- package/dist/web/assets/marko-2g0T6atb.js +0 -1
- package/dist/web/assets/marko-2g0T6atb.js.br +0 -0
- package/dist/web/assets/marko-2g0T6atb.js.gz +0 -0
- package/dist/web/assets/mdc-Dku_3sTh.js +0 -1
- package/dist/web/assets/mdc-Dku_3sTh.js.br +0 -0
- package/dist/web/assets/mdc-Dku_3sTh.js.gz +0 -0
- package/dist/web/assets/media-url-CrT-qulZ.js +0 -1
- package/dist/web/assets/mermaid-parser.core-C5vBM3kO.js +0 -4
- package/dist/web/assets/mermaid-parser.core-C5vBM3kO.js.br +0 -0
- package/dist/web/assets/mermaid-parser.core-C5vBM3kO.js.gz +0 -0
- package/dist/web/assets/mermaid.core-D5SAzB7L.js +0 -11
- package/dist/web/assets/mermaid.core-D5SAzB7L.js.br +0 -0
- package/dist/web/assets/mermaid.core-D5SAzB7L.js.gz +0 -0
- package/dist/web/assets/mindmap-definition-YRQLILUH-juNCbDFr.js +0 -68
- package/dist/web/assets/mindmap-definition-YRQLILUH-juNCbDFr.js.br +0 -0
- package/dist/web/assets/mindmap-definition-YRQLILUH-juNCbDFr.js.gz +0 -0
- package/dist/web/assets/mobile-bottom-sheet-D4UyOatB.js +0 -1
- package/dist/web/assets/mobile-bottom-sheet-D4UyOatB.js.br +0 -0
- package/dist/web/assets/mobile-bottom-sheet-D4UyOatB.js.gz +0 -0
- package/dist/web/assets/mobile-explorer-sheet-BiIhZtJ2.js +0 -1
- package/dist/web/assets/mobile-explorer-sheet-BiIhZtJ2.js.br +0 -0
- package/dist/web/assets/mobile-explorer-sheet-BiIhZtJ2.js.gz +0 -0
- package/dist/web/assets/monaco-dotenv-language-DbSss7YR.js +0 -1
- package/dist/web/assets/new-design-dialog-DI_hxvFV.js +0 -1
- package/dist/web/assets/new-design-dialog-DI_hxvFV.js.br +0 -0
- package/dist/web/assets/new-design-dialog-DI_hxvFV.js.gz +0 -0
- package/dist/web/assets/nextflow-DwUrPV3b.js +0 -1
- package/dist/web/assets/nextflow-DwUrPV3b.js.br +0 -0
- package/dist/web/assets/nextflow-DwUrPV3b.js.gz +0 -0
- package/dist/web/assets/nginx-D10J2vrQ.js +0 -1
- package/dist/web/assets/nginx-D10J2vrQ.js.br +0 -0
- package/dist/web/assets/nginx-D10J2vrQ.js.gz +0 -0
- package/dist/web/assets/nim-BonDnBCZ.js +0 -1
- package/dist/web/assets/nim-BonDnBCZ.js.br +0 -0
- package/dist/web/assets/nim-BonDnBCZ.js.gz +0 -0
- package/dist/web/assets/notification-store-9lBSplOV.js +0 -1
- package/dist/web/assets/notifications-settings-section-0s-2OKRv.js +0 -1
- package/dist/web/assets/notifications-settings-section-0s-2OKRv.js.br +0 -0
- package/dist/web/assets/notifications-settings-section-0s-2OKRv.js.gz +0 -0
- package/dist/web/assets/number-overlay-editor-CHqPl6Pv.js +0 -9
- package/dist/web/assets/number-overlay-editor-CHqPl6Pv.js.br +0 -0
- package/dist/web/assets/number-overlay-editor-CHqPl6Pv.js.gz +0 -0
- package/dist/web/assets/onboarding-entry-CGFdGLLP.js +0 -1
- package/dist/web/assets/onboarding-entry-CGFdGLLP.js.br +0 -0
- package/dist/web/assets/onboarding-entry-CGFdGLLP.js.gz +0 -0
- package/dist/web/assets/onboarding-quick-orientation-DPHYFMbA.js +0 -1
- package/dist/web/assets/onboarding-quick-orientation-DPHYFMbA.js.br +0 -0
- package/dist/web/assets/onboarding-quick-orientation-DPHYFMbA.js.gz +0 -0
- package/dist/web/assets/ordinal-CEpaoDoJ.js +0 -1
- package/dist/web/assets/ordinal-CEpaoDoJ.js.br +0 -0
- package/dist/web/assets/ordinal-CEpaoDoJ.js.gz +0 -0
- package/dist/web/assets/overview-panel-3htxfZS2.js +0 -1
- package/dist/web/assets/overview-panel-3htxfZS2.js.br +0 -0
- package/dist/web/assets/overview-panel-3htxfZS2.js.gz +0 -0
- package/dist/web/assets/packet-RMMSAZCW-DCgVLum2.js +0 -1
- package/dist/web/assets/panel-store-B6PoCwBA.js +0 -1
- package/dist/web/assets/panel-store-B6PoCwBA.js.br +0 -0
- package/dist/web/assets/panel-store-B6PoCwBA.js.gz +0 -0
- package/dist/web/assets/pdf-preview-B8A4T-ES.js +0 -1
- package/dist/web/assets/pdf-preview-B8A4T-ES.js.br +0 -0
- package/dist/web/assets/pdf-preview-B8A4T-ES.js.gz +0 -0
- package/dist/web/assets/performance-panel-V8gpnnf7.js +0 -3
- package/dist/web/assets/performance-panel-V8gpnnf7.js.br +0 -0
- package/dist/web/assets/performance-panel-V8gpnnf7.js.gz +0 -0
- package/dist/web/assets/perl-DmdIiZTm.js +0 -1
- package/dist/web/assets/perl-DmdIiZTm.js.br +0 -0
- package/dist/web/assets/perl-DmdIiZTm.js.gz +0 -0
- package/dist/web/assets/php-DXGvCIY0.js +0 -1
- package/dist/web/assets/php-DXGvCIY0.js.br +0 -0
- package/dist/web/assets/php-DXGvCIY0.js.gz +0 -0
- package/dist/web/assets/pie-UPGHQEXC-pxihnmef.js +0 -1
- package/dist/web/assets/pieDiagram-SKSYHLDU-CiJCYElI.js +0 -30
- package/dist/web/assets/pieDiagram-SKSYHLDU-CiJCYElI.js.br +0 -0
- package/dist/web/assets/pieDiagram-SKSYHLDU-CiJCYElI.js.gz +0 -0
- package/dist/web/assets/postgres-viewer-sWS-ogTC.js +0 -3
- package/dist/web/assets/postgres-viewer-sWS-ogTC.js.br +0 -0
- package/dist/web/assets/postgres-viewer-sWS-ogTC.js.gz +0 -0
- package/dist/web/assets/ppmbot-settings-section-CT8vvlzk.js +0 -1
- package/dist/web/assets/ppmbot-settings-section-CT8vvlzk.js.br +0 -0
- package/dist/web/assets/ppmbot-settings-section-CT8vvlzk.js.gz +0 -0
- package/dist/web/assets/pptx-export-Ugjv0hso.js +0 -111
- package/dist/web/assets/pptx-export-Ugjv0hso.js.br +0 -0
- package/dist/web/assets/pptx-export-Ugjv0hso.js.gz +0 -0
- package/dist/web/assets/problems-panel-Gcy79pSS.js +0 -1
- package/dist/web/assets/problems-panel-Gcy79pSS.js.br +0 -0
- package/dist/web/assets/problems-panel-Gcy79pSS.js.gz +0 -0
- package/dist/web/assets/process-row-format-u6y7lOee.js +0 -1
- package/dist/web/assets/process-table-BUTIp9Oy.js +0 -1
- package/dist/web/assets/process-table-BUTIp9Oy.js.br +0 -0
- package/dist/web/assets/process-table-BUTIp9Oy.js.gz +0 -0
- package/dist/web/assets/project-store-CCimwgGF.js +0 -1
- package/dist/web/assets/project-store-CCimwgGF.js.br +0 -0
- package/dist/web/assets/project-store-CCimwgGF.js.gz +0 -0
- package/dist/web/assets/proxy-settings-section-Buv_8y54.js +0 -1
- package/dist/web/assets/proxy-settings-section-Buv_8y54.js.br +0 -0
- package/dist/web/assets/proxy-settings-section-Buv_8y54.js.gz +0 -0
- package/dist/web/assets/pug-BgMlgmpT.js +0 -1
- package/dist/web/assets/pug-BgMlgmpT.js.br +0 -0
- package/dist/web/assets/pug-BgMlgmpT.js.gz +0 -0
- package/dist/web/assets/qml-DjqBS8bc.js +0 -1
- package/dist/web/assets/qml-DjqBS8bc.js.br +0 -0
- package/dist/web/assets/qml-DjqBS8bc.js.gz +0 -0
- package/dist/web/assets/quadrantDiagram-337W2JSQ-D3q5dHQe.js +0 -7
- package/dist/web/assets/quadrantDiagram-337W2JSQ-D3q5dHQe.js.br +0 -0
- package/dist/web/assets/quadrantDiagram-337W2JSQ-D3q5dHQe.js.gz +0 -0
- package/dist/web/assets/query-audit-section-N2DQtgJx.js +0 -1
- package/dist/web/assets/query-audit-section-N2DQtgJx.js.br +0 -0
- package/dist/web/assets/query-audit-section-N2DQtgJx.js.gz +0 -0
- package/dist/web/assets/radar-KQ55EAFF-CeeNXQSm.js +0 -1
- package/dist/web/assets/razor-CzV29vlj.js +0 -1
- package/dist/web/assets/razor-CzV29vlj.js.br +0 -0
- package/dist/web/assets/razor-CzV29vlj.js.gz +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-CRvJqmaz.js +0 -1
- package/dist/web/assets/remote-desktop-clipboard-notice-CRvJqmaz.js.br +0 -0
- package/dist/web/assets/remote-desktop-clipboard-notice-CRvJqmaz.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-BoYINLbJ.js +0 -2
- package/dist/web/assets/remote-desktop-mobile-sheet-BoYINLbJ.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-sheet-BoYINLbJ.js.gz +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-DPdP0yYu.js +0 -1
- package/dist/web/assets/remote-desktop-mobile-view-DPdP0yYu.js.br +0 -0
- package/dist/web/assets/remote-desktop-mobile-view-DPdP0yYu.js.gz +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate-BeQ_Jrp7.js +0 -1
- package/dist/web/assets/remote-desktop-readiness-gate-BeQ_Jrp7.js.br +0 -0
- package/dist/web/assets/remote-desktop-readiness-gate-BeQ_Jrp7.js.gz +0 -0
- package/dist/web/assets/remote-desktop-settings-section-Bs4sHS3l.js +0 -1
- package/dist/web/assets/remote-desktop-settings-section-Bs4sHS3l.js.br +0 -0
- package/dist/web/assets/remote-desktop-settings-section-Bs4sHS3l.js.gz +0 -0
- package/dist/web/assets/remote-desktop-window-content-DDr__JxQ.js +0 -1
- package/dist/web/assets/remote-desktop-window-content-DDr__JxQ.js.br +0 -0
- package/dist/web/assets/remote-desktop-window-content-DDr__JxQ.js.gz +0 -0
- package/dist/web/assets/requirementDiagram-Z7DCOOCP-BZfeEsxv.js +0 -73
- package/dist/web/assets/requirementDiagram-Z7DCOOCP-BZfeEsxv.js.br +0 -0
- package/dist/web/assets/requirementDiagram-Z7DCOOCP-BZfeEsxv.js.gz +0 -0
- package/dist/web/assets/rst-DffOOLD7.js +0 -1
- package/dist/web/assets/rst-DffOOLD7.js.br +0 -0
- package/dist/web/assets/rst-DffOOLD7.js.gz +0 -0
- package/dist/web/assets/ruby-C5DczJCc.js +0 -1
- package/dist/web/assets/ruby-C5DczJCc.js.br +0 -0
- package/dist/web/assets/ruby-C5DczJCc.js.gz +0 -0
- package/dist/web/assets/run-in-terminal-DCBNtYHQ.js +0 -1
- package/dist/web/assets/sankeyDiagram-WA2Y5GQK-CxM5iAJY.js +0 -10
- package/dist/web/assets/sankeyDiagram-WA2Y5GQK-CxM5iAJY.js.br +0 -0
- package/dist/web/assets/sankeyDiagram-WA2Y5GQK-CxM5iAJY.js.gz +0 -0
- package/dist/web/assets/sas-CoO1xLdH.js +0 -1
- package/dist/web/assets/sas-CoO1xLdH.js.br +0 -0
- package/dist/web/assets/sas-CoO1xLdH.js.gz +0 -0
- package/dist/web/assets/schedules-settings-section-_cHX2qOa.js +0 -1
- package/dist/web/assets/schedules-settings-section-_cHX2qOa.js.br +0 -0
- package/dist/web/assets/schedules-settings-section-_cHX2qOa.js.gz +0 -0
- package/dist/web/assets/scroll-area-sjOeAfoD.js +0 -1
- package/dist/web/assets/scroll-area-sjOeAfoD.js.br +0 -0
- package/dist/web/assets/scroll-area-sjOeAfoD.js.gz +0 -0
- package/dist/web/assets/scss-d9PFDNvb.js +0 -1
- package/dist/web/assets/scss-d9PFDNvb.js.br +0 -0
- package/dist/web/assets/scss-d9PFDNvb.js.gz +0 -0
- package/dist/web/assets/send-to-chat-dNqNV7Y4.js +0 -1
- package/dist/web/assets/send-to-chat-dNqNV7Y4.js.br +0 -0
- package/dist/web/assets/send-to-chat-dNqNV7Y4.js.gz +0 -0
- package/dist/web/assets/separator-dHj3Km--.js +0 -1
- package/dist/web/assets/sequenceDiagram-2WXFIKYE-D4PdZNfQ.js +0 -145
- package/dist/web/assets/sequenceDiagram-2WXFIKYE-D4PdZNfQ.js.br +0 -0
- package/dist/web/assets/sequenceDiagram-2WXFIKYE-D4PdZNfQ.js.gz +0 -0
- package/dist/web/assets/services-panel-Dm54cnW3.js +0 -1
- package/dist/web/assets/services-panel-Dm54cnW3.js.br +0 -0
- package/dist/web/assets/services-panel-Dm54cnW3.js.gz +0 -0
- package/dist/web/assets/session-list-sync-triggers-ATvz-1g3.js +0 -1
- package/dist/web/assets/session-list-sync-triggers-ATvz-1g3.js.br +0 -0
- package/dist/web/assets/session-list-sync-triggers-ATvz-1g3.js.gz +0 -0
- package/dist/web/assets/settings-body-DRRQNaDA.js +0 -1
- package/dist/web/assets/settings-body-DRRQNaDA.js.br +0 -0
- package/dist/web/assets/settings-body-DRRQNaDA.js.gz +0 -0
- package/dist/web/assets/settings-section-content-DRaHfvm8.js +0 -1
- package/dist/web/assets/settings-section-content-U3mIx6hF.js +0 -2
- package/dist/web/assets/settings-section-content-U3mIx6hF.js.br +0 -0
- package/dist/web/assets/settings-section-content-U3mIx6hF.js.gz +0 -0
- package/dist/web/assets/settings-store-Cyuo8ceh.js +0 -2
- package/dist/web/assets/settings-store-Cyuo8ceh.js.br +0 -0
- package/dist/web/assets/settings-store-Cyuo8ceh.js.gz +0 -0
- package/dist/web/assets/settings-tab-CB_BhHTK.js +0 -1
- package/dist/web/assets/settings-window-content-CgZIMNX8.js +0 -1
- package/dist/web/assets/shaderlab-BkB57LhQ.js +0 -1
- package/dist/web/assets/shaderlab-BkB57LhQ.js.br +0 -0
- package/dist/web/assets/shaderlab-BkB57LhQ.js.gz +0 -0
- package/dist/web/assets/shellsession-CTpUym8_.js +0 -1
- package/dist/web/assets/slash-command-picker-CQlIqMW0.js +0 -1
- package/dist/web/assets/slash-command-picker-CQlIqMW0.js.br +0 -0
- package/dist/web/assets/slash-command-picker-CQlIqMW0.js.gz +0 -0
- package/dist/web/assets/sortable-header-BOa8o7NJ.js +0 -1
- package/dist/web/assets/sortable-header-BOa8o7NJ.js.br +0 -0
- package/dist/web/assets/sortable-header-BOa8o7NJ.js.gz +0 -0
- package/dist/web/assets/soy-CGmWpNZ2.js +0 -1
- package/dist/web/assets/soy-CGmWpNZ2.js.br +0 -0
- package/dist/web/assets/soy-CGmWpNZ2.js.gz +0 -0
- package/dist/web/assets/sparql-DtdOj_MX.js +0 -1
- package/dist/web/assets/sparql-DtdOj_MX.js.br +0 -0
- package/dist/web/assets/sparql-DtdOj_MX.js.gz +0 -0
- package/dist/web/assets/sql-query-editor--Z4bcqd8.js +0 -1
- package/dist/web/assets/sql-query-editor--Z4bcqd8.js.br +0 -0
- package/dist/web/assets/sql-query-editor--Z4bcqd8.js.gz +0 -0
- package/dist/web/assets/sqlite-viewer-CSmX3qaj.js +0 -1
- package/dist/web/assets/sqlite-viewer-CSmX3qaj.js.br +0 -0
- package/dist/web/assets/sqlite-viewer-CSmX3qaj.js.gz +0 -0
- package/dist/web/assets/stata-6W_BX14b.js +0 -1
- package/dist/web/assets/stata-6W_BX14b.js.br +0 -0
- package/dist/web/assets/stata-6W_BX14b.js.gz +0 -0
- package/dist/web/assets/stateDiagram-RAJIS63D-BasP-g7l.js +0 -1
- package/dist/web/assets/stateDiagram-RAJIS63D-BasP-g7l.js.br +0 -0
- package/dist/web/assets/stateDiagram-RAJIS63D-BasP-g7l.js.gz +0 -0
- package/dist/web/assets/stateDiagram-v2-FVOUBMTO-DH7CpDey.js +0 -1
- package/dist/web/assets/surrealql-BhmbH4Yk.js +0 -1
- package/dist/web/assets/surrealql-BhmbH4Yk.js.br +0 -0
- package/dist/web/assets/surrealql-BhmbH4Yk.js.gz +0 -0
- package/dist/web/assets/svelte-D6EOFdO-.js +0 -1
- package/dist/web/assets/svelte-D6EOFdO-.js.br +0 -0
- package/dist/web/assets/svelte-D6EOFdO-.js.gz +0 -0
- package/dist/web/assets/system-monitor-body-LannpU6H.js +0 -2
- package/dist/web/assets/system-monitor-body-LannpU6H.js.br +0 -0
- package/dist/web/assets/system-monitor-body-LannpU6H.js.gz +0 -0
- package/dist/web/assets/system-monitor-tab-BfVucwEF.js +0 -1
- package/dist/web/assets/system-monitor-window-content-kLNW9Ln3.js +0 -1
- package/dist/web/assets/tab-host-window-content-II_FtOYM.js +0 -1
- package/dist/web/assets/tab-host-window-content-II_FtOYM.js.br +0 -0
- package/dist/web/assets/tab-host-window-content-II_FtOYM.js.gz +0 -0
- package/dist/web/assets/tab-store-DCpc0g0Q.js +0 -1
- package/dist/web/assets/templ-DuLJgZN8.js +0 -1
- package/dist/web/assets/templ-DuLJgZN8.js.br +0 -0
- package/dist/web/assets/templ-DuLJgZN8.js.gz +0 -0
- package/dist/web/assets/terminal-tab-CTe2polt.js +0 -3
- package/dist/web/assets/terminal-tab-CTe2polt.js.br +0 -0
- package/dist/web/assets/terminal-tab-CTe2polt.js.gz +0 -0
- package/dist/web/assets/tex-D8IJD2J1.js +0 -1
- package/dist/web/assets/tex-D8IJD2J1.js.br +0 -0
- package/dist/web/assets/tex-D8IJD2J1.js.gz +0 -0
- package/dist/web/assets/timeline-definition-YZTLITO2-Do92I8eh.js +0 -61
- package/dist/web/assets/timeline-definition-YZTLITO2-Do92I8eh.js.br +0 -0
- package/dist/web/assets/timeline-definition-YZTLITO2-Do92I8eh.js.gz +0 -0
- package/dist/web/assets/tool-cards-rxLXbBSm.js +0 -9
- package/dist/web/assets/tool-cards-rxLXbBSm.js.br +0 -0
- package/dist/web/assets/tool-cards-rxLXbBSm.js.gz +0 -0
- package/dist/web/assets/treemap-KZPCXAKY-OVcqjFQG.js +0 -1
- package/dist/web/assets/ts-tags-BxVcUOvj.js +0 -1
- package/dist/web/assets/ts-tags-BxVcUOvj.js.br +0 -0
- package/dist/web/assets/ts-tags-BxVcUOvj.js.gz +0 -0
- package/dist/web/assets/twig-BT8vDHa2.js +0 -1
- package/dist/web/assets/twig-BT8vDHa2.js.br +0 -0
- package/dist/web/assets/twig-BT8vDHa2.js.gz +0 -0
- package/dist/web/assets/use-blob-url-BC69n15x.js +0 -1
- package/dist/web/assets/use-inline-blame-CxZ_QWzS.js +0 -16
- package/dist/web/assets/use-inline-blame-CxZ_QWzS.js.br +0 -0
- package/dist/web/assets/use-inline-blame-CxZ_QWzS.js.gz +0 -0
- package/dist/web/assets/use-lsp-gCNE5A9K.js +0 -6
- package/dist/web/assets/use-lsp-gCNE5A9K.js.br +0 -0
- package/dist/web/assets/use-lsp-gCNE5A9K.js.gz +0 -0
- package/dist/web/assets/use-monaco-theme-DvNGcCvz.js +0 -1
- package/dist/web/assets/use-process-kill-Cbiu1mbY.js +0 -1
- package/dist/web/assets/use-process-kill-Cbiu1mbY.js.br +0 -0
- package/dist/web/assets/use-process-kill-Cbiu1mbY.js.gz +0 -0
- package/dist/web/assets/use-websocket-AC7EG1LK.js +0 -1
- package/dist/web/assets/vendor-ui-P9Ym7hCv.js +0 -45
- package/dist/web/assets/vendor-ui-P9Ym7hCv.js.br +0 -0
- package/dist/web/assets/vendor-ui-P9Ym7hCv.js.gz +0 -0
- package/dist/web/assets/vennDiagram-LZ73GAT5-ITFNzHRx.js +0 -34
- package/dist/web/assets/vennDiagram-LZ73GAT5-ITFNzHRx.js.br +0 -0
- package/dist/web/assets/vennDiagram-LZ73GAT5-ITFNzHRx.js.gz +0 -0
- package/dist/web/assets/video-preview-C2Y61WUE.js +0 -1
- package/dist/web/assets/video-preview-C2Y61WUE.js.br +0 -0
- package/dist/web/assets/video-preview-C2Y61WUE.js.gz +0 -0
- package/dist/web/assets/voice-settings-section-DCXZeLYI.js +0 -1
- package/dist/web/assets/voice-settings-section-DCXZeLYI.js.br +0 -0
- package/dist/web/assets/voice-settings-section-DCXZeLYI.js.gz +0 -0
- package/dist/web/assets/vue-BcyG2SyR.js +0 -1
- package/dist/web/assets/vue-BcyG2SyR.js.br +0 -0
- package/dist/web/assets/vue-BcyG2SyR.js.gz +0 -0
- package/dist/web/assets/vue-html-D8iVjZTe.js +0 -1
- package/dist/web/assets/vue-html-D8iVjZTe.js.br +0 -0
- package/dist/web/assets/vue-html-D8iVjZTe.js.gz +0 -0
- package/dist/web/assets/vue-vine-DxBjHHk4.js +0 -1
- package/dist/web/assets/vue-vine-DxBjHHk4.js.br +0 -0
- package/dist/web/assets/vue-vine-DxBjHHk4.js.gz +0 -0
- package/dist/web/assets/window-pip-registry-9Y9LQQYS.js +0 -1
- package/dist/web/assets/window-store-vo1N70nK.js +0 -1
- package/dist/web/assets/window-store-vo1N70nK.js.br +0 -0
- package/dist/web/assets/window-store-vo1N70nK.js.gz +0 -0
- package/dist/web/assets/ws-auth-Ytui7dXP.js +0 -1
- package/dist/web/assets/xml-Zepcw_qF.js +0 -1
- package/dist/web/assets/xml-Zepcw_qF.js.br +0 -0
- package/dist/web/assets/xml-Zepcw_qF.js.gz +0 -0
- package/dist/web/assets/xsl-_m-WMWv3.js +0 -1
- package/dist/web/assets/xsl-_m-WMWv3.js.br +0 -0
- package/dist/web/assets/xsl-_m-WMWv3.js.gz +0 -0
- package/dist/web/assets/xychartDiagram-JWTSCODW-Z12EI4TX.js +0 -7
- package/dist/web/assets/xychartDiagram-JWTSCODW-Z12EI4TX.js.br +0 -0
- package/dist/web/assets/xychartDiagram-JWTSCODW-Z12EI4TX.js.gz +0 -0
- package/src/server/routes/fs-sqlite.ts +0 -129
- package/src/server/routes/postgres.ts +0 -92
- package/src/server/routes/sqlite.ts +0 -148
- package/src/services/database/split-sql-statements.ts +0 -95
- package/src/web/components/chat/change-edit-list.tsx +0 -50
- package/src/web/components/database/connection-form-dialog.tsx +0 -252
- package/src/web/components/database/connection-list.tsx +0 -192
- package/src/web/components/database/connection-row.tsx +0 -104
- package/src/web/components/database/database-viewer.tsx +0 -353
- package/src/web/components/database/glide-column-search.tsx +0 -81
- package/src/web/components/database/glide-data-preview-panel.tsx +0 -114
- package/src/web/components/database/glide-grid-pagination.tsx +0 -34
- package/src/web/components/database/glide-grid-toolbar.tsx +0 -105
- package/src/web/components/database/resolve-preview-data.ts +0 -62
- package/src/web/components/database/schema-table-tree.tsx +0 -98
- package/src/web/components/database/split-sql-statements.ts +0 -116
- package/src/web/components/database/use-db-tree-expansion.ts +0 -74
- package/src/web/components/database/use-glide-pending-edits.ts +0 -72
- package/src/web/components/database/use-glide-row-pinning.ts +0 -35
- package/src/web/components/postgres/postgres-viewer.tsx +0 -283
- package/src/web/components/postgres/use-postgres.ts +0 -161
- package/src/web/components/shared/bug-report-popup.tsx +0 -59
- package/src/web/components/sqlite/sqlite-data-grid.tsx +0 -213
- package/src/web/components/sqlite/sqlite-query-editor.tsx +0 -10
- package/src/web/components/sqlite/sqlite-table-list.tsx +0 -48
- package/src/web/components/sqlite/use-sqlite.ts +0 -135
- package/src/web/components/tunnels/named-tunnel/named-tunnel-section.tsx +0 -159
- package/src/web/components/tunnels/public-tunnel-switch.tsx +0 -82
- package/src/web/components/tunnels/tunnel-manager-tab.tsx +0 -207
- package/src/web/lib/report-bug.ts +0 -79
- /package/dist/web/assets/{__vite-browser-external-C5mXParC.js → __vite-browser-external-B4VNaaaA.js} +0 -0
- /package/dist/web/assets/{abap-Ds6L4g_T.js → abap-BIHt2d9F.js} +0 -0
- /package/dist/web/assets/{abap-Ds6L4g_T.js.br → abap-BIHt2d9F.js.br} +0 -0
- /package/dist/web/assets/{abap-Ds6L4g_T.js.gz → abap-BIHt2d9F.js.gz} +0 -0
- /package/dist/web/assets/{actionscript-3-CLNiH4aj.js → actionscript-3-rbCNRHFj.js} +0 -0
- /package/dist/web/assets/{actionscript-3-CLNiH4aj.js.br → actionscript-3-rbCNRHFj.js.br} +0 -0
- /package/dist/web/assets/{actionscript-3-CLNiH4aj.js.gz → actionscript-3-rbCNRHFj.js.gz} +0 -0
- /package/dist/web/assets/{ada-BoiebnO1.js → ada-CN94LQTJ.js} +0 -0
- /package/dist/web/assets/{ada-BoiebnO1.js.br → ada-CN94LQTJ.js.br} +0 -0
- /package/dist/web/assets/{ada-BoiebnO1.js.gz → ada-CN94LQTJ.js.gz} +0 -0
- /package/dist/web/assets/{andromeeda-CdMZLp1H.js → andromeeda-BsmcoXuQ.js} +0 -0
- /package/dist/web/assets/{andromeeda-CdMZLp1H.js.br → andromeeda-BsmcoXuQ.js.br} +0 -0
- /package/dist/web/assets/{andromeeda-CdMZLp1H.js.gz → andromeeda-BsmcoXuQ.js.gz} +0 -0
- /package/dist/web/assets/{apache-BKOdPQIP.js → apache-pRQmqcVZ.js} +0 -0
- /package/dist/web/assets/{apache-BKOdPQIP.js.br → apache-pRQmqcVZ.js.br} +0 -0
- /package/dist/web/assets/{apache-BKOdPQIP.js.gz → apache-pRQmqcVZ.js.gz} +0 -0
- /package/dist/web/assets/{apex-kTmPDDVo.js → apex-CNEumC1X.js} +0 -0
- /package/dist/web/assets/{apex-kTmPDDVo.js.br → apex-CNEumC1X.js.br} +0 -0
- /package/dist/web/assets/{apex-kTmPDDVo.js.gz → apex-CNEumC1X.js.gz} +0 -0
- /package/dist/web/assets/{applescript-C65SMPLe.js → applescript-DjEVsS-3.js} +0 -0
- /package/dist/web/assets/{applescript-C65SMPLe.js.br → applescript-DjEVsS-3.js.br} +0 -0
- /package/dist/web/assets/{applescript-C65SMPLe.js.gz → applescript-DjEVsS-3.js.gz} +0 -0
- /package/dist/web/assets/{apply-theme-Cc_cmrD5.js → apply-theme-ORrEdHKT.js} +0 -0
- /package/dist/web/assets/{ara-BKT6no2T.js → ara-DbhZRlTL.js} +0 -0
- /package/dist/web/assets/{ara-BKT6no2T.js.br → ara-DbhZRlTL.js.br} +0 -0
- /package/dist/web/assets/{ara-BKT6no2T.js.gz → ara-DbhZRlTL.js.gz} +0 -0
- /package/dist/web/assets/{array-F4LNYbhF.js → array-BQrdK5nm.js} +0 -0
- /package/dist/web/assets/{asciidoc-BGur0ue3.js → asciidoc-BsfbAXIK.js} +0 -0
- /package/dist/web/assets/{asciidoc-BGur0ue3.js.br → asciidoc-BsfbAXIK.js.br} +0 -0
- /package/dist/web/assets/{asciidoc-BGur0ue3.js.gz → asciidoc-BsfbAXIK.js.gz} +0 -0
- /package/dist/web/assets/{asm-DOfgqCKD.js → asm-Vw5NMXjI.js} +0 -0
- /package/dist/web/assets/{asm-DOfgqCKD.js.br → asm-Vw5NMXjI.js.br} +0 -0
- /package/dist/web/assets/{asm-DOfgqCKD.js.gz → asm-Vw5NMXjI.js.gz} +0 -0
- /package/dist/web/assets/{aurora-x-D64MWGxe.js → aurora-x-CoahU6sR.js} +0 -0
- /package/dist/web/assets/{aurora-x-D64MWGxe.js.br → aurora-x-CoahU6sR.js.br} +0 -0
- /package/dist/web/assets/{aurora-x-D64MWGxe.js.gz → aurora-x-CoahU6sR.js.gz} +0 -0
- /package/dist/web/assets/{awk-B_r8LcWp.js → awk-ChKjCxHz.js} +0 -0
- /package/dist/web/assets/{awk-B_r8LcWp.js.br → awk-ChKjCxHz.js.br} +0 -0
- /package/dist/web/assets/{awk-B_r8LcWp.js.gz → awk-ChKjCxHz.js.gz} +0 -0
- /package/dist/web/assets/{ayu-dark-DlDyr9-5.js → ayu-dark-By9RKxTf.js} +0 -0
- /package/dist/web/assets/{ayu-dark-DlDyr9-5.js.br → ayu-dark-By9RKxTf.js.br} +0 -0
- /package/dist/web/assets/{ayu-dark-DlDyr9-5.js.gz → ayu-dark-By9RKxTf.js.gz} +0 -0
- /package/dist/web/assets/{ayu-light-BF0a181n.js → ayu-light-CEsgeLON.js} +0 -0
- /package/dist/web/assets/{ayu-light-BF0a181n.js.br → ayu-light-CEsgeLON.js.br} +0 -0
- /package/dist/web/assets/{ayu-light-BF0a181n.js.gz → ayu-light-CEsgeLON.js.gz} +0 -0
- /package/dist/web/assets/{ayu-mirage-B6hnRsHM.js → ayu-mirage-CYrtwSLW.js} +0 -0
- /package/dist/web/assets/{ayu-mirage-B6hnRsHM.js.br → ayu-mirage-CYrtwSLW.js.br} +0 -0
- /package/dist/web/assets/{ayu-mirage-B6hnRsHM.js.gz → ayu-mirage-CYrtwSLW.js.gz} +0 -0
- /package/dist/web/assets/{ballerina-CyhD34qA.js → ballerina-CCSVz22W.js} +0 -0
- /package/dist/web/assets/{ballerina-CyhD34qA.js.br → ballerina-CCSVz22W.js.br} +0 -0
- /package/dist/web/assets/{ballerina-CyhD34qA.js.gz → ballerina-CCSVz22W.js.gz} +0 -0
- /package/dist/web/assets/{bat-wHB_k1YG.js → bat-DU4--CMj.js} +0 -0
- /package/dist/web/assets/{bat-wHB_k1YG.js.br → bat-DU4--CMj.js.br} +0 -0
- /package/dist/web/assets/{bat-wHB_k1YG.js.gz → bat-DU4--CMj.js.gz} +0 -0
- /package/dist/web/assets/{beancount-SUF8MnzM.js → beancount-DF_tlRlF.js} +0 -0
- /package/dist/web/assets/{beancount-SUF8MnzM.js.br → beancount-DF_tlRlF.js.br} +0 -0
- /package/dist/web/assets/{beancount-SUF8MnzM.js.gz → beancount-DF_tlRlF.js.gz} +0 -0
- /package/dist/web/assets/{berry-BP_34_jr.js → berry-CZTnatvO.js} +0 -0
- /package/dist/web/assets/{berry-BP_34_jr.js.br → berry-CZTnatvO.js.br} +0 -0
- /package/dist/web/assets/{berry-BP_34_jr.js.gz → berry-CZTnatvO.js.gz} +0 -0
- /package/dist/web/assets/{bibtex-DKgKw2bN.js → bibtex-BSpXy8jk.js} +0 -0
- /package/dist/web/assets/{bibtex-DKgKw2bN.js.br → bibtex-BSpXy8jk.js.br} +0 -0
- /package/dist/web/assets/{bibtex-DKgKw2bN.js.gz → bibtex-BSpXy8jk.js.gz} +0 -0
- /package/dist/web/assets/{bicep-BjU-KQeN.js → bicep-yv1Ydq5Z.js} +0 -0
- /package/dist/web/assets/{bicep-BjU-KQeN.js.br → bicep-yv1Ydq5Z.js.br} +0 -0
- /package/dist/web/assets/{bicep-BjU-KQeN.js.gz → bicep-yv1Ydq5Z.js.gz} +0 -0
- /package/dist/web/assets/{bird2-CCFmrT2P.js → bird2-Db7Z7SMN.js} +0 -0
- /package/dist/web/assets/{bird2-CCFmrT2P.js.br → bird2-Db7Z7SMN.js.br} +0 -0
- /package/dist/web/assets/{bird2-CCFmrT2P.js.gz → bird2-Db7Z7SMN.js.gz} +0 -0
- /package/dist/web/assets/{c-BX-1170_.js → c-D2iyQzEt.js} +0 -0
- /package/dist/web/assets/{c-BX-1170_.js.br → c-D2iyQzEt.js.br} +0 -0
- /package/dist/web/assets/{c-BX-1170_.js.gz → c-D2iyQzEt.js.gz} +0 -0
- /package/dist/web/assets/{c3-DSc4IcLQ.js → c3-N4mKyst9.js} +0 -0
- /package/dist/web/assets/{c3-DSc4IcLQ.js.br → c3-N4mKyst9.js.br} +0 -0
- /package/dist/web/assets/{c3-DSc4IcLQ.js.gz → c3-N4mKyst9.js.gz} +0 -0
- /package/dist/web/assets/{cadence-CUaLlWyn.js → cadence-BYK8tFFk.js} +0 -0
- /package/dist/web/assets/{cadence-CUaLlWyn.js.br → cadence-BYK8tFFk.js.br} +0 -0
- /package/dist/web/assets/{cadence-CUaLlWyn.js.gz → cadence-BYK8tFFk.js.gz} +0 -0
- /package/dist/web/assets/{can-open-in-ppm-DeE2-kd5.js → can-open-in-ppm-CwrBTXOy.js} +0 -0
- /package/dist/web/assets/{can-open-in-ppm-DeE2-kd5.js.br → can-open-in-ppm-CwrBTXOy.js.br} +0 -0
- /package/dist/web/assets/{can-open-in-ppm-DeE2-kd5.js.gz → can-open-in-ppm-CwrBTXOy.js.gz} +0 -0
- /package/dist/web/assets/{catppuccin-frappe-BT3IMDYa.js → catppuccin-frappe-BK9Tv2XG.js} +0 -0
- /package/dist/web/assets/{catppuccin-frappe-BT3IMDYa.js.br → catppuccin-frappe-BK9Tv2XG.js.br} +0 -0
- /package/dist/web/assets/{catppuccin-frappe-BT3IMDYa.js.gz → catppuccin-frappe-BK9Tv2XG.js.gz} +0 -0
- /package/dist/web/assets/{catppuccin-latte-DM9i15n3.js → catppuccin-latte-De4mVCp3.js} +0 -0
- /package/dist/web/assets/{catppuccin-latte-DM9i15n3.js.br → catppuccin-latte-De4mVCp3.js.br} +0 -0
- /package/dist/web/assets/{catppuccin-latte-DM9i15n3.js.gz → catppuccin-latte-De4mVCp3.js.gz} +0 -0
- /package/dist/web/assets/{catppuccin-macchiato-CAEDr_h3.js → catppuccin-macchiato-Bxt_D7cs.js} +0 -0
- /package/dist/web/assets/{catppuccin-macchiato-CAEDr_h3.js.br → catppuccin-macchiato-Bxt_D7cs.js.br} +0 -0
- /package/dist/web/assets/{catppuccin-macchiato-CAEDr_h3.js.gz → catppuccin-macchiato-Bxt_D7cs.js.gz} +0 -0
- /package/dist/web/assets/{catppuccin-mocha-BzOmDckq.js → catppuccin-mocha-Dz2o8gN7.js} +0 -0
- /package/dist/web/assets/{catppuccin-mocha-BzOmDckq.js.br → catppuccin-mocha-Dz2o8gN7.js.br} +0 -0
- /package/dist/web/assets/{catppuccin-mocha-BzOmDckq.js.gz → catppuccin-mocha-Dz2o8gN7.js.gz} +0 -0
- /package/dist/web/assets/{clarity-BijZXjQ6.js → clarity-BJdh0Pw-.js} +0 -0
- /package/dist/web/assets/{clarity-BijZXjQ6.js.br → clarity-BJdh0Pw-.js.br} +0 -0
- /package/dist/web/assets/{clarity-BijZXjQ6.js.gz → clarity-BJdh0Pw-.js.gz} +0 -0
- /package/dist/web/assets/{clojure--ad2221W.js → clojure-DG-FYGzn.js} +0 -0
- /package/dist/web/assets/{clojure--ad2221W.js.br → clojure-DG-FYGzn.js.br} +0 -0
- /package/dist/web/assets/{clojure--ad2221W.js.gz → clojure-DG-FYGzn.js.gz} +0 -0
- /package/dist/web/assets/{cmake-DyjUMpXU.js → cmake-D1imEXan.js} +0 -0
- /package/dist/web/assets/{cmake-DyjUMpXU.js.br → cmake-D1imEXan.js.br} +0 -0
- /package/dist/web/assets/{cmake-DyjUMpXU.js.gz → cmake-D1imEXan.js.gz} +0 -0
- /package/dist/web/assets/{codeowners-BeMhKnC9.js → codeowners-YpylTFB5.js} +0 -0
- /package/dist/web/assets/{codeql-BGtwwp5_.js → codeql-ajDEPgqi.js} +0 -0
- /package/dist/web/assets/{codeql-BGtwwp5_.js.br → codeql-ajDEPgqi.js.br} +0 -0
- /package/dist/web/assets/{codeql-BGtwwp5_.js.gz → codeql-ajDEPgqi.js.gz} +0 -0
- /package/dist/web/assets/{common-lisp--ldIKs5M.js → common-lisp-C2sCrd-m.js} +0 -0
- /package/dist/web/assets/{common-lisp--ldIKs5M.js.br → common-lisp-C2sCrd-m.js.br} +0 -0
- /package/dist/web/assets/{common-lisp--ldIKs5M.js.gz → common-lisp-C2sCrd-m.js.gz} +0 -0
- /package/dist/web/assets/{coq-CRn01_Db.js → coq-BqybyDc9.js} +0 -0
- /package/dist/web/assets/{coq-CRn01_Db.js.br → coq-BqybyDc9.js.br} +0 -0
- /package/dist/web/assets/{coq-CRn01_Db.js.gz → coq-BqybyDc9.js.gz} +0 -0
- /package/dist/web/assets/{csharp-CuWM1IYq.js → csharp-nKCEiujy.js} +0 -0
- /package/dist/web/assets/{csharp-CuWM1IYq.js.br → csharp-nKCEiujy.js.br} +0 -0
- /package/dist/web/assets/{csharp-CuWM1IYq.js.gz → csharp-nKCEiujy.js.gz} +0 -0
- /package/dist/web/assets/{css-CQ_jz6Vl.js → css-BwwQrFr3.js} +0 -0
- /package/dist/web/assets/{css-CQ_jz6Vl.js.br → css-BwwQrFr3.js.br} +0 -0
- /package/dist/web/assets/{css-CQ_jz6Vl.js.gz → css-BwwQrFr3.js.gz} +0 -0
- /package/dist/web/assets/{csv-DP77pbR8.js → csv-Nh9vQwQm.js} +0 -0
- /package/dist/web/assets/{csv-DP77pbR8.js.br → csv-Nh9vQwQm.js.br} +0 -0
- /package/dist/web/assets/{csv-DP77pbR8.js.gz → csv-Nh9vQwQm.js.gz} +0 -0
- /package/dist/web/assets/{cue-DScL5ELc.js → cue-Ch79RPsU.js} +0 -0
- /package/dist/web/assets/{cue-DScL5ELc.js.br → cue-Ch79RPsU.js.br} +0 -0
- /package/dist/web/assets/{cue-DScL5ELc.js.gz → cue-Ch79RPsU.js.gz} +0 -0
- /package/dist/web/assets/{cypher-8ehI2vrw.js → cypher-CgiOQ6hs.js} +0 -0
- /package/dist/web/assets/{cypher-8ehI2vrw.js.br → cypher-CgiOQ6hs.js.br} +0 -0
- /package/dist/web/assets/{cypher-8ehI2vrw.js.gz → cypher-CgiOQ6hs.js.gz} +0 -0
- /package/dist/web/assets/{cytoscape.esm-BokGhmK2.js → cytoscape.esm-9PBaSM25.js} +0 -0
- /package/dist/web/assets/{cytoscape.esm-BokGhmK2.js.br → cytoscape.esm-9PBaSM25.js.br} +0 -0
- /package/dist/web/assets/{cytoscape.esm-BokGhmK2.js.gz → cytoscape.esm-9PBaSM25.js.gz} +0 -0
- /package/dist/web/assets/{d-BvFZUewv.js → d-CmBcySpH.js} +0 -0
- /package/dist/web/assets/{d-BvFZUewv.js.br → d-CmBcySpH.js.br} +0 -0
- /package/dist/web/assets/{d-BvFZUewv.js.gz → d-CmBcySpH.js.gz} +0 -0
- /package/dist/web/assets/{dark-plus-DKLywSFP.js → dark-plus-COLEX2ui.js} +0 -0
- /package/dist/web/assets/{dark-plus-DKLywSFP.js.br → dark-plus-COLEX2ui.js.br} +0 -0
- /package/dist/web/assets/{dark-plus-DKLywSFP.js.gz → dark-plus-COLEX2ui.js.gz} +0 -0
- /package/dist/web/assets/{dart-Cs_NJAZ7.js → dart-BTAArMcJ.js} +0 -0
- /package/dist/web/assets/{dart-Cs_NJAZ7.js.br → dart-BTAArMcJ.js.br} +0 -0
- /package/dist/web/assets/{dart-Cs_NJAZ7.js.gz → dart-BTAArMcJ.js.gz} +0 -0
- /package/dist/web/assets/{dax-BB8KgXzI.js → dax-BbZzRY9i.js} +0 -0
- /package/dist/web/assets/{dax-BB8KgXzI.js.br → dax-BbZzRY9i.js.br} +0 -0
- /package/dist/web/assets/{dax-BB8KgXzI.js.gz → dax-BbZzRY9i.js.gz} +0 -0
- /package/dist/web/assets/{defaultLocale-4xAk2LVU.js → defaultLocale-1Phej3f6.js} +0 -0
- /package/dist/web/assets/{defaultLocale-4xAk2LVU.js.br → defaultLocale-1Phej3f6.js.br} +0 -0
- /package/dist/web/assets/{defaultLocale-4xAk2LVU.js.gz → defaultLocale-1Phej3f6.js.gz} +0 -0
- /package/dist/web/assets/{design-system-status-label-ekiLyjKn.js → design-system-status-label-Cus6e2Df.js} +0 -0
- /package/dist/web/assets/{desktop-Cs6Sk5Pu.js → desktop-OmQvU3-J.js} +0 -0
- /package/dist/web/assets/{desktop-Cs6Sk5Pu.js.br → desktop-OmQvU3-J.js.br} +0 -0
- /package/dist/web/assets/{desktop-Cs6Sk5Pu.js.gz → desktop-OmQvU3-J.js.gz} +0 -0
- /package/dist/web/assets/{diff-CXSq83h3.js → diff-BEPnb9Fb.js} +0 -0
- /package/dist/web/assets/{diff-CXSq83h3.js.br → diff-BEPnb9Fb.js.br} +0 -0
- /package/dist/web/assets/{diff-CXSq83h3.js.gz → diff-BEPnb9Fb.js.gz} +0 -0
- /package/dist/web/assets/{dist-D7mSb2HC.js → dist--v_QGJF6.js} +0 -0
- /package/dist/web/assets/{dist-D7mSb2HC.js.br → dist--v_QGJF6.js.br} +0 -0
- /package/dist/web/assets/{dist-D7mSb2HC.js.gz → dist--v_QGJF6.js.gz} +0 -0
- /package/dist/web/assets/{dist-0EbiTA3n.js → dist-ChawRilJ.js} +0 -0
- /package/dist/web/assets/{dist-0EbiTA3n.js.br → dist-ChawRilJ.js.br} +0 -0
- /package/dist/web/assets/{dist-0EbiTA3n.js.gz → dist-ChawRilJ.js.gz} +0 -0
- /package/dist/web/assets/{docker-BX5p1mZ3.js → docker-Cg17HgTD.js} +0 -0
- /package/dist/web/assets/{docker-BX5p1mZ3.js.br → docker-Cg17HgTD.js.br} +0 -0
- /package/dist/web/assets/{docker-BX5p1mZ3.js.gz → docker-Cg17HgTD.js.gz} +0 -0
- /package/dist/web/assets/{dotenv-D8xdMiRo.js → dotenv-DEMIaY7V.js} +0 -0
- /package/dist/web/assets/{dotenv-D8xdMiRo.js.br → dotenv-DEMIaY7V.js.br} +0 -0
- /package/dist/web/assets/{dotenv-D8xdMiRo.js.gz → dotenv-DEMIaY7V.js.gz} +0 -0
- /package/dist/web/assets/{dracula-BNPKmiGE.js → dracula-BkCFq8SO.js} +0 -0
- /package/dist/web/assets/{dracula-BNPKmiGE.js.br → dracula-BkCFq8SO.js.br} +0 -0
- /package/dist/web/assets/{dracula-BNPKmiGE.js.gz → dracula-BkCFq8SO.js.gz} +0 -0
- /package/dist/web/assets/{dracula-soft-Bv4lLEFc.js → dracula-soft-Cjp6-ltF.js} +0 -0
- /package/dist/web/assets/{dracula-soft-Bv4lLEFc.js.br → dracula-soft-Cjp6-ltF.js.br} +0 -0
- /package/dist/web/assets/{dracula-soft-Bv4lLEFc.js.gz → dracula-soft-Cjp6-ltF.js.gz} +0 -0
- /package/dist/web/assets/{dream-maker-Yg8FPJu3.js → dream-maker-Ce7Y_UKj.js} +0 -0
- /package/dist/web/assets/{dream-maker-Yg8FPJu3.js.br → dream-maker-Ce7Y_UKj.js.br} +0 -0
- /package/dist/web/assets/{dream-maker-Yg8FPJu3.js.gz → dream-maker-Ce7Y_UKj.js.gz} +0 -0
- /package/dist/web/assets/{editor-font-CBszn6vt.js → editor-font-CdxKRKX-.js} +0 -0
- /package/dist/web/assets/{emacs-lisp-kBgNJmB7.js → emacs-lisp-BjpyfTbN.js} +0 -0
- /package/dist/web/assets/{emacs-lisp-kBgNJmB7.js.br → emacs-lisp-BjpyfTbN.js.br} +0 -0
- /package/dist/web/assets/{emacs-lisp-kBgNJmB7.js.gz → emacs-lisp-BjpyfTbN.js.gz} +0 -0
- /package/dist/web/assets/{everforest-dark-7XTfQW4s.js → everforest-dark-9r4okw1s.js} +0 -0
- /package/dist/web/assets/{everforest-dark-7XTfQW4s.js.br → everforest-dark-9r4okw1s.js.br} +0 -0
- /package/dist/web/assets/{everforest-dark-7XTfQW4s.js.gz → everforest-dark-9r4okw1s.js.gz} +0 -0
- /package/dist/web/assets/{everforest-light-CmPZPQmV.js → everforest-light-GCQTZ3Ju.js} +0 -0
- /package/dist/web/assets/{everforest-light-CmPZPQmV.js.br → everforest-light-GCQTZ3Ju.js.br} +0 -0
- /package/dist/web/assets/{everforest-light-CmPZPQmV.js.gz → everforest-light-GCQTZ3Ju.js.gz} +0 -0
- /package/dist/web/assets/{fennel-Dm71IPM6.js → fennel-ITjY5Z6u.js} +0 -0
- /package/dist/web/assets/{fennel-Dm71IPM6.js.br → fennel-ITjY5Z6u.js.br} +0 -0
- /package/dist/web/assets/{fennel-Dm71IPM6.js.gz → fennel-ITjY5Z6u.js.gz} +0 -0
- /package/dist/web/assets/{fish-CIzcfZjZ.js → fish-DP2uEzyg.js} +0 -0
- /package/dist/web/assets/{fish-CIzcfZjZ.js.br → fish-DP2uEzyg.js.br} +0 -0
- /package/dist/web/assets/{fish-CIzcfZjZ.js.gz → fish-DP2uEzyg.js.gz} +0 -0
- /package/dist/web/assets/{fluent-DFSMEphj.js → fluent-irzaP1f6.js} +0 -0
- /package/dist/web/assets/{fluent-DFSMEphj.js.br → fluent-irzaP1f6.js.br} +0 -0
- /package/dist/web/assets/{fluent-DFSMEphj.js.gz → fluent-irzaP1f6.js.gz} +0 -0
- /package/dist/web/assets/{format-bytes-FQmpZ25A.js → format-bytes-B2kC4sbB.js} +0 -0
- /package/dist/web/assets/{format-date-BMtvCeb9.js → format-date-CSHaU2wN.js} +0 -0
- /package/dist/web/assets/{fortran-free-form-xnlj2dLW.js → fortran-free-form-BAPoainr.js} +0 -0
- /package/dist/web/assets/{fortran-free-form-xnlj2dLW.js.br → fortran-free-form-BAPoainr.js.br} +0 -0
- /package/dist/web/assets/{fortran-free-form-xnlj2dLW.js.gz → fortran-free-form-BAPoainr.js.gz} +0 -0
- /package/dist/web/assets/{gdscript-DFnznHD1.js → gdscript-DJ098V1z.js} +0 -0
- /package/dist/web/assets/{gdscript-DFnznHD1.js.br → gdscript-DJ098V1z.js.br} +0 -0
- /package/dist/web/assets/{gdscript-DFnznHD1.js.gz → gdscript-DJ098V1z.js.gz} +0 -0
- /package/dist/web/assets/{gdshader-B9wvgXVU.js → gdshader-DS2Jfy-K.js} +0 -0
- /package/dist/web/assets/{gdshader-B9wvgXVU.js.br → gdshader-DS2Jfy-K.js.br} +0 -0
- /package/dist/web/assets/{gdshader-B9wvgXVU.js.gz → gdshader-DS2Jfy-K.js.gz} +0 -0
- /package/dist/web/assets/{genie-Bz0RXdFf.js → genie-CqfOaFFx.js} +0 -0
- /package/dist/web/assets/{genie-Bz0RXdFf.js.br → genie-CqfOaFFx.js.br} +0 -0
- /package/dist/web/assets/{genie-Bz0RXdFf.js.gz → genie-CqfOaFFx.js.gz} +0 -0
- /package/dist/web/assets/{gherkin-ZD8lWd_U.js → gherkin-CoZ2ucDH.js} +0 -0
- /package/dist/web/assets/{gherkin-ZD8lWd_U.js.br → gherkin-CoZ2ucDH.js.br} +0 -0
- /package/dist/web/assets/{gherkin-ZD8lWd_U.js.gz → gherkin-CoZ2ucDH.js.gz} +0 -0
- /package/dist/web/assets/{github-dark-D8IE4lln.js → github-dark-BNLgnSO9.js} +0 -0
- /package/dist/web/assets/{github-dark-D8IE4lln.js.br → github-dark-BNLgnSO9.js.br} +0 -0
- /package/dist/web/assets/{github-dark-D8IE4lln.js.gz → github-dark-BNLgnSO9.js.gz} +0 -0
- /package/dist/web/assets/{github-dark-default-Bv2-je5j.js → github-dark-default-CYlSggwi.js} +0 -0
- /package/dist/web/assets/{github-dark-default-Bv2-je5j.js.br → github-dark-default-CYlSggwi.js.br} +0 -0
- /package/dist/web/assets/{github-dark-default-Bv2-je5j.js.gz → github-dark-default-CYlSggwi.js.gz} +0 -0
- /package/dist/web/assets/{github-dark-dimmed-Dn2Abfcl.js → github-dark-dimmed-DumUysDk.js} +0 -0
- /package/dist/web/assets/{github-dark-dimmed-Dn2Abfcl.js.br → github-dark-dimmed-DumUysDk.js.br} +0 -0
- /package/dist/web/assets/{github-dark-dimmed-Dn2Abfcl.js.gz → github-dark-dimmed-DumUysDk.js.gz} +0 -0
- /package/dist/web/assets/{github-dark-high-contrast-CPYPXNHn.js → github-dark-high-contrast-TKrcDJ2I.js} +0 -0
- /package/dist/web/assets/{github-dark-high-contrast-CPYPXNHn.js.br → github-dark-high-contrast-TKrcDJ2I.js.br} +0 -0
- /package/dist/web/assets/{github-dark-high-contrast-CPYPXNHn.js.gz → github-dark-high-contrast-TKrcDJ2I.js.gz} +0 -0
- /package/dist/web/assets/{github-light-CVOMBMvb.js → github-light-DVENFHLJ.js} +0 -0
- /package/dist/web/assets/{github-light-CVOMBMvb.js.br → github-light-DVENFHLJ.js.br} +0 -0
- /package/dist/web/assets/{github-light-CVOMBMvb.js.gz → github-light-DVENFHLJ.js.gz} +0 -0
- /package/dist/web/assets/{github-light-default-6Ayk6lJY.js → github-light-default-DtN8AGcE.js} +0 -0
- /package/dist/web/assets/{github-light-default-6Ayk6lJY.js.br → github-light-default-DtN8AGcE.js.br} +0 -0
- /package/dist/web/assets/{github-light-default-6Ayk6lJY.js.gz → github-light-default-DtN8AGcE.js.gz} +0 -0
- /package/dist/web/assets/{github-light-high-contrast-BTGKd6JI.js → github-light-high-contrast-NSyF37x4.js} +0 -0
- /package/dist/web/assets/{github-light-high-contrast-BTGKd6JI.js.br → github-light-high-contrast-NSyF37x4.js.br} +0 -0
- /package/dist/web/assets/{github-light-high-contrast-BTGKd6JI.js.gz → github-light-high-contrast-NSyF37x4.js.gz} +0 -0
- /package/dist/web/assets/{gleam-UeA7_OU8.js → gleam-hp4NMSb5.js} +0 -0
- /package/dist/web/assets/{gleam-UeA7_OU8.js.br → gleam-hp4NMSb5.js.br} +0 -0
- /package/dist/web/assets/{gleam-UeA7_OU8.js.gz → gleam-hp4NMSb5.js.gz} +0 -0
- /package/dist/web/assets/{gn-DrdNDhFj.js → gn-Dptw2PEu.js} +0 -0
- /package/dist/web/assets/{gn-DrdNDhFj.js.br → gn-Dptw2PEu.js.br} +0 -0
- /package/dist/web/assets/{gn-DrdNDhFj.js.gz → gn-Dptw2PEu.js.gz} +0 -0
- /package/dist/web/assets/{gnuplot-D8vxhaGw.js → gnuplot-9juRzjwv.js} +0 -0
- /package/dist/web/assets/{gnuplot-D8vxhaGw.js.br → gnuplot-9juRzjwv.js.br} +0 -0
- /package/dist/web/assets/{gnuplot-D8vxhaGw.js.gz → gnuplot-9juRzjwv.js.gz} +0 -0
- /package/dist/web/assets/{go-atNMhmH3.js → go-D-QLCda0.js} +0 -0
- /package/dist/web/assets/{go-atNMhmH3.js.br → go-D-QLCda0.js.br} +0 -0
- /package/dist/web/assets/{go-atNMhmH3.js.gz → go-D-QLCda0.js.gz} +0 -0
- /package/dist/web/assets/{groovy-CLRzHDW2.js → groovy-DHKNy6Eh.js} +0 -0
- /package/dist/web/assets/{groovy-CLRzHDW2.js.br → groovy-DHKNy6Eh.js.br} +0 -0
- /package/dist/web/assets/{groovy-CLRzHDW2.js.gz → groovy-DHKNy6Eh.js.gz} +0 -0
- /package/dist/web/assets/{gruvbox-dark-hard-CMSNCrAk.js → gruvbox-dark-hard-BFD6aQdB.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-hard-CMSNCrAk.js.br → gruvbox-dark-hard-BFD6aQdB.js.br} +0 -0
- /package/dist/web/assets/{gruvbox-dark-hard-CMSNCrAk.js.gz → gruvbox-dark-hard-BFD6aQdB.js.gz} +0 -0
- /package/dist/web/assets/{gruvbox-dark-medium-CR5wAM1c.js → gruvbox-dark-medium-D5llYBNp.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-medium-CR5wAM1c.js.br → gruvbox-dark-medium-D5llYBNp.js.br} +0 -0
- /package/dist/web/assets/{gruvbox-dark-medium-CR5wAM1c.js.gz → gruvbox-dark-medium-D5llYBNp.js.gz} +0 -0
- /package/dist/web/assets/{gruvbox-dark-soft-Ba1gP2O2.js → gruvbox-dark-soft-DOztQmNR.js} +0 -0
- /package/dist/web/assets/{gruvbox-dark-soft-Ba1gP2O2.js.br → gruvbox-dark-soft-DOztQmNR.js.br} +0 -0
- /package/dist/web/assets/{gruvbox-dark-soft-Ba1gP2O2.js.gz → gruvbox-dark-soft-DOztQmNR.js.gz} +0 -0
- /package/dist/web/assets/{gruvbox-light-hard-ChSY383t.js → gruvbox-light-hard-BFGD-8Pd.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-hard-ChSY383t.js.br → gruvbox-light-hard-BFGD-8Pd.js.br} +0 -0
- /package/dist/web/assets/{gruvbox-light-hard-ChSY383t.js.gz → gruvbox-light-hard-BFGD-8Pd.js.gz} +0 -0
- /package/dist/web/assets/{gruvbox-light-medium-DebZzeA2.js → gruvbox-light-medium-DzoyXgT7.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-medium-DebZzeA2.js.br → gruvbox-light-medium-DzoyXgT7.js.br} +0 -0
- /package/dist/web/assets/{gruvbox-light-medium-DebZzeA2.js.gz → gruvbox-light-medium-DzoyXgT7.js.gz} +0 -0
- /package/dist/web/assets/{gruvbox-light-soft-CEWqv8Ew.js → gruvbox-light-soft-B1Ix2zLN.js} +0 -0
- /package/dist/web/assets/{gruvbox-light-soft-CEWqv8Ew.js.br → gruvbox-light-soft-B1Ix2zLN.js.br} +0 -0
- /package/dist/web/assets/{gruvbox-light-soft-CEWqv8Ew.js.gz → gruvbox-light-soft-B1Ix2zLN.js.gz} +0 -0
- /package/dist/web/assets/{haskell-CkgCblz9.js → haskell-BnrJ0k7G.js} +0 -0
- /package/dist/web/assets/{haskell-CkgCblz9.js.br → haskell-BnrJ0k7G.js.br} +0 -0
- /package/dist/web/assets/{haskell-CkgCblz9.js.gz → haskell-BnrJ0k7G.js.gz} +0 -0
- /package/dist/web/assets/{haxe-DwOdNXRl.js → haxe-DwShHT_-.js} +0 -0
- /package/dist/web/assets/{haxe-DwOdNXRl.js.br → haxe-DwShHT_-.js.br} +0 -0
- /package/dist/web/assets/{haxe-DwOdNXRl.js.gz → haxe-DwShHT_-.js.gz} +0 -0
- /package/dist/web/assets/{hcl-DXsxN8nX.js → hcl-VOjEibVB.js} +0 -0
- /package/dist/web/assets/{hcl-DXsxN8nX.js.br → hcl-VOjEibVB.js.br} +0 -0
- /package/dist/web/assets/{hcl-DXsxN8nX.js.gz → hcl-VOjEibVB.js.gz} +0 -0
- /package/dist/web/assets/{hjson-oBOZxrL4.js → hjson-BHEn7pNn.js} +0 -0
- /package/dist/web/assets/{hjson-oBOZxrL4.js.br → hjson-BHEn7pNn.js.br} +0 -0
- /package/dist/web/assets/{hjson-oBOZxrL4.js.gz → hjson-BHEn7pNn.js.gz} +0 -0
- /package/dist/web/assets/{hlsl-VEZxDU3L.js → hlsl-CrvxlGii.js} +0 -0
- /package/dist/web/assets/{hlsl-VEZxDU3L.js.br → hlsl-CrvxlGii.js.br} +0 -0
- /package/dist/web/assets/{hlsl-VEZxDU3L.js.gz → hlsl-CrvxlGii.js.gz} +0 -0
- /package/dist/web/assets/{horizon-C_xHTsMO.js → horizon-D3T-P0u6.js} +0 -0
- /package/dist/web/assets/{horizon-C_xHTsMO.js.br → horizon-D3T-P0u6.js.br} +0 -0
- /package/dist/web/assets/{horizon-C_xHTsMO.js.gz → horizon-D3T-P0u6.js.gz} +0 -0
- /package/dist/web/assets/{horizon-bright-CJd-vMFG.js → horizon-bright-vifGsEdk.js} +0 -0
- /package/dist/web/assets/{horizon-bright-CJd-vMFG.js.br → horizon-bright-vifGsEdk.js.br} +0 -0
- /package/dist/web/assets/{horizon-bright-CJd-vMFG.js.gz → horizon-bright-vifGsEdk.js.gz} +0 -0
- /package/dist/web/assets/{houston-BYOfZpV9.js → houston-IrOgT7r4.js} +0 -0
- /package/dist/web/assets/{houston-BYOfZpV9.js.br → houston-IrOgT7r4.js.br} +0 -0
- /package/dist/web/assets/{houston-BYOfZpV9.js.gz → houston-IrOgT7r4.js.gz} +0 -0
- /package/dist/web/assets/{hy-DiruP4wR.js → hy-5eSgTJ8G.js} +0 -0
- /package/dist/web/assets/{hy-DiruP4wR.js.br → hy-5eSgTJ8G.js.br} +0 -0
- /package/dist/web/assets/{hy-DiruP4wR.js.gz → hy-5eSgTJ8G.js.gz} +0 -0
- /package/dist/web/assets/{image-gallery-B16hO6Ab.js → image-gallery-BuxSgBug.js} +0 -0
- /package/dist/web/assets/{image-preview-geometry-D4Ihz4UV.js → image-preview-geometry-CCq8rio7.js} +0 -0
- /package/dist/web/assets/{imba-BBm5cmpQ.js → imba-Dp0I4DVl.js} +0 -0
- /package/dist/web/assets/{imba-BBm5cmpQ.js.br → imba-Dp0I4DVl.js.br} +0 -0
- /package/dist/web/assets/{imba-BBm5cmpQ.js.gz → imba-Dp0I4DVl.js.gz} +0 -0
- /package/dist/web/assets/{ini-DIjchSIH.js → ini-CHDKad9O.js} +0 -0
- /package/dist/web/assets/{ini-DIjchSIH.js.br → ini-CHDKad9O.js.br} +0 -0
- /package/dist/web/assets/{ini-DIjchSIH.js.gz → ini-CHDKad9O.js.gz} +0 -0
- /package/dist/web/assets/{init-Cf64k-PQ.js → init-YGhXRxki.js} +0 -0
- /package/dist/web/assets/{isArrayLikeObject-DoNOpNUH.js → isArrayLikeObject-DHTG10am.js} +0 -0
- /package/dist/web/assets/{isArrayLikeObject-DoNOpNUH.js.br → isArrayLikeObject-DHTG10am.js.br} +0 -0
- /package/dist/web/assets/{isArrayLikeObject-DoNOpNUH.js.gz → isArrayLikeObject-DHTG10am.js.gz} +0 -0
- /package/dist/web/assets/{java-BjdsRxXN.js → java-ClnCQCSW.js} +0 -0
- /package/dist/web/assets/{java-BjdsRxXN.js.br → java-ClnCQCSW.js.br} +0 -0
- /package/dist/web/assets/{java-BjdsRxXN.js.gz → java-ClnCQCSW.js.gz} +0 -0
- /package/dist/web/assets/{javascript-R2SZ_OEC.js → javascript-D1PM1fYV.js} +0 -0
- /package/dist/web/assets/{javascript-R2SZ_OEC.js.br → javascript-D1PM1fYV.js.br} +0 -0
- /package/dist/web/assets/{javascript-R2SZ_OEC.js.gz → javascript-D1PM1fYV.js.gz} +0 -0
- /package/dist/web/assets/{json-CYCJeTwK.js → json-DELY1EIR.js} +0 -0
- /package/dist/web/assets/{json-CYCJeTwK.js.br → json-DELY1EIR.js.br} +0 -0
- /package/dist/web/assets/{json-CYCJeTwK.js.gz → json-DELY1EIR.js.gz} +0 -0
- /package/dist/web/assets/{json5-0Pz845K0.js → json5-D6f_uNwJ.js} +0 -0
- /package/dist/web/assets/{json5-0Pz845K0.js.br → json5-D6f_uNwJ.js.br} +0 -0
- /package/dist/web/assets/{json5-0Pz845K0.js.gz → json5-D6f_uNwJ.js.gz} +0 -0
- /package/dist/web/assets/{jsonc-B0jdT4uM.js → jsonc-DrHCdmos.js} +0 -0
- /package/dist/web/assets/{jsonc-B0jdT4uM.js.br → jsonc-DrHCdmos.js.br} +0 -0
- /package/dist/web/assets/{jsonc-B0jdT4uM.js.gz → jsonc-DrHCdmos.js.gz} +0 -0
- /package/dist/web/assets/{jsonl-CdvFKZtz.js → jsonl-Cwc3cXEL.js} +0 -0
- /package/dist/web/assets/{jsonl-CdvFKZtz.js.br → jsonl-Cwc3cXEL.js.br} +0 -0
- /package/dist/web/assets/{jsonl-CdvFKZtz.js.gz → jsonl-Cwc3cXEL.js.gz} +0 -0
- /package/dist/web/assets/{jsonnet-BYd5ZGqe.js → jsonnet-BwZfaIFT.js} +0 -0
- /package/dist/web/assets/{jsonnet-BYd5ZGqe.js.br → jsonnet-BwZfaIFT.js.br} +0 -0
- /package/dist/web/assets/{jsonnet-BYd5ZGqe.js.gz → jsonnet-BwZfaIFT.js.gz} +0 -0
- /package/dist/web/assets/{jssm-BlBU_IK1.js → jssm-BpEmg_MT.js} +0 -0
- /package/dist/web/assets/{jssm-BlBU_IK1.js.br → jssm-BpEmg_MT.js.br} +0 -0
- /package/dist/web/assets/{jssm-BlBU_IK1.js.gz → jssm-BpEmg_MT.js.gz} +0 -0
- /package/dist/web/assets/{jsx-CsWR7aMm.js → jsx-BOrwA6ld.js} +0 -0
- /package/dist/web/assets/{jsx-CsWR7aMm.js.br → jsx-BOrwA6ld.js.br} +0 -0
- /package/dist/web/assets/{jsx-CsWR7aMm.js.gz → jsx-BOrwA6ld.js.gz} +0 -0
- /package/dist/web/assets/{kanagawa-dragon-C6ogFc3X.js → kanagawa-dragon-DRfVaGIX.js} +0 -0
- /package/dist/web/assets/{kanagawa-dragon-C6ogFc3X.js.br → kanagawa-dragon-DRfVaGIX.js.br} +0 -0
- /package/dist/web/assets/{kanagawa-dragon-C6ogFc3X.js.gz → kanagawa-dragon-DRfVaGIX.js.gz} +0 -0
- /package/dist/web/assets/{kanagawa-lotus-8esZNUbA.js → kanagawa-lotus-CjOlny0Q.js} +0 -0
- /package/dist/web/assets/{kanagawa-lotus-8esZNUbA.js.br → kanagawa-lotus-CjOlny0Q.js.br} +0 -0
- /package/dist/web/assets/{kanagawa-lotus-8esZNUbA.js.gz → kanagawa-lotus-CjOlny0Q.js.gz} +0 -0
- /package/dist/web/assets/{kanagawa-wave-C-yWQ6RD.js → kanagawa-wave-DvdM88a4.js} +0 -0
- /package/dist/web/assets/{kanagawa-wave-C-yWQ6RD.js.br → kanagawa-wave-DvdM88a4.js.br} +0 -0
- /package/dist/web/assets/{kanagawa-wave-C-yWQ6RD.js.gz → kanagawa-wave-DvdM88a4.js.gz} +0 -0
- /package/dist/web/assets/{katex-Cz0KLyXA.js → katex-BHtqYBze.js} +0 -0
- /package/dist/web/assets/{katex-Cz0KLyXA.js.br → katex-BHtqYBze.js.br} +0 -0
- /package/dist/web/assets/{katex-Cz0KLyXA.js.gz → katex-BHtqYBze.js.gz} +0 -0
- /package/dist/web/assets/{kdl-D712OVXR.js → kdl-DSo3PvM0.js} +0 -0
- /package/dist/web/assets/{kdl-D712OVXR.js.br → kdl-DSo3PvM0.js.br} +0 -0
- /package/dist/web/assets/{kdl-D712OVXR.js.gz → kdl-DSo3PvM0.js.gz} +0 -0
- /package/dist/web/assets/{kotlin-BEUa7XzN.js → kotlin-BV8TwCGu.js} +0 -0
- /package/dist/web/assets/{kotlin-BEUa7XzN.js.br → kotlin-BV8TwCGu.js.br} +0 -0
- /package/dist/web/assets/{kotlin-BEUa7XzN.js.gz → kotlin-BV8TwCGu.js.gz} +0 -0
- /package/dist/web/assets/{kusto-n4J6aIey.js → kusto-DCo1Fdmm.js} +0 -0
- /package/dist/web/assets/{kusto-n4J6aIey.js.br → kusto-DCo1Fdmm.js.br} +0 -0
- /package/dist/web/assets/{kusto-n4J6aIey.js.gz → kusto-DCo1Fdmm.js.gz} +0 -0
- /package/dist/web/assets/{laserwave-CddL9sH-.js → laserwave-DPX9FvD9.js} +0 -0
- /package/dist/web/assets/{laserwave-CddL9sH-.js.br → laserwave-DPX9FvD9.js.br} +0 -0
- /package/dist/web/assets/{laserwave-CddL9sH-.js.gz → laserwave-DPX9FvD9.js.gz} +0 -0
- /package/dist/web/assets/{lean-CS8dnaPi.js → lean-Cya8dqZu.js} +0 -0
- /package/dist/web/assets/{lean-CS8dnaPi.js.br → lean-Cya8dqZu.js.br} +0 -0
- /package/dist/web/assets/{lean-CS8dnaPi.js.gz → lean-Cya8dqZu.js.gz} +0 -0
- /package/dist/web/assets/{less-D7VWEXeK.js → less-CJUPgkIs.js} +0 -0
- /package/dist/web/assets/{less-D7VWEXeK.js.br → less-CJUPgkIs.js.br} +0 -0
- /package/dist/web/assets/{less-D7VWEXeK.js.gz → less-CJUPgkIs.js.gz} +0 -0
- /package/dist/web/assets/{libesm-5wREk7JN.js → libesm-B6LsX5wH.js} +0 -0
- /package/dist/web/assets/{libesm-5wREk7JN.js.br → libesm-B6LsX5wH.js.br} +0 -0
- /package/dist/web/assets/{libesm-5wREk7JN.js.gz → libesm-B6LsX5wH.js.gz} +0 -0
- /package/dist/web/assets/{light-plus-DUh-yC9k.js → light-plus-BXXrlFJH.js} +0 -0
- /package/dist/web/assets/{light-plus-DUh-yC9k.js.br → light-plus-BXXrlFJH.js.br} +0 -0
- /package/dist/web/assets/{light-plus-DUh-yC9k.js.gz → light-plus-BXXrlFJH.js.gz} +0 -0
- /package/dist/web/assets/{llvm-P1D8XyMB.js → llvm-CUbQanZr.js} +0 -0
- /package/dist/web/assets/{llvm-P1D8XyMB.js.br → llvm-CUbQanZr.js.br} +0 -0
- /package/dist/web/assets/{llvm-P1D8XyMB.js.gz → llvm-CUbQanZr.js.gz} +0 -0
- /package/dist/web/assets/{log-BGft0RQz.js → log-B3fFlSMd.js} +0 -0
- /package/dist/web/assets/{log-BGft0RQz.js.br → log-B3fFlSMd.js.br} +0 -0
- /package/dist/web/assets/{log-BGft0RQz.js.gz → log-B3fFlSMd.js.gz} +0 -0
- /package/dist/web/assets/{logo-uFZx2JEw.js → logo-ucAyw6zf.js} +0 -0
- /package/dist/web/assets/{logo-uFZx2JEw.js.br → logo-ucAyw6zf.js.br} +0 -0
- /package/dist/web/assets/{logo-uFZx2JEw.js.gz → logo-ucAyw6zf.js.gz} +0 -0
- /package/dist/web/assets/{luau-aDpnpIe3.js → luau-C4l6TSTB.js} +0 -0
- /package/dist/web/assets/{luau-aDpnpIe3.js.br → luau-C4l6TSTB.js.br} +0 -0
- /package/dist/web/assets/{luau-aDpnpIe3.js.gz → luau-C4l6TSTB.js.gz} +0 -0
- /package/dist/web/assets/{make-DwjpJeU5.js → make-CDtGIVc7.js} +0 -0
- /package/dist/web/assets/{make-DwjpJeU5.js.br → make-CDtGIVc7.js.br} +0 -0
- /package/dist/web/assets/{make-DwjpJeU5.js.gz → make-CDtGIVc7.js.gz} +0 -0
- /package/dist/web/assets/{markdown-DC-eWqXi.js → markdown-CH1zKu2p.js} +0 -0
- /package/dist/web/assets/{markdown-DC-eWqXi.js.br → markdown-CH1zKu2p.js.br} +0 -0
- /package/dist/web/assets/{markdown-DC-eWqXi.js.gz → markdown-CH1zKu2p.js.gz} +0 -0
- /package/dist/web/assets/{marked.esm-DDb9MclE.js → marked.esm-jqwIt-AK.js} +0 -0
- /package/dist/web/assets/{marked.esm-DDb9MclE.js.br → marked.esm-jqwIt-AK.js.br} +0 -0
- /package/dist/web/assets/{marked.esm-DDb9MclE.js.gz → marked.esm-jqwIt-AK.js.gz} +0 -0
- /package/dist/web/assets/{material-theme-9BivM5cB.js → material-theme-CEuGVTmh.js} +0 -0
- /package/dist/web/assets/{material-theme-9BivM5cB.js.br → material-theme-CEuGVTmh.js.br} +0 -0
- /package/dist/web/assets/{material-theme-9BivM5cB.js.gz → material-theme-CEuGVTmh.js.gz} +0 -0
- /package/dist/web/assets/{material-theme-darker-Bg7I3WIw.js → material-theme-darker-CUZ3MoIr.js} +0 -0
- /package/dist/web/assets/{material-theme-darker-Bg7I3WIw.js.br → material-theme-darker-CUZ3MoIr.js.br} +0 -0
- /package/dist/web/assets/{material-theme-darker-Bg7I3WIw.js.gz → material-theme-darker-CUZ3MoIr.js.gz} +0 -0
- /package/dist/web/assets/{material-theme-lighter-BoEshpBb.js → material-theme-lighter-DxAqJSid.js} +0 -0
- /package/dist/web/assets/{material-theme-lighter-BoEshpBb.js.br → material-theme-lighter-DxAqJSid.js.br} +0 -0
- /package/dist/web/assets/{material-theme-lighter-BoEshpBb.js.gz → material-theme-lighter-DxAqJSid.js.gz} +0 -0
- /package/dist/web/assets/{material-theme-ocean-CmKcBlBP.js → material-theme-ocean-BSvvHJp6.js} +0 -0
- /package/dist/web/assets/{material-theme-ocean-CmKcBlBP.js.br → material-theme-ocean-BSvvHJp6.js.br} +0 -0
- /package/dist/web/assets/{material-theme-ocean-CmKcBlBP.js.gz → material-theme-ocean-BSvvHJp6.js.gz} +0 -0
- /package/dist/web/assets/{material-theme-palenight-CUyfHC0C.js → material-theme-palenight-QVOl50_m.js} +0 -0
- /package/dist/web/assets/{material-theme-palenight-CUyfHC0C.js.br → material-theme-palenight-QVOl50_m.js.br} +0 -0
- /package/dist/web/assets/{material-theme-palenight-CUyfHC0C.js.gz → material-theme-palenight-QVOl50_m.js.gz} +0 -0
- /package/dist/web/assets/{math-DAaFbMeh.js → math-iYw0Gln4.js} +0 -0
- /package/dist/web/assets/{matlab-CqBfVqYF.js → matlab-CZLQLwUp.js} +0 -0
- /package/dist/web/assets/{matlab-CqBfVqYF.js.br → matlab-CZLQLwUp.js.br} +0 -0
- /package/dist/web/assets/{matlab-CqBfVqYF.js.gz → matlab-CZLQLwUp.js.gz} +0 -0
- /package/dist/web/assets/{mdx-CdC2mVzF.js → mdx-DO4NJsOo.js} +0 -0
- /package/dist/web/assets/{mdx-CdC2mVzF.js.br → mdx-DO4NJsOo.js.br} +0 -0
- /package/dist/web/assets/{mdx-CdC2mVzF.js.gz → mdx-DO4NJsOo.js.gz} +0 -0
- /package/dist/web/assets/{mermaid-B542RnGP.js → mermaid-CIwzg1uO.js} +0 -0
- /package/dist/web/assets/{mermaid-B542RnGP.js.br → mermaid-CIwzg1uO.js.br} +0 -0
- /package/dist/web/assets/{mermaid-B542RnGP.js.gz → mermaid-CIwzg1uO.js.gz} +0 -0
- /package/dist/web/assets/{metric-chart-canvas-D7f-LQ8x.js → metric-chart-canvas-LAMaVJTu.js} +0 -0
- /package/dist/web/assets/{metric-chart-canvas-D7f-LQ8x.js.br → metric-chart-canvas-LAMaVJTu.js.br} +0 -0
- /package/dist/web/assets/{metric-chart-canvas-D7f-LQ8x.js.gz → metric-chart-canvas-LAMaVJTu.js.gz} +0 -0
- /package/dist/web/assets/{min-dark-uGP-9UE_.js → min-dark-BdIgslXy.js} +0 -0
- /package/dist/web/assets/{min-dark-uGP-9UE_.js.br → min-dark-BdIgslXy.js.br} +0 -0
- /package/dist/web/assets/{min-dark-uGP-9UE_.js.gz → min-dark-BdIgslXy.js.gz} +0 -0
- /package/dist/web/assets/{min-light-BkFlXt3G.js → min-light-DyU-T1r2.js} +0 -0
- /package/dist/web/assets/{min-light-BkFlXt3G.js.br → min-light-DyU-T1r2.js.br} +0 -0
- /package/dist/web/assets/{min-light-BkFlXt3G.js.gz → min-light-DyU-T1r2.js.gz} +0 -0
- /package/dist/web/assets/{mipsasm-CkaxcMA-.js → mipsasm-DRad-Klm.js} +0 -0
- /package/dist/web/assets/{mipsasm-CkaxcMA-.js.br → mipsasm-DRad-Klm.js.br} +0 -0
- /package/dist/web/assets/{mipsasm-CkaxcMA-.js.gz → mipsasm-DRad-Klm.js.gz} +0 -0
- /package/dist/web/assets/{mojo-DDh7AQLv.js → mojo-DXp5LDOc.js} +0 -0
- /package/dist/web/assets/{mojo-DDh7AQLv.js.br → mojo-DXp5LDOc.js.br} +0 -0
- /package/dist/web/assets/{mojo-DDh7AQLv.js.gz → mojo-DXp5LDOc.js.gz} +0 -0
- /package/dist/web/assets/{monokai-BA4dkSrE.js → monokai-BiKX3qby.js} +0 -0
- /package/dist/web/assets/{monokai-BA4dkSrE.js.br → monokai-BiKX3qby.js.br} +0 -0
- /package/dist/web/assets/{monokai-BA4dkSrE.js.gz → monokai-BiKX3qby.js.gz} +0 -0
- /package/dist/web/assets/{moonbit-DGxZDax4.js → moonbit-BOUoLF5r.js} +0 -0
- /package/dist/web/assets/{moonbit-DGxZDax4.js.br → moonbit-BOUoLF5r.js.br} +0 -0
- /package/dist/web/assets/{moonbit-DGxZDax4.js.gz → moonbit-BOUoLF5r.js.gz} +0 -0
- /package/dist/web/assets/{move-C1HZaVNc.js → move-Dlk64FWK.js} +0 -0
- /package/dist/web/assets/{move-C1HZaVNc.js.br → move-Dlk64FWK.js.br} +0 -0
- /package/dist/web/assets/{move-C1HZaVNc.js.gz → move-Dlk64FWK.js.gz} +0 -0
- /package/dist/web/assets/{narrat-g4c9qhYS.js → narrat-B-qd2Lh0.js} +0 -0
- /package/dist/web/assets/{narrat-g4c9qhYS.js.br → narrat-B-qd2Lh0.js.br} +0 -0
- /package/dist/web/assets/{narrat-g4c9qhYS.js.gz → narrat-B-qd2Lh0.js.gz} +0 -0
- /package/dist/web/assets/{nextflow-groovy-CisdbLPv.js → nextflow-groovy-iAMYas0F.js} +0 -0
- /package/dist/web/assets/{nextflow-groovy-CisdbLPv.js.br → nextflow-groovy-iAMYas0F.js.br} +0 -0
- /package/dist/web/assets/{nextflow-groovy-CisdbLPv.js.gz → nextflow-groovy-iAMYas0F.js.gz} +0 -0
- /package/dist/web/assets/{night-owl-ds7NNgBg.js → night-owl-3YNqjftR.js} +0 -0
- /package/dist/web/assets/{night-owl-ds7NNgBg.js.br → night-owl-3YNqjftR.js.br} +0 -0
- /package/dist/web/assets/{night-owl-ds7NNgBg.js.gz → night-owl-3YNqjftR.js.gz} +0 -0
- /package/dist/web/assets/{night-owl-light-DurCGAfC.js → night-owl-light-GIncHb5w.js} +0 -0
- /package/dist/web/assets/{night-owl-light-DurCGAfC.js.br → night-owl-light-GIncHb5w.js.br} +0 -0
- /package/dist/web/assets/{night-owl-light-DurCGAfC.js.gz → night-owl-light-GIncHb5w.js.gz} +0 -0
- /package/dist/web/assets/{nix-D7kCv9F9.js → nix-xjlEb3uw.js} +0 -0
- /package/dist/web/assets/{nix-D7kCv9F9.js.br → nix-xjlEb3uw.js.br} +0 -0
- /package/dist/web/assets/{nix-D7kCv9F9.js.gz → nix-xjlEb3uw.js.gz} +0 -0
- /package/dist/web/assets/{nord-C-O3ceAv.js → nord-C8tvWx7P.js} +0 -0
- /package/dist/web/assets/{nord-C-O3ceAv.js.br → nord-C8tvWx7P.js.br} +0 -0
- /package/dist/web/assets/{nord-C-O3ceAv.js.gz → nord-C8tvWx7P.js.gz} +0 -0
- /package/dist/web/assets/{nushell-oUYTGkzu.js → nushell-BqBb4pU6.js} +0 -0
- /package/dist/web/assets/{nushell-oUYTGkzu.js.br → nushell-BqBb4pU6.js.br} +0 -0
- /package/dist/web/assets/{nushell-oUYTGkzu.js.gz → nushell-BqBb4pU6.js.gz} +0 -0
- /package/dist/web/assets/{objective-c-CzqHoRSj.js → objective-c-Bk6s0Cn5.js} +0 -0
- /package/dist/web/assets/{objective-c-CzqHoRSj.js.br → objective-c-Bk6s0Cn5.js.br} +0 -0
- /package/dist/web/assets/{objective-c-CzqHoRSj.js.gz → objective-c-Bk6s0Cn5.js.gz} +0 -0
- /package/dist/web/assets/{objective-cpp-DJ8fgF2d.js → objective-cpp-DGTVWQ3V.js} +0 -0
- /package/dist/web/assets/{objective-cpp-DJ8fgF2d.js.br → objective-cpp-DGTVWQ3V.js.br} +0 -0
- /package/dist/web/assets/{objective-cpp-DJ8fgF2d.js.gz → objective-cpp-DGTVWQ3V.js.gz} +0 -0
- /package/dist/web/assets/{ocaml-B_nWFfqA.js → ocaml-D6wPQ4kw.js} +0 -0
- /package/dist/web/assets/{ocaml-B_nWFfqA.js.br → ocaml-D6wPQ4kw.js.br} +0 -0
- /package/dist/web/assets/{ocaml-B_nWFfqA.js.gz → ocaml-D6wPQ4kw.js.gz} +0 -0
- /package/dist/web/assets/{odin-BUQfWY13.js → odin-C9mw2xRN.js} +0 -0
- /package/dist/web/assets/{odin-BUQfWY13.js.br → odin-C9mw2xRN.js.br} +0 -0
- /package/dist/web/assets/{odin-BUQfWY13.js.gz → odin-C9mw2xRN.js.gz} +0 -0
- /package/dist/web/assets/{one-dark-pro-DJQor_US.js → one-dark-pro-SMBlneFb.js} +0 -0
- /package/dist/web/assets/{one-dark-pro-DJQor_US.js.br → one-dark-pro-SMBlneFb.js.br} +0 -0
- /package/dist/web/assets/{one-dark-pro-DJQor_US.js.gz → one-dark-pro-SMBlneFb.js.gz} +0 -0
- /package/dist/web/assets/{one-light-BMvQ1R6M.js → one-light-C9JMU1Cx.js} +0 -0
- /package/dist/web/assets/{one-light-BMvQ1R6M.js.br → one-light-C9JMU1Cx.js.br} +0 -0
- /package/dist/web/assets/{one-light-BMvQ1R6M.js.gz → one-light-C9JMU1Cx.js.gz} +0 -0
- /package/dist/web/assets/{openscad-DTylcqP8.js → openscad-C0I9CtuA.js} +0 -0
- /package/dist/web/assets/{openscad-DTylcqP8.js.br → openscad-C0I9CtuA.js.br} +0 -0
- /package/dist/web/assets/{openscad-DTylcqP8.js.gz → openscad-C0I9CtuA.js.gz} +0 -0
- /package/dist/web/assets/{pascal-D0N_7LGg.js → pascal-D0z4DJnY.js} +0 -0
- /package/dist/web/assets/{pascal-D0N_7LGg.js.br → pascal-D0z4DJnY.js.br} +0 -0
- /package/dist/web/assets/{pascal-D0N_7LGg.js.gz → pascal-D0z4DJnY.js.gz} +0 -0
- /package/dist/web/assets/{path-LyOWnqX5.js → path-z62pEMqs.js} +0 -0
- /package/dist/web/assets/{path-LyOWnqX5.js.br → path-z62pEMqs.js.br} +0 -0
- /package/dist/web/assets/{path-LyOWnqX5.js.gz → path-z62pEMqs.js.gz} +0 -0
- /package/dist/web/assets/{pkl-HQNdCmJT.js → pkl-CITYNGVz.js} +0 -0
- /package/dist/web/assets/{pkl-HQNdCmJT.js.br → pkl-CITYNGVz.js.br} +0 -0
- /package/dist/web/assets/{pkl-HQNdCmJT.js.gz → pkl-CITYNGVz.js.gz} +0 -0
- /package/dist/web/assets/{plastic-QMrjD10f.js → plastic-Bf0T6rmg.js} +0 -0
- /package/dist/web/assets/{plastic-QMrjD10f.js.br → plastic-Bf0T6rmg.js.br} +0 -0
- /package/dist/web/assets/{plastic-QMrjD10f.js.gz → plastic-Bf0T6rmg.js.gz} +0 -0
- /package/dist/web/assets/{plsql-Ds9EzM4F.js → plsql-Chr907pu.js} +0 -0
- /package/dist/web/assets/{plsql-Ds9EzM4F.js.br → plsql-Chr907pu.js.br} +0 -0
- /package/dist/web/assets/{plsql-Ds9EzM4F.js.gz → plsql-Chr907pu.js.gz} +0 -0
- /package/dist/web/assets/{po-CM8JtETE.js → po-07U75CYV.js} +0 -0
- /package/dist/web/assets/{po-CM8JtETE.js.br → po-07U75CYV.js.br} +0 -0
- /package/dist/web/assets/{po-CM8JtETE.js.gz → po-07U75CYV.js.gz} +0 -0
- /package/dist/web/assets/{poimandres-fat7kglW.js → poimandres-B0T4qwXY.js} +0 -0
- /package/dist/web/assets/{poimandres-fat7kglW.js.br → poimandres-B0T4qwXY.js.br} +0 -0
- /package/dist/web/assets/{poimandres-fat7kglW.js.gz → poimandres-B0T4qwXY.js.gz} +0 -0
- /package/dist/web/assets/{polar-CnOzO2UD.js → polar-BvNJMMV5.js} +0 -0
- /package/dist/web/assets/{polar-CnOzO2UD.js.br → polar-BvNJMMV5.js.br} +0 -0
- /package/dist/web/assets/{polar-CnOzO2UD.js.gz → polar-BvNJMMV5.js.gz} +0 -0
- /package/dist/web/assets/{portal-container-context-NFSuymMu.js → portal-container-context-BXAsDqrB.js} +0 -0
- /package/dist/web/assets/{postcss-BaqfiaQC.js → postcss-BSdf-zzo.js} +0 -0
- /package/dist/web/assets/{postcss-BaqfiaQC.js.br → postcss-BSdf-zzo.js.br} +0 -0
- /package/dist/web/assets/{postcss-BaqfiaQC.js.gz → postcss-BSdf-zzo.js.gz} +0 -0
- /package/dist/web/assets/{powerquery-CtMX6ik_.js → powerquery-B2Ad_HK8.js} +0 -0
- /package/dist/web/assets/{powerquery-CtMX6ik_.js.br → powerquery-B2Ad_HK8.js.br} +0 -0
- /package/dist/web/assets/{powerquery-CtMX6ik_.js.gz → powerquery-B2Ad_HK8.js.gz} +0 -0
- /package/dist/web/assets/{powershell-BaTgHUxS.js → powershell-DO5WY2v2.js} +0 -0
- /package/dist/web/assets/{powershell-BaTgHUxS.js.br → powershell-DO5WY2v2.js.br} +0 -0
- /package/dist/web/assets/{powershell-BaTgHUxS.js.gz → powershell-DO5WY2v2.js.gz} +0 -0
- /package/dist/web/assets/{preload-helper-BEFjQwLd.js → preload-helper-CM8YhcCa.js} +0 -0
- /package/dist/web/assets/{preload-helper-BEFjQwLd.js.br → preload-helper-CM8YhcCa.js.br} +0 -0
- /package/dist/web/assets/{preload-helper-BEFjQwLd.js.gz → preload-helper-CM8YhcCa.js.gz} +0 -0
- /package/dist/web/assets/{prisma-BLaoUK-7.js → prisma-BfaRPYzs.js} +0 -0
- /package/dist/web/assets/{prisma-BLaoUK-7.js.br → prisma-BfaRPYzs.js.br} +0 -0
- /package/dist/web/assets/{prisma-BLaoUK-7.js.gz → prisma-BfaRPYzs.js.gz} +0 -0
- /package/dist/web/assets/{prolog-0I-GhZLt.js → prolog-Cz0Nue9e.js} +0 -0
- /package/dist/web/assets/{prolog-0I-GhZLt.js.br → prolog-Cz0Nue9e.js.br} +0 -0
- /package/dist/web/assets/{prolog-0I-GhZLt.js.gz → prolog-Cz0Nue9e.js.gz} +0 -0
- /package/dist/web/assets/{proto-CHfg51WI.js → proto-FVleUZJO.js} +0 -0
- /package/dist/web/assets/{proto-CHfg51WI.js.br → proto-FVleUZJO.js.br} +0 -0
- /package/dist/web/assets/{proto-CHfg51WI.js.gz → proto-FVleUZJO.js.gz} +0 -0
- /package/dist/web/assets/{puppet-B0WZdEhx.js → puppet-BEX5o7hE.js} +0 -0
- /package/dist/web/assets/{puppet-B0WZdEhx.js.br → puppet-BEX5o7hE.js.br} +0 -0
- /package/dist/web/assets/{puppet-B0WZdEhx.js.gz → puppet-BEX5o7hE.js.gz} +0 -0
- /package/dist/web/assets/{purescript-CrVZ4Uql.js → purescript-BZX6Kw4j.js} +0 -0
- /package/dist/web/assets/{purescript-CrVZ4Uql.js.br → purescript-BZX6Kw4j.js.br} +0 -0
- /package/dist/web/assets/{purescript-CrVZ4Uql.js.gz → purescript-BZX6Kw4j.js.gz} +0 -0
- /package/dist/web/assets/{python-aEpe7ZUF.js → python-CO89UIxE.js} +0 -0
- /package/dist/web/assets/{python-aEpe7ZUF.js.br → python-CO89UIxE.js.br} +0 -0
- /package/dist/web/assets/{python-aEpe7ZUF.js.gz → python-CO89UIxE.js.gz} +0 -0
- /package/dist/web/assets/{qmldir-DxTPc3lc.js → qmldir-DH526DWB.js} +0 -0
- /package/dist/web/assets/{qss-D-nPbCGx.js → qss-wp8im4Iz.js} +0 -0
- /package/dist/web/assets/{qss-D-nPbCGx.js.br → qss-wp8im4Iz.js.br} +0 -0
- /package/dist/web/assets/{qss-D-nPbCGx.js.gz → qss-wp8im4Iz.js.gz} +0 -0
- /package/dist/web/assets/{r-BLnTqw3q.js → r-Ct7VghHm.js} +0 -0
- /package/dist/web/assets/{r-BLnTqw3q.js.br → r-Ct7VghHm.js.br} +0 -0
- /package/dist/web/assets/{r-BLnTqw3q.js.gz → r-Ct7VghHm.js.gz} +0 -0
- /package/dist/web/assets/{racket-DNO4210g.js → racket-BQvbOE5D.js} +0 -0
- /package/dist/web/assets/{racket-DNO4210g.js.br → racket-BQvbOE5D.js.br} +0 -0
- /package/dist/web/assets/{racket-DNO4210g.js.gz → racket-BQvbOE5D.js.gz} +0 -0
- /package/dist/web/assets/{raku-iZJO4hxf.js → raku-B0iWSynj.js} +0 -0
- /package/dist/web/assets/{raku-iZJO4hxf.js.br → raku-B0iWSynj.js.br} +0 -0
- /package/dist/web/assets/{raku-iZJO4hxf.js.gz → raku-B0iWSynj.js.gz} +0 -0
- /package/dist/web/assets/{react-CzUPVyyG.js → react-PkBxFcos.js} +0 -0
- /package/dist/web/assets/{red-F3EQNsNx.js → red-Cm00r9eI.js} +0 -0
- /package/dist/web/assets/{red-F3EQNsNx.js.br → red-Cm00r9eI.js.br} +0 -0
- /package/dist/web/assets/{red-F3EQNsNx.js.gz → red-Cm00r9eI.js.gz} +0 -0
- /package/dist/web/assets/{reg-DD_Uwu3t.js → reg-CBuhna22.js} +0 -0
- /package/dist/web/assets/{reg-DD_Uwu3t.js.br → reg-CBuhna22.js.br} +0 -0
- /package/dist/web/assets/{reg-DD_Uwu3t.js.gz → reg-CBuhna22.js.gz} +0 -0
- /package/dist/web/assets/{regexp-D3RlqUxN.js → regexp-BebzP4Rp.js} +0 -0
- /package/dist/web/assets/{regexp-D3RlqUxN.js.br → regexp-BebzP4Rp.js.br} +0 -0
- /package/dist/web/assets/{regexp-D3RlqUxN.js.gz → regexp-BebzP4Rp.js.gz} +0 -0
- /package/dist/web/assets/{rel-DM5GSHUR.js → rel-BYzlBhbq.js} +0 -0
- /package/dist/web/assets/{rel-DM5GSHUR.js.br → rel-BYzlBhbq.js.br} +0 -0
- /package/dist/web/assets/{rel-DM5GSHUR.js.gz → rel-BYzlBhbq.js.gz} +0 -0
- /package/dist/web/assets/{resolve-theme-STMsK2vc.js → resolve-theme-BqoL27BW.js} +0 -0
- /package/dist/web/assets/{resolve-theme-STMsK2vc.js.br → resolve-theme-BqoL27BW.js.br} +0 -0
- /package/dist/web/assets/{resolve-theme-STMsK2vc.js.gz → resolve-theme-BqoL27BW.js.gz} +0 -0
- /package/dist/web/assets/{riscv-C_jO4gJw.js → riscv-CQQP0Ro9.js} +0 -0
- /package/dist/web/assets/{riscv-C_jO4gJw.js.br → riscv-CQQP0Ro9.js.br} +0 -0
- /package/dist/web/assets/{riscv-C_jO4gJw.js.gz → riscv-CQQP0Ro9.js.gz} +0 -0
- /package/dist/web/assets/{ron--r6_MG5U.js → ron-j1ON9YzM.js} +0 -0
- /package/dist/web/assets/{ron--r6_MG5U.js.br → ron-j1ON9YzM.js.br} +0 -0
- /package/dist/web/assets/{ron--r6_MG5U.js.gz → ron-j1ON9YzM.js.gz} +0 -0
- /package/dist/web/assets/{rose-pine-NjvlliYf.js → rose-pine-Cbri3jon.js} +0 -0
- /package/dist/web/assets/{rose-pine-NjvlliYf.js.br → rose-pine-Cbri3jon.js.br} +0 -0
- /package/dist/web/assets/{rose-pine-NjvlliYf.js.gz → rose-pine-Cbri3jon.js.gz} +0 -0
- /package/dist/web/assets/{rose-pine-dawn-DnsL01oA.js → rose-pine-dawn-BMuvKrGo.js} +0 -0
- /package/dist/web/assets/{rose-pine-dawn-DnsL01oA.js.br → rose-pine-dawn-BMuvKrGo.js.br} +0 -0
- /package/dist/web/assets/{rose-pine-dawn-DnsL01oA.js.gz → rose-pine-dawn-BMuvKrGo.js.gz} +0 -0
- /package/dist/web/assets/{rose-pine-moon-DQTuCjVy.js → rose-pine-moon-4biZzaYD.js} +0 -0
- /package/dist/web/assets/{rose-pine-moon-DQTuCjVy.js.br → rose-pine-moon-4biZzaYD.js.br} +0 -0
- /package/dist/web/assets/{rose-pine-moon-DQTuCjVy.js.gz → rose-pine-moon-4biZzaYD.js.gz} +0 -0
- /package/dist/web/assets/{rosmsg-BQrgxzms.js → rosmsg-CXx22rtz.js} +0 -0
- /package/dist/web/assets/{rosmsg-BQrgxzms.js.br → rosmsg-CXx22rtz.js.br} +0 -0
- /package/dist/web/assets/{rosmsg-BQrgxzms.js.gz → rosmsg-CXx22rtz.js.gz} +0 -0
- /package/dist/web/assets/{rough.esm-CSLcW3u5.js → rough.esm-DK8Fp44C.js} +0 -0
- /package/dist/web/assets/{rough.esm-CSLcW3u5.js.br → rough.esm-DK8Fp44C.js.br} +0 -0
- /package/dist/web/assets/{rough.esm-CSLcW3u5.js.gz → rough.esm-DK8Fp44C.js.gz} +0 -0
- /package/dist/web/assets/{rust-CP39BBh-.js → rust-D28cFIhL.js} +0 -0
- /package/dist/web/assets/{rust-CP39BBh-.js.br → rust-D28cFIhL.js.br} +0 -0
- /package/dist/web/assets/{rust-CP39BBh-.js.gz → rust-D28cFIhL.js.gz} +0 -0
- /package/dist/web/assets/{sass-CMiN16ff.js → sass-DtNw4V28.js} +0 -0
- /package/dist/web/assets/{sass-CMiN16ff.js.br → sass-DtNw4V28.js.br} +0 -0
- /package/dist/web/assets/{sass-CMiN16ff.js.gz → sass-DtNw4V28.js.gz} +0 -0
- /package/dist/web/assets/{scala-jm4Hro87.js → scala-hv69_YQC.js} +0 -0
- /package/dist/web/assets/{scala-jm4Hro87.js.br → scala-hv69_YQC.js.br} +0 -0
- /package/dist/web/assets/{scala-jm4Hro87.js.gz → scala-hv69_YQC.js.gz} +0 -0
- /package/dist/web/assets/{scheme-Ct_BnC2r.js → scheme-Dtp9B_ng.js} +0 -0
- /package/dist/web/assets/{scheme-Ct_BnC2r.js.br → scheme-Dtp9B_ng.js.br} +0 -0
- /package/dist/web/assets/{scheme-Ct_BnC2r.js.gz → scheme-Dtp9B_ng.js.gz} +0 -0
- /package/dist/web/assets/{sdbl-CnOjqCoH.js → sdbl-DEwEngAE.js} +0 -0
- /package/dist/web/assets/{sdbl-CnOjqCoH.js.br → sdbl-DEwEngAE.js.br} +0 -0
- /package/dist/web/assets/{sdbl-CnOjqCoH.js.gz → sdbl-DEwEngAE.js.gz} +0 -0
- /package/dist/web/assets/{shellscript-C6sdrDvR.js → shellscript-CYnZDrks.js} +0 -0
- /package/dist/web/assets/{shellscript-C6sdrDvR.js.br → shellscript-CYnZDrks.js.br} +0 -0
- /package/dist/web/assets/{shellscript-C6sdrDvR.js.gz → shellscript-CYnZDrks.js.gz} +0 -0
- /package/dist/web/assets/{slack-dark-BOdgeH19.js → slack-dark-DT0E0ABt.js} +0 -0
- /package/dist/web/assets/{slack-dark-BOdgeH19.js.br → slack-dark-DT0E0ABt.js.br} +0 -0
- /package/dist/web/assets/{slack-dark-BOdgeH19.js.gz → slack-dark-DT0E0ABt.js.gz} +0 -0
- /package/dist/web/assets/{slack-ochin-DBMQIw0j.js → slack-ochin-DHHiQnxo.js} +0 -0
- /package/dist/web/assets/{slack-ochin-DBMQIw0j.js.br → slack-ochin-DHHiQnxo.js.br} +0 -0
- /package/dist/web/assets/{slack-ochin-DBMQIw0j.js.gz → slack-ochin-DHHiQnxo.js.gz} +0 -0
- /package/dist/web/assets/{smalltalk-BMQqYubg.js → smalltalk-BF_I35xJ.js} +0 -0
- /package/dist/web/assets/{smalltalk-BMQqYubg.js.br → smalltalk-BF_I35xJ.js.br} +0 -0
- /package/dist/web/assets/{smalltalk-BMQqYubg.js.gz → smalltalk-BF_I35xJ.js.gz} +0 -0
- /package/dist/web/assets/{snazzy-light-DwnLbrVG.js → snazzy-light-Cv7tIZo9.js} +0 -0
- /package/dist/web/assets/{snazzy-light-DwnLbrVG.js.br → snazzy-light-Cv7tIZo9.js.br} +0 -0
- /package/dist/web/assets/{snazzy-light-DwnLbrVG.js.gz → snazzy-light-Cv7tIZo9.js.gz} +0 -0
- /package/dist/web/assets/{solarized-dark-DXJnupYd.js → solarized-dark-wZ5YPCys.js} +0 -0
- /package/dist/web/assets/{solarized-dark-DXJnupYd.js.br → solarized-dark-wZ5YPCys.js.br} +0 -0
- /package/dist/web/assets/{solarized-dark-DXJnupYd.js.gz → solarized-dark-wZ5YPCys.js.gz} +0 -0
- /package/dist/web/assets/{solarized-light-DqhyrtI4.js → solarized-light-DGDOr1AS.js} +0 -0
- /package/dist/web/assets/{solarized-light-DqhyrtI4.js.br → solarized-light-DGDOr1AS.js.br} +0 -0
- /package/dist/web/assets/{solarized-light-DqhyrtI4.js.gz → solarized-light-DGDOr1AS.js.gz} +0 -0
- /package/dist/web/assets/{solidity-BM0p0sku.js → solidity-BJknuPqJ.js} +0 -0
- /package/dist/web/assets/{solidity-BM0p0sku.js.br → solidity-BJknuPqJ.js.br} +0 -0
- /package/dist/web/assets/{solidity-BM0p0sku.js.gz → solidity-BJknuPqJ.js.gz} +0 -0
- /package/dist/web/assets/{splunk-Cq6_jbaY.js → splunk-B1ClO_KU.js} +0 -0
- /package/dist/web/assets/{splunk-Cq6_jbaY.js.br → splunk-B1ClO_KU.js.br} +0 -0
- /package/dist/web/assets/{splunk-Cq6_jbaY.js.gz → splunk-B1ClO_KU.js.gz} +0 -0
- /package/dist/web/assets/{sql-CPfIb_cO.js → sql-CEkBuGIw.js} +0 -0
- /package/dist/web/assets/{sql-CPfIb_cO.js.br → sql-CEkBuGIw.js.br} +0 -0
- /package/dist/web/assets/{sql-CPfIb_cO.js.gz → sql-CEkBuGIw.js.gz} +0 -0
- /package/dist/web/assets/{src-C7A68uNq.js → src-C1GX5Kxw.js} +0 -0
- /package/dist/web/assets/{src-C7A68uNq.js.br → src-C1GX5Kxw.js.br} +0 -0
- /package/dist/web/assets/{src-C7A68uNq.js.gz → src-C1GX5Kxw.js.gz} +0 -0
- /package/dist/web/assets/{ssh-config-GRgzMVtG.js → ssh-config-kgM67Sf6.js} +0 -0
- /package/dist/web/assets/{ssh-config-GRgzMVtG.js.br → ssh-config-kgM67Sf6.js.br} +0 -0
- /package/dist/web/assets/{ssh-config-GRgzMVtG.js.gz → ssh-config-kgM67Sf6.js.gz} +0 -0
- /package/dist/web/assets/{stylus-DNs7ubf9.js → stylus-RcVaInR-.js} +0 -0
- /package/dist/web/assets/{stylus-DNs7ubf9.js.br → stylus-RcVaInR-.js.br} +0 -0
- /package/dist/web/assets/{stylus-DNs7ubf9.js.gz → stylus-RcVaInR-.js.gz} +0 -0
- /package/dist/web/assets/{swift-BQV34vng.js → swift-Cm0fh2lX.js} +0 -0
- /package/dist/web/assets/{swift-BQV34vng.js.br → swift-Cm0fh2lX.js.br} +0 -0
- /package/dist/web/assets/{swift-BQV34vng.js.gz → swift-Cm0fh2lX.js.gz} +0 -0
- /package/dist/web/assets/{synthwave-84-CypcdXbA.js → synthwave-84-CwLiazxr.js} +0 -0
- /package/dist/web/assets/{synthwave-84-CypcdXbA.js.br → synthwave-84-CwLiazxr.js.br} +0 -0
- /package/dist/web/assets/{synthwave-84-CypcdXbA.js.gz → synthwave-84-CwLiazxr.js.gz} +0 -0
- /package/dist/web/assets/{system-verilog-DaLPjQ4v.js → system-verilog-CzYaDVLH.js} +0 -0
- /package/dist/web/assets/{system-verilog-DaLPjQ4v.js.br → system-verilog-CzYaDVLH.js.br} +0 -0
- /package/dist/web/assets/{system-verilog-DaLPjQ4v.js.gz → system-verilog-CzYaDVLH.js.gz} +0 -0
- /package/dist/web/assets/{systemd-CXHFtmNc.js → systemd-DbSagfLw.js} +0 -0
- /package/dist/web/assets/{systemd-CXHFtmNc.js.br → systemd-DbSagfLw.js.br} +0 -0
- /package/dist/web/assets/{systemd-CXHFtmNc.js.gz → systemd-DbSagfLw.js.gz} +0 -0
- /package/dist/web/assets/{talonscript-DI9nO5jX.js → talonscript-BCFnWejL.js} +0 -0
- /package/dist/web/assets/{talonscript-DI9nO5jX.js.br → talonscript-BCFnWejL.js.br} +0 -0
- /package/dist/web/assets/{talonscript-DI9nO5jX.js.gz → talonscript-BCFnWejL.js.gz} +0 -0
- /package/dist/web/assets/{tasl-BAQyAl0c.js → tasl-BUdqtEe1.js} +0 -0
- /package/dist/web/assets/{tasl-BAQyAl0c.js.br → tasl-BUdqtEe1.js.br} +0 -0
- /package/dist/web/assets/{tasl-BAQyAl0c.js.gz → tasl-BUdqtEe1.js.gz} +0 -0
- /package/dist/web/assets/{tcl-BP_ozI58.js → tcl-CR_lTV9N.js} +0 -0
- /package/dist/web/assets/{tcl-BP_ozI58.js.br → tcl-CR_lTV9N.js.br} +0 -0
- /package/dist/web/assets/{tcl-BP_ozI58.js.gz → tcl-CR_lTV9N.js.gz} +0 -0
- /package/dist/web/assets/{terraform-NrndR0yZ.js → terraform-Bqsha-xe.js} +0 -0
- /package/dist/web/assets/{terraform-NrndR0yZ.js.br → terraform-Bqsha-xe.js.br} +0 -0
- /package/dist/web/assets/{terraform-NrndR0yZ.js.gz → terraform-Bqsha-xe.js.gz} +0 -0
- /package/dist/web/assets/{tokyo-night-CbUQlN8D.js → tokyo-night-Cnuo6JB6.js} +0 -0
- /package/dist/web/assets/{tokyo-night-CbUQlN8D.js.br → tokyo-night-Cnuo6JB6.js.br} +0 -0
- /package/dist/web/assets/{tokyo-night-CbUQlN8D.js.gz → tokyo-night-Cnuo6JB6.js.gz} +0 -0
- /package/dist/web/assets/{toml-BM_zrMLj.js → toml-CLFdhT22.js} +0 -0
- /package/dist/web/assets/{toml-BM_zrMLj.js.br → toml-CLFdhT22.js.br} +0 -0
- /package/dist/web/assets/{toml-BM_zrMLj.js.gz → toml-CLFdhT22.js.gz} +0 -0
- /package/dist/web/assets/{tsv-CfyllNPO.js → tsv-Dw3tLrZN.js} +0 -0
- /package/dist/web/assets/{tsx-BROcpVjE.js → tsx-BuCbOiJi.js} +0 -0
- /package/dist/web/assets/{tsx-BROcpVjE.js.br → tsx-BuCbOiJi.js.br} +0 -0
- /package/dist/web/assets/{tsx-BROcpVjE.js.gz → tsx-BuCbOiJi.js.gz} +0 -0
- /package/dist/web/assets/{turtle-CHmyeS9k.js → turtle-BMKMfTrj.js} +0 -0
- /package/dist/web/assets/{turtle-CHmyeS9k.js.br → turtle-BMKMfTrj.js.br} +0 -0
- /package/dist/web/assets/{turtle-CHmyeS9k.js.gz → turtle-BMKMfTrj.js.gz} +0 -0
- /package/dist/web/assets/{typescript-BVwspRg8.js → typescript-Y6cbFqno.js} +0 -0
- /package/dist/web/assets/{typescript-BVwspRg8.js.br → typescript-Y6cbFqno.js.br} +0 -0
- /package/dist/web/assets/{typescript-BVwspRg8.js.gz → typescript-Y6cbFqno.js.gz} +0 -0
- /package/dist/web/assets/{typespec-DXRppCgc.js → typespec-EbgGJHV_.js} +0 -0
- /package/dist/web/assets/{typespec-DXRppCgc.js.br → typespec-EbgGJHV_.js.br} +0 -0
- /package/dist/web/assets/{typespec-DXRppCgc.js.gz → typespec-EbgGJHV_.js.gz} +0 -0
- /package/dist/web/assets/{typst-L5uwArOj.js → typst-CQXV2SzX.js} +0 -0
- /package/dist/web/assets/{typst-L5uwArOj.js.br → typst-CQXV2SzX.js.br} +0 -0
- /package/dist/web/assets/{typst-L5uwArOj.js.gz → typst-CQXV2SzX.js.gz} +0 -0
- /package/dist/web/assets/{use-h264-canvas-decoder-BfO9QrlH.js → use-h264-canvas-decoder-DAjp9oHe.js} +0 -0
- /package/dist/web/assets/{use-h264-canvas-decoder-BfO9QrlH.js.br → use-h264-canvas-decoder-DAjp9oHe.js.br} +0 -0
- /package/dist/web/assets/{use-h264-canvas-decoder-BfO9QrlH.js.gz → use-h264-canvas-decoder-DAjp9oHe.js.gz} +0 -0
- /package/dist/web/assets/{use-is-mobile-BClDZJP5.js → use-is-mobile-BXHbkfs9.js} +0 -0
- /package/dist/web/assets/{use-visual-viewport-BGpcMnIx.js → use-visual-viewport-CQ6-A0Dt.js} +0 -0
- /package/dist/web/assets/{utils-btZ8C8-R.js → utils-Bslrbb-G.js} +0 -0
- /package/dist/web/assets/{utils-btZ8C8-R.js.br → utils-Bslrbb-G.js.br} +0 -0
- /package/dist/web/assets/{utils-btZ8C8-R.js.gz → utils-Bslrbb-G.js.gz} +0 -0
- /package/dist/web/assets/{v-Bz99d5uk.js → v-Ci1jObJJ.js} +0 -0
- /package/dist/web/assets/{v-Bz99d5uk.js.br → v-Ci1jObJJ.js.br} +0 -0
- /package/dist/web/assets/{v-Bz99d5uk.js.gz → v-Ci1jObJJ.js.gz} +0 -0
- /package/dist/web/assets/{vala-B-CtBLX1.js → vala-C_NdfqrY.js} +0 -0
- /package/dist/web/assets/{vala-B-CtBLX1.js.br → vala-C_NdfqrY.js.br} +0 -0
- /package/dist/web/assets/{vala-B-CtBLX1.js.gz → vala-C_NdfqrY.js.gz} +0 -0
- /package/dist/web/assets/{vb-DHqiz9Cp.js → vb-K_r_h_s8.js} +0 -0
- /package/dist/web/assets/{vb-DHqiz9Cp.js.br → vb-K_r_h_s8.js.br} +0 -0
- /package/dist/web/assets/{vb-DHqiz9Cp.js.gz → vb-K_r_h_s8.js.gz} +0 -0
- /package/dist/web/assets/{vendor-xterm-CfasyE0m.js → vendor-xterm-sFX94k3w.js} +0 -0
- /package/dist/web/assets/{vendor-xterm-CfasyE0m.js.br → vendor-xterm-sFX94k3w.js.br} +0 -0
- /package/dist/web/assets/{vendor-xterm-CfasyE0m.js.gz → vendor-xterm-sFX94k3w.js.gz} +0 -0
- /package/dist/web/assets/{verilog-DbTkSkM7.js → verilog-DQPYLsZI.js} +0 -0
- /package/dist/web/assets/{verilog-DbTkSkM7.js.br → verilog-DQPYLsZI.js.br} +0 -0
- /package/dist/web/assets/{verilog-DbTkSkM7.js.gz → verilog-DQPYLsZI.js.gz} +0 -0
- /package/dist/web/assets/{vesper-2aVei4Le.js → vesper-BrmzEV8s.js} +0 -0
- /package/dist/web/assets/{vesper-2aVei4Le.js.br → vesper-BrmzEV8s.js.br} +0 -0
- /package/dist/web/assets/{vesper-2aVei4Le.js.gz → vesper-BrmzEV8s.js.gz} +0 -0
- /package/dist/web/assets/{vhdl-BJJSCnQQ.js → vhdl-CjxQGaH2.js} +0 -0
- /package/dist/web/assets/{vhdl-BJJSCnQQ.js.br → vhdl-CjxQGaH2.js.br} +0 -0
- /package/dist/web/assets/{vhdl-BJJSCnQQ.js.gz → vhdl-CjxQGaH2.js.gz} +0 -0
- /package/dist/web/assets/{viml-qxSvRN8n.js → viml-CTKJNQH1.js} +0 -0
- /package/dist/web/assets/{viml-qxSvRN8n.js.br → viml-CTKJNQH1.js.br} +0 -0
- /package/dist/web/assets/{viml-qxSvRN8n.js.gz → viml-CTKJNQH1.js.gz} +0 -0
- /package/dist/web/assets/{vitesse-black-CjR1y0Bv.js → vitesse-black-i-H_3p1i.js} +0 -0
- /package/dist/web/assets/{vitesse-black-CjR1y0Bv.js.br → vitesse-black-i-H_3p1i.js.br} +0 -0
- /package/dist/web/assets/{vitesse-black-CjR1y0Bv.js.gz → vitesse-black-i-H_3p1i.js.gz} +0 -0
- /package/dist/web/assets/{vitesse-dark-jrcdsqkn.js → vitesse-dark-DZC_Yy3_.js} +0 -0
- /package/dist/web/assets/{vitesse-dark-jrcdsqkn.js.br → vitesse-dark-DZC_Yy3_.js.br} +0 -0
- /package/dist/web/assets/{vitesse-dark-jrcdsqkn.js.gz → vitesse-dark-DZC_Yy3_.js.gz} +0 -0
- /package/dist/web/assets/{vitesse-light-DkC_qU0k.js → vitesse-light-rf4kpmk8.js} +0 -0
- /package/dist/web/assets/{vitesse-light-DkC_qU0k.js.br → vitesse-light-rf4kpmk8.js.br} +0 -0
- /package/dist/web/assets/{vitesse-light-DkC_qU0k.js.gz → vitesse-light-rf4kpmk8.js.gz} +0 -0
- /package/dist/web/assets/{vyper-WAhkfwIX.js → vyper-BLnOw4Nf.js} +0 -0
- /package/dist/web/assets/{vyper-WAhkfwIX.js.br → vyper-BLnOw4Nf.js.br} +0 -0
- /package/dist/web/assets/{vyper-WAhkfwIX.js.gz → vyper-BLnOw4Nf.js.gz} +0 -0
- /package/dist/web/assets/{wasm-BYGI5YYa.js → wasm-CTwH9oN2.js} +0 -0
- /package/dist/web/assets/{wasm-BYGI5YYa.js.br → wasm-CTwH9oN2.js.br} +0 -0
- /package/dist/web/assets/{wasm-BYGI5YYa.js.gz → wasm-CTwH9oN2.js.gz} +0 -0
- /package/dist/web/assets/{wasm-Miuao4O0.js → wasm-CWeHvGNG.js} +0 -0
- /package/dist/web/assets/{wasm-Miuao4O0.js.br → wasm-CWeHvGNG.js.br} +0 -0
- /package/dist/web/assets/{wasm-Miuao4O0.js.gz → wasm-CWeHvGNG.js.gz} +0 -0
- /package/dist/web/assets/{wenyan-Dd5qjF8u.js → wenyan-CLwdRuzd.js} +0 -0
- /package/dist/web/assets/{wenyan-Dd5qjF8u.js.br → wenyan-CLwdRuzd.js.br} +0 -0
- /package/dist/web/assets/{wenyan-Dd5qjF8u.js.gz → wenyan-CLwdRuzd.js.gz} +0 -0
- /package/dist/web/assets/{wgsl-C3T5a0UO.js → wgsl-CBTDMVJR.js} +0 -0
- /package/dist/web/assets/{wgsl-C3T5a0UO.js.br → wgsl-CBTDMVJR.js.br} +0 -0
- /package/dist/web/assets/{wgsl-C3T5a0UO.js.gz → wgsl-CBTDMVJR.js.gz} +0 -0
- /package/dist/web/assets/{wikitext-CvCJjxSa.js → wikitext-CQHrF84e.js} +0 -0
- /package/dist/web/assets/{wikitext-CvCJjxSa.js.br → wikitext-CQHrF84e.js.br} +0 -0
- /package/dist/web/assets/{wikitext-CvCJjxSa.js.gz → wikitext-CQHrF84e.js.gz} +0 -0
- /package/dist/web/assets/{wit-DybvG9BU.js → wit-8xdbdipU.js} +0 -0
- /package/dist/web/assets/{wit-DybvG9BU.js.br → wit-8xdbdipU.js.br} +0 -0
- /package/dist/web/assets/{wit-DybvG9BU.js.gz → wit-8xdbdipU.js.gz} +0 -0
- /package/dist/web/assets/{wolfram-CdhnrpZ7.js → wolfram-tFwx32a_.js} +0 -0
- /package/dist/web/assets/{wolfram-CdhnrpZ7.js.br → wolfram-tFwx32a_.js.br} +0 -0
- /package/dist/web/assets/{wolfram-CdhnrpZ7.js.gz → wolfram-tFwx32a_.js.gz} +0 -0
- /package/dist/web/assets/{yaml-B0HIje0z.js → yaml-D5O1CXgB.js} +0 -0
- /package/dist/web/assets/{yaml-B0HIje0z.js.br → yaml-D5O1CXgB.js.br} +0 -0
- /package/dist/web/assets/{yaml-B0HIje0z.js.gz → yaml-D5O1CXgB.js.gz} +0 -0
- /package/dist/web/assets/{zenscript-CcLSNTvD.js → zenscript-B10Pj7JT.js} +0 -0
- /package/dist/web/assets/{zenscript-CcLSNTvD.js.br → zenscript-B10Pj7JT.js.br} +0 -0
- /package/dist/web/assets/{zenscript-CcLSNTvD.js.gz → zenscript-B10Pj7JT.js.gz} +0 -0
- /package/dist/web/assets/{zig-dAelYAUr.js → zig-BZKcTtrK.js} +0 -0
- /package/dist/web/assets/{zig-dAelYAUr.js.br → zig-BZKcTtrK.js.br} +0 -0
- /package/dist/web/assets/{zig-dAelYAUr.js.gz → zig-BZKcTtrK.js.gz} +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/edit-diff-preview-D4EqC86X.js","assets/rolldown-runtime-C5c2KzVm.js","assets/vendor-markdown-QKPNiWEd.js","assets/libesm-B6LsX5wH.js","assets/markdown-renderer-8Hef5MLx.js","assets/vendor-ui-CS1GvlOm.js","assets/markdown-renderer-BH_CFPJw.js","assets/index-ItT-dTPV.js","assets/preload-helper-CM8YhcCa.js","assets/button-Br60hGkw.js","assets/utils-Bslrbb-G.js","assets/createLucideIcon-DBXq3G0e.js","assets/file-diff-lX1a7RLF.js","assets/git-commit-horizontal-BVihXafd.js","assets/api-client-OiA8Ida1.js","assets/react-PkBxFcos.js","assets/open-db-tabs-CkQe49j_.js","assets/panel-store-DmP16Fo0.js","assets/session-list-sync-triggers-DitiR5h1.js","assets/project-store-CEGoLMOl.js","assets/project-framework-store-Bi5dyHdx.js","assets/window-store-zJczRsv4.js","assets/explorer-model-BmgFEsj1.js","assets/db-types-9ac-eYxf.js","assets/settings-store-WeJyQVL8.js","assets/use-is-mobile-BXHbkfs9.js","assets/tab-store-nNzRNfVV.js","assets/use-db-driver-installed-BscdI-wS.js","assets/impexp-state-BWKOuRGj.js","assets/file-store-Bk1WYfdy.js","assets/sql-identifiers-DDISwQor.js","assets/db-explorer-store-BcLxq-X0.js","assets/window-pip-registry-DSoB7T3k.js","assets/onboarding-quick-orientation-DZYQekRt.js","assets/dialog-DOaEX6AK.js","assets/portal-container-context-BXAsDqrB.js","assets/icons-JMA45Ifw.js","assets/format-file-meta-C0LKHE3e.js","assets/fs-api-BQrIEcvo.js","assets/open-settings-DsGBn73g.js","assets/settings-categories-CcR9eL3x.js","assets/adaptive-context-menu-Cq7ynvIn.js","assets/context-menu-BoQ6lxte.js","assets/mobile-bottom-sheet-CGmmdp_5.js","assets/use-visual-viewport-CQ6-A0Dt.js","assets/dropdown-menu-DB3yyoVz.js","assets/input-CKGoVpYv.js","assets/scroll-area-6Am1KMiB.js","assets/start-ellipsis-rBh37k0n.js","assets/chat-preparation-cache-CRX9WAK5.js","assets/clipboard-D3XnL7CB.js","assets/file-icons-DpwcJLL4.js","assets/format-date-CSHaU2wN.js","assets/git-repo-store-BOYLnV67.js","assets/patch-tab-metadata-B-jH5svY.js","assets/ws-auth-cWeQ7_61.js","assets/apply-theme-ORrEdHKT.js","assets/resolve-theme-BqoL27BW.js","assets/index-DyYGWFVa.css","assets/image-gallery-BuxSgBug.js","assets/run-in-terminal-Bk9Bw7G1.js","assets/api-client-DAQfiXg0.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{s as e}from"./rolldown-runtime-C5c2KzVm.js";import{C as t,S as n}from"./vendor-markdown-QKPNiWEd.js";import{$ as r,$n as i,A as a,Br as o,D as s,Dn as c,E as l,Er as u,Et as d,Fn as f,Ft as p,G as m,I as h,K as g,Kr as _,L as v,M as y,Mn as b,Mr as x,Nn as S,Or as C,P as ee,Q as w,S as te,Ur as ne,V as re,Vn as T,Vr as ie,Yr as ae,Yt as oe,Zr as se,_t as E,ar as D,at as ce,bn as le,br as O,ci as ue,dn as de,en as fe,fi as pe,g as me,gr as k,gt as he,hr as ge,ir as _e,jr as A,k as ve,li as j,ln as M,n as N,nn as ye,or as be,qr as xe,rn as Se,t as Ce,ti as we,tr as Te,tt as P,ut as F,w as Ee,wr as De,xn as I,xr as Oe,yn as L,yt as ke,z as R}from"./icons-JMA45Ifw.js";import{t as Ae}from"./createLucideIcon-DBXq3G0e.js";import{t as je}from"./file-diff-lX1a7RLF.js";import{a as z,d as B,f as V,k as H,o as U,p as W,r as G,u as Me,v as Ne}from"./api-client-OiA8Ida1.js";import{t as Pe}from"./settings-store-WeJyQVL8.js";import{t as Fe}from"./preload-helper-CM8YhcCa.js";import{n as K,r as Ie,t as Le}from"./utils-Bslrbb-G.js";import{n as Re,r as ze,t as Be}from"./panel-store-DmP16Fo0.js";import{i as Ve}from"./project-store-CEGoLMOl.js";import{a as He,c as Ue,d as We,i as Ge,l as Ke,o as q,r as qe,s as Je,t as Ye,u as Xe}from"./session-list-sync-triggers-DitiR5h1.js";import{t as Ze}from"./tab-store-nNzRNfVV.js";import{t as Qe}from"./format-date-CSHaU2wN.js";import{a as $e,i as et,n as tt,r as J,s as nt,t as rt}from"./chat-preparation-cache-CRX9WAK5.js";import{o as it}from"./file-store-Bk1WYfdy.js";import{n as Y}from"./use-is-mobile-BXHbkfs9.js";import{t as at}from"./open-settings-DsGBn73g.js";import{u as ot}from"./onboarding-quick-orientation-DZYQekRt.js";import{r as st}from"./clipboard-D3XnL7CB.js";import{t as ct}from"./button-Br60hGkw.js";import{n as lt,o as ut,t as dt}from"./dialog-DOaEX6AK.js";import{n as ft}from"./file-icons-DpwcJLL4.js";import{n as X,t as pt}from"./patch-tab-metadata-B-jH5svY.js";import{i as mt,m as ht,r as gt,t as _t}from"./dropdown-menu-DB3yyoVz.js";import{t as vt}from"./mobile-bottom-sheet-CGmmdp_5.js";import{Ai as Z,Bi as yt,Di as bt,Ei as xt,F as St,Fi as Ct,G as wt,H as Tt,Kr as Et,N as Dt,Oi as Ot,P as kt,Pi as At,Ti as jt,U as Mt,V as Nt,Vi as Pt,W as Ft,ai as It,bn as Lt,ii as Rt,jn as zt,nn as Bt,r as Vt,t as Ht,z as Ut,zi as Wt}from"./index-ItT-dTPV.js";import{a as Gt,f as Kt,h as qt,i as Jt,m as Yt,n as Xt,o as Zt,p as Qt,r as $t,s as en,u as tn}from"./tool-cards-DoDKxqN4.js";import{n as nn,r as rn,t as an}from"./image-gallery-BuxSgBug.js";import{a as on,c as sn,l as cn,n as ln,o as un,r as dn,s as fn,t as pn}from"./session-turns-gmrmXzeg.js";import{t as mn}from"./use-websocket-C6RnlNVJ.js";import{g as hn}from"./api-settings-D2H6gjen.js";import{_ as gn,b as _n,c as vn,d as yn,f as bn,g as xn,m as Sn,p as Cn,s as wn,t as Tn,u as En,v as Dn,x as On,y as kn}from"./session-changes-bar-BRopa3Dh.js";import{t as An}from"./onboarding-entry--MWe4amV.js";import{n as jn,t as Mn}from"./send-to-chat-Bcm_Lcog.js";import{i as Nn,n as Pn,r as Fn,t as In}from"./slash-command-picker-BBcy6w6m.js";import{t as Ln}from"./ai-settings-section-B_OFMlrt.js";import{b as Rn,c as zn,f as Bn,i as Vn,l as Hn,m as Un,n as Wn,o as Gn,s as Kn,t as qn,u as Jn,v as Yn,x as Xn}from"./codex-reset-credit-button-CxJsBnff.js";var Zn=Ae(`slash`,[[`path`,{d:`M22 2 2 22`,key:`y4kqgn`}]]),Qn={maxImages:4,maxBase64PerImage:5e6,maxBase64Total:1e7};function $n(e){let t=[],n=0;for(let r of e)if(r.imageData){if(t.length>=Qn.maxImages)break;r.imageData.data.length>Qn.maxBase64PerImage||n+r.imageData.data.length>Qn.maxBase64Total||(n+=r.imageData.data.length,t.push(r.imageData))}return t}function er(e,t){let n=new Set(t),r=[],i=[];for(let t of e)t.serverPath&&(t.imageData&&n.has(t.imageData)?r.push(t.serverPath):i.push(t.serverPath));return{inlineImagePaths:r,pathOnlyPaths:i}}var tr=class{attempt=null;constructor(e){this.emit=e}start(e,t,n){this.fail(),!(!t||!n)&&(this.attempt={sessionId:e,attemptId:crypto.randomUUID()},this.emit({type:`started`,...this.attempt}))}migrate(e){if(!this.attempt||this.attempt.sessionId===e)return;let t=this.attempt.sessionId;this.attempt.sessionId=e,this.emit({type:`session`,...this.attempt,previousSessionId:t})}select(e){this.attempt&&this.attempt.sessionId!==e&&this.fail()}fail(){if(!this.attempt)return;let e=this.attempt;this.attempt=null,this.emit({type:`failed`,...e})}finish(e){if(!this.attempt)return;let t=this.attempt;this.attempt=null,this.emit({type:e?`succeeded`:`failed`,...t,hasContent:e})}};function nr(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return Math.abs(t).toString(36)}function rr(e,t){let n=`pc-${nr(t)}-`;return e.map(e=>e.id?{...e,id:`${n}${e.id}`}:e)}function ir(e,t){if(t.size===0)return e;let n=[],r=new Set,i=e=>{for(let a of e){let e=a.id?t.get(a.id):void 0;e&&e.length>0&&a.id&&!r.has(a.id)&&(r.add(a.id),i(e)),n.push(a)}};return i(e),n}var ar=null;function or(){return ar||=new AudioContext,ar}function sr(e,t,n,r,i=`sine`){let a=or(),o=a.createOscillator(),s=a.createGain();o.type=i,o.frequency.value=e,s.gain.setValueAtTime(r,n),s.gain.exponentialRampToValueAtTime(.001,n+t),o.connect(s),s.connect(a.destination),o.start(n),o.stop(n+t)}function cr(){let e=or().currentTime;sr(523,.15,e,.15),sr(659,.2,e+.12,.15)}function lr(){let e=or().currentTime;sr(880,.12,e,.18,`square`),sr(698,.12,e+.15,.18,`square`),sr(880,.15,e+.3,.15,`square`)}function ur(){let e=or().currentTime;sr(440,.12,e,.12),sr(523,.12,e+.1,.12),sr(659,.18,e+.2,.12)}var dr={done:cr,approval_request:lr,question:ur};function fr(e){try{dr[e]?.()}catch{}}function pr(e){return e.inputTokens+e.cacheReadTokens+e.cacheWriteTokens}function mr(e){return e.inputTokens+e.cacheWriteTokens}var hr=.5,gr=.9,_r={cache_expired:`the session's prompt cache had already lapsed, so PPM released its subprocess`,idle_timeout:`the session sat idle with no tab open long enough for PPM to release its subprocess`,warm_idle_cap:`too many idle sessions were holding a subprocess, so this one was released early`,tab_closed:`PPM shut the session's subprocess down when the last tab disconnected`,set_model:`the model was changed, which restarts the session`,stream_ended:`the session's subprocess had already exited`,resume:`the session was resumed on a new subprocess`};function vr(e){let t=mr(e),n=pr(e);if(!e.coldStart||n<2e4)return{level:`ok`,wastedTokens:t,reason:``};let r=e.cacheHitRate<hr?`bad`:e.cacheHitRate<gr?`warn`:`ok`;if(r===`ok`)return{level:r,wastedTokens:t,reason:``};let i=e.coldReason?_r[e.coldReason]??`the session restarted (${e.coldReason})`:null;return{level:r,wastedTokens:t,reason:i?`${Sr(t)} of this session's transcript was re-sent uncached because ${i}.`:`${Sr(t)} of this session's transcript was re-sent uncached.`}}var yr=.1,br=1.25;function xr(e){let t=pr(e);if(t===0)return 1;let n=e.inputTokens+e.cacheWriteTokens*br+e.cacheReadTokens*yr,r=t*yr;return r>0?Math.max(1,n/r):1}function Sr(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(e>=1e4?0:1)}k`:String(e)}var Q=e(t(),1);function Cr(e){return e.map(e=>e.events?{...e,events:Kt(e.events)}:e)}var wr={hasTeams:!1,teamNames:[],messageCount:0,unreadCount:0},Tr=50;function Er(e){if(document.hidden)return!1;let{panels:t}=Be.getState();for(let n of Object.values(t))if(ze(n.tabs.find(e=>e.id===n.activeTabId))===e)return!0;return!1}function Dr(e,t=`claude`,n=``,r,i,a){let o=(0,Q.useRef)(a?.onMessageRejected);o.current=a?.onMessageRejected;let s=(0,Q.useRef)([]),c=(0,Q.useRef)(0),l=(0,Q.useRef)(i);l.current=i;let u=(0,Q.useRef)(null);u.current||=new tr(e=>l.current?.(e));let[d,f]=(0,Q.useState)([]),[p,m]=(0,Q.useState)(new Map),[h,g]=(0,Q.useState)(!1),[_,v]=(0,Q.useState)({}),[y,b]=(0,Q.useState)(0),x=(0,Q.useRef)(0),[S,C]=(0,Q.useState)(0),[ee,w]=(0,Q.useState)(null),[te,ne]=(0,Q.useState)(!1),re=(0,Q.useRef)(!1),T=(0,Q.useRef)(!1),ie=(0,Q.useRef)(null),ae=(0,Q.useRef)(!1),oe=(0,Q.useCallback)(e=>{let t=e?.start??0;x.current=t,b(t),C(e?.userOrdinalOffset??0),w(t>0?e?.predecessorId??null:null)},[]),[se,E]=(0,Q.useState)(`idle`),[D,ce]=(0,Q.useState)(!1),[le,O]=(0,Q.useState)(0),[ue,de]=(0,Q.useState)(null),[fe,pe]=(0,Q.useState)(null),[me,k]=(0,Q.useState)(null),[he,ge]=(0,Q.useState)(null),[_e,A]=(0,Q.useState)([]),[ve,j]=(0,Q.useState)(null),[M,N]=(0,Q.useState)([]),ye=(0,Q.useRef)([]),[be,xe]=(0,Q.useState)(null),[Se,Ce]=(0,Q.useState)(null),[we,Te]=(0,Q.useState)(!1),[P,F]=(0,Q.useState)(null),[Ee,De]=(0,Q.useState)(null),I=(0,Q.useRef)(null),Oe=(0,Q.useRef)(null),[L,ke]=(0,Q.useState)(null),R=(0,Q.useRef)(null),[Ae,je]=(0,Q.useState)(!0),z=(0,Q.useRef)(null),B=(0,Q.useRef)(null),V=(0,Q.useRef)(``),W=(0,Q.useRef)([]),Me=(0,Q.useRef)(new Map),Ne=(0,Q.useRef)(null),[Pe,Fe]=(0,Q.useState)(null),K=(0,Q.useRef)(`idle`),Ie=(0,Q.useRef)(null),Le=(0,Q.useRef)(()=>{}),Re=(0,Q.useRef)(null),ze=(0,Q.useRef)(0),Ve=(0,Q.useRef)(0),He=(0,Q.useRef)(!1),Ue=(0,Q.useRef)(null),We=(0,Q.useRef)([]),Ge=(0,Q.useRef)(0),Ke=(0,Q.useRef)(!1),qe=(0,Q.useRef)(!1),Je=(0,Q.useRef)(null),Xe=(0,Q.useRef)(!1),Ze=(0,Q.useRef)(new Set),Qe=(0,Q.useRef)(0),$e=(0,Q.useRef)(null),et=(0,Q.useRef)(0),tt=(0,Q.useRef)(!1),J=(0,Q.useRef)(e);J.current=e;let nt=(0,Q.useRef)(r);nt.current=r;let rt=(0,Q.useRef)([]);rt.current=d;let it=(0,Q.useRef)(n);it.current=n;let Y=(0,Q.useRef)(null),at=(0,Q.useRef)(0),st=(0,Q.useRef)({teamNames:new Set,messages:[]}),ct=(0,Q.useRef)(0),[lt,ut]=(0,Q.useState)(wr),[dt,ft]=(0,Q.useState)([]),X=(0,Q.useCallback)(()=>{let e=st.current;ut({hasTeams:e.teamNames.size>0,teamNames:Array.from(e.teamNames),messageCount:e.messages.length,unreadCount:ct.current}),ft([...e.messages])},[]),pt=(0,Q.useCallback)(()=>{ct.current=0,X()},[X]),mt=(0,Q.useCallback)(async e=>{try{let t=await G.get(`/api/teams/${encodeURIComponent(e)}`);if(!t?.messages)return;let n=st.current.messages,r=t.messages.filter(e=>!n.some(t=>t.timestamp===e.timestamp&&t.from===e.from));n.push(...r),n.sort((e,t)=>new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()),n.length>500&&n.splice(0,n.length-500),X()}catch{}},[X]),ht=se!==`idle`;(0,Q.useEffect)(()=>{if(e)return ot.getState().setStreaming(e,se!==`idle`,n),()=>{ot.getState().setStreaming(e,!1)}},[e,se,n]);let gt=(0,Q.useCallback)((e,t)=>{let n=r=>{for(let i=0;i<r.length;i++){let a=r[i];if(a.type===`tool_use`){if((a.tool===`Agent`||a.tool===`Task`)&&a.toolUseId===t){let t=tn(a,e);return[[...r.slice(0,i),t,...r.slice(i+1)],!0]}if(a.children?.length){let[e,t]=n(a.children);if(t)return[[...r.slice(0,i),{...a,children:e},...r.slice(i+1)],!0]}}}return[r,!1]},[r,i]=n(W.current);return i&&(W.current=r),i},[]),_t=(0,Q.useCallback)((e,t)=>{let n=e=>e.type===`tool_use`&&(e.tool===`Agent`||e.tool===`Task`)&&e.toolUseId===t,r=rt.current,i=-1;for(let e=r.length-1;e>=0;e--)if(r[e].events?.some(n)){i=e;break}return i===-1?!1:(f(t=>{let r=-1;for(let e=t.length-1;e>=0;e--)if(t[e].events?.some(n)){r=e;break}if(r===-1)return t;let i=t[r],a=i.events.map(t=>n(t)?tn(t,e):t);return[...t.slice(0,r),{...i,events:a},...t.slice(r+1)]}),!0)},[]),vt=(0,Q.useCallback)(()=>{at.current=0;let e=V.current,t=[...W.current],n=Ne.current;(0,Q.startTransition)(()=>{f(r=>{let i=r[r.length-1];return i?.role===`assistant`&&!i.id.startsWith(`final-`)?[...r.slice(0,-1),{...i,content:e,events:t,...n}]:[...r,{id:`streaming-${Date.now()}`,role:`assistant`,content:e,events:t,timestamp:new Date().toISOString(),...n}]})})},[]),Z=(0,Q.useCallback)(()=>{at.current||=window.setTimeout(vt,100)},[vt]),yt=(0,Q.useCallback)((e,t)=>{let n=t=>t.type===`tool_use`&&(t.tool===`Agent`||t.tool===`Task`)&&t.toolUseId===e,r=W.current.findIndex(n);if(r!==-1){W.current[r]={...W.current[r],bgStatus:t},Z();return}f(e=>{let r=-1;for(let t=e.length-1;t>=0;t--)if(e[t].events?.some(n)){r=t;break}if(r===-1)return e;let i=e[r],a=i.events.map(e=>n(e)?{...e,bgStatus:t}:e);return[...e.slice(0,r),{...i,events:a},...e.slice(r+1)]})},[Z]),bt=(0,Q.useCallback)(e=>{let t=e,n=t?.type;if(!n)return;let r=e=>{let n=W.current,r=n.findIndex(e);r===-1?n.push(t):n[r]=t};switch(n){case`account_info`:Ne.current={accountId:t.accountId,accountLabel:t.accountLabel},Fe({id:t.accountId,label:t.accountLabel??null}),xe(null);break;case`account_retry`:t.accountId&&t.accountLabel&&(Ne.current={accountId:t.accountId,accountLabel:t.accountLabel},Fe({id:t.accountId,label:t.accountLabel})),W.current.push(t),Z();break;case`status_update`:{let e=t.accountLabel?` (${t.accountLabel})`:``;xe(`${t.message}${e}`);break}case`text`:{let e=t.parentToolUseId;if(e&>(t,e)){Z();break}if(e){_t(t,e);break}V.current+=t.content,W.current.push(t),Z();break}case`thinking`:{let e=t.parentToolUseId;if(e&>(t,e)){Z();break}if(e){_t(t,e);break}W.current.push(t),Z();break}case`tool_use`:{if(t.tool===`AskUserQuestion`){t.toolUseId&&Ze.current.add(t.toolUseId);break}let e=t.parentToolUseId;if(e&>(t,e)){Z();break}if(e){_t(t,e);break}let n=t.toolUseId;r(e=>!!n&&e.type===`tool_use`&&e.toolUseId===n),Z();break}case`tool_result`:{let e=t.toolUseId;if(e&&Me.current.delete(e),e&&Ze.current.has(e))break;let n=t.parentToolUseId;if(n&>(t,n)){Z();break}if(n){_t(t,n);break}if(K.current===`idle`&&e?.startsWith(`subagent-`)){f(n=>n.map(n=>n.events?.some(t=>t.type===`tool_use`&&t.toolUseId===e)?{...n,events:n.events.map(n=>n.type===`tool_use`&&n.toolUseId===e?{...n,result:{output:t.output,isError:t.isError,exitCode:t.exitCode}}:n)}:n));break}r(t=>!!e&&t.type===`tool_result`&&t.toolUseId===e),Z();break}case`approval_resolved`:{let e=t.requestId;if(t.approved&&t.answers){let n=W.current.find(t=>t.type===`approval_request`&&t.requestId===e&&t.tool===`AskUserQuestion`),r=n&&n.input;r&&typeof r==`object`&&(r.answers=t.answers,f(e=>[...e]))}de(t=>t&&t.requestId===e?null:t),Y.current!=null&&(H.dismiss(Y.current),Y.current=null);break}case`approval_request`:if(r(e=>e.type===`approval_request`&&e.requestId===t.requestId),Xe.current)break;if(de({requestId:t.requestId,tool:t.tool,input:t.input}),J.current&&!Er(J.current)){fr(t.tool===`AskUserQuestion`?`question`:`approval_request`);let e=J.current,n=t.tool===`AskUserQuestion`;Y.current=H[n?`info`:`warning`](n?`AI has a question`:`${t.tool} needs permission`,{description:it.current||`Session ${e.slice(0,8)}`,duration:1/0,action:{label:`Go to session`,onClick:()=>{let{panels:t}=Be.getState();for(let[n,r]of Object.entries(t)){let t=r.tabs.find(t=>t.metadata?.sessionId===e);if(t){Be.getState().setActiveTab(t.id,n);break}}}}})}break;case`error`:if(t.parentToolUseId){gt(t,t.parentToolUseId)?Z():_t(t,t.parentToolUseId);break}Xe.current||u.current?.fail(),f(e=>{let n=e[e.length-1];if(n?.role===`assistant`){let r=W.current,i=r[r.length-1],a=i?.type===`error`&&i.message===t.message?r:[...r,t];return W.current=a,[...e.slice(0,-1),{...n,events:a}]}return n?.role===`system`&&n.content===t.message?e:[...e,{id:`error-${Date.now()}`,role:`system`,content:t.message,events:[t],timestamp:new Date().toISOString()}]});break;case`team_detected`:{let e=t.teamName;e&&(st.current.teamNames.add(e),X(),mt(e));break}case`team_inbox`:{let e=t.messages;if(Array.isArray(e)){let t=st.current.messages;t.push(...e),t.length>500&&t.splice(0,t.length-500),ct.current+=e.length,X()}break}case`team_updated`:X();break;case`bash_output`:{let e=t.toolUseId;if(e){let n=Me.current.get(e);n?(n.content+=t.content,n.content.length>5e5&&(n.content=n.content.slice(-5e5)),n.lineCount=t.lineCount):Me.current.set(e,{content:t.content,lineCount:t.lineCount}),Z()}break}case`subagent_status`:{let e=t.toolUseId,n=t.status;e&&n&&yt(e,n);break}case`background_registry`:{let e=t.shells??[];ye.current=e,N(e);break}case`done`:{if(t.parentToolUseId||(Xe.current||u.current?.finish(!!V.current.trim()),K.current===`idle`))break;t.contextWindowPct!=null&&pe(t.contextWindowPct),J.current&&!Er(J.current)&&fr(`done`),at.current&&=(clearTimeout(at.current),0);let e=V.current,n=[...W.current],r=Ne.current;He.current=!!e||n.length>0;let i=t.lastMessageUuid,a=t.usage;f(t=>{let o=t[t.length-1];return o?.role===`assistant`?[...t.slice(0,-1),{...o,id:`final-${Date.now()}`,content:e||o.content,events:n.length>0?n:o.events,...i&&{sdkUuid:i},...a&&{usage:a}}]:e||n.length>0?[...t,{id:`final-${Date.now()}`,role:`assistant`,content:e,events:n,timestamp:new Date().toISOString(),...i&&{sdkUuid:i},...a&&{usage:a},...r}]:t}),a&&ge(e=>e&&{...e,lastTurnEndedAt:Date.now(),billedPrefixTokens:pr(a),...a.contextTokens!=null&&{contextTokens:a.contextTokens},...a.cacheTtlMs!=null&&{ttlMs:a.cacheTtlMs},compactedAt:a.compactedAt}),V.current=``,W.current=[],Ne.current=null,$e.current=null,Me.current.clear(),xe(null);break}}},[gt,_t,Z,yt,X,mt]),xt=(0,Q.useCallback)(e=>{let t;try{t=JSON.parse(e.data)}catch{return}if(t.type===`tab_open`){Zt(t,{sessionId:J.current??``,projectName:it.current||void 0},e=>Le.current(e));return}if(Xe.current){We.current.push(e);return}if(t.type===`ping`){let e=t.streamSeq;typeof e==`number`&&e>Ge.current&&!Ke.current&&!qe.current&&(Ke.current=!0,Le.current(JSON.stringify({type:`resync`})));return}let n=t.streamSeq;if(typeof n==`number`&&(qe.current?Ge.current=Math.max(Ge.current,n):n===Ge.current+1?Ge.current=n:n>Ge.current&&!Ke.current&&(Ke.current=!0,Le.current(JSON.stringify({type:`resync`})))),t.type===`message_rejected`){let e=t,n=typeof e.clientMessageId==`string`?s.current.findIndex(t=>t.id===e.clientMessageId):s.current.findLastIndex(t=>t.content===e.content&&JSON.stringify(t.replyTo??null)===JSON.stringify(e.replyTo??null));if(n!==-1){let[t]=s.current.splice(n,1);f(e=>e.filter(e=>e.id!==t.id).map(e=>e.id===t.finalizedId&&t.originalAssistantId?{...e,id:t.originalAssistantId}:e)),t.wasIdle&&n===s.current.length&&(u.current?.fail(),E(`idle`),K.current=`idle`),!t.wasIdle&&K.current!==`idle`&&!He.current&&(V.current=t.streamingContent+V.current,W.current=[...t.streamingEvents,...W.current],(V.current||W.current.length)&&Z());let r=sn(t.encoded);o.current?.({...r,message:e.message})}o.current||H.error(e.message||`Message could not be sent`);return}if(t.type===`user_message`){ze.current++;let e=t.content;f(n=>{let r=n[n.length-1];return r?.role===`user`&&r.content===e?n:[...n,{id:`user-remote-${Date.now()}`,role:`user`,content:e,timestamp:t.timestamp??new Date().toISOString()}]});return}if(t.type===`title_updated`){Ce(t.title??null);return}if(t.type===`session_migrated`){let e=t.newSessionId;e&&e!==J.current&&(u.current?.migrate(e),nt.current?.(e));return}if(t.type===`mcp_status`){let e=t.needsAuth;A(Array.isArray(e)?e:[]);return}if(t.type===`turn_stop`){j(t.stop??null);return}if(t.type===`compact_status`){let e=t.status;e===`compacting`?k(`compacting`):e===`done`&&k(null);return}if(t.type===`phase_changed`){let e=t.phase,n=K.current!==`idle`;if(!n&&e!==`idle`&&(He.current=!1),e!==`idle`&&ze.current++,e!==`idle`&&j(null),E(e),K.current=e,O(e===`connecting`?t.elapsed??0:0),e===`idle`){let e=qe.current;Ke.current=!1,qe.current=!1,k(null),xe(null),(e||n&&!He.current)&&Re.current?.()}return}if(t.type===`session_state`){Te(!0),ce(!1),F(t.sessionId??J.current);let e=t,n=e.phase;n!==`idle`&&ze.current++;let r=K.current===`idle`;if(r&&n!==`idle`&&(He.current=!1),E(n),K.current=n,e.sessionTitle&&Ce(e.sessionTitle),e.model&&(Oe.current&&e.model!==Oe.current||(e.model===Oe.current&&(Oe.current=null),De(e.model),I.current=e.model)),typeof e.effort==`string`&&(ke(e.effort),R.current=e.effort),typeof e.thinking==`boolean`&&je(e.thinking),e.pendingApproval&&de({requestId:e.pendingApproval.requestId,tool:e.pendingApproval.tool,input:e.pendingApproval.input}),k(e.compactStatus===`compacting`?`compacting`:null),n===`idle`?`turnStop`in e&&j(e.turnStop??null):j(null),ge(e.promptCache??null),A(Array.isArray(e.mcpNeedsAuth)?e.mcpNeedsAuth:[]),n===`idle`){let e=qe.current;Ke.current=!1,qe.current=!1;let t=Date.now()-et.current<5e3;(e||!(r&&(t||tt.current)))&&Re.current?.(),ce(!1)}return}if(t.type===`turn_events`){ze.current++;let e=t.events,n=t.userMessage;if(!e?.length&&!n){ce(!1);return}Qe.current&&=(cancelAnimationFrame(Qe.current),0),$e.current=n,f(e=>{let t=[...e],r=t.length;for(;r>0&&t[r-1].role===`assistant`;)r--;if(n!=null&&r>0&&t[r-1].role===`user`&&t[r-1].content===n)t=t.slice(0,r-1);else{let e=t[t.length-1];e?.role===`assistant`&&e.id.startsWith(`streaming-`)&&(t=t.slice(0,-1))}if(n){let e=t[t.length-1];(e?.role!==`user`||e.content!==n)&&(t=[...t,{id:`user-replay-${Date.now()}`,role:`user`,content:n,timestamp:new Date().toISOString()}])}return t}),V.current=``,W.current=[],Ne.current=null,Xe.current=!0;let r=0,i=()=>{let n=Math.min(r+100,e.length);for(let t=r;t<n;t++)bt(e[t]);if(r=n,r<e.length)Qe.current=requestAnimationFrame(i);else{Qe.current=0,Xe.current=!1;let e=t.streamSeq,n=t.truncated===!0;qe.current=n,!n&&typeof e==`number`&&(Ge.current=e),Ke.current=!1,ce(!1);let r=We.current.splice(0);for(let e of r)Je.current?.(e)}};Qe.current=requestAnimationFrame(i);return}bt(t)},[bt,Z]);Je.current=xt;let{send:St,connect:Ct}=mn({url:e&&n?`/ws/project/${encodeURIComponent(n)}/chat/${e}?providerId=${encodeURIComponent(t)}`:``,onMessage:xt,autoConnect:!!e&&!!n,idleTimeoutMs:45e3,onConnectionChange:e=>{e||(u.current?.fail(),Te(!1),ce(!0))}});Le.current=St,(0,Q.useEffect)(()=>{let r=!1;u.current?.select(e);let i=Ve.current;He.current=!1,ze.current++,Ge.current=0,Ke.current=!1,qe.current=!1,B.current&&B.current!==e&&(Oe.current=null,z.current=null,Fe(null)),B.current=e??null,s.current=[],E(`idle`),K.current=`idle`,de(null),Y.current!=null&&(H.dismiss(Y.current),Y.current=null),k(null),A([]),j(null),m(new Map),v({}),oe(),ae.current=!1,re.current=!1,ne(!1),V.current=``,W.current=[],$e.current=null,et.current=0,Me.current.clear(),at.current&&=(clearTimeout(at.current),0),Te(!1),F(null),ce(!1),st.current={teamNames:new Set,messages:[]},ct.current=0,ut(wr),ft([]),e&&G.get(`/api/teams`).then(t=>{r||!Array.isArray(t)||t.filter(t=>(t?.name??t?.team_name)===e).length!==0&&(st.current.teamNames.add(e),X(),mt(e))}).catch(()=>{});let a=new Set(rt.current.map(e=>e.id));return e&&n?(tt.current=!0,g(!0),G.get(`${U(n)}/chat/sessions/${e}/messages?providerId=${t}&limit=${Tr}`).then(e=>{if(r||Ve.current!==i)return;let t=Array.isArray(e)?{messages:e,versionMap:{}}:e,n=Cr(Array.isArray(t?.messages)?t.messages:[]);t?.versionMap&&v(t.versionMap),oe(t),t?.canonicalSessionId&&t.canonicalSessionId!==J.current&&nt.current?.(t.canonicalSessionId);let o=$e.current;if(o!=null){for(let e=n.length-1;e>=0;e--)if(n[e].role===`user`&&n[e].content===o){n=n.slice(0,e);break}}f(e=>{let t=e.filter(e=>!a.has(e.id));return[...n,...t]}),et.current=Date.now()}).catch(t=>{!r&&Ve.current===i&&(f(e=>e.filter(e=>!a.has(e.id))),t?.status===404&&n&&q.getState().removeSession(Ye(n),e))}).finally(()=>{r||(tt.current=!1,g(!1))})):f([]),()=>{r=!0,tt.current=!1,Ue.current?.abort(),Ue.current=null,at.current&&clearTimeout(at.current),at.current=0,Qe.current&&cancelAnimationFrame(Qe.current),Qe.current=0,Xe.current=!1,We.current=[]}},[e,t,n,X,mt]);let wt=(0,Q.useCallback)(()=>({...I.current&&{model:I.current},...R.current&&{effort:R.current},...z.current!==null&&{thinking:z.current}}),[]),Tt=(0,Q.useCallback)((e,t)=>{if(!e.trim()&&!t?.images?.length)return;let n=cn(e,t?.replyTo);ze.current++,j(null);let r=K.current!==`idle`;J.current&&u.current?.start(J.current,!r,we&&P===J.current),He.current=!1;let i=`final-${Date.now()}-${c.current+1}`,a=rt.current.at(-1);if(r){at.current&&=(clearTimeout(at.current),0);let e=V.current,t=[...W.current];f(n=>{let r=n[n.length-1];return r?.role===`assistant`?[...n.slice(0,-1),{...r,id:i,content:e||r.content,events:t.length>0?t:r.events}]:n})}let o=`user-${Date.now()}-${++c.current}`;s.current=s.current.filter(e=>Date.now()-e.sentAt<6e4),t?.replyTo&&s.current.push({id:o,content:e,encoded:n,replyTo:t.replyTo,sentAt:Date.now(),wasIdle:!r,streamingContent:V.current,streamingEvents:[...W.current],finalizedId:r?i:void 0,originalAssistantId:a?.role===`assistant`?a.id:void 0}),s.current.length>20&&s.current.shift(),f(e=>[...e,{id:o,role:`user`,content:n,timestamp:new Date().toISOString()}]),V.current=``,W.current=[],Ie.current=null,r?(E(`thinking`),K.current=`thinking`):(E(`initializing`),K.current=`initializing`),de(null),Y.current!=null&&(H.dismiss(Y.current),Y.current=null),St(JSON.stringify({type:`message`,clientMessageId:o,content:e,permissionMode:t?.permissionMode,priority:t?.priority,images:t?.images,imagePaths:t?.imagePaths,replyTo:t?.replyTo,...wt()}))},[St,we,P,wt]),Et=(0,Q.useCallback)(e=>{De(e),I.current=e,Oe.current=e,St(JSON.stringify({type:`set_model`,model:e}))},[St]),Dt=(0,Q.useCallback)(e=>{ke(e),R.current=e,St(JSON.stringify({type:`set_effort`,effort:e}))},[St]),Ot=(0,Q.useCallback)(e=>{je(e),z.current=e,St(JSON.stringify({type:`set_thinking`,enabled:e}))},[St]),kt=(0,Q.useCallback)((e,t,n)=>{if(St(JSON.stringify({type:`approval_response`,requestId:e,approved:t,data:n})),t&&n){let t=W.current.find(t=>t.type===`approval_request`&&t.requestId===e&&t.tool===`AskUserQuestion`);if(t){let e=t.input;e&&typeof e==`object`&&(e.answers=n)}f(e=>[...e])}de(null),Y.current!=null&&(H.dismiss(Y.current),Y.current=null)},[St]),At=(0,Q.useCallback)(()=>{if(u.current?.fail(),K.current===`idle`)return;St(JSON.stringify({type:`cancel`}));let e=V.current,t=[...W.current];f(n=>{let r=n[n.length-1];return r?.role===`assistant`?[...n.slice(0,-1),{...r,id:`final-${Date.now()}`,content:e||r.content,events:t.length>0?t:r.events}]:n}),V.current=``,W.current=[],Me.current.clear(),Ie.current=null,E(`idle`),K.current=`idle`,de(null),Y.current!=null&&(H.dismiss(Y.current),Y.current=null)},[St]),jt=(0,Q.useCallback)(e=>{e&&St(JSON.stringify({type:`kill_background_shell`,shellId:e}))},[St]),Mt=(0,Q.useCallback)(e=>{if(!e)return;let t=e.replace(/\.output$/,``);return ye.current.find(n=>n.shellId===t||n.outputPath.endsWith(e)||n.outputPath.endsWith(`${t}.output`))},[]);(0,Q.useEffect)(()=>{e&&Ht.getState().setSessionShells(e,M)},[e,M]),(0,Q.useEffect)(()=>{if(e)return Ht.getState().retainSession(e),()=>{Ht.getState().releaseSession(e)}},[e]);let Nt=(0,Q.useCallback)(()=>{Te(!1),ce(!0),Ct()},[Ct]),Pt=(0,Q.useCallback)(()=>{if(!e||!n||K.current!==`idle`)return;let r=Ue.current;if(r&&!r.signal.aborted&&ie.current===r){ae.current=!0;return}Ue.current?.abort();let i=new AbortController;ie.current=i,Ue.current=i;let a=ze.current,o=x.current;G.get(`${U(n)}/chat/sessions/${e}/messages?providerId=${t}&from=${o}&limit=${Tr}`,{signal:i.signal}).then(t=>{if(i.signal.aborted||Ue.current!==i||ze.current!==a||K.current!==`idle`||J.current!==e||it.current!==n||Xe.current)return;let r=Array.isArray(t)?{messages:t,versionMap:void 0}:t;if(r?.versionMap&&v(r.versionMap),re.current){T.current=!0;return}if(x.current!==o){queueMicrotask(()=>Re.current?.());return}Array.isArray(r?.messages)&&r.messages.length>0&&(Ve.current++,at.current&&=(clearTimeout(at.current),0),oe(r),f(Cr(r.messages)),V.current=``,W.current=[]),et.current=Date.now()}).catch(()=>{}).finally(()=>{ie.current===i&&(ie.current=null,ae.current&&!i.signal.aborted&&(ae.current=!1,Re.current?.()))})},[e,t,n,oe]),Ft=(0,Q.useCallback)(async()=>{let r=x.current;if(!(!e||!n||r<=0||re.current)){re.current=!0,ne(!0);try{let i=await G.get(`${U(n)}/chat/sessions/${e}/messages?providerId=${t}&limit=${Tr}&before=${r}`);if(J.current!==e||x.current!==r)return;let a=Cr(Array.isArray(i?.messages)?i.messages:[]);f(e=>{let t=new Set(e.map(e=>e.id));return[...a.filter(e=>!t.has(e.id)),...e]}),oe(i)}finally{re.current=!1,ne(!1),T.current&&(T.current=!1,Re.current?.())}}},[e,t,n,oe]);Re.current=Pt;let It=(0,Q.useCallback)(async(e,t)=>{if(!n)throw Error(`No project context available`);let r=e.replace(/^pc-[^-]+-/,``),i=`${U(n)}/chat/pre-compact-messages?jsonlPath=${encodeURIComponent(t)}&before=${encodeURIComponent(r)}`,a=rr(await G.get(i),t);return m(t=>{let n=new Map(t);return n.set(e,a),n}),a.length},[n]),Lt=(0,Q.useCallback)(e=>p.has(e),[p]),Rt=(0,Q.useCallback)(e=>{f(t=>t.filter(t=>t.id!==e))},[]),zt=(0,Q.useCallback)(()=>{f(e=>e.filter(e=>e.role!==`system`))},[]);return{messages:d,renderedMessages:(0,Q.useMemo)(()=>ir(d,p),[d,p]),expandCompact:It,isCompactExpanded:Lt,dismissMessage:Rt,clearErrors:zt,messagesLoading:h,versionMap:_,hasOlderHistory:y>0,loadingOlderHistory:te,loadOlderHistory:Ft,userOrdinalOffset:S,historyPredecessorId:ee,isStreaming:ht,phase:se,isReconnecting:D,connectingElapsed:le,pendingApproval:ue,contextWindowPct:fe,compactStatus:me,promptCache:he,mcpNeedsAuth:_e,turnStop:ve,statusMessage:be,sessionTitle:Se,liveAccount:Pe,model:Ee,setModel:Et,effort:L,setEffort:Dt,thinking:Ae,setThinking:Ot,turnSettings:wt,teamActivity:lt,teamMessages:dt,markTeamRead:pt,bashPartialOutput:Me,backgroundShells:M,killBackgroundShell:jt,findBackgroundShellByOutput:Mt,sendMessage:Tt,respondToApproval:kt,cancelStreaming:At,reconnect:Nt,refetchMessages:Pt,isConnected:we&&P===e}}var Or=300,kr=6e4;function Ar(e){let{enabled:t,projectName:n,providerId:r,permissionMode:i,accountId:a,picks:o}=e,s=(0,Q.useRef)(0),c=(0,Q.useRef)(()=>{}),l=(0,Q.useRef)(t);return l.current=t,c.current=()=>{s.current=Date.now(),G.post(`${U(n)}/chat/prewarm`,{providerId:r,permissionMode:i,accountId:a,...o}).catch(()=>{})},(0,Q.useEffect)(()=>{if(!t)return;let e=setTimeout(()=>c.current(),Or);return()=>clearTimeout(e)},[t,JSON.stringify([n,r,i??null,a??null,o])]),(0,Q.useCallback)(()=>{l.current&&Date.now()-s.current>=kr&&c.current()},[])}function jr(e,t,n){let r=pt(e);return n&&r&&!r.sessionId&&(!r.pickedAccountId||r.pickedAccountProvider!==t)&&(r.providerPending||r.providerId===t)&&X(e,{pickedAccountId:n.id,pickedAccountLabel:n.label,pickedAccountProvider:t}),n}function Mr(e,t,n){let r=(0,Q.useRef)(new Map),i=(0,Q.useRef)(!0);(0,Q.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]);let a=(0,Q.useCallback)(t=>{if(!e)return Promise.resolve(null);let n=pt(e);if(n?.pickedAccountProvider===t&&typeof n.pickedAccountId==`string`)return Promise.resolve({id:n.pickedAccountId,label:typeof n.pickedAccountLabel==`string`?n.pickedAccountLabel:null});if(Br(e,t))return Promise.resolve(null);let a=n=>i.current?jr(e,t,n):n,o=r.current.get(t);if(o)return o.then(a);let s=Rr(e),c=(s?s.catch(()=>null):Promise.resolve(null)).then(()=>{let n=pt(e);return n?.pickedAccountProvider===t&&typeof n.pickedAccountId==`string`?{id:n.pickedAccountId,label:typeof n.pickedAccountLabel==`string`?n.pickedAccountLabel:null}:Br(e,t)?null:hn(t,AbortSignal.timeout(3e4))}).then(a).catch(e=>{throw r.current.get(t)===c&&r.current.delete(t),e});return r.current.set(t,c),c},[e]);return(0,Q.useEffect)(()=>{n&&a(t).catch(()=>{})},[n,t,a]),a}var Nr=(e,t,n)=>G.post(e,t,{signal:n}),Pr=new Map,Fr=new Set,Ir=new Map;function Lr(e,t,n){let r=Pr.get(e);if(r)return r;let i=Nr(`${U(t.name)}/chat/prepare`,n,AbortSignal.timeout(rt)).then(n=>(Pr.get(e)===i?(Fr.add(e),Ur(e,t,n)):Hr(t,n),n));Pr.set(e,i),n.providerId&&Mt(t.name,n.providerId,i.then(e=>e.slash,()=>null));let a=()=>{setTimeout(()=>{Pr.get(e)===i&&Pr.delete(e)},rt)};return i.then(a,a),i}function Rr(e){return e?Pr.get(e):void 0}function zr(e){return Fr.has(e)}function Br(e,t){return Ir.get(e)===t}function Vr(e){Pr.delete(e),Fr.delete(e),Ir.delete(e)}function Hr(e,t){V(t.settings),W(Ne(e),t.providers),nt(e.name,t.providers),t.tags&&q.getState().seedTags(e,t.tags),t.slash&&Ft(e,t.providerId,t.slash)}function Ur(e,t,n){Hr(t,n),n.pickedAccount===null&&Ir.set(e,n.providerId);let r=n.pickedAccount&&n.pickedAccount!==`timeout`&&n.pickedAccount!==`skipped`?n.pickedAccount:null;jr(e,n.providerId,r),n.usage&&Xr(Jr(t.name,n.providerId,void 0,r?.id),n.usage,n.usage.lastFetchedAt??null,r?.id)}var Wr=12e4,Gr=3e4,Kr=new Map,qr=new Map;function Jr(e,t,n,r){return JSON.stringify([e,t,n,r])}function Yr(e,t,n,r){let i=!n||t?.activeAccountId===n;return{scope:e,usage:i?t??{}:{},fetchedAt:i?r??null:null}}function Xr(e,t,n,r){Kr.set(e,Yr(e,t,r,n)),qr.set(e,Date.now())}function Zr(e,t=`claude`,n,r,i=!0,a){let o=n?void 0:r,s=Jr(e,t,n,r),[c,l]=(0,Q.useState)(null),[u,d]=(0,Q.useState)(!1),f=(0,Q.useRef)(null),p=(0,Q.useRef)(0),m=(0,Q.useCallback)((a=!1)=>{if(!i||!e)return Promise.resolve();let c=++p.current;d(!0);let u=a?`&refresh=1`:``,f=n?`&session=${encodeURIComponent(n)}`:``,m=o?`&accountId=${encodeURIComponent(o)}`:``;return G.get(`${U(e)}/chat/usage?providerId=${t}${f}${m}${u}`).then(e=>{if(c!==p.current)return;let t=Yr(s,e,r,e?.lastFetchedAt);Kr.set(s,t),l(t)}).catch(()=>{}).finally(()=>{c===p.current&&d(!1)})},[e,t,n,o,r,s,i]);(0,Q.useEffect)(()=>{if(l(null),d(!1),!i)return;let e=!1,t,n=()=>{e||(t=setTimeout(()=>m(),500))},r=a?Rr(a):void 0;return r?r.then(()=>{if(e)return;let t=qr.get(s),r=Kr.get(s);if(r&&t!==void 0&&Date.now()-t<Gr){l(r);return}n()},()=>{e||n()}):n(),f.current=setInterval(()=>m(),Wr),()=>{e=!0,++p.current,t&&clearTimeout(t),f.current&&clearInterval(f.current)}},[m,i,a,s]);let h=(0,Q.useCallback)(()=>m(!0),[m]),g=(0,Q.useCallback)(()=>m(),[m]),_=i?c?.scope===s?c:Kr.get(s):null;return{usageInfo:_?.usage??{},usageLoading:u,lastFetchedAt:_?.fetchedAt??null,refreshUsage:h,reloadUsage:g}}function Qr(e){let{tabId:t,sessionId:n,designSlug:r,projectName:i,providerId:a}=e;(0,Q.useEffect)(()=>{if(!t||!n||r||!i||Be.getState().getPanelForTab(t)?.tabs.find(e=>e.id===t)?.type!==`chat`)return;let e=!1;return G.get(`${U(i)}/chat/sessions/${encodeURIComponent(n)}/design`).then(({designSlug:r})=>{if(e||!r)return;let o=Be.getState().getPanelForTab(t)?.id;Rt({projectName:i,slug:r,sessionId:n,providerId:a,panelId:o}),Be.getState().closeTab(t,o)}).catch(()=>{}),()=>{e=!0}},[t,n,r,i,a])}function $r(e){if(e.role===`assistant`)return(e.events?.length?e.events.filter(e=>e.type===`text`).map(e=>e.content).join(``):e.content).trim();if(e.role!==`user`)return``;let t=on(e.content);if(t.tags.some(e=>[`task-notification`,`environment_details`,`local-command-caveat`].includes(e.name)))return``;let n=[t.command?.name,t.text].filter(Boolean);return t.files.length&&n.push(`Attached files: ${t.files.map(e=>e.split(/[\\/]/).pop()).join(`, `)}`),n.join(`
|
|
3
|
+
`).trim()}function ei(e,t,n){let r=$r(e);if(!r||e.role===`system`||e.id.startsWith(`streaming-`))return null;let i=Array.from(r);return{version:1,sessionId:t,providerId:n,messageId:e.id,...e.sdkUuid?{sdkUuid:e.sdkUuid}:{},role:e.role,timestamp:e.timestamp,quote:i.slice(0,fn).join(``),truncated:i.length>fn}}function ti(e,t,n,r){if(t.sessionId!==n||t.providerId!==r)return null;let i=e=>{if(e.role!==t.role)return!1;let n=$r(e);return t.truncated?Array.from(n).slice(0,fn).join(``)===t.quote:n===t.quote},a=e.filter(e=>(t.sdkUuid&&e.sdkUuid===t.sdkUuid||e.id===t.messageId&&e.timestamp===t.timestamp)&&i(e));if(a.length===1)return a[0];if(a.length>1)return null;let o=e.filter(e=>e.timestamp===t.timestamp&&i(e));return o.length===1?o[0]:null}function ni(e){let t=Array(e.length),n=0;for(let r=0;r<e.length;r++){let i=e[r].role===`user`;i&&n++,t[r]=i?n:0}return t}var ri={damping:.7,stiffness:.05,mass:1.25},ii=70,ai=1e3/60,oi=350,si=!1;globalThis.document?.addEventListener(`mousedown`,()=>{si=!0}),globalThis.document?.addEventListener(`mouseup`,()=>{si=!1}),globalThis.document?.addEventListener(`click`,()=>{si=!1});var ci=(e={})=>{let[t,n]=(0,Q.useState)(!1),[r,i]=(0,Q.useState)(e.initial!==!1),[a,o]=(0,Q.useState)(!1),s=(0,Q.useRef)(null);s.current=e;let c=(0,Q.useCallback)(()=>{if(!si)return!1;let e=window.getSelection();if(!e||!e.rangeCount)return!1;let t=e.getRangeAt(0);return t.commonAncestorContainer.contains(g.current)||g.current?.contains(t.commonAncestorContainer)},[]),l=(0,Q.useCallback)(e=>{d.isAtBottom=e,i(e)},[]),u=(0,Q.useCallback)(e=>{d.escapedFromLock=e,n(e)},[]),d=(0,Q.useMemo)(()=>{let n;return{escapedFromLock:t,isAtBottom:r,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return g.current?.scrollTop??0},set scrollTop(e){if(g.current){let{scrollBehavior:t}=getComputedStyle(g.current);t!==`auto`&&(g.current.style.scrollBehavior=`auto`),g.current.scrollTop=e,d.ignoreScrollToTop=g.current.scrollTop,t!==`auto`&&(g.current.style.scrollBehavior=t)}},get targetScrollTop(){return!g.current||!_.current?0:g.current.scrollHeight-1-g.current.clientHeight},get calculatedTargetScrollTop(){if(!g.current||!_.current)return 0;let{targetScrollTop:t}=this;if(!e.targetScrollTop)return t;if(n?.targetScrollTop===t)return n.calculatedScrollTop;let r=Math.max(Math.min(e.targetScrollTop(t,{scrollElement:g.current,contentElement:_.current}),t),0);return n={targetScrollTop:t,calculatedScrollTop:r},requestAnimationFrame(()=>{n=void 0}),r},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=ii}}},[]),f=(0,Q.useCallback)((e={})=>{typeof e==`string`&&(e={animation:e}),e.preserveScrollPosition||l(!0);let t=Date.now()+(Number(e.wait)||0),n=di(s.current,e.animation),{ignoreEscapes:r=!1}=e,i,a=d.calculatedTargetScrollTop;e.duration instanceof Promise?e.duration.finally(()=>{i=Date.now()}):i=t+(e.duration??0);let o=async()=>{let e=new Promise(requestAnimationFrame).then(()=>{if(!d.isAtBottom)return d.animation=void 0,!1;let{scrollTop:l}=d,u=performance.now(),p=(u-(d.lastTick??u))/ai;if(d.animation||={behavior:n,promise:e,ignoreEscapes:r},d.animation.behavior===n&&(d.lastTick=u),c()||t>Date.now())return o();if(l<Math.min(a,d.calculatedTargetScrollTop)){if(d.animation?.behavior===n){if(n===`instant`)return d.scrollTop=d.calculatedTargetScrollTop,o();d.velocity=(n.damping*d.velocity+n.stiffness*d.scrollDifference)/n.mass,d.accumulated+=d.velocity*p,d.scrollTop+=d.accumulated,d.scrollTop!==l&&(d.accumulated=0)}return o()}return i>Date.now()?(a=d.calculatedTargetScrollTop,o()):(d.animation=void 0,d.scrollTop<d.calculatedTargetScrollTop?f({animation:di(s.current,s.current.resize),ignoreEscapes:r,duration:Math.max(0,i-Date.now())||void 0}):d.isAtBottom)});return e.then(e=>(requestAnimationFrame(()=>{d.animation||(d.lastTick=void 0,d.velocity=0)}),e))};return e.wait!==!0&&(d.animation=void 0),d.animation?.behavior===n?d.animation.promise:o()},[l,c,d]),p=(0,Q.useCallback)(()=>{u(!0),l(!1)},[u,l]),m=(0,Q.useCallback)(({target:e})=>{if(e!==g.current)return;let{scrollTop:t,ignoreScrollToTop:n}=d,{lastScrollTop:r=t}=d;d.lastScrollTop=t,d.ignoreScrollToTop=void 0,n&&n>t&&(r=n),o(d.isNearBottom),setTimeout(()=>{if(d.resizeDifference||t===n)return;if(c()){u(!0),l(!1);return}let e=t>r,i=t<r;if(d.animation?.ignoreEscapes){d.scrollTop=r;return}i&&(u(!0),l(!1)),e&&u(!1),!d.escapedFromLock&&d.isNearBottom&&l(!0)},1)},[u,l,c,d]),h=(0,Q.useCallback)(({target:e,deltaY:t})=>{let n=e;for(;![`scroll`,`auto`].includes(getComputedStyle(n).overflow);){if(!n.parentElement)return;n=n.parentElement}n===g.current&&t<0&&g.current.scrollHeight>g.current.clientHeight&&!d.animation?.ignoreEscapes&&(u(!0),l(!1))},[u,l,d]),g=li(e=>{g.current?.removeEventListener(`scroll`,m),g.current?.removeEventListener(`wheel`,h),e?.addEventListener(`scroll`,m,{passive:!0}),e?.addEventListener(`wheel`,h,{passive:!0})},[]),_=li(e=>{if(d.resizeObserver?.disconnect(),d.resizeObserver=void 0,!e)return;let t;d.resizeObserver=new ResizeObserver(([e])=>{let{height:n}=e.contentRect,r=n-(t??n);if(d.resizeDifference=r,d.scrollTop>d.targetScrollTop&&(d.scrollTop=d.targetScrollTop),o(d.isNearBottom),r>=0){let e=di(s.current,t?s.current.resize:s.current.initial);f({animation:e,wait:!0,preserveScrollPosition:!0,duration:e===`instant`?void 0:oi})}else d.isNearBottom&&(u(!1),l(!0));t=n,requestAnimationFrame(()=>{setTimeout(()=>{d.resizeDifference===r&&(d.resizeDifference=0)},1)})}),d.resizeObserver?.observe(e)},[]);return{contentRef:_,scrollRef:g,scrollToBottom:f,stopScroll:p,isAtBottom:r||a,isNearBottom:a,escapedFromLock:t,state:d}};function li(e,t){let n=(0,Q.useCallback)(t=>(n.current=t,e(t)),t);return n}var ui=new Map;function di(...e){let t={...ri},n=!1;for(let r of e){if(r===`instant`){n=!0;continue}typeof r==`object`&&(n=!1,t.damping=r.damping??t.damping,t.stiffness=r.stiffness??t.stiffness,t.mass=r.mass??t.mass)}let r=JSON.stringify(t);return ui.has(r)||ui.set(r,Object.freeze(t)),n?`instant`:ui.get(r)}var fi=60,pi=8,mi=1400;function hi(e){if(e.scrollHeight<=e.clientHeight)return!1;let t=getComputedStyle(e).overflowY;return t===`auto`||t===`scroll`}function gi(e,t){let n=[],r=e.parentElement;for(;r&&r!==t;)hi(r)&&n.push(r),r=r.parentElement;return n}function _i(){return typeof matchMedia==`function`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches}function vi(e,t){let n=e.querySelector(`[data-edit-ref="${CSS.escape(t)}"]`);if(n)return{el:n,level:`edit`};let r=t.replace(/-\d+$/,``),i=e.querySelector(`[data-tool-ref="${CSS.escape(r)}"]`);return i?{el:i,level:`card`}:null}function yi(e,t,n,r){let i=e.scrollTop+t.getBoundingClientRect().top-e.getBoundingClientRect().top-n;e.scrollTo({top:i,behavior:r?`smooth`:`auto`})}function bi(e,t){let n=vi(e,t);if(!n)return()=>{};let{el:r,level:i}=n;for(let t of gi(r,e))yi(t,r,pi,!1);yi(e,r,fi,!_i()),r.dataset.flash=i;let a=setTimeout(()=>{delete r.dataset.flash},mi);return()=>{clearTimeout(a),delete r.dataset.flash}}var xi=(e,t)=>`${e}\0${t.toolUseId??``}\0${t.editIndex}`,Si=e=>e.replace(/\\/g,`/`);function Ci(e,t,n){let r=new Map(t.map(e=>[Si(e.path),e])),i=new Map;for(let t of e){let e=r.get(Si(t.filePath)),a=!!e?.blocks?.some(e=>e.calls?.length);for(let r of t.edits){let o=xi(t.filePath,r),s=n.get(o),c=r.toolUseId&&e?.blocks?e.blocks.filter(e=>e.calls?.includes(r.toolUseId)):[],l=null;c.length>0?l=c.every(e=>e.kept)?`kept`:`open`:e?.sinceReview&&r.toolUseId?l=`kept`:(s||a&&r.toolUseId)&&(l=`reverted`),i.set(o,{state:l,...e?{file:e}:{},keys:c.map(e=>e.key),...s?{undoId:s}:{}})}}return i}function wi(e){let t={open:0,kept:0,reverted:0,known:0};for(let n of e.values())n.state&&(t.known++,t[n.state]++);return t}function Ti(e){return e.known===0?null:e.open>0?{tone:`todo`,text:`${e.open} edit${e.open===1?``:`s`} to review`}:e.reverted>0?{tone:`reverted`,text:`${e.reverted} reverted`}:{tone:`kept`,text:`Kept`}}function Ei(e,t){let n=new Map;for(let r of e){if(!r.file)continue;let e=new Set(r.file.blocks?.filter(e=>!e.kept).map(e=>e.key)),i=t===`open`?r.keys.filter(t=>e.has(t)):r.keys;if(i.length===0)continue;let a=n.get(r.file.path)??{path:r.file.path,version:r.file.version,keys:new Set};for(let e of i)a.keys.add(e);n.set(r.file.path,a)}return[...n.values()].map(e=>({path:e.path,version:e.version,keys:[...e.keys]}))}var Di=(0,Q.createContext)(null),Oi=()=>(0,Q.useContext)(Di),ki=new Map;function Ai(e){return e instanceof Error?e.message:`The change could not be saved.`}function ji({changes:e,turn:t}){let n=Oi(),[r,i]=(0,Q.useState)(new Map),[a,o]=(0,Q.useState)(!1),[s,c]=(0,Q.useState)(null),l=(0,Q.useMemo)(()=>n&&e?Ci(e,n.files,r):ki,[n,e,r]),u=(0,Q.useMemo)(()=>wi(l),[l]),d=(0,Q.useCallback)(()=>{n&&(n.refresh(),yn({projectName:n.projectName,sessionId:n.sessionId}))},[n]),f=(0,Q.useCallback)(async(e,t=!0)=>{o(!0);try{return await e()}catch(e){return c({text:Ai(e)}),null}finally{o(!1),t&&d()}},[d]),p=(0,Q.useCallback)((e,t)=>{let n=[];for(let[r,i]of l)i.file?.path===e&&i.keys.some(e=>t.includes(e))&&n.push(r);return n},[l]),m=(0,Q.useCallback)((e,t,r)=>{if(!n)return;let a=Ei(t,r);a.length!==0&&f(async()=>{let t=await Cn(n.projectName,n.sessionId,e,a),r=t.files.filter(e=>e.stale||e.error);if(r.length>0&&c({text:r.some(e=>e.stale)?`A file changed since this was shown. Look again before answering.`:r[0].error}),e===`revert`&&t.undoId){let e=t.undoId,n=a.reduce((e,t)=>e+t.keys.length,0);i(t=>{let n=new Map(t);for(let t of a)for(let r of p(t.path,t.keys))n.set(r,e);return n}),c({text:`Reverted ${n===1?`1 block`:`${n} blocks`}.`,undoId:e})}return t})},[n,f,p]),h=(0,Q.useCallback)(e=>{n&&f(async()=>{let t=await kn(n.projectName,n.sessionId,e);return t.stale?(c({text:`Nothing was put back: a file changed after the revert.`}),t):(i(t=>new Map([...t].filter(([,t])=>t!==e))),c(null),t)})},[n,f]),g=e=>l.get(e),_=e=>{let t=g(e);t?.state===`open`&&m(`keep`,[t],`open`)},v=e=>{let t=g(e);(t?.state===`open`||t?.state===`kept`)&&m(`revert`,[t],`all`)},y=e=>{let t=g(e);t?.state===`kept`&&t.keys.length>0?m(`open`,[t],`all`):t?.state===`reverted`&&t.undoId&&h(t.undoId)},b=()=>m(`keep`,[...l.values()].filter(e=>e.state===`open`),`open`),x=(0,Q.useCallback)(async()=>!n||!t?null:f(()=>gn(n.projectName,n.sessionId,t.calls),!1),[n,t,f]),S=(0,Q.useCallback)(async e=>{if(!n||!t)return null;let r=await f(()=>gn(n.projectName,n.sessionId,t.calls,e.files.map(e=>({path:e.path,version:e.version}))));if(!r)return null;if(r.stale)return r;let a=r.files.filter(e=>e.error);if(r.undoId){let e=r.undoId,t=new Set(r.files.filter(e=>e.action!==`none`).map(e=>e.path.replace(/\\/g,`/`)));i(n=>{let r=new Map(n);for(let[n,i]of l){let a=(i.file?.path??n.split(`\0`)[0]).replace(/\\/g,`/`);t.has(a)&&r.set(n,e)}return r})}return c(a.length>0?{text:`${a.length} file${a.length===1?``:`s`} could not be written: ${a[0].error}`,...r.undoId?{undoId:r.undoId}:{}}:r.undoId?{text:`Reverted this turn's changes.`,undoId:r.undoId}:{text:`Nothing to put back.`}),null},[n,t,f,l]);return{enabled:!!n&&u.known>0,reviews:l,summary:u,busy:a,notice:s,dismissNotice:()=>c(null),keep:_,revert:v,change:y,keepAll:b,previewRevertTurn:x,applyRevertTurn:S,undo:h,openReview:e=>n?.openReview(e)}}var $=n();function Mi(e){try{return new Date(e).toLocaleString()}catch{return``}}function Ni({icon:e,label:t,title:n,onClick:r,touchTarget:i}){return(0,$.jsxs)(`button`,{type:`button`,onClick:r,title:n,"aria-label":t,className:K(`inline-flex items-center justify-center gap-1 rounded-md px-1.5 py-1 text-text-subtle hover:text-text-primary hover:bg-surface transition-colors`,i&&`min-h-[44px] min-w-[44px] md:min-h-0 md:min-w-0`),children:[e,(0,$.jsx)(`span`,{children:t})]})}function Pi({content:e}){let[t,n]=(0,Q.useState)(!1);return(0,$.jsx)(Ni,{icon:t?(0,$.jsx)(a,{className:`size-3.5`}):(0,$.jsx)(F,{className:`size-3.5`}),label:t?`Copied`:`Copy`,title:`Copy message to clipboard`,onClick:()=>{st(e),n(!0),setTimeout(()=>n(!1),1500)}})}function Fi({timestamp:e,content:t,className:n,children:r}){return(0,$.jsxs)(`div`,{className:K(`flex items-center gap-0.5 flex-wrap text-xs text-text-subtle select-none`,n),children:[(0,$.jsx)(`time`,{title:Mi(e),className:`pr-1 tabular-nums`,children:Qe(e)}),(0,$.jsx)(Pi,{content:t}),r]})}function Ii(e){let t=0,n=0;for(let r of e)t+=r.linesAdded,n+=r.linesRemoved;return{added:t,removed:n}}function Li({count:e,totals:t,status:n,open:r,onToggle:i,ref:o}){let s=`${e} file${e===1?``:`s`}`;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,className:`mx-1.5 h-3.5 w-px bg-border-soft`}),(0,$.jsxs)(`button`,{ref:o,type:`button`,onClick:i,"aria-expanded":r,"aria-label":`${s} changed this turn, ${t.added} added, ${t.removed} removed${n?`, ${n.text}`:``}`,className:K(`inline-flex items-center gap-[7px] rounded-full font-mono text-[11.5px]`,`px-3 min-h-11 md:min-h-0 md:px-[9px] md:py-[5px]`,`text-text-secondary transition-colors hover:bg-surface hover:text-text-primary`,r&&`bg-accent-wash text-text-primary`),children:[(0,$.jsx)(`span`,{"aria-hidden":!0,className:`size-[5px] shrink-0 rounded-full bg-primary`}),(0,$.jsx)(`span`,{children:s}),(0,$.jsxs)(`span`,{className:`flex items-center gap-[5px] tabular-nums`,children:[(0,$.jsxs)(`span`,{className:`text-success`,children:[`+`,t.added]}),(0,$.jsxs)(`span`,{className:`text-error`,children:[`−`,t.removed]})]}),n&&(0,$.jsxs)(`span`,{"data-testid":`turn-review-status`,className:K(`inline-flex items-center gap-[5px] border-l border-border-soft pl-2 font-sans`,n.tone===`todo`?`text-warning`:n.tone===`kept`?`text-success`:`text-text-2`),children:[n.tone===`todo`&&(0,$.jsx)(`span`,{"aria-hidden":!0,className:`size-1.5 rounded-full bg-current`}),n.tone===`kept`&&(0,$.jsx)(a,{className:`size-3`}),n.text]})]})]})}function Ri(e){if(!e)return!1;let t=e.closest(`[data-tab-pool-id]`)?.dataset.tabPoolId;if(!t)return e.offsetParent!==null;let{panels:n,focusedPanelId:r}=Be.getState();return n[r]?.activeTabId===t}var zi=(0,Q.lazy)(()=>Fe(()=>import(`./edit-diff-preview-D4EqC86X.js`),__vite__mapDeps([0,1,2,3])));function Bi(e){let t=Math.max(e.lastIndexOf(`/`),e.lastIndexOf(`\\`));return t<0?{base:e,dir:``}:{base:e.slice(t+1),dir:e.slice(0,t)}}var Vi=(e,t)=>`${e} ${t}${e===1?``:`s`}`;function Hi(e){return`${Vi(e.reduce((e,t)=>e+t.edits.length,0),`edit`)} in ${Vi(e.length,`file`)}`}var Ui=`inline-flex items-center gap-1.5 whitespace-nowrap border font-medium transition-colors disabled:opacity-50`;function Wi({review:e,mobile:t,busy:n,onKeep:r,onRevert:i}){let o=t?`h-11 flex-1 justify-center rounded-[10px] px-3.5 text-sm`:`h-[26px] rounded-[7px] px-2.5 text-xs`;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`button`,{type:`button`,disabled:n,title:e.keys.length>1?`Put back the ${e.keys.length} blocks this edit wrote`:`Put these lines back`,onClick:i,className:K(Ui,o,`border-border bg-bg text-text hover:border-error/50 hover:text-error`),children:[(0,$.jsx)(k,{className:t?`size-5`:`size-3.5`}),`Revert`]}),(0,$.jsxs)(`button`,{type:`button`,disabled:n,title:`Keep this change`,onClick:r,className:K(Ui,o,`border-transparent bg-primary text-primary-foreground hover:bg-primary/90`),children:[(0,$.jsx)(a,{className:t?`size-5`:`size-3.5`}),`Keep`]})]})}function Gi({change:e,edit:t,index:n,review:r,mobile:i,busy:o,actions:s,onJump:c}){let l=xi(e.filePath,t),u=r?.state??null,d=u===`kept`||u===`reverted`,f=u===`kept`?(r?.keys.length??0)>0:u===`reverted`&&!!r?.undoId;return(0,$.jsxs)(`div`,{"data-edit-key":l,"data-state":u??`unknown`,className:K(`mt-1.5 rounded-lg border border-border-soft bg-bg`,d&&`border-dashed`),children:[(0,$.jsxs)(`div`,{className:K(`flex flex-wrap items-center gap-x-2 gap-y-1.5 py-1 pr-1.5 pl-2.5 text-[11.5px] text-text-subtle`,i?`min-h-[52px]`:`min-h-9`,!d&&`border-b border-border-soft`),children:[(0,$.jsxs)(`span`,{children:[(0,$.jsxs)(`b`,{className:`font-semibold text-text-2`,children:[`Edit `,n+1]}),` of `,e.edits.length]}),t.editRef&&(0,$.jsxs)(`button`,{type:`button`,title:`Scroll the chat to the tool card that made this edit`,onClick:()=>c(t.editRef),className:K(`inline-flex items-center gap-1 whitespace-nowrap rounded-[5px] px-1.5 font-medium text-text-2 hover:bg-surface-hover hover:text-text`,i?`min-h-11`:`h-6`),children:[(0,$.jsx)(me,{className:`size-3.5`}),i?`Chat`:`Show in chat`]}),(0,$.jsx)(`span`,{className:`flex-1`}),u===`open`&&!i&&(0,$.jsx)(Wi,{review:r,mobile:!1,busy:o,onKeep:()=>s.keep(l),onRevert:()=>s.revert(l)}),d&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`span`,{className:K(`inline-flex items-center gap-1 font-semibold`,u===`kept`?`text-primary`:`text-error`),children:[u===`kept`?(0,$.jsx)(a,{className:`size-3.5`}):(0,$.jsx)(k,{className:`size-3.5`}),u===`kept`?`Kept`:`Reverted`]}),f&&(0,$.jsxs)(`button`,{type:`button`,disabled:o,title:u===`reverted`?`Put back what the agent wrote here`:`Open this edit again`,onClick:()=>s.change(l),className:K(`inline-flex items-center gap-1 whitespace-nowrap rounded-[5px] px-1.5 font-medium text-text-2 hover:bg-surface-hover hover:text-text disabled:opacity-50`,i?`min-h-11`:`h-6`),children:[(0,$.jsx)(ae,{className:`size-3.5`}),`Change`]})]})]}),!d&&(0,$.jsx)(`div`,{className:`px-1 py-1`,children:(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(`div`,{className:`h-4`}),children:(0,$.jsx)(zi,{oldStr:t.oldStr,newStr:t.newStr,filePath:e.filePath})})}),u===`open`&&i&&(0,$.jsx)(`div`,{className:`flex gap-2 border-t border-border-soft p-2`,children:(0,$.jsx)(Wi,{review:r,mobile:!0,busy:o,onKeep:()=>s.keep(l),onRevert:()=>s.revert(l)})})]})}function Ki({change:e,review:t,mobile:n,onJump:r}){let{base:i,dir:a}=Bi(e.filePath);return(0,$.jsxs)(`div`,{"data-file-group":e.filePath,children:[(0,$.jsxs)(`div`,{className:`flex min-h-10 items-center gap-2 pt-1.5 text-[13px]`,title:e.filePath,children:[(0,$.jsx)(ft,{name:i,className:`size-4 shrink-0`}),(0,$.jsx)(`b`,{className:`shrink-0 font-semibold`,children:i}),a&&(0,$.jsx)(`span`,{className:`min-w-0 overflow-hidden text-ellipsis whitespace-nowrap text-left text-xs text-text-subtle [direction:rtl]`,children:(0,$.jsx)(`bdi`,{children:a})}),e.viaSubagent&&(0,$.jsxs)(`span`,{title:`Changed by a sub-agent`,className:`inline-flex shrink-0 items-center gap-[3px] rounded px-[5px] text-[10px] font-semibold leading-[15px] text-info bg-[color-mix(in_srgb,var(--info)_14%,transparent)]`,children:[(0,$.jsx)(Ee,{className:`size-3`}),`Sub-agent`]}),(0,$.jsx)(`span`,{className:`flex-1`}),(0,$.jsx)(vn,{added:e.linesAdded,removed:e.linesRemoved,className:`shrink-0 font-mono text-[11px]`})]}),e.edits.map((i,a)=>(0,$.jsx)(Gi,{change:e,edit:i,index:a,review:t.reviews.get(xi(e.filePath,i)),mobile:n,busy:t.busy,actions:t,onJump:r},i.editRef??`${i.toolUseId}:${a}`))]})}function qi({notice:e,mobile:t,busy:n,onUndo:r,onDismiss:i}){return(0,$.jsxs)(`div`,{role:`status`,"data-testid":`turn-review-notice`,className:K(`flex items-center gap-2 border-b border-border-soft bg-panel-2 pl-3.5`,t?`min-h-12 pr-1 text-sm`:`min-h-9 pr-1.5 text-xs`),children:[(0,$.jsx)(`span`,{className:`min-w-0 flex-1`,children:e.text}),e.undoId&&(0,$.jsx)(ct,{variant:`ghost`,size:t?`sm`:`xs`,className:K(`text-primary hover:text-primary`,t&&`h-11`),disabled:n,onClick:()=>r(e.undoId),children:`Undo`}),(0,$.jsx)(`button`,{type:`button`,"aria-label":`Dismiss`,onClick:i,className:K(`inline-grid shrink-0 place-items-center rounded-md text-text-subtle hover:bg-surface-hover hover:text-text`,t?`size-11`:`size-6`),children:(0,$.jsx)(ue,{className:`size-3.5`})})]})}function Ji(e){let[t,n]=(0,Q.useState)(null),{previewRevertTurn:r,applyRevertTurn:i}=e,a=(0,Q.useCallback)(()=>n(null),[]),o=(0,Q.useCallback)(async()=>{n({preview:null,loading:!0,moved:!1});let e=await r();n(e?{preview:e,loading:!1,moved:!1}:null)},[r]),s=(0,Q.useCallback)(async()=>{if(!t?.preview)return;n({...t,loading:!0});let e=await i(t.preview);n(e?{preview:{files:e.files},loading:!1,moved:!0}:null)},[t,i]);return{open:!!t,preview:t?.preview??null,loading:t?.loading??!1,moved:t?.moved??!1,start:o,cancel:a,confirm:s}}function Yi(e){return e.files.filter(e=>e.action!==`none`)}function Xi(e){return e.action===`delete`?`file removed`:e.action===`restore`?`file put back`:Vi(e.changes,`change`)}function Zi(){let e=Oi()?.sessionId,t=On(t=>e?t.bySession[e]?.byCall:void 0);return e=>{let n=[],r=!1;for(let i of e){let e=i?t?.get(i):void 0;e&&!n.includes(e)?n.push(e):e||(r=!0)}let i=n.map(ln);return(r||i.length===0)&&i.push(e.length===0?`a later change`:`a change outside this chat`),i.join(` and `)}}function Qi({preview:e,mobile:t}){let n=Zi(),r=Yi(e),i=e.files.flatMap(e=>e.skipped.map(t=>({f:e,s:t}))),a=e.files.filter(e=>e.error),o=(e,n,r=!1)=>(0,$.jsx)(`div`,{className:K(`flex items-center gap-2.5 border-b border-border-soft px-3.5 py-1.5 last:border-b-0`,t?`min-h-[52px] text-sm`:`min-h-9 text-[12.5px]`,r&&`bg-[color-mix(in_srgb,var(--warning)_9%,transparent)]`),children:e},n);return r.length===0&&i.length===0&&a.length===0?(0,$.jsx)(`p`,{className:`m-0 text-text-2`,children:`Nothing this turn wrote is left to put back.`}):(0,$.jsxs)(`div`,{className:`overflow-hidden rounded-xl border border-border-soft`,"data-testid":`revert-turn-summary`,children:[r.map(e=>{let{base:t,dir:n}=Bi(e.path);return o((0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ft,{name:t,className:`size-4 shrink-0`}),(0,$.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col leading-[1.3]`,children:[(0,$.jsx)(`b`,{className:`truncate font-medium`,children:t}),(0,$.jsxs)(`small`,{className:`flex min-w-0 gap-1 whitespace-nowrap text-[11.5px] text-text-subtle`,children:[n&&(0,$.jsx)(`span`,{className:`min-w-0 overflow-hidden text-ellipsis text-left [direction:rtl]`,children:(0,$.jsx)(`bdi`,{children:n})}),(0,$.jsxs)(`span`,{className:`shrink-0`,children:[n&&`· `,Xi(e)]})]})]}),(0,$.jsx)(vn,{added:e.added,removed:e.removed,className:`shrink-0 font-mono text-[11px]`})]}),`f:${e.path}`)}),i.map(({f:e,s:t},r)=>o((0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(xe,{className:`size-4 shrink-0 text-warning`}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1 leading-[1.4] text-text-2`,children:[(0,$.jsx)(`b`,{className:`font-semibold text-text`,children:Bi(e.path).base}),` line `,t.line,` stays as it is — `,n(t.by),` changed it again.`]})]}),`s:${e.path}:${r}`,!0)),a.map(e=>o((0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(xe,{className:`size-4 shrink-0 text-error`}),(0,$.jsxs)(`span`,{className:`min-w-0 flex-1 leading-[1.4] text-text-2`,children:[(0,$.jsx)(`b`,{className:`font-semibold text-text`,children:Bi(e.path).base}),`: `,e.error]})]}),`e:${e.path}`,!0))]})}function $i({flow:e,mobile:t}){if(!e.preview)return(0,$.jsx)(`p`,{className:`m-0 text-text-2`,children:`Working out what this turn wrote…`});let n=Yi(e.preview),r=n.reduce((e,t)=>e+t.added,0),i=n.reduce((e,t)=>e+t.removed,0),a=e.preview.files.some(e=>e.skipped.length>0);return(0,$.jsxs)($.Fragment,{children:[e.moved&&(0,$.jsx)(`p`,{className:`m-0 mb-2 font-medium text-warning`,children:`A file changed since — this is what reverting does now.`}),n.length>0&&(0,$.jsxs)(`p`,{className:`m-0 mb-3 text-text-2`,children:[`Puts back what this answer wrote, on disk: `,Vi(n.reduce((e,t)=>e+Math.max(t.changes,1),0),`change`),` in `,Vi(n.length,`file`),`,`,` `,(0,$.jsxs)(`span`,{className:`font-mono text-success`,children:[`+`,r]}),` `,(0,$.jsxs)(`span`,{className:`font-mono text-error`,children:[`−`,i]}),` undone.`,!a&&` No later turn changed these lines.`]}),(0,$.jsx)(Qi,{preview:e.preview,mobile:t}),(0,$.jsx)(`p`,{className:K(`m-0 mt-3 text-text-subtle`,t?`text-[13px]`:`text-xs`),children:`The chat itself stays as it is. You can undo it right after.`})]})}var ea=null;function ta(e){return e instanceof HTMLElement?e.tagName===`INPUT`||e.tagName===`TEXTAREA`||e.isContentEditable:!1}function na({changes:e,turn:t,review:n,onJump:r,onClose:i}){let o=(0,Q.useRef)(null),s=(0,Q.useId)(),c=Ji(n),l=Ii(e);(0,Q.useEffect)(()=>(ea=s,o.current?.querySelector(`button`)?.focus({preventScroll:!0}),()=>{ea===s&&(ea=null)}),[s]);let u=c.cancel,d=c.open;(0,Q.useEffect)(()=>{let e=e=>{e.key!==`Escape`||ea!==s||!Ri(o.current)||ta(document.activeElement)||(e.preventDefault(),d?u():i())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[s,d,u,i]);let f=!!c.preview&&Yi(c.preview).length===0;return(0,$.jsxs)(`div`,{ref:o,"data-testid":`turn-change-tray`,className:`mt-0.5 rounded-xl border border-border bg-panel shadow-[var(--shadow-float)]`,children:[(0,$.jsxs)(`div`,{className:`relative flex min-h-12 flex-wrap items-center gap-x-2.5 gap-y-1.5 border-b border-border-soft py-1.5 pr-2 pl-3.5`,children:[(0,$.jsx)(`h4`,{className:`m-0 text-[13px] font-semibold`,children:`Changed this turn`}),(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-xs text-text-subtle`,children:[Hi(e),` · `,(0,$.jsx)(vn,{added:l.added,removed:l.removed,className:`font-mono text-[11px]`})]}),(0,$.jsxs)(`div`,{className:`relative ml-auto flex flex-wrap items-center justify-end gap-1.5`,children:[n.enabled&&t&&(0,$.jsxs)(ct,{variant:`ghost`,size:`sm`,className:`text-text-secondary`,"aria-expanded":c.open,disabled:n.busy&&!c.open,onClick:()=>c.open?c.cancel():void c.start(),children:[(0,$.jsx)(k,{}),`Revert turn…`]}),n.summary.open>0&&(0,$.jsxs)(ct,{size:`sm`,disabled:n.busy,onClick:n.keepAll,children:[(0,$.jsx)(a,{}),`Keep all`]}),n.enabled&&(0,$.jsxs)(ct,{variant:`ghost`,size:`sm`,className:`text-primary hover:text-primary`,onClick:()=>n.openReview(e[0]?.filePath),children:[(0,$.jsx)(je,{}),`Review in tab`]}),(0,$.jsx)(`button`,{type:`button`,onClick:i,"aria-label":`Close change tray`,title:`Close (Esc)`,className:`inline-grid size-8 shrink-0 place-items-center rounded-lg text-text-subtle transition-colors hover:bg-surface hover:text-text-primary`,children:(0,$.jsx)(ue,{className:`size-3.5`})}),c.open&&t&&(0,$.jsxs)(`div`,{role:`dialog`,"aria-label":`Revert ${ln(t)}?`,"data-testid":`revert-turn-confirm`,className:`absolute top-full right-0 z-40 mt-1.5 w-[400px] max-w-[calc(100vw-48px)] rounded-xl border border-border bg-panel-2 p-3.5 text-[12.5px] leading-normal shadow-[var(--shadow-float),0_18px_40px_-16px_rgba(0,0,0,.6)]`,children:[(0,$.jsxs)(`h5`,{className:`m-0 mb-1.5 flex items-center gap-2 text-[13px] font-semibold text-text`,children:[(0,$.jsx)(k,{className:`size-4 text-error`}),`Revert `,ln(t),`?`]}),(0,$.jsx)($i,{flow:c,mobile:!1}),(0,$.jsxs)(`div`,{className:`mt-3 flex justify-end gap-1.5`,children:[(0,$.jsx)(ct,{variant:`ghost`,size:`sm`,onClick:c.cancel,children:`Cancel`}),(0,$.jsxs)(ct,{variant:`destructive`,size:`sm`,disabled:c.loading||!c.preview||f,onClick:()=>void c.confirm(),children:[(0,$.jsx)(k,{}),`Revert turn`]})]})]})]})]}),n.notice&&(0,$.jsx)(qi,{notice:n.notice,mobile:!1,busy:n.busy,onUndo:n.undo,onDismiss:n.dismissNotice}),(0,$.jsx)(`div`,{className:`max-h-[560px] overflow-y-auto rounded-b-xl px-3 pt-1 pb-3`,children:e.map(e=>(0,$.jsx)(Ki,{change:e,review:n,mobile:!1,onJump:r},e.filePath))})]})}var ra=`inline-flex h-11 flex-1 items-center justify-center gap-2 rounded-[10px] border px-3.5 text-sm font-medium disabled:opacity-50`;function ia({label:e,onClick:t,children:n}){return(0,$.jsx)(`button`,{type:`button`,onClick:t,"aria-label":e,className:`inline-flex size-11 shrink-0 items-center justify-center rounded-lg text-text-subtle transition-colors hover:bg-surface hover:text-text-primary`,children:n})}function aa({title:e,sub:t,icon:n,onClose:r,children:i}){return(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 pt-0.5 pr-1.5 pb-2 pl-4`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[n,(0,$.jsx)(`h4`,{className:`m-0 min-w-0 truncate text-[15px] font-semibold`,children:e})]}),t&&(0,$.jsx)(`p`,{className:`m-0 mt-0.5 line-clamp-2 text-xs text-text-subtle`,children:t})]}),i,(0,$.jsx)(ia,{label:`Close`,onClick:r,children:(0,$.jsx)(ue,{className:`size-5`})})]})}function oa({changes:e,turn:t,review:n,open:r,onClose:i,onJump:o}){let s=(0,Q.useRef)(null),c=Ji(n),{summary:l}=n,u=()=>{c.cancel(),i()},d=e=>{u(),o(e)};(0,Q.useEffect)(()=>{if(!r)return;let e=s.current,t=()=>Array.from(e?.querySelectorAll(`button:not([disabled])`)??[]);t()[0]?.focus();let n=e=>{if(e.key===`Escape`){e.preventDefault(),c.open?c.cancel():u();return}if(e.key!==`Tab`)return;let n=t();if(n.length===0)return;let r=n[0],i=n[n.length-1];e.shiftKey&&document.activeElement===r?(e.preventDefault(),i.focus()):!e.shiftKey&&document.activeElement===i&&(e.preventDefault(),r.focus())};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[r,c.open]);let f=!!c.preview&&Yi(c.preview).length===0,p=t?dn(t.at):``;return(0,$.jsx)(vt,{open:r,onClose:u,className:`flex max-h-[90%] flex-col rounded-t-[14px] motion-reduce:animate-none`,children:(0,$.jsx)(`div`,{ref:s,"data-testid":`turn-change-sheet`,className:`flex min-h-0 flex-1 flex-col`,children:c.open&&t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(aa,{title:`Revert ${ln(t)}?`,sub:[p,t.prompt].filter(Boolean).join(` · `),icon:(0,$.jsx)(k,{className:`size-5 shrink-0 text-error`}),onClose:c.cancel}),(0,$.jsx)(`div`,{"data-testid":`revert-turn-confirm`,className:`min-h-0 flex-1 overflow-y-auto px-4 text-sm leading-normal`,children:(0,$.jsx)($i,{flow:c,mobile:!0})}),(0,$.jsxs)(`div`,{className:`flex gap-2 px-4 pt-3 pb-1`,children:[(0,$.jsx)(`button`,{type:`button`,className:K(ra,`border-border bg-panel-2 text-text`),onClick:c.cancel,children:`Cancel`}),(0,$.jsxs)(`button`,{type:`button`,disabled:c.loading||!c.preview||f,className:K(ra,`border-transparent bg-[color-mix(in_srgb,var(--error)_85%,#000)] text-white`),onClick:()=>void c.confirm(),children:[(0,$.jsx)(k,{className:`size-5`}),`Revert turn`]})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(aa,{title:`Changed this turn`,sub:`${Hi(e)}${l.kept>0?` · ${l.kept} kept`:``}`,onClose:u,children:n.enabled&&(0,$.jsxs)(`button`,{type:`button`,onClick:()=>{u(),n.openReview(e[0]?.filePath)},className:`inline-flex h-11 shrink-0 items-center gap-1.5 rounded-lg px-2.5 text-sm font-medium text-primary`,children:[(0,$.jsx)(je,{className:`size-4`}),`Review`]})}),n.notice&&(0,$.jsx)(qi,{notice:n.notice,mobile:!0,busy:n.busy,onUndo:n.undo,onDismiss:n.dismissNotice}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto border-t border-border-soft px-3 pb-3`,children:e.map(e=>(0,$.jsx)(Ki,{change:e,review:n,mobile:!0,onJump:d},e.filePath))}),n.enabled&&(t||l.open>0)&&(0,$.jsxs)(`div`,{className:`flex gap-2 px-3 pt-2 pb-1`,children:[t&&(0,$.jsxs)(`button`,{type:`button`,disabled:n.busy,className:K(ra,`border-border bg-panel-2 text-text`),onClick:()=>void c.start(),children:[(0,$.jsx)(k,{className:`size-5`}),`Revert turn…`]}),l.open>0&&(0,$.jsxs)(`button`,{type:`button`,disabled:n.busy,className:K(ra,`border-transparent bg-primary text-primary-foreground`),onClick:n.keepAll,children:[(0,$.jsx)(a,{className:`size-5`}),`Keep all `,l.open]})]})]})})})}function sa({timestamp:e,content:t,changes:n,turn:r,onJumpToEdit:i,onReply:a}){let[o,s]=(0,Q.useState)(!1),c=Y(),l=(0,Q.useRef)(null),u=ji({changes:n,turn:r}),d=()=>{s(!1),l.current?.focus()},f=(0,$.jsxs)(Fi,{timestamp:e,content:t,className:`-mt-1.5`,children:[a&&(0,$.jsx)(Ni,{icon:(0,$.jsx)(k,{className:`size-3.5`}),label:`Reply`,title:`Reply to this message`,onClick:a,touchTarget:!0}),n&&n.length>0&&(0,$.jsx)(Li,{ref:l,count:n.length,totals:Ii(n),status:Ti(u.summary),open:o,onToggle:()=>o?d():s(!0)})]});return!n||n.length===0?f:(0,$.jsxs)($.Fragment,{children:[f,c?(0,$.jsx)(oa,{changes:n,turn:r,review:u,open:o,onClose:d,onJump:i??(()=>{})}):o&&(0,$.jsx)(na,{changes:n,turn:r,review:u,onJump:e=>{s(!1),i?.(e)},onClose:d})]})}function ca({usage:e}){let[t,n]=(0,Q.useState)(!1),r=vr(e);if(r.level===`ok`)return null;let i=xr(e),a=pr(e),o=Math.round(e.cacheHitRate*100),s=r.level===`bad`;return(0,$.jsxs)(`div`,{className:`rounded-md border px-2.5 py-2 text-[11px] ${s?`border-warning/40 bg-warning/10`:`border-border bg-surface`}`,children:[(0,$.jsxs)(`button`,{onClick:()=>n(e=>!e),"aria-expanded":t,className:`flex w-full items-start gap-2 py-1 text-left text-text-secondary transition-colors hover:text-text-primary`,children:[(0,$.jsx)(xe,{className:`mt-px size-3.5 shrink-0 ${s?`text-warning`:`text-text-subtle`}`}),(0,$.jsxs)(`span`,{className:`flex-1`,children:[`Costly turn — `,o,`% of a `,Sr(a),`-token transcript came from cache, so it cost about`,` `,(0,$.jsxs)(`strong`,{className:`font-semibold`,children:[i.toFixed(1),`x`]}),` a fully cached turn.`]}),(0,$.jsx)(ee,{className:`mt-px size-3.5 shrink-0 transition-transform ${t?`rotate-180`:``}`})]}),t&&(0,$.jsxs)(`div`,{className:`mt-2 flex flex-col gap-2 border-t border-border pt-2`,children:[r.reason&&(0,$.jsx)(`p`,{className:`text-text-secondary`,children:r.reason}),(0,$.jsxs)(`dl`,{className:`grid grid-cols-2 gap-x-3 gap-y-1 font-mono text-[10.5px] text-text-subtle`,children:[(0,$.jsx)(la,{label:`From cache`,value:`${Sr(e.cacheReadTokens)} (${o}%)`}),(0,$.jsx)(la,{label:`Written to cache`,value:Sr(e.cacheWriteTokens)}),(0,$.jsx)(la,{label:`Fresh input`,value:Sr(e.inputTokens)}),(0,$.jsx)(la,{label:`Output`,value:Sr(e.outputTokens)}),(0,$.jsx)(la,{label:`Model`,value:e.model||`unknown`}),(0,$.jsx)(la,{label:`Cost`,value:`$${e.costUsd.toFixed(4)}`})]}),(0,$.jsx)(`p`,{className:`text-text-subtle`,children:`A turn stays cached while the session keeps running. Closing the last tab of an idle session, switching model, or a retry all restart it, and the next turn re-sends the transcript at full price.`})]})]})}function la({label:e,value:t}){return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`dt`,{className:`truncate`,children:e}),(0,$.jsx)(`dd`,{className:`truncate text-right text-text-secondary`,children:t})]})}function ua(e,t,n,r){let[i,a]=(0,Q.useState)([]),o=(0,Q.useRef)(null);return(0,Q.useEffect)(()=>{if(!n||!e||!t){a([]);return}let r=!1;return o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{G.get(`/api/project/${encodeURIComponent(e)}/chat/sessions/${encodeURIComponent(t)}/tasks`).then(e=>{r||a(e)}).catch(()=>{})},300),()=>{r=!0,o.current&&clearTimeout(o.current)}},[e,t,n,r]),i}var da=new Set([`TaskCreate`,`TaskUpdate`,`TaskStop`]);function fa(e){let t=0;for(let n of e)if(n.events)for(let e of n.events)e.type===`tool_use`&&da.has(e.tool)&&t++;return t}var pa={completed:{icon:`✓`,cls:`text-success`},in_progress:{icon:`▶`,cls:`text-warning`},stopped:{icon:`■`,cls:`text-text-subtle`},pending:{icon:`○`,cls:`text-text-subtle`}};function ma({projectName:e,sessionId:t,messages:n}){let r=(0,Q.useMemo)(()=>fa(n),[n]),i=ua(e,t,r>0,r),[a,o]=(0,Q.useState)(!0);if(i.length===0||i.every(e=>e.status===`completed`||e.status===`stopped`))return null;let s=i.filter(e=>e.status===`completed`).length,c=i.length,l=c?Math.round(s/c*100):0;return(0,$.jsxs)(`div`,{className:`shrink-0 border-b border-border bg-surface/60 backdrop-blur-sm`,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),className:`flex items-center gap-2 w-full px-3 min-h-11 text-left text-xs hover:bg-surface transition-colors`,children:[a?(0,$.jsx)(v,{className:`size-3.5 shrink-0`}):(0,$.jsx)(ee,{className:`size-3.5 shrink-0`}),(0,$.jsx)(le,{className:`size-3.5 shrink-0 text-text-secondary`}),(0,$.jsx)(`span`,{className:`text-text-primary font-medium`,children:`Tasks`}),(0,$.jsxs)(`span`,{className:`text-text-subtle`,children:[s,`/`,c,` done`]}),(0,$.jsx)(`span`,{className:`ml-auto h-1 w-16 rounded-full bg-border overflow-hidden shrink-0`,children:(0,$.jsx)(`span`,{className:`block h-full bg-success/70`,style:{width:`${l}%`}})})]}),!a&&(0,$.jsx)(`ul`,{className:`px-3 pb-2 space-y-0.5 max-h-48 overflow-y-auto`,children:i.map(e=>(0,$.jsx)(ha,{task:e},e.id))})]})}function ha({task:e}){let t=pa[e.status]??pa.pending,n=e.status===`in_progress`;return(0,$.jsxs)(`li`,{className:`flex items-start gap-1.5 text-xs rounded px-1 ${n?`bg-warning/10`:``}`,children:[(0,$.jsx)(`span`,{className:`shrink-0 mt-0.5 ${t.cls}`,children:t.icon}),(0,$.jsx)(`span`,{className:e.status===`completed`?`line-through text-text-subtle`:n?`text-text-primary font-medium`:`text-text-secondary`,children:e.subject||(0,$.jsxs)(`span`,{className:`text-text-subtle italic`,children:[`#`,e.id,` (no title)`]})})]})}var ga=/read the full transcript at:\s*(\S+\.jsonl)/i;function _a(e){return e.match(ga)?.[1]?.trim()??null}var va=class extends Q.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}render(){return this.state.hasError?this.props.fallback?this.props.fallback:this.props.fallbackContent?(0,$.jsx)(`div`,{className:`text-sm whitespace-pre-wrap break-words text-text-primary opacity-80`,children:this.props.fallbackContent}):null:this.props.children}},ya=Fe(()=>import(`./markdown-renderer-8Hef5MLx.js`),__vite__mapDeps([4,5,1,2,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60])),ba=(0,Q.lazy)(()=>ya.then(e=>({default:e.MarkdownRenderer}))),xa=/<teammate-message[^>]*>[\s\S]*?<\/teammate-message>/g;function Sa(e){return e.replace(xa,``).replace(/\n{3,}/g,`
|
|
4
|
+
|
|
5
|
+
`).trim()}function Ca({content:e,projectName:t,isStreaming:n}){let r=Sa(e);return r?(0,$.jsx)(va,{fallbackContent:r,children:(0,$.jsx)(Q.Suspense,{fallback:(0,$.jsx)(`div`,{className:`animate-pulse h-4 bg-muted rounded`}),children:(0,$.jsx)(ba,{content:r,projectName:t,codeActions:!0,isStreaming:n})})}):null}function wa({reply:e,onJump:t,unavailable:n,onCancel:r,preview:i}){let[a,o]=(0,Q.useState)(!1);return(0,$.jsxs)(`div`,{className:`mb-2 min-w-0 rounded-md border border-border border-l-2 border-l-primary bg-surface/60 px-2 py-1 text-xs text-text-secondary`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:t,disabled:!t,className:`min-h-[44px] md:min-h-0 text-left font-medium text-primary disabled:text-text-secondary`,children:[i?`Replying to `:`Reply to `,e.role===`user`?`you`:`AI`]}),r&&(0,$.jsx)(`button`,{type:`button`,onClick:r,"aria-label":`Cancel reply`,title:`Cancel reply`,className:`flex min-h-[44px] min-w-[44px] items-center justify-center rounded hover:bg-surface-hover`,children:(0,$.jsx)(j,{className:`size-4`})})]}),(0,$.jsx)(`p`,{className:`whitespace-pre-wrap break-words select-text ${a?`max-h-60 overflow-y-auto`:`line-clamp-2`}`,children:e.quote}),e.truncated&&(0,$.jsx)(`p`,{className:`mt-1 text-text-subtle`,children:`Quote shortened to 12,000 characters`}),n&&(0,$.jsx)(`p`,{className:`mt-1 text-text-subtle`,children:`Original message unavailable`}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>o(!a),className:`min-h-[44px] md:min-h-0 text-primary hover:underline`,children:a?`Show less`:`Show quote`})]})}function Ta({group:e,onNavigate:t,disabled:n}){if(!e||e.ids.length<2)return null;let{ids:r,currentIndex:i}=e,a=e=>{let i=r[e];i&&!n&&t(i)};return(0,$.jsxs)(`div`,{className:`mt-1 flex items-center gap-1 text-xs text-text-subtle select-none`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:()=>a(i-1),disabled:n||i<=0,"aria-label":`Previous version`,className:`flex items-center justify-center rounded p-0.5 hover:text-text-primary disabled:opacity-30 disabled:cursor-default`,children:(0,$.jsx)(h,{className:`size-3.5`})}),(0,$.jsxs)(`span`,{className:`tabular-nums`,children:[i+1,`/`,r.length]}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>a(i+1),disabled:n||i>=r.length-1,"aria-label":`Next version`,className:`flex items-center justify-center rounded p-0.5 hover:text-text-primary disabled:opacity-30 disabled:cursor-default`,children:(0,$.jsx)(v,{className:`size-3.5`})})]})}var Ea=new Set([`.png`,`.jpg`,`.jpeg`,`.gif`,`.webp`]);function Da(e,t){let n=Le(e);return`/api/project/${encodeURIComponent(t??`_`)}/chat/uploads/${encodeURIComponent(n)}`}function Oa(e){let t=e.lastIndexOf(`.`);return t===-1?!1:Ea.has(e.slice(t).toLowerCase())}var ka=new Map;function Aa(e){let[t,n]=(0,Q.useState)(()=>ka.get(e)?.url??null),[r,i]=(0,Q.useState)(!1);return(0,Q.useEffect)(()=>{let t=ka.get(e);if(t){n(t.url);return}let r=!1,a=z();return fetch(e,{headers:a?{Authorization:`Bearer ${a}`}:{}}).then(e=>{if(!e.ok)throw Error(`Failed`);return e.blob()}).then(t=>{if(r)return;let i=URL.createObjectURL(t);ka.set(e,{url:i}),n(i)}).catch(()=>{r||i(!0)}),()=>{r=!0}},[e]),{blobUrl:t,error:r}}function ja({filePath:e,projectName:t}){let{blobUrl:n,error:r}=Aa(Da(e,t)),i=Vt(e=>e.open),a=Le(e);return(0,$.jsxs)(`button`,{type:`button`,onClick:e=>n&&i(n,a,rn(e.currentTarget)),className:`flex items-center gap-1 rounded-md border border-border/60 bg-background/40 px-1.5 py-0.5 text-[11px] text-text-secondary hover:bg-surface transition-colors cursor-pointer`,children:[n?(0,$.jsx)(`img`,{src:n,alt:a,[an]:``,className:`size-4 rounded-sm object-cover shrink-0`}):r?(0,$.jsx)(ye,{className:`size-3 shrink-0`}):(0,$.jsx)(`div`,{className:`size-4 rounded-sm bg-surface animate-pulse shrink-0`}),(0,$.jsx)(`span`,{className:`truncate max-w-32`,children:a})]})}var Ma=new Set([`task-notification`,`environment_details`,`local-command-caveat`]);function Na({content:e,messageId:t,timestamp:n,projectName:r,onFork:i,onEdit:a,onReply:o,onJumpToReply:s,replyAvailable:c,isEditing:l,sessionId:u,providerId:f,versionGroup:p,onNavigateVersion:m,versionNavDisabled:h}){let{files:g,text:_,tags:v,command:y,terminalBlocks:b,idePath:x,agent:S,replyTo:C}=(0,Q.useMemo)(()=>on(e),[e]),w=v.some(e=>Ma.has(e.name)),[te,ne]=(0,Q.useState)(!1),[re,T]=(0,Q.useState)(!1),ie=(0,Q.useRef)(null);return(0,Q.useEffect)(()=>{let e=ie.current;if(!e)return;let t=()=>T(e.scrollHeight>e.clientHeight+2);t();let n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[_]),(0,$.jsxs)(`div`,{className:K(`flex flex-col gap-1`,!w&&`items-end`),children:[(0,$.jsxs)(`div`,{"data-user-message":w?void 0:`true`,style:w?void 0:{borderRadius:`var(--rad) var(--rad) 4px var(--rad)`},className:K(`group/user relative px-3 py-2 text-sm border shadow-sm transition-all`,w?`rounded-lg bg-surface/40 border-border/40 text-text-secondary`:`max-w-[80%] bg-accent-wash border-accent-wash-border text-text`,l&&`ring-2 ring-primary/60 border-primary/40`),children:[C&&(0,$.jsx)(wa,{reply:C,onJump:c?.(C)?()=>s?.(C):void 0,unavailable:!c?.(C)}),v.length>0&&(0,$.jsx)(Fa,{tags:v}),S&&(0,$.jsx)(`div`,{className:`flex items-center gap-1.5 mb-0.5`,children:(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md bg-sky-500/15 border border-sky-500/25 px-2 py-0.5 text-xs font-medium text-sky-600 dark:text-sky-400`,children:[(0,$.jsx)(Ee,{className:`size-3 shrink-0`}),S]})}),y&&(0,$.jsx)(`div`,{className:`flex items-center gap-1.5 mb-0.5`,children:(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md bg-primary/15 border border-primary/20 px-2 py-0.5 text-xs font-medium text-primary`,children:[(0,$.jsx)(Zn,{className:`size-3 shrink-0`}),y.name]})}),x&&(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5 mb-1 text-[11px] text-text-subtle`,children:[(0,$.jsx)(`span`,{className:`shrink-0`,children:`Opened in IDE:`}),(0,$.jsx)(za,{path:x,projectName:r})]}),g.length>0&&(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:g.map((e,t)=>Oa(e)?(0,$.jsx)(ja,{filePath:e,projectName:r},t):(0,$.jsxs)(`div`,{className:`flex items-center gap-1 rounded-md border border-border/60 bg-background/40 px-1.5 py-0.5 text-[11px] text-text-secondary`,children:[(0,$.jsx)(d,{className:`size-3 shrink-0`}),(0,$.jsx)(`span`,{className:`truncate max-w-32`,children:Le(e)})]},t))}),b.length>0&&(0,$.jsx)(`div`,{className:`space-y-1.5`,children:b.map((e,t)=>(0,$.jsx)(Pa,{content:e},t))}),_&&(0,$.jsx)(`div`,{ref:ie,className:K(`whitespace-pre-wrap break-words transition-all duration-200 select-text`,!te&&`line-clamp-2`,te&&`max-h-[50vh] overflow-y-auto`),children:w?(0,$.jsx)(Va,{text:_,projectName:r}):(0,$.jsx)(Ba,{text:_})}),(re||te)&&(0,$.jsx)(`button`,{onClick:()=>ne(!te),className:K(`flex items-center gap-1 text-xs mt-1 transition-colors`,w?`text-text-subtle hover:text-text-secondary`:`text-primary/70 hover:text-primary`),children:te?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(R,{className:`size-3`}),`Show less`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ee,{className:`size-3`}),`Show more`]})}),!w&&m&&(0,$.jsx)(Ta,{group:p,onNavigate:m,disabled:h})]}),!w&&(0,$.jsxs)(Fi,{timestamp:n,content:sn(e).content,children:[o&&(0,$.jsx)(Ni,{icon:(0,$.jsx)(k,{className:`size-3.5`}),label:`Reply`,title:`Reply to this message`,onClick:o,touchTarget:!0}),a&&(0,$.jsx)(Ni,{icon:(0,$.jsx)(Te,{className:`size-3.5`}),label:`Edit`,title:`Edit this message (continue in the same tab)`,onClick:a}),i&&(0,$.jsx)(Ni,{icon:(0,$.jsx)(k,{className:`size-3.5`}),label:`Fork`,title:`Retry from this message (fork into a new tab)`,onClick:i})]})]})}function Pa({content:e}){let[t,n]=(0,Q.useState)(!1);return(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`button`,{type:`button`,onClick:()=>n(!t),className:K(`flex items-center gap-1.5 rounded-md border px-2 py-1 text-xs transition-colors`,t?`border-primary/50 bg-surface-elevated text-text-primary`:`border-border/60 bg-background/40 text-text-secondary hover:bg-surface`),children:[(0,$.jsx)(ne,{className:`size-3.5 shrink-0`}),(0,$.jsx)(`span`,{children:`Terminal output`}),(0,$.jsx)(ee,{className:K(`size-3 shrink-0 transition-transform`,t&&`rotate-180`)})]}),t&&(0,$.jsx)(`pre`,{className:`mt-1 max-h-40 overflow-auto rounded-md border border-border bg-background p-2 text-xs text-text-primary font-mono whitespace-pre-wrap break-words`,children:e})]})}function Fa({tags:e}){return(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.map((e,t)=>(0,$.jsx)(Ia,{tag:e},t))})}function Ia({tag:e}){let[t,n]=(0,Q.useState)(!1);return e.name===`task-notification`?(0,$.jsx)(Ra,{content:e.content}):(0,$.jsxs)(`div`,{className:`text-xs`,children:[(0,$.jsxs)(`button`,{onClick:()=>n(!t),className:`flex items-center gap-1 rounded-full border border-border/60 bg-surface/50 px-2 py-0.5 text-text-subtle hover:text-text-secondary hover:bg-surface transition-colors`,children:[(0,$.jsx)(o,{className:`size-2.5`}),(0,$.jsx)(`span`,{children:e.label}),(0,$.jsx)(v,{className:K(`size-2.5 transition-transform`,t&&`rotate-90`)})]}),t&&(0,$.jsx)(`div`,{className:`mt-1 rounded border border-border/40 bg-surface/30 px-2 py-1.5 text-[11px] text-text-subtle/80 whitespace-pre-wrap max-h-40 overflow-y-auto leading-relaxed`,children:e.content})]})}function La(e,t){return e.match(RegExp(`<${t}>([\\s\\S]*?)</${t}>`))?.[1]?.trim()||void 0}function Ra({content:e}){let[t,n]=(0,Q.useState)(!1),r=La(e,`status`),i=La(e,`summary`),a=La(e,`output-file`),o=La(e,`result`);return(0,$.jsxs)(`div`,{className:`text-xs`,children:[(0,$.jsxs)(`button`,{onClick:()=>n(!t),className:`flex items-center gap-1.5 rounded-full border border-border/60 bg-surface/50 px-2 py-0.5 text-text-subtle hover:text-text-secondary hover:bg-surface transition-colors`,children:[r===`completed`?(0,$.jsx)(y,{className:`size-2.5 text-success`}):(0,$.jsx)(j,{className:`size-2.5 text-warning`}),(0,$.jsx)(`span`,{className:`truncate max-w-80`,children:i??`Task notification`}),(0,$.jsx)(v,{className:K(`size-2.5 transition-transform shrink-0`,t&&`rotate-90`)})]}),t&&(0,$.jsxs)(`div`,{className:`mt-1 rounded border border-border/40 bg-surface/30 px-2 py-1.5 space-y-1.5`,children:[i&&(0,$.jsx)(`p`,{className:`text-[11px] text-text-secondary`,children:i}),a&&(0,$.jsx)(za,{path:a}),o&&(0,$.jsx)(`div`,{className:`text-[11px] text-text-subtle/80 max-h-60 overflow-y-auto leading-relaxed`,children:(0,$.jsx)(Ca,{content:o})})]})]})}function za({path:e,projectName:t}){return(0,$.jsxs)(`button`,{type:`button`,onClick:(0,Q.useCallback)(()=>{let n=Ze.getState().openTab,r=t??Ve.getState().activeProject?.name,i=Le(e),a={filePath:e};r&&(a.projectName=r),G.get(`/api/fs/read?path=${encodeURIComponent(e)}`).then(()=>{n({type:`editor`,title:i,metadata:a,projectId:null,closable:!0})}).catch(()=>{n({type:`editor`,title:i,metadata:a,projectId:null,closable:!0})})},[e,t]),className:`inline-flex items-center gap-1 rounded border border-border/50 bg-surface/50 px-1.5 py-0.5 font-mono text-[10px] text-text-secondary hover:text-text-primary hover:bg-surface transition-colors cursor-pointer`,children:[(0,$.jsx)(d,{className:`size-2.5 shrink-0`}),(0,$.jsx)(`span`,{className:`truncate max-w-60`,children:Le(e)}),(0,$.jsx)(he,{className:`size-2 shrink-0 opacity-50`})]})}function Ba({text:e}){let t=(0,Q.useMemo)(()=>{let t=/(https?:\/\/[^\s<>()]+[^\s<>().,;:!?'"])/g,n=[],r=0,i;for(;(i=t.exec(e))!==null;)i.index>r&&n.push({kind:`text`,value:e.slice(r,i.index)}),n.push({kind:`url`,value:i[1]}),r=i.index+i[0].length;return r<e.length&&n.push({kind:`text`,value:e.slice(r)}),n},[e]);return t.every(e=>e.kind===`text`)?(0,$.jsx)($.Fragment,{children:e}):(0,$.jsx)($.Fragment,{children:t.map((e,t)=>e.kind===`url`?(0,$.jsx)(`a`,{href:e.value,target:`_blank`,rel:`noopener noreferrer`,className:`text-primary underline underline-offset-2 hover:text-primary/80 break-all`,onClick:e=>e.stopPropagation(),children:e.value},t):(0,$.jsx)(`span`,{children:e.value},t))})}function Va({text:e,projectName:t}){return(0,$.jsx)($.Fragment,{children:(0,Q.useMemo)(()=>{let t=/(\/(?:[\w.\-]+\/)+[\w.\-]+)/g,n=[],r=0,i;for(;(i=t.exec(e))!==null;)i.index>r&&n.push({kind:`text`,value:e.slice(r,i.index)}),n.push({kind:`path`,value:i[1]}),r=i.index+i[0].length;return r<e.length&&n.push({kind:`text`,value:e.slice(r)}),n},[e]).map((e,n)=>e.kind===`path`?(0,$.jsx)(za,{path:e.value,projectName:t},n):(0,$.jsx)(`span`,{children:e.value},n))})}function Ha({events:e,isStreaming:t,projectName:n,bashPartialOutput:r}){let i=[],a=``,o=``;for(let t=0;t<e.length;t++){let n=e[t];if(n.type===`thinking`){a&&=(i.push({kind:`text`,content:a}),``),o+=n.content;continue}if(o&&=(i.push({kind:`thinking`,content:o}),``),n.type===`account_retry`){a&&=(i.push({kind:`text`,content:a}),``);let e=n.accountLabel??`another account`,t=n.reason??`Auth failed`;i.push({kind:`text`,content:`\n\n> ↻ ${t} — retrying with **${e}**...\n\n`});continue}if(n.type===`text`)a+=n.content;else if(n.type===`tool_use`){let e=n.toolUseId,t=e?i.find(t=>t.kind===`tool`&&t.tool.type===`tool_use`&&t.tool.toolUseId===e):void 0;if(t){t.tool=n;continue}a&&=(i.push({kind:`text`,content:a}),``),i.push({kind:`tool`,tool:n})}else n.type===`tool_result`||(a&&=(i.push({kind:`text`,content:a}),``),i.push({kind:`tool`,tool:n}))}o&&i.push({kind:`thinking`,content:o}),a&&i.push({kind:`text`,content:a});let s=e.filter(e=>e.type===`tool_result`);for(let e of s){let t=e.toolUseId;if(t){let n=i.find(e=>e.kind===`tool`&&e.tool.type===`tool_use`&&e.tool.toolUseId===t);if(n){n.result=e;continue}}let n=i.find(e=>e.kind===`tool`&&!e.result);n&&(n.result=e)}for(let e of i)if(e.kind===`tool`&&!e.result&&e.tool.type===`tool_use`){let t=e.tool.result;t&&(e.result={type:`tool_result`,output:t.output,isError:t.isError,exitCode:t.exitCode})}for(let e=0;e<i.length;e++){let n=i[e];if(n.kind===`tool`&&!n.result){let r=!1;if(n.tool.type===`tool_use`&&n.tool.tool===`Read`){let t=n.tool.input?.file_path;t&&(r=i.slice(e+1).some(e=>e.kind===`tool`&&e.result&&e.tool.type===`tool_use`&&e.tool.tool===`Edit`&&e.tool.input?.file_path===t))}n.completed=r||!t}}return(0,$.jsx)($.Fragment,{children:i.map((e,a)=>{if(e.kind===`thinking`)return(0,$.jsx)(Ua,{content:e.content,projectName:n,isStreaming:t&&a===i.length-1},`think-${a}`);if(e.kind===`text`){let r=t&&a===i.length-1;return(0,$.jsx)(`div`,{className:`text-sm text-text-primary select-text`,children:(0,$.jsx)(Wa,{content:e.content,animate:r,projectName:n})},`text-${a}`)}return(0,$.jsx)(Xt,{tool:e.tool,result:e.result,completed:e.completed,projectName:n,bashPartialOutput:r},`tool-${a}`)})})}function Ua({content:e,projectName:t,isStreaming:n}){let[r,i]=(0,Q.useState)(n),a=(0,Q.useRef)(null);return(0,Q.useEffect)(()=>{!n&&e.length>0&&i(!1)},[n,e.length]),(0,Q.useEffect)(()=>{n&&r&&a.current&&(a.current.scrollTop=a.current.scrollHeight)},[e,n,r]),(0,$.jsxs)(`div`,{className:`rounded border border-border/50 bg-surface/30 text-xs`,children:[(0,$.jsxs)(`button`,{onClick:()=>i(!r),className:`flex items-center gap-2 px-2 py-1.5 w-full text-left hover:bg-surface transition-colors text-text-subtle`,children:[n?(0,$.jsx)(I,{className:`size-3 animate-spin`}):(0,$.jsx)(v,{className:`size-3 transition-transform ${r?`rotate-90`:``}`}),(0,$.jsxs)(`span`,{children:[`Thinking`,n?`...`:``]}),!n&&(0,$.jsx)(`span`,{className:`text-text-subtle/50 ml-auto`,children:e.length>100?`${Math.round(e.length/4)} tokens`:``})]}),r&&(0,$.jsx)(`div`,{ref:a,className:`max-h-60 overflow-y-auto`,children:(0,$.jsx)(`div`,{className:`px-2 pb-2 text-text-subtle/80 text-[11px] leading-relaxed`,children:(0,$.jsx)(Ca,{content:e,projectName:t,isStreaming:n})})})]})}function Wa({content:e,animate:t,projectName:n}){return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Ca,{content:e,projectName:n,isStreaming:t}),t&&(0,$.jsx)(`span`,{className:`text-text-subtle text-sm animate-pulse`,children:`Thinking...`})]})}function Ga({lastMessage:e,phase:t,elapsed:n,statusMessage:r}){let i=!e||e.role!==`assistant`,a=e?.events?.length?e.events[e.events.length-1].type===`tool_result`:!1;return!r&&!i&&!a?null:(0,$.jsxs)(`div`,{className:`flex flex-col gap-1 text-sm`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-text-subtle`,children:[(0,$.jsx)(I,{className:`size-3 animate-spin`}),(0,$.jsxs)(`span`,{children:[r||(t===`initializing`?`Initializing`:t===`connecting`?`Connecting`:t===`thinking`?`Thinking`:`Processing`),i&&(n??0)>0&&(0,$.jsxs)(`span`,{className:`text-text-subtle/60`,children:[`... (`,n,`s)`]})]})]}),t===`connecting`&&(n??0)>=30&&(0,$.jsx)(`p`,{className:`text-xs text-warning/80 ml-5`,children:`Taking longer than usual — may be rate-limited or API slow. Try sending a new message to retry.`})]})}function Ka({compaction:e}){let{trigger:t,preTokens:n,postTokens:r,savedTokens:i,durationMs:a}=e;return(0,$.jsxs)(`div`,{className:`flex items-center gap-2 pt-2 text-[11px] text-text-subtle`,title:[t===`manual`?`Ran with /compact`:`Ran automatically on a full context window`,`${Sr(n)} → ${Sr(r)} tokens`,...a==null?[]:[`took ${qa(a)}`]].join(` · `),children:[(0,$.jsx)(`div`,{className:`h-px flex-1 bg-border`}),(0,$.jsxs)(`span`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,$.jsx)(de,{className:`size-3.5`}),(0,$.jsxs)(`span`,{className:`tabular-nums`,children:[`Compacted session · saved `,Sr(i),` tokens`]})]}),(0,$.jsx)(`div`,{className:`h-px flex-1 bg-border`})]})}function qa(e){let t=Math.round(e/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}function Ja(){let[e,t]=(0,Q.useState)(()=>Date.now());return(0,Q.useEffect)(()=>{let e=setInterval(()=>t(Date.now()),6e4);return()=>clearInterval(e)},[]),e}function Ya(e,t){let n=Xa(e,t);return n.kind===`cold`?{idleMs:n.idleMs,reason:n.reason,...n.contextTokens!=null&&{contextTokens:n.contextTokens}}:null}function Xa(e,t){if(!e)return{kind:`unknown`};if(e.compactedAt!=null)return{kind:`cold`,reason:`compacted`,idleMs:Math.max(0,t-e.compactedAt)};if(e.lastTurnEndedAt==null||e.billedPrefixTokens==null||e.billedPrefixTokens<2e4)return{kind:`unknown`};let n=t-e.lastTurnEndedAt;return n<e.ttlMs?{kind:`warm`,remainingMs:Math.min(e.ttlMs,e.ttlMs-n)}:{kind:`cold`,reason:`expired`,idleMs:n,...e.contextTokens!=null&&{contextTokens:e.contextTokens}}}var Za=6e4,Qa=60*Za,$a=24*Qa;function eo(e){if(e>=$a){let t=Math.floor(e/$a),n=Math.floor(e%$a/Qa);return n>0?`${t}d ${n}h`:`${t}d`}if(e>=Qa){let t=Math.floor(e/Qa),n=Math.floor(e%Qa/Za);return n>0?`${t}h ${n}m`:`${t}h`}return`${Math.max(1,Math.floor(e/Za))}m`}function to(e){return`${Math.max(1,Math.ceil(e/Za))}m`}function no(e){if(e>=1e6){let t=e/1e6;return`${t>=10?Math.round(t):t.toFixed(1)}M`}return e>=1e3?`${Math.round(e/1e3)}k`:`${e}`}function ro({promptCache:e}){let t=Ya(e,Ja());return t?(0,$.jsx)(`div`,{className:`px-4 pt-4 pb-4 select-none`,children:(0,$.jsxs)(`div`,{className:`flex w-fit items-start gap-2 rounded-md border border-border bg-surface px-2.5 py-2 text-[11px] text-text-secondary`,children:[(0,$.jsx)(P,{className:`mt-px size-3.5 shrink-0 text-text-subtle`}),t.reason===`compacted`?(0,$.jsxs)(`span`,{children:[`The conversation was compacted`,` `,(0,$.jsx)(`span`,{className:`tabular-nums`,children:eo(t.idleMs)}),` ago, so the prompt cache no longer covers it and your next message will re-cache it.`]}):(0,$.jsxs)(`span`,{children:[`Idle `,(0,$.jsx)(`span`,{className:`tabular-nums`,children:eo(t.idleMs)}),`. The prompt cache has likely expired, so your next message re-sends`,` `,t.contextTokens==null?`the whole transcript`:(0,$.jsxs)($.Fragment,{children:[`about`,` `,(0,$.jsx)(`span`,{className:`tabular-nums`,children:no(t.contextTokens)}),` `,`tokens`]}),` `,`at full price.`]})]})}):null}function io({projectName:e,onSelectSession:t}){return(0,$.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-6 text-text-secondary overflow-y-auto`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-3 px-4 w-full`,children:[(0,$.jsx)(Ee,{className:`size-10 text-text-subtle`}),(0,$.jsx)(`p`,{className:`text-sm`,children:`Send a message to start a new conversation`}),(0,$.jsx)(An,{compact:!0})]}),(0,$.jsx)(jt,{projectName:e,onSelectSession:t,className:`w-full px-4`})]})}var ao=3200,oo=1e3,so={hasAbove:!1,atBottom:!0,idx:0,total:0};function co({scrollElement:e,userIndices:t,scrollToBottom:n}){let r=Y(),[i,a]=(0,Q.useState)(so),[o,s]=(0,Q.useState)(!1),[c,l]=(0,Q.useState)(0),u=(0,Q.useRef)(ao),d=(0,Q.useRef)(null),f=(0,Q.useRef)(null),p=(0,Q.useRef)(!1),h=(0,Q.useRef)(!1),g=(e,t,n)=>t.getBoundingClientRect().top-n+e.scrollTop,_=(0,Q.useCallback)(e=>Array.from(e.querySelectorAll(`[data-msg-index]`)).filter(e=>t.includes(Number(e.dataset.msgIndex))),[t]);(0,Q.useEffect)(()=>{let t=e;if(!t)return;let n=0,r=()=>{let e=t.scrollTop,n=t.getBoundingClientRect().top,r=_(t).map(e=>g(t,e,n)),i=0;for(let t=0;t<r.length;t++)r[t]<=e+12&&(i=t+1);let o={hasAbove:r.some(t=>t<e-4),atBottom:t.scrollHeight-e-t.clientHeight<8,idx:i,total:r.length};a(e=>e.hasAbove===o.hasAbove&&e.atBottom===o.atBottom&&e.idx===o.idx&&e.total===o.total?e:o)},i=()=>{n&&cancelAnimationFrame(n),n=requestAnimationFrame(r)};r(),t.addEventListener(`scroll`,i,{passive:!0});let o=new ResizeObserver(i);return o.observe(t),()=>{n&&cancelAnimationFrame(n),t.removeEventListener(`scroll`,i),o.disconnect()}},[e,_]),(0,Q.useEffect)(()=>{if(!o)return;let e=setTimeout(()=>s(!1),u.current);return()=>clearTimeout(e)},[o,i.idx,c]),(0,Q.useEffect)(()=>{if(!o||!h.current)return;h.current=!1;let e=d.current;(e?.querySelector(`button:not(:disabled)`)??e)?.focus()},[o]),(0,Q.useEffect)(()=>{o||!p.current||(p.current=!1,f.current?.focus())},[o]);let v=(0,Q.useCallback)(()=>{u.current=ao,l(e=>e+1)},[]),y=(0,Q.useCallback)(()=>{let t=e;if(!t)return;let n=t.scrollTop,r=t.getBoundingClientRect().top,i;for(let e of _(t)){let a=g(t,e,r);if(a<n-4)i=a;else break}i!=null&&t.scrollTo({top:i,behavior:`auto`}),v()},[e,_,v]),b=(0,Q.useCallback)(()=>{let t=e;if(!t)return;let r=t.scrollTop,i=t.getBoundingClientRect().top,a=_(t).map(e=>g(t,e,i)).find(e=>e>r+4);a==null?n({animation:`instant`}):t.scrollTo({top:a,behavior:`auto`}),v()},[e,_,n,v]),x=(0,Q.useCallback)(()=>{n({animation:`instant`}),v()},[n,v]);(0,Q.useEffect)(()=>{let t=e;if(!t)return;let n=e=>()=>{Ri(t)&&(e(),u.current=oo,s(!0))},r=n(y),i=n(b);return window.addEventListener(`chat-nav-prev`,r),window.addEventListener(`chat-nav-next`,i),()=>{window.removeEventListener(`chat-nav-prev`,r),window.removeEventListener(`chat-nav-next`,i)}},[e,y,b]);let S=K(`w-[34px] flex items-center justify-center rounded-[9px] text-text-secondary`,`motion-safe:transition-colors hover:bg-surface-elevated hover:text-foreground`,`disabled:opacity-30 disabled:cursor-default disabled:hover:bg-transparent disabled:hover:text-text-secondary`,r?`h-9`:`h-[30px]`);return(0,$.jsx)(`div`,{className:`absolute bottom-3 right-2.5 z-10 flex flex-col items-end gap-1.5`,children:o?(0,$.jsxs)(`div`,{ref:d,tabIndex:-1,className:`flex flex-col p-[3px] rounded-xl border border-border bg-surface-elevated/95 backdrop-blur-[8px] shadow-lg outline-none`,onFocus:()=>{p.current=!0},onKeyDown:e=>{e.key===`Escape`&&s(!1)},children:[(0,$.jsx)(`button`,{type:`button`,onClick:y,disabled:!i.hasAbove,"aria-label":`Jump to previous message`,className:S,children:(0,$.jsx)(R,{className:`size-[15px]`})}),(0,$.jsx)(`span`,{className:`font-mono text-[10px] font-medium text-text-subtle text-center py-px`,"aria-label":`Message ${i.idx||1} of ${i.total}`,children:i.total?`${i.idx||1}/${i.total}`:`0/0`}),(0,$.jsx)(`button`,{type:`button`,onClick:b,disabled:i.atBottom,"aria-label":`Jump to next message`,className:S,children:(0,$.jsx)(ee,{className:`size-[15px]`})}),(0,$.jsx)(`button`,{type:`button`,onClick:x,disabled:i.atBottom,"aria-label":`Jump to latest`,className:S,children:(0,$.jsx)(re,{className:`size-[13px]`})})]}):(0,$.jsx)(`button`,{ref:f,type:`button`,onClick:()=>{u.current=ao,h.current=!0,s(!0)},"aria-label":`Navigate messages`,"aria-expanded":!1,title:`Navigate messages`,className:K(`group flex items-center justify-center`,r?`size-11`:`size-[30px]`),children:(0,$.jsx)(`span`,{className:K(`flex items-center justify-center rounded-full border border-border bg-surface-elevated/55 backdrop-blur-[6px] text-text-subtle`,`motion-safe:transition-colors group-hover:bg-surface-elevated group-hover:text-foreground`,r?`size-9`:`size-[30px]`),children:(0,$.jsx)(m,{className:`size-[15px]`})})})})}function lo(e){let[t,n]=(0,Q.useState)({}),[r,i]=(0,Q.useState)({}),[a,o]=(0,Q.useState)(0),s=(0,Q.useCallback)((e,t)=>{n(n=>({...n,[e]:[t]})),i(t=>({...t,[e]:``}))},[]),c=(0,Q.useCallback)((e,t)=>{n(n=>{let r=n[e]||[];return{...n,[e]:r.includes(t)?r.filter(e=>e!==t):[...r,t]}})},[]),l=(0,Q.useCallback)((e,t)=>{i(n=>({...n,[e]:t})),t&&n(t=>({...t,[e]:[]}))},[]),u=(0,Q.useCallback)(e=>(t[e]?.length??0)>0||(r[e]?.trim().length??0)>0,[t,r]);return{answers:t,customInputs:r,activeTab:a,setActiveTab:o,handleSingleSelect:s,handleMultiSelect:c,handleCustomInput:l,hasAnswer:u,allAnswered:(0,Q.useMemo)(()=>e.every((e,t)=>u(t)),[e,u]),getFinalAnswer:(0,Q.useCallback)(e=>r[e]?.trim()||(t[e]??[]).join(`, `),[t,r]),goToNextTab:(0,Q.useCallback)(()=>o(t=>Math.min(t+1,e.length-1)),[e.length]),goToPrevTab:(0,Q.useCallback)(()=>o(e=>Math.max(e-1,0)),[])}}function uo(e){let[t,n]=(0,Q.useState)(0),r=(0,Q.useRef)(null);return(0,Q.useEffect)(()=>n(0),[e.activeTab]),(0,Q.useEffect)(()=>{if(!e.enabled)return;let i=r=>{let i=e.customInputRef.current,a=!!i&&i.ownerDocument.activeElement===i;if(!a&&r.key>=`1`&&r.key<=`9`){r.preventDefault();let t=parseInt(r.key)-1;t<e.totalOptions-1&&(n(t),e.onSelectOption(t));return}if(!a&&(r.key===`o`||r.key===`O`||r.key===`0`)){r.preventDefault(),e.customInputRef.current?.focus(),n(e.totalOptions-1);return}if(r.key===`Tab`&&e.questions.length>1){r.preventDefault(),r.shiftKey?e.goToPrevTab():e.goToNextTab();return}if(!a){if(r.key===`ArrowLeft`){r.preventDefault(),e.goToPrevTab();return}if(r.key===`ArrowRight`){r.preventDefault(),e.goToNextTab();return}if(r.key===`ArrowUp`){r.preventDefault(),n(e=>Math.max(0,e-1));return}if(r.key===`ArrowDown`){r.preventDefault(),n(t=>Math.min(e.totalOptions-1,t+1));return}if(r.key===` `){r.preventDefault(),e.onSelectOption(t);return}}if(r.key===`Enter`){r.preventDefault(),e.allAnswered?e.onSubmit():e.hasAnswer(e.activeTab)&&e.goToNextTab();return}r.key===`Escape`&&a&&e.customInputRef.current?.blur()},a=r.current;return a&&(a.addEventListener(`keydown`,i),a.setAttribute(`tabindex`,`0`),a.contains(a.ownerDocument.activeElement)||a.focus()),()=>{a?.removeEventListener(`keydown`,i)}},[e,t]),{focusedOption:t,setFocusedOption:n,containerRef:r}}function fo({questions:e,onSubmit:t,onSkip:n}){let r=(0,Q.useRef)(null),i=lo(e),a=e[i.activeTab],o=a?a.options.length+1:0,s=e.length>1,c=(0,Q.useCallback)(()=>{if(!i.allAnswered)return;let n={};e.forEach((e,t)=>{n[e.question]=i.getFinalAnswer(t)}),t(n)},[i.allAnswered,i.getFinalAnswer,e,t]),l=(0,Q.useCallback)(e=>{if(!(!a||e<0))if(e<a.options.length){let t=a.options[e]?.label;if(!t)return;a.multiSelect?i.handleMultiSelect(i.activeTab,t):i.handleSingleSelect(i.activeTab,t)}else e===a.options.length&&r.current?.focus()},[a,i]),u=uo({questions:e,activeTab:i.activeTab,totalOptions:o,allAnswered:i.allAnswered,hasAnswer:i.hasAnswer,onSelectOption:l,goToNextTab:i.goToNextTab,goToPrevTab:i.goToPrevTab,onSubmit:c,customInputRef:r,enabled:!0}),d=(0,Q.useCallback)(e=>{l(e),u.setFocusedOption(e)},[l,u.setFocusedOption]);return(0,$.jsxs)(`div`,{ref:u.containerRef,className:`rounded-lg border-2 border-primary/30 bg-primary/5 p-3 space-y-3 outline-none animate-in slide-in-from-bottom-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between text-sm font-medium text-text-primary`,children:[(0,$.jsxs)(`span`,{children:[`AI has `,s?`${e.length} questions`:`a question`]}),(0,$.jsxs)(`span`,{className:`text-[10px] text-text-secondary font-normal`,children:[s?`←→ tabs · `:``,`↑↓ options · 1-`,Math.min(o-1,9),` select · Enter submit`]})]}),s&&(0,$.jsx)(`div`,{className:`flex gap-1 p-1 bg-background rounded-md overflow-x-auto border border-border`,children:e.map((e,t)=>(0,$.jsxs)(`button`,{className:`flex items-center gap-1.5 px-3 py-1.5 rounded text-xs whitespace-nowrap transition-all ${i.activeTab===t?`bg-primary text-primary-foreground`:i.hasAnswer(t)?`text-primary bg-transparent`:`text-text-secondary hover:bg-surface-elevated`}`,onClick:()=>{i.setActiveTab(t),u.setFocusedOption(0)},tabIndex:-1,children:[(0,$.jsx)(`span`,{className:`flex items-center justify-center w-4 h-4 rounded-full text-[10px] font-semibold ${i.activeTab===t?`bg-white/20`:i.hasAnswer(t)?`bg-primary/20 text-primary`:`bg-surface-elevated text-text-secondary`}`,children:i.hasAnswer(t)?`✓`:t+1}),(0,$.jsx)(`span`,{className:`max-w-[100px] overflow-hidden text-ellipsis`,children:e.header||`Q${t+1}`})]},t))}),a&&(0,$.jsxs)(`div`,{className:`space-y-2`,children:[!s&&a.header&&(0,$.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-wide text-text-secondary`,children:a.header}),(0,$.jsx)(`div`,{className:`text-sm text-text-primary select-text`,children:a.question}),a.multiSelect&&(0,$.jsx)(`div`,{className:`text-[11px] text-text-secondary`,children:`Select multiple`}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[a.options.map((e,t)=>{let n=(i.answers[i.activeTab]||[]).includes(e.label),r=u.focusedOption===t;return(0,$.jsxs)(`div`,{role:`button`,onClick:()=>d(t),className:`text-left flex items-start gap-2.5 rounded px-2.5 py-2 text-xs border transition-all cursor-pointer select-text ${n?`border-primary bg-primary/10 text-text-primary`:`border-border bg-background text-text-secondary hover:border-primary/40 hover:bg-primary/5`} ${r?`ring-2 ring-primary/40 ring-offset-1 ring-offset-background`:``}`,children:[(0,$.jsx)(`span`,{className:`flex items-center justify-center w-4.5 h-4.5 rounded text-[10px] font-semibold shrink-0 mt-px ${n?`bg-primary/20 text-primary`:`bg-surface-elevated text-text-secondary`}`,children:t+1}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-0.5 flex-1`,children:[(0,$.jsx)(`span`,{className:`font-medium text-text-primary`,children:e.label}),e.description&&(0,$.jsx)(`span`,{className:`text-[11px] text-text-secondary`,children:e.description})]})]},t)}),(0,$.jsxs)(`div`,{className:`flex items-start gap-2.5 rounded px-2.5 py-2 text-xs border border-dashed transition-all border-border bg-transparent ${u.focusedOption===o-1?`ring-2 ring-primary/40 ring-offset-1 ring-offset-background`:``}`,children:[(0,$.jsx)(`span`,{className:`flex items-center justify-center w-4.5 h-4.5 rounded bg-surface-elevated text-text-secondary text-[10px] font-semibold shrink-0 mt-px`,children:`O`}),(0,$.jsx)(`input`,{ref:r,type:`text`,className:`flex-1 px-2 py-1 text-xs bg-surface border border-border rounded text-text-primary outline-none placeholder:text-text-subtle focus:border-primary`,placeholder:`Other (press O to type)...`,value:i.customInputs[i.activeTab]||``,onChange:e=>i.handleCustomInput(i.activeTab,e.target.value),onFocus:()=>u.setFocusedOption(o-1)})]})]})]}),(0,$.jsxs)(`div`,{className:`flex gap-2 justify-end pt-1`,children:[s&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{className:`px-3 py-1.5 text-xs rounded border border-border bg-background text-text-primary hover:bg-surface-elevated disabled:opacity-40 disabled:cursor-not-allowed transition-colors`,onClick:i.goToPrevTab,disabled:i.activeTab===0,tabIndex:-1,children:`← Prev`}),(0,$.jsx)(`button`,{className:`px-3 py-1.5 text-xs rounded border border-border bg-background text-text-primary hover:bg-surface-elevated disabled:opacity-40 disabled:cursor-not-allowed transition-colors`,onClick:i.goToNextTab,disabled:i.activeTab===e.length-1,tabIndex:-1,children:`Next →`})]}),(0,$.jsx)(`button`,{onClick:n,className:`px-4 py-1.5 rounded border border-border bg-background text-text-secondary text-xs hover:bg-surface-elevated transition-colors`,tabIndex:-1,children:`Skip`}),(0,$.jsxs)(`button`,{onClick:c,disabled:!i.allAnswered,className:`px-4 py-1.5 rounded bg-primary text-primary-foreground text-xs font-medium hover:bg-primary/80 transition-colors disabled:opacity-40 disabled:cursor-not-allowed`,tabIndex:-1,children:[`Submit `,i.allAnswered?`✓`:`(${e.filter((e,t)=>i.hasAnswer(t)).length}/${e.length})`]})]})]})}var po=8e3;function mo(){return(0,$.jsxs)(`div`,{className:`px-4 pt-4 space-y-4`,"aria-busy":`true`,"aria-label":`Loading previous conversation`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-center gap-1.5 text-xs text-text-secondary`,children:[(0,$.jsx)(I,{className:`size-3 animate-spin`}),`Loading previous conversation…`]}),[0,1,2].map(e=>(0,$.jsx)(`div`,{className:e%2==0?`flex justify-end`:`flex justify-start`,children:(0,$.jsxs)(`div`,{className:`animate-pulse space-y-2 rounded-lg bg-surface p-3 ${e%2==0?`w-1/2`:`w-3/4`}`,children:[(0,$.jsx)(`div`,{className:`h-3 rounded bg-border`}),(0,$.jsx)(`div`,{className:`h-3 w-5/6 rounded bg-border`}),e%2==1&&(0,$.jsx)(`div`,{className:`h-3 w-2/3 rounded bg-border`})]})},e))]})}function ho({messages:e,messagesLoading:t,keepStaleWhileLoading:n,pendingApproval:r,onApprovalResponse:i,isStreaming:a,phase:o,onSelectSession:s,connectingElapsed:c,statusMessage:l,compactStatus:u,promptCache:d,projectName:f,onFork:p,onEdit:m,editingMsgId:h,sessionId:g,providerId:_,onNavigateVersion:v,versionMap:y,bashPartialOutput:b,onExpandCompact:x,isCompactExpanded:S,hasOlderHistory:C=!1,onLoadOlderHistory:ee,userOrdinalOffset:w=0,historyPredecessorId:te=null,onDismissMessage:ne,onClearErrors:re,onReply:T}){let{scrollRef:ie,contentRef:ae,scrollToBottom:oe,stopScroll:se,isAtBottom:E}=ci({initial:`instant`,resize:`instant`}),D=(0,Q.useMemo)(()=>e.filter(e=>{let t=e.content&&e.content.trim().length>0,n=e.events&&e.events.length>0;return e.role===`user`?t:t||n}),[e]),ce=(0,Q.useMemo)(()=>ni(D),[D]),le=!!r||a,[O,ue]=(0,Q.useState)(null),de=(0,Q.useCallback)(e=>{ie(e),ue(e)},[ie]),fe=(0,Q.useRef)(new Map),pe=(0,Q.useMemo)(()=>{let e=fe.current,t=new Map;for(let n=0;n<D.length;n++){let r=D[n];if(r.role!==`assistant`||D[n+1]?.role===`assistant`)continue;let i=`${r.id}:${r.events?.length??0}`,a=e.get(i);a||(a=Qt(Yt(D,n)),e.set(i,a)),a.length>0&&t.set(n,a)}return t},[D]),me=(0,Q.useRef)(null),k=(0,Q.useCallback)(e=>{O&&(me.current?.(),me.current=bi(O,e))},[O]);(0,Q.useEffect)(()=>()=>me.current?.(),[]);let he=(0,Q.useMemo)(()=>pn(e),[e]);(0,Q.useEffect)(()=>{g&&On.getState().publish(g,he,!0)},[g,he]);let ge=(0,Q.useRef)(new Map),_e=(0,Q.useMemo)(()=>{let e=new Map(he.map(e=>[e.messageId,e])),t=new Map;for(let n of pe.keys()){let r;for(let t=n;t>=0&&!r;t--)D[t].role===`user`&&(r=e.get(D[t].id));if(!r)continue;let i=ge.current.get(r.messageId);i&&i.n===r.n&&i.at===r.at&&i.prompt===r.prompt&&i.calls.length===r.calls.length&&i.calls[i.calls.length-1]===r.calls[r.calls.length-1]?r=i:ge.current.set(r.messageId,r),t.set(n,r)}return t},[he,pe,D]);(0,Q.useEffect)(()=>{if(g)return()=>On.getState().release(g)},[g]);let[A,ve]=(0,Q.useState)(!1),[M,ye]=(0,Q.useState)(null),be=(0,Q.useRef)(null);(0,Q.useLayoutEffect)(()=>{let e=O;e&&be.current!=null&&(e.scrollTop=e.scrollHeight-be.current,A||(be.current=null))},[D.length,O,A]),(0,Q.useLayoutEffect)(()=>{O&&oe({animation:`instant`})},[g,O]);let xe=(0,Q.useRef)(!0);(0,Q.useEffect)(()=>{O&&O.clientHeight>0&&(xe.current=E)},[E,O]),(0,Q.useEffect)(()=>{let e=O;if(!e)return;let t=e.clientHeight,n=new ResizeObserver(()=>{let n=e.clientHeight,r=t===0&&n>0;t=n,r&&!xe.current&&se()});return n.observe(e),()=>n.disconnect()},[O,se]);let Se=(0,Q.useCallback)(e=>{if(!g||!_)return;let t=ei(e,g,_);t&&T?.(t)},[g,_,T]),Ce=(0,Q.useCallback)(e=>!!ti(D,e,g,_),[D,g,_]),we=(0,Q.useRef)(null);(0,Q.useEffect)(()=>()=>we.current?.(),[]);let Te=(0,Q.useCallback)(e=>{let t=O?.querySelector(`[data-msg-index="${e}"]`);if(!O||!t)return!1;se(),we.current?.(),O.scrollTo({top:O.scrollTop+t.getBoundingClientRect().top-O.getBoundingClientRect().top-24,behavior:`smooth`}),t.classList.add(`bg-primary/10`,`ring-1`,`ring-primary/40`);let n=()=>t.classList.remove(`bg-primary/10`,`ring-1`,`ring-primary/40`),r=setTimeout(n,1400);return we.current=()=>{clearTimeout(r),n()},!0},[O,se]),P=(0,Q.useCallback)(e=>{let t=ti(D,e,g,_);t&&Te(D.indexOf(t))},[D,g,_,Te]),F=_n(e=>g&&e.request?.sessionId===g?e.request:null);(0,Q.useEffect)(()=>{if(!F||!O)return;let e,t=()=>{let n=F.toolUseId&&`${F.toolUseId}-0`,r=F.messageId?D.findIndex(e=>e.id===F.messageId):-1;if(O.clientHeight>0){if(n&&vi(O,n))return se(),k(n),_n.getState().done(F);if(r>=0&&Te(r))return _n.getState().done(F)}if(Date.now()-F.at>po)return _n.getState().done(F);e=setTimeout(t,150)};return t(),()=>clearTimeout(e)},[F,O,D,se,k,Te]);let De=(0,Q.useCallback)((e,t)=>{p?.(e,t)},[p]),I=(0,Q.useCallback)((e,t,n)=>{m?.(e,t,n)},[m]),Oe=(0,Q.useCallback)(e=>{ne?.(e)},[ne]),L=(0,Q.useMemo)(()=>D.reduce((e,t)=>t.role===`system`?e+1:e,0),[D]),ke=(0,Q.useMemo)(()=>D.reduce((e,t,n)=>(t.role===`user`&&e.push(n),e),[]),[D]),R=(0,Q.useCallback)(()=>{if(!x||!S)return null;for(let e of D){if(S(e.id))continue;let t=_a(e.content||``);if(t)return{id:e.id,jsonlPath:t};if(e.events){for(let t of e.events)if(t.type===`text`){let n=_a(t.content||``);if(n)return{id:e.id,jsonlPath:n}}}}return null},[D,x,S])(),Ae=C&&!!ee,je=Ae||!!R,z=R?.id??null,B=R?.jsonlPath??null,V=(0,Q.useCallback)(async()=>{if(A)return;let e=Ae?ee:z&&B&&x?()=>x(z,B):null;if(!e)return;let t=O;be.current=t?t.scrollHeight-t.scrollTop:null,ve(!0),ye(null);try{await e()}catch(e){ye(e instanceof Error?e.message:`Could not load previous conversation`)}finally{ve(!1)}},[Ae,ee,z,B,x,A,O]),H=(0,Q.useRef)(null);return(0,Q.useEffect)(()=>{let e=O,t=H.current;if(!e||!t||!je||M)return;let n=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&V()},{root:e,rootMargin:`400px 0px 0px 0px`});return n.observe(t),()=>n.disconnect()},[O,je,M,V]),t&&(!n||e.length===0)?(0,$.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full gap-3 text-text-secondary`,children:[(0,$.jsx)(Ee,{className:`size-10 text-text-subtle animate-pulse`}),(0,$.jsx)(`p`,{className:`text-sm`,children:`Loading messages...`})]}):e.length===0&&!a?(0,$.jsx)(io,{projectName:f||``,onSelectSession:s||(()=>{})}):(0,$.jsxs)(`div`,{className:`relative flex-1 overflow-hidden flex flex-col min-h-0`,children:[(0,$.jsx)(ma,{projectName:f,sessionId:g,messages:e}),L>1&&re&&(0,$.jsx)(`div`,{className:`absolute top-2 left-0 right-0 z-20 flex justify-center pointer-events-none`,children:(0,$.jsxs)(`button`,{type:`button`,onClick:re,className:`pointer-events-auto flex items-center gap-1.5 rounded-full bg-error/15 border border-error/25 px-3 py-1 text-xs text-error hover:bg-error/25 shadow-md backdrop-blur-sm`,children:[(0,$.jsx)(j,{className:`size-3.5`}),`Clear all errors (`,L,`)`]})}),!A&&M&&(0,$.jsx)(`div`,{className:`absolute top-2 left-0 right-0 z-10 flex justify-center`,children:(0,$.jsxs)(`button`,{type:`button`,onClick:()=>{ye(null),V()},className:`inline-flex items-center gap-1.5 rounded-md border border-border bg-surface px-3 py-2 text-xs text-text-primary hover:bg-surface-hover min-h-[44px] md:min-h-0`,children:[(0,$.jsx)(N,{className:`size-3.5 text-destructive`}),(0,$.jsxs)(`span`,{children:[`Could not load previous conversation: `,M]}),(0,$.jsx)(`span`,{className:`underline`,children:`Retry`})]})}),(0,$.jsx)(`div`,{ref:de,[nn]:``,className:`flex-1 overflow-y-auto overflow-x-hidden [overflow-anchor:none]`,style:{WebkitOverflowScrolling:`touch`,overscrollBehavior:`contain`},children:(0,$.jsxs)(`div`,{ref:ae,className:`w-full`,children:[je&&(0,$.jsx)(`div`,{ref:H,"aria-hidden":!0,className:`h-px`}),A&&(0,$.jsx)(mo,{}),D.map((e,t)=>{let n=t>0?D[t-1]:void 0,r=ce[t]??0,i=r?r+w:0,o=i?y?.[i]:void 0,s=e.role===`user`&&h!=null&&e.id===h,c=D[t+1],l=e.role===`assistant`&&c?.role!==`assistant`,u,d;if(l){let e=[];for(let n=t;n>=0&&D[n].role===`assistant`;n--){let t=go(D[n]);t&&(e.unshift(t),d??=D[n])}u=e.join(`
|
|
6
|
+
|
|
7
|
+
`)}return(0,$.jsxs)(`div`,{"data-msg-index":t,className:`px-4 pt-4 select-none`,children:[e.compaction&&(0,$.jsx)(Ka,{compaction:e.compaction}),(0,$.jsx)(va,{fallbackContent:e.content,children:(0,$.jsx)(_o,{message:e,onReply:T&&g&&_?e.role===`assistant`?d?()=>Se(d):void 0:Se:void 0,onJumpToReply:P,replyAvailable:Ce,isStreaming:a&&e.id.startsWith(`streaming-`),isLastAssistantInTurn:l,turnCopyText:u,turnChanges:l?pe.get(t):void 0,turn:l?_e.get(t):void 0,onJumpToEdit:k,projectName:f,onFork:e.role===`user`&&p?De:void 0,onEdit:e.role===`user`&&m?I:void 0,isEditing:s,onDismiss:e.role===`system`&&ne?Oe:void 0,prevMsgId:n?n.sdkUuid??n.id:te??void 0,sessionId:g,providerId:_,versionGroup:o,onNavigateVersion:v,versionNavDisabled:a,bashPartialOutput:b})})]},e.id)}),!a&&!r&&(0,$.jsx)(ro,{promptCache:d??null}),le&&(0,$.jsxs)(`div`,{className:`px-4 pt-4 pb-4 space-y-4 select-none`,children:[r&&(r.tool===`AskUserQuestion`?(0,$.jsx)(yo,{approval:r,onRespond:i}):(0,$.jsx)(vo,{approval:r,onRespond:i})),a&&(0,$.jsx)(Ga,{lastMessage:e[e.length-1],phase:o,elapsed:c,statusMessage:u===`compacting`?`Compacting messages...`:l})]})]})}),(0,$.jsx)(co,{scrollElement:O,userIndices:ke,scrollToBottom:oe})]})}function go(e){return e.events?.length?e.events.filter(e=>e.type===`text`).map(e=>e.content).join(``):e.content}var _o=(0,Q.memo)(function({message:e,isStreaming:t,isLastAssistantInTurn:n,turnCopyText:r,turnChanges:i,turn:a,onJumpToEdit:o,projectName:s,onFork:c,onEdit:l,isEditing:u,onDismiss:d,prevMsgId:f,sessionId:p,providerId:m,versionGroup:h,onNavigateVersion:g,versionNavDisabled:_,bashPartialOutput:v,onReply:y,onJumpToReply:b,replyAvailable:x}){if(e.role===`user`){let t=c?()=>c(e.content,f):void 0,n=l?()=>l(e.content,f,e.id):void 0;return(0,$.jsx)(Na,{content:e.content,messageId:e.id,timestamp:e.timestamp,projectName:s,onReply:y&&ei(e,p??``,m??``)?()=>y(e):void 0,onJumpToReply:b,replyAvailable:x,onFork:t,onEdit:n,isEditing:u,sessionId:p,providerId:m,versionGroup:h,onNavigateVersion:g,versionNavDisabled:_})}return e.role===`system`?(0,$.jsxs)(`div`,{className:`group flex items-center gap-2 rounded-lg bg-error/10 border border-error/20 px-3 py-2 text-sm text-error`,children:[(0,$.jsx)(N,{className:`size-4 shrink-0`}),(0,$.jsx)(`p`,{className:`flex-1`,children:e.content}),d&&(0,$.jsx)(`button`,{type:`button`,onClick:()=>d(e.id),"aria-label":`Dismiss`,title:`Dismiss`,className:`shrink-0 rounded p-1 text-error/70 hover:text-error hover:bg-error/15 md:opacity-0 md:group-hover:opacity-100`,children:(0,$.jsx)(j,{className:`size-4`})})]}):(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[e.events&&e.events.length>0?(0,$.jsx)(Ha,{events:e.events,isStreaming:t,projectName:s,bashPartialOutput:v}):e.content&&(0,$.jsx)(`div`,{className:`text-sm text-text-primary select-text`,children:(0,$.jsx)(Ca,{content:e.content,projectName:s})}),!t&&n&&e.usage&&(0,$.jsx)(ca,{usage:e.usage}),!t&&n&&(0,$.jsx)(sa,{onReply:y?()=>y(e):void 0,timestamp:e.timestamp,content:r??go(e),changes:i,turn:a,onJumpToEdit:o})]})});function vo({approval:e,onRespond:t}){return(0,$.jsxs)(`div`,{className:`rounded-lg border-2 border-warning/40 bg-warning/10 p-3 space-y-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-warning text-sm font-medium`,children:[(0,$.jsx)(u,{className:`size-4`}),(0,$.jsx)(`span`,{children:`Tool Approval Required`})]}),(0,$.jsx)(`div`,{className:`text-xs text-text-primary`,children:(0,$.jsx)(`span`,{className:`font-medium`,children:e.tool})}),(0,$.jsx)(`pre`,{className:`text-xs font-mono text-text-secondary overflow-x-auto bg-background rounded p-2 border border-border`,children:JSON.stringify(e.input,null,2)}),(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(`button`,{onClick:()=>t(e.requestId,!0),className:`px-4 py-1.5 rounded bg-success text-white text-xs font-medium hover:bg-success/80 transition-colors`,children:`Allow`}),(0,$.jsx)(`button`,{onClick:()=>t(e.requestId,!1),className:`px-4 py-1.5 rounded bg-error text-white text-xs font-medium hover:bg-error/80 transition-colors`,children:`Deny`})]})]})}function yo({approval:e,onRespond:t}){return(0,$.jsx)(fo,{questions:e.input.questions??[],onSubmit:n=>t(e.requestId,!0,n),onSkip:()=>t(e.requestId,!1)})}function bo({shells:e,onKill:t}){let n=Ht(e=>e.openPanel),r=e.filter(e=>e.status!==`stopped`);return r.length===0?null:(0,$.jsx)(`div`,{className:`shrink-0 border-b border-border bg-surface-elevated/60 px-2 py-1.5 space-y-1`,children:r.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[e.status===`stopping`?(0,$.jsx)(I,{className:`size-3.5 shrink-0 animate-spin text-warning`}):(0,$.jsxs)(`span`,{className:`relative flex size-2 shrink-0`,children:[(0,$.jsx)(`span`,{className:`absolute inline-flex size-full animate-ping rounded-full bg-emerald-400 opacity-60`}),(0,$.jsx)(`span`,{className:`relative inline-flex size-2 rounded-full bg-emerald-500`})]}),(0,$.jsx)(ne,{className:`size-3.5 shrink-0 text-text-secondary`}),(0,$.jsx)(`span`,{className:`flex-1 truncate font-mono text-text-primary`,title:e.command,children:e.command}),e.status===`stopping`&&(0,$.jsx)(`span`,{className:`text-[11px] text-warning shrink-0`,children:`stopping…`}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>n(e.shellId),className:`flex items-center justify-center size-8 rounded hover:bg-surface text-text-secondary hover:text-text-primary transition-colors`,"aria-label":`View output`,title:`View output`,children:(0,$.jsx)(E,{className:`size-4`})}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>t(e.shellId),disabled:e.status===`stopping`,className:`flex items-center justify-center size-8 rounded hover:bg-surface text-text-secondary hover:text-error transition-colors disabled:opacity-40`,"aria-label":`Stop command`,title:`Stop command`,children:(0,$.jsx)(x,{className:`size-3.5`})})]},e.shellId))})}function xo(){return`aa-${Math.random().toString(36).slice(2,10)}`}function So(e){let{projectName:t,providerId:n,sessionId:r}=e,[i,a]=(0,Q.useState)([]);return(0,Q.useEffect)(()=>{if(a([]),!r||!t)return;let e=xo(),i=()=>{St(JSON.stringify({type:`agent-activity:subscribe`,subId:e,projectName:t,providerId:n,sessionId:r}))},o=t=>{let n=t.detail;n.subId===e&&a(n.running)};window.addEventListener(`agent-activity`,o);let s=kt(i);return i(),()=>{window.removeEventListener(`agent-activity`,o),s(),St(JSON.stringify({type:`agent-activity:unsubscribe`,subId:e}))}},[t,n,r]),i}function Co(e,t){let n=new Map(t.map(e=>[e.name,e])),r=new Set,i=[];for(let t of e){let{cardId:e,memberName:a}=t;if(!e&&!a)continue;a&&r.add(a);let o=a?n.get(a):void 0;i.push({key:e?`card:${e}`:`member:${a}`,...e?{cardId:e}:{},...a?{memberName:a}:{},lastStep:t.lastStep??(o?wo(o):void 0),agentType:o?.agentType,startedAt:o?.startedAt,lastWriteAt:t.lastWriteAt})}for(let e of t)e.workState!==`working`||r.has(e.name)||i.push({key:`member:${e.name}`,memberName:e.name,lastStep:wo(e),agentType:e.agentType,startedAt:e.startedAt});return i}function wo(e){return e.lastTool?e.lastToolArg?`${e.lastTool}: ${e.lastToolArg}`:e.lastTool:e.lastNarrative??e.description}function To(e){let t=e&&typeof e==`object`?e.name:void 0;return typeof t==`string`&&t.trim()?t.trim():null}function Eo(e,t){if(e)for(let n of e){if(n.type===`tool_use`&&(n.tool===`Agent`||n.tool===`Task`)&&n.toolUseId===t)return n;if(n.type===`tool_use`&&n.children?.length){let e=Eo(n.children,t);if(e)return e}}}function Do(e,t){for(let n=e.length-1;n>=0;n--){let r=Eo(e[n].events,t);if(r&&r.type===`tool_use`){let e=r.input&&typeof r.input==`object`?r.input:{};return{handle:To(e),description:typeof e.description==`string`?e.description:typeof e.prompt==`string`?e.prompt:``}}}return null}function Oo(e){if(!e)return;let t=e.split(`:`).pop();return t&&t!==`general-purpose`?t:e}function ko(e,t){if(!e)return;let n=new Date(e).getTime(),r=t?new Date(t).getTime():Date.now();if(!Number.isFinite(n)||!Number.isFinite(r)||r<n)return;let i=Math.floor((r-n)/1e3),a=Math.floor(i/3600),o=Math.floor(i%3600/60);return a>0?`${a}h ${o}m`:o>0?`${o}m`:`${i}s`}function Ao(e){return e.lastTool?e.lastToolArg?`${e.lastTool}: ${e.lastToolArg}`:e.lastTool:e.lastNarrative??e.description}function jo({projectName:e,providerId:t,sessionId:n,messages:r,teamName:i,teamMembers:a}){let o=So({projectName:e,providerId:t,sessionId:n}),s=$t(),c=(0,Q.useMemo)(()=>Co(o,a),[o,a]),l=Et(),u=l?`min-h-[44px]`:`min-h-[36px]`,[d,f]=(0,Q.useState)(!Y()),p=(0,Q.useId)();if(!n||c.length===0)return null;let m=c.length>=4;return(0,$.jsxs)(`div`,{className:`shrink-0 border-t border-border bg-surface-elevated/60 px-2 py-1.5 space-y-1`,children:[m&&(0,$.jsxs)(`button`,{type:`button`,onClick:()=>f(!d),"aria-expanded":d,"aria-controls":p,className:K(`flex w-full items-center gap-2 rounded px-1 text-left text-xs hover:bg-surface transition-colors`,u),children:[(0,$.jsx)(v,{className:K(`size-3.5 shrink-0 text-text-subtle transition-transform`,d&&`rotate-90`)}),(0,$.jsxs)(`span`,{className:`font-medium text-text-primary`,children:[c.length,` agents running`]})]}),(!m||d)&&(0,$.jsx)(`div`,{id:p,className:K(`space-y-1`,m&&`overflow-y-auto`,m&&(l?`max-h-32`:`max-h-36`)),children:c.map(a=>{let o=a.cardId?Do(r,a.cardId):null,c=a.memberName??o?.handle??null,l=o?.description||(a.cardId?`Agent`:a.memberName),d=a.startedAt?ko(a.startedAt):void 0,f=Oo(a.agentType);return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>s({projectName:e,providerId:t,sessionId:n,source:a.cardId?{kind:`card`,cardId:a.cardId}:{kind:`member`,teamName:i,memberName:a.memberName},title:c?`Session — ${c}`:`Agent session`,prompt:o?.description}),className:K(`flex w-full items-center gap-2 rounded px-1 py-1.5 text-left text-xs hover:bg-surface transition-colors`,u),title:c?`Open ${c}'s session`:`Open agent session`,children:[(0,$.jsxs)(`span`,{className:`relative flex size-2 shrink-0`,children:[(0,$.jsx)(`span`,{className:`absolute inline-flex size-full animate-ping rounded-full bg-emerald-400 opacity-60`}),(0,$.jsx)(`span`,{className:`relative inline-flex size-2 rounded-full bg-emerald-500`})]}),a.memberName?(0,$.jsx)(we,{className:`size-3.5 shrink-0 text-accent-2`}):(0,$.jsx)(Ee,{className:`size-3.5 shrink-0 text-primary`}),(0,$.jsx)(`span`,{className:`font-medium text-text-primary shrink-0`,children:c??l}),!!f&&(0,$.jsx)(`span`,{className:`text-text-3 shrink-0 hidden sm:inline`,children:f}),!!a.lastStep&&(0,$.jsx)(`span`,{className:`flex-1 truncate text-text-subtle`,title:a.lastStep,children:a.lastStep}),!!d&&(0,$.jsx)(`span`,{className:`ml-auto shrink-0 text-text-3 font-mono`,children:d})]},a.key)})})]})}function Mo(e){return e.startsWith(`plugin:`)&&e.slice(e.lastIndexOf(`:`)+1)||e}function No({needsAuth:e,projectName:t}){let[n,r]=(0,Q.useState)(null),i=Pe(e=>e.mcpSignInDismissed),a=Pe(e=>e.dismissMcpSignIn),o=e.filter(e=>!i.includes(e));return(0,$.jsxs)($.Fragment,{children:[o.length>0&&(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 border-t border-border bg-surface-elevated/60 px-2 py-1.5 text-xs`,children:[(0,$.jsx)(M,{className:`size-3.5 shrink-0 text-warning`}),(0,$.jsx)(`span`,{className:`shrink-0 text-text-secondary`,children:o.length===1?`MCP server needs sign-in:`:`MCP servers need sign-in:`}),(0,$.jsx)(`div`,{className:`flex min-w-0 flex-1 gap-1.5 overflow-x-auto`,children:o.map(e=>(0,$.jsx)(`button`,{type:`button`,onClick:()=>r(e),className:`shrink-0 rounded border border-border bg-background px-2.5 py-1.5 font-medium text-text-primary transition-colors hover:bg-surface max-md:min-h-9`,title:`Sign in to ${e}`,children:Mo(e)},e))}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>{a(o),H.info(`Sign-in bar hidden`,{description:`You can still sign in to these MCP servers from AI Resources → MCP. The bar comes back only for a server that is not on this list.`})},className:`flex size-8 shrink-0 items-center justify-center rounded text-text-secondary transition-colors hover:bg-surface hover:text-text-primary max-md:size-10`,"aria-label":`Hide these servers`,title:`Hide these servers`,children:(0,$.jsx)(ue,{className:`size-3.5`})})]}),(0,$.jsx)(zt,{serverName:n,project:t,onClose:()=>r(null)})]})}function Po(e){if(e.subtype===`error_max_turns`){let t=/maximum number of turns \((\d+)\)/i.exec(e.message)?.[1];return{title:t?`Stopped after ${t} steps (Max Turns)`:`Stopped at the Max Turns limit`,detail:`That is the step limit for one message, set in Settings → AI Provider.`}}let[t,...n]=e.message.split(`
|
|
8
|
+
`).map(e=>e.trim()).filter(Boolean);return{title:t?`Stopped: ${t.replace(/\.$/,``)}`:`Stopped by an error`,detail:n.length>0?n.join(` `):null}}var Fo=`Continue from where you left off.`;function Io({stop:e,onContinue:t}){if(!e)return null;let{title:n,detail:r}=Po(e);return(0,$.jsxs)(`div`,{role:`status`,"data-testid":`turn-stop-bar`,className:`flex shrink-0 items-center gap-2 border-t border-error/20 bg-error/10 px-2 py-1.5 text-xs max-md:text-sm`,children:[(0,$.jsx)(N,{className:`size-3.5 shrink-0 text-error`}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1 leading-snug`,children:[(0,$.jsx)(`p`,{className:`font-medium text-error`,children:n}),r&&(0,$.jsx)(`p`,{className:`line-clamp-2 break-words text-text-secondary max-md:line-clamp-3`,children:r})]}),(0,$.jsxs)(`button`,{type:`button`,onClick:t,className:`flex shrink-0 items-center gap-1.5 rounded border border-border bg-background px-2.5 py-1.5 font-medium text-text-primary transition-colors hover:bg-surface max-md:min-h-11 max-md:px-4`,children:[(0,$.jsx)(be,{className:`size-3.5`}),`Continue`]})]})}var Lo=400;function Ro({projectName:e,sessionId:t,messages:n,isStreaming:r}){let{paths:i,settled:a}=(0,Q.useMemo)(()=>qt(n),[n]),o=(0,Q.useRef)(i);o.current=i;let s=i.join(`
|
|
9
|
+
`),c=e&&t?`${e}\0${t}`:``,[l,u]=(0,Q.useState)({key:``,files:[]}),[d,f]=(0,Q.useState)(0),p=(0,Q.useRef)(0);(0,Q.useEffect)(()=>{if(!c||!t)return;let n=new AbortController,r=setTimeout(()=>{if(p.current>0)return;let r=o.current,i=performance.now();Sn(e,t,r,n.signal).then(n=>{u({key:c,files:n}),bn({projectName:e,sessionId:t,files:n,paths:r,askedAt:i})}).catch(()=>{})},Lo);return()=>{clearTimeout(r),n.abort()}},[c,e,t,s,a,r,d]),(0,Q.useEffect)(()=>{let n=n=>{let r=n.detail;r.projectName===e&&r.sessionId===t&&f(e=>e+1)};return window.addEventListener(En,n),()=>window.removeEventListener(En,n)},[e,t]);let m=(0,Q.useCallback)(()=>f(e=>e+1),[]),h=(0,Q.useCallback)((n,r)=>{if(!c||!t||n.length===0)return;let i=new Set(n.map(e=>e.path));p.current++,u(e=>e.key===c?{key:c,files:wn(e.files,i,r)}:e),Dn(e,t,n,r).catch(()=>{}).finally(()=>{p.current--,f(e=>e+1)})},[c,e,t]);return{files:l.key===c?l.files:[],paths:i,refresh:m,setReviewed:h}}var zo=5e3;function Bo(e,t){let[n,r]=(0,Q.useState)([]),[i,a]=(0,Q.useState)([]),[o,s]=(0,Q.useState)(!1),c=(0,Q.useRef)(!1),l=(0,Q.useCallback)(async e=>{if(e){s(!0);try{let t=await G.get(`/api/teams/${encodeURIComponent(e)}/activity`);if(c.current)return;r(t?.members??[]),a(t?.outbound??[])}catch{}finally{c.current||s(!1)}}},[]);return(0,Q.useEffect)(()=>{if(c.current=!1,!t||!e)return r([]),a([]),()=>{c.current=!0};l(e);let n=setInterval(()=>void l(e),zo);return()=>{c.current=!0,clearInterval(n)}},[e,t,l]),{members:n,outbound:i,loading:o,refresh:(0,Q.useCallback)(()=>void l(e),[l,e])}}function Vo(){let e=window;return e.SpeechRecognition??e.webkitSpeechRecognition??null}function Ho(e){let[t,n]=(0,Q.useState)(!1),[r,i]=(0,Q.useState)(``),a=(0,Q.useRef)(null),o=(0,Q.useRef)(``),s=typeof window<`u`&&Vo()!==null;return{isListening:t,interimText:r,start:(0,Q.useCallback)(t=>{let r=Vo();if(!r)return;a.current?.abort();let s=new r;s.lang=e?.lang??`vi-VN`,s.continuous=!0,s.interimResults=!0,o.current=``,s.onresult=e=>{let n=``,r=``;for(let t=0;t<e.results.length;t++){let i=e.results[t];i.isFinal?r+=i[0].transcript:n+=i[0].transcript}r&&(o.current=r);let a=(o.current+` `+n).trim();i(n),t(a,n.length===0&&o.current.length>0)},s.onend=()=>{n(!1),i(``),o.current&&t(o.current.trim(),!0)},s.onerror=e=>{e.error!==`no-speech`&&e.error!==`aborted`&&console.warn(`[voice-input] error:`,e.error),n(!1),i(``)},a.current=s,s.start(),n(!0)},[e?.lang]),stop:(0,Q.useCallback)(()=>{a.current?.stop(),a.current=null,n(!1),i(``)},[]),supported:s}}var Uo=16e3;function Wo(e){if(e.length===0)return new Float32Array;if(e.length===1)return e[0];let t=e[0].length,n=new Float32Array(t);for(let r=0;r<t;r++){let t=0;for(let n of e)t+=n[r]??0;n[r]=t/e.length}return n}function Go(e,t){let n=new ArrayBuffer(44+e.length*2),r=new DataView(n),i=(e,t)=>{for(let n=0;n<t.length;n++)r.setUint8(e+n,t.charCodeAt(n))};i(0,`RIFF`),r.setUint32(4,36+e.length*2,!0),i(8,`WAVE`),i(12,`fmt `),r.setUint32(16,16,!0),r.setUint16(20,1,!0),r.setUint16(22,1,!0),r.setUint32(24,t,!0),r.setUint32(28,t*2,!0),r.setUint16(32,2,!0),r.setUint16(34,16,!0),i(36,`data`),r.setUint32(40,e.length*2,!0);for(let t=0;t<e.length;t++){let n=Math.max(-1,Math.min(1,e[t]));r.setInt16(44+t*2,n<0?n*32768:n*32767,!0)}return new Uint8Array(n)}async function Ko(e){let t=await new OfflineAudioContext(1,1,Uo).decodeAudioData(await e.arrayBuffer()),n=[];for(let e=0;e<t.numberOfChannels;e++)n.push(t.getChannelData(e));return Go(Wo(n),t.sampleRate)}function qo(e=`vi`){let[t,n]=(0,Q.useState)(!1),[r,i]=(0,Q.useState)(!1),a=(0,Q.useRef)(null),o=(0,Q.useRef)([]),s=(0,Q.useRef)(!1),c=typeof window<`u`&&typeof MediaRecorder<`u`&&typeof navigator<`u`&&!!navigator.mediaDevices?.getUserMedia&&typeof OfflineAudioContext<`u`,l=(0,Q.useCallback)(async t=>{if(!c||a.current)return;let r;try{r=await navigator.mediaDevices.getUserMedia({audio:!0})}catch{H.error(`Microphone unavailable`,{description:`Allow microphone access for this site.`});return}let l=new MediaRecorder(r);a.current=l,o.current=[],s.current=!1,l.ondataavailable=e=>{e.data.size>0&&o.current.push(e.data)},l.onstop=async()=>{for(let e of r.getTracks())e.stop();a.current=null,n(!1);let c=o.current;if(o.current=[],!(s.current||c.length===0)){i(!0);try{let n=await Jo(await Ko(new Blob(c,{type:l.mimeType})),e);n?t(n,!0):H.info(`Nothing was picked up`,{description:`Speak closer to the mic, or check which input device is selected.`})}catch(e){H.error(`Could not transcribe`,{description:e instanceof Error?e.message:String(e)})}finally{i(!1)}}},l.start(),n(!0)},[c,e]),u=(0,Q.useCallback)(()=>{a.current?.state===`recording`&&a.current.stop()},[]);return{isListening:t,isTranscribing:r,start:l,stop:u,cancel:(0,Q.useCallback)(()=>{s.current=!0,u()},[u]),supported:c}}async function Jo(e,t){let n=z(),r=await fetch(`/api/speech/transcribe?lang=${encodeURIComponent(t)}`,{method:`POST`,headers:{"Content-Type":`audio/wav`,...n?{Authorization:`Bearer ${n}`}:{}},body:e}),i=await r.json().catch(()=>null);if(!r.ok||!i?.ok)throw Error(i?.error??`HTTP ${r.status}`);return i.data?.text??``}var Yo=2e3;function Xo(e,t,n=Yo){if(!(e>0)||!(t>0))return null;let r=Math.max(e,t);if(r<n)return null;let i=n-1,a=i/r;return{width:e>=t?i:Math.max(1,Math.round(e*a)),height:t>e?i:Math.max(1,Math.round(t*a))}}var Zo=4096;function Qo(e,t){let n=new TextEncoder().encode(t);outer:for(let t=0;t+n.length<=e.length;t++){for(let r=0;r<n.length;r++)if(e[t+r]!==n[r])continue outer;return!0}return!1}function $o(e,t){return e===`image/gif`?!0:e===`image/webp`?Qo(t,`ANIM`):e===`image/png`||e===`image/apng`?Qo(t,`acTL`):!1}async function es(e){if(e.type===`image/gif`)return!0;if(e.type!==`image/webp`&&e.type!==`image/png`&&e.type!==`image/apng`)return!1;try{let t=new Uint8Array(await e.slice(0,Zo).arrayBuffer());return $o(e.type,t)}catch{return!0}}var ts=1600,ns=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`]);function rs(e){return e===`image/jpeg`||e===`image/webp`?e:`image/png`}async function is(e,t=ts){let n={kind:`asis`,file:e};if(!e.type.startsWith(`image/`)||e.type===`image/svg+xml`||typeof createImageBitmap!=`function`||typeof document>`u`)return n;let r;try{r=await createImageBitmap(e)}catch{return n}let i={width:r.width,height:r.height},a=Xo(i.width,i.height,t+1);if(a&&await es(e))return r.close?.(),Math.max(i.width,i.height)<2e3&&ns.has(e.type)?{kind:`inlineable`,file:e,from:i}:{kind:`asis`,file:e,from:i};if(!a)return r.close?.(),ns.has(e.type)?{kind:`inlineable`,file:e,from:i}:{kind:`asis`,file:e,from:i};let o=r;try{try{o=await createImageBitmap(e,{resizeWidth:a.width,resizeHeight:a.height,resizeQuality:`high`}),r.close?.()}catch{o=r}let t=document.createElement(`canvas`);t.width=a.width,t.height=a.height;let n=t.getContext(`2d`);if(!n)return{kind:`asis`,file:e,from:i};n.imageSmoothingEnabled=!0,n.imageSmoothingQuality=`high`,n.drawImage(o,0,0,a.width,a.height);let s=rs(e.type),c=await new Promise(e=>t.toBlob(e,s,.92));if(!c||c.size===0)return{kind:`asis`,file:e,from:i};let l=s===e.type?e.name:e.name.replace(/\.[^.]+$/,``)+`.png`;return{kind:`scaled`,file:new File([c],l,{type:s}),from:i,to:a}}catch{return{kind:`asis`,file:e,from:i}}finally{o.close?.()}}var as=new Set([`image/png`,`image/jpeg`,`image/gif`,`image/webp`]);function os(e){return as.has(e.type)}function ss(e){return e.textContent?`expand`:e.previewUrl?`preview`:`none`}function cs({attachments:e,onRemove:t}){let[n,r]=(0,Q.useState)(null),i=Et(),a=(0,Q.useRef)(new Map),o=Vt(e=>e.open),s=Vt(e=>e.close),c=Vt(e=>e.src);if((0,Q.useEffect)(()=>{if(!c)return;let t=a.current.get(c);if(!t)return;let n=e.find(e=>e.id===t);if(!n?.previewUrl)return s();n.previewUrl!==c&&(a.current.set(n.previewUrl,n.id),o(n.previewUrl,n.name))},[e,c,o,s]),e.length===0)return null;let l=n?e.find(e=>e.id===n):null;function u(t,n){if(t.previewUrl){for(let t of e)t.previewUrl&&a.current.set(t.previewUrl,t.id);o(t.previewUrl,t.name,rn(n))}}return(0,$.jsxs)(`div`,{className:`px-2 md:px-4 pt-2`,children:[(0,$.jsx)(`div`,{className:K(`flex flex-wrap gap-1.5`,i&&`gap-y-5`),[nn]:``,children:e.map(e=>(0,$.jsxs)(`div`,{className:K(`flex items-center gap-1.5 rounded-md border border-border bg-surface px-2 py-1 text-xs text-text-secondary max-w-48`,ss(e)!==`none`&&`cursor-pointer hover:border-primary/50`,n===e.id&&`border-primary/50 bg-surface-elevated`),onClick:t=>{let i=ss(e);i===`expand`?r(n===e.id?null:e.id):i===`preview`&&u(e,t.currentTarget)},children:[e.previewUrl?(0,$.jsx)(`button`,{type:`button`,title:`Preview ${e.name}`,"aria-label":`Preview ${e.name}`,onClick:t=>{t.stopPropagation(),u(e,t.currentTarget)},className:K(`relative shrink-0 rounded`,`can-hover:hover:ring-2 can-hover:hover:ring-primary/60 transition-shadow`,i&&`before:absolute before:-inset-y-3 before:-inset-x-1.5 before:content-['']`),children:(0,$.jsx)(`img`,{src:e.previewUrl,alt:e.name,[an]:``,className:`size-5 rounded object-cover`})}):e.textContent?(0,$.jsx)(ne,{className:`size-3.5 shrink-0 text-text-subtle`}):e.isImage?(0,$.jsx)(ye,{className:`size-3.5 shrink-0 text-text-subtle`}):(0,$.jsx)(d,{className:`size-3.5 shrink-0 text-text-subtle`}),(0,$.jsx)(`span`,{className:`truncate`,children:e.name}),e.textContent&&(0,$.jsx)(ee,{className:K(`size-3 shrink-0 text-text-subtle transition-transform`,n===e.id&&`rotate-180`)}),e.status===`uploading`?(0,$.jsx)(I,{className:`size-3 shrink-0 animate-spin text-text-subtle`}):e.status===`error`?(0,$.jsx)(`span`,{className:`text-error shrink-0`,title:`Upload failed`,children:`!`}):e.resized?(0,$.jsxs)(`span`,{className:`shrink-0 text-[10px] text-text-subtle`,title:`Shrunk from ${e.resized.from.width}x${e.resized.from.height} to ${e.resized.to.width}x${e.resized.to.height}`,children:[e.resized.to.width,`×`,e.resized.to.height]}):null,(0,$.jsx)(`button`,{type:`button`,onClick:i=>{i.stopPropagation(),t(e.id),n===e.id&&r(null)},className:K(`relative shrink-0 rounded-sm p-0.5 hover:bg-border/50 transition-colors`,i&&`before:absolute before:-inset-y-3.5 before:-inset-x-1.5 before:content-['']`),"aria-label":`Remove ${e.name}`,children:(0,$.jsx)(ue,{className:`size-3`})})]},e.id))}),l?.textContent&&(0,$.jsx)(`pre`,{className:`mt-1.5 max-h-40 overflow-auto rounded-md border border-border bg-background p-2 text-xs text-text-primary font-mono whitespace-pre-wrap break-words`,children:ls(l.textContent)})]})}function ls(e){let t=e.trim(),n=t.match(/^```\w*\n([\s\S]*?)\n```$/);return n?n[1]:t}function us(e,t,n){if(e.length===0)return null;let r=t+n;return r<-1||r>=e.length?null:{index:r,text:r===-1?``:e[e.length-1-r]}}var ds=[{id:`default`,label:`Ask before edits`,icon:oe,description:`Claude will ask for approval before making each edit`},{id:`acceptEdits`,label:`Edit automatically`,icon:ce,description:`Claude will edit files without asking first`},{id:`plan`,label:`Plan mode`,icon:r,description:`Claude will present a plan before editing`},{id:`bypassPermissions`,label:`Bypass permissions`,icon:C,description:`Claude will not ask before running commands`}];function fs(e){return ds.find(t=>t.id===e)?.label??`Unknown`}function ps(e){return ds.find(t=>t.id===e)?.icon??oe}function ms({value:e,onChange:t,open:n,onOpenChange:r}){let i=(0,Q.useRef)(null),o=(0,Q.useRef)(0);(0,Q.useEffect)(()=>{if(!n)return;let e=e=>{i.current&&!i.current.contains(e.target)&&r(!1)},t=i.current?.ownerDocument??document;return t.addEventListener(`mousedown`,e),()=>t.removeEventListener(`mousedown`,e)},[n,r]),(0,Q.useEffect)(()=>{n&&(o.current=ds.findIndex(t=>t.id===e),o.current<0&&(o.current=0))},[n,e]);let s=(0,Q.useCallback)(e=>{if(e.key===`Escape`){r(!1);return}if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;o.current=(o.current+t+ds.length)%ds.length,(i.current?.querySelector(`[data-idx="${o.current}"]`))?.focus()}if(e.key===`Enter`){e.preventDefault();let n=ds[o.current];n&&(t(n.id),r(!1))}},[t,r]);return n?(0,$.jsxs)(`div`,{ref:i,role:`listbox`,"aria-label":`Permission modes`,onKeyDown:s,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),className:`absolute bottom-full left-0 mb-1 z-50 w-72 md:w-80 rounded-lg border border-border popover-solid shadow-[var(--shadow-panel)]`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-b border-border`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-text-secondary`,children:`Modes`}),(0,$.jsx)(`kbd`,{className:`text-[10px] px-1.5 py-0.5 rounded bg-surface-elevated text-text-subtle border border-border`,children:`Shift + Tab`})]}),(0,$.jsx)(`div`,{className:`py-1`,children:ds.map((n,i)=>{let o=n.icon,s=n.id===e;return(0,$.jsxs)(`button`,{"data-idx":i,role:`option`,"aria-selected":s,tabIndex:0,onClick:()=>{t(n.id),r(!1)},className:`w-full flex items-start gap-3 px-3 py-2.5 text-left transition-colors hover:bg-surface-elevated focus:bg-surface-elevated focus:outline-none ${s?`bg-surface-elevated`:``}`,children:[(0,$.jsx)(o,{className:`size-4 mt-0.5 shrink-0 text-text-secondary`}),(0,$.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,$.jsx)(`div`,{className:`text-sm font-medium text-text-primary`,children:n.label}),(0,$.jsx)(`div`,{className:`text-xs text-text-subtle leading-snug`,children:n.description})]}),s&&(0,$.jsx)(a,{className:`size-4 mt-0.5 shrink-0 text-primary`})]},n.id)})})]}):null}var hs=[{label:`Low`,value:`low`},{label:`Medium`,value:`medium`},{label:`High`,value:`high`,default:!0},{label:`Extra`,value:`xhigh`},{label:`Max`,value:`max`}];function gs(e){return e?hs.find(t=>t.value===e)?.label??e:``}function _s(e,t){let n=gs(t);return n?`${e} · ${n}`:e}var vs=new Map,ys=300*1e3;function bs(e){return e.replace(/^Claude\s+/i,``)}var xs=hs.find(e=>e.default).value;function Ss({model:e,effort:t,thinking:n,onModelChange:r,onEffortChange:i,onThinkingChange:o,projectName:s,providerId:c,disabled:u}){let d=JSON.stringify([s,c]),f=vs.get(d),[p,m]=(0,Q.useState)(null),h=p?.projectName===s&&p.providerId===c?p:f?{...f,error:!1}:null,g=h?.models??[],_=s&&c&&!h?`Loading models...`:h?.error?`Unable to load models`:g.length===0?`No models available`:null,[v,y]=(0,Q.useState)(!1),b=(0,Q.useRef)(null),x=Y();(0,Q.useEffect)(()=>{let e=!0;if(m(null),!v||!s||!c)return;let t=vs.get(d);if(!(t&&Date.now()<t.expiry))return G.get(`${U(s)}/chat/providers/${c}/models`).then(n=>{let r=n.length>0?n:t?.models??n;e&&n.length>0&&vs.set(d,{models:n,expiry:Date.now()+ys}),e&&m({projectName:s,providerId:c,models:r})}).catch(()=>{e&&m({projectName:s,providerId:c,models:t?.models??[],error:!t})}),()=>{e=!1}},[s,c,d,v]),(0,Q.useEffect)(()=>{u&&y(!1)},[u]),(0,Q.useEffect)(()=>{if(!v||x)return;let e=e=>{b.current&&!b.current.contains(e.target)&&y(!1)},t=b.current?.ownerDocument??document;return t.addEventListener(`mousedown`,e),()=>t.removeEventListener(`mousedown`,e)},[v,x]);let S=g.find(t=>t.value===e),C=S?bs(S.label):e?bs(e):`Model`,ee=t??xs,w=g.length>0||!!_,te=_s(C,ee),ne=e=>{e(),x||y(!1)},re=(0,$.jsxs)(`div`,{className:`flex divide-x divide-border`,children:[w&&(0,$.jsxs)(`div`,{className:`flex-1 min-w-0 py-1`,children:[(0,$.jsx)(Cs,{children:`Model`}),_&&(0,$.jsx)(`div`,{role:`status`,className:`px-3 py-2 text-xs text-text-secondary`,children:_}),g.map(t=>(0,$.jsxs)(Ts,{active:t.value===e,onClick:()=>ne(()=>r(t.value)),children:[(0,$.jsx)(`span`,{className:`flex-1 truncate`,children:bs(t.label)}),t.value===e&&(0,$.jsx)(a,{className:`size-4 shrink-0 text-primary`})]},t.value))]}),(0,$.jsxs)(`div`,{className:`flex-1 min-w-0 py-1`,children:[(0,$.jsx)(Cs,{children:`Effort`}),hs.map(e=>(0,$.jsxs)(Ts,{active:e.value===ee,onClick:()=>ne(()=>i(e.value)),children:[(0,$.jsxs)(`span`,{className:`flex-1 truncate`,children:[e.label,e.default&&(0,$.jsx)(`span`,{className:`ml-2 text-xs text-text-subtle`,children:`Default`})]}),e.value===ee&&(0,$.jsx)(a,{className:`size-4 shrink-0 text-primary`})]},e.value)),(0,$.jsx)(ws,{}),(0,$.jsxs)(`button`,{type:`button`,onClick:()=>o(!n),className:`w-full flex items-center gap-3 px-3 min-h-[44px] text-left text-sm hover:bg-surface-elevated`,role:`switch`,"aria-checked":n,children:[(0,$.jsx)(l,{className:`size-4 shrink-0`}),(0,$.jsx)(`span`,{className:`flex-1`,children:`Thinking`}),(0,$.jsx)(`span`,{className:`inline-flex h-5 w-9 items-center rounded-full transition-colors ${n?`bg-primary`:`bg-border`}`,children:(0,$.jsx)(`span`,{className:`h-4 w-4 rounded-full bg-white transition-transform ${n?`translate-x-4`:`translate-x-0.5`}`})})]})]})]});return(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsxs)(`button`,{type:`button`,disabled:u,onClick:e=>{e.stopPropagation(),u||y(e=>!e)},className:`inline-flex items-center gap-1.5 px-[9px] py-1 rounded-full text-[11.5px] text-primary bg-accent-wash border border-accent-wash-border hover:brightness-110 transition-[filter] disabled:opacity-50 disabled:cursor-default`,"aria-label":`Model ${C}, effort ${ee}${n?`, thinking on`:``}`,title:u?`Can't change while running`:te,children:[(0,$.jsx)(A,{className:`h-3.5 w-3.5 shrink-0`}),(0,$.jsx)(`span`,{className:`max-w-[140px] truncate`,children:te}),n&&(0,$.jsx)(l,{className:`h-3 w-3 shrink-0`})]}),v&&!u&&(x?(0,$.jsx)(vt,{open:v,onClose:()=>y(!1),children:(0,$.jsx)(`div`,{className:`px-1 pb-2`,children:re})}):(0,$.jsx)(`div`,{ref:b,role:`listbox`,"aria-label":`Model and thinking`,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),className:`absolute bottom-full left-0 mb-1 z-50 w-80 rounded-lg border border-border popover-solid shadow-[var(--shadow-panel)] max-h-[70vh] overflow-y-auto`,children:re}))]})}function Cs({children:e}){return(0,$.jsx)(`div`,{className:`px-3 py-1.5 text-xs font-medium text-text-secondary`,children:e})}function ws(){return(0,$.jsx)(`div`,{className:`my-1 border-t border-border`})}function Ts({active:e,onClick:t,children:n}){return(0,$.jsx)(`button`,{type:`button`,onClick:t,className:`w-full flex items-center gap-3 px-3 min-h-[44px] text-left text-sm text-text-primary transition-colors hover:bg-surface-elevated ${e?`bg-surface-elevated`:``}`,children:n})}function Es({promptCache:e}){let t=Xa(e,Ja());if(t.kind===`unknown`)return null;let n=t.kind===`cold`,r=t.kind===`cold`?eo(t.idleMs):to(t.remainingMs),i;return i=t.kind===`cold`?t.reason===`compacted`?`Prompt cache does not cover the compacted conversation. Compacted ${r} ago, so your next message will re-cache it.`:`Prompt cache expired ${r} ago. Your next message re-sends ${t.contextTokens==null?`the whole transcript`:`about ${no(t.contextTokens)} tokens`} at full price.`:`Prompt cache warm, about ${r.replace(/m$/,` min`)} left.`,(0,$.jsxs)(Wt,{children:[(0,$.jsx)(Pt,{asChild:!0,children:(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-[9px] py-1 rounded-full text-[11.5px] border transition-colors ${n?`text-error border-error/40 bg-error/10`:`text-text-2 bg-panel-2 border-border-soft`}`,children:[(0,$.jsx)(P,{className:`size-3`}),(0,$.jsx)(`span`,{className:`tabular-nums`,children:r})]})}),(0,$.jsx)(yt,{side:`top`,className:`max-w-[240px] text-xs`,children:i})]})}async function Ds(e){try{let t=await new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result??``)),r.onerror=()=>n(r.error),r.readAsDataURL(e)}),n=t.indexOf(`,`),r=n>=0?t.slice(n+1):``;return r?{data:r,mediaType:e.type||`image/png`}:void 0}catch{return}}var Os=(0,Q.memo)(function({tabId:e,pendingContexts:t,onContextsConsumed:n,replyTo:r,onCancelReply:a,replyChangeSignal:o,draftReady:s=!0,onSend:c,isStreaming:l,onCancel:u,disabled:d,projectName:f,onSlashStateChange:p,onSlashItemsLoaded:m,slashSelected:h,onFileStateChange:g,onFileItemsLoaded:_,fileSelected:v,externalFiles:y,externalPaths:C,onExternalPathsConsumed:ee,initialValue:w,initialAttachments:te,clearSignal:ne,restore:re,onContentChange:T,getUserHistory:ie,autoFocus:ae,permissionMode:oe,onModeChange:se,providerId:E,sessionId:D,onProviderChange:ce,model:le,onModelChange:O,effort:de,onEffortChange:fe,thinking:pe,onThinkingChange:k,promptCache:he,configurationPending:ge=!1}){let _e=(0,Q.useRef)(w??``),[A,ve]=(0,Q.useState)(()=>(w??``).trim().length>0),[j,M]=(0,Q.useState)([]),[N,ye]=(0,Q.useState)(null),[be,xe]=(0,Q.useState)(!1),[Se,Ce]=(0,Q.useState)(!1),[we,Te]=(0,Q.useState)(`next`),P=(0,Q.useRef)(null),F=(0,Q.useRef)(null),De=(0,Q.useRef)(null),Oe=(0,Q.useRef)([]),L=(0,Q.useRef)([]),ke=(0,Q.useRef)(0),R=(0,Q.useRef)(!1),Ae=(0,Q.useRef)(!1),je=(0,Q.useRef)(typeof CSS>`u`||!CSS.supports(`field-sizing`,`content`)),B=(0,Q.useCallback)(e=>{_e.current=e,P.current&&(P.current.value=e),F.current&&(F.current.value=e),ve(e.trim().length>0)},[]),V=(0,Q.useCallback)(()=>window.matchMedia(`(min-width: 768px)`).matches?P.current:F.current,[]),H=(0,Q.useRef)(-1),W=(0,Q.useCallback)(e=>{let t=us(ie?.()??[],H.current,e);if(!t)return!1;H.current=t.index;let{agent:n,text:i}=un(t.text);ye(n),B(i),r&&a?.(),T?.(i,j.filter(e=>e.status===`ready`&&e.serverPath).map(e=>({name:e.name,path:e.serverPath})));let o=V();return o?(o.focus(),requestAnimationFrame(()=>{o.selectionStart=o.selectionEnd=i.length}),je.current&&(o.style.height=`auto`,o.style.height=Math.min(o.scrollHeight,o===F.current?80:160)+`px`),!0):!0},[ie,B,V,r,a,T,j]),G=Pe(e=>e.voiceEngine),Me=Ho(),Ne=qo(),Fe=G===`whisper`&&Ne.supported,K=Fe?Ne:Me,Le=Fe&&Ne.isTranscribing,Re=(0,Q.useRef)(``),ze=(0,Q.useCallback)(e=>{let t=Re.current;B(t?t+` `+e:e),je.current&&requestAnimationFrame(()=>{let e=V();e&&(e.style.height=`auto`,e.style.height=Math.min(e.scrollHeight,160)+`px`)})},[B,V]),He=(0,Q.useCallback)(()=>{Le||(K.isListening?K.stop():(Re.current=_e.current.trim(),K.start(ze)))},[K.isListening,K.start,K.stop,ze,Le]),Ue=Le?`Transcribing`:K.isListening?`Stop voice input`:`Start voice input`;(0,Q.useEffect)(()=>{let e=()=>{K.supported&&Ri(V())&&He()};return window.addEventListener(`toggle-voice-input`,e),()=>window.removeEventListener(`toggle-voice-input`,e)},[K.supported,He,V]),(0,Q.useEffect)(()=>{let t=t=>{let{text:n,label:i,targetTabId:a,autoSend:o}=t.detail??{};if(!n||(a?a!==e:!Ri(V())))return;let s=!!o&&!!a&&!d&&!l&&!r&&!_e.current.trim()&&j.length===0;if(window.dispatchEvent(new CustomEvent(Mn,{detail:{sent:s}})),s){c(n,[]);return}let u={id:Ie(),name:i??`Terminal output`,file:new File([],`terminal-output.txt`),isImage:!1,textContent:n,status:`ready`};M(e=>[...e,u]),V()?.focus()};return window.addEventListener(jn,t),()=>window.removeEventListener(jn,t)},[V,e,d,l,j.length,c,r]);let We=(0,Q.useRef)(void 0);(0,Q.useEffect)(()=>{!t?.length||We.current===t||(We.current=t,M(e=>[...e,...t.map(({text:e,label:t})=>({id:Ie(),name:t??`Selected code`,file:new File([],`selected-code.txt`),isImage:!1,textContent:e,status:`ready`}))]),n?.(),V()?.focus())},[t,n,V]);let Ge=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{if(!s||Ge.current||te===void 0||(Ge.current=!0,!te?.length))return;let e=te.map(e=>({id:Ie(),name:e.name,file:new File([],e.name),serverPath:e.path,isImage:os(new File([],e.name)),status:`ready`}));M(t=>[...e,...t])},[s,te]),(0,Q.useEffect)(()=>{if(w&&!_e.current){B(w);let e=setTimeout(()=>{let e=P.current;e&&(e.focus(),e.selectionStart=e.selectionEnd=e.value.length)},50);return()=>clearTimeout(e)}},[w]),(0,Q.useEffect)(()=>{let t=t=>{let n=t.detail;if(!s||d||l||_e.current||j.length||N||!e||n?.projectName!==f||n.tabId&&n.tabId!==e||typeof n.text!=`string`)return;let r=Be.getState();!(n.tabId?Object.values(r.panels).some(t=>t.activeTabId===e):r.panels[r.focusedPanelId]?.activeTabId===e)||document.hidden||(B(n.text),T?.(n.text),V()?.focus())};return window.addEventListener(`ppm:onboarding-prompt`,t),()=>window.removeEventListener(`ppm:onboarding-prompt`,t)},[s,d,l,j.length,N,e,f,T,B,V]),(0,Q.useEffect)(()=>{if(ne){B(``),Ge.current=!1;for(let e of j)e.previewUrl&&URL.revokeObjectURL(e.previewUrl);M([]),ye(null)}},[ne]),(0,Q.useEffect)(()=>{if(!re?.nonce||!re.text)return;let e=_e.current,t=!re.replace&&e.trim()?`${e}\n\n${re.text}`:re.text;B(t),T?.(t,j.filter(e=>e.status===`ready`&&e.serverPath).map(e=>({name:e.name,path:e.serverPath})));let n=setTimeout(()=>{let e=V();e&&(e.focus(),e.selectionStart=e.selectionEnd=e.value.length)},50);return()=>clearTimeout(n)},[re?.nonce]),(0,Q.useEffect)(()=>{o&&(T?.(_e.current,j.filter(e=>e.status===`ready`&&e.serverPath).map(e=>({name:e.name,path:e.serverPath}))),V()?.focus())},[o]),(0,Q.useEffect)(()=>{if(!ae)return;let e=setTimeout(()=>{V()?.focus()},100);return()=>clearTimeout(e)},[]);let Ke=(0,Q.useRef)(0),q=(0,Q.useCallback)(()=>{let e=++Ke.current;if(ge)return;if(!f){Oe.current=[],m?.([],[]);return}let t=Tt(f,E);Oe.current=t?.items??[],m?.(t?.items??[],t?.recentNames??[]),Nt(f,E,D).then(t=>{e===Ke.current&&(Oe.current=t.items,m?.(t.items,t.recentNames))}).catch(()=>{})},[f,E,D,m,ge]);(0,Q.useEffect)(()=>{q();let e=wt(()=>{if(!f)return;let e=Tt(f,E);e&&!ge&&(Oe.current=e.items,m?.(e.items,e.recentNames))}),t=setInterval(q,Ut);return()=>{++Ke.current,e(),clearInterval(t)}},[q,f,E,m,ge]),(0,Q.useEffect)(()=>{let e=()=>{q()};return window.addEventListener(`ppm:slash-items-refresh`,e),()=>window.removeEventListener(`ppm:slash-items-refresh`,e)},[q,f]),(0,Q.useEffect)(()=>{let e=()=>{if(!f){L.current=[],_?.([]);return}let e=it.getState();if(Ae.current&&e.indexStatus===`idle`&&Ve.getState().activeProject?.name===f){e.loadIndex(f);return}let t=e.indexProject===f?e.fileIndex:[];L.current=t,_?.(t)};e();let t=it.getState().fileIndex,n=it.getState().indexStatus;return it.subscribe(r=>{(r.fileIndex!==t||r.indexStatus!==n)&&(t=r.fileIndex,n=r.indexStatus,e())})},[f]),(0,Q.useEffect)(()=>{if(!h)return;let e=V();if(!e)return;let t=e.value,n=e.selectionStart,r=t.slice(0,n),i=t.slice(n);if(h.type===`agent`){let t=Nn(r);ye(h.name),B(t+i),p?.(!1,``),R.current=!1,e.focus(),setTimeout(()=>{e.selectionStart=e.selectionEnd=t.length},0);return}let a=Pn(r,`${h.invokeSigil??`/`}${h.name}`);B(a+i),p?.(!1,``),R.current=!1,g?.(!1,``),Ae.current=!1,e.focus(),setTimeout(()=>{e.selectionStart=e.selectionEnd=a.length},0)},[h]),(0,Q.useEffect)(()=>{if(!v)return;let e=V();if(!e)return;let t=e.value,n=e.selectionStart,r=t.slice(0,n),i=t.slice(n),a=r.match(/@(\S*)$/);if(a){let t=r.length-a[0].length;B(r.slice(0,t)+`@${v.path} `+i);let n=t+v.path.length+2;setTimeout(()=>{e.selectionStart=e.selectionEnd=n,e.focus()},0)}else{let n=t+`@${v.path} `;B(n),setTimeout(()=>{e.selectionStart=e.selectionEnd=n.length,e.focus()},0)}g?.(!1,``),Ae.current=!1},[v]),(0,Q.useEffect)(()=>{!y||y.length===0||Ye(y)},[y]),(0,Q.useEffect)(()=>{if(!C||C.length===0)return;let e=C.map(e=>`@${e}`).join(` `),t=_e.current;B(t+(t.length>0&&!t.endsWith(` `)?` `:``)+e+` `),V()?.focus(),ee?.()},[C]);let qe=(0,Q.useCallback)(async e=>{if(!f)return;let t=e.split(/[\\/]/).pop();if(t)try{let e={},n=z();n&&(e.Authorization=`Bearer ${n}`),await fetch(`${U(f)}/chat/uploads/${encodeURIComponent(t)}`,{method:`DELETE`,headers:e})}catch{}},[f]),Je=(0,Q.useCallback)(async e=>{if(!f)return null;try{let t=new FormData;t.append(`files`,e);let n={},r=z();r&&(n.Authorization=`Bearer ${r}`);let i=await(await fetch(`${U(f)}/chat/upload`,{method:`POST`,headers:n,body:t})).json();return i.ok&&Array.isArray(i.data)&&i.data.length>0?i.data[0].path:null}catch{return null}},[f]),Ye=(0,Q.useCallback)(async e=>{for(let t of e){let e=Ie(),n=os(t),r={id:e,name:t.name,file:t,isImage:n,previewUrl:n?URL.createObjectURL(t):void 0,status:`uploading`};M(e=>[...e,r]);try{let i=n?await is(t):null,a=i?.file??t,o=n&&a!==t?URL.createObjectURL(a):void 0,s=await Je(a),c=i&&i.kind!==`asis`?await Ds(a):void 0,l=!!c&&c.data.length<=Qn.maxBase64PerImage;o&&r.previewUrl&&URL.revokeObjectURL(r.previewUrl),M(t=>t.map(t=>t.id===e?{...t,file:a,...o&&{previewUrl:o},serverPath:s??void 0,imageData:l?c:void 0,resized:i?.to?{from:i.from,to:i.to}:void 0,status:s||l?`ready`:`error`}:t))}catch{M(t=>t.map(t=>t.id===e?{...t,status:`error`}:t))}}(F.current??P.current)?.focus()},[Je]),Xe=(0,Q.useCallback)(e=>{M(t=>{let n=t.find(t=>t.id===e);return n?.previewUrl&&URL.revokeObjectURL(n.previewUrl),n?.serverPath&&qe(n.serverPath),t.filter(t=>t.id!==e)})},[qe]),Ze=(0,Q.useCallback)(()=>{let e=_e.current.trim(),t=j.filter(e=>e.status===`ready`);if(!e&&t.length===0&&!N){Ce(!1);return}let n=N?`Use the ${N} agent to ${e}`.trimEnd():e;if(p?.(!1,``),R.current=!1,g?.(!1,``),Ae.current=!1,K.isListening&&(Fe?Ne.cancel():K.stop()),c(n,t,l?we:void 0)!==!1){B(``);for(let e of j)e.previewUrl&&URL.revokeObjectURL(e.previewUrl);M([]),ye(null),Ce(!1),Te(`next`),H.current=-1,je.current&&(P.current&&(P.current.style.height=`auto`),F.current&&(F.current.style.height=`auto`))}},[j,N,c,p,g,l,we,B,K.isListening,K.stop,Ne.cancel,Fe]),Qe=(0,Q.useCallback)(()=>{if(!d){if(j.some(e=>e.status===`uploading`)){(_e.current.trim()||j.some(e=>e.status!==`error`))&&Ce(!0);return}Ze()}},[j,d,Ze]);(0,Q.useEffect)(()=>{Se&&(j.some(e=>e.status===`uploading`)||Ze())},[Se,j,Ze]);let $e=(0,Q.useCallback)(e=>{if(e.key===`Enter`&&!e.shiftKey){e.preventDefault(),Qe();return}if((e.key===`ArrowUp`||e.key===`ArrowDown`)&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){if(!(H.current>=0)&&(e.key===`ArrowDown`||_e.current!==``||N))return;W(e.key===`ArrowUp`?1:-1)&&e.preventDefault();return}if(e.shiftKey&&e.key===`Tab`){e.preventDefault();let t=[`default`,`acceptEdits`,`plan`,`bypassPermissions`],n=t[(t.indexOf(oe??`bypassPermissions`)+1)%t.length];se?.(n)}},[Qe,oe,se,W,N]),et=(0,Q.useCallback)((e,t)=>{let n=e.slice(0,t),r=n.includes(`/`),i=n.includes(`@`);if(!r&&!i){R.current&&=(p?.(!1,``),!1),Ae.current&&=(g?.(!1,``),!1);return}if(r){let e=Fn(n);if(e!==null){R.current||q(),p?.(!0,e),R.current=!0,Ae.current&&=(g?.(!1,``),!1);return}}if(i){let e=n.match(/@(\S*)$/);if(e){!Ae.current&&f&&it.getState().ensureIndex(f),g?.(!0,e[1]??``),Ae.current=!0,R.current&&=(p?.(!1,``),!1);return}}R.current&&=(p?.(!1,``),!1),Ae.current&&=(g?.(!1,``),!1)},[p,g,q,f]),tt=(0,Q.useCallback)(e=>{let t=e.target,n=t.value;_e.current=n,H.current=-1;let r=t===P.current?F.current:P.current;r&&(r.value=n),ve(n.trim().length>0),et(n,t.selectionStart),T?.(n,j.filter(e=>e.status===`ready`&&e.serverPath).map(e=>({name:e.name,path:e.serverPath}))),je.current&&(ke.current&&cancelAnimationFrame(ke.current),ke.current=requestAnimationFrame(()=>{ke.current=0,t.style.height=`auto`,t.style.height=Math.min(t.scrollHeight,t===F.current?80:160)+`px`}))},[et,T,j]),J=(0,Q.useCallback)(e=>{let t=e.clipboardData?.items;if(!t)return;let n=[];for(let e of t)if(e.kind===`file`){let t=e.getAsFile();t&&n.push(t)}n.length>0&&(e.preventDefault(),Ye(n))},[Ye]),nt=(0,Q.useCallback)(e=>{e.preventDefault();let t=e.dataTransfer.getData(`application/x-ppm-path`);if(t){let e=_e.current;B(e+(e.length>0&&!e.endsWith(` `)?` `:``)+`@${t} `),V()?.focus();return}let n=Array.from(e.dataTransfer.files);n.length>0&&Ye(n)},[Ye,B,V]),rt=(0,Q.useCallback)(e=>{e.preventDefault()},[]),Y=(0,Q.useCallback)(()=>{De.current?.click()},[]),at=(0,Q.useCallback)(e=>{let t=Array.from(e.target.files??[]);t.length>0&&Ye(t),e.target.value=``},[Ye]),ot=A||j.some(e=>e.status!==`error`)||!!N,st=l&&!ot;return(0,$.jsxs)(`div`,{"data-onboarding":`chat-input`,className:`p-2 md:p-3`,children:[(0,$.jsxs)(`div`,{className:`border border-border rounded-[var(--rad)] bg-panel shadow-[var(--shadow-float)] cursor-text`,onClick:e=>{d||e.target instanceof HTMLTextAreaElement||V()?.focus()},children:[r&&(0,$.jsx)(`div`,{className:`px-2 md:px-4 pt-2`,children:(0,$.jsx)(wa,{reply:r,preview:!0,onCancel:a})}),N&&(0,$.jsx)(`div`,{className:`px-2 md:px-4 pt-2`,children:(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-md border border-sky-500/30 bg-sky-500/10 px-2 py-1 text-xs font-medium text-sky-600 dark:text-sky-400`,children:[(0,$.jsx)(Ee,{className:`size-3.5 shrink-0`}),N,(0,$.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),ye(null),V()?.focus()},className:`shrink-0 rounded-sm p-0.5 hover:bg-sky-500/20 transition-colors`,"aria-label":`Remove ${N} agent`,children:(0,$.jsx)(ue,{className:`size-3`})})]})}),(0,$.jsx)(cs,{attachments:j,onRemove:Xe}),(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1 px-2 pt-2 md:hidden relative`,children:[!ge&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ks,{mode:oe??`bypassPermissions`,onClick:()=>xe(e=>!e)}),(0,$.jsx)(ms,{value:oe??`bypassPermissions`,onChange:e=>se?.(e),open:be,onOpenChange:xe})]}),ce&&f&&(0,$.jsx)(bt,{value:E??`claude`,onChange:ce,projectName:f}),O&&f&&(0,$.jsx)(Ss,{model:le??null,effort:de??null,thinking:pe??!1,onModelChange:O,onEffortChange:fe??(()=>{}),onThinkingChange:k??(()=>{}),projectName:f,providerId:E??`claude`,disabled:l}),l&&(0,$.jsx)(js,{value:we,onChange:Te}),(0,$.jsx)(Es,{promptCache:he??null})]}),(0,$.jsxs)(`div`,{className:`flex items-end gap-1 md:hidden px-2 py-2`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),Y()},disabled:d,className:`flex items-center justify-center size-8 shrink-0 rounded-[10px] text-text-3 hover:text-text-primary transition-colors disabled:opacity-50`,"aria-label":`Attach file`,children:(0,$.jsx)(i,{className:`size-4`})}),(0,$.jsx)(`textarea`,{ref:F,defaultValue:w??``,onChange:tt,onKeyDown:$e,onPaste:J,onDrop:nt,onDragOver:rt,placeholder:l?`Follow-up...`:`Ask anything...`,disabled:d,rows:1,className:`flex-1 resize-none bg-transparent py-1.5 text-sm text-foreground placeholder:text-text-subtle focus:outline-none disabled:opacity-50 max-h-20 [field-sizing:content]`}),K.supported&&(0,$.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),He()},disabled:d||Le,className:`flex items-center justify-center size-8 shrink-0 rounded-[10px] transition-colors disabled:opacity-50 ${K.isListening?`bg-error text-white animate-pulse`:`text-text-3 hover:text-text-primary`}`,"aria-label":Ue,children:Le?(0,$.jsx)(I,{className:`size-4 animate-spin`}):K.isListening?(0,$.jsx)(S,{className:`size-4`}):(0,$.jsx)(b,{className:`size-4`})}),st?(0,$.jsx)(`button`,{onClick:e=>{e.stopPropagation(),u?.()},className:`flex items-center justify-center size-9 shrink-0 rounded-[11px] bg-error text-white hover:bg-error/80 shadow-[var(--shadow-float)] transition-colors`,"aria-label":`Stop`,children:(0,$.jsx)(x,{className:`size-3.5`})}):(0,$.jsx)(`button`,{onClick:e=>{e.stopPropagation(),Se?Ce(!1):Qe()},disabled:d||!ot,className:`flex items-center justify-center size-9 shrink-0 rounded-[11px] bg-primary text-primary-foreground hover:bg-primary/90 shadow-[var(--shadow-float)] disabled:opacity-30 disabled:shadow-none transition-colors`,"aria-label":Se?`Cancel queued send`:`Send`,children:Se?(0,$.jsx)(I,{className:`size-4 animate-spin`}):(0,$.jsx)(me,{className:`size-4`})})]}),(0,$.jsxs)(`div`,{className:`hidden md:block`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 px-2.5 pt-2.5`,children:[!ge&&(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(ks,{mode:oe??`bypassPermissions`,onClick:()=>xe(e=>!e)}),(0,$.jsx)(ms,{value:oe??`bypassPermissions`,onChange:e=>se?.(e),open:be,onOpenChange:xe})]}),ce&&f&&(0,$.jsx)(bt,{value:E??`claude`,onChange:ce,projectName:f}),O&&f&&(0,$.jsx)(Ss,{model:le??null,effort:de??null,thinking:pe??!1,onModelChange:O,onEffortChange:fe??(()=>{}),onThinkingChange:k??(()=>{}),projectName:f,providerId:E??`claude`,disabled:l}),l&&(0,$.jsx)(js,{value:we,onChange:Te}),(0,$.jsx)(Es,{promptCache:he??null})]}),(0,$.jsxs)(`div`,{className:`flex items-end gap-2 px-2.5 py-2`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),Y()},disabled:d,className:`flex items-center justify-center size-[34px] shrink-0 rounded-[10px] text-text-3 hover:text-text-primary hover:bg-surface-elevated transition-colors disabled:opacity-50`,"aria-label":`Attach file`,children:(0,$.jsx)(i,{className:`size-[17px]`})}),(0,$.jsx)(`textarea`,{ref:P,defaultValue:w??``,onChange:tt,onKeyDown:$e,onPaste:J,onDrop:nt,onDragOver:rt,placeholder:l?`Follow-up or Stop...`:`Ask anything...`,disabled:d,rows:1,className:`flex-1 resize-none bg-transparent py-2 text-sm text-foreground placeholder:text-text-subtle focus:outline-none disabled:opacity-50 max-h-[90px] leading-relaxed [field-sizing:content]`}),K.supported&&(0,$.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),He()},disabled:d||Le,className:`flex items-center justify-center size-[34px] shrink-0 rounded-[10px] transition-colors disabled:opacity-50 ${K.isListening?`bg-error text-white animate-pulse`:`text-text-3 hover:text-text-primary hover:bg-surface-elevated`}`,"aria-label":Ue,children:Le?(0,$.jsx)(I,{className:`size-[17px] animate-spin`}):K.isListening?(0,$.jsx)(S,{className:`size-[17px]`}):(0,$.jsx)(b,{className:`size-[17px]`})}),st?(0,$.jsx)(`button`,{onClick:e=>{e.stopPropagation(),u?.()},className:`flex items-center justify-center size-9 shrink-0 rounded-[11px] bg-error text-white hover:bg-error/80 shadow-[var(--shadow-float)] transition-colors`,"aria-label":`Stop response`,children:(0,$.jsx)(x,{className:`size-4`})}):(0,$.jsx)(`button`,{onClick:e=>{e.stopPropagation(),Se?Ce(!1):Qe()},disabled:d||!ot,className:`flex items-center justify-center size-9 shrink-0 rounded-[11px] bg-primary text-primary-foreground hover:bg-primary/90 shadow-[var(--shadow-float)] disabled:opacity-30 disabled:cursor-not-allowed disabled:shadow-none transition-colors`,"aria-label":Se?`Cancel queued send`:`Send message`,children:Se?(0,$.jsx)(I,{className:`size-4 animate-spin`}):(0,$.jsx)(me,{className:`size-[17px]`})})]})]})]}),(0,$.jsx)(`input`,{ref:De,type:`file`,multiple:!0,className:`hidden`,onChange:at})]})});function ks({mode:e,onClick:t}){let n=ps(e),r=fs(e);return(0,$.jsxs)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),t()},className:`inline-flex items-center gap-1.5 px-[9px] py-1 rounded-full text-[11.5px] text-text-2 bg-panel-2 border border-border-soft hover:text-text-primary hover:border-border transition-colors`,"aria-label":`Permission mode: ${r}`,children:[(0,$.jsx)(n,{className:`size-3`}),(0,$.jsx)(`span`,{className:`max-w-[100px] truncate`,children:r})]})}var As=[{value:`now`,label:`Interrupt`,Icon:pe},{value:`next`,label:`Queue`,Icon:L},{value:`later`,label:`Later`,Icon:P}];function js({value:e,onChange:t}){let n=(0,Q.useCallback)(()=>{let n=[`next`,`later`,`now`];t(n[(n.indexOf(e)+1)%n.length])},[e,t]),r=As.find(t=>t.value===e)??As[1],i=r.Icon;return(0,$.jsxs)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),n()},className:`inline-flex items-center gap-1.5 px-[9px] py-1 rounded-full text-[11.5px] text-text-2 bg-panel-2 border border-border-soft hover:text-text-primary hover:border-border transition-colors`,"aria-label":`Message priority: ${r.label}`,title:`Priority: ${r.label} (click to cycle)`,children:[(0,$.jsx)(i,{className:`size-3`}),(0,$.jsx)(`span`,{children:r.label})]})}function Ms({items:e,filter:t,onSelect:n,onClose:r,visible:i}){let[a,o]=(0,Q.useState)(0),s=(0,Q.useRef)(null),c=(()=>{if(!t)return e.slice(0,50);let n=t.toLowerCase();return e.filter(e=>e.path.toLowerCase().includes(n)||e.name.toLowerCase().includes(n)).slice(0,50)})();(0,Q.useEffect)(()=>{o(0)},[t]),(0,Q.useEffect)(()=>{let e=s.current;e&&e.children[a]?.scrollIntoView({block:`nearest`})},[a]);let l=(0,Q.useCallback)(e=>{if(!i||c.length===0)return!1;switch(e.key){case`ArrowUp`:return e.preventDefault(),o(e=>e>0?e-1:c.length-1),!0;case`ArrowDown`:return e.preventDefault(),o(e=>e<c.length-1?e+1:0),!0;case`Enter`:case`Tab`:return e.preventDefault(),c[a]&&n(c[a]),!0;case`Escape`:return e.preventDefault(),r(),!0}return!1},[i,c,a,n,r]);return(0,Q.useEffect)(()=>{if(!i)return;let e=e=>{l(e)&&e.stopPropagation()},t=s.current?.ownerDocument??document;return t.addEventListener(`keydown`,e,!0),()=>t.removeEventListener(`keydown`,e,!0)},[i,l]),!i||c.length===0?null:(0,$.jsx)(`div`,{className:`max-h-52 overflow-y-auto border-b border-border bg-surface`,children:(0,$.jsx)(`div`,{ref:s,className:`py-1`,children:c.map((e,t)=>(0,$.jsxs)(`button`,{className:`flex items-center gap-2 w-full px-3 py-1.5 text-left transition-colors ${t===a?`bg-primary/10 text-primary`:`hover:bg-surface-hover text-text-primary`}`,onMouseEnter:()=>o(t),onClick:()=>n(e),children:[(0,$.jsx)(`span`,{className:`shrink-0`,children:e.type===`directory`?(0,$.jsx)(p,{className:`size-4 text-warning`}):(0,$.jsx)(ke,{className:`size-4 text-primary`})}),(0,$.jsx)(`span`,{className:`text-sm truncate`,children:e.path})]},e.path))})})}var Ns=e=>`${(e/1048576).toFixed(2)} MB`;function Ps(e){return e>=1048576?`${(e/1048576).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`}function Fs(){let e=null;for(let t of document.querySelectorAll(`.overflow-y-auto`))t.clientHeight<100||!t.querySelector(`[data-msg-index]`)||(!e||t.scrollHeight>e.scrollHeight)&&(e=t);let t=[];e&&(t.push(`Rendered messages: ${e.querySelectorAll(`[data-msg-index]`).length}`),t.push(`Transcript DOM nodes: ${e.querySelectorAll(`*`).length}`),t.push(`Transcript height: ${Math.round(e.scrollHeight)}px`));let n=performance.memory;return n&&t.push(`JS heap (page): ${(n.usedJSHeapSize/1048576).toFixed(1)} MB`),t}function Is({sessionId:e,projectName:t}){let[n,r]=(0,Q.useState)(null),[i,a]=(0,Q.useState)(null),[o,s]=(0,Q.useState)(null),[c,l]=(0,Q.useState)(null);(0,Q.useEffect)(()=>{let n=!0;return G.get(`${U(t)}/chat/sessions/${e}/images?project=${encodeURIComponent(t)}`).then(e=>{n&&r(e)}).catch(e=>{n&&a(e.message)}),()=>{n=!1}},[e,t]);let u=(n,i=!1)=>{s(n),a(null),G.post(`${U(t)}/chat/sessions/${e}/images/strip?project=${encodeURIComponent(t)}`,{mode:n,includeAttachments:i}).then(e=>{r(e.remaining),l({removed:e.removed,bytes:e.bytesFreed})}).catch(e=>a(e.message)).finally(()=>s(null))};return i&&!n?(0,$.jsx)(`p`,{className:`text-[11px] text-error`,children:i}):n?(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold text-foreground`,children:`Transcript images`}),n.total===0?(0,$.jsxs)(`p`,{className:`text-[11px] text-text-subtle`,children:[`No images in this transcript`,c?` — it is clean.`:`.`]}):(0,$.jsxs)(`p`,{className:`text-[11px] text-text-secondary`,children:[n.total,` image`,n.total===1?``:`s`,` · `,Ps(n.bytes),` of base64, replayed on every turn`,n.attachments>0&&` · ${n.attachments} attached by you`,`.`]}),n.oversized>0&&(0,$.jsxs)(`div`,{className:`flex gap-2 rounded-md border border-warning/40 bg-warning/10 p-2 text-[11px] text-text-secondary`,children:[(0,$.jsx)(xe,{className:`mt-px size-3.5 shrink-0 text-warning`}),(0,$.jsxs)(`span`,{children:[n.oversized,` image`,n.oversized===1?` reaches`:`s reach`,` the `,n.limit,`px limit (largest `,n.largestSide,`px). Once a request carries several images the API rejects those outright, which fails the whole turn — removing them loses no context.`]})]}),n.oversizedAttachments>0&&(0,$.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-md border border-error/40 bg-error/10 p-2 text-[11px] text-text-secondary`,children:[(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(xe,{className:`mt-px size-3.5 shrink-0 text-error`}),(0,$.jsxs)(`span`,{children:[n.oversizedAttachments,` of those `,n.oversizedAttachments===1?`is an image you`:`are images you`,` `,`attached yourself, so the buttons below leave `,n.oversizedAttachments===1?`it`:`them`,` in place. While `,n.oversizedAttachments===1?`it stays`:`they stay`,`, every turn in this session keeps failing. Removing `,n.oversizedAttachments===1?`it`:`them`,` cannot be undone: an attachment PPM sent keeps a copy on disk with its path still in the message, but one from another client does not.`]})]}),(0,$.jsxs)(ct,{size:`sm`,variant:`destructive`,disabled:o!==null,onClick:()=>u(`oversized`,!0),children:[o===`oversized`?(0,$.jsx)(I,{className:`size-3.5 animate-spin`}):(0,$.jsx)(Se,{className:`size-3.5`}),`Remove oversized, attachments included`]})]}),c&&(0,$.jsxs)(`p`,{className:`text-[11px] text-success`,children:[`Removed `,c.removed,` image`,c.removed===1?``:`s`,`, freed `,Ps(c.bytes),`.`]}),i&&(0,$.jsx)(`p`,{className:`text-[11px] text-error`,children:i}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5 sm:flex-row`,children:[(0,$.jsxs)(ct,{size:`sm`,variant:`outline`,className:`flex-1`,disabled:o!==null||n.oversized===0,onClick:()=>u(`oversized`),children:[o===`oversized`?(0,$.jsx)(I,{className:`size-3.5 animate-spin`}):(0,$.jsx)(Se,{className:`size-3.5`}),`Remove oversized`,n.oversized>0?` (${n.oversized} · ${Ps(n.oversizedBytes)})`:``]}),(0,$.jsxs)(ct,{size:`sm`,variant:`destructive`,className:`flex-1`,disabled:o!==null||n.total===0,onClick:()=>u(`all`),children:[o===`all`?(0,$.jsx)(I,{className:`size-3.5 animate-spin`}):(0,$.jsx)(Se,{className:`size-3.5`}),`Remove all`,n.total>0?` (${n.total} · ${Ps(n.bytes)})`:``]})]}),(0,$.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:`These two buttons cover tool images only, and leave anything you attached alone. A removed tool image is replaced by its placeholder text; the chat still shows the file, re-read from disk.`})]}):(0,$.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:`Scanning transcript for images...`})}function Ls({sessionId:e,projectName:t}){let[n,r]=(0,Q.useState)(null),[i,a]=(0,Q.useState)(null);if((0,Q.useEffect)(()=>{let n=!0;return G.get(`${U(t)}/chat/sessions/${e}/usage?project=${encodeURIComponent(t)}`).then(e=>{n&&r(e.turns)}).catch(e=>{n&&a(e.message)}),()=>{n=!1}},[e,t]),i)return(0,$.jsx)(`p`,{className:`text-[11px] text-error`,children:i});if(!n)return(0,$.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:`Loading token history...`});if(n.length===0)return(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold text-foreground`,children:`Token & cache`}),(0,$.jsx)(`p`,{className:`text-[11px] text-text-subtle`,children:`No turns recorded yet. Send a message and the token split for each turn shows up here.`})]});let o=n.filter(e=>e.usage.coldStart).length,s=n.reduce((e,t)=>e+t.usage.costUsd,0),c=n.reduce((e,t)=>e+mr(t.usage),0),l=new Set(n.map(e=>e.usage.accountId).filter(Boolean)).size;return(0,$.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,$.jsx)(`h3`,{className:`text-xs font-semibold text-foreground`,children:`Token & cache`}),(0,$.jsxs)(`p`,{className:`text-[11px] text-text-secondary`,children:[`Last `,n.length,` turn`,n.length===1?``:`s`,` · `,o,` restarted the session ·`,` `,Sr(c),` of transcript re-sent uncached · $`,s.toFixed(2),l>1&&` · spread over ${l} accounts`]}),(0,$.jsx)(`div`,{className:`max-h-[30vh] overflow-y-auto rounded-md border border-border`,children:(0,$.jsxs)(`table`,{className:`w-full font-mono text-[10.5px]`,children:[(0,$.jsx)(`thead`,{className:`sticky top-0 bg-surface text-text-subtle`,children:(0,$.jsxs)(`tr`,{children:[(0,$.jsx)(`th`,{className:`px-2 py-1 text-left font-normal`,children:`When`}),(0,$.jsx)(`th`,{className:`px-2 py-1 text-left font-normal`,children:`Account`}),(0,$.jsx)(`th`,{className:`px-2 py-1 text-right font-normal`,children:`Prefix`}),(0,$.jsx)(`th`,{className:`px-2 py-1 text-right font-normal`,children:`Cached`}),(0,$.jsx)(`th`,{className:`px-2 py-1 text-right font-normal`,children:`Cost`}),(0,$.jsx)(`th`,{className:`px-2 py-1 text-left font-normal`,children:`Start`})]})}),(0,$.jsx)(`tbody`,{children:n.map(e=>{let t=Math.round(e.usage.cacheHitRate*100),n=vr(e.usage).level;return(0,$.jsxs)(`tr`,{className:`border-t border-border`,children:[(0,$.jsx)(`td`,{className:`px-2 py-1 text-text-subtle`,children:e.recordedAt.slice(11,16)||e.recordedAt.slice(0,10)}),(0,$.jsx)(`td`,{className:`max-w-24 truncate px-2 py-1 text-text-subtle`,title:e.usage.accountLabel??e.usage.accountId??``,children:e.usage.accountLabel??e.usage.accountId?.slice(0,8)??`—`}),(0,$.jsx)(`td`,{className:`px-2 py-1 text-right text-text-secondary`,children:Sr(pr(e.usage))}),(0,$.jsxs)(`td`,{className:`px-2 py-1 text-right ${n===`bad`?`text-warning`:n===`warn`?`text-text-primary`:`text-success`}`,children:[t,`%`]}),(0,$.jsxs)(`td`,{className:`px-2 py-1 text-right text-text-secondary`,children:[`$`,e.usage.costUsd.toFixed(3)]}),(0,$.jsx)(`td`,{className:`px-2 py-1 text-text-subtle`,children:e.usage.coldStart?e.usage.coldReason??`cold`:`warm`})]},e.id)})})]})}),(0,$.jsxs)(`p`,{className:`text-[11px] text-text-subtle`,children:[`A high "Cached" share is the cheap case. A turn marked `,(0,$.jsx)(`code`,{children:`idle_timeout`}),` paid for the whole transcript again because the session sat idle with no tab open long enough for PPM to release its subprocess. The cache is scoped per account, so a turn on a different account starts cold no matter how the session was resumed.`]})]})}function Rs({sessionId:e,projectName:t,open:n,onOpenChange:r}){let[i,a]=(0,Q.useState)(null),[o,c]=(0,Q.useState)(!1),l=Y();(0,Q.useEffect)(()=>{n&&(c(!1),a(null),G.get(`${U(t)}/chat/sessions/${e}/debug?project=${encodeURIComponent(t)}`).then(e=>{let t=e.jsonlSizeBytes==null?``:` (${Ns(e.jsonlSizeBytes)}${e.jsonlLines==null?``:`, ${e.jsonlLines} records`})`;a([`PPM Session: ${e.ppmSessionId}`,`SDK Session: ${e.sdkSessionId}`,e.jsonlPath?`JSONL: ${e.jsonlPath}${t}`:`JSONL: not found`,e.projectPath?`Project: ${e.projectPath}`:null,...Fs()].filter(Boolean).join(`
|
|
10
|
+
`))}).catch(()=>a(`Failed to load debug info`)))},[n,e,t]);let u=(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,$.jsxs)(`h2`,{className:`flex items-center gap-2 text-sm font-semibold text-foreground`,children:[(0,$.jsx)(s,{className:`size-4 text-primary`}),`Session debug info`]}),(0,$.jsx)(`pre`,{className:`max-h-[35vh] overflow-y-auto whitespace-pre-wrap break-all rounded-md border border-border bg-surface p-2.5 font-mono text-[11px] leading-relaxed text-text-secondary select-text`,children:i??`Loading...`}),(0,$.jsx)(ct,{size:`sm`,onClick:()=>{i&&st(i).then(e=>{e&&(c(!0),setTimeout(()=>c(!1),1500))})},disabled:!i,className:`w-full`,children:o?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(w,{className:`size-3.5`}),` Copied!`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(F,{className:`size-3.5`}),` Copy`]})}),(0,$.jsx)(`div`,{className:`border-t border-border pt-3`,children:n&&(0,$.jsx)(Ls,{sessionId:e,projectName:t})}),(0,$.jsx)(`div`,{className:`border-t border-border pt-3`,children:n&&(0,$.jsx)(Is,{sessionId:e,projectName:t})})]});return l?(0,$.jsx)(vt,{open:n,onClose:()=>r(!1),className:`popover-solid`,children:(0,$.jsx)(`div`,{className:`max-h-[85vh] overflow-y-auto px-4 pb-4 pt-1`,children:u})}):(0,$.jsx)(dt,{open:n,onOpenChange:r,children:(0,$.jsxs)(lt,{className:`sm:max-w-lg`,children:[(0,$.jsx)(ut,{className:`sr-only`,children:`Session debug info`}),u]})})}function zs({hasUnread:e,onToggleUnread:t,onOpenDebug:n,onShowLogs:r}){return(0,$.jsxs)(_t,{children:[(0,$.jsx)(ht,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:`flex items-center justify-center size-5 rounded text-text-subtle hover:text-text-secondary hover:bg-surface-elevated transition-colors`,title:`More actions`,"aria-label":`More actions`,children:(0,$.jsx)(T,{className:`size-3.5`})})}),(0,$.jsxs)(gt,{align:`end`,side:`top`,className:`min-w-[190px]`,children:[(0,$.jsx)(mt,{onClick:t,className:`max-md:py-3`,children:e?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(te,{className:`size-3.5 text-warning`}),` Mark as read`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(g,{className:`size-3.5 fill-current text-primary`}),` Mark as unread`]})}),(0,$.jsxs)(mt,{onClick:n,className:`max-md:py-3`,children:[(0,$.jsx)(s,{className:`size-3.5`}),` Session debug info`]}),(0,$.jsxs)(mt,{onClick:r,className:`max-md:py-3`,children:[(0,$.jsx)(O,{className:`size-3.5`}),` Show logs for this chat`]})]})]})}function Bs({title:e,meta:t,onClose:n,onReload:r,reloading:i,error:a,onDismissError:o,cardCount:s,children:l,fallback:u,footer:d}){let[p,m]=(0,Q.useState)(!1),h=s||1,g=Math.ceil(Math.sqrt(h)),_=Math.ceil(h/g);return(0,$.jsxs)(`div`,{className:`relative border-b border-border bg-surface px-3 py-2.5 ${p?`fixed inset-0 z-50 flex flex-col gap-2.5 overflow-hidden`:`space-y-2.5 max-h-[350px] overflow-y-auto`}`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between shrink-0`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`text-xs font-semibold text-text-primary`,children:e}),t]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,$.jsxs)(Wt,{children:[(0,$.jsx)(Pt,{asChild:!0,children:(0,$.jsxs)(`button`,{onClick:()=>at(`accounts`),className:`flex items-center gap-1 text-[10px] text-text-subtle hover:text-text-primary px-1 cursor-pointer`,children:[`Manage accounts `,(0,$.jsx)(he,{className:`size-3`})]})}),(0,$.jsx)(yt,{side:`top`,children:`Add, remove or rotate accounts`})]}),s>0&&(0,$.jsxs)(Wt,{children:[(0,$.jsx)(Pt,{asChild:!0,children:(0,$.jsx)(`button`,{onClick:()=>m(e=>!e),className:`text-xs text-text-subtle hover:text-text-primary px-1 cursor-pointer`,"aria-label":p?`Exit fullscreen`:`Fullscreen view`,children:p?(0,$.jsx)(f,{className:`size-3`}):(0,$.jsx)(c,{className:`size-3`})})}),(0,$.jsx)(yt,{side:`top`,children:p?`Exit fullscreen`:`Fullscreen view`})]}),r&&(0,$.jsxs)(Wt,{children:[(0,$.jsx)(Pt,{asChild:!0,children:(0,$.jsx)(`button`,{onClick:r,disabled:i,className:`text-xs text-text-subtle hover:text-text-primary px-1 disabled:opacity-50 cursor-pointer`,"aria-label":`Refresh usage`,children:(0,$.jsx)(ge,{className:`size-3 ${i?`animate-spin`:``}`})})}),(0,$.jsx)(yt,{side:`top`,children:`Refresh`})]}),(0,$.jsx)(`button`,{onClick:()=>{m(!1),n()},className:`text-xs text-text-subtle hover:text-text-primary px-1 cursor-pointer`,"aria-label":`Close usage panel`,children:(0,$.jsx)(ue,{className:`size-3`})})]})]}),a&&(0,$.jsxs)(`div`,{className:`shrink-0 flex items-start gap-2 rounded border border-error/40 bg-error/10 px-2 py-1.5 text-[11px] text-error`,children:[(0,$.jsx)(`span`,{className:`flex-1`,children:a}),o&&(0,$.jsx)(`button`,{onClick:o,className:`shrink-0 text-error/70 hover:text-error cursor-pointer`,"aria-label":`Dismiss`,children:(0,$.jsx)(ue,{className:`size-3`})})]}),s>0?(0,$.jsx)(`div`,{className:p?`flex-1 min-h-0 grid gap-2 overflow-hidden`:`flex gap-2 overflow-x-auto pb-1 -mx-3 px-3 snap-x snap-mandatory scrollbar-thin`,style:p?{gridTemplateColumns:`repeat(${g}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${_}, minmax(0, 1fr))`}:void 0,children:l(p?`grid`:`strip`)}):u,d&&!p&&d]})}function Vs(e){return Math.round((e??0)*100)>=100}function Hs({usage:e,visible:t,onClose:n,onReload:r,loading:i,lastFetchedAt:a,onSelectAccount:o,selectedAccountId:s}){let[c,l]=(0,Q.useState)(null),{usages:u,accounts:d,activeAccountId:f,initialLoading:p,refreshing:m,flashIds:h,reload:g,toggle:_,togglingId:v}=Hn(t),[y,b]=(0,Q.useState)(null),[x,S]=(0,Q.useState)(null);if(!t)return null;let C=new Map(d.map(e=>[e.id,e]));function ee(e,t){if(e){if(e.status===`disabled`)return`Disabled`;if(e.reauthRequired)return`Sign in again to use this account`;if(!e.hasRefreshToken&&e.expiresAt&&e.expiresAt<Math.floor(Date.now()/1e3))return`Token expired — sign in again`}let n=t?.usage.session;if(Vs(n?.utilization))return`5-hour limit reached${n?.resetsAt?` — resets ${Xn(n)}`:``}`;let r=t?.usage.weekly;return Vs(r?.utilization)?`Weekly limit reached${r?.resetsAt?` — resets ${Xn(r)}`:``}`:null}async function w(e,t){b(await _(e,t))}async function te(e){if(!o)return;let t=ee(C.get(e),u.find(t=>t.accountId===e));if(t){b(`Cannot switch to this account — ${t.toLowerCase()}.`);return}l(e),b(null);try{b(await o(e,u.find(t=>t.accountId===e)?.accountLabel??null)??null)}finally{l(null)}}let ne=e.queryCostUsd!=null||e.totalCostUsd!=null;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Bs,{title:`Usage`,meta:a&&(0,$.jsx)(`span`,{className:`text-[10px] text-text-subtle`,children:Rn(new Date(a).getTime())}),onClose:n,onReload:r?()=>{r(),g()}:void 0,reloading:i||m,error:y,onDismissError:()=>b(null),cardCount:u.length,fallback:p?(0,$.jsx)(`p`,{className:`text-[10px] text-text-subtle`,children:`Loading...`}):e.session||e.weekly||e.weeklyOpus||e.weeklySonnet||e.weeklyScoped?.length?(0,$.jsxs)(`div`,{className:`space-y-2.5`,children:[(0,$.jsx)(Yn,{label:`5-Hour Session`,bucket:e.session}),(0,$.jsx)(Yn,{label:`Weekly`,bucket:e.weekly}),(0,$.jsx)(Yn,{label:`Weekly (Opus)`,bucket:e.weeklyOpus}),(0,$.jsx)(Yn,{label:`Weekly (Sonnet)`,bucket:e.weeklySonnet}),(0,$.jsx)(Bn,{buckets:e.weeklyScoped})]}):(0,$.jsx)(`p`,{className:`text-xs text-text-subtle`,children:`No usage data available`}),footer:ne?(0,$.jsxs)(`div`,{className:`border-t border-border pt-2 space-y-1`,children:[e.queryCostUsd!=null&&(0,$.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,$.jsx)(`span`,{className:`text-text-subtle`,children:`Last query`}),(0,$.jsxs)(`span`,{className:`text-text-primary font-medium tabular-nums`,children:[`$`,e.queryCostUsd.toFixed(4)]})]}),e.totalCostUsd!=null&&(0,$.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,$.jsx)(`span`,{className:`text-text-subtle`,children:`Session total`}),(0,$.jsxs)(`span`,{className:`text-text-primary font-medium tabular-nums`,children:[`$`,e.totalCostUsd.toFixed(4)]})]})]}):void 0,children:t=>u.map(n=>{let r=C.get(n.accountId);return(0,$.jsx)(Jn,{entry:n,isActive:n.accountId===(s??e.activeAccountId??f),accountInfo:r,flash:h.has(n.accountId),layout:t,onSelect:o?te:void 0,unselectableReason:ee(r,n),selecting:c===n.accountId,onToggle:w,toggling:v===n.accountId,onReauth:()=>S(n.accountLabel??n.accountId.slice(0,8))},n.accountId)})}),x&&(0,$.jsx)(zn,{open:!0,onOpenChange:e=>{e||S(null)},onSuccess:e=>{S(null),g(),e&&b(e)},signInAgainFor:x})]})}function Us(e){return Math.round((e??0)*100)>=100}function Ws(e,t){return{accountId:e.id,accountLabel:e.label,accountStatus:e.status??`active`,isOAuth:e.type!==`apiKey`,usage:{session:t.session,weekly:t.weekly}}}function Gs({onClose:e,usage:t,onReload:n,onSelectAccount:r,selectedAccountId:i}){let[a,o]=(0,Q.useState)([]),[s,c]=(0,Q.useState)({}),[l,u]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(null),[p,m]=(0,Q.useState)(null),[h,g]=(0,Q.useState)(null),_=(0,Q.useRef)(0),v=(0,Q.useRef)(!1),[y,b]=(0,Q.useState)(null),x=(0,Q.useCallback)(async()=>{if(v.current)return;let e=++_.current;u(!0);try{let t=await G.get(`/api/codex-accounts`);if(e!==_.current)return;o(t.accounts);let n=await G.get(`/api/codex-accounts/usage`);e===_.current&&c(n)}catch{}finally{e===_.current&&u(!1)}},[]);(0,Q.useEffect)(()=>{x();let e=setInterval(()=>{x()},12e4);return()=>{clearInterval(e),++_.current}},[x]);let S=(0,Q.useCallback)(async()=>{let e=++_.current;v.current=!0,u(!0);try{await n?.();let t=await G.get(`/api/codex-accounts/usage`);e===_.current&&c(t)}catch{}finally{v.current=!1,e===_.current&&u(!1)}},[n]),C=(0,Q.useCallback)((e,t)=>e.status===`disabled`?`Disabled`:e.signedOut?`Signed out — sign in again first`:Us(t.fiveHour)?`5-hour limit reached${t.session?.resetsAt?` — resets ${Xn(t.session)}`:``}`:Us(t.sevenDay)?`Weekly limit reached${t.weekly?.resetsAt?` — resets ${Xn(t.weekly)}`:``}`:null,[]),ee=(0,Q.useCallback)(async e=>{if(!r)return;let t=a.find(t=>t.id===e);if(!t)return;let n=C(t,s[e]??{});if(n){g(`Cannot switch to this account — ${n.toLowerCase()}.`);return}f(e),g(null);try{g(await r(e,t.label)??null)}finally{f(null)}},[r,a,s,C]),w=(0,Q.useCallback)(async(e,t)=>{m(e),g(null);try{await G.patch(`/api/codex-accounts/${e}`,{status:t===`disabled`?`active`:`disabled`}),o((await G.get(`/api/codex-accounts`)).accounts)}catch(e){g(e.message||`Could not change the account`)}finally{m(null)}},[]),te=(0,Q.useCallback)(async(e,t)=>{m(e),g(null);try{await G.patch(`/api/codex-accounts/${e}`,{dailyGuardEnabled:!t}),o((await G.get(`/api/codex-accounts`)).accounts)}catch(e){g(e.message||`Could not change Daily guard`)}finally{m(null)}},[]),ne=l&&a.length===0?(0,$.jsxs)(`div`,{className:`text-xs text-text-subtle flex items-center gap-2`,children:[(0,$.jsx)(I,{className:`size-3 animate-spin`}),` Loading…`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(Un,{active:!1,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`text-sm font-medium text-text-primary truncate flex-1 min-w-0`,children:t.activeAccountLabel||`Default login`}),(0,$.jsx)(`span`,{className:`text-[10px] uppercase tracking-wide text-text-subtle border border-border rounded px-1 shrink-0`,children:`~/.codex`})]}),(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(Yn,{label:`5-Hour Session`,bucket:t.session}),(0,$.jsx)(Yn,{label:`Weekly`,bucket:t.weekly}),!t.session&&!t.weekly&&(0,$.jsx)(`p`,{className:`text-xs text-text-subtle`,children:`No usage data yet`})]})]}),(0,$.jsxs)(`p`,{className:`text-[11px] text-text-subtle`,children:[`Using your default `,(0,$.jsx)(`code`,{children:`~/.codex`}),` login. Add managed accounts in Settings → AI Provider → Codex.`]})]});return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Bs,{title:`Codex Usage`,onClose:e,onReload:n?()=>void S():void 0,reloading:l,error:h,onDismissError:()=>g(null),cardCount:a.length,fallback:ne,children:e=>a.map(n=>{let a=s[n.id]??{},o=a.session==null?Gn(a.weekly):null;return(0,$.jsx)(Jn,{entry:Ws(n,a),isActive:n.id===(i??t.activeAccountId),layout:e,planLabel:Kn(n.planType),onSelect:r?ee:void 0,unselectableReason:C(n,a),selecting:d===n.id,onToggle:w,toggling:p===n.id,dailyGuard:o?{enabled:!!n.dailyGuardEnabled,state:o}:void 0,onDailyGuardToggle:o?()=>void te(n.id,!!n.dailyGuardEnabled):void 0,dailyGuardToggling:p===n.id,reauthHint:n.signedOut?Vn:void 0,resetCredits:a.resetCredits,resetCreditAction:(0,$.jsx)(qn,{account:n,usage:a,onDone:e=>{g(e),S()}}),onReauth:n.type===`chatgpt`?()=>b(n):void 0},n.id)})}),y&&(0,$.jsx)(Wn,{account:y,onClose:()=>b(null),onDone:()=>void x()})]})}var Ks={working:`working`,paused:`paused`,"no-transcript":`no session`};function qs({member:e,onOpen:t}){let n=e.workState===`working`,r=Ao(e),i=ko(e.startedAt,n?void 0:e.lastEventAt),a=Oo(e.agentType);return(0,$.jsxs)(`button`,{type:`button`,onClick:()=>t(e.name),className:`w-full text-left min-h-[44px] px-1.5 py-1 rounded-md hover:bg-surface-elevated transition-colors group`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-xs`,children:[n?(0,$.jsx)(I,{className:`size-3 shrink-0 animate-spin text-success`}):(0,$.jsx)(`span`,{className:K(`size-1.5 rounded-full shrink-0`,e.workState===`paused`?`bg-warning`:`bg-text-3`)}),(0,$.jsx)(`span`,{className:`font-medium truncate`,children:e.name}),a&&(0,$.jsx)(`span`,{className:`text-text-subtle text-[10px] truncate`,children:a}),e.model&&(0,$.jsxs)(`span`,{className:`text-text-subtle text-[10px]`,children:[`(`,e.model,`)`]}),(0,$.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 shrink-0 text-[10px] text-text-subtle`,children:[i&&(0,$.jsx)(`span`,{children:i}),(0,$.jsx)(`span`,{className:K(n&&`text-success`),children:Ks[e.workState]}),(0,$.jsx)(v,{className:`size-3 opacity-0 group-hover:opacity-100 transition-opacity`})]})]}),r&&(0,$.jsx)(`div`,{className:`mt-0.5 pl-5 text-[11px] text-text-subtle truncate font-mono`,children:r})]})}function Js({members:e,loading:t,onOpenMember:n,className:r}){return e.length===0?(0,$.jsx)(`div`,{className:K(`flex items-center justify-center gap-2 text-xs text-text-subtle py-4`,r),children:t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(I,{className:`size-3 animate-spin`}),`Reading member sessions…`]}):`No member sessions recorded`}):(0,$.jsx)(`div`,{className:K(`overflow-y-auto space-y-0.5`,r),children:e.map(e=>(0,$.jsx)(qs,{member:e,onOpen:n},e.name))})}var Ys=[`subject`,`summary`,`text`,`message`,`content`,`description`,`reason`,`feedback`],Xs=[`description`,`message`,`content`,`reason`,`feedback`],Zs=new Set([`type`,`taskId`,`task_id`,`assignedBy`,`assigned_by`,`timestamp`,`request_id`,`requestId`]),Qs=e=>typeof e==`string`?e.trim():e==null?``:String(e);function $s(e,t,n){for(let r of t){if(r===n)continue;let t=Qs(e[r]);if(t)return{key:r,value:t}}return null}function ec(e){return Object.entries(e).filter(([e,t])=>!Zs.has(e)&&Qs(t)).map(([e,t])=>`${e}: ${Qs(t)}`).join(` · `)}function tc(e,t){let n=Qs(t),r=Qs(e);if(!r)return{title:n};let i;try{i=JSON.parse(r)}catch{let[e,...t]=r.split(`
|
|
11
|
+
`),i=t.join(`
|
|
12
|
+
`).trim();return{title:n||Qs(e),...i?{detail:i}:{}}}if(!i||typeof i!=`object`||Array.isArray(i))return{title:n||r};let a=i,o=Qs(a.taskId)||Qs(a.task_id),s=$s(a,Ys),c=$s(a,Xs,s?.key);return{title:n||s?.value||ec(a)||Qs(a.type)||r,...c?{detail:c.value}:{},...o?{taskId:o}:{}}}function nc({messages:e,className:t}){let n=(0,Q.useRef)(null);return(0,Q.useEffect)(()=>{n.current?.scrollIntoView({behavior:`smooth`})},[e.length]),e.length===0?(0,$.jsx)(`p`,{className:K(`text-xs text-text-subtle text-center py-4`,t),children:`No messages yet`}):(0,$.jsx)(`div`,{className:K(`overflow-y-auto`,t),children:(0,$.jsxs)(`div`,{className:`space-y-2`,children:[e.map((e,t)=>{let n=e.parsedType?en[e.parsedType]:null,{title:r,detail:i,taskId:a}=tc(e.text,e.summary);return(0,$.jsxs)(`div`,{className:`text-xs`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1 text-text-subtle`,children:[(0,$.jsx)(`span`,{className:`font-medium`,style:ic(e.color),children:e.from}),(0,$.jsx)(`span`,{children:`→`}),(0,$.jsx)(`span`,{children:e.to}),(0,$.jsx)(`span`,{className:`ml-auto text-[10px]`,children:rc(e.timestamp)})]}),(0,$.jsxs)(`div`,{className:`mt-0.5 text-foreground/90 break-words`,children:[n&&(0,$.jsx)(`span`,{className:K(`inline-block px-1 py-0 rounded text-[9px] mr-1`,n.className),children:n.label}),a&&(0,$.jsxs)(`span`,{className:`inline-block px-1 py-0 rounded text-[9px] mr-1 bg-surface-elevated text-text-subtle`,children:[`#`,a]}),r]}),i&&(0,$.jsx)(`div`,{className:`mt-0.5 text-[11px] text-text-subtle break-words line-clamp-2`,children:i})]},`${e.timestamp}-${t}`)}),(0,$.jsx)(`div`,{ref:n})]})})}function rc(e){try{return new Date(e).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}catch{return``}}function ic(e){if(e&&(/^#[0-9a-fA-F]{3,8}$/.test(e)||/^[a-zA-Z]{3,20}$/.test(e)))return{color:e}}function ac(e,t){return e===t?`Team (current session)`:e}function oc({teamNames:e,messages:t,sessionId:n,projectName:r,providerId:i}){let[a,o]=(0,Q.useState)(e[0]??``),[s,c]=(0,Q.useState)(`members`),l=$t(),u=Et();(0,Q.useEffect)(()=>{e.length>0&&!e.includes(a)&&o(e[0])},[e,a]);let{members:d,outbound:f,loading:p,refresh:m}=Bo(a,!!a),h=(0,Q.useCallback)(e=>{n&&l({projectName:r??``,providerId:Gt(i),sessionId:n,source:{kind:`member`,teamName:a,memberName:e},title:`Session — ${e}`})},[l,a,r,i,n]),g=(0,Q.useMemo)(()=>{let e=f.map(e=>({from:e.from,to:e.to,text:e.text,timestamp:e.timestamp,...e.summary?{summary:e.summary}:{}}));return[...t,...e].sort((e,t)=>new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime()).slice(-200)},[t,f]),_=d.filter(e=>e.workState===`working`).length,v=e=>K(`flex items-center gap-1.5 px-2.5 rounded-md text-[11px] whitespace-nowrap transition-colors`,u?`min-h-[44px]`:`py-1`,e?`bg-primary/10 text-primary font-medium`:`text-text-subtle hover:text-text-primary`);return(0,$.jsxs)(`div`,{className:`flex flex-col min-h-0`,children:[e.length>1&&(0,$.jsx)(`div`,{className:`flex items-center gap-1 overflow-x-auto min-w-0 mb-1.5`,children:e.map(e=>(0,$.jsx)(`button`,{onClick:()=>o(e),className:K(`px-2 py-0.5 text-[11px] rounded-md whitespace-nowrap transition-colors`,a===e?`bg-primary/10 text-primary font-medium`:`text-text-subtle hover:text-text-primary`),children:ac(e,n)},e))}),(0,$.jsxs)(`div`,{className:`flex items-center gap-1 mb-1.5 shrink-0`,role:`tablist`,children:[(0,$.jsxs)(`button`,{role:`tab`,"aria-selected":s===`members`,onClick:()=>c(`members`),className:v(s===`members`),children:[(0,$.jsx)(`span`,{children:`Members`}),(0,$.jsx)(`span`,{className:`text-text-subtle`,children:d.length}),_>0&&(0,$.jsxs)(`span`,{className:`flex items-center gap-1 text-success`,children:[(0,$.jsx)(`span`,{className:`size-1.5 rounded-full bg-success animate-pulse`}),_]})]}),(0,$.jsxs)(`button`,{role:`tab`,"aria-selected":s===`messages`,onClick:()=>c(`messages`),className:v(s===`messages`),children:[(0,$.jsx)(`span`,{children:`Messages`}),(0,$.jsx)(`span`,{className:`text-text-subtle`,children:g.length})]}),(0,$.jsx)(`button`,{onClick:m,className:K(`ml-auto text-text-subtle hover:text-foreground shrink-0`,u?`p-3`:`p-1`),"aria-label":`Refresh`,children:(0,$.jsx)(ge,{className:K(`size-3`,p&&`animate-spin`)})})]}),s===`members`?(0,$.jsx)(Js,{members:d,loading:p,onOpenMember:h,className:`max-h-56`}):(0,$.jsx)(nc,{messages:g,className:`max-h-56`})]})}function sc(e){return e>=90?`text-error`:e>=70?`text-warning`:`text-success`}function cc({tabId:e,projectName:t,usageInfo:n,usageLoading:r,refreshUsage:i,lastFetchedAt:o,sessionId:s,providerId:c,pickedAccountLabel:l,pickedAccountId:u,onSelectAccount:d,onSelectSession:f,historyFilter:p,isConnected:m,onReload:h,teamActivity:g,teamMessages:v,onTeamOpen:y}){let[b,x]=(0,Q.useState)(null),S=qe(t),C=S?Ne(S):null,ee=q(e=>(C?e.byProject[C]?.sessions:void 0)??Ge),w=q(e=>(C?e.byProject[C]?.hasMore:void 0)??!1),te=q(e=>(C?e.byProject[C]?.isSyncing:void 0)??!1),ne=q(e=>(C?e.byProject[C]?.tags:void 0)??null);(0,Q.useEffect)(()=>{S&&q.getState().ensure(S)},[S]);let[re,T]=(0,Q.useState)([]),[ae,oe]=(0,Q.useState)(null),[se,E]=(0,Q.useState)(null),[ce,le]=(0,Q.useState)(!1),O=At(e=>e.notifications),de=At(e=>s?e.notifications.has(s):!1),pe=At(e=>e.clearForSession),me=At(e=>e.markUnread),[k,he]=(0,Q.useState)(``),A=Ct(k,300),[j,M]=(0,Q.useState)(null),[N,ye]=(0,Q.useState)(``),[be,xe]=(0,Q.useState)(!1),[Se,P]=(0,Q.useState)(null),[F,L]=(0,Q.useState)(!1),[ke,R]=(0,Q.useState)(!1),Ae=(0,Q.useRef)(null),je=A?se??[]:ee,z=We([...je,...re]),B=ae??(A?!1:w),V=ce||!A&&te,H=ne?.tags??[],W=ne?.counts??{},Me=e=>{x(t=>t===e?null:e)},Pe=(0,Q.useCallback)(async e=>{if(t){if(T([]),oe(null),!e){E(null),S&&await q.getState().sync(S);return}le(!0);try{let n=new URLSearchParams({limit:`50`,offset:`0`,q:e}),r=await G.get(`${U(t)}/chat/sessions?${n}`);E(r.sessions),oe(r.hasMore)}catch{}finally{le(!1)}}},[t,S]),Fe=(0,Q.useCallback)(async()=>{if(!(!t||be||!B)){xe(!0);try{let e=z.filter(e=>!e.pinned).length,n=new URLSearchParams({limit:`50`,offset:String(e)});A&&n.set(`q`,A);let r=await G.get(`${U(t)}/chat/sessions?${n}`);T(e=>{let t=new Set([...je,...e].map(e=>e.id));return[...e,...r.sessions.filter(e=>!t.has(e.id))]}),oe(r.hasMore)}catch{}finally{xe(!1)}}},[t,be,B,z,A,je]);(0,Q.useEffect)(()=>{b===`history`&&Pe(A||void 0)},[A]);let Ie=(0,Q.useCallback)(async()=>{S&&await q.getState().refreshTags(S)},[S]);function Le(n){e&&window.dispatchEvent(new CustomEvent(`ppm:onboarding-evidence`,{detail:{type:`history-opened`,projectName:t,tabId:e,sessionId:n.id,visible:!document.hidden&&Object.values(Be.getState().panels).some(t=>t.activeTabId===e)}}));let r=p?n.designSlug===p:!n.designSlug;f&&r?(f(n),x(null)):(It(n,t),x(null))}let Re=(0,Q.useCallback)((e,t)=>{t.stopPropagation(),M(e.id),ye(e.title||``),setTimeout(()=>Ae.current?.select(),0)},[]),ze=(0,Q.useCallback)(async()=>{if(!j||!N.trim()||!t){M(null);return}let e=N.trim(),n=j,r=S??Ye(t);q.getState().renameSession(r,n,e),T(t=>Ue(t,n,e)),E(t=>t&&Ue(t,n,e)),M(null),await He(r,()=>G.patch(`${U(t)}/chat/sessions/${n}`,{title:e}))||Pe(A||void 0)},[j,N,t,S,Pe,A]),Ve=(0,Q.useCallback)(()=>M(null),[]),Ze=(0,Q.useCallback)(async(e,n)=>{if(e.stopPropagation(),!t)return;let r=`${U(t)}/chat/sessions/${n.id}/pin`,i=!n.pinned,a=S??Ye(t);q.getState().setPinned(a,n.id,i),T(e=>Ke(e,n.id,i)),E(e=>e&&Ke(e,n.id,i)),await He(a,()=>i?G.put(r):G.del(r))||Pe(A||void 0)},[t,S,Pe,A]),$e=(0,Q.useCallback)(async(e,n)=>{if(e.stopPropagation(),!t||!window.confirm(`Delete this session? This cannot be undone.`))return;let r=S??Ye(t);q.getState().removeSession(r,n.id),T(e=>Je(e,n.id)),E(e=>e&&Je(e,n.id)),await He(r,()=>G.del(`${U(t)}/chat/sessions/${n.id}?providerId=${n.providerId}`))||Pe(A||void 0)},[t,S,Pe,A]),et=(0,Q.useCallback)((e,n)=>{let r=S??(t?Ye(t):null);r&&q.getState().setSessionTag(r,e,n),T(t=>Xe(t,e,n)),E(t=>t&&Xe(t,e,n)),Ie()},[Ie,S,t]),tt=(0,Q.useCallback)(async()=>{if(!t)return;let e=window.prompt(`Delete sessions older than how many days? (pinned sessions are kept)`,`30`);if(!e)return;let n=parseInt(e,10);if(!n||n<1||!window.confirm(`Delete all unpinned sessions older than ${n} days? This cannot be undone.`))return;le(!0);let r=S??Ye(t);q.getState().removeOlderThan(r,n),await He(r,()=>G.del(`${U(t)}/chat/sessions?olderThanDays=${n}`)),await Pe(A||void 0),le(!1)},[t,S,Pe,A]);(0,Q.useEffect)(()=>{if(b!==`history`)return;let e=e=>{if(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement)return;let n=parseInt(e.key);if(n>=1&&n<=H.length&&s){let e=H[n-1];e&&(et(s,{id:e.id,name:e.name,color:e.color}),He(Ye(t),()=>G.patch(`${U(t)}/chat/sessions/${s}/tag`,{tagId:e.id})))}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[b,H,s,t,et]);let J=p?z.filter(e=>e.designSlug===p):z,nt=Se===null?J:J.filter(e=>e.tag?.id===Se),rt=!c||c===`claude`,it=c===`codex`,Y=!u||u===n.activeAccountId,at=Y&&n.fiveHour!=null?Math.round(n.fiveHour*100):null,ot=Y&&n.sevenDay!=null?Math.round(n.sevenDay*100):null,st=at!=null||ot!=null?sc(Math.max(at??0,ot??0)):`text-text-subtle`,ct=l??(Y?n.activeAccountLabel:null)??null;return(0,$.jsxs)(`div`,{className:`border-b border-border/50`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-1 overflow-x-auto scrollbar-none`,children:[(0,$.jsxs)(`button`,{"data-onboarding":`chat-history`,onClick:()=>Me(`history`),className:`shrink-0 flex items-center gap-1 px-1.5 py-0.5 rounded text-[11px] transition-colors ${b===`history`?`text-primary bg-primary/10`:`text-text-secondary hover:text-foreground hover:bg-surface-elevated`}`,children:[(0,$.jsx)(fe,{className:`size-3`}),(0,$.jsx)(`span`,{children:`History`})]}),s&&c&&c!==`mock`?(0,$.jsxs)(`button`,{onClick:()=>Me(`config`),className:`shrink-0 flex items-center gap-1 px-1.5 py-0.5 rounded text-[11px] transition-colors ${b===`config`?`text-primary bg-primary/10`:`text-text-secondary hover:text-foreground hover:bg-surface-elevated`}`,title:`AI Settings`,children:[(0,$.jsx)(xt,{providerId:c}),(0,$.jsx)(`span`,{className:`capitalize`,children:c})]}):(0,$.jsx)(`button`,{onClick:()=>Me(`config`),className:`shrink-0 p-1 rounded transition-colors ${b===`config`?`text-primary bg-primary/10`:`text-text-subtle hover:text-text-secondary hover:bg-surface-elevated`}`,title:`AI Settings`,children:(0,$.jsx)(De,{className:`size-3`})}),rt||it?(0,$.jsxs)(`button`,{onClick:()=>Me(`usage`),className:`shrink-0 flex items-center gap-1 px-1.5 py-0.5 rounded text-[11px] font-medium tabular-nums transition-colors hover:bg-surface-elevated ${b===`usage`?`bg-primary/10`:``} ${st}`,title:`Usage limits`,children:[(0,$.jsx)(Ce,{className:`size-3`}),ct&&(0,$.jsxs)(`span`,{className:`text-text-secondary font-normal truncate max-w-[110px]`,title:ct,children:[`[`,ct,`]`]}),(0,$.jsxs)(`span`,{children:[`5h:`,at==null?`--%`:`${at}%`]}),(0,$.jsx)(`span`,{className:`text-text-subtle`,children:`·`}),(0,$.jsxs)(`span`,{children:[`Wk:`,ot==null?`--%`:`${ot}%`]})]}):null,g?.hasTeams&&(0,$.jsxs)(`button`,{onClick:()=>{Me(`team`),y?.()},className:`shrink-0 relative flex items-center gap-1 px-1.5 py-0.5 rounded text-[11px] transition-colors ${b===`team`?`text-primary bg-primary/10`:`text-text-secondary hover:text-foreground hover:bg-surface-elevated`}`,title:`Team activity`,children:[(0,$.jsx)(we,{className:`size-3`}),(0,$.jsx)(`span`,{children:`Team`}),(g.unreadCount??0)>0&&(0,$.jsx)(`span`,{className:`absolute -top-0.5 -right-0.5 size-2 bg-primary rounded-full animate-pulse`})]})]}),(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 pl-1`,children:[h&&(0,$.jsxs)(`button`,{onClick:e=>{let t=e.currentTarget.querySelector(`svg`);t&&(t.classList.add(`animate-spin`),setTimeout(()=>t.classList.remove(`animate-spin`),600)),h()},className:`relative size-4 flex items-center justify-center`,title:m?`Reload messages`:`Disconnected — click to reload`,children:[(0,$.jsx)(ge,{className:`size-3 ${m?`text-muted-foreground/60`:`text-error`}`,strokeWidth:2.5}),(0,$.jsx)(`span`,{className:`absolute -top-0.5 -right-0.5 size-1.5 rounded-full ${m?`bg-success`:`bg-error animate-pulse`}`})]}),s&&(0,$.jsx)(zs,{hasUnread:de,onToggleUnread:()=>de?pe(s):me(s,t),onOpenDebug:()=>R(!0),onShowLogs:()=>Bt({chat:s})})]})]}),s&&(0,$.jsx)(Rs,{sessionId:s,projectName:t,open:ke,onOpenChange:R}),b===`history`&&(0,$.jsxs)(`div`,{className:`border-t border-border/30 bg-surface`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5 px-2 py-1 border-b border-border/30`,children:[(0,$.jsx)(Oe,{className:`size-3 text-text-subtle shrink-0`}),(0,$.jsx)(`input`,{type:`text`,value:k,onChange:e=>he(e.target.value),placeholder:`Search sessions...`,className:`flex-1 bg-transparent text-[11px] text-text-primary outline-none placeholder:text-text-subtle`}),(0,$.jsx)(`button`,{onClick:tt,className:`p-0.5 rounded text-text-subtle hover:text-error transition-colors`,title:`Delete old sessions...`,children:(0,$.jsx)(ve,{className:`size-3`})}),(0,$.jsx)(`button`,{onClick:()=>Pe(A||void 0),disabled:V,className:`p-0.5 rounded text-text-subtle hover:text-text-secondary transition-colors disabled:opacity-50`,title:`Refresh`,children:(0,$.jsx)(ge,{className:`size-3 ${V?`animate-spin`:``}`})})]}),H.length>0&&(0,$.jsxs)(`div`,{className:`flex items-center gap-1 px-2 py-1 overflow-x-auto border-b border-border/30 scrollbar-none`,children:[(0,$.jsxs)(`button`,{onClick:()=>P(null),className:`shrink-0 rounded-md border px-2 py-1 text-[10px] transition-colors ${Se===null?`bg-primary/20 border-primary text-primary`:`border-border bg-surface text-text-secondary`}`,children:[`All (`,J.length,`)`]}),H.map(e=>(0,$.jsxs)(`button`,{onClick:()=>P(Se===e.id?null:e.id),className:`shrink-0 flex items-center gap-1 rounded-md border px-2 py-1 text-[10px] transition-colors ${Se===e.id?`border-current`:`border-border bg-surface`}`,style:Se===e.id?{backgroundColor:e.color+`20`,color:e.color,borderColor:e.color}:void 0,children:[(0,$.jsx)(`span`,{className:`size-2 rounded-full shrink-0`,style:{backgroundColor:e.color}}),e.name,` (`,W[e.id]??0,`)`]},e.id)),(0,$.jsx)(`button`,{onClick:()=>L(!F),className:`shrink-0 p-1 rounded transition-colors ${F?`text-primary bg-primary/10`:`text-text-subtle hover:text-text-secondary`}`,title:`Manage tags`,children:(0,$.jsx)(ie,{className:`size-3`})})]}),F&&(0,$.jsx)(`div`,{className:`border-b border-border/30 px-2 py-2 max-h-[180px] overflow-y-auto bg-surface-elevated/50`,children:(0,$.jsx)(Lt,{projectName:t,onTagsChanged:Ie})}),(0,$.jsx)(`div`,{className:`max-h-[200px] overflow-y-auto`,children:V&&J.length===0?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-3`,children:(0,$.jsx)(I,{className:`size-3.5 animate-spin text-text-subtle`})}):nt.length===0?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-3 text-[11px] text-text-subtle`,children:k?`No matching sessions`:`No sessions yet`}):(0,$.jsxs)($.Fragment,{children:[nt.map(e=>{let n=O.get(e.id),r=!!n;return(0,$.jsx)(Ot,{session:e,projectName:t,projectTags:H,onTogglePin:Ze,onStartEditing:Re,onDeleteSession:$e,onTagChanged:et,children:(0,$.jsxs)(`div`,{"data-onboarding":`chat-history-session`,className:K(`flex items-center gap-2 w-full px-3 py-1.5 text-left hover:bg-surface-elevated transition-colors group`,r&&`font-medium text-foreground`,r&&Z(n.type),!r&&`text-text-secondary`),children:[(0,$.jsx)(xt,{providerId:e.providerId}),e.tag&&(0,$.jsx)(`span`,{className:`size-2 rounded-full shrink-0`,style:{backgroundColor:e.tag.color},title:e.tag.name}),j===e.id?(0,$.jsxs)(`form`,{className:`flex items-center gap-1 flex-1 min-w-0`,onSubmit:e=>{e.preventDefault(),ze()},children:[(0,$.jsx)(`input`,{ref:Ae,value:N,onChange:e=>ye(e.target.value),onBlur:ze,onKeyDown:e=>{e.key===`Escape`&&Ve()},className:`flex-1 min-w-0 bg-surface-elevated text-[11px] text-text-primary px-1 py-0.5 rounded border border-border outline-none focus:border-primary`,autoFocus:!0}),(0,$.jsx)(`button`,{type:`submit`,className:`p-0.5 text-success hover:text-success/80`,onClick:e=>e.stopPropagation(),children:(0,$.jsx)(a,{className:`size-3`})}),(0,$.jsx)(`button`,{type:`button`,className:`p-0.5 text-text-subtle hover:text-text-secondary`,onClick:e=>{e.stopPropagation(),Ve()},children:(0,$.jsx)(ue,{className:`size-3`})})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`button`,{onClick:()=>Le(e),className:`text-[11px] truncate flex-1 text-left flex items-center gap-1`,children:[e.title?.startsWith(`[PPM]`)&&(0,$.jsx)(Ee,{className:`size-3 text-muted-foreground shrink-0`}),e.title?.startsWith(`[PPM]`)?e.title.slice(7):e.title||`Untitled`]}),(0,$.jsx)(`button`,{onClick:t=>Ze(t,e),className:`p-0.5 rounded transition-all ${e.pinned?`text-primary hover:text-primary/70`:`text-text-subtle hover:text-text-secondary can-hover:opacity-0 can-hover:group-hover:opacity-100`}`,title:e.pinned?`Unpin session`:`Pin session`,children:e.pinned?(0,$.jsx)(D,{className:`size-3`}):(0,$.jsx)(_e,{className:`size-3`})}),(0,$.jsx)(`button`,{onClick:t=>Re(e,t),className:`p-0.5 rounded text-text-subtle hover:text-text-secondary can-hover:opacity-0 can-hover:group-hover:opacity-100 transition-opacity`,title:`Rename session`,children:(0,$.jsx)(Te,{className:`size-3`})}),(0,$.jsx)(`button`,{onClick:t=>$e(t,e),className:`p-0.5 rounded text-text-subtle hover:text-error hover:bg-error/20 can-hover:opacity-0 can-hover:group-hover:opacity-100 transition-opacity`,title:`Delete session`,children:(0,$.jsx)(_,{className:`size-3`})})]}),j!==e.id&&e.updatedAt&&(0,$.jsx)(`span`,{className:`text-[10px] text-text-subtle shrink-0 w-16 text-right`,children:Qe(e.updatedAt)})]})},e.id)}),B&&(0,$.jsxs)(`button`,{onClick:Fe,disabled:be,className:`flex items-center justify-center gap-1 w-full py-1.5 text-[11px] text-text-subtle hover:text-text-secondary hover:bg-surface-elevated transition-colors`,children:[be?(0,$.jsx)(I,{className:`size-3 animate-spin`}):null,be?`Loading...`:`Load more`]})]})})]}),b===`config`&&(0,$.jsx)(`div`,{className:`border-t border-border/30 bg-surface px-3 py-2 max-h-[280px] overflow-y-auto`,children:(0,$.jsx)(Ln,{compact:!0})}),b===`team`&&g?.hasTeams&&(0,$.jsx)(`div`,{className:`border-t border-border/30 bg-surface px-3 py-2`,children:(0,$.jsx)(oc,{teamNames:g.teamNames,messages:v??[],sessionId:s,projectName:t,providerId:c})}),b===`usage`&&rt&&(0,$.jsx)(Hs,{usage:n,onSelectAccount:d,selectedAccountId:u??n.activeAccountId??null,visible:!0,onClose:()=>x(null),onReload:i,loading:r,lastFetchedAt:o}),b===`usage`&&it&&(0,$.jsx)(Gs,{usage:n,onClose:()=>x(null),onReload:i,onSelectAccount:d,selectedAccountId:u??n.activeAccountId??null})]})}var lc=(0,Q.createContext)({pending:!1,prepare:()=>Promise.reject(Error(`Chat preparation is unavailable.`))});function uc(){return(0,Q.useContext)(lc)}function dc({tabId:e,metadata:t,children:n}){let[r,i]=(0,Q.useState)(),[a,o]=(0,Q.useState)(null),s=(0,Q.useRef)(t);s.current=t;let c=(0,Q.useRef)(!0),l=(0,Q.useRef)(null),u=t.providerPending===!0,d=(0,Q.useCallback)(()=>Be.getState().getPanelForTab(e)?.tabs.find(t=>t.id===e)?.metadata??s.current,[e]),f=(0,Q.useCallback)((t,n)=>{let r=d();if(!r.providerPending&&typeof r.providerId==`string`)return{providerId:r.providerId,permissionMode:r.permissionMode};let i=r.permissionMode,a={providerId:t,permissionMode:i??n.providers[t]?.permission_mode??`bypassPermissions`},o={...r,...a,providerPending:void 0,focusedProviderOnOpen:void 0,...i?{}:{permissionModeSource:`cache`}};return s.current=o,Be.getState().updateTab(e,{metadata:o}),a},[d,e]),p=(0,Q.useCallback)(()=>{let t=d();if(!t.providerPending)return typeof t.providerId==`string`&&t.providerId?Promise.resolve({providerId:t.providerId,permissionMode:t.permissionMode}):Promise.reject(Error(`Choose a provider for this chat.`));if(l.current)return l.current;i(void 0),o(null);let n=t.projectName,r=tt(),a=t.focusedProviderOnOpen,s=()=>Promise.all([et(n),n?$e(n):Promise.resolve(null)]).then(([e,t])=>({settings:e,providers:t,providerId:Re(e,a)})),u=Rr(e),p=(u?u.then(e=>({settings:e.settings,providers:e.providers,providerId:e.resolvedProviderId})).catch(s):s()).then(({settings:e,providers:t,providerId:n})=>{if(!c.current)throw Error(`Chat was closed.`);if(r!==tt())throw Error(`Chat settings changed. Please retry.`);let i=d();if(!i.providerPending&&typeof i.providerId==`string`)return{providerId:i.providerId,permissionMode:i.permissionMode};if(t&&!t.some(e=>e.id===n))throw o({provider:n,settings:e,alternatives:t}),Error(`${n} is not available. Choose a provider for this chat.`);return f(n,e)}).catch(e=>{throw c.current&&i(e instanceof Error?e.message:`Could not load chat settings.`),e}).finally(()=>{l.current===p&&(l.current=null)});return l.current=p,p},[d,f,e]);(0,Q.useEffect)(()=>(c.current=!0,()=>{c.current=!1}),[]),(0,Q.useEffect)(()=>{u&&p().catch(()=>{})},[u,p]),(0,Q.useLayoutEffect)(()=>{let e=d();if(!e.providerPending)return;let t=e.projectName;if(!t)return;let n=Me();if(!n)return;let r=B(Ne(Ye(t))),i=Re(n,e.focusedProviderOnOpen);r?.some(e=>e.id===i)&&f(i,n)},[]);let m=()=>{J(),p().catch(()=>{})};return(0,$.jsx)(lc.Provider,{value:{pending:u,providerId:t.providerId,permissionMode:t.permissionMode,prepare:p},children:(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[u&&(0,$.jsx)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2 px-3 py-1 text-xs text-muted-foreground`,role:`status`,children:a?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`span`,{children:[a.provider,` is not available. Choose a provider for this chat.`]}),a.alternatives.map(e=>(0,$.jsxs)(`button`,{className:`text-primary underline`,onClick:()=>f(e.id,a.settings),children:[`Use `,e.name]},e.id)),(0,$.jsx)(`button`,{className:`text-primary underline`,onClick:m,children:`Check again`})]}):r?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`span`,{children:[`Could not load chat settings. `,r]}),(0,$.jsx)(`button`,{className:`text-primary underline`,onClick:m,children:`Retry`})]}):`Preparing chat…`}),(0,$.jsx)(`div`,{className:`min-h-0 flex-1`,children:n})]})})}var fc=3e3;function pc(e,t,n){let r=(0,Q.useCallback)(t=>`ppm-chat-draft:${JSON.stringify([e,n??null,t??`__new__`])}`,[e,n]),i=r(t),a=e=>{try{let t=JSON.parse(sessionStorage.getItem(e)??`null`);return typeof t?.content!=`string`||!Array.isArray(t.attachments)?null:{...sn(t.content),attachments:t.attachments.filter(e=>typeof e?.name==`string`&&typeof e?.path==`string`)}}catch{return null}},[o]=(0,Q.useState)(()=>a(i)),s=(0,Q.useRef)({projectName:e,sessionId:t,draft:o}),c=(0,Q.useRef)(i);c.current=i;let[l,u]=(0,Q.useState)(o),[d,f]=(0,Q.useState)(i),[p,m]=(0,Q.useState)(!0),h=(0,Q.useRef)(void 0),g=(0,Q.useRef)(t),_=(0,Q.useRef)(0);g.current=t;let v=t??`__new__`;(0,Q.useEffect)(()=>{if(!e){m(!1);return}let r=!1,o=_.current;(s.current.projectName!==e||s.current.sessionId!==t)&&(s.current={projectName:e,sessionId:t,draft:a(i)});let c=s.current.draft!==null;m(!0),d!==i&&(u(s.current.draft),f(i));let l=setTimeout(()=>{r||m(!1)},fc),p=()=>G.get(`${U(e)}/chat/drafts/${encodeURIComponent(v)}`),h=t===null&&n?Rr(n):void 0;return(h?h.then(e=>e.draft,p):p()).then(e=>{if(!(r||c||_.current!==o))if(e){let t=[];try{t=JSON.parse(e.attachments)}catch{}u({...sn(e.content),attachments:t})}else u(null)}).catch(()=>{!r&&!c&&_.current===o&&u(null)}).finally(()=>{clearTimeout(l),r||m(!1)}),()=>{r=!0,clearTimeout(l)}},[e,v,n,t]);let y=(0,Q.useCallback)((t,n,r)=>{let i=cn(t,r);if(++_.current,s.current.draft=null,!e)return;try{sessionStorage.setItem(c.current,JSON.stringify({content:i,attachments:n??[]}))}catch{}h.current&&clearTimeout(h.current);let a=g.current??`__new__`;h.current=setTimeout(()=>{G.put(`${U(e)}/chat/drafts/${encodeURIComponent(a)}`,{content:i,attachments:JSON.stringify(n??[])}).catch(()=>{})},1e3)},[e]),b=(0,Q.useCallback)(()=>{h.current&&clearTimeout(h.current),h.current=void 0},[]),x=(0,Q.useCallback)(e=>{let t=c.current,n=r(e);if(t!==n)try{let e=sessionStorage.getItem(t);e!==null&&(sessionStorage.setItem(n,e),sessionStorage.removeItem(t))}catch{}},[r]),S=(0,Q.useCallback)(t=>{if(++_.current,!e)return;s.current.draft=null;try{sessionStorage.removeItem(c.current),t&&sessionStorage.removeItem(r(t===`__new__`?null:t))}catch{}h.current&&clearTimeout(h.current);let n=t??g.current??`__new__`;G.del(`${U(e)}/chat/drafts/${encodeURIComponent(n)}`).catch(()=>{}),u(null)},[e,r]);return(0,Q.useEffect)(()=>()=>{h.current&&clearTimeout(h.current)},[]),{draft:d===i?l:null,draftLoading:p||d!==i,saveDraft:y,clearDraft:S,cancelPendingSave:b,moveDraft:x}}var mc=3e4,hc=45e3;function gc(e){let{metadata:t,tabId:n}=e;return n&&t?(0,$.jsx)(dc,{tabId:n,metadata:t,children:(0,$.jsx)(_c,{...e})}):(0,$.jsx)(_c,{...e})}function _c({metadata:e,tabId:t,onNewSession:n,onFork:r,historyFilter:i}){let a=uc(),o=(0,Q.useRef)(e);o.current=e;let s=typeof e?.designSlug==`string`&&e.designSlug?e.designSlug:void 0,[c,l]=(0,Q.useState)(e?.sessionId??null),u=(0,Q.useRef)(c);u.current=c;let d=(0,Q.useRef)(()=>{}),f=(0,Q.useCallback)(e=>{let t=o.current?.projectName;u.current&&t&&q.getState().replaceSessionId(Ye(t),u.current,e),u.current&&d.current(u.current,e),l(e)},[]),[p,m]=(0,Q.useState)(e?.providerId??`claude`),h=!c&&a.providerId?a.providerId:p,[g,_]=(0,Q.useState)([]),[v,y]=(0,Q.useState)(!1),[b,x]=(0,Q.useState)(``),[S,C]=(0,Q.useState)(null),[ee,w]=(0,Q.useState)([]),[te,ne]=(0,Q.useState)([]),[re,T]=(0,Q.useState)(!1),[ie,ae]=(0,Q.useState)(``),[oe,E]=(0,Q.useState)(null),[D,ce]=(0,Q.useState)(e?.permissionMode??void 0),le=(0,Q.useRef)(!1),O=(0,Q.useCallback)(()=>{if(le.current)return!1;let e=(t?pt(t):void 0)??o.current;return!e?.permissionMode||e.permissionModeSource===`cache`},[t]),de=(0,Q.useCallback)(e=>{le.current=!0,ce(e),t&&X(t,{permissionMode:e,permissionModeSource:`user`})},[t]);(0,Q.useEffect)(()=>{!a?.pending&&!c&&e?.providerId&&(m(e.providerId),ce(e.permissionMode))},[a?.pending,e?.providerId,e?.permissionMode,c]);let fe=(0,Q.useRef)(null),pe=(0,Q.useRef)(null),[me,k]=(0,Q.useState)(!1),[he,ge]=(0,Q.useState)(null),[_e,A]=(0,Q.useState)(null),[ve,j]=(0,Q.useState)(null),M=(0,Q.useRef)(0),N=e?.projectName??``;(0,Q.useState)(()=>{if(!t||c||!N||zr(t))return null;let n=e?.providerPending===!0,r=n?void 0:e?.providerId,i=typeof e?.pickedAccountId==`string`?e.pickedAccountProvider:void 0;return Lr(t,Ye(N),{...n?{focusedProvider:e?.focusedProviderOnOpen}:{providerId:r},skipPick:i!==void 0&&(n||i===r)}),null}),(0,Q.useEffect)(()=>{t&&c&&Vr(t)},[t,c]),(0,Q.useEffect)(()=>{if(!t||c)return;let e=Rr(t);if(!e)return;let n=!1;return e.then(e=>{if(n||!O())return;let r=e.settings.providers[e.providerId]?.permission_mode??`bypassPermissions`;r!==o.current?.permissionMode&&(ce(r),X(t,{permissionMode:r,permissionModeSource:`cache`}))}).catch(()=>{}),()=>{n=!0}},[t,c,O]),Qr({tabId:t,sessionId:c,designSlug:s,projectName:N,providerId:h});let ye=Ze(e=>e.updateTab),{usageInfo:be,usageLoading:xe,lastFetchedAt:Se,refreshUsage:Ce,reloadUsage:we}=Zr(N,h,c??void 0,e?.pickedAccountProvider===h?e?.pickedAccountId:void 0,!a?.pending,t),{draft:Te,draftLoading:P,saveDraft:F,clearDraft:Ee,cancelPendingSave:De,moveDraft:Oe}=pc(N,c,t),L=JSON.stringify([N,c,h]),[ke,R]=(0,Q.useState)(()=>{let t=sn(e?.pendingMessage??``).replyTo;return t&&c?{owner:L,reply:{...t,sessionId:c}}:null}),Ae=ke?.owner===L?ke.reply:Te?.replyTo??null,je=Ae?.sessionId===c&&Ae.providerId===h?Ae:null,z=(0,Q.useRef)(je);z.current=je;let[B,V]=(0,Q.useState)(0),W=(0,Q.useRef)({owner:L,text:``}),Me=(0,Q.useRef)(()=>{}),Ne=(0,Q.useMemo)(()=>({onMessageRejected:e=>Me.current(e)}),[]),Pe=(0,Q.useCallback)(e=>{z.current=e,R({owner:L,reply:e}),V(e=>e+1)},[L]),K=(0,Q.useCallback)(e=>Pe(e),[Pe]),Ie=(0,Q.useCallback)(()=>Pe(null),[Pe]);d.current=(e,t)=>{if(e===t)return;let n=z.current,r=n?.sessionId===e?{...n,sessionId:t}:n,i=JSON.stringify([N,t,h]),a=W.current;a.owner===L&&(a.text||a.attachments?.length||r)&&(F(a.observed?a.text:Te?.content??a.text,a.attachments??Te?.attachments,r),De()),Oe(t),z.current=r,R({owner:i,reply:r}),W.current={...a,owner:i}},(0,Q.useEffect)(()=>{if(!t||!c)return;let e=pt(t)?.permissionModeSource===`user`?`user`:`inherited`;X(t,{sessionId:c,providerId:h,permissionMode:D,permissionModeSource:D?e:void 0,pickedAccountId:void 0,pickedAccountLabel:void 0,pickedAccountProvider:void 0})},[c,h,D]);let Le=(0,Q.useCallback)(e=>{m(e),t&&X(t,{providerId:e})},[t]),Re=e?.pickedAccountId,ze=e?.pickedAccountLabel,Ve=e?.pickedAccountProvider,He=!!Re&&Ve===h,Ue=Mr(t,h,!c&&!a?.pending&&!He),We=(0,Q.useCallback)(async(e,n)=>{if(c){try{await G.put(`${U(N)}/chat/sessions/${c}/account`,{accountId:e}),Ke({id:e,label:n}),we(),H.success(`This chat will use the selected account from the next message.`)}catch(e){return e.message||`Could not switch account`}return null}return t&&X(t,{pickedAccountId:e,pickedAccountLabel:n,pickedAccountProvider:h}),null},[c,N,t,e,h,ye,we]),[Ge,Ke]=(0,Q.useState)(null),qe=Be(e=>Object.values(e.panels).some(e=>e.activeTabId===t)),{messages:Je,renderedMessages:Xe,expandCompact:Qe,isCompactExpanded:$e,dismissMessage:et,clearErrors:tt,messagesLoading:J,versionMap:nt,hasOlderHistory:rt,loadOlderHistory:Y,userOrdinalOffset:at,historyPredecessorId:ot,isStreaming:st,phase:ct,isReconnecting:lt,connectingElapsed:ut,pendingApproval:dt,contextWindowPct:ft,compactStatus:mt,promptCache:ht,mcpNeedsAuth:gt,turnStop:_t,statusMessage:vt,sessionTitle:Z,liveAccount:yt,model:bt,setModel:xt,effort:St,setEffort:Ct,thinking:wt,setThinking:Tt,turnSettings:Et,sendMessage:Ot,respondToApproval:kt,cancelStreaming:jt,reconnect:Mt,refetchMessages:Nt,isConnected:Pt,teamActivity:Ft,teamMessages:It,markTeamRead:Lt,bashPartialOutput:Rt,backgroundShells:zt,killBackgroundShell:Bt}=Dr(c,h,N,f,(0,Q.useCallback)(e=>{if(!t)return;let n=!document.hidden&&Object.values(Be.getState().panels).some(e=>e.activeTabId===t),r={started:`chat-started`,succeeded:`chat-succeeded`,failed:`chat-failed`,session:`chat-session`};window.dispatchEvent(new CustomEvent(`ppm:onboarding-evidence`,{detail:{...e,type:r[e.type],projectName:N,tabId:t,visible:n}}))},[N,t]),Ne),Vt=Ro({projectName:N,sessionId:c,messages:Je,isStreaming:st}),Ht=(0,Q.useCallback)(e=>{c&&xn({projectName:N,sessionId:c,title:Z||void 0,providerId:h,paths:Vt.paths,selectPath:e})},[N,c,Z,h,Vt.paths]),Ut=(0,Q.useMemo)(()=>N&&c?{projectName:N,sessionId:c,files:Vt.files,refresh:Vt.refresh,openReview:Ht}:null,[N,c,Vt.files,Vt.refresh,Ht]),Wt=(0,Q.useMemo)(()=>Et(),[Et,bt,St,wt]),Kt=Ar({enabled:!c&&!s&&qe&&!!N&&!a.pending,projectName:N,providerId:h,permissionMode:D,accountId:He?Re:void 0,picks:Wt});(0,Q.useEffect)(()=>{if(!t||!qe||P||st)return;let e=()=>window.dispatchEvent(new CustomEvent(`ppm:onboarding-evidence`,{detail:{type:`chat-opened`,projectName:N,tabId:t,sessionId:c,visible:!document.hidden}}));return e(),window.addEventListener(`ppm:onboarding-refresh`,e),()=>window.removeEventListener(`ppm:onboarding-refresh`,e)},[t,N,c,qe,P,st]),(0,Q.useEffect)(()=>{yt&&Ke(yt)},[yt]);let qt=yt?.id;(0,Q.useEffect)(()=>{qt&&we()},[qt,we]),(0,Q.useEffect)(()=>{Ke(null)},[c]);let Yt=Ft?.teamNames?.[0]??``,{members:Xt}=Bo(Yt,!!Yt),Zt=(0,Q.useMemo)(()=>({projectName:N,providerId:Gt(h),sessionId:c??``}),[N,h,c]);(0,Q.useEffect)(()=>{if(!c||!t)return;let e=()=>{if(document.hidden)return;let{panels:e}=Be.getState();Object.values(e).some(e=>e.activeTabId===t)&&(At.getState().notifications.get(c)?.manual||At.getState().clearForSession(c))};e(),document.addEventListener(`visibilitychange`,e);let n=Be.subscribe(e),r=At.subscribe(e);return()=>{document.removeEventListener(`visibilitychange`,e),n(),r()}},[c,t]),(0,Q.useEffect)(()=>{t&&Z&&!s&&ye(t,{title:Z}),c&&N&&Z&&q.getState().renameSession(Ye(N),c,Z)},[Z]);let[Qt,$t]=(0,Q.useState)(()=>{let t=e?.pendingMessage;return t===void 0?void 0:sn(t).content});(0,Q.useEffect)(()=>{let n=e?.pendingAttachmentDataUrl;if(!n||!t)return;X(t,{pendingAttachmentDataUrl:void 0,pendingAttachmentName:void 0});let r=e?.pendingAttachmentName||`screenshot.jpg`;fetch(n).then(e=>e.blob()).then(e=>{ge([new File([e],r,{type:e.type||`image/jpeg`})]),setTimeout(()=>ge(null),100)}).catch(()=>{})},[]);let[en,tn]=(0,Q.useState)(!1),[nn,rn]=(0,Q.useState)(!1),[an,on]=(0,Q.useState)(null),ln=(0,Q.useRef)(0),un=(0,Q.useRef)(!1),dn=(0,Q.useRef)(null),[fn,pn]=(0,Q.useState)(null),mn=(0,Q.useCallback)((e,t)=>{un.current=!1,dn.current=null,on(null),rn(!1);let n=sn(e);z.current=n.replyTo,R({owner:L,reply:n.replyTo}),F(n.content,void 0,n.replyTo),pn({text:n.content,nonce:Date.now()}),H.error(`Message not sent`,{description:`${t} Your text is back in the input.`})},[L,F]);Me.current=e=>{let t=W.current,n=cn(e.content,e.replyTo);(t.owner!==L||!t.text.trim()&&!t.attachments?.length&&!Te?.content.trim())&&!z.current?mn(n,e.message):H.error(`Message not sent`,{description:e.message,action:{label:`Restore`,onClick:()=>mn(n,e.message)}})};let hn=(0,Q.useCallback)(e=>{let t=dn.current;++ln.current,un.current=!1,rn(!1),on(null),pe.current&&=(clearTimeout(pe.current),null),tn(!1);let n=fe.current;if(!n){t&&mn(t,e);return}fe.current=null,Ee(n.draftId),mn(cn(n.content,n.replyTo),e)},[mn,Ee]),gn=(0,Q.useCallback)(e=>{fe.current=e,pe.current&&clearTimeout(pe.current),pe.current=setTimeout(()=>hn(`The chat did not connect in time.`),hc)},[hn]);(0,Q.useEffect)(()=>{if(Pt&&fe.current){let{content:e,draftId:t,permissionMode:n,images:r,imagePaths:i,replyTo:a}=fe.current;fe.current=null,pe.current&&=(clearTimeout(pe.current),null),Ot(e,{permissionMode:n,replyTo:a??void 0,...r?.length&&{images:r},...i?.length&&{imagePaths:i}}),un.current=!1,dn.current=null,on(null),rn(!1),Ee(t)}},[Pt,Ot,Ee]),(0,Q.useEffect)(()=>()=>{++ln.current,pe.current&&clearTimeout(pe.current)},[]);let[_n,vn]=(0,Q.useState)(null),[yn,bn]=(0,Q.useState)(0),[Sn,Cn]=(0,Q.useState)(!1),wn=(0,Q.useRef)(!1);(0,Q.useEffect)(()=>{wn.current&&!J&&Cn(!1),wn.current=!!J},[J]),(0,Q.useEffect)(()=>{Qt&&Pt&&c&&t&&X(t,{pendingMessage:void 0})},[Pt,c]),(0,Q.useEffect)(()=>{en&&st&&tn(!1)},[en,st]),(0,Q.useEffect)(()=>{if(!en)return;let e=setTimeout(()=>tn(!1),6e4);return()=>clearTimeout(e)},[en]);let En=(0,Q.useCallback)((e,t)=>{if(n){n(t);return}Ze.getState().openTab({type:`chat`,title:e||`AI Chat`,metadata:{projectName:N,providerId:h,...D&&{permissionMode:D,permissionModeSource:`cache`},...t&&{clearedFrom:t}},projectId:N||null,closable:!0})},[N,h,D,n]),Dn=(0,Q.useCallback)(e=>{hn(`You switched to another chat before it connected.`),pn(null),$t(void 0),vn(null),bn(e=>e+1),l(e.id),m(e.providerId),t&&!s&&ye(t,{title:e.title||`Chat`}),At.getState().clearForSession(e.id)},[t,ye,hn,s]),On=(0,Q.useCallback)(async(e,t)=>{if(!(!c||!N))try{let{api:n,projectUrl:i}=await Fe(async()=>{let{api:e,projectUrl:t}=await import(`./api-client-DAQfiXg0.js`);return{api:e,projectUrl:t}},__vite__mapDeps([61,5,1,2,14])),a=await n.post(`${i(N)}/chat/sessions/${c}/fork?providerId=${h}`,{messageId:t}),o=sn(e).content;if(q.getState().upsertSession(Ye(N),{id:a.id,providerId:h,title:o.slice(0,50),createdAt:new Date().toISOString(),...s&&{designSlug:s}}),r){r({sessionId:a.id,providerId:h,pendingMessage:e});return}Ze.getState().openTab({type:`chat`,title:`Fork: ${o.slice(0,30)}`,metadata:{projectName:N,sessionId:a.id,providerId:h,pendingMessage:e},projectId:N||null,closable:!0})}catch(e){console.error(`Fork failed:`,e);let t=e?.message||`Unknown error`;H.error(`Cannot fork from this message`,{description:t.includes(`not found`)||t.includes(`Invalid upToMessageId`)?`The original message is no longer available in the session transcript. Try forking from a different message.`:t})}},[c,N,h,r,s]),kn=(0,Q.useCallback)((e,t,n)=>{let r=sn(e),i=r.replyTo&&c?{...r.replyTo,sessionId:c}:r.replyTo;$t(r.content),pn({text:r.content,nonce:Date.now(),replace:!0}),z.current=i,R({owner:L,reply:i}),vn({anchorMsgId:t,ownMsgId:n})},[L,c]),An=(0,Q.useCallback)(()=>{vn(null),$t(void 0),z.current=null,R({owner:L,reply:null}),tn(!1),Ee(),bn(e=>e+1)},[Ee,L]),jn=(0,Q.useCallback)(async(e,n,r)=>{if(!(!e.trim()||!c||!N)){tn(!0);try{let i=await G.post(`${U(N)}/chat/sessions/${c}/fork?providerId=${h}&mode=edit`,{messageId:n},{signal:AbortSignal.timeout(mc)});q.getState().upsertSession(Ye(N),{id:i.id,providerId:h,title:sn(e).content.slice(0,50),createdAt:new Date().toISOString(),...s&&{designSlug:s}}),gn({content:e,draftId:c,permissionMode:D,replyTo:r&&{...r,sessionId:i.id}}),Oe(i.id),Cn(!0),t&&X(t,{sessionId:i.id}),l(i.id)}catch(t){tn(!1);let n=t?.name===`TimeoutError`?`The server did not answer in time.`:t?.message||`Unknown error`;H.error(`Cannot edit from this message`,{description:n.includes(`not found`)||n.includes(`Invalid upToMessageId`)?`The original message is no longer available in the session transcript.`:n}),mn(cn(e,r),n)}}},[c,N,h,D,t,gn,Oe,s,mn]),Mn=(0,Q.useCallback)(e=>{!e||e===c||(hn(`You switched to another version before it connected.`),pn(null),$t(void 0),vn(null),bn(e=>e+1),Cn(!0),t&&X(t,{sessionId:e}),l(e))},[c,t,hn]),Nn=(0,Q.useCallback)((e,t,n=[])=>{if(t.length===0)return e;let r=[];for(let e of t)e.textContent&&r.push(e.textContent);let{inlineImagePaths:i,pathOnlyPaths:a}=er(t,n);for(let e of i)r.push(`[Attached image (contents included in this message): ${e}]`);if(a.length>0){let e=a.join(`
|
|
13
|
+
`);r.push(a.length===1?`[Attached file: ${e}]`:`[Attached files:\n${e}\n]`)}return r.length===0?e:r.join(`
|
|
14
|
+
|
|
15
|
+
`)+`
|
|
16
|
+
|
|
17
|
+
`+e},[]),Pn=(0,Q.useCallback)(async(n,r=[],i,u)=>{let d=$n(r),f=Nn(n,r,d),p=r.filter(e=>e.isImage&&e.serverPath).map(e=>e.serverPath);if(!(!f.trim()&&d.length===0)){if(!c){if(un.current)return;un.current=!0,dn.current=cn(f,u);let r=++ln.current;rn(!0),on({content:f,timestamp:new Date().toISOString()});try{let i=a?.pending?await a.prepare():null;if(r!==ln.current)return;let c=i?.providerId??h,g=i?.permissionMode??D??a.permissionMode,_=t?await Rr(t)?.catch(()=>void 0):void 0;if(r!==ln.current)return;_&&O()&&(g=_.settings.providers[c]?.permission_mode??g),m(c),ce(g),t&&X(t,{permissionMode:g});let v=await Ue(c).catch(()=>null);if(r!==ln.current)return;let y=o.current,b=y?.pickedAccountProvider===c?y.pickedAccountId:v?.id,x=N,S=await G.post(`${U(x)}/chat/sessions`,{providerId:c,title:n.slice(0,50),clearedFrom:e?.clearedFrom,accountId:b,...s&&{designSlug:s}},{signal:AbortSignal.timeout(mc)});if(r!==ln.current)return;q.getState().upsertSession(Ye(x),{id:S.id,providerId:S.providerId,title:S.title,createdAt:S.createdAt,...s&&{designSlug:s}}),Oe(S.id),l(S.id),m(S.providerId),gn({content:f,draftId:`__new__`,permissionMode:g,images:d,imagePaths:p,replyTo:u});return}catch(e){if(r!==ln.current)return;console.error(`Failed to create session:`,e);let t=e?.name===`TimeoutError`?`The server did not answer in time.`:`Could not start the chat: ${e?.message||`unknown error`}.`;mn(cn(f,u),t);return}}Ot(f,{permissionMode:D,priority:i,replyTo:u??void 0,...d.length>0&&{images:d},...p.length>0&&{imagePaths:p}}),Ee()}},[c,h,N,Ot,Nn,D,e,gn,mn,Ee,s,Oe,a,Ue,t,O]),Fn=(0,Q.useRef)(g);Fn.current=g;let Ln=(0,Q.useCallback)((e,t,n)=>{let r=z.current,i=e.trim().match(/^\/(\S+)(?:\s+([\s\S]+))?$/);if(i){let e=Fn.current.find(e=>e.handler===`client`&&(e.name===i[1]||e.aliases?.includes(i[1])));if(r&&(e||i[1]===`clear`||Fn.current.some(e=>e.handler===`ppm`&&e.name===i[1])))return H.error(`Cancel reply before running this command`),!1;if(i[1]===`clear`||e?.name===`clear`){Ee(),En(i[2]?.trim(),c??void 0);return}}if($t(void 0),F(e,t.filter(e=>e.serverPath).map(e=>({name:e.name,path:e.serverPath})),r),De(),z.current=null,R({owner:L,reply:null}),W.current={owner:L,text:``,observed:!0},_n&&c&&N){let n=_n.anchorMsgId;vn(null),jn(Nn(e,t),n,r);return}Pn(e,t,n,r)},[Pn,Ee,F,De,_n,c,N,jn,Nn,En,L]),Rn=(0,Q.useRef)(Je);Rn.current=Je;let zn=(0,Q.useCallback)(()=>Rn.current.filter(e=>e.role===`user`&&e.content.trim()).map(e=>e.content),[]),Bn=(0,Q.useCallback)((e,t)=>{W.current={owner:L,text:e,observed:!0,attachments:t},F(e,t,z.current),Kt()},[F,Kt,L]),Vn=(0,Q.useCallback)((e,t)=>{_(e),t&&w(t)},[]),Hn=(0,Q.useCallback)((e,t)=>{y(e),x(t)},[]),Un=(0,Q.useCallback)(e=>{C(e),y(!1),x(``),setTimeout(()=>C(null),50),N&&(G.post(`${U(N)}/chat/slash-recents`,{name:e.name,type:e.type}).catch(()=>{}),w(t=>[e.name,...t.filter(t=>t!==e.name)].slice(0,5)))},[N]),Wn=(0,Q.useCallback)(()=>{y(!1),x(``)},[]),Gn=(0,Q.useCallback)(()=>{t&&X(t,{pendingContexts:void 0})},[t]),Kn=(0,Q.useCallback)(()=>A(null),[]),qn=(0,Q.useCallback)(e=>{j(e)},[]),Jn=(0,Q.useCallback)(e=>{A([e.path]),j(null)},[]);(0,Q.useEffect)(()=>{if(re&&N)return it.getState().openIndexReader(N)},[re,N]);let Yn=it(e=>e.indexRemote),Xn=Dt(N,ie,{enabled:re&&Yn,kind:`all`}),Zn=(0,Q.useCallback)((e,t)=>{T(e),ae(t)},[]),Qn=(0,Q.useCallback)(e=>{E(e),T(!1),ae(``),setTimeout(()=>E(null),50)},[]),tr=(0,Q.useCallback)(()=>{T(!1),ae(``)},[]),nr=(0,Q.useCallback)(e=>{e.preventDefault(),M.current++,(e.dataTransfer.types.includes(`application/x-ppm-path`)||e.dataTransfer.types.includes(`Files`))&&k(!0)},[]),rr=(0,Q.useCallback)(e=>{e.preventDefault(),M.current--,M.current===0&&k(!1)},[]),ir=(0,Q.useCallback)(e=>{e.preventDefault()},[]),ar=(0,Q.useCallback)(e=>{e.preventDefault(),M.current=0,k(!1);let t=e.dataTransfer.getData(`application/x-ppm-path`);if(t){A([t]);return}let n=Array.from(e.dataTransfer.files);n.length>0&&(ge(n),setTimeout(()=>ge(null),100))},[]);return(0,$.jsx)(Jt,{value:Zt,children:(0,$.jsxs)(`div`,{"data-onboarding":`chat`,className:`flex flex-col h-full relative`,onDragEnter:nr,onDragLeave:rr,onDragOver:ir,onDrop:ar,children:[me&&(0,$.jsx)(`div`,{className:`absolute inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm border-2 border-dashed border-primary rounded-lg pointer-events-none`,children:(0,$.jsxs)(`div`,{className:`flex flex-col items-center gap-2 text-primary`,children:[(0,$.jsx)(se,{className:`size-8`}),(0,$.jsx)(`span`,{className:`text-sm font-medium`,children:`Drop files to attach`})]})}),lt&&(0,$.jsx)(`div`,{className:`absolute inset-0 z-50 flex items-center justify-center bg-background/60 backdrop-blur-sm`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,$.jsx)(I,{className:`size-4 animate-spin`}),(0,$.jsx)(`span`,{children:`Reconnecting...`})]})}),en&&(0,$.jsx)(`div`,{className:`absolute inset-0 z-50 flex items-center justify-center bg-background/70 backdrop-blur-sm`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,$.jsx)(I,{className:`size-4 animate-spin`}),(0,$.jsx)(`span`,{children:`Creating edited version…`})]})}),(0,$.jsx)(bo,{shells:zt,onKill:Bt}),nn?(0,$.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:[an&&(0,$.jsx)(Na,{content:an.content,timestamp:an.timestamp,projectName:N}),(0,$.jsxs)(`div`,{role:`status`,className:`flex items-center gap-2 pt-3 text-sm text-text-secondary`,children:[(0,$.jsx)(I,{className:`size-4 animate-spin`}),(0,$.jsx)(`span`,{children:`Starting conversation...`})]})]}):(0,$.jsx)(Di.Provider,{value:Ut,children:(0,$.jsx)(ho,{messages:Xe,onExpandCompact:Qe,isCompactExpanded:$e,hasOlderHistory:rt,onLoadOlderHistory:Y,userOrdinalOffset:at,historyPredecessorId:ot,messagesLoading:J,keepStaleWhileLoading:Sn,pendingApproval:dt,onApprovalResponse:kt,isStreaming:st,phase:ct,connectingElapsed:ut,statusMessage:vt,compactStatus:mt,promptCache:ht,projectName:N,onFork:st?void 0:On,onEdit:st?void 0:kn,onReply:c&&!P&&!en?K:void 0,editingMsgId:_n?.ownMsgId,sessionId:c??void 0,providerId:h,onNavigateVersion:Mn,versionMap:nt,onSelectSession:Dn,onDismissMessage:et,onClearErrors:tt,bashPartialOutput:Rt})}),(0,$.jsx)(jo,{projectName:N,providerId:Zt.providerId,sessionId:c,messages:Je,teamName:Yt,teamMembers:Xt}),(0,$.jsx)(Io,{stop:ct===`idle`?_t:null,onContinue:()=>Ot(Fo,{permissionMode:D})}),(0,$.jsx)(No,{needsAuth:gt,projectName:N||void 0},c??`draft`),(0,$.jsx)(Tn,{files:Vt.files,projectName:N,providerId:h,onOpen:Vt.refresh,onSetReviewed:Vt.setReviewed,onReview:Ht}),(0,$.jsxs)(`div`,{className:`border-t border-border bg-panel shrink-0`,children:[(0,$.jsx)(cc,{tabId:t,projectName:N,usageInfo:be,usageLoading:xe,refreshUsage:Ce,lastFetchedAt:Se,sessionId:c,providerId:h,pickedAccountLabel:Ge?.label??(He?ze:null),pickedAccountId:Ge?.id??(He?Re??null:null),onSelectAccount:!a.pending&&!nn?We:void 0,onSelectSession:Dn,historyFilter:i,isConnected:Pt,onReload:()=>{Pt||Mt(),Nt()},teamActivity:Ft,teamMessages:It,onTeamOpen:Lt}),(0,$.jsx)(In,{items:g,filter:b,onSelect:Un,onClose:Wn,visible:v,recentNames:ee,projectName:N}),(0,$.jsx)(Ms,{items:Yn?Xn:te,filter:ie,onSelect:Qn,onClose:tr,visible:re}),ve&&(0,$.jsx)(Ms,{items:ve,filter:``,onSelect:Jn,onClose:()=>j(null),visible:!0}),_n&&(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-3 py-1.5 text-xs text-muted-foreground border-t border-border bg-muted/40`,children:[(0,$.jsx)(`span`,{children:`Editing message — your next send replaces it`}),(0,$.jsxs)(`button`,{type:`button`,onClick:An,className:`flex items-center gap-1 rounded px-2 py-1 min-h-[28px] hover:bg-accent hover:text-accent-foreground transition-colors`,title:`Cancel edit (send as a new message instead)`,children:[(0,$.jsx)(ue,{className:`h-3.5 w-3.5`}),`Cancel`]})]}),(0,$.jsx)(Os,{draftReady:!P,configurationPending:a.pending,tabId:t,onSend:Ln,replyTo:je,onCancelReply:Ie,replyChangeSignal:B,disabled:nn,isStreaming:st,onCancel:jt,autoFocus:!e?.sessionId||!!Qt,initialValue:Qt??(!nn&&!en?Te?.content:void 0),initialAttachments:!nn&&!en?Te?.attachments:void 0,clearSignal:yn,restore:fn,projectName:N,onSlashStateChange:Hn,onSlashItemsLoaded:Vn,slashSelected:S,onFileStateChange:Zn,onFileItemsLoaded:ne,fileSelected:oe,pendingContexts:e?.pendingContexts,onContextsConsumed:Gn,externalFiles:he,externalPaths:_e,onExternalPathsConsumed:Kn,onDisambiguate:qn,onContentChange:Bn,getUserHistory:zn,permissionMode:D,onModeChange:!a?.pending&&!nn?de:void 0,providerId:a?.providerId??h,sessionId:c??void 0,onProviderChange:!c&&!s&&!a?.pending&&!nn?Le:void 0,model:bt,onModelChange:!a?.pending&&!nn?xt:void 0,effort:St,onEffortChange:Ct,thinking:wt,onThinkingChange:Tt,promptCache:ht})]})]})})}export{gc as t};
|
|
Binary file
|
|
Binary file
|