nextclaw 0.48.0 → 0.48.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/app/index.js +1 -1
- package/dist/{nextclaw-cli-app-FS6IsYq6.js → nextclaw-cli-app-C1L77sjJ.js} +3 -2
- package/dist/{nextclaw-cli-app-FS6IsYq6.js.map → nextclaw-cli-app-C1L77sjJ.js.map} +1 -1
- package/package.json +13 -13
- package/resources/USAGE.md +5 -0
- package/resources/apps/nextclaw-github-issue-watcher/tests/public-github-runner-smoke.tools.mjs +4 -0
- package/ui-dist/.vite/manifest.json +2477 -0
- package/ui-dist/.vite/manifest.json.gz +0 -0
- package/ui-dist/assets/{abnfDiagram-VRR7QNED-BcFJp_1X.js → abnfDiagram-VRR7QNED-Kzlh3ZEC.js} +1 -1
- package/ui-dist/assets/abnfDiagram-VRR7QNED-Kzlh3ZEC.js.gz +0 -0
- package/ui-dist/assets/account-panel-BxMlLXYH.js +1 -0
- package/ui-dist/assets/account-panel-BxMlLXYH.js.gz +0 -0
- package/ui-dist/assets/{aiden0z-pptx-renderer.es-Dp2ezlQn.js → aiden0z-pptx-renderer.es-k1xZLzeo.js} +1 -1
- package/ui-dist/assets/aiden0z-pptx-renderer.es-k1xZLzeo.js.gz +0 -0
- package/ui-dist/assets/api-Utt-xzrT.js +13 -0
- package/ui-dist/assets/api-Utt-xzrT.js.gz +0 -0
- package/ui-dist/assets/app-data-DYXDL6X2.js +1 -0
- package/ui-dist/assets/app-data-DYXDL6X2.js.gz +0 -0
- package/ui-dist/assets/app-presenter-provider-CLsFiXvV.js +109 -0
- package/ui-dist/assets/app-presenter-provider-CLsFiXvV.js.gz +0 -0
- package/ui-dist/assets/app-presenter-provider-D3BuuOyZ.css +1 -0
- package/ui-dist/assets/app-presenter-provider-D3BuuOyZ.css.gz +0 -0
- package/ui-dist/assets/appearance-settings-page-BfYznAK5.js +1 -0
- package/ui-dist/assets/appearance-settings-page-BfYznAK5.js.gz +0 -0
- package/ui-dist/assets/{arc-CkgyPMyW.js → arc-CpivM836.js} +1 -1
- package/ui-dist/assets/arc-CpivM836.js.gz +0 -0
- package/ui-dist/assets/architecture-TIHT7OUA-CVRF_cYQ.js +1 -0
- package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-CMd4cIjI.js → architectureDiagram-ZJ3FMSHR-ifjW1qjI.js} +1 -1
- package/ui-dist/assets/architectureDiagram-ZJ3FMSHR-ifjW1qjI.js.gz +0 -0
- package/ui-dist/assets/{blockDiagram-677ZJIJ3-Bz3tbhet.js → blockDiagram-677ZJIJ3-C_zeJrKF.js} +1 -1
- package/ui-dist/assets/blockDiagram-677ZJIJ3-C_zeJrKF.js.gz +0 -0
- package/ui-dist/assets/{book-open-o2x7OLiO.js → book-open-DDW_3XpM.js} +1 -1
- package/ui-dist/assets/boxes-DwJeuK_h.js +1 -0
- package/ui-dist/assets/{c4Diagram-LMCZKHZV-D9hFNAGv.js → c4Diagram-LMCZKHZV-CpapRftp.js} +1 -1
- package/ui-dist/assets/c4Diagram-LMCZKHZV-CpapRftp.js.gz +0 -0
- package/ui-dist/assets/card-IevY2nm-.js +1 -0
- package/ui-dist/assets/card-IevY2nm-.js.gz +0 -0
- package/ui-dist/assets/channel-CBrWRr4N.js +1 -0
- package/ui-dist/assets/channels-list-page-DitnqbMR.js +8 -0
- package/ui-dist/assets/channels-list-page-DitnqbMR.js.gz +0 -0
- package/ui-dist/assets/chevron-down-An7Km-t4.js +1 -0
- package/ui-dist/assets/chunk-2Q5K7J3B-B8mmRk7d.js +1 -0
- package/ui-dist/assets/{chunk-32BRIVSS-7NrjEITq.js → chunk-32BRIVSS-BKBwdmKR.js} +1 -1
- package/ui-dist/assets/chunk-32BRIVSS-BKBwdmKR.js.gz +0 -0
- package/ui-dist/assets/{chunk-52WLFC77-viIcqj9q.js → chunk-52WLFC77-BgZRCpDx.js} +1 -1
- package/ui-dist/assets/chunk-52WLFC77-BgZRCpDx.js.gz +0 -0
- package/ui-dist/assets/{chunk-5FCAYU7R-Vsu4J-VM.js → chunk-5FCAYU7R-YWfOINJi.js} +1 -1
- package/ui-dist/assets/{chunk-5HE753X5-C-w6CQZK.js → chunk-5HE753X5-BZ6I07d2.js} +1 -1
- package/ui-dist/assets/{chunk-5JV3BV7I-CuKgJQ4W.js → chunk-5JV3BV7I-B7QYgZU5.js} +1 -1
- package/ui-dist/assets/chunk-5JV3BV7I-B7QYgZU5.js.gz +0 -0
- package/ui-dist/assets/{chunk-5TONJI2A-CYeiWZKb.js → chunk-5TONJI2A-DjyQwgL2.js} +1 -1
- package/ui-dist/assets/chunk-5TONJI2A-DjyQwgL2.js.gz +0 -0
- package/ui-dist/assets/{chunk-5VM5RSS4-DRCbfwIn.js → chunk-5VM5RSS4-DheHV7X2.js} +1 -1
- package/ui-dist/assets/{chunk-7BUUIJ7U-BvydOcm3.js → chunk-7BUUIJ7U-D6bq2PKF.js} +1 -1
- package/ui-dist/assets/chunk-7BUUIJ7U-D6bq2PKF.js.gz +0 -0
- package/ui-dist/assets/{chunk-BIQX33UG-RlppOXKo.js → chunk-BIQX33UG-CL9x0ibm.js} +1 -1
- package/ui-dist/assets/{chunk-C7G6YPKG-DAizzYwr.js → chunk-C7G6YPKG-8z3B6RUH.js} +1 -1
- package/ui-dist/assets/chunk-C7G6YPKG-8z3B6RUH.js.gz +0 -0
- package/ui-dist/assets/{chunk-CQNSW5MT-5eChJHca.js → chunk-CQNSW5MT-DpHkxY3n.js} +1 -1
- package/ui-dist/assets/{chunk-CYSBUYHQ-YHPr53fv.js → chunk-CYSBUYHQ-DIJDLsdJ.js} +1 -1
- package/ui-dist/assets/{chunk-EMLP6XTP-CK4D7Hz5.js → chunk-EMLP6XTP-B-LjAyVd.js} +1 -1
- package/ui-dist/assets/{chunk-EX3LRPZG-BmlDFIRW.js → chunk-EX3LRPZG-BChuEPvO.js} +1 -1
- package/ui-dist/assets/chunk-EX3LRPZG-BChuEPvO.js.gz +0 -0
- package/ui-dist/assets/{chunk-FWX5IMBZ-D0ksHZZ9.js → chunk-FWX5IMBZ-fBFt0u3f.js} +2 -2
- package/ui-dist/assets/chunk-FWX5IMBZ-fBFt0u3f.js.gz +0 -0
- package/ui-dist/assets/{chunk-HOUHSVGY-DPkq8FCm.js → chunk-HOUHSVGY-MD0SpW5A.js} +1 -1
- package/ui-dist/assets/chunk-HOUHSVGY-MD0SpW5A.js.gz +0 -0
- package/ui-dist/assets/{chunk-ICXQ74PX-FAatv5fC.js → chunk-ICXQ74PX-DvCcw_hz.js} +1 -1
- package/ui-dist/assets/chunk-ICXQ74PX-DvCcw_hz.js.gz +0 -0
- package/ui-dist/assets/{chunk-JG7HCLWE-DLkIi4F7.js → chunk-JG7HCLWE-B8zqBnU9.js} +1 -1
- package/ui-dist/assets/chunk-JG7HCLWE-B8zqBnU9.js.gz +0 -0
- package/ui-dist/assets/{chunk-JWPE2WC7-DawOjNE3.js → chunk-JWPE2WC7-C9efnkGb.js} +1 -1
- package/ui-dist/assets/{chunk-MOJQB5TN-Di52TorW.js → chunk-MOJQB5TN-gXbfqoqq.js} +1 -1
- package/ui-dist/assets/chunk-MOJQB5TN-gXbfqoqq.js.gz +0 -0
- package/ui-dist/assets/{chunk-MOZMSUNE-PfyK9w1-.js → chunk-MOZMSUNE-twIwdkqC.js} +1 -1
- package/ui-dist/assets/{chunk-OGEWGWER-C3jdH3Ty.js → chunk-OGEWGWER-DdR0_cWK.js} +1 -1
- package/ui-dist/assets/{chunk-OSBZ3O6U-CecHo-f0.js → chunk-OSBZ3O6U-D7D58Foa.js} +1 -1
- package/ui-dist/assets/{chunk-PUDLZKDR-f3IJh3sN.js → chunk-PUDLZKDR-DPILgOVY.js} +1 -1
- package/ui-dist/assets/chunk-PUDLZKDR-DPILgOVY.js.gz +0 -0
- package/ui-dist/assets/{chunk-Q4XR5HBZ-DQFeUPxZ.js → chunk-Q4XR5HBZ-C0JJx7lW.js} +1 -1
- package/ui-dist/assets/chunk-Q4XR5HBZ-C0JJx7lW.js.gz +0 -0
- package/ui-dist/assets/{chunk-QBLGF6JB-BhUeG0y2.js → chunk-QBLGF6JB-Dbsf69ng.js} +1 -1
- package/ui-dist/assets/{chunk-R7FJI6CG-C3XpZ-2u.js → chunk-R7FJI6CG-Bb8n616-.js} +1 -1
- package/ui-dist/assets/chunk-R7FJI6CG-Bb8n616-.js.gz +0 -0
- package/ui-dist/assets/{chunk-RYQCIY6F-CAqa5klQ.js → chunk-RYQCIY6F-1HOsOrSl.js} +1 -1
- package/ui-dist/assets/chunk-RYQCIY6F-1HOsOrSl.js.gz +0 -0
- package/ui-dist/assets/{chunk-U6XO7XAA-D_WXezeD.js → chunk-U6XO7XAA-BAFDVb1v.js} +1 -1
- package/ui-dist/assets/chunk-U6XO7XAA-BAFDVb1v.js.gz +0 -0
- package/ui-dist/assets/{chunk-V7JOEXUC-CZ70oOtp.js → chunk-V7JOEXUC-8-g68lu5.js} +1 -1
- package/ui-dist/assets/chunk-V7JOEXUC-8-g68lu5.js.gz +0 -0
- package/ui-dist/assets/chunk-VAUOI2AC-Cpml0inz.js +1 -0
- package/ui-dist/assets/{chunk-VR4S4FIN-B7AHEYYk.js → chunk-VR4S4FIN-P6UGmaYd.js} +1 -1
- package/ui-dist/assets/{chunk-WYO6CB5R-Dn9To_OI.js → chunk-WYO6CB5R-6wjFTXNP.js} +2 -2
- package/ui-dist/assets/chunk-WYO6CB5R-6wjFTXNP.js.gz +0 -0
- package/ui-dist/assets/chunk-XXDRQBXY-nCiqnCpF.js +1 -0
- package/ui-dist/assets/{chunk-YOTPTUD7-BYEgRBk3.js → chunk-YOTPTUD7-CLYXVZAi.js} +1 -1
- package/ui-dist/assets/{chunk-ZGVPDNZ5-C6YtZDU0.js → chunk-ZGVPDNZ5-BRTmSAhp.js} +1 -1
- package/ui-dist/assets/chunk-ZGVPDNZ5-BRTmSAhp.js.gz +0 -0
- package/ui-dist/assets/{chunk-ZIRB5QZD-DMuYtnHF.js → chunk-ZIRB5QZD-CH_1eoSV.js} +1 -1
- package/ui-dist/assets/chunk-ZIRB5QZD-CH_1eoSV.js.gz +0 -0
- package/ui-dist/assets/circle-alert-CDXqELuo.js +1 -0
- package/ui-dist/assets/circle-dashed-CapXEpiV.js +1 -0
- package/ui-dist/assets/classDiagram-OUVF2IWQ-C-DRqAaW.js +1 -0
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-DXCcZ42U.js +1 -0
- package/ui-dist/assets/client-B0krol7A.js +1 -0
- package/ui-dist/assets/config-split-page-BtnkqWVp.js +1 -0
- package/ui-dist/assets/config-split-page-BtnkqWVp.js.gz +0 -0
- package/ui-dist/assets/confirm-dialog-DFt4jpN7.js +1 -0
- package/ui-dist/assets/confirm-dialog-DFt4jpN7.js.gz +0 -0
- package/ui-dist/assets/{cose-bilkent-JH36ORCC-Bc2Ex5Y3.js → cose-bilkent-JH36ORCC-L7w_qScX.js} +1 -1
- package/ui-dist/assets/cose-bilkent-JH36ORCC-L7w_qScX.js.gz +0 -0
- package/ui-dist/assets/{createLucideIcon-rwwpqyks.js → createLucideIcon-BTHK0Ot9.js} +1 -1
- package/ui-dist/assets/cynefin-VYW2F7L2-2SOTgxxC.js +1 -0
- package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-DVysQoGz.js → cynefinDiagram-TSTJHNR4-Bay7uDSR.js} +1 -1
- package/ui-dist/assets/cynefinDiagram-TSTJHNR4-Bay7uDSR.js.gz +0 -0
- package/ui-dist/assets/{dagre-CMhQ1cAG.js → dagre-CJ_hX8xv.js} +1 -1
- package/ui-dist/assets/dagre-CJ_hX8xv.js.gz +0 -0
- package/ui-dist/assets/{dagre-VKFMJZFB-RYyWpPJZ.js → dagre-VKFMJZFB-DDhk-2B3.js} +1 -1
- package/ui-dist/assets/dagre-VKFMJZFB-DDhk-2B3.js.gz +0 -0
- package/ui-dist/assets/desktop-capabilities-page-CCf14WId.js +1 -0
- package/ui-dist/assets/desktop-capabilities-page-CCf14WId.js.gz +0 -0
- package/ui-dist/assets/desktop-update-config-DVoVgfFi.js +1 -0
- package/ui-dist/assets/desktop-update-config-DVoVgfFi.js.gz +0 -0
- package/ui-dist/assets/{diagram-FQU43EPY-BD6KONdF.js → diagram-FQU43EPY-somFq5y8.js} +1 -1
- package/ui-dist/assets/diagram-FQU43EPY-somFq5y8.js.gz +0 -0
- package/ui-dist/assets/{diagram-G47NLZAW-CGB2ptRR.js → diagram-G47NLZAW-hzgyQsPd.js} +1 -1
- package/ui-dist/assets/diagram-G47NLZAW-hzgyQsPd.js.gz +0 -0
- package/ui-dist/assets/{diagram-NH7WQ7WH-DnkOI6cU.js → diagram-NH7WQ7WH-BkJ4gEQJ.js} +1 -1
- package/ui-dist/assets/diagram-NH7WQ7WH-BkJ4gEQJ.js.gz +0 -0
- package/ui-dist/assets/{diagram-OA4YK3LP-DF82RZ7P.js → diagram-OA4YK3LP-CS3ZkK4w.js} +1 -1
- package/ui-dist/assets/diagram-OA4YK3LP-CS3ZkK4w.js.gz +0 -0
- package/ui-dist/assets/{diagram-WEI45ONY-Be2v7Ck9.js → diagram-WEI45ONY-BApo-JHS.js} +1 -1
- package/ui-dist/assets/diagram-WEI45ONY-BApo-JHS.js.gz +0 -0
- package/ui-dist/assets/dialog-BFN_1DBH.js +5 -0
- package/ui-dist/assets/dialog-BFN_1DBH.js.gz +0 -0
- package/ui-dist/assets/dist-Bc9hOVNN.js +1 -0
- package/ui-dist/assets/dist-Bc9hOVNN.js.gz +0 -0
- package/ui-dist/assets/dist-CEhIDAnr.js +1 -0
- package/ui-dist/assets/dist-CEhIDAnr.js.gz +0 -0
- package/ui-dist/assets/{dist--ta5rX12.js → dist-Cnhwure9.js} +1 -1
- package/ui-dist/assets/dist-Cnhwure9.js.gz +0 -0
- package/ui-dist/assets/{dist-aNN3iQxV.js → dist-hkVPP1th.js} +1 -1
- package/ui-dist/assets/dist-hkVPP1th.js.gz +0 -0
- package/ui-dist/assets/doc-browser-BNUxmwD6.js +1 -0
- package/ui-dist/assets/doc-browser-BNUxmwD6.js.gz +0 -0
- package/ui-dist/assets/doc-browser-context-C4yQrKrH.js +1 -0
- package/ui-dist/assets/doc-browser-context-C4yQrKrH.js.gz +0 -0
- package/ui-dist/assets/doc-browser-w4eGZXLu.js +1 -0
- package/ui-dist/assets/{docx-preview-BqwAjrj3.js → docx-preview-ByCKKIVT.js} +1 -1
- package/ui-dist/assets/docx-preview-ByCKKIVT.js.gz +0 -0
- package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-CP98OYk8.js → ebnfDiagram-CCIWWBDH-DWjfeEie.js} +1 -1
- package/ui-dist/assets/ebnfDiagram-CCIWWBDH-DWjfeEie.js.gz +0 -0
- package/ui-dist/assets/ellipsis-BRI6ROeu.js +1 -0
- package/ui-dist/assets/{erDiagram-Q63AITRT-ZLlx8xfs.js → erDiagram-Q63AITRT-DR7vWYHM.js} +1 -1
- package/ui-dist/assets/erDiagram-Q63AITRT-DR7vWYHM.js.gz +0 -0
- package/ui-dist/assets/es2015-MOCbM0Eu.js +41 -0
- package/ui-dist/assets/es2015-MOCbM0Eu.js.gz +0 -0
- package/ui-dist/assets/eventmodeling-45OFAUF4-CXZNG56U.js +1 -0
- package/ui-dist/assets/extensions-DxUBMtHW.js +1 -0
- package/ui-dist/assets/extensions-DxUBMtHW.js.gz +0 -0
- package/ui-dist/assets/eye-cnynUDGt.js +1 -0
- package/ui-dist/assets/flowDiagram-23GEKE2U-2065oyKr.js +1 -0
- package/ui-dist/assets/form-actions-gQ0JEUwB.js +1 -0
- package/ui-dist/assets/{ganttDiagram-NO4QXBWP-DXCDjHR2.js → ganttDiagram-NO4QXBWP-E3l9tuaL.js} +1 -1
- package/ui-dist/assets/ganttDiagram-NO4QXBWP-E3l9tuaL.js.gz +0 -0
- package/ui-dist/assets/gitGraph-TEB2WS4Q-B0Ln3ZuK.js +1 -0
- package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-l2HWrTJp.js → gitGraphDiagram-IHSO6WYX-DiMvbHKf.js} +1 -1
- package/ui-dist/assets/gitGraphDiagram-IHSO6WYX-DiMvbHKf.js.gz +0 -0
- package/ui-dist/assets/i18n-B9yXA8KO.js +2 -0
- package/ui-dist/assets/i18n-B9yXA8KO.js.gz +0 -0
- package/ui-dist/assets/i18n-provider-BYBJua91.js +1 -0
- package/ui-dist/assets/info-DKCQHKI2-B06uqGM4.js +1 -0
- package/ui-dist/assets/{infoDiagram-FWYZ7A6U-D-DjX-bn.js → infoDiagram-FWYZ7A6U-BZDL0NDJ.js} +1 -1
- package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-y_Xy128F.js → ishikawaDiagram-FXEZZL3T-BZ9WvJb2.js} +1 -1
- package/ui-dist/assets/ishikawaDiagram-FXEZZL3T-BZ9WvJb2.js.gz +0 -0
- package/ui-dist/assets/{journeyDiagram-5HDEW3XC-DJn5xYcQ.js → journeyDiagram-5HDEW3XC-C3TZvKM8.js} +1 -1
- package/ui-dist/assets/journeyDiagram-5HDEW3XC-C3TZvKM8.js.gz +0 -0
- package/ui-dist/assets/{jszip.min-8hyJpgpx.js → jszip.min-D_AtKL_8.js} +1 -1
- package/ui-dist/assets/jszip.min-D_AtKL_8.js.gz +0 -0
- package/ui-dist/assets/{kanban-definition-HUTT4EX6-DJVIOR21.js → kanban-definition-HUTT4EX6-9FqauDEi.js} +1 -1
- package/ui-dist/assets/kanban-definition-HUTT4EX6-9FqauDEi.js.gz +0 -0
- package/ui-dist/assets/{line-Cos7PIOj.js → line-Ca49mj80.js} +1 -1
- package/ui-dist/assets/{linear-BtDLqtzF.js → linear-DlCeG66S.js} +1 -1
- package/ui-dist/assets/linear-DlCeG66S.js.gz +0 -0
- package/ui-dist/assets/loader-circle-rWr5Yo0E.js +1 -0
- package/ui-dist/assets/login-page-CfMSkOsg.js +1 -0
- package/ui-dist/assets/login-page-CqrHhzaN.js +1 -0
- package/ui-dist/assets/login-page-CqrHhzaN.js.gz +0 -0
- package/ui-dist/assets/logo-badge-Cr03YceJ.js +1 -0
- package/ui-dist/assets/logo-badge-Cr03YceJ.js.gz +0 -0
- package/ui-dist/assets/main-8cVkMfgE.css +1 -0
- package/ui-dist/assets/main-8cVkMfgE.css.gz +0 -0
- package/ui-dist/assets/main-Bys58GxY.js +2 -0
- package/ui-dist/assets/main-Bys58GxY.js.gz +0 -0
- package/ui-dist/assets/main-i18n-catalog.config-BSq9yiUQ.js +1 -0
- package/ui-dist/assets/main-i18n-catalog.config-BSq9yiUQ.js.gz +0 -0
- package/ui-dist/assets/{map-BKnQyvd0.js → map-WMnNq9UV.js} +1 -1
- package/ui-dist/assets/map-WMnNq9UV.js.gz +0 -0
- package/ui-dist/assets/mcp-marketplace-page-CifiVgFD.js +10 -0
- package/ui-dist/assets/mcp-marketplace-page-CifiVgFD.js.gz +0 -0
- package/ui-dist/assets/mcp-marketplace-page-DX5VE3mU.js +1 -0
- package/ui-dist/assets/{mermaid-parser.core-XUNZhr2W.js → mermaid-parser.core-B8xk4hpS.js} +2 -2
- package/ui-dist/assets/mermaid-parser.core-B8xk4hpS.js.gz +0 -0
- package/ui-dist/assets/{mermaid.core-ySrvolIe.js → mermaid.core-CFPiczKH.js} +3 -3
- package/ui-dist/assets/mermaid.core-CFPiczKH.js.gz +0 -0
- package/ui-dist/assets/{mindmap-definition-LN4V7U3C-BypL9tei.js → mindmap-definition-LN4V7U3C-CnxA52L6.js} +1 -1
- package/ui-dist/assets/mindmap-definition-LN4V7U3C-CnxA52L6.js.gz +0 -0
- package/ui-dist/assets/model-config-page-C6jVNbSj.js +1 -0
- package/ui-dist/assets/model-config-page-C6jVNbSj.js.gz +0 -0
- package/ui-dist/assets/{navigation-link-C_6oj3zz.js → navigation-link-kbCLRSr_.js} +1 -1
- package/ui-dist/assets/navigation-link-kbCLRSr_.js.gz +0 -0
- package/ui-dist/assets/{ordinal-CxxVWxYU.js → ordinal-PgiFlfBJ.js} +1 -1
- package/ui-dist/assets/ordinal-PgiFlfBJ.js.gz +0 -0
- package/ui-dist/assets/packet-7NZHBO7P-CHx-igbz.js +1 -0
- package/ui-dist/assets/panel-app-BUUle0gP.js +1 -0
- package/ui-dist/assets/panel-app-BUUle0gP.js.gz +0 -0
- package/ui-dist/assets/panel-app-i18n-catalog.config-C2St67SP.js +1 -0
- package/ui-dist/assets/panelStandalone-DMBnYyTw.js +2 -0
- package/ui-dist/assets/panelStandalone-DMBnYyTw.js.gz +0 -0
- package/ui-dist/assets/panelStandalone-Y91OJkgV.css +1 -0
- package/ui-dist/assets/panelStandalone-Y91OJkgV.css.gz +0 -0
- package/ui-dist/assets/{pegDiagram-2B236MQR-D-U2KBGv.js → pegDiagram-2B236MQR-A8oz7dTH.js} +1 -1
- package/ui-dist/assets/pegDiagram-2B236MQR-A8oz7dTH.js.gz +0 -0
- package/ui-dist/assets/pie-RZYD4A2V-DOaMc-x9.js +1 -0
- package/ui-dist/assets/{pieDiagram-ENE6RG2P-CBi3GusJ.js → pieDiagram-ENE6RG2P-mtBnkYY0.js} +1 -1
- package/ui-dist/assets/pieDiagram-ENE6RG2P-mtBnkYY0.js.gz +0 -0
- package/ui-dist/assets/plus-BHnKwuPq.js +1 -0
- package/ui-dist/assets/popover-XVDgjxcl.js +1 -0
- package/ui-dist/assets/popover-XVDgjxcl.js.gz +0 -0
- package/ui-dist/assets/privacy-settings-page-BN27MBVA.js +1 -0
- package/ui-dist/assets/privacy-settings-page-BN27MBVA.js.gz +0 -0
- package/ui-dist/assets/projects-DV3UuJMS.js +1 -0
- package/ui-dist/assets/projects-DV3UuJMS.js.gz +0 -0
- package/ui-dist/assets/provider-models-5PGHb6mP.js +1 -0
- package/ui-dist/assets/provider-models-5PGHb6mP.js.gz +0 -0
- package/ui-dist/assets/provider-scoped-model-input-BGZMCThn.js +1 -0
- package/ui-dist/assets/provider-scoped-model-input-BGZMCThn.js.gz +0 -0
- package/ui-dist/assets/providers-config-page-D5aBwbOD.js +1 -0
- package/ui-dist/assets/providers-config-page-D5aBwbOD.js.gz +0 -0
- package/ui-dist/assets/puzzle-D5Dhacmb.js +1 -0
- package/ui-dist/assets/pwa-ClQK56Qe.js +1 -0
- package/ui-dist/assets/pwa-ClQK56Qe.js.gz +0 -0
- package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-H0ZuvnZL.js → quadrantDiagram-ABIIQ3AL-DE1VybGO.js} +1 -1
- package/ui-dist/assets/quadrantDiagram-ABIIQ3AL-DE1VybGO.js.gz +0 -0
- package/ui-dist/assets/radar-I7S5WNFK-CXsdndDk.js +1 -0
- package/ui-dist/assets/railroad-3IZDKUUU-DxgXdrYP.js +1 -0
- package/ui-dist/assets/railroad-abnf-AHOZXSZD-CR1tnyjz.js +1 -0
- package/ui-dist/assets/railroad-ebnf-EBAXGLYW-CjjxZR2U.js +1 -0
- package/ui-dist/assets/railroad-peg-LSFZ7HO6-DgVGJCHN.js +1 -0
- package/ui-dist/assets/{railroadDiagram-RFXS5EU6-D7Y2EqSd.js → railroadDiagram-RFXS5EU6-u9EMg14B.js} +1 -1
- package/ui-dist/assets/railroadDiagram-RFXS5EU6-u9EMg14B.js.gz +0 -0
- package/ui-dist/assets/{refresh-cw-DsT2kvXi.js → refresh-cw-Bw5BY7vp.js} +1 -1
- package/ui-dist/assets/remote-Bl005fzu.js +1 -0
- package/ui-dist/assets/{requirementDiagram-TGXJPOKE-BiXNX1NN.js → requirementDiagram-TGXJPOKE-BAWHAqEi.js} +1 -1
- package/ui-dist/assets/requirementDiagram-TGXJPOKE-BAWHAqEi.js.gz +0 -0
- package/ui-dist/assets/{rotate-cw-BCAs6c3R.js → rotate-cw-BksCLAeE.js} +1 -1
- package/ui-dist/assets/runtime-config-page-CmktQcMW.js +1 -0
- package/ui-dist/assets/runtime-config-page-CmktQcMW.js.gz +0 -0
- package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-qzDeLztW.js → sankeyDiagram-HTMAVEWB-aDy-jdwF.js} +1 -1
- package/ui-dist/assets/sankeyDiagram-HTMAVEWB-aDy-jdwF.js.gz +0 -0
- package/ui-dist/assets/{save-CadRMTMQ.js → save-CVi8VWzb.js} +1 -1
- package/ui-dist/assets/{search-B6tB4fzB.js → search-DN-f7IIC.js} +1 -1
- package/ui-dist/assets/search-config-page-BmuZTVxs.js +1 -0
- package/ui-dist/assets/search-config-page-BmuZTVxs.js.gz +0 -0
- package/ui-dist/assets/secrets-config-page-NPHpg9sb.js +3 -0
- package/ui-dist/assets/secrets-config-page-NPHpg9sb.js.gz +0 -0
- package/ui-dist/assets/security-config-Djptuyf2.js +1 -0
- package/ui-dist/assets/select-CmDTqk2C.js +1 -0
- package/ui-dist/assets/select-CmDTqk2C.js.gz +0 -0
- package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-BtRbPQtL.js → sequenceDiagram-DBY2YBRQ-DwHC4mbX.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-BtRbPQtL.js.gz → sequenceDiagram-DBY2YBRQ-DwHC4mbX.js.gz} +0 -0
- package/ui-dist/assets/service-apps-panel-BYGJ9_pO.js +1 -0
- package/ui-dist/assets/service-apps-panel-BYGJ9_pO.js.gz +0 -0
- package/ui-dist/assets/settings-2-B62YtZon.js +1 -0
- package/ui-dist/assets/{sizeCapture-X5ZJPWSS-CMYvM3SL.js → sizeCapture-X5ZJPWSS-oOMY0Fag.js} +1 -1
- package/ui-dist/assets/skeleton-Eh64l4T2.js +1 -0
- package/ui-dist/assets/{src-Bw-mzbQb.js → src-CLPoo5iL.js} +1 -1
- package/ui-dist/assets/src-CLPoo5iL.js.gz +0 -0
- package/ui-dist/assets/{stateDiagram-2N3HPSRC-BJ-mFeOz.js → stateDiagram-2N3HPSRC-B0Epk-VR.js} +1 -1
- package/ui-dist/assets/stateDiagram-2N3HPSRC-B0Epk-VR.js.gz +0 -0
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-Ct4zTw8P.js +1 -0
- package/ui-dist/assets/{swimlanes-5IMT3BWC-BsucVOO2.js → swimlanes-5IMT3BWC-T0w-Iuzf.js} +2 -2
- package/ui-dist/assets/swimlanes-5IMT3BWC-T0w-Iuzf.js.gz +0 -0
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-CdmN0PBd.js +8 -0
- package/ui-dist/assets/tabs-Bk_mG7ql.js +1 -0
- package/ui-dist/assets/tabs-Bk_mG7ql.js.gz +0 -0
- package/ui-dist/assets/{tag-chip-BZKk0UkK.js → tag-chip-DgqKlI5D.js} +1 -1
- package/ui-dist/assets/theme-provider-CeBY2pyu.js +1 -0
- package/ui-dist/assets/theme-provider-CeBY2pyu.js.gz +0 -0
- package/ui-dist/assets/{timeline-definition-FHXFAJF6-Bicewlzo.js → timeline-definition-FHXFAJF6-BEonB5Np.js} +1 -1
- package/ui-dist/assets/timeline-definition-FHXFAJF6-BEonB5Np.js.gz +0 -0
- package/ui-dist/assets/tooltip-CgGbBdYf.js +1 -0
- package/ui-dist/assets/tooltip-CgGbBdYf.js.gz +0 -0
- package/ui-dist/assets/trash-2-CVOev8yc.js +1 -0
- package/ui-dist/assets/treeView-QDETBFTQ-Dad4_Wc7.js +1 -0
- package/ui-dist/assets/treemap-6X3UGDF4-9_GWWZsY.js +1 -0
- package/ui-dist/assets/use-config-b2DN67gs.js +1 -0
- package/ui-dist/assets/use-config-b2DN67gs.js.gz +0 -0
- package/ui-dist/assets/use-desktop-capabilities-B3tLU1yl.js +1 -0
- package/ui-dist/assets/use-desktop-capabilities-B3tLU1yl.js.gz +0 -0
- package/ui-dist/assets/use-panel-app-scroll-restoration-BekzoX6z.js +1 -0
- package/ui-dist/assets/use-panel-app-scroll-restoration-BekzoX6z.js.gz +0 -0
- package/ui-dist/assets/use-viewport-layout-CUA3jQsA.js +1 -0
- package/ui-dist/assets/use-viewport-layout-CUA3jQsA.js.gz +0 -0
- package/ui-dist/assets/utils-UBHTdG5Q.js +8 -0
- package/ui-dist/assets/utils-UBHTdG5Q.js.gz +0 -0
- package/ui-dist/assets/{vennDiagram-L72KCM5P-BxOOnO9x.js → vennDiagram-L72KCM5P-BDvcOCo2.js} +1 -1
- package/ui-dist/assets/vennDiagram-L72KCM5P-BDvcOCo2.js.gz +0 -0
- package/ui-dist/assets/wardley-OPB4EBWU-BXpvyee9.js +1 -0
- package/ui-dist/assets/{wardleyDiagram-EHGQE667-Cl7NltMv.js → wardleyDiagram-EHGQE667-jMLMgjzE.js} +1 -1
- package/ui-dist/assets/wardleyDiagram-EHGQE667-jMLMgjzE.js.gz +0 -0
- package/ui-dist/assets/x-C0iaOsRW.js +1 -0
- package/ui-dist/assets/{xychartDiagram-FW5EYKEG-DiMIxQ7N.js → xychartDiagram-FW5EYKEG-pzrpclEv.js} +1 -1
- package/ui-dist/assets/xychartDiagram-FW5EYKEG-pzrpclEv.js.gz +0 -0
- package/ui-dist/index.html +56 -25
- package/ui-dist/index.html.gz +0 -0
- package/ui-dist/panel-standalone.html +30 -0
- package/ui-dist/panel-standalone.html.gz +0 -0
- package/ui-dist/assets/abnfDiagram-VRR7QNED-BcFJp_1X.js.gz +0 -0
- package/ui-dist/assets/aiden0z-pptx-renderer.es-Dp2ezlQn.js.gz +0 -0
- package/ui-dist/assets/api-BqVIq0lF.js +0 -13
- package/ui-dist/assets/api-BqVIq0lF.js.gz +0 -0
- package/ui-dist/assets/appearance-settings-page-CTWn1eAT.js +0 -1
- package/ui-dist/assets/appearance-settings-page-CTWn1eAT.js.gz +0 -0
- package/ui-dist/assets/arc-CkgyPMyW.js.gz +0 -0
- package/ui-dist/assets/architecture-TIHT7OUA-DO2x53FK.js +0 -1
- package/ui-dist/assets/architectureDiagram-ZJ3FMSHR-CMd4cIjI.js.gz +0 -0
- package/ui-dist/assets/blockDiagram-677ZJIJ3-Bz3tbhet.js.gz +0 -0
- package/ui-dist/assets/c4Diagram-LMCZKHZV-D9hFNAGv.js.gz +0 -0
- package/ui-dist/assets/channel-nBvMaVyP.js +0 -1
- package/ui-dist/assets/channels-list-page-Bzn-pzyJ.js +0 -8
- package/ui-dist/assets/channels-list-page-Bzn-pzyJ.js.gz +0 -0
- package/ui-dist/assets/chunk-2Q5K7J3B-CJgqFDS4.js +0 -1
- package/ui-dist/assets/chunk-32BRIVSS-7NrjEITq.js.gz +0 -0
- package/ui-dist/assets/chunk-52WLFC77-viIcqj9q.js.gz +0 -0
- package/ui-dist/assets/chunk-5JV3BV7I-CuKgJQ4W.js.gz +0 -0
- package/ui-dist/assets/chunk-5TONJI2A-CYeiWZKb.js.gz +0 -0
- package/ui-dist/assets/chunk-7BUUIJ7U-BvydOcm3.js.gz +0 -0
- package/ui-dist/assets/chunk-C7G6YPKG-DAizzYwr.js.gz +0 -0
- package/ui-dist/assets/chunk-EX3LRPZG-BmlDFIRW.js.gz +0 -0
- package/ui-dist/assets/chunk-FWX5IMBZ-D0ksHZZ9.js.gz +0 -0
- package/ui-dist/assets/chunk-HOUHSVGY-DPkq8FCm.js.gz +0 -0
- package/ui-dist/assets/chunk-ICXQ74PX-FAatv5fC.js.gz +0 -0
- package/ui-dist/assets/chunk-JG7HCLWE-DLkIi4F7.js.gz +0 -0
- package/ui-dist/assets/chunk-MOJQB5TN-Di52TorW.js.gz +0 -0
- package/ui-dist/assets/chunk-PUDLZKDR-f3IJh3sN.js.gz +0 -0
- package/ui-dist/assets/chunk-Q4XR5HBZ-DQFeUPxZ.js.gz +0 -0
- package/ui-dist/assets/chunk-R7FJI6CG-C3XpZ-2u.js.gz +0 -0
- package/ui-dist/assets/chunk-RYQCIY6F-CAqa5klQ.js.gz +0 -0
- package/ui-dist/assets/chunk-U6XO7XAA-D_WXezeD.js.gz +0 -0
- package/ui-dist/assets/chunk-V7JOEXUC-CZ70oOtp.js.gz +0 -0
- package/ui-dist/assets/chunk-VAUOI2AC-BGvh3yIx.js +0 -1
- package/ui-dist/assets/chunk-WYO6CB5R-Dn9To_OI.js.gz +0 -0
- package/ui-dist/assets/chunk-XXDRQBXY-DaBxG5gs.js +0 -1
- package/ui-dist/assets/chunk-ZGVPDNZ5-C6YtZDU0.js.gz +0 -0
- package/ui-dist/assets/chunk-ZIRB5QZD-DMuYtnHF.js.gz +0 -0
- package/ui-dist/assets/classDiagram-OUVF2IWQ-P6N03G2R.js +0 -1
- package/ui-dist/assets/classDiagram-v2-EOCWNBFH-B1_uLvMv.js +0 -1
- package/ui-dist/assets/config-split-page-CnRbXXlh.js +0 -1
- package/ui-dist/assets/config-split-page-CnRbXXlh.js.gz +0 -0
- package/ui-dist/assets/confirm-dialog-B_Hbcra2.js +0 -5
- package/ui-dist/assets/confirm-dialog-B_Hbcra2.js.gz +0 -0
- package/ui-dist/assets/cose-bilkent-JH36ORCC-Bc2Ex5Y3.js.gz +0 -0
- package/ui-dist/assets/cynefin-VYW2F7L2-B-H8Qp-n.js +0 -1
- package/ui-dist/assets/cynefinDiagram-TSTJHNR4-DVysQoGz.js.gz +0 -0
- package/ui-dist/assets/dagre-CMhQ1cAG.js.gz +0 -0
- package/ui-dist/assets/dagre-VKFMJZFB-RYyWpPJZ.js.gz +0 -0
- package/ui-dist/assets/desktop-capabilities-page-C2ayYQTr.js +0 -1
- package/ui-dist/assets/desktop-capabilities-page-C2ayYQTr.js.gz +0 -0
- package/ui-dist/assets/desktop-update-config-C13czpyL.js +0 -1
- package/ui-dist/assets/desktop-update-config-C13czpyL.js.gz +0 -0
- package/ui-dist/assets/diagram-FQU43EPY-BD6KONdF.js.gz +0 -0
- package/ui-dist/assets/diagram-G47NLZAW-CGB2ptRR.js.gz +0 -0
- package/ui-dist/assets/diagram-NH7WQ7WH-DnkOI6cU.js.gz +0 -0
- package/ui-dist/assets/diagram-OA4YK3LP-DF82RZ7P.js.gz +0 -0
- package/ui-dist/assets/diagram-WEI45ONY-Be2v7Ck9.js.gz +0 -0
- package/ui-dist/assets/dist--ta5rX12.js.gz +0 -0
- package/ui-dist/assets/dist-BsF3hfOi.js +0 -1
- package/ui-dist/assets/dist-BsF3hfOi.js.gz +0 -0
- package/ui-dist/assets/dist-aNN3iQxV.js.gz +0 -0
- package/ui-dist/assets/doc-browser-D8dIOo9E.js +0 -1
- package/ui-dist/assets/doc-browser-D8dIOo9E.js.gz +0 -0
- package/ui-dist/assets/doc-browser-DcuOOtpP.js +0 -1
- package/ui-dist/assets/doc-browser-context-Dhsit2Ma.js +0 -1
- package/ui-dist/assets/doc-browser-context-Dhsit2Ma.js.gz +0 -0
- package/ui-dist/assets/docx-preview-BqwAjrj3.js.gz +0 -0
- package/ui-dist/assets/ebnfDiagram-CCIWWBDH-CP98OYk8.js.gz +0 -0
- package/ui-dist/assets/erDiagram-Q63AITRT-ZLlx8xfs.js.gz +0 -0
- package/ui-dist/assets/eventmodeling-45OFAUF4-YVtShyFA.js +0 -1
- package/ui-dist/assets/extensions-CD6xvKF_.js +0 -1
- package/ui-dist/assets/extensions-CD6xvKF_.js.gz +0 -0
- package/ui-dist/assets/flowDiagram-23GEKE2U-BeKXabVO.js +0 -1
- package/ui-dist/assets/form-actions-CC4Wz_lL.js +0 -1
- package/ui-dist/assets/ganttDiagram-NO4QXBWP-DXCDjHR2.js.gz +0 -0
- package/ui-dist/assets/gitGraph-TEB2WS4Q-jTSiBj-p.js +0 -1
- package/ui-dist/assets/gitGraphDiagram-IHSO6WYX-l2HWrTJp.js.gz +0 -0
- package/ui-dist/assets/index-BTsbdtv6.js +0 -109
- package/ui-dist/assets/index-BTsbdtv6.js.gz +0 -0
- package/ui-dist/assets/index-Bcfy2kTh.css +0 -1
- package/ui-dist/assets/index-Bcfy2kTh.css.gz +0 -0
- package/ui-dist/assets/info-DKCQHKI2-BIporNWb.js +0 -1
- package/ui-dist/assets/ishikawaDiagram-FXEZZL3T-y_Xy128F.js.gz +0 -0
- package/ui-dist/assets/journeyDiagram-5HDEW3XC-DJn5xYcQ.js.gz +0 -0
- package/ui-dist/assets/jszip.min-8hyJpgpx.js.gz +0 -0
- package/ui-dist/assets/kanban-definition-HUTT4EX6-DJVIOR21.js.gz +0 -0
- package/ui-dist/assets/linear-BtDLqtzF.js.gz +0 -0
- package/ui-dist/assets/loader-circle-B6aFbB-8.js +0 -1
- package/ui-dist/assets/map-BKnQyvd0.js.gz +0 -0
- package/ui-dist/assets/mcp-marketplace-page-BtUAypA7.js +0 -1
- package/ui-dist/assets/mcp-marketplace-page-r2MmD9xO.js +0 -10
- package/ui-dist/assets/mcp-marketplace-page-r2MmD9xO.js.gz +0 -0
- package/ui-dist/assets/mermaid-parser.core-XUNZhr2W.js.gz +0 -0
- package/ui-dist/assets/mermaid.core-ySrvolIe.js.gz +0 -0
- package/ui-dist/assets/mindmap-definition-LN4V7U3C-BypL9tei.js.gz +0 -0
- package/ui-dist/assets/model-config-page-DboxoT-I.js +0 -1
- package/ui-dist/assets/model-config-page-DboxoT-I.js.gz +0 -0
- package/ui-dist/assets/navigation-link-C_6oj3zz.js.gz +0 -0
- package/ui-dist/assets/ordinal-CxxVWxYU.js.gz +0 -0
- package/ui-dist/assets/packet-7NZHBO7P-CuFMADV0.js +0 -1
- package/ui-dist/assets/pegDiagram-2B236MQR-D-U2KBGv.js.gz +0 -0
- package/ui-dist/assets/pie-RZYD4A2V-XUeIXhM9.js +0 -1
- package/ui-dist/assets/pieDiagram-ENE6RG2P-CBi3GusJ.js.gz +0 -0
- package/ui-dist/assets/plus-DRsq9Kvs.js +0 -1
- package/ui-dist/assets/privacy-settings-page-C2sDBqhb.js +0 -1
- package/ui-dist/assets/privacy-settings-page-C2sDBqhb.js.gz +0 -0
- package/ui-dist/assets/projects-BcPcx-uD.js +0 -1
- package/ui-dist/assets/projects-BcPcx-uD.js.gz +0 -0
- package/ui-dist/assets/providers-config-page-CmUFl9RF.js +0 -1
- package/ui-dist/assets/providers-config-page-CmUFl9RF.js.gz +0 -0
- package/ui-dist/assets/quadrantDiagram-ABIIQ3AL-H0ZuvnZL.js.gz +0 -0
- package/ui-dist/assets/radar-I7S5WNFK-D-NNGh1k.js +0 -1
- package/ui-dist/assets/railroad-3IZDKUUU-C67_uDaM.js +0 -1
- package/ui-dist/assets/railroad-abnf-AHOZXSZD-BZ8Yflnd.js +0 -1
- package/ui-dist/assets/railroad-ebnf-EBAXGLYW-B7zO7RoK.js +0 -1
- package/ui-dist/assets/railroad-peg-LSFZ7HO6-R63PTgLz.js +0 -1
- package/ui-dist/assets/railroadDiagram-RFXS5EU6-D7Y2EqSd.js.gz +0 -0
- package/ui-dist/assets/react-BjO9I4WZ.js +0 -8
- package/ui-dist/assets/react-BjO9I4WZ.js.gz +0 -0
- package/ui-dist/assets/remote-Ci6x91ES.js +0 -1
- package/ui-dist/assets/requirementDiagram-TGXJPOKE-BiXNX1NN.js.gz +0 -0
- package/ui-dist/assets/runtime-config-page-cQKNeAjL.js +0 -1
- package/ui-dist/assets/runtime-config-page-cQKNeAjL.js.gz +0 -0
- package/ui-dist/assets/sankeyDiagram-HTMAVEWB-qzDeLztW.js.gz +0 -0
- package/ui-dist/assets/search-config-page-C8lOIkxn.js +0 -1
- package/ui-dist/assets/search-config-page-C8lOIkxn.js.gz +0 -0
- package/ui-dist/assets/secrets-config-page-8clzAag2.js +0 -3
- package/ui-dist/assets/secrets-config-page-8clzAag2.js.gz +0 -0
- package/ui-dist/assets/security-config-DPbM6IVT.js +0 -1
- package/ui-dist/assets/select-CO9S_C2C.js +0 -41
- package/ui-dist/assets/select-CO9S_C2C.js.gz +0 -0
- package/ui-dist/assets/skeleton-IHILNhIW.js +0 -1
- package/ui-dist/assets/src-Bw-mzbQb.js.gz +0 -0
- package/ui-dist/assets/stateDiagram-2N3HPSRC-BJ-mFeOz.js.gz +0 -0
- package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-BE-HqxOK.js +0 -1
- package/ui-dist/assets/swimlanes-5IMT3BWC-BsucVOO2.js.gz +0 -0
- package/ui-dist/assets/swimlanesDiagram-G3AALYLV-Dr1H9LJH.js +0 -8
- package/ui-dist/assets/timeline-definition-FHXFAJF6-Bicewlzo.js.gz +0 -0
- package/ui-dist/assets/treeView-QDETBFTQ-npJ5dbqS.js +0 -1
- package/ui-dist/assets/treemap-6X3UGDF4-pYrBx6oa.js +0 -1
- package/ui-dist/assets/vennDiagram-L72KCM5P-BxOOnO9x.js.gz +0 -0
- package/ui-dist/assets/wardley-OPB4EBWU-CmSRKLR8.js +0 -1
- package/ui-dist/assets/wardleyDiagram-EHGQE667-Cl7NltMv.js.gz +0 -0
- package/ui-dist/assets/x-BuvHIb1d.js +0 -1
- package/ui-dist/assets/xychartDiagram-FW5EYKEG-DiMIxQ7N.js.gz +0 -0
- /package/ui-dist/assets/{array-BQVzeGRt.js → array-BHDgItFN.js} +0 -0
- /package/ui-dist/assets/{chunk-DseTPa7n.js → chunk-DF37yw5_.js} +0 -0
- /package/ui-dist/assets/{chunk-DseTPa7n.js.gz → chunk-DF37yw5_.js.gz} +0 -0
- /package/ui-dist/assets/{chunk-KEIR6QF5-f9psyCXK.js → chunk-KEIR6QF5-DstBw0Hk.js} +0 -0
- /package/ui-dist/assets/{chunk-KEIR6QF5-f9psyCXK.js.gz → chunk-KEIR6QF5-DstBw0Hk.js.gz} +0 -0
- /package/ui-dist/assets/{chunk-Y2CYZVJY-D1mAU_Po.js → chunk-Y2CYZVJY-CA3ymQuH.js} +0 -0
- /package/ui-dist/assets/{config-hints-nV5HPOvq.js → config-hints-CBPHrfYk.js} +0 -0
- /package/ui-dist/assets/{cytoscape.esm-0uDtdD0l.js → cytoscape.esm-C7xr90o_.js} +0 -0
- /package/ui-dist/assets/{cytoscape.esm-0uDtdD0l.js.gz → cytoscape.esm-C7xr90o_.js.gz} +0 -0
- /package/ui-dist/assets/{defaultLocale-DSWXGgt0.js → defaultLocale-BG1oDVag.js} +0 -0
- /package/ui-dist/assets/{defaultLocale-DSWXGgt0.js.gz → defaultLocale-BG1oDVag.js.gz} +0 -0
- /package/ui-dist/assets/{graphlib-CQ6QV4yP.js → graphlib-CNMGfuTb.js} +0 -0
- /package/ui-dist/assets/{graphlib-CQ6QV4yP.js.gz → graphlib-CNMGfuTb.js.gz} +0 -0
- /package/ui-dist/assets/{host-capabilities-Tk038i04.js → host-capabilities-B107nwS3.js} +0 -0
- /package/ui-dist/assets/{init-Y6h9jGtZ.js → init-wQIZuRSH.js} +0 -0
- /package/ui-dist/assets/{katex-ARhY9PS1.js → katex-J8JuvgNl.js} +0 -0
- /package/ui-dist/assets/{katex-ARhY9PS1.js.gz → katex-J8JuvgNl.js.gz} +0 -0
- /package/ui-dist/assets/{middleware-DXsbf9xI.js → middleware-0o3JF3tS.js} +0 -0
- /package/ui-dist/assets/{middleware-DXsbf9xI.js.gz → middleware-0o3JF3tS.js.gz} +0 -0
- /package/ui-dist/assets/{path-10BjdyLh.js → path-N-C4MRP0.js} +0 -0
- /package/ui-dist/assets/{path-10BjdyLh.js.gz → path-N-C4MRP0.js.gz} +0 -0
- /package/ui-dist/assets/{preload-helper-D4M6sveU.js → preload-helper-ca-nBW7U.js} +0 -0
- /package/ui-dist/assets/{preload-helper-D4M6sveU.js.gz → preload-helper-ca-nBW7U.js.gz} +0 -0
- /package/ui-dist/assets/{rough.esm-DxgC_14r.js → rough.esm-BeWA068d.js} +0 -0
- /package/ui-dist/assets/{rough.esm-DxgC_14r.js.gz → rough.esm-BeWA068d.js.gz} +0 -0
- /package/ui-dist/assets/{xlsx-DrDuDNAa.js → xlsx-CwUXNtD3.js} +0 -0
- /package/ui-dist/assets/{xlsx-DrDuDNAa.js.gz → xlsx-CwUXNtD3.js.gz} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={chat:`对话`,model:`模型`,searchChannels:`搜索渠道`,providers:`提供商`,extensions:`Extensions`,channels:`渠道`,cron:`定时任务`,secrets:`密钥管理`,runtime:`路由与运行时`,remote:`远程访问`,marketplace:`市场`,advanced:`高级`,settings:`设置`,settingsGroupBasic:`基础配置`,settingsGroupAdvanced:`高级配置`,appearance:`外观`,chatMessageLayoutTitle:`消息布局`,chatMessageLayoutDescription:`选择聊天消息的展示方式。`,chatMessageLayoutCard:`卡片式`,chatMessageLayoutCardDescription:`用户与 AI 消息都使用独立卡片展示。`,chatMessageLayoutFlat:`平铺式`,chatMessageLayoutFlatDescription:`用户消息保留气泡,AI 消息以头像、名称和正文平铺展示。`,settingsMenu:`设置菜单`,sidebarCollapse:`收起侧边栏`,sidebarExpand:`展开侧边栏`,security:`登录管理`,privacy:`隐私与统计`,desktopCapabilities:`桌面操作`,desktopCapabilitiesPageTitle:`桌面操作`,desktopCapabilitiesPageDescription:`查看 NextClaw Desktop 的系统权限,并管理 AI 和 Extension 可以访问的桌面应用。`,desktopCapabilitiesSystemTitle:`系统权限`,desktopCapabilitiesSystemDescription:`macOS 只需要授权 NextClaw Desktop;每个 AI 或 Extension 仍需单独获得应用访问许可。`,desktopCapabilitiesHostStatus:`Desktop Host`,desktopCapabilitiesHostOnline:`已连接,可以检查桌面应用和系统权限。`,desktopCapabilitiesHostOffline:`未连接。请先启动 NextClaw Desktop。`,desktopCapabilitiesRecheck:`重新检查`,desktopCapabilitiesAccessibility:`辅助功能`,desktopCapabilitiesOpenSettings:`打开系统设置`,desktopCapabilitiesRequestPermission:`请求权限`,desktopCapabilitiesPermissionGranted:`已允许 NextClaw Desktop 控制本机应用。`,desktopCapabilitiesPermissionNotGranted:`尚未允许。打开系统设置后为 NextClaw Desktop 开启辅助功能。`,desktopCapabilitiesPermissionNotSupported:`当前系统不支持这项桌面操作。`,desktopCapabilitiesPermissionUnknown:`暂时无法读取权限状态。`,desktopCapabilitiesGrantsTitle:`应用访问许可`,desktopCapabilitiesGrantsDescription:`这里的许可决定哪个 AI 或 Extension 可以读取或操作哪个应用。撤销后,相关操作会立即停止。`,desktopCapabilitiesNoGrants:`还没有应用访问许可`,desktopCapabilitiesNoGrantsDescription:`AI 或 Extension 首次访问桌面应用时,NextClaw 会请求你的允许。`,desktopCapabilitiesAgent:`AI`,desktopCapabilitiesExtension:`Extension`,desktopCapabilitiesUnknownApplication:`未知应用`,desktopCapabilitiesRevoke:`撤销许可`,desktopAuthorizationTitle:`允许桌面访问?`,desktopAuthorizationDescription:`这项操作需要访问本机应用。请确认发起者、应用和操作范围。`,desktopAuthorizationCaller:`发起者`,desktopAuthorizationApplication:`应用`,desktopAuthorizationAccess:`操作范围`,desktopAuthorizationRead:`读取可见内容`,desktopAuthorizationObserve:`持续观察可见变化`,desktopAuthorizationWrite:`写入应用`,desktopAuthorizationScreenCapture:`截取当前窗口可见内容`,desktopAuthorizationPointerInput:`在应用窗口内点击`,desktopAuthorizationReadRisk:`允许后,这个发起者可以读取或观察该应用中当前可见的内容,直到你在“桌面操作”中撤销许可。`,desktopAuthorizationWriteRisk:`允许后,这个 AI 可以向该应用写入草稿。当前许可不包含发送或确认操作。`,desktopAuthorizationScreenCaptureRisk:`允许后,这个发起者可以截取该应用当前窗口的可见内容并交给 AI 理解,直到你在“桌面操作”中撤销许可。`,desktopAuthorizationPointerInputRisk:`允许后,这个 AI 可以在该应用已授权的窗口内点击,但不能按键、滚动、拖拽、发送或确认。`,desktopAuthorizationReject:`不允许`,desktopAuthorizationAllow:`允许`,desktopAuthorizationAllowing:`正在允许…`,desktopAuthorizationAllowed:`已允许。AI 可以重试刚才的操作。`,desktopAuthorizationFailed:`未能保存桌面访问许可。`,backToMain:`返回主界面`,enabled:`启用`,disabled:`禁用`,save:`保存`,cancel:`取消`,delete:`删除`,add:`添加`,edit:`编辑`,loading:`加载中...`,success:`成功`,error:`错误`,confirm:`确认`,unchanged:`未修改`,saving:`保存中...`,remove:`移除`,more:`更多`,notificationDismiss:`关闭通知`,all:`全部`,yes:`是`,no:`否`,prev:`上一页`,next:`下一页`,noneOption:`无`,language:`语言`,theme:`主题`,themeNatural:`自然`,themeWork:`默认`,themeMinimal:`简白`,themeWarm:`纸暖`,themeCool:`雾蓝`,themeDawn:`晨砂`,themeGraphite:`石墨`,themeNight:`暗夜`,themeCharcoal:`炭夜`,themeIsland:`岛屿`,themeProbe:`探针`,isRequired:`必填`,duplicate:`重复`,notFound:`未找到`,modelPageTitle:`模型配置`,modelPageDescription:`配置默认 AI 模型选择`,defaultModel:`默认模型`,workspace:`工作空间`,modelName:`模型`,modelPickerNoOptions:`暂无可选模型`,modelPickerUseCustom:`使用自定义模型:{value}`,modelPickerToggleOptions:`展开或收起模型选项`,modelInputCustomHint:`如果列表里没有目标模型,可直接输入自定义模型 ID。`,modelIdentifierHelp:`智能体默认模型标识,使用带提供商前缀的格式。例如:openai/gpt-5.1、anthropic/claude-opus-4-1、deepseek/deepseek-chat、minimax/MiniMax-M2.5、openrouter/openai/gpt-5.3-codex。`,saveChanges:`保存变更`,providersPageTitle:`AI 提供商`,providersPageDescription:`在一个页面内完成提供商切换、配置与保存。`,providersLoading:`加载中...`,providersTabConfigured:`已配置`,providersTabAll:`全部提供商`,providersFilterPlaceholder:`搜索提供商`,providersNoMatch:`没有匹配的提供商`,providerAdd:`新增提供商`,providerAddCustom:`新增自定义提供商`,providerTemplatePickerTitle:`选择提供商模板`,providerDelete:`删除该提供商`,providerDeleteConfirm:`确认删除这个提供商吗?删除后不可恢复。`,providersSelectPlaceholder:`选择提供商`,providersSelectTitle:`选择左侧提供商开始配置`,providersSelectDescription:`你可以连续切换多个提供商并逐个保存配置。`,providersDefaultDescription:`为你的智能体配置 AI 服务`,providersEmptyTitle:`尚未配置提供商`,providersEmptyDescription:`添加一个 AI 提供商后即可开始使用。`,extensionsPageTitle:`Extensions 管理`,extensionsPageDescription:`查看已发现的 Extension、能力和当前运行状态。`,extensionsRefresh:`刷新`,extensionsLifecycleDescription:`Extension 由运行时按渠道和会话持续关注关系按需启停;这里集中查看全局能力和运行状态。`,extensionsLoading:`正在加载 Extensions…`,extensionsLoadFailed:`Extensions 加载失败。`,extensionsRetry:`重试`,extensionsEmpty:`暂无已发现的 Extension`,extensionsEmptyDescription:`安装或放置 Extension 后,重新刷新此页面。`,extensionsTotal:`全部`,extensionsRunning:`运行中`,extensionsWithObservations:`支持持续关注`,extensionsWithChannels:`支持渠道`,extensionsObservationCapabilities:`持续关注能力`,extensionsChannelCapabilities:`渠道能力`,extensionsContextCapability:`状态`,extensionsEventsCapability:`事件`,extensionsNone:`无`,extensionsLeaseCount:`活跃使用数`,extensionsProcess:`进程`,extensionsStartedAt:`启动于`,extensionsStateRunning:`运行中`,extensionsStateStarting:`启动中`,extensionsStateStopping:`停止中`,extensionsStateStopped:`已停止`,extensionsStateFailed:`失败`,apiKey:`API 密钥`,apiBase:`API Base URL`,extraHeaders:`额外请求头`,wireApi:`请求接口`,wireApiAuto:`自动(优先 Chat,必要时 Responses)`,wireApiChat:`Chat Completions`,wireApiResponses:`Responses`,apiKeySet:`已设置`,apiKeyNotSet:`未设置`,showKey:`显示密钥`,hideKey:`隐藏密钥`,providerFormDescription:`配置 AI 提供商的 API 密钥与参数`,providerDisplayName:`自定义名称`,providerDisplayNamePlaceholder:`例如:中转站 A`,providerDisplayNameHelp:`仅用于界面展示,便于区分多个自定义 Provider。`,enterApiKey:`请输入 API 密钥`,providerApiBaseHelp:`留空或恢复默认即可使用预置 API Base。`,providerApiBaseHelpMinimax:`MiniMax 中国区请使用 https://api.minimaxi.com/v1;海外请使用 https://api.minimax.io/v1。`,providerOpenAICompatHint:`自定义提供商默认按 OpenAI 兼容 API 格式接入(Chat Completions / Responses)。`,providerExtraHeadersHelp:`用于自定义请求头(可选)。`,providerTestConnection:`测试连接`,providerTestingConnection:`测试中...`,providerTestConnectionSuccess:`连接测试通过`,providerTestConnectionFailed:`连接测试失败`,providerModelsTitle:`可用模型列表`,providerModelsFetch:`获取模型列表`,providerModelsFetching:`获取中...`,providerModelsFetchSuccess:`模型列表获取成功`,providerModelsFetchFailed:`获取模型列表失败`,providerModelsApiKeyRequired:`请先填写 API Key,再获取模型列表`,providerModelsAuthorizationFailed:`认证失败,请检查 API Key 是否正确,以及 API 地址是否匹配`,providerModelsSuggestionsChecking:`正在读取模型目录…`,providerModelsSuggestionsFailed:`模型目录读取失败。请检查 API Key、API 地址或网络连接;你仍可手动添加模型。`,providerModelsSuggestionsSummary:`目录中有 {count} 个未添加模型`,providerModelsFetchedSuggestionsSummary:`已获取 {count} 个可添加模型`,providerModelsFetchedAllConfigured:`已获取 {count} 个模型,当前列表已全部包含`,providerModelsSuggestionsAddAll:`全部添加`,providerModelsSuggestionSelect:`选择模型 {model}`,providerModelsSuggestionsSelected:`已选择 {count} 个`,providerModelsSuggestionsAddSelected:`添加所选`,providerModelsSuggestionsSaveHint:`添加后请保存以应用配置。`,providerModelsSuggestionsSearchPlaceholder:`搜索目录模型`,providerModelsSuggestionsSearchEmpty:`没有匹配的模型`,providerModelsSuggestionsShowing:`显示前 {visible} 个匹配项,共 {count} 个;继续搜索可缩小范围`,providerModelsBulkRemove:`批量删除`,providerModelsSelectAll:`全选`,providerModelsClearSelection:`取消全选`,providerModelsRemoveSelected:`删除所选`,providerModelsRemoveSaveHint:`删除只会修改当前草稿,保存后才会应用。`,providerModelInputPlaceholder:`输入 provider 本地模型 ID(可包含 /)`,providerModelInputHint:`列表仅作参考,不在列表也可直接输入并添加。`,providerAddModel:`添加模型`,providerModelsEmpty:`当前没有模型,可直接输入并添加。`,providerModelDefaultTag:`默认`,providerModelCustomTag:`自定义`,providerModelsHelp:`系统会先填充预置模型;你可以在这里新增或删除。请填写不带当前 provider 路由前缀的本地模型 ID;vendor/model 这类多段 ID 合法。若输入包含当前 provider 前缀,只会去掉最外层前缀。`,providerModelsEmptyShort:`暂无可用模型`,providerAddFirstModel:`添加第一个模型`,providerModelVisionTitle:`视觉能力`,providerModelVisionHint:`允许向该模型发送图片输入。`,providerModelThinkingTitle:`思考档位能力`,providerModelThinkingHint:`为该模型声明可切换的思考档位,聊天会话将按这里的能力展示下拉。`,providerModelThinkingDefault:`默认思考档位`,providerModelThinkingDefaultNone:`无默认(回落 off)`,providerModelThinkingNoSupported:`请先至少选择一个支持档位。`,providerDisplayNameHelpShort:`便于区分多个自定义提供商`,providerApiBaseHelpShort:`一般只需填写域名,系统自动补全路径`,providerExtraHeadersHelpShort:`可选,用于自定义鉴权等场景`,providerAdvancedSettings:`高级设置`,providerAuthSectionTitle:`提供商授权`,providerAuthStarting:`启动中...`,providerAuthAuthorizing:`授权中...`,providerAuthAuthorizeInBrowser:`浏览器授权`,providerAuthWaitingBrowser:`等待浏览器完成授权...`,providerAuthCompleted:`授权已完成。`,providerAuthOpenPrompt:`请在浏览器完成授权,验证码:`,providerAuthOpenPromptSuffix:``,providerAuthStartFailed:`启动授权失败`,providerAuthMethodLabel:`授权区域`,providerAuthMethodPlaceholder:`请选择授权方式`,providerAuthImportFromCli:`从 Qwen CLI 导入`,providerAuthImporting:`导入中...`,providerAuthImportSuccess:`已从 CLI 导入凭证。`,providerAuthImportStatusPrefix:`CLI 导入成功。`,providerAuthImportFailed:`导入凭证失败`,providerAuthSessionLabel:`会话`,resetToDefault:`恢复默认`,leaveBlankToKeepUnchanged:`留空则保持不变`,consentGranted:`同意条款`,imapHost:`IMAP 服务器`,imapPort:`IMAP 端口`,imapUsername:`IMAP 用户名`,imapPassword:`IMAP 密码`,imapMailbox:`IMAP 邮箱`,imapUseSsl:`IMAP 使用 SSL`,smtpHost:`SMTP 服务器`,smtpPort:`SMTP 端口`,smtpUsername:`SMTP 用户名`,smtpPassword:`SMTP 密码`,smtpUseTls:`SMTP 使用 TLS`,smtpUseSsl:`SMTP 使用 SSL`,fromAddress:`发件地址`,autoReplyEnabled:`自动回复已启用`,pollIntervalSeconds:`轮询间隔(秒)`,markSeen:`标记为已读`,maxBodyChars:`最大正文字符数`,subjectPrefix:`主题前缀`,baseUrl:`Base URL`,socketUrl:`Socket URL`,socketPath:`Socket 路径`,socketDisableMsgpack:`禁用 Msgpack`,socketReconnectDelayMs:`重连延迟(ms)`,socketMaxReconnectDelayMs:`最大重连延迟(ms)`,socketConnectTimeoutMs:`连接超时(ms)`,refreshIntervalMs:`刷新间隔(ms)`,watchTimeoutMs:`监视超时(ms)`,watchLimit:`监视限制`,retryDelayMs:`重试延迟(ms)`,maxRetryAttempts:`最大重试次数`,clawToken:`Claw Token`,agentUserId:`代理用户ID`,sessions:`会话`,panels:`面板`,mentionRequireInGroups:`群组中需要@`,groups:`群组`,replyDelayMode:`回复延迟模式`,replyDelayMs:`回复延迟(ms)`,secret:`密钥`,accountId:`账号 ID`,dmPolicy:`私聊策略`,groupAllowFrom:`群组允许来源`,requireMention:`需要 @ 提及`,mentionPatterns:`提及匹配规则`,groupRulesJson:`群组规则(JSON)`,allowBotMessages:`允许机器人消息`,attachmentMaxSizeMb:`附件最大体积(MB)`,streamingMode:`流式模式`,draftChunkingJson:`草稿分块(JSON)`,textChunkLimit:`文本分块上限`,invalidJson:`JSON 格式无效`,authBrand:`NextClaw UI`,authLoginTitle:`管理员登录`,authLoginDescription:`认证已开启。登录后才能查看这台机器的 NextClaw UI。`,authUsername:`管理员用户名`,authUsernamePlaceholder:`输入管理员用户名`,authPassword:`管理员密码`,authPasswordPlaceholder:`输入管理员密码`,authConfirmPassword:`确认密码`,authConfirmPasswordPlaceholder:`再次输入密码`,authLoginAction:`登录`,authLoggingIn:`登录中...`,authLoggingOut:`退出中...`,authActionFailed:`认证操作失败`,authLoginSuccess:`登录成功`,authLogoutSuccess:`已退出登录`,authSetupSuccess:`认证已开启,当前标签页已自动登录,可直接继续使用`,authPasswordUpdated:`管理员密码已更新`,authEnabledSuccess:`认证已开启`,authDisabledSuccess:`认证已关闭`,authRetryStatus:`重试`,authStatusLoadFailed:`无法获取认证状态,请检查 UI 服务是否正常。`,authSecurityTitle:`登录管理`,authSecurityDescription:`设置进入 NextClaw 时是否需要登录,并管理登录账号和密码。`,authSetupTitle:`开启轻量认证`,authSetupDescription:`首次开启时设置单个管理员账号。完成后当前标签页会自动登录。`,authSetupAction:`开启认证`,authSettingUp:`开启中...`,authPasswordMismatch:`两次输入的密码不一致`,authPasswordMinLengthHint:`密码至少 8 个字符。当前版本只支持单管理员账号。`,authStatusLabel:`当前状态`,authStatusConfiguredUser:`管理员账号:{username}`,authUsernameFixedHelp:`首版不提供修改用户名和多用户管理;如需重新定义账号,请后续扩展这套边界。`,authEnableLabel:`要求登录`,authEnableOnHelp:`已开启后,除健康检查与认证接口外,其余 UI API 和 WebSocket 都需要登录。`,authEnableOffHelp:`当前保持即开即用。重新打开后,这个标签页会自动拿到新的登录会话。`,authPasswordSectionTitle:`修改管理员密码`,authPasswordSectionDescription:`更新密码后,旧会话会立即失效;当前标签页会自动续成新会话(仅在认证开启时)。`,authPasswordAction:`更新密码`,authPasswordUpdating:`更新中...`,authLogoutAction:`退出当前标签页`,authSessionMemoryNotice:`当前版本的会话只保存在服务端内存里。NextClaw UI 进程重启后,需要重新登录。`,privacyPageTitle:`隐私与统计`,privacyPageDescription:`查看和控制 NextClaw 的匿名使用统计。`,productAnalyticsSectionTitle:`匿名使用统计`,productAnalyticsSectionDescription:`默认开启。修改后立即生效,不需要重启 NextClaw。`,productAnalyticsEnabledTitle:`发送匿名使用统计`,productAnalyticsEnabledDescription:`只发送是否使用成功、日期周期、系统类别、版本和发布通道。`,productAnalyticsAudienceTitle:`统计人群`,productAnalyticsAudienceDescription:`团队成员和测试人员请选择对应分类,避免进入外部用户指标。`,productAnalyticsAudienceExternal:`外部用户`,productAnalyticsAudienceInternal:`团队 / 自用`,productAnalyticsAudienceQa:`QA 测试`,productAnalyticsDataTitle:`数据范围`,productAnalyticsCollectedTitle:`会分享什么`,productAnalyticsCollectedDescription:`活动或成功状态、日/周/月周期、统计人群、运行环境、发布通道、系统类别、产品版本和随机单次回执。`,productAnalyticsExcludedTitle:`不会分享什么`,productAnalyticsExcludedDescription:`不会分享账号、登录令牌、长期安装或设备标识、消息、提示词、回复、工具参数、会话与项目标识、文件路径、URL、IP、User-Agent 或诊断日志。`,productAnalyticsAnonymousTitle:`如何匿名计数`,productAnalyticsAnonymousDescription:`每个日、自然周和自然月使用互不关联的随机单次回执。关闭后会清除本地待发送回执;服务端匿名汇总无法按安装反查或删除。`,productAnalyticsStatusSectionTitle:`发送状态`,productAnalyticsStatusTitle:`匿名统计状态`,productAnalyticsStatusLoading:`正在读取发送状态…`,productAnalyticsStatusNever:`尚未尝试发送。首次真实使用 Agent 后会更新。`,productAnalyticsLastAttemptLabel:`最近尝试`,productAnalyticsLastSuccessLabel:`最近成功`,productAnalyticsPendingLabel:`条待发送回执`,productAnalyticsLastErrorTitle:`最近错误`,dmScope:`私聊范围`,dmScopeHelp:`控制私聊会话如何隔离。`,defaultContextTokens:`默认上下文额度`,defaultContextTokensHelp:`当智能体未设置单独值时使用该上下文预算。`,runtimeCompanionEnabled:`桌宠 Companion`,runtimeCompanionEnabledHelp:`开启后会自动拉起悬浮 Companion;关闭后会立即停止,并在下次启动时保持关闭。`,defaultEngine:`默认运行时`,defaultEngineHelp:`默认使用的智能体运行时,例如 native、codex 或 claude。`,agentList:`智能体列表`,agentListHelp:`在同一个网关进程中运行多个固定角色智能体。`,bindings:`绑定规则`,bindingsHelp:`根据渠道 + 账号 + 对端将入站消息路由到目标智能体。`,agentIdRequiredError:`agents.list[{index}].id 必填`,duplicateAgentId:`重复的智能体 ID`,bindingAgentIdRequired:`bindings[{index}].agentId 必填`,bindingAgentIdNotFound:`bindings[{index}].agentId 未在 agents.list/main 中找到`,bindingChannelRequired:`bindings[{index}].match.channel 必填`,bindingPeerIdRequired:`设置 peer.kind 时,bindings[{index}].match.peer.id 必填`,agentIdPlaceholder:`智能体 ID(例如 engineer)`,workspaceOverridePlaceholder:`工作空间覆盖(可选)`,modelOverridePlaceholder:`模型覆盖(可选)`,defaultEnginePlaceholder:`默认运行时(如 native 或 codex)`,engineOverridePlaceholder:`运行时覆盖(可选)`,contextTokensPlaceholder:`上下文额度`,defaultAgent:`默认智能体`,addAgent:`添加智能体`,targetAgentIdPlaceholder:`目标智能体 ID`,channelPlaceholder:`渠道(例如 discord)`,accountIdOptionalPlaceholder:`账号 ID(可选)`,peerKindOptional:`对端类型(可选)`,peerIdPlaceholder:`对端 ID(需先设置对端类型)`,addBinding:`添加绑定`,saveRuntimeSettings:`保存运行时设置`,secretsPageTitle:`密钥管理`,secretsPageDescription:`集中管理 secrets.providers、secrets.defaults 与 secrets.refs。`,secretsEnabledHelp:"关闭后不会解析 `{{secret:*}}` 引用。",defaultEnvProvider:`默认 Env 提供器`,defaultFileProvider:`默认 File 提供器`,defaultExecProvider:`默认 Exec 提供器`,secretProvidersTitle:`密钥提供器`,secretProvidersDescription:`定义可复用的 secrets provider(env/file/exec)。`,providerAlias:`提供器别名`,removeProvider:`移除提供器`,envPrefix:`环境变量前缀`,secretFilePath:`Secrets 文件路径`,secretExecCommand:`执行命令`,secretExecArgs:`命令参数(每行一个)`,secretExecCwd:`执行目录(可选)`,secretExecTimeoutMs:`超时(毫秒)`,addSecretProvider:`添加 Provider`,secretRefsTitle:`密钥引用`,secretRefsDescription:`把配置路径映射到 secret 引用(source/provider/id)。`,secretConfigPath:`配置路径`,secretId:`Secret ID`,secretProviderAlias:`Provider 别名`,addSecretRef:`添加 Ref`,sessionsLoading:`加载会话中...`,sessionsEmpty:`暂无会话。`,sessionsLabelPlaceholder:`会话标签(可选)`,sessionsRunStatusRunning:`运行中`,sessionsRunStatusQueued:`排队中`,actionConfigure:`配置`,actionAddProvider:`添加提供商`,actionEnable:`启用`,configSaved:`配置已保存`,configSavedApplying:`配置已保存,正在应用`,configSavedApplied:`配置已保存并已应用`,configSaveFailed:`保存配置失败`,configReloaded:`配置已重载`,configReloadFailed:`重载配置失败`,channelConfigApplying:`渠道配置正在应用`,channelConfigApplied:`渠道配置已应用`,channelConfigApplyFailed:`渠道配置应用失败`,feishuVerifySuccess:`验证成功,请到飞书开放平台完成事件订阅与发布后再开始使用。`,feishuVerifyFailed:`验证失败`,enterTag:`输入后按回车...`,headerName:`Header 名称`,headerValue:`Header 值`},t={panelAppsTitle:`面板应用`,panelAppsLoading:`加载面板应用中...`,panelAppsLoadFailed:`面板应用加载失败`,panelAppsEmpty:`暂无面板应用`,panelAppsEmptyTitle:`创建你的第一个面板应用`,panelAppsEmptyDescription:`面板应用是在聊天旁边打开的轻量工具,适合仪表盘、表单、计算器和临时工作台。`,panelAppsEmptyAskTitle:`让 NextClaw 帮你生成`,panelAppsEmptyAskDescription:`从一段现成提示词开始,让 NextClaw 直接创建一个可打开的示例小工具。`,panelAppsEmptyAskAction:`生成示例面板应用`,panelAppsExamplePrompt:`请直接为我创建一个示例 NextClaw Panel App:个人任务看板。请把它放到 NextClaw panels 目录,使用单文件 *.panel.html,包含任务添加、完成状态切换、筛选和本地状态保存。创建完成后告诉我刷新 Panel Apps 并打开它。不要先问我问题。`,panelAppsEmptyFileTitle:`放入 panels 目录`,panelAppsEmptyFileDescription:`也可以添加 *.panel.html 文件,或带 panel-app.json 的 *.panel 目录。`,panelAppsPanelsPath:`面板目录`,panelAppsEmptyFiltered:`当前分类暂无面板应用`,panelAppsRefresh:`刷新面板应用`,panelAppsRefreshCurrent:`刷新当前面板应用`,panelAppsSortLabel:`排序`,panelAppsSortSmart:`智能排序`,panelAppsFavorites:`收藏`,panelAppsSortRecentOpen:`最近打开`,panelAppsSortUpdated:`最近更新`,panelAppsSortName:`名称`,panelAppsFavorite:`收藏面板应用`,panelAppsUnfavorite:`取消收藏面板应用`,panelAppsMoreActions:`更多面板应用操作`,panelAppsMainSidebarGroup:`应用`,panelAppsMainSidebarGroupCollapse:`收起应用`,panelAppsMainSidebarGroupExpand:`展开应用`,panelAppsAddToMainSidebar:`添加到主侧栏`,panelAppsRemoveFromMainSidebar:`从主侧栏移除`,panelAppsPreferenceUpdateFailed:`无法更新面板应用设置`,panelAppsOpenInRightPanel:`在右侧面板打开`,panelAppsOpenInBrowser:`在浏览器中打开`,panelAppsOpenInNewTab:`在新标签页中打开`,panelAppsOpenApps:`打开应用管理`,panelAppsMainUnavailable:`此面板应用当前不可用。它可能已被禁用、卸载或从工作区删除。`,panelAppsCheckingPermission:`正在确认此面板应用的权限…`,panelAppsPermissionDenied:`未授予此面板应用所需的 NextClaw Client 权限。`,panelAppsPermissionFailed:`无法确认此面板应用的权限。`,panelAppsTryAgain:`重试`,panelAppsDelete:`删除面板应用`,panelAppsDeleteConfirmTitle:`删除面板应用?`,panelAppsDeleteConfirmDescription:`将删除这个面板应用文件,删除后不可恢复。`,panelAppsClientGrantTitle:`NextClaw Client SDK`,panelAppsClientGrantDescription:`允许这个面板应用使用完整 NextClaw Client SDK。`,panelAppsLastOpened:`上次打开`,panelAppsUpdated:`更新于`,serviceActionAuthorizationTitle:`授权服务动作`,serviceActionAuthorizationDescription:`此面板应用正在请求调用本地服务应用动作。允许后,这些动作会为该面板应用记住授权。`,serviceActionAuthorizationSource:`来源`,serviceActionAuthorizationAction:`动作`,serviceActionAuthorizationActions:`动作`,serviceActionAuthorizationPurpose:`用途`,serviceActionAuthorizationRisk:`风险`,serviceActionAuthorizationInput:`输入`,serviceActionAuthorizationReject:`拒绝`,serviceActionAuthorizationAllow:`允许`},n={chat:`Chat`,model:`Model`,searchChannels:`Search Channels`,providers:`Providers`,extensions:`Extensions`,channels:`Channels`,cron:`Cron Jobs`,secrets:`Secrets`,runtime:`Routing & Runtime`,remote:`Remote Access`,marketplace:`Marketplace`,advanced:`Advanced`,settings:`Settings`,settingsGroupBasic:`Basic Configuration`,settingsGroupAdvanced:`Advanced Configuration`,appearance:`Appearance`,chatMessageLayoutTitle:`Message layout`,chatMessageLayoutDescription:`Choose how chat messages are displayed.`,chatMessageLayoutCard:`Cards`,chatMessageLayoutCardDescription:`Show user and AI messages in separate cards.`,chatMessageLayoutFlat:`Flat`,chatMessageLayoutFlatDescription:`Keep user bubbles while showing AI identity and content in a flat layout.`,settingsMenu:`Settings menu`,sidebarCollapse:`Collapse sidebar`,sidebarExpand:`Expand sidebar`,security:`Sign-in Management`,privacy:`Privacy & Analytics`,desktopCapabilities:`Desktop Access`,desktopCapabilitiesPageTitle:`Desktop Access`,desktopCapabilitiesPageDescription:`Check NextClaw Desktop system permissions and manage which desktop apps AI agents and Extensions can access.`,desktopCapabilitiesSystemTitle:`System permission`,desktopCapabilitiesSystemDescription:`macOS only needs permission for NextClaw Desktop. Each AI agent or Extension still needs separate access to an app.`,desktopCapabilitiesHostStatus:`Desktop Host`,desktopCapabilitiesHostOnline:`Connected and ready to check desktop apps and system permissions.`,desktopCapabilitiesHostOffline:`Not connected. Start NextClaw Desktop first.`,desktopCapabilitiesRecheck:`Check again`,desktopCapabilitiesAccessibility:`Accessibility`,desktopCapabilitiesOpenSettings:`Open System Settings`,desktopCapabilitiesRequestPermission:`Request permission`,desktopCapabilitiesPermissionGranted:`NextClaw Desktop can control local apps.`,desktopCapabilitiesPermissionNotGranted:`Not allowed yet. Open System Settings and enable Accessibility for NextClaw Desktop.`,desktopCapabilitiesPermissionNotSupported:`Desktop access is not supported on this system.`,desktopCapabilitiesPermissionUnknown:`The permission state is currently unavailable.`,desktopCapabilitiesGrantsTitle:`App access`,desktopCapabilitiesGrantsDescription:`These permissions decide which AI agent or Extension can read or operate an app. Revoking access stops related operations immediately.`,desktopCapabilitiesNoGrants:`No app access yet`,desktopCapabilitiesNoGrantsDescription:`NextClaw will ask for permission when an AI agent or Extension first accesses a desktop app.`,desktopCapabilitiesAgent:`AI`,desktopCapabilitiesExtension:`Extension`,desktopCapabilitiesUnknownApplication:`Unknown app`,desktopCapabilitiesRevoke:`Revoke access`,desktopAuthorizationTitle:`Allow desktop access?`,desktopAuthorizationDescription:`This action needs access to a local app. Check who is asking, which app, and what they can do.`,desktopAuthorizationCaller:`Requested by`,desktopAuthorizationApplication:`App`,desktopAuthorizationAccess:`Access`,desktopAuthorizationRead:`Read visible content`,desktopAuthorizationObserve:`Watch visible changes`,desktopAuthorizationWrite:`Write to the app`,desktopAuthorizationScreenCapture:`Capture visible window content`,desktopAuthorizationPointerInput:`Click inside the app window`,desktopAuthorizationReadRisk:`Once allowed, this requester can read or watch currently visible content in this app until you revoke access in Desktop Access.`,desktopAuthorizationWriteRisk:`Once allowed, this AI agent can write a draft into this app. This permission does not allow sending or confirming.`,desktopAuthorizationScreenCaptureRisk:`Once allowed, this requester can capture the currently visible content of this app window for AI understanding until you revoke access in Desktop Access.`,desktopAuthorizationPointerInputRisk:`Once allowed, this AI can click inside this app's authorized window. It cannot use keys, scroll, drag, send, or confirm.`,desktopAuthorizationReject:`Don't allow`,desktopAuthorizationAllow:`Allow`,desktopAuthorizationAllowing:`Allowing…`,desktopAuthorizationAllowed:`Access allowed. The AI can retry the previous action.`,desktopAuthorizationFailed:`Desktop access could not be saved.`,backToMain:`Back to Main`,enabled:`Enabled`,disabled:`Disabled`,save:`Save`,cancel:`Cancel`,delete:`Delete`,add:`Add`,edit:`Edit`,loading:`Loading...`,success:`Success`,error:`Error`,confirm:`Confirm`,unchanged:`Unchanged`,saving:`Saving...`,remove:`Remove`,more:`More`,notificationDismiss:`Dismiss notification`,all:`All`,yes:`Yes`,no:`No`,prev:`Prev`,next:`Next`,noneOption:`None`,language:`Language`,theme:`Theme`,themeNatural:`Natural`,themeWork:`Default`,themeMinimal:`Minimal`,themeWarm:`Paper`,themeCool:`Mist`,themeDawn:`Dawn`,themeGraphite:`Graphite`,themeNight:`Night`,themeCharcoal:`Charcoal`,themeIsland:`Island`,themeProbe:`Probe`,isRequired:`is required`,duplicate:`duplicate`,notFound:`not found`,modelPageTitle:`Model Configuration`,modelPageDescription:`Configure default AI model selection`,defaultModel:`Default Model`,workspace:`Workspace`,modelName:`Model`,modelPickerNoOptions:`No model options available`,modelPickerUseCustom:`Use custom model: {value}`,modelPickerToggleOptions:`Toggle model options`,modelInputCustomHint:`If the model is not listed, type a custom model ID directly.`,modelIdentifierHelp:`Default model identifier used by the agent. Use provider-prefixed format. Examples: openai/gpt-5.1 · anthropic/claude-opus-4-1 · deepseek/deepseek-chat · minimax/MiniMax-M2.5 · openrouter/openai/gpt-5.3-codex.`,saveChanges:`Save Changes`,providersPageTitle:`AI Providers`,providersPageDescription:`Switch, configure, and save providers in one continuous workspace.`,providersLoading:`Loading...`,providersTabConfigured:`Configured`,providersTabAll:`All Providers`,providersFilterPlaceholder:`Search providers`,providersNoMatch:`No matching providers`,providerAdd:`Add Provider`,providerAddCustom:`Add Custom Provider`,providerTemplatePickerTitle:`Choose a provider template`,providerDelete:`Delete Provider`,providerDeleteConfirm:`Delete this provider? This action cannot be undone.`,providersSelectPlaceholder:`Select Provider`,providersSelectTitle:`Select a provider from the left to configure`,providersSelectDescription:`Switch between providers continuously and save each configuration.`,providersDefaultDescription:`Configure AI services for your agents`,providersEmptyTitle:`No providers configured`,providersEmptyDescription:`Add an AI provider to start using the platform.`,extensionsPageTitle:`Extension Management`,extensionsPageDescription:`Review discovered Extensions, their capabilities, and current runtime state.`,extensionsRefresh:`Refresh`,extensionsLifecycleDescription:`Extensions start and stop on demand based on channel usage and session continuous-attention relationships. This page is the global view of their capabilities and runtime state.`,extensionsLoading:`Loading Extensions…`,extensionsLoadFailed:`Couldn’t load Extensions.`,extensionsRetry:`Retry`,extensionsEmpty:`No Extensions discovered`,extensionsEmptyDescription:`Install or place an Extension, then refresh this page.`,extensionsTotal:`Total`,extensionsRunning:`Running`,extensionsWithObservations:`Continuous attention`,extensionsWithChannels:`Channels`,extensionsObservationCapabilities:`Continuous-attention capabilities`,extensionsChannelCapabilities:`Channel capabilities`,extensionsContextCapability:`State`,extensionsEventsCapability:`Events`,extensionsNone:`None`,extensionsLeaseCount:`Active uses`,extensionsProcess:`Process`,extensionsStartedAt:`Started`,extensionsStateRunning:`Running`,extensionsStateStarting:`Starting`,extensionsStateStopping:`Stopping`,extensionsStateStopped:`Stopped`,extensionsStateFailed:`Failed`,apiKey:`API Key`,apiBase:`API Base URL`,extraHeaders:`Extra Headers`,wireApi:`Wire API`,wireApiAuto:`Auto (Chat with fallback)`,wireApiChat:`Chat Completions`,wireApiResponses:`Responses`,apiKeySet:`Set`,apiKeyNotSet:`Not Set`,showKey:`Show Key`,hideKey:`Hide Key`,providerFormDescription:`Configure API keys and parameters for AI provider`,providerDisplayName:`Custom Name`,providerDisplayNamePlaceholder:`For example: Relay A`,providerDisplayNameHelp:`Display-only label to distinguish multiple custom providers.`,enterApiKey:`Enter API Key`,providerApiBaseHelp:`Leave empty or reset to use the default API base.`,providerApiBaseHelpMinimax:`Use https://api.minimaxi.com/v1 for Mainland China accounts, and https://api.minimax.io/v1 for overseas accounts.`,providerOpenAICompatHint:`Custom providers use OpenAI-compatible API format by default (Chat Completions / Responses).`,providerExtraHeadersHelp:`Optional custom request headers.`,providerTestConnection:`Test Connection`,providerTestingConnection:`Testing...`,providerTestConnectionSuccess:`Connection test passed`,providerTestConnectionFailed:`Connection test failed`,providerModelsTitle:`Available Models`,providerModelsFetch:`Fetch model list`,providerModelsFetching:`Fetching...`,providerModelsFetchSuccess:`Model list fetched`,providerModelsFetchFailed:`Failed to fetch model list`,providerModelsApiKeyRequired:`Please enter an API Key before fetching the model list`,providerModelsAuthorizationFailed:`Authentication failed. Check the API Key and API address`,providerModelsSuggestionsChecking:`Loading the model catalog…`,providerModelsSuggestionsFailed:`Unable to load the model catalog. Check the API Key, API address, or network connection; you can still add models manually.`,providerModelsSuggestionsSummary:`Catalog models not added: {count}`,providerModelsFetchedSuggestionsSummary:`{count} fetched models available to add`,providerModelsFetchedAllConfigured:`Fetched {count} models; all are already in the current list`,providerModelsSuggestionsAddAll:`Add all`,providerModelsSuggestionSelect:`Select model {model}`,providerModelsSuggestionsSelected:`{count} selected`,providerModelsSuggestionsAddSelected:`Add selected`,providerModelsSuggestionsSaveHint:`Save to apply the added models.`,providerModelsSuggestionsSearchPlaceholder:`Search catalog models`,providerModelsSuggestionsSearchEmpty:`No matching models`,providerModelsSuggestionsShowing:`Showing the first {visible} of {count} matches; refine your search to narrow the list`,providerModelsBulkRemove:`Bulk delete`,providerModelsSelectAll:`Select all`,providerModelsClearSelection:`Clear selection`,providerModelsRemoveSelected:`Delete selected`,providerModelsRemoveSaveHint:`Deletion only changes this draft and applies after you save.`,providerModelInputPlaceholder:`Enter provider-local model id (may contain /)`,providerModelInputHint:`The list is only a reference. You can type and add models that are not listed.`,providerAddModel:`Add Model`,providerModelsEmpty:`No models yet. Add one by typing model id.`,providerModelDefaultTag:`Default`,providerModelCustomTag:`Custom`,providerModelsHelp:`Built-in models are prefilled and can be added or removed here. Enter provider-local model ids without the current provider route prefix. Nested ids such as vendor/model are valid; if the current provider prefix is included, only that outer prefix is removed.`,providerModelsEmptyShort:`No models available`,providerAddFirstModel:`Add first model`,providerModelVisionTitle:`Vision`,providerModelVisionHint:`Allow image input for this model.`,providerModelThinkingTitle:`Thinking Capability`,providerModelThinkingHint:`Declare supported thinking levels for this model. Chat sessions will show the selector accordingly.`,providerModelThinkingDefault:`Default Thinking Level`,providerModelThinkingDefaultNone:`No default (fallback off)`,providerModelThinkingNoSupported:`Select at least one supported level first.`,providerDisplayNameHelpShort:`Helps distinguish multiple custom providers`,providerApiBaseHelpShort:`Usually just the domain; path auto-appended`,providerExtraHeadersHelpShort:`Optional, for custom auth etc.`,providerAdvancedSettings:`Advanced Settings`,providerAuthSectionTitle:`Provider Authorization`,providerAuthStarting:`Starting...`,providerAuthAuthorizing:`Authorizing...`,providerAuthAuthorizeInBrowser:`Authorize in Browser`,providerAuthWaitingBrowser:`Waiting for browser authorization...`,providerAuthCompleted:`Authorization completed.`,providerAuthOpenPrompt:`Open browser and complete authorization (code: `,providerAuthOpenPromptSuffix:`)`,providerAuthStartFailed:`Failed to start authorization`,providerAuthMethodLabel:`Authorization Region`,providerAuthMethodPlaceholder:`Select authorization method`,providerAuthImportFromCli:`Import From Qwen CLI`,providerAuthImporting:`Importing...`,providerAuthImportSuccess:`Imported provider credentials from CLI.`,providerAuthImportStatusPrefix:`Imported credentials from CLI successfully.`,providerAuthImportFailed:`Failed to import credentials`,providerAuthSessionLabel:`Session`,resetToDefault:`Reset to Default`,leaveBlankToKeepUnchanged:`Leave blank to keep unchanged`,consentGranted:`Consent Granted`,imapHost:`IMAP Host`,imapPort:`IMAP Port`,imapUsername:`IMAP Username`,imapPassword:`IMAP Password`,imapMailbox:`IMAP Mailbox`,imapUseSsl:`IMAP Use SSL`,smtpHost:`SMTP Host`,smtpPort:`SMTP Port`,smtpUsername:`SMTP Username`,smtpPassword:`SMTP Password`,smtpUseTls:`SMTP Use TLS`,smtpUseSsl:`SMTP Use SSL`,fromAddress:`From Address`,autoReplyEnabled:`Auto Reply Enabled`,pollIntervalSeconds:`Poll Interval (s)`,markSeen:`Mark Seen`,maxBodyChars:`Max Body Chars`,subjectPrefix:`Subject Prefix`,baseUrl:`Base URL`,socketUrl:`Socket URL`,socketPath:`Socket Path`,socketDisableMsgpack:`Disable Msgpack`,socketReconnectDelayMs:`Reconnect Delay (ms)`,socketMaxReconnectDelayMs:`Max Reconnect Delay (ms)`,socketConnectTimeoutMs:`Connect Timeout (ms)`,refreshIntervalMs:`Refresh Interval (ms)`,watchTimeoutMs:`Watch Timeout (ms)`,watchLimit:`Watch Limit`,retryDelayMs:`Retry Delay (ms)`,maxRetryAttempts:`Max Retry Attempts`,clawToken:`Claw Token`,agentUserId:`Agent User ID`,sessions:`Sessions`,panels:`Panels`,mentionRequireInGroups:`Require Mention in Groups`,groups:`Groups`,replyDelayMode:`Reply Delay Mode`,replyDelayMs:`Reply Delay (ms)`,secret:`Secret`,accountId:`Account ID`,dmPolicy:`DM Policy`,groupAllowFrom:`Group Allow From`,requireMention:`Require Mention`,mentionPatterns:`Mention Patterns`,groupRulesJson:`Group Rules (JSON)`,allowBotMessages:`Allow Bot Messages`,attachmentMaxSizeMb:`Attachment Max Size (MB)`,streamingMode:`Streaming Mode`,draftChunkingJson:`Draft Chunking (JSON)`,textChunkLimit:`Text Chunk Limit`,invalidJson:`Invalid JSON`,authBrand:`NextClaw UI`,authLoginTitle:`Admin Sign In`,authLoginDescription:`Authentication is enabled. Sign in to access this machine’s NextClaw UI.`,authUsername:`Admin Username`,authUsernamePlaceholder:`Enter admin username`,authPassword:`Admin Password`,authPasswordPlaceholder:`Enter admin password`,authConfirmPassword:`Confirm Password`,authConfirmPasswordPlaceholder:`Enter password again`,authLoginAction:`Sign In`,authLoggingIn:`Signing in...`,authLoggingOut:`Signing out...`,authActionFailed:`Authentication action failed`,authLoginSuccess:`Signed in successfully`,authLogoutSuccess:`Signed out successfully`,authSetupSuccess:`Authentication enabled. This tab is now signed in and ready to use.`,authPasswordUpdated:`Admin password updated`,authEnabledSuccess:`Authentication enabled`,authDisabledSuccess:`Authentication disabled`,authRetryStatus:`Retry`,authStatusLoadFailed:`Failed to load authentication status. Check whether the UI server is healthy.`,authSecurityTitle:`Sign-in Management`,authSecurityDescription:`Choose whether opening NextClaw requires sign-in, and manage the admin username and password.`,authSetupTitle:`Enable Lightweight Authentication`,authSetupDescription:`Create the single admin account the first time you enable authentication. This tab will be signed in automatically.`,authSetupAction:`Enable Authentication`,authSettingUp:`Enabling...`,authPasswordMismatch:`Passwords do not match`,authPasswordMinLengthHint:`Passwords must be at least 8 characters. This version supports a single admin account only.`,authStatusLabel:`Current Status`,authStatusConfiguredUser:`Admin account: {username}`,authUsernameFixedHelp:`This first version does not support renaming the admin account or managing multiple users.`,authEnableLabel:`Require Login`,authEnableOnHelp:`When enabled, every UI API and WebSocket except health and auth endpoints requires login.`,authEnableOffHelp:`The UI is currently open for local-style use. Re-enabling will issue a fresh signed-in session to this tab.`,authPasswordSectionTitle:`Change Admin Password`,authPasswordSectionDescription:`Updating the password invalidates old sessions immediately. This tab gets a fresh session automatically while auth is enabled.`,authPasswordAction:`Update Password`,authPasswordUpdating:`Updating...`,authLogoutAction:`Sign Out This Tab`,authSessionMemoryNotice:`Sessions are stored only in server memory for now. You will need to sign in again after the NextClaw UI process restarts.`,privacyPageTitle:`Privacy & Analytics`,privacyPageDescription:`Review and control NextClaw's anonymous usage analytics.`,productAnalyticsSectionTitle:`Anonymous usage analytics`,productAnalyticsSectionDescription:`Enabled by default. Changes apply immediately without restarting NextClaw.`,productAnalyticsEnabledTitle:`Send anonymous usage analytics`,productAnalyticsEnabledDescription:`Shares only whether use succeeded, the date window, OS category, version, and release channel.`,productAnalyticsAudienceTitle:`Analytics audience`,productAnalyticsAudienceDescription:`Team members and testers should choose the matching category so they stay out of external-user metrics.`,productAnalyticsAudienceExternal:`External user`,productAnalyticsAudienceInternal:`Team / personal`,productAnalyticsAudienceQa:`QA testing`,productAnalyticsDataTitle:`Data scope`,productAnalyticsCollectedTitle:`What is shared`,productAnalyticsCollectedDescription:`Active or successful state, day/week/month window, analytics audience, environment, release channel, OS category, product version, and a random one-time receipt.`,productAnalyticsExcludedTitle:`What is never shared`,productAnalyticsExcludedDescription:`Accounts, login tokens, persistent installation or device identifiers, messages, prompts, replies, tool arguments, session or project identifiers, file paths, URLs, IP addresses, User-Agent, and diagnostic logs are never shared.`,productAnalyticsAnonymousTitle:`How anonymous counting works`,productAnalyticsAnonymousDescription:`Each day, calendar week, and calendar month uses an unrelated random one-time receipt. Turning analytics off clears pending local receipts; anonymous server aggregates cannot be traced back to an installation for deletion.`,productAnalyticsStatusSectionTitle:`Delivery status`,productAnalyticsStatusTitle:`Anonymous analytics status`,productAnalyticsStatusLoading:`Loading delivery status…`,productAnalyticsStatusNever:`No delivery has been attempted. This updates after the first real Agent use.`,productAnalyticsLastAttemptLabel:`Last attempt`,productAnalyticsLastSuccessLabel:`Last success`,productAnalyticsPendingLabel:`pending receipts`,productAnalyticsLastErrorTitle:`Last error`,dmScope:`DM Scope`,dmScopeHelp:`Control how direct-message sessions are isolated.`,defaultContextTokens:`Default Context Tokens`,defaultContextTokensHelp:`Input context budget for agents when no per-agent override is set.`,runtimeCompanionEnabled:`Companion`,runtimeCompanionEnabledHelp:`When enabled, NextClaw auto-starts the floating companion. When disabled, it stops immediately and stays off after restart.`,defaultEngine:`Default Runtime`,defaultEngineHelp:`Default agent runtime, for example native, codex, or claude.`,agentList:`Agent List`,agentListHelp:`Run multiple fixed-role agents in one gateway process.`,bindings:`Bindings`,bindingsHelp:`Route inbound message by channel + account + peer to target agent.`,agentIdRequiredError:`agents.list[{index}].id is required`,duplicateAgentId:`Duplicate agent id`,bindingAgentIdRequired:`bindings[{index}].agentId is required`,bindingAgentIdNotFound:`bindings[{index}].agentId not found in agents.list/main`,bindingChannelRequired:`bindings[{index}].match.channel is required`,bindingPeerIdRequired:`bindings[{index}].match.peer.id is required when peer.kind is set`,agentIdPlaceholder:`Agent ID (e.g. engineer)`,workspaceOverridePlaceholder:`Workspace override (optional)`,modelOverridePlaceholder:`Model override (optional)`,defaultEnginePlaceholder:`Default runtime (e.g. native or codex)`,engineOverridePlaceholder:`Runtime override (optional)`,contextTokensPlaceholder:`Context tokens`,defaultAgent:`Default agent`,addAgent:`Add Agent`,targetAgentIdPlaceholder:`Target agent ID`,channelPlaceholder:`Channel (e.g. discord)`,accountIdOptionalPlaceholder:`Account ID (optional)`,peerKindOptional:`Peer kind (optional)`,peerIdPlaceholder:`Peer ID (requires peer kind)`,addBinding:`Add Binding`,saveRuntimeSettings:`Save Runtime Settings`,secretsPageTitle:`Secrets Management`,secretsPageDescription:`Manage secrets.providers, secrets.defaults, and secrets.refs in one place.`,secretsEnabledHelp:"When disabled, `{{secret:*}}` refs are not resolved.",defaultEnvProvider:`Default Env Provider`,defaultFileProvider:`Default File Provider`,defaultExecProvider:`Default Exec Provider`,secretProvidersTitle:`Secret Providers`,secretProvidersDescription:`Define reusable secret providers (env/file/exec).`,providerAlias:`Provider Alias`,removeProvider:`Remove Provider`,envPrefix:`Environment Prefix`,secretFilePath:`Secrets File Path`,secretExecCommand:`Exec Command`,secretExecArgs:`Exec Args (one per line)`,secretExecCwd:`Exec Working Directory (optional)`,secretExecTimeoutMs:`Timeout (ms)`,addSecretProvider:`Add Provider`,secretRefsTitle:`Secret Refs`,secretRefsDescription:`Map config paths to secret refs (source/provider/id).`,secretConfigPath:`Config Path`,secretId:`Secret ID`,secretProviderAlias:`Provider Alias`,addSecretRef:`Add Ref`,sessionsLoading:`Loading sessions...`,sessionsEmpty:`No sessions yet.`,sessionsLabelPlaceholder:`Session label (optional)`,sessionsRunStatusRunning:`Running`,sessionsRunStatusQueued:`Queued`,actionConfigure:`Configure`,actionAddProvider:`Add Provider`,actionEnable:`Enable`,configSaved:`Configuration saved`,configSavedApplying:`Configuration saved, applying changes`,configSavedApplied:`Configuration saved and applied`,configSaveFailed:`Failed to save configuration`,configReloaded:`Configuration reloaded`,configReloadFailed:`Failed to reload configuration`,channelConfigApplying:`Channel configuration is applying`,channelConfigApplied:`Channel configuration applied`,channelConfigApplyFailed:`Failed to apply channel configuration`,feishuVerifySuccess:`Verified. Please finish Feishu event subscription and app publishing before using.`,feishuVerifyFailed:`Verification failed`,enterTag:`Type and press Enter...`,headerName:`Header Name`,headerValue:`Header Value`},r={panelAppsTitle:`Panel Apps`,panelAppsLoading:`Loading panel apps...`,panelAppsLoadFailed:`Failed to load panel apps`,panelAppsEmpty:`No panel apps yet`,panelAppsEmptyTitle:`Create your first panel app`,panelAppsEmptyDescription:`Panel apps are lightweight tools that open beside chat, such as dashboards, forms, calculators, and temporary workbenches.`,panelAppsEmptyAskTitle:`Ask NextClaw to generate one`,panelAppsEmptyAskDescription:`Start with a ready-made prompt that creates a sample local tool for this panel.`,panelAppsEmptyAskAction:`Create sample panel app`,panelAppsExamplePrompt:`Create a sample NextClaw Panel App for me: a personal task board. Put it in the NextClaw panels folder as a single *.panel.html file. Include adding tasks, toggling completion, filtering, and local state persistence. After creating it, tell me to refresh Panel Apps and open it. Do not ask follow-up questions first.`,panelAppsEmptyFileTitle:`Add it to the panels folder`,panelAppsEmptyFileDescription:`You can also add a *.panel.html file, or a *.panel folder with panel-app.json.`,panelAppsPanelsPath:`Panels folder`,panelAppsEmptyFiltered:`No panel apps in this view`,panelAppsRefresh:`Refresh panel apps`,panelAppsRefreshCurrent:`Refresh current panel app`,panelAppsSortLabel:`Sort`,panelAppsSortSmart:`Smart`,panelAppsFavorites:`Favorites`,panelAppsSortRecentOpen:`Recently Opened`,panelAppsSortUpdated:`Recently Updated`,panelAppsSortName:`Name`,panelAppsFavorite:`Favorite panel app`,panelAppsUnfavorite:`Unfavorite panel app`,panelAppsMoreActions:`More panel app actions`,panelAppsMainSidebarGroup:`Apps`,panelAppsMainSidebarGroupCollapse:`Collapse apps`,panelAppsMainSidebarGroupExpand:`Expand apps`,panelAppsAddToMainSidebar:`Add to main sidebar`,panelAppsRemoveFromMainSidebar:`Remove from main sidebar`,panelAppsPreferenceUpdateFailed:`Could not update panel app preferences`,panelAppsOpenInRightPanel:`Open in right panel`,panelAppsOpenInBrowser:`Open in Browser`,panelAppsOpenInNewTab:`Open in New Tab`,panelAppsOpenApps:`Open app management`,panelAppsMainUnavailable:`This panel app is unavailable. It may be disabled, uninstalled, or removed from the workspace.`,panelAppsCheckingPermission:`Checking this panel app's permissions…`,panelAppsPermissionDenied:`The required NextClaw Client permission was not granted to this panel app.`,panelAppsPermissionFailed:`NextClaw could not confirm this panel app's permissions.`,panelAppsTryAgain:`Try again`,panelAppsDelete:`Delete panel app`,panelAppsDeleteConfirmTitle:`Delete panel app?`,panelAppsDeleteConfirmDescription:`This will delete the panel app file and cannot be undone.`,panelAppsClientGrantTitle:`NextClaw Client SDK`,panelAppsClientGrantDescription:`Allow this panel app to use the full NextClaw Client SDK.`,panelAppsLastOpened:`Last opened`,panelAppsUpdated:`Updated`,serviceActionAuthorizationTitle:`Authorize service actions`,serviceActionAuthorizationDescription:`This panel app is requesting local service actions. If allowed, these actions will stay granted for this panel app.`,serviceActionAuthorizationSource:`Source`,serviceActionAuthorizationAction:`Action`,serviceActionAuthorizationActions:`Actions`,serviceActionAuthorizationPurpose:`Purpose`,serviceActionAuthorizationRisk:`Risk`,serviceActionAuthorizationInput:`Input`,serviceActionAuthorizationReject:`Reject`,serviceActionAuthorizationAllow:`Allow`};export{e as i,n,t as r,r as t};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e}from"./i18n-B9yXA8KO.js";import{i as t,n,r,t as i}from"./panel-app-BUUle0gP.js";function a(){e({zh:{...t,...r},en:{...n,...i}})}export{a as installPanelAppI18nCatalog};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/login-page-CfMSkOsg.js","assets/login-page-CqrHhzaN.js","assets/chunk-DF37yw5_.js","assets/api-Utt-xzrT.js","assets/utils-UBHTdG5Q.js","assets/i18n-B9yXA8KO.js","assets/preload-helper-ca-nBW7U.js","assets/card-IevY2nm-.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{t}from"./client-B0krol7A.js";import{A as n,M as r}from"./utils-UBHTdG5Q.js";import{t as i}from"./preload-helper-ca-nBW7U.js";import{An as a,Ht as o,Vt as s,_n as c,gn as l}from"./api-Utt-xzrT.js";import{a as u,s as d}from"./i18n-B9yXA8KO.js";import{c as f,p,s as m,t as h}from"./theme-provider-CeBY2pyu.js";import{t as g}from"./i18n-provider-BYBJua91.js";var _=e(r(),1),v=t(),y=n(),b=(0,_.lazy)(async()=>({default:(await i(async()=>{let{LoginPage:e}=await import(`./login-page-CfMSkOsg.js`);return{LoginPage:e}},__vite__mapDeps([0,1,2,3,4,5,6,7]))).LoginPage})),x=/^\/apps\/panel\/([^/]+)\/standalone\/?$/;function S(e){let t=x.exec(e);if(!t)return null;try{return decodeURIComponent(t[1])}catch{return null}}function C({appId:e}){let t=o(),n=t.isError&&s(t.error);return t.isLoading&&!t.isError||n||t.isError?(0,y.jsx)(f,{appId:e}):t.data?.enabled&&!t.data.authenticated?(0,y.jsx)(_.Suspense,{fallback:(0,y.jsx)(w,{message:d(`loading`)}),children:(0,y.jsx)(b,{username:t.data.username})}):(0,y.jsx)(f,{appId:e})}function w({message:e}){return(0,y.jsx)(`main`,{className:`flex h-dvh items-center justify-center bg-background px-6 text-sm text-muted-foreground`,children:e})}function T({pathname:e=window.location.pathname}){let t=S(e);return t?(0,y.jsx)(a,{client:l,children:(0,y.jsxs)(p,{children:[(0,y.jsx)(C,{appId:t}),(0,y.jsx)(m,{}),(0,y.jsx)(c,{position:`top-right`,richColors:!0,offset:16})]})}):(0,y.jsx)(w,{message:d(`panelAppsMainUnavailable`)})}await u();var E=document.getElementById(`root`);E&&(0,v.createRoot)(E).render((0,y.jsx)(_.StrictMode,{children:(0,y.jsx)(h,{children:(0,y.jsx)(g,{children:(0,y.jsx)(T,{})})})}));
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@keyframes island-ink-echo-a{0%{opacity:.9;text-shadow:.08em 0 #307e6847}}@keyframes island-ink-echo-b{0%{opacity:.92;text-shadow:-.065em 0 #8a5d383d}}@keyframes island-ink-echo-c{0%{opacity:.91;text-shadow:.05em 0 #307e6833,-.035em 0 #8a5d382e}}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-style:solid;border-width:0;border-color:hsl(var(--gray-200))}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:hsl(var(--gray-400))}textarea::-moz-placeholder{opacity:1;color:hsl(var(--gray-400))}input::placeholder,textarea::placeholder{opacity:1;color:hsl(var(--gray-400))}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}input:focus,textarea:focus{box-shadow:none;outline:none}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand-50:94 20% 95%;--brand-100:94 20% 90%;--brand-200:94 18% 80%;--brand-300:94 16% 65%;--brand-400:94 16% 50%;--brand-500:94 13% 37%;--brand-600:94 13% 30%;--brand-700:94 15% 25%;--brand-800:94 20% 18%;--brand-900:94 25% 12%;--gray-50:45 25% 97%;--gray-100:45 14% 94%;--gray-200:45 14% 88%;--gray-300:45 10% 80%;--gray-400:45 10% 60%;--gray-500:45 10% 50%;--gray-600:45 3% 39%;--gray-700:45 5% 25%;--gray-800:45 5% 20%;--gray-900:45 5% 12%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--link-foreground:211 73% 45%;--link-foreground-hover:211 73% 38%;--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-active:var(--brand-700);--primary-foreground:0 0% 100%;--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:var(--brand-50);--accent-foreground:var(--brand-700);--interaction-hover:#f5f5f5;--interaction-selection:#d6eaff;--interaction-selection-border:#b8d5f5;--muted:var(--gray-100);--muted-foreground:var(--gray-500);--destructive:0 84% 60%;--destructive-foreground:0 0% 98%;--success:142 76% 36%;--success-foreground:0 0% 100%;--warning:38 92% 50%;--warning-foreground:0 0% 100%;--card:0 0% 100%;--card-foreground:var(--gray-800);--card-border:var(--gray-200);--popover:0 0% 100%;--popover-foreground:var(--gray-800);--border:var(--gray-200);--border-hover:var(--gray-300);--border-active:var(--brand-500);--input:0 0% 100%;--input-border:var(--gray-200);--input-focus:var(--brand-500);--ring:var(--brand-500);--ring-offset:var(--gray-50);--space-0:0px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--radius-3xl:24px;--radius-full:9999px;--shadow-xs:0 1px 2px 0 #1e140a0a;--shadow-sm:0 1px 3px 0 #1e140a0f, 0 1px 2px -1px #1e140a0a;--shadow-md:0 4px 6px -1px #1e140a0f, 0 2px 4px -2px #1e140a0a;--shadow-lg:0 10px 15px -3px #1e140a0f, 0 4px 6px -4px #1e140a0a;--shadow-xl:0 20px 25px -5px #1e140a14, 0 8px 10px -6px #1e140a0a;--shadow-2xl:0 25px 50px -12px #1e140a26;--shadow-card:0 0 8px 0 #0000000a;--shadow-card-hover:0 0 16px 0 #0000000f;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--text-4xl:36px;--text-5xl:48px;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--tracking-tight:-.025em;--tracking-normal:0;--tracking-wide:.025em;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-floating-panel:9999;--z-modal-backdrop:10000;--z-modal:10050;--z-popover:10100;--z-tooltip:10150}:root[data-theme=minimal]{--brand-50:0 0% 98%;--brand-100:0 0% 96%;--brand-200:0 0% 90%;--brand-300:0 0% 80%;--brand-400:0 0% 64%;--brand-500:0 0% 9%;--brand-600:0 0% 5%;--brand-700:0 0% 0%;--brand-800:0 0% 4%;--brand-900:0 0% 2%;--gray-50:0 0% 100%;--gray-100:0 0% 98%;--gray-200:0 0% 96%;--gray-300:0 0% 90%;--gray-400:0 0% 74%;--gray-500:0 0% 45%;--gray-600:0 0% 32%;--gray-700:0 0% 20%;--gray-800:0 0% 9%;--gray-900:0 0% 4%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-active:var(--brand-700);--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:0 0% 96%;--accent-foreground:var(--brand-700);--muted:var(--gray-100);--muted-foreground:var(--gray-500);--card:0 0% 100%;--card-foreground:var(--gray-800);--card-border:0 0% 90%;--popover:0 0% 100%;--popover-foreground:var(--gray-800);--border:0 0% 90%;--border-hover:0 0% 81%;--border-active:var(--brand-500);--input:0 0% 100%;--input-border:0 0% 90%;--input-focus:var(--brand-500);--ring:var(--brand-500);--ring-offset:var(--gray-50);--shadow-xs:0 1px 2px 0 #00000008;--shadow-sm:0 1px 3px 0 #0000000d, 0 1px 2px -1px #0000000a;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -2px #0000000a;--shadow-lg:0 10px 15px -3px #0000000f, 0 4px 6px -4px #0000000a;--shadow-xl:0 20px 25px -5px #00000014, 0 8px 10px -6px #0000000a;--shadow-2xl:0 25px 50px -12px #00000024;--shadow-card:0 0 8px 0 #0000000a;--shadow-card-hover:0 0 16px 0 #0000000f}:root[data-theme=work]{--brand-50:0 0% 97%;--brand-100:0 0% 94%;--brand-200:0 0% 88%;--brand-300:0 0% 78%;--brand-400:0 0% 58%;--brand-500:0 0% 23%;--brand-600:0 0% 18%;--brand-700:0 0% 12%;--brand-800:0 0% 7%;--brand-900:0 0% 4%;--gray-50:0 0% 100%;--gray-100:0 0% 95%;--gray-200:0 0% 90%;--gray-300:0 0% 84%;--gray-400:0 0% 70%;--gray-500:0 0% 46%;--gray-600:0 0% 34%;--gray-700:0 0% 28%;--gray-800:0 0% 13%;--gray-900:0 0% 7%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-active:var(--brand-700);--primary-foreground:0 0% 100%;--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:var(--gray-200);--accent-foreground:var(--gray-800);--muted:var(--gray-100);--muted-foreground:var(--gray-500);--card:0 0% 100%;--card-foreground:var(--gray-800);--card-border:var(--gray-200);--popover:0 0% 100%;--popover-foreground:var(--gray-800);--border:var(--gray-200);--border-hover:var(--gray-300);--border-active:var(--gray-600);--input:0 0% 100%;--input-border:var(--gray-200);--input-focus:var(--gray-600);--ring:var(--gray-600);--ring-offset:var(--gray-50);--shadow-xs:0 1px 2px 0 #14181c08;--shadow-sm:0 1px 3px 0 #14181c0d, 0 1px 2px -1px #14181c0a;--shadow-md:0 4px 6px -1px #14181c0d, 0 2px 4px -2px #14181c0a;--shadow-lg:0 10px 15px -3px #14181c0f, 0 4px 6px -4px #14181c0a;--shadow-xl:0 20px 25px -5px #14181c14, 0 8px 10px -6px #14181c0a;--shadow-2xl:0 25px 50px -12px #14181c24;--shadow-card:0 0 8px 0 #14181c0a;--shadow-card-hover:0 0 16px 0 #14181c0f}:root[data-theme=warm]{--brand-50:36 35% 94%;--brand-100:35 32% 90%;--brand-200:34 26% 82%;--brand-300:32 20% 70%;--brand-400:30 16% 56%;--brand-500:28 15% 42%;--brand-600:27 16% 34%;--brand-700:25 18% 28%;--brand-800:24 20% 20%;--brand-900:23 24% 13%;--gray-50:40 38% 97%;--gray-100:39 30% 94%;--gray-200:36 24% 87%;--gray-300:34 18% 78%;--gray-400:32 10% 60%;--gray-500:30 9% 46%;--gray-600:28 10% 36%;--gray-700:26 14% 27%;--gray-800:24 18% 18%;--gray-900:22 24% 11%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-active:var(--brand-700);--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:38 30% 91%;--accent-foreground:var(--brand-700);--muted:var(--gray-100);--muted-foreground:var(--gray-500);--card:40 48% 98%;--card-foreground:var(--gray-800);--card-border:34 22% 84%;--popover:40 48% 98%;--popover-foreground:var(--gray-800);--border:34 22% 84%;--border-hover:32 20% 73%;--border-active:var(--brand-500);--input:40 48% 98%;--input-border:34 22% 84%;--input-focus:var(--brand-500);--ring:var(--brand-500);--ring-offset:var(--gray-50);--shadow-xs:0 1px 2px 0 #1e140a0a;--shadow-sm:0 1px 3px 0 #1e140a0f, 0 1px 2px -1px #1e140a0a;--shadow-md:0 4px 6px -1px #1e140a0f, 0 2px 4px -2px #1e140a0a;--shadow-lg:0 10px 15px -3px #1e140a0f, 0 4px 6px -4px #1e140a0a;--shadow-xl:0 20px 25px -5px #1e140a14, 0 8px 10px -6px #1e140a0a;--shadow-2xl:0 25px 50px -12px #1e140a26}:root[data-theme=cool]{--brand-50:210 48% 96%;--brand-100:211 42% 92%;--brand-200:212 36% 84%;--brand-300:212 32% 72%;--brand-400:213 30% 60%;--brand-500:214 35% 48%;--brand-600:214 36% 42%;--brand-700:215 38% 34%;--brand-800:216 40% 26%;--brand-900:218 42% 18%;--gray-50:210 32% 98%;--gray-100:210 24% 96%;--gray-200:214 18% 90%;--gray-300:216 14% 82%;--gray-400:218 11% 65%;--gray-500:220 9% 46%;--gray-600:215 14% 34%;--gray-700:217 19% 27%;--gray-800:220 26% 18%;--gray-900:224 39% 11%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-active:var(--brand-700);--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:var(--brand-50);--accent-foreground:var(--brand-700);--muted:var(--gray-100);--muted-foreground:var(--gray-500);--card:210 36% 99%;--card-foreground:var(--gray-800);--card-border:214 22% 87%;--popover:210 36% 99%;--popover-foreground:var(--gray-800);--border:214 22% 87%;--border-hover:215 17% 76%;--border-active:var(--brand-500);--input:210 36% 99%;--input-border:214 22% 87%;--input-focus:var(--brand-500);--ring:var(--brand-500);--ring-offset:var(--gray-50);--shadow-xs:0 1px 2px 0 #0f172a0a;--shadow-sm:0 1px 3px 0 #0f172a0f, 0 1px 2px -1px #0f172a0a;--shadow-md:0 4px 6px -1px #0f172a0f, 0 2px 4px -2px #0f172a0a;--shadow-lg:0 10px 15px -3px #0f172a0f, 0 4px 6px -4px #0f172a0a;--shadow-xl:0 20px 25px -5px #0f172a14, 0 8px 10px -6px #0f172a0a;--shadow-2xl:0 25px 50px -12px #0f172a24}:root[data-theme=dawn]{--brand-50:352 34% 96%;--brand-100:352 30% 92%;--brand-200:352 25% 84%;--brand-300:352 22% 72%;--brand-400:351 22% 58%;--brand-500:350 24% 46%;--brand-600:350 25% 39%;--brand-700:349 26% 32%;--brand-800:348 28% 24%;--brand-900:347 30% 16%;--gray-50:24 38% 97%;--gray-100:20 30% 94%;--gray-200:18 22% 87%;--gray-300:17 18% 78%;--gray-400:16 10% 60%;--gray-500:15 9% 46%;--gray-600:12 10% 36%;--gray-700:10 13% 27%;--gray-800:8 16% 18%;--gray-900:6 20% 11%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-active:var(--brand-700);--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:352 34% 94%;--accent-foreground:var(--brand-700);--muted:var(--gray-100);--muted-foreground:var(--gray-500);--card:24 48% 98%;--card-foreground:var(--gray-800);--card-border:18 22% 84%;--popover:24 48% 98%;--popover-foreground:var(--gray-800);--border:18 22% 84%;--border-hover:16 20% 74%;--border-active:var(--brand-500);--input:24 48% 98%;--input-border:18 22% 84%;--input-focus:var(--brand-500);--ring:var(--brand-500);--ring-offset:var(--gray-50);--shadow-xs:0 1px 2px 0 #4028240a;--shadow-sm:0 1px 3px 0 #4028240f, 0 1px 2px -1px #4028240a;--shadow-md:0 4px 6px -1px #4028240f, 0 2px 4px -2px #4028240a;--shadow-lg:0 10px 15px -3px #4028240f, 0 4px 6px -4px #4028240a;--shadow-xl:0 20px 25px -5px #40282414, 0 8px 10px -6px #4028240a;--shadow-2xl:0 25px 50px -12px #40282424}:root[data-theme=graphite]{--brand-50:220 12% 95%;--brand-100:220 10% 91%;--brand-200:220 9% 84%;--brand-300:220 8% 72%;--brand-400:220 7% 58%;--brand-500:220 9% 39%;--brand-600:220 10% 32%;--brand-700:220 12% 25%;--brand-800:220 14% 18%;--brand-900:220 18% 11%;--gray-50:48 10% 97%;--gray-100:45 8% 94%;--gray-200:42 7% 87%;--gray-300:38 6% 78%;--gray-400:34 5% 60%;--gray-500:30 4% 46%;--gray-600:28 5% 36%;--gray-700:25 7% 27%;--gray-800:220 11% 18%;--gray-900:220 18% 11%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-active:var(--brand-700);--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:220 12% 92%;--accent-foreground:var(--brand-700);--muted:var(--gray-100);--muted-foreground:var(--gray-500);--card:48 13% 99%;--card-foreground:var(--gray-800);--card-border:42 7% 84%;--popover:48 13% 99%;--popover-foreground:var(--gray-800);--border:42 7% 84%;--border-hover:38 6% 74%;--border-active:var(--brand-500);--input:48 13% 99%;--input-border:42 7% 84%;--input-focus:var(--brand-500);--ring:var(--brand-500);--ring-offset:var(--gray-50);--shadow-xs:0 1px 2px 0 #181a1f0a;--shadow-sm:0 1px 3px 0 #181a1f0f, 0 1px 2px -1px #181a1f0a;--shadow-md:0 4px 6px -1px #181a1f0f, 0 2px 4px -2px #181a1f0a;--shadow-lg:0 10px 15px -3px #181a1f0f, 0 4px 6px -4px #181a1f0a;--shadow-xl:0 20px 25px -5px #181a1f14, 0 8px 10px -6px #181a1f0a;--shadow-2xl:0 25px 50px -12px #181a1f24}:root[data-theme=night]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand-50:148 36% 91%;--brand-100:148 34% 84%;--brand-200:149 32% 72%;--brand-300:149 33% 60%;--brand-400:150 36% 52%;--brand-500:150 42% 46%;--brand-600:150 46% 38%;--brand-700:151 48% 30%;--brand-800:152 48% 22%;--brand-900:153 46% 15%;--gray-50:220 18% 8%;--gray-100:220 16% 11%;--gray-200:219 14% 16%;--gray-300:218 12% 24%;--gray-400:215 10% 46%;--gray-500:213 12% 62%;--gray-600:212 16% 74%;--gray-700:43 22% 82%;--gray-800:44 32% 90%;--gray-900:44 40% 96%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--primary:var(--brand-400);--primary-hover:var(--brand-300);--primary-active:var(--brand-200);--primary-foreground:220 18% 8%;--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:151 32% 18%;--accent-foreground:148 34% 84%;--interaction-hover:hsl(var(--gray-200));--interaction-selection:#284b71;--interaction-selection-border:#38699f;--muted:var(--gray-100);--muted-foreground:var(--gray-500);--destructive:0 70% 52%;--destructive-foreground:0 0% 100%;--success:150 46% 44%;--success-foreground:220 18% 8%;--warning:42 82% 58%;--warning-foreground:220 18% 8%;--card:220 16% 10%;--card-foreground:var(--gray-800);--card-border:218 13% 20%;--popover:220 16% 10%;--popover-foreground:var(--gray-800);--border:218 13% 20%;--border-hover:218 12% 30%;--border-active:var(--brand-400);--input:220 16% 12%;--input-border:218 13% 24%;--input-focus:var(--brand-400);--ring:var(--brand-400);--ring-offset:var(--gray-50);--shadow-xs:0 1px 2px 0 #00000047;--shadow-sm:0 1px 3px 0 #00000057, 0 1px 2px -1px #0000004d;--shadow-md:0 8px 18px -10px #0000006b, 0 4px 8px -6px #00000057;--shadow-lg:0 16px 28px -16px #0000007a, 0 8px 14px -10px #00000061;--shadow-xl:0 24px 40px -20px #0000008f, 0 10px 18px -12px #0000006b;--shadow-2xl:0 32px 60px -24px #000000a6;--shadow-card:0 0 0 1px hsl(var(--border) / .82), 0 18px 48px -34px #000000b8;--shadow-card-hover:0 0 0 1px hsl(var(--border-hover) / .88), 0 24px 60px -36px #000000d1}:root[data-theme=probe]{--brand-50:210 16% 95%;--brand-100:210 14% 90%;--brand-200:210 12% 82%;--brand-300:210 11% 70%;--brand-400:210 12% 52%;--brand-500:210 14% 22%;--brand-600:210 16% 18%;--brand-700:210 18% 15%;--brand-800:210 20% 12%;--brand-900:210 24% 9%;--gray-50:42 83% 98%;--gray-100:41 80% 96%;--gray-200:38 48% 92%;--gray-300:38 24% 78%;--gray-400:180 2% 52%;--gray-500:213 6% 45%;--gray-600:213 6% 36%;--gray-700:213 6% 30%;--gray-800:207 28% 19%;--gray-900:210 30% 12%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-active:var(--brand-700);--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:210 16% 92%;--accent-foreground:var(--brand-700);--muted:var(--gray-100);--muted-foreground:var(--gray-500);--card:41 80% 96%;--card-foreground:var(--gray-800);--card-border:38 26% 82%;--popover:42 83% 98%;--popover-foreground:var(--gray-800);--border:38 26% 82%;--border-hover:210 14% 72%;--border-active:var(--brand-500);--input:42 83% 98%;--input-border:38 26% 82%;--input-focus:var(--brand-500);--ring:var(--brand-500);--ring-offset:var(--gray-50);--shadow-xs:0 1px 2px 0 #22313d0a;--shadow-sm:0 1px 3px 0 #22313d0f, 0 1px 2px -1px #22313d0a;--shadow-md:0 4px 6px -1px #22313d0f, 0 2px 4px -2px #22313d0a;--shadow-lg:0 10px 15px -3px #22313d0f, 0 4px 6px -4px #22313d0a;--shadow-xl:0 20px 25px -5px #22313d14, 0 8px 10px -6px #22313d0a;--shadow-2xl:0 25px 50px -12px #22313d24}:root[data-theme-appearance=dark]{--link-foreground:213 94% 68%;--link-foreground-hover:213 97% 79%}:root[data-theme=charcoal]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--brand-50:203 70% 94%;--brand-100:203 68% 86%;--brand-200:203 66% 76%;--brand-300:202 70% 65%;--brand-400:201 76% 55%;--brand-500:201 78% 48%;--brand-600:202 79% 41%;--brand-700:203 76% 34%;--brand-800:204 70% 26%;--brand-900:205 62% 18%;--gray-50:0 0% 11%;--gray-100:0 0% 13%;--gray-200:0 0% 17%;--gray-300:0 0% 24%;--gray-400:0 0% 42%;--gray-500:0 0% 60%;--gray-600:0 0% 72%;--gray-700:0 0% 80%;--gray-800:0 0% 88%;--gray-900:0 0% 96%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--primary:var(--brand-400);--primary-hover:var(--brand-300);--primary-active:var(--brand-200);--primary-foreground:var(--gray-50);--secondary:var(--gray-100);--secondary-hover:var(--gray-200);--secondary-foreground:var(--gray-800);--accent:0 0% 19%;--accent-foreground:var(--gray-900);--interaction-hover:hsl(var(--gray-200));--interaction-selection:#2b4c5f;--interaction-selection-border:#357397;--muted:var(--gray-100);--muted-foreground:var(--gray-500);--destructive:0 72% 60%;--destructive-foreground:0 0% 100%;--success:145 58% 48%;--success-foreground:var(--gray-50);--warning:40 88% 60%;--warning-foreground:var(--gray-50);--card:0 0% 15%;--card-foreground:var(--gray-800);--card-border:0 0% 24%;--popover:0 0% 15%;--popover-foreground:var(--gray-800);--border:0 0% 24%;--border-hover:0 0% 32%;--border-active:var(--brand-400);--input:0 0% 16%;--input-border:0 0% 26%;--input-focus:var(--brand-400);--ring:var(--brand-400);--ring-offset:var(--gray-50);--shadow-xs:0 1px 2px 0 #00000029;--shadow-sm:0 1px 3px 0 #0003, 0 1px 2px -1px #00000029;--shadow-md:0 8px 18px -12px #00000057, 0 4px 8px -6px #00000038;--shadow-lg:0 16px 30px -18px #0006, 0 8px 14px -10px #00000047;--shadow-xl:0 24px 42px -22px #00000075, 0 10px 18px -12px #0000004d;--shadow-2xl:0 32px 60px -26px #0000008a;--shadow-card:0 0 0 1px hsl(var(--border) / .72), 0 16px 40px -32px #00000080;--shadow-card-hover:0 0 0 1px hsl(var(--border-hover) / .78), 0 22px 50px -34px #00000094}:root[data-theme=island]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand-50:152 38% 94%;--brand-100:153 36% 88%;--brand-200:154 34% 79%;--brand-300:155 35% 66%;--brand-400:156 39% 49%;--brand-500:157 50% 34%;--brand-600:158 53% 28%;--brand-700:159 55% 22%;--brand-800:160 52% 17%;--brand-900:162 48% 12%;--gray-50:45 48% 93%;--gray-100:44 38% 89%;--gray-200:42 32% 84%;--gray-300:40 22% 74%;--gray-400:75 8% 56%;--gray-500:104 8% 43%;--gray-600:128 10% 32%;--gray-700:142 14% 24%;--gray-800:68 16% 22%;--gray-900:160 25% 11%;--background:var(--gray-50);--background-secondary:var(--gray-100);--background-tertiary:var(--gray-200);--foreground:var(--gray-800);--foreground-secondary:var(--gray-700);--foreground-tertiary:var(--gray-500);--foreground-muted:var(--gray-400);--link-foreground:158 58% 28%;--link-foreground-hover:160 62% 20%;--primary:var(--brand-500);--primary-hover:var(--brand-600);--primary-active:var(--brand-700);--primary-foreground:45 67% 97%;--secondary:var(--gray-100);--secondary-hover:151 25% 86%;--secondary-foreground:var(--gray-800);--accent:151 28% 88%;--accent-foreground:var(--brand-800);--interaction-hover:#d2e4dcb8;--interaction-selection:#badeced1;--interaction-selection-border:#6cbc9de0;--muted:var(--gray-100);--muted-foreground:var(--gray-500);--destructive:5 61% 47%;--destructive-foreground:45 67% 97%;--success:157 50% 34%;--success-foreground:45 67% 97%;--warning:35 74% 45%;--warning-foreground:160 25% 11%;--card:45 46% 93%;--card-foreground:var(--gray-800);--card-border:40 28% 78%;--popover:45 46% 95%;--popover-foreground:var(--gray-800);--border:40 27% 78%;--border-hover:150 18% 62%;--border-active:var(--brand-500);--input:45 44% 94%;--input-border:40 27% 78%;--input-focus:var(--brand-500);--ring:var(--brand-500);--ring-offset:var(--gray-50);--radius:.4rem;--radius-sm:3px;--radius-md:5px;--radius-lg:7px;--radius-xl:10px;--radius-2xl:14px;--radius-3xl:18px;--font-sans:"American Typewriter", "Courier New", "Noto Sans Mono", monospace;--font-mono:"American Typewriter", "Courier New", "Noto Sans Mono", monospace;--island-font-display:"American Typewriter", "Hannotate SC", "HanziPen SC", "Kaiti SC", STKaiti, KaiTi, serif;--shadow-xs:0 1px 2px #2c39240d;--shadow-sm:0 1px 3px #2c392412, 0 1px 2px -1px #2c39240f;--shadow-md:0 8px 20px -14px #23432f47, 0 3px 8px -6px #5241252e;--shadow-lg:0 16px 32px -20px #23432f52, 0 7px 14px -10px #52412533;--shadow-xl:0 24px 44px -26px #23432f5c;--shadow-2xl:0 30px 56px -30px #23432f66;--shadow-card:0 0 0 1px hsl(var(--border) / .46), 0 14px 34px -28px #2a4b346b;--shadow-card-hover:0 0 0 1px hsl(var(--border-hover) / .62), 0 18px 42px -28px #2a4b3480}:root[data-theme=island] ::selection{color:hsl(var(--gray-900));background:#8bd0b385}:root{--radius:.75rem}*{border-color:hsl(var(--border))}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}:root[data-theme=island] [data-theme-surface=workspace-panel] :is(.bg-white,body),:root[data-theme=island] [data-theme-surface=doc-browser] :is(.bg-white,body),:root[data-theme=island] :is([data-theme-surface=navigation],[data-theme-surface=header]) :is(.bg-secondary,body){background-color:#0000}body{font-family:var(--font-sans);overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.absolute{position:absolute}.inset-0{inset:0}.left-\[50\%\]{left:50%}.right-4{right:1rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-\[var\(--z-modal\,10050\)\]{z-index:var(--z-modal,10050)}.z-\[var\(--z-modal-backdrop\,10000\)\]{z-index:var(--z-modal-backdrop,10000)}.mx-auto{margin-left:auto;margin-right:auto}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-dvh{height:100dvh}.h-full{height:100%}.max-h-64{max-height:16rem}.min-h-0{min-height:0}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.shrink-0{flex-shrink:0}.translate-x-\[-50\%\]{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.grid-cols-\[5rem_minmax\(0\,1fr\)\]{grid-template-columns:5rem minmax(0,1fr)}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-width:1px}.border-0{border-width:0}.border-border{border-color:hsl(var(--border))}.border-border\/75{border-color:hsl(var(--border) / .75)}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/40{background-color:#0006}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/60{background-color:hsl(var(--muted) / .6)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.p-1{padding:.25rem}.p-3{padding:.75rem}.p-6{padding:1.5rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-0{padding-top:0}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-6{line-height:1.5rem}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.24em\]{letter-spacing:.24em}.tracking-tight{letter-spacing:-.025em}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-gray-800{color:hsl(var(--gray-800))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.underline-offset-4{text-underline-offset:4px}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-card{--tw-shadow:var(--shadow-card);--tw-shadow-colored:var(--shadow-card);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-card-hover{--tw-shadow:var(--shadow-card-hover);--tw-shadow-colored:var(--shadow-card-hover);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-card{--tw-shadow-color:hsl(var(--card));--tw-shadow:var(--tw-shadow-colored)}.outline{outline-style:solid}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-base{transition-duration:.2s}.duration-fast{transition-duration:.15s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-base{animation-duration:.2s}.duration-fast{animation-duration:.15s}.text-gray-500{color:hsl(var(--gray-500))}.shadow-card{box-shadow:var(--shadow-card)}.shadow-card-hover{box-shadow:var(--shadow-card-hover)}:is([data-theme-decoration=island-paper],[data-theme-decoration=island-palm]){display:none}:root[data-theme=island] [data-theme-surface=app-shell]{isolation:isolate;background-color:hsl(var(--background));font-variant-ligatures:none;letter-spacing:.006em;text-shadow:.022em 0 #2a554b0e,-.016em 0 #7c583c0d;background-image:none;position:relative}:root[data-theme=island] [data-theme-decoration=island-paper]{opacity:.94;pointer-events:none;z-index:0;background:url(/themes/island/island-atmosphere-7a037243.webp) top/cover no-repeat;display:block;position:absolute;inset:0}:root[data-theme=island] [data-theme-decoration=island-palm]{opacity:1;pointer-events:none;z-index:0;display:block;position:absolute;inset:0}:root[data-theme=island] [data-theme-decoration=island-palm] [data-island-palm-part]{clip-path:polygon(46% 0,100% 0,100% 61%,62% 55%);will-change:filter;background:url(/themes/island/island-atmosphere-7a037243.webp) top/cover no-repeat;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 88% 17%,#000 0 43%,#000000db 51%,#0000 72%);mask-image:radial-gradient(at 88% 17%,#000 0 43%,#000000db 51%,#0000 72%)}:root[data-theme=island] [data-theme-decoration=island-palm] [data-island-palm-part=frond-wind]{filter:url(#island-wind-filter);opacity:1}:root[data-theme=island] [data-theme-surface=navigation]{border-right:1px solid hsl(var(--border) / .56);background:0 0}:root[data-theme=island] :is([data-theme-surface=workspace],[data-theme-surface=settings-workspace]){background:0 0}:root[data-theme=island] [data-theme-surface=utility-rail]{border-color:hsl(var(--border) / .58);background:0 0}:root[data-theme=island] :is([data-theme-surface=workspace-panel],[data-theme-surface=doc-browser]){-webkit-backdrop-filter:none;backdrop-filter:none;border-color:hsl(var(--border) / .54);background-color:#0000}:root[data-theme=island] [data-theme-surface=workspace-panel] :is(.bg-white,.bg-background),:root[data-theme=island] [data-theme-surface=doc-browser] :is(.bg-white,.bg-background){background-color:#0000}:root[data-theme=island] [data-theme-surface=workspace-panel] :is(.bg-card,.bg-muted){background-color:hsl(var(--card) / .52)}:root[data-theme=island] [data-theme-surface=doc-browser] .bg-card{background-color:hsl(var(--card) / .22)}:root[data-theme=island] [data-theme-surface=doc-browser] .bg-muted{background-color:hsl(var(--card) / .28)}:root[data-theme=island] [data-theme-surface=workspace-explorer]{background-color:hsl(var(--card) / .16);border-color:hsl(var(--border) / .48)}:root[data-theme=island] [data-theme-surface=workspace-panel] :is([data-file-code-surface=true],[data-file-code-canvas=true]),:root[data-theme=island] [data-theme-surface=workspace-panel] [data-file-code-canvas=true]>.bg-card,:root[data-theme=island] [data-theme-surface=workspace-panel] [data-file-code-row=true].bg-card{background-color:#0000}:root[data-theme=island] [data-theme-surface=workspace-panel] [data-file-code-gutter=true] :is([data-file-line-number-cell=true].bg-muted,.bg-muted){background-color:hsl(var(--card) / .12)}:root[data-theme=island] [data-theme-surface=workspace-panel] [data-file-target-line=true] [data-file-code-row=true],:root[data-theme=island] [data-theme-surface=workspace-panel] [data-file-line-number-cell=true][aria-current=location]{background-color:hsl(var(--brand-200) / .28)}:root[data-theme=island] :is([data-theme-overlay=popover],[data-theme-overlay=menu],[data-theme-overlay=select],.bg-popover,[role=menu].bg-popover,[role=listbox].bg-popover){-webkit-backdrop-filter:blur(18px)saturate(.9);backdrop-filter:blur(18px)saturate(.9);background-color:hsl(var(--popover) / .9);border-color:hsl(var(--border) / .7);box-shadow:0 18px 42px -24px #25413775}:root[data-theme=island] [data-theme-overlay=tooltip]{-webkit-backdrop-filter:blur(14px)saturate(.9);backdrop-filter:blur(14px)saturate(.9);background-color:hsl(var(--popover) / .94);border-color:hsl(var(--border) / .72);box-shadow:0 10px 24px -18px #2541376b}:root[data-theme=island] :is([data-theme-overlay=dialog],[data-theme-overlay=sheet]){-webkit-backdrop-filter:blur(24px)saturate(.88);backdrop-filter:blur(24px)saturate(.88);background-color:hsl(var(--popover) / .94);border-color:hsl(var(--border) / .72);box-shadow:0 32px 80px -32px #1e392f94}:root[data-theme=island] [data-theme-overlay=modal-backdrop]{-webkit-backdrop-filter:blur(3px)saturate(.82);backdrop-filter:blur(3px)saturate(.82);background-color:#20322b3d}:root[data-theme=island] [data-theme-surface=app-shell] :is(h1,h2,h3,button,[role=tab],[aria-current=page]){font-family:var(--island-font-display);letter-spacing:.025em}:root[data-theme=island] [data-theme-surface=header]{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0000;background-image:none}:root[data-theme=island] :is([data-theme-surface=navigation],[data-theme-surface=header]) :is(.bg-secondary,.bg-background){background-color:#0000}:root[data-theme=island] [data-theme-control=chat-search]{background-color:#0000;border:1px solid #0000}:root[data-theme=island] [data-theme-control=chat-search]:hover{background-color:hsl(var(--background) / .22)}:root[data-theme=island] [data-theme-control=chat-search]:focus{background-color:hsl(var(--background) / .28);border-color:hsl(var(--brand-500) / .58)}:root[data-theme=island] [data-theme-control=process-icon].bg-card{color:hsl(var(--brand-700) / .82);background-color:#0000}:root[data-theme=island] [data-reasoning-scroll=true]{border-left:1px solid hsl(var(--brand-600) / .28);background-color:#0000;border-radius:0}:root[data-theme=island] [data-theme-surface=navigation] :is([aria-current=page],[aria-selected=true],[data-state=active]),:root[data-theme=island] [data-theme-surface=utility-rail] :is([aria-pressed=true],[data-state=active]){color:hsl(var(--brand-800));background-color:#cbe1d7ad}@media (width<=760px){:root[data-theme=island] [data-theme-surface=app-shell]{background-image:none}:root[data-theme=island] [data-theme-decoration=island-palm]{inset:0}}@media (prefers-reduced-motion:reduce){:root[data-theme=island] .chat-markdown[data-stream-phase]{animation:none}:root[data-theme=island] [data-theme-decoration=island-palm] [data-island-palm-part]{display:none}}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:font-normal::placeholder{font-weight:400}.placeholder\:text-muted-foreground\/55::placeholder{color:hsl(var(--muted-foreground) / .55)}.hover\:border-primary\/25:hover{border-color:hsl(var(--primary) / .25)}.hover\:bg-\[var\(--interaction-hover\)\]:hover{background-color:var(--interaction-hover)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted\/40:hover{background-color:hsl(var(--muted) / .4)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary-600:hover{background-color:hsl(var(--brand-600))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-card-hover:hover{--tw-shadow:var(--shadow-card-hover);--tw-shadow-colored:var(--shadow-card-hover);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow);box-shadow:var(--shadow-card-hover)}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:outline-none:focus-visible{outline-offset:2px;outline:2px solid #0000}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-border:focus-visible{--tw-ring-color:hsl(var(--border))}.active\:bg-primary-700:active{background-color:hsl(var(--brand-700))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}@media (width>=640px){.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-0{gap:0}.sm\:gap-3{gap:.75rem}.sm\:text-left{text-align:left}}.\[\&\>\:last-child\]\:hidden>:last-child{display:none}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./chunk-JG7HCLWE-
|
|
1
|
+
import{n as e}from"./chunk-JG7HCLWE-B8zqBnU9.js";import{n as t}from"./chunk-Y2CYZVJY-CA3ymQuH.js";import{m as n}from"./src-CLPoo5iL.js";import"./chunk-WYO6CB5R-6wjFTXNP.js";import"./chunk-VAUOI2AC-Cpml0inz.js";import{n as r,r as i,t as a}from"./chunk-MOJQB5TN-gXbfqoqq.js";import{t as o}from"./chunk-JWPE2WC7-C9efnkGb.js";import{t as s}from"./mermaid-parser.core-B8xk4hpS.js";var c=e().RailroadPeg.parser.LangiumParser,l=t(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformOrderedChoice`),u=t(e=>{let t=e.elements.map(d);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformSequence`),d=t(e=>{let t=p(e.suffix);return e.operator?{type:`special`,text:e.operator===`&`?`&${f(t)}`:`!${f(t)}`}:t},`transformPrefix`),f=t(e=>{switch(e.type){case`terminal`:return`"${e.value}"`;case`nonterminal`:return e.name;case`special`:return e.text;default:return`(...)`}},`nodeToLabel`),p=t(e=>{let t=m(e.primary);if(!e.operator)return t;switch(e.operator){case`?`:return{type:`optional`,element:t};case`*`:return{type:`repetition`,element:t,min:0,max:1/0};case`+`:return{type:`repetition`,element:t,min:1,max:1/0};default:throw Error(`Unsupported PEG suffix operator: ${e.operator}`)}},`transformSuffix`),m=t(e=>{switch(e.$type){case`PegLiteral`:return{type:`terminal`,value:e.value};case`PegIdentifier`:return{type:`nonterminal`,name:e.name};case`PegGroup`:return l(e.element);case`PegAny`:return{type:`special`,text:e.dot};default:throw Error(`Unsupported PEG primary node: ${e.$type}`)}},`transformPrimary`),h=t(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),g=t(e=>{o(e,a),e.title&&a.setTitle(e.title),e.rules.map(e=>a.addRule(h(e)))},`populateDb`),_={parser:{parse:t(e=>{a.clear(),n.debug(`[PEG Parser] Starting Langium parse`);let t=c.parse(e);if(t.lexerErrors.length>0||t.parserErrors.length>0)throw new s(t);let r=t.value;n.debug(`[PEG Parser] Parsed rules:`,r.rules.length),g(r),n.debug(`[PEG Parser] Parse complete`)},`parse`),parser:{yy:a}},db:a,renderer:i,styles:r};export{_ as diagram};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-KEIR6QF5-DstBw0Hk.js";import{n as e}from"./chunk-YOTPTUD7-CLYXVZAi.js";export{e as createPieServices};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-
|
|
1
|
+
import{n as e}from"./chunk-Y2CYZVJY-CA3ymQuH.js";import{m as t}from"./src-CLPoo5iL.js";import{H as n,K as r,U as i,a,c as o,f as s,v as c,w as l,x as u,y as d}from"./chunk-WYO6CB5R-6wjFTXNP.js";import{t as f}from"./ordinal-PgiFlfBJ.js";import{n as p}from"./path-N-C4MRP0.js";import{m}from"./dist-Cnhwure9.js";import{t as h}from"./arc-CpivM836.js";import{t as g}from"./array-BHDgItFN.js";import{i as _,p as v}from"./chunk-ICXQ74PX-DvCcw_hz.js";import{t as y}from"./chunk-VAUOI2AC-Cpml0inz.js";import{t as b}from"./chunk-JWPE2WC7-C9efnkGb.js";import{n as x}from"./mermaid-parser.core-B8xk4hpS.js";function S(e,t){return t<e?-1:t>e?1:t>=e?0:NaN}function C(e){return e}function w(){var e=C,t=S,n=null,r=p(0),i=p(m),a=p(0);function o(o){var s,c=(o=g(o)).length,l,u,d=0,f=Array(c),p=Array(c),h=+r.apply(this,arguments),_=Math.min(m,Math.max(-m,i.apply(this,arguments)-h)),v,y=Math.min(Math.abs(_)/c,a.apply(this,arguments)),b=y*(_<0?-1:1),x;for(s=0;s<c;++s)(x=p[f[s]=s]=+e(o[s],s,o))>0&&(d+=x);for(t==null?n!=null&&f.sort(function(e,t){return n(o[e],o[t])}):f.sort(function(e,n){return t(p[e],p[n])}),s=0,u=d?(_-c*b)/d:0;s<c;++s,h=v)l=f[s],x=p[l],v=h+(x>0?x*u:0)+b,p[l]={data:o[l],index:s,value:x,startAngle:h,endAngle:v,padAngle:y};return p}return o.value=function(t){return arguments.length?(e=typeof t==`function`?t:p(+t),o):e},o.sortValues=function(e){return arguments.length?(t=e,n=null,o):t},o.sort=function(e){return arguments.length?(n=e,t=null,o):n},o.startAngle=function(e){return arguments.length?(r=typeof e==`function`?e:p(+e),o):r},o.endAngle=function(e){return arguments.length?(i=typeof e==`function`?e:p(+e),o):i},o.padAngle=function(e){return arguments.length?(a=typeof e==`function`?e:p(+e),o):a},o}var T=s.pie,E={sections:new Map,showData:!1,config:T},D=E.sections,O=E.showData,k=structuredClone(T),A={getConfig:e(()=>structuredClone(k),`getConfig`),clear:e(()=>{D=new Map,O=E.showData,a()},`clear`),setDiagramTitle:r,getDiagramTitle:l,setAccTitle:i,getAccTitle:d,setAccDescription:n,getAccDescription:c,addSection:e(({label:e,value:n})=>{if(n<0)throw Error(`"${e}" has invalid value: ${n}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);D.has(e)||(D.set(e,n),t.debug(`added new section: ${e}, with value: ${n}`))},`addSection`),getSections:e(()=>D,`getSections`),setShowData:e(e=>{O=e},`setShowData`),getShowData:e(()=>O,`getShowData`)},j=e((e,t)=>{b(e,t),t.setShowData(e.showData),e.sections.map(t.addSection)},`populateDb`),M={parse:e(async e=>{let n=await x(`pie`,e);t.debug(n),j(n,A)},`parse`)},N=e(e=>`
|
|
2
2
|
.pieCircle{
|
|
3
3
|
stroke: ${e.pieStrokeColor};
|
|
4
4
|
stroke-width : ${e.pieStrokeWidth};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./createLucideIcon-BTHK0Ot9.js";var t=e(`Plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{A as t,M as n,t as r}from"./utils-UBHTdG5Q.js";import{a as i,c as a,d as o,f as s,n as c,p as l,r as u,s as d,t as f}from"./dist-Bc9hOVNN.js";import{a as p,i as m,o as h,r as g,s as _}from"./dist-CEhIDAnr.js";import{t as v}from"./dist-hkVPP1th.js";import{i as y,n as b,r as x,t as ee}from"./es2015-MOCbM0Eu.js";var S=e(n(),1),C=t(),w=`Popover`,[T,te]=o(w,[_]),E=_(),[D,O]=T(w),k=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=E(t),c=S.useRef(null),[l,d]=S.useState(!1),[p,m]=f({prop:r,defaultProp:i??!1,onChange:a,caller:w});return(0,C.jsx)(h,{...s,children:(0,C.jsx)(D,{scope:t,contentId:u(),triggerRef:c,open:p,onOpenChange:m,onOpenToggle:S.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:l,onCustomAnchorAdd:S.useCallback(()=>d(!0),[]),onCustomAnchorRemove:S.useCallback(()=>d(!1),[]),modal:o,children:n})})};k.displayName=w;var A=`PopoverAnchor`,j=S.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=O(A,n),a=E(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:s}=i;return S.useEffect(()=>(o(),()=>s()),[o,s]),(0,C.jsx)(g,{...a,...r,ref:t})});j.displayName=A;var M=`PopoverTrigger`,N=S.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=O(M,n),a=E(n),o=s(t,i.triggerRef),c=(0,C.jsx)(d.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.contentId,"data-state":K(i.open),...r,ref:o,onClick:l(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?c:(0,C.jsx)(g,{asChild:!0,...a,children:c})});N.displayName=M;var P=`PopoverPortal`,[F,I]=T(P,{forceMount:void 0}),L=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=O(P,t);return(0,C.jsx)(F,{scope:t,forceMount:n,children:(0,C.jsx)(v,{present:n||a.open,children:(0,C.jsx)(c,{asChild:!0,container:i,children:r})})})};L.displayName=P;var R=`PopoverContent`,z=S.forwardRef((e,t)=>{let n=I(R,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=O(R,e.__scopePopover);return(0,C.jsx)(v,{present:r||a.open,children:a.modal?(0,C.jsx)(re,{...i,ref:t}):(0,C.jsx)(B,{...i,ref:t})})});z.displayName=R;var ne=a(`PopoverContent.RemoveScroll`),re=S.forwardRef((e,t)=>{let n=O(R,e.__scopePopover),r=S.useRef(null),i=s(t,r),a=S.useRef(!1);return S.useEffect(()=>{let e=r.current;if(e)return ee(e)},[]),(0,C.jsx)(b,{as:ne,allowPinchZoom:!0,children:(0,C.jsx)(V,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:l(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:l(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;a.current=t.button===2||n},{checkForDefaultPrevented:!1}),onFocusOutside:l(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),B=S.forwardRef((e,t)=>{let n=O(R,e.__scopePopover),r=S.useRef(!1),i=S.useRef(!1);return(0,C.jsx)(V,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),V=S.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:d,...f}=e,m=O(R,n),h=E(n);return x(),(0,C.jsx)(y,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:o,children:(0,C.jsx)(i,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:d,onEscapeKeyDown:c,onPointerDownOutside:l,onFocusOutside:u,onDismiss:()=>m.onOpenChange(!1),children:(0,C.jsx)(p,{"data-state":K(m.open),role:`dialog`,id:m.contentId,...h,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})}),H=`PopoverClose`,U=S.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=O(H,n);return(0,C.jsx)(d.button,{type:`button`,...r,ref:t,onClick:l(e.onClick,()=>i.onOpenChange(!1))})});U.displayName=H;var W=`PopoverArrow`,G=S.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=E(n);return(0,C.jsx)(m,{...i,...r,ref:t})});G.displayName=W;function K(e){return e?`open`:`closed`}var q=k,J=j,Y=N,X=L,Z=z,ie=`2rem`;function Q(e){return`min(${e}, max(0px, calc(var(--radix-popover-content-available-height, 100vh) - ${ie})))`}var ae=Q(`24rem`),oe=q,se=Y,ce=J,$=S.forwardRef(({className:e,sideOffset:t=8,align:n=`start`,collisionPadding:i=12,style:a,...o},s)=>(0,C.jsx)(X,{children:(0,C.jsx)(Z,{ref:s,"data-theme-overlay":`popover`,sideOffset:t,align:n,collisionPadding:i,className:r(`z-[var(--z-popover,10100)] w-72 overflow-x-hidden overflow-y-auto rounded-2xl border border-border bg-popover p-4 text-popover-foreground shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`,e),style:{maxHeight:ae,...a},...o})}));$.displayName=Z.displayName;export{Q as a,X as c,se as i,q as l,ce as n,J as o,$ as r,Z as s,oe as t,Y as u};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as e}from"./utils-UBHTdG5Q.js";import{Jt as t,Kt as n,Qt as r,Ut as i,qt as a}from"./api-Utt-xzrT.js";import{s as o}from"./i18n-B9yXA8KO.js";import{a as s,i as c,n as l,r as u,t as d}from"./select-CmDTqk2C.js";import{t as f,u as p,v as m}from"./use-config-b2DN67gs.js";var h=e();function g(){let e=f(),g=p(),v=m(),y=e.data?.productAnalytics.enabled??!0,b=e.data?.productAnalytics.audience??`external`,x=e=>{v.mutate({data:{enabled:e}})},S=e=>{let t=e;v.mutate({data:{audience:t}})};return(0,h.jsxs)(r,{title:o(`privacyPageTitle`),description:o(`privacyPageDescription`),children:[(0,h.jsx)(t,{title:o(`productAnalyticsSectionTitle`),description:o(`productAnalyticsSectionDescription`),children:(0,h.jsxs)(a,{children:[(0,h.jsx)(n,{title:o(`productAnalyticsEnabledTitle`),description:o(`productAnalyticsEnabledDescription`),control:(0,h.jsx)(i,{"aria-label":o(`productAnalyticsEnabledTitle`),checked:y,disabled:e.isLoading||v.isPending,onCheckedChange:x})}),(0,h.jsx)(n,{title:o(`productAnalyticsAudienceTitle`),description:o(`productAnalyticsAudienceDescription`),control:(0,h.jsxs)(d,{value:b,onValueChange:S,disabled:e.isLoading||v.isPending,children:[(0,h.jsx)(c,{"aria-label":o(`productAnalyticsAudienceTitle`),className:`w-40 sm:w-48`,children:(0,h.jsx)(s,{})}),(0,h.jsxs)(l,{children:[(0,h.jsx)(u,{value:`external`,children:o(`productAnalyticsAudienceExternal`)}),(0,h.jsx)(u,{value:`internal`,children:o(`productAnalyticsAudienceInternal`)}),(0,h.jsx)(u,{value:`qa`,children:o(`productAnalyticsAudienceQa`)})]})]})})]})}),(0,h.jsx)(t,{title:o(`productAnalyticsDataTitle`),children:(0,h.jsxs)(a,{children:[(0,h.jsx)(n,{layout:`stacked`,title:o(`productAnalyticsCollectedTitle`),description:o(`productAnalyticsCollectedDescription`)}),(0,h.jsx)(n,{layout:`stacked`,title:o(`productAnalyticsExcludedTitle`),description:o(`productAnalyticsExcludedDescription`)}),(0,h.jsx)(n,{layout:`stacked`,title:o(`productAnalyticsAnonymousTitle`),description:o(`productAnalyticsAnonymousDescription`)})]})}),(0,h.jsx)(t,{title:o(`productAnalyticsStatusSectionTitle`),children:(0,h.jsxs)(a,{children:[(0,h.jsx)(n,{layout:`stacked`,title:o(`productAnalyticsStatusTitle`),description:_(g.data,g.isLoading)}),g.data?.lastError?(0,h.jsx)(n,{layout:`stacked`,title:o(`productAnalyticsLastErrorTitle`),description:g.data.lastError}):null]})})]})}function _(e,t){if(t)return o(`productAnalyticsStatusLoading`);if(!e?.lastAttemptAt)return o(`productAnalyticsStatusNever`);let n=new Date(e.lastAttemptAt).toLocaleString();if(!e.lastSuccessAt)return`${o(`productAnalyticsLastAttemptLabel`)} ${n} · ${e.pendingReceiptCount} ${o(`productAnalyticsPendingLabel`)}`;let r=new Date(e.lastSuccessAt).toLocaleString();return`${o(`productAnalyticsLastSuccessLabel`)} ${r} · ${e.pendingReceiptCount} ${o(`productAnalyticsPendingLabel`)}`}export{g as PrivacySettingsPage};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{A as t,M as n,O as r}from"./utils-UBHTdG5Q.js";import{d as i,f as a,i as o,n as s}from"./navigation-link-kbCLRSr_.js";import{Gt as c,Lt as l,Xt as u,Yt as d,bn as f,jn as p,vn as m,yn as h}from"./api-Utt-xzrT.js";import{C as g,a as _,b as v,c as y,i as b,n as x,o as S,r as C,s as w}from"./mcp-marketplace-page-CifiVgFD.js";import{A as T,H as E,N as ee,P as D,S as O,ct as te,st as ne}from"./app-presenter-provider-CLsFiXvV.js";import{n as k,r as A,s as j,t as M}from"./i18n-B9yXA8KO.js";import{t as N}from"./createLucideIcon-BTHK0Ot9.js";import{h as re}from"./app-data-DYXDL6X2.js";import{t as ie}from"./chevron-down-An7Km-t4.js";import{n as ae}from"./ellipsis-BRI6ROeu.js";import{S as oe,a as P,i as F,n as I,r as L,t as R}from"./select-CmDTqk2C.js";import{t as se}from"./circle-dashed-CapXEpiV.js";import{i as ce,n as z,r as le,t as ue}from"./tabs-Bk_mG7ql.js";import{t as de}from"./use-viewport-layout-CUA3jQsA.js";import{t as fe}from"./plus-BHnKwuPq.js";import{t as pe}from"./settings-2-B62YtZon.js";import{t as me}from"./confirm-dialog-DFt4jpN7.js";import{t as he}from"./trash-2-CVOev8yc.js";import{a as ge,i as _e,n as ve,o as ye,r as be,t as xe}from"./dialog-BFN_1DBH.js";import{a as Se,i as Ce,n as we,t as Te}from"./card-IevY2nm-.js";var Ee=N(`CircleX`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),De=N(`Circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),Oe=N(`List`,[[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 18h.01`,key:`1tta3j`}],[`path`,{d:`M3 6h.01`,key:`1rqtza`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 18h13`,key:`1lx6n3`}],[`path`,{d:`M8 6h13`,key:`ik3vkj`}]]),ke=N(`Unlink`,[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]),B=e(n(),1),V=t();function H({title:e,children:t,className:n=``}){return(0,V.jsxs)(Te,{hover:!1,surface:`flat`,className:n,children:[(0,V.jsx)(Ce,{className:`p-4 pb-3`,children:(0,V.jsx)(Se,{children:e})}),(0,V.jsx)(we,{className:`p-4 pt-0`,children:t})]})}function U({children:e}){return(0,V.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:e})}function W({available:e,children:t,className:n,label:r,onOpen:i,path:a}){return e?(0,V.jsx)(`button`,{type:`button`,className:n,title:a,onClick:()=>i(a,r),children:t}):(0,V.jsx)(`div`,{className:n,children:t})}function Ae({snapshot:e,onOpenFile:t}){return(0,V.jsxs)(`div`,{className:`grid min-w-0 gap-4 lg:grid-cols-2`,children:[(0,V.jsxs)(H,{title:j(`projectsVisionAndContext`),children:[e.project.summary?(0,V.jsx)(`p`,{className:`mb-4 text-sm`,children:e.project.summary}):null,e.project.context.length?(0,V.jsx)(`div`,{className:`divide-y divide-border/60`,children:e.project.context.map(e=>(0,V.jsx)(je,{context:e,onOpenFile:t},e.id))}):(0,V.jsx)(U,{children:j(`projectsNoContext`)})]}),(0,V.jsxs)(H,{title:j(`projectsSourceHealth`),children:[(0,V.jsx)(`div`,{className:`space-y-2`,children:e.sources.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-xl bg-muted/45 p-3 text-sm`,children:[(0,V.jsx)(`span`,{children:e.label}),(0,V.jsxs)(`span`,{className:`text-muted-foreground`,children:[j(`projectsSource_${e.status}`),` · `,e.itemCount]})]},e.id))}),e.diagnostics.length?(0,V.jsx)(`div`,{className:`mt-4 space-y-2 border-t border-border/60 pt-4`,children:e.diagnostics.map(e=>(0,V.jsxs)(`div`,{className:`rounded-xl bg-muted/35 p-3 text-sm`,children:[(0,V.jsx)(`p`,{className:`font-medium`,children:e.code}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:e.message})]},e.id))}):null]})]})}function je({context:e,onOpenFile:t}){let{accessible:n,role:r,source:i}=e;return(0,V.jsxs)(W,{available:n,path:i,label:r,onOpen:t,className:`block w-full py-3 text-left first:pt-0 enabled:hover:text-foreground enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,V.jsx)(`span`,{className:`block text-sm font-medium`,children:r}),(0,V.jsxs)(`span`,{className:`mt-1 block truncate text-xs text-muted-foreground`,children:[i,n?``:` · ${j(`projectsUnavailable`)}`]})]})}var Me=`updated-desc`;function Ne(e,t){return`${e}${e.endsWith(`/`)||e.endsWith(`\\`)?``:`/`}${t}`}function Pe(e){if(!e)return-1/0;let t=new Date(e).getTime();return Number.isNaN(t)?-1/0:t}function Fe(e,t){return e.path.localeCompare(t.path)}function Ie(e,t=Me){return[...e].sort((e,n)=>{if(t===`name`)return Fe(e,n);let r=Pe(t===`created-desc`?e.fileCreatedAt??e.fileUpdatedAt:e.fileUpdatedAt??e.fileCreatedAt),i=Pe(t===`created-desc`?n.fileCreatedAt??n.fileUpdatedAt:n.fileUpdatedAt??n.fileCreatedAt);return(t===`updated-asc`?r-i:i-r)||Fe(e,n)})}function Le(e,t=new Date){if(!e)return`-`;let n=new Date(e),r=t.getTime()-n.getTime();if(Number.isNaN(n.getTime()))return e;if(r<6e4)return j(`projectsTimeJustNow`);let i=Math.floor(r/6e4);if(i<60)return j(`projectsTimeMinutesAgo`).replace(`{count}`,String(i));let a=Math.floor(i/60);if(a<24)return j(`projectsTimeHoursAgo`).replace(`{count}`,String(a));let o=Math.floor(a/24);return o===1?j(`projectsTimeYesterday`):o<7?j(`projectsTimeDaysAgo`).replace(`{count}`,String(o)):M(e)}var G=10;function Re(e,t,n){let r=t.trim().toLocaleLowerCase(),i=Ie(r?e.artifacts.filter(e=>e.path.toLocaleLowerCase().includes(r)):e.artifacts,n),a=new Map;for(let e of i){let t=a.get(e.categoryId)??[];t.push(e),a.set(e.categoryId,t)}let o=e.artifactCategories??[],s=new Set(o.map(e=>e.id)),c=o.flatMap(e=>{let t=a.get(e.id)??[];return t.length?[{...e,artifacts:t}]:[]}),l=[...a.entries()].filter(([e])=>!s.has(e)).map(([e,t])=>({id:e,label:t[0]?.categoryLabel??e,artifacts:t})).sort((e,t)=>e.label.localeCompare(t.label));return[...c,...l]}function ze({snapshot:e,onOpenFile:t}){let[n,r]=(0,B.useState)(``),[i,a]=(0,B.useState)(Me),[o,s]=(0,B.useState)(()=>new Set),[c,l]=(0,B.useState)({}),u=(0,B.useMemo)(()=>Re(e,n,i),[n,e,i]),d=e.artifacts.some(e=>e.fileCreatedAt);return e.artifacts.length?(0,V.jsxs)(`section`,{className:`min-w-0`,"aria-label":j(`projectsArtifacts`),children:[(0,V.jsxs)(`div`,{className:`mb-4 flex flex-wrap items-center justify-between gap-3`,children:[(0,V.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[A(e.artifacts.length),` `,j(`projectsArtifactsCountSuffix`)]}),(0,V.jsxs)(`div`,{className:`flex w-full flex-wrap items-center gap-2 sm:w-auto`,children:[(0,V.jsxs)(R,{value:i,onValueChange:e=>a(e),children:[(0,V.jsx)(F,{"aria-label":j(`projectsArtifactsSort`),className:`h-8 w-32 rounded-lg`,children:(0,V.jsx)(P,{})}),(0,V.jsxs)(I,{children:[(0,V.jsx)(L,{value:`updated-desc`,children:j(`projectsArtifactsSortUpdatedDesc`)}),(0,V.jsx)(L,{value:`updated-asc`,children:j(`projectsArtifactsSortUpdatedAsc`)}),d?(0,V.jsx)(L,{value:`created-desc`,children:j(`projectsArtifactsSortCreatedDesc`)}):null,(0,V.jsx)(L,{value:`name`,children:j(`projectsArtifactsSortName`)})]})]}),(0,V.jsx)(`input`,{type:`search`,value:n,className:`h-8 min-w-0 flex-1 rounded-lg border border-border/60 bg-transparent px-3 text-sm outline-none placeholder:text-muted-foreground focus-visible:ring-1 focus-visible:ring-border sm:w-60`,placeholder:j(`projectsArtifactsSearchPlaceholder`),onChange:e=>{r(e.target.value),l({})}})]})]}),u.length?(0,V.jsx)(`div`,{className:`space-y-2`,children:u.map(e=>{let n=o.has(e.id),r=c[e.id]??G,i=e.artifacts.slice(0,r);return(0,V.jsxs)(`section`,{className:`overflow-hidden rounded-xl border border-border/60`,children:[(0,V.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-3 bg-muted/30 px-3 py-2.5 text-left text-sm transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,"aria-label":`${e.label} ${A(e.artifacts.length)}`,"aria-expanded":!n,onClick:()=>s(t=>{let n=new Set(t);return n.has(e.id)?n.delete(e.id):n.add(e.id),n}),children:[(0,V.jsx)(`span`,{className:`min-w-0 truncate font-medium`,children:e.label}),(0,V.jsxs)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:[A(e.artifacts.length),` `,n?`▸`:`▾`]})]}),n?null:(0,V.jsxs)(`div`,{className:`divide-y divide-border/60`,children:[i.map(e=>(0,V.jsxs)(W,{available:e.exists,path:e.path,label:e.path,onOpen:t,className:`flex w-full min-w-0 items-center gap-3 px-3 py-2.5 text-left text-sm transition-colors enabled:hover:bg-[var(--interaction-hover)] enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,V.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.path}),e.fileUpdatedAt?(0,V.jsx)(`time`,{className:`shrink-0 text-xs text-muted-foreground`,dateTime:e.fileUpdatedAt,title:k(e.fileUpdatedAt),children:Le(e.fileUpdatedAt)}):null,e.exists?null:(0,V.jsx)(`span`,{className:`shrink-0 text-xs text-destructive`,children:j(`projectsUnavailable`)})]},e.id)),e.artifacts.length>i.length?(0,V.jsxs)(`button`,{type:`button`,className:`w-full px-3 py-2.5 text-left text-sm text-muted-foreground transition-colors hover:bg-[var(--interaction-hover)] hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:()=>l(t=>({...t,[e.id]:r+G})),children:[j(`projectsArtifactsShowMore`),` (`,A(Math.min(G,e.artifacts.length-i.length)),`)`]}):null]})]},e.id)})}):(0,V.jsx)(U,{children:j(`projectsArtifactsNoMatches`)})]}):(0,V.jsx)(U,{children:j(`projectsNoArtifacts`)})}var K=e=>[`project-work`,e],q=e=>[`project-work-summary`,e],J=e=>[`project-work-states`,e],Y=e=>[`project-work-artifacts`,e],X=(e,t)=>[`project-work-item`,e,t],Z=(e,t)=>[`project-work-activity`,e,t];function Be(e,t={}){return g({queryKey:[...K(e??``),t],enabled:!!e,initialPageParam:null,queryFn:async({pageParam:n})=>await l.projects.listWork(e,{...t,...n?{cursor:n}:{}}),getNextPageParam:e=>e.nextCursor})}function Ve(e){return f({queryKey:q(e??``),enabled:!!e,queryFn:async()=>await l.projects.getWorkSummary(e)})}function He(e){return f({queryKey:J(e??``),enabled:!!e,queryFn:async()=>await l.projects.listWorkStates(e)})}function Ue(e,t=5){return f({queryKey:[...Y(e??``),t],enabled:!!e,queryFn:async()=>await l.projects.listRecentWorkArtifacts(e,{limit:t})})}function We(e,t){return f({queryKey:X(e??``,t??``),enabled:!!(e&&t),queryFn:async()=>await l.projects.getWorkItem(e,t)})}function Ge(e,t){return f({queryKey:Z(e??``,t??``),enabled:!!(e&&t),queryFn:async()=>await l.projects.listWorkItemActivities(e,t,{limit:100})})}function Q(e){let t=p(),n=async n=>{await Promise.all([t.invalidateQueries({queryKey:K(e)}),t.invalidateQueries({queryKey:q(e)}),t.invalidateQueries({queryKey:J(e)}),t.invalidateQueries({queryKey:Y(e)}),...n?[t.invalidateQueries({queryKey:X(e,n)}),t.invalidateQueries({queryKey:Z(e,n)})]:[]])};return{createItem:h({mutationFn:async t=>await l.projects.createWorkItem(e,t),onSuccess:async e=>await n(e.id)}),updateItem:h({mutationFn:async t=>await l.projects.updateWorkItem(e,t.workItemId,t.patch),onSuccess:async e=>await n(e.id)}),deleteItem:h({mutationFn:async t=>await l.projects.deleteWorkItem(e,t),onSuccess:async e=>await n(e.id)}),restoreItem:h({mutationFn:async t=>await l.projects.restoreWorkItem(e,t),onSuccess:async e=>await n(e.id)}),linkArtifact:h({mutationFn:async t=>await l.projects.linkWorkItemArtifact(e,t.workItemId,{path:t.path,...t.label?{label:t.label}:{}}),onSuccess:async(e,t)=>await n(t.workItemId)}),unlinkArtifact:h({mutationFn:async t=>await l.projects.unlinkWorkItemArtifact(e,t.workItemId,t.artifactLinkId),onSuccess:async(e,t)=>await n(t.workItemId)}),createState:h({mutationFn:async t=>await l.projects.createWorkState(e,t),onSuccess:async()=>await n()}),updateState:h({mutationFn:async t=>await l.projects.updateWorkState(e,t.stateId,t.patch),onSuccess:async()=>await n()}),deleteState:h({mutationFn:async t=>await l.projects.deleteWorkState(e,t.stateId,t.migrateToStateId),onSuccess:async()=>await n()})}}function Ke(e){let t=p();(0,B.useEffect)(()=>{if(e)return l.eventBus.on(r.projectWorkChanged,n=>{n.projectId===e&&(t.invalidateQueries({queryKey:K(e)}),t.invalidateQueries({queryKey:q(e)}),t.invalidateQueries({queryKey:J(e)}),t.invalidateQueries({queryKey:Y(e)}),n.workItemId&&(t.invalidateQueries({queryKey:X(e,n.workItemId)}),t.invalidateQueries({queryKey:Z(e,n.workItemId)})))})},[e,t])}function qe(e){return[...e].sort((e,t)=>e.position-t.position||e.name.localeCompare(t.name))}var Je={started:0,unstarted:1,backlog:2,completed:3,canceled:4};function Ye(e){return[...e].sort((e,t)=>{let n=Je[e.category]-Je[t.category];return n===0?e.category===`completed`||e.category===`canceled`?e.position-t.position||e.name.localeCompare(t.name):t.position-e.position||e.name.localeCompare(t.name):n})}var Xe={Backlog:`projectsWorkState_backlog`,Planned:`projectsWorkState_planned`,"In Progress":`projectsWorkState_inProgress`,"In Review":`projectsWorkState_inReview`,"Awaiting Acceptance":`projectsWorkState_awaitingAcceptance`,Completed:`projectsWorkState_completed`,Canceled:`projectsWorkState_canceled`};function $(e,t){let n=Xe[e];return n?t?j(n,t):j(n):e}function Ze({projectId:e,onOpenArtifact:t,onOpenWorkItem:n}){Ke(e);let r=Ve(e),i=Be(e,{limit:5}),a=Ue(e,5),o=i.data?.pages.flatMap(e=>e.items).slice(0,5)??[];return(0,V.jsxs)(`div`,{className:`space-y-5`,children:[(0,V.jsx)(`section`,{className:`grid gap-3 sm:grid-cols-2 lg:grid-cols-4`,"aria-label":j(`projectsWorkSummary`),children:r.data?[[`projectsWorkTotal`,r.data.total],[`projectsWorkActive`,r.data.active],[`projectsWorkNeedsAttention`,r.data.attention],[`projectsWorkCompleted`,r.data.completed]].map(([e,t])=>(0,V.jsxs)(`div`,{className:`rounded-xl border border-border/60 bg-card p-4`,children:[(0,V.jsx)(`div`,{className:`text-2xl font-semibold`,children:t}),(0,V.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:j(e)})]},e)):(0,V.jsx)(`div`,{className:`col-span-full rounded-xl border border-border/60 p-5 text-sm text-muted-foreground`,children:r.isError?j(`projectsLoadFailed`):j(`projectsLoading`)})}),(0,V.jsxs)(`div`,{className:`grid min-w-0 gap-4 lg:grid-cols-2`,children:[(0,V.jsx)(H,{title:j(`projectsWorkRecentlyUpdated`),children:i.isLoading?(0,V.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:j(`projectsLoading`)}):i.isError?(0,V.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:j(`projectsLoadFailed`)}):o.length?(0,V.jsx)(`div`,{className:`space-y-2`,children:o.map(e=>(0,V.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between gap-3 rounded-xl bg-muted/45 px-3 py-3 text-left transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:()=>n(e.id),children:[(0,V.jsx)(`span`,{className:`min-w-0 truncate text-sm font-medium`,children:e.title}),(0,V.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:$(e.state.name)})]},e.id))}):(0,V.jsx)(U,{children:j(`projectsWorkEmpty`)})}),(0,V.jsx)(H,{title:j(`projectsRecentArtifacts`),children:a.isLoading?(0,V.jsx)(`p`,{className:`py-5 text-sm text-muted-foreground`,children:j(`projectsLoading`)}):a.isError?(0,V.jsx)(`p`,{className:`py-5 text-sm text-destructive`,children:j(`projectsLoadFailed`)}):a.data?.artifacts.length?(0,V.jsx)(`div`,{className:`space-y-2`,children:a.data.artifacts.map(e=>(0,V.jsxs)(W,{available:e.exists,path:e.path,label:e.label??e.path,onOpen:t,className:`block w-full rounded-xl bg-muted/45 p-3 text-left text-sm transition-colors enabled:hover:bg-[var(--interaction-hover)] enabled:focus-visible:outline-none enabled:focus-visible:ring-1 enabled:focus-visible:ring-border`,children:[(0,V.jsx)(`span`,{className:`block truncate font-medium`,children:e.label??e.path}),(0,V.jsxs)(`span`,{className:`mt-1 block truncate text-xs text-muted-foreground`,children:[e.workItemTitle,(0,V.jsx)(`time`,{dateTime:e.createdAt,title:k(e.createdAt),children:` · ${Le(e.createdAt)}`}),e.exists?``:` · ${j(`projectsUnavailable`)}`]})]},e.id))}):(0,V.jsx)(U,{children:j(`projectsNoRecentArtifacts`)})})]})]})}function Qe(e){return e===`overview`||e===`work`||e===`artifacts`||e===`skills`||e===`agreement`}function $e(e){return e.status===`open`&&e.response===`confirm-reject`&&!!e.reference.sessionId&&!e.reply}function et(e){return e.requests.filter(e=>e.status===`open`)}function tt({requests:e,pendingRequestId:t,onReply:n}){return e.length===0?null:(0,V.jsx)(H,{title:j(`projectsRequests`),children:(0,V.jsx)(`div`,{className:`space-y-2`,children:e.map(e=>{let{id:r,prompt:i,reference:{label:a,sessionId:s},reply:c}=e,l=t===r;return(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 rounded-xl bg-muted/45 p-3`,children:[(0,V.jsxs)(`div`,{className:`min-w-48 flex-1`,children:[(0,V.jsx)(`p`,{className:`text-sm font-medium`,children:i}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:c?j(`projectsResponseWaiting`):a})]}),$e(e)?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(d,{size:`sm`,disabled:l,onClick:()=>n(e,`confirmed`),children:j(`projectsConfirm`)}),(0,V.jsx)(d,{size:`sm`,variant:`outline`,disabled:l,onClick:()=>n(e,`rejected`),children:j(`projectsReject`)})]}):null,s?(0,V.jsx)(o,{className:u({size:`sm`,variant:`ghost`}),to:`/chat/${encodeURIComponent(s)}`,children:j(`projectsOpenSession`)}):null]},r)})})})}function nt({snapshot:e,onOpen:t}){return(0,V.jsxs)(`section`,{className:`min-w-0`,"aria-label":j(`projectsSkills`),children:[(0,V.jsxs)(`p`,{className:`mb-3 text-sm text-muted-foreground`,children:[A(e.skills.length),` `,j(`projectsSkillsCountSuffix`)]}),e.skills.length?(0,V.jsx)(`div`,{className:`grid min-w-0 gap-3 md:grid-cols-2`,children:e.skills.map(e=>(0,V.jsxs)(`button`,{type:`button`,className:`min-w-0 rounded-xl border border-border/60 p-3 text-left transition-colors enabled:hover:border-border enabled:hover:bg-muted/30 disabled:cursor-not-allowed`,disabled:!e.readable,onClick:()=>t(e),children:[(0,V.jsx)(`h3`,{className:`text-sm font-medium`,children:e.name}),(0,V.jsx)(`p`,{className:`mt-1 truncate text-xs text-muted-foreground`,title:e.path,children:e.path}),(0,V.jsx)(`p`,{className:`mt-2 line-clamp-2 text-xs text-muted-foreground`,title:e.description??e.ref,children:e.description??e.ref}),e.readable?null:(0,V.jsx)(`p`,{className:`mt-2 text-xs text-destructive`,children:j(`projectsUnavailable`)})]},e.ref))}):(0,V.jsx)(U,{children:j(`projectsNoSkills`)})]})}function rt({onOpenArtifact:e,onOpenChange:t,projectId:n,projectRoot:r,workItemId:i}){let a=We(n,i),o=Ge(n,i);Ke(n);let s=He(n);return(0,V.jsx)(C,{open:!!i,onOpenChange:t,children:(0,V.jsxs)(b,{side:`right`,closeLabel:j(`projectsCloseDetails`),className:`flex h-full w-full flex-col overflow-hidden p-0 sm:max-w-[680px]`,children:[a.isLoading?(0,V.jsx)(`div`,{className:`p-6 text-sm text-muted-foreground`,children:j(`projectsLoading`)}):null,a.isError?(0,V.jsx)(`div`,{className:`p-6 text-sm text-destructive`,children:j(`projectsWorkItemLoadFailed`)}):null,a.data?(0,V.jsx)(it,{item:a.data,states:s.data??[],activities:o.data?.activities??[],onOpenArtifact:(t,n)=>e(Ne(r,t),n),onClose:()=>t(!1)},`${a.data.id}:${a.data.version}`):null]})})}function it({activities:e,item:t,onClose:n,onOpenArtifact:r,states:i}){let a=Q(t.projectId),[o,l]=(0,B.useState)(t.title),[u,f]=(0,B.useState)(t.description),[p,h]=(0,B.useState)(t.stateId),[g,v]=(0,B.useState)(t.attention),[b,C]=(0,B.useState)(``),[T,E]=(0,B.useState)(``),[ee,D]=(0,B.useState)(!1),O=async(e,t)=>{try{await e(),t?.()}catch(e){m.error(e instanceof Error?e.message:j(`projectsWorkActionFailed`))}},te=async()=>{try{await a.updateItem.mutateAsync({workItemId:t.id,patch:{title:o,description:u,stateId:p,attention:g,expectedVersion:t.version}}),m.success(j(`projectsWorkItemSaved`))}catch(e){m.error(e instanceof Error?e.message:j(`projectsWorkItemSaveFailed`))}},k=async()=>{if(b.trim())try{await a.linkArtifact.mutateAsync({workItemId:t.id,path:b.trim(),...T.trim()?{label:T.trim()}:{}}),C(``),E(``)}catch(e){m.error(e instanceof Error?e.message:j(`projectsWorkArtifactLinkFailed`))}};return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(w,{className:`shrink-0 border-b border-border/60 px-5 pb-5 pt-6 pr-14 sm:px-7 sm:pt-7`,children:[(0,V.jsx)(y,{children:j(`projectsWorkDetails`)}),(0,V.jsxs)(_,{children:[t.id,` · `,j(`projectsWorkVersion`),` `,t.version]})]}),(0,V.jsxs)(`div`,{className:`min-h-0 flex-1 space-y-6 overflow-y-auto px-5 py-6 sm:px-7`,children:[(0,V.jsxs)(`section`,{className:`space-y-3`,children:[(0,V.jsx)(`label`,{className:`block text-xs font-medium text-muted-foreground`,children:j(`projectsWorkTitle`)}),(0,V.jsx)(c,{value:o,onChange:e=>l(e.target.value)}),(0,V.jsx)(`label`,{className:`block text-xs font-medium text-muted-foreground`,children:j(`projectsWorkDescription`)}),(0,V.jsx)(x,{className:`min-h-28`,value:u,onChange:e=>f(e.target.value)}),(0,V.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`label`,{className:`mb-1 block text-xs font-medium text-muted-foreground`,children:j(`projectsStatus`)}),(0,V.jsxs)(R,{value:p,onValueChange:h,children:[(0,V.jsx)(F,{children:(0,V.jsx)(P,{})}),(0,V.jsx)(I,{children:i.map(e=>(0,V.jsx)(L,{value:e.id,children:$(e.name)},e.id))})]})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`label`,{className:`mb-1 block text-xs font-medium text-muted-foreground`,children:j(`projectsWorkAttention`)}),(0,V.jsxs)(R,{value:g,onValueChange:e=>v(e),children:[(0,V.jsx)(F,{children:(0,V.jsx)(P,{})}),(0,V.jsxs)(I,{children:[(0,V.jsx)(L,{value:`none`,children:j(`projectsWorkAttention_none`)}),(0,V.jsx)(L,{value:`blocked`,children:j(`projectsWorkAttention_blocked`)}),(0,V.jsx)(L,{value:`awaiting-user`,children:j(`projectsWorkAttention_awaiting-user`)})]})]})]})]})]}),(0,V.jsxs)(`section`,{children:[(0,V.jsx)(`h3`,{className:`mb-3 text-sm font-semibold`,children:j(`projectsWorkArtifacts`)}),(0,V.jsxs)(`div`,{className:`space-y-2`,children:[t.artifacts.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl border border-border/60 p-2`,children:[(0,V.jsxs)(`button`,{type:`button`,className:`min-w-0 flex-1 rounded-lg px-2 py-1 text-left hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:()=>r(e.path,e.label??e.path),children:[(0,V.jsxs)(`span`,{className:`flex items-center gap-2 truncate text-sm font-medium`,children:[(0,V.jsx)(s,{className:`h-3.5 w-3.5 shrink-0`}),e.label??e.path]}),(0,V.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:e.path})]}),(0,V.jsx)(d,{size:`icon`,variant:`ghost`,"aria-label":j(`projectsWorkUnlinkArtifact`),onClick:()=>void O(()=>a.unlinkArtifact.mutateAsync({workItemId:t.id,artifactLinkId:e.id})),children:(0,V.jsx)(ke,{className:`h-4 w-4`})})]},e.id)),t.artifacts.length?null:(0,V.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:j(`projectsWorkNoArtifacts`)})]}),(0,V.jsxs)(`div`,{className:`mt-3 grid gap-2 sm:grid-cols-[1fr_12rem_auto]`,children:[(0,V.jsx)(c,{value:b,onChange:e=>C(e.target.value),placeholder:j(`projectsWorkArtifactPath`)}),(0,V.jsx)(c,{value:T,onChange:e=>E(e.target.value),placeholder:j(`projectsWorkArtifactLabel`)}),(0,V.jsxs)(d,{variant:`outline`,onClick:()=>void k(),disabled:!b.trim()||a.linkArtifact.isPending,children:[(0,V.jsx)(ne,{className:`mr-2 h-4 w-4`}),j(`projectsWorkLinkArtifact`)]})]})]}),(0,V.jsxs)(`section`,{children:[(0,V.jsx)(`h3`,{className:`mb-3 text-sm font-semibold`,children:j(`projectsActivity`)}),(0,V.jsx)(`ol`,{className:`space-y-2`,children:e.map(e=>(0,V.jsxs)(`li`,{className:`rounded-xl bg-muted/35 px-3 py-2 text-sm`,children:[(0,V.jsx)(`span`,{className:`font-medium`,children:j(`projectsWorkActivity_${e.type}`)}),(0,V.jsxs)(`span`,{className:`ml-2 text-xs text-muted-foreground`,children:[e.actor.kind,` ·`,` `,new Date(e.createdAt).toLocaleString()]})]},e.id))})]})]}),(0,V.jsxs)(S,{className:`shrink-0 border-t border-border/60 bg-background px-5 py-4 sm:px-7`,children:[t.deletedAt?(0,V.jsx)(d,{variant:`outline`,onClick:()=>void O(()=>a.restoreItem.mutateAsync(t.id)),children:j(`projectsRestore`)}):(0,V.jsxs)(d,{variant:`destructive`,onClick:()=>D(!0),children:[(0,V.jsx)(he,{className:`mr-2 h-4 w-4`}),j(`projectsDelete`)]}),(0,V.jsx)(d,{onClick:()=>void te(),disabled:!o.trim()||a.updateItem.isPending,children:j(`save`)})]}),(0,V.jsx)(me,{open:ee,onOpenChange:D,title:j(`projectsDeleteWorkItem`),description:j(`projectsDeleteWorkItemDescription`),confirmLabel:j(`projectsDelete`),variant:`destructive`,onCancel:()=>D(!1),onConfirm:()=>void O(()=>a.deleteItem.mutateAsync(t.id),n)})]})}var at=[`backlog`,`unstarted`,`started`,`completed`,`canceled`];function ot({open:e,onOpenChange:t,projectId:n,states:r}){let i=Q(n),a=qe(r),[o,s]=(0,B.useState)(``),[l,u]=(0,B.useState)(`unstarted`),[f,p]=(0,B.useState)(null),[h,g]=(0,B.useState)(``),_=async e=>{try{await e()}catch(e){m.error(e instanceof Error?e.message:j(`projectsWorkActionFailed`))}},v=async()=>{o.trim()&&await _(async()=>{await i.createState.mutateAsync({name:o.trim(),category:l}),s(``)})},y=async(e,t)=>{let n=a[e],r=a[e+t];!n||!r||await _(async()=>{await i.updateState.mutateAsync({stateId:n.id,patch:{position:r.position}}),await i.updateState.mutateAsync({stateId:r.id,patch:{position:n.position}})})};return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(xe,{open:e,onOpenChange:t,children:(0,V.jsxs)(ve,{className:`max-h-[85vh] overflow-y-auto sm:max-w-2xl`,children:[(0,V.jsxs)(ge,{children:[(0,V.jsx)(ye,{children:j(`projectsWorkStateSettings`)}),(0,V.jsx)(be,{children:j(`projectsWorkStateSettingsDescription`)})]}),(0,V.jsx)(`div`,{className:`space-y-2`,children:a.map((e,t)=>(0,V.jsxs)(`div`,{className:`grid gap-2 rounded-xl border border-border/60 p-3 sm:grid-cols-[1fr_11rem_auto]`,children:[(0,V.jsx)(c,{"aria-label":j(`projectsWorkStateName`),defaultValue:$(e.name),onBlur:t=>{let n=t.currentTarget.value.trim();n&&n!==$(e.name)&&_(()=>i.updateState.mutateAsync({stateId:e.id,patch:{name:n}}))}}),(0,V.jsxs)(R,{value:e.category,onValueChange:t=>void _(()=>i.updateState.mutateAsync({stateId:e.id,patch:{category:t}})),children:[(0,V.jsx)(F,{"aria-label":j(`projectsWorkStateCategory`),children:(0,V.jsx)(P,{})}),(0,V.jsx)(I,{children:at.map(e=>(0,V.jsx)(L,{value:e,children:j(`projectsWorkCategory_${e}`)},e))})]}),(0,V.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,V.jsx)(d,{size:`icon`,variant:`ghost`,"aria-label":j(`projectsMoveUp`),disabled:t===0,onClick:()=>void y(t,-1),children:(0,V.jsx)(oe,{className:`h-4 w-4`})}),(0,V.jsx)(d,{size:`icon`,variant:`ghost`,"aria-label":j(`projectsMoveDown`),disabled:t===a.length-1,onClick:()=>void y(t,1),children:(0,V.jsx)(ie,{className:`h-4 w-4`})}),(0,V.jsx)(d,{size:`icon`,variant:`ghost`,"aria-label":j(`projectsDeleteState`),disabled:a.length<=1,onClick:()=>{p(e),g(``)},children:(0,V.jsx)(he,{className:`h-4 w-4`})})]}),(0,V.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-muted-foreground sm:col-span-3`,children:[(0,V.jsx)(`input`,{type:`radio`,name:`default-state`,checked:e.isDefault,onChange:()=>void _(()=>i.updateState.mutateAsync({stateId:e.id,patch:{isDefault:!0}}))}),j(`projectsWorkDefaultState`)]})]},e.id))}),(0,V.jsxs)(`div`,{className:`grid gap-2 border-t border-border/60 pt-4 sm:grid-cols-[1fr_11rem_auto]`,children:[(0,V.jsx)(c,{value:o,onChange:e=>s(e.target.value),placeholder:j(`projectsWorkNewState`)}),(0,V.jsxs)(R,{value:l,onValueChange:e=>u(e),children:[(0,V.jsx)(F,{children:(0,V.jsx)(P,{})}),(0,V.jsx)(I,{children:at.map(e=>(0,V.jsx)(L,{value:e,children:j(`projectsWorkCategory_${e}`)},e))})]}),(0,V.jsxs)(d,{onClick:()=>void v(),disabled:!o.trim()||i.createState.isPending,children:[(0,V.jsx)(fe,{className:`mr-2 h-4 w-4`}),j(`projectsAdd`)]})]})]})}),(0,V.jsx)(xe,{open:!!f,onOpenChange:e=>{e||p(null)},children:(0,V.jsxs)(ve,{children:[(0,V.jsxs)(ge,{children:[(0,V.jsx)(ye,{children:j(`projectsDeleteState`)}),(0,V.jsx)(be,{children:j(`projectsDeleteStateDescription`)})]}),(0,V.jsxs)(`div`,{children:[(0,V.jsx)(`p`,{className:`mb-2 text-xs text-muted-foreground`,children:j(`projectsWorkStateMigration`)}),(0,V.jsxs)(R,{value:h,onValueChange:g,children:[(0,V.jsx)(F,{children:(0,V.jsx)(P,{placeholder:j(`projectsWorkStateMigrationOptional`)})}),(0,V.jsx)(I,{children:a.filter(e=>e.id!==f?.id).map(e=>(0,V.jsx)(L,{value:e.id,children:$(e.name)},e.id))})]})]}),(0,V.jsxs)(_e,{children:[(0,V.jsx)(d,{variant:`outline`,onClick:()=>p(null),children:j(`cancel`)}),(0,V.jsx)(d,{variant:`destructive`,onClick:()=>{f&&_(async()=>{await i.deleteState.mutateAsync({stateId:f.id,migrateToStateId:h||null}),p(null)})},children:j(`projectsDelete`)})]})]})})]})}function st({startedProgress:e,state:t}){if(t.category===`backlog`)return(0,V.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`backlog`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground/65`,children:(0,V.jsx)(se,{className:`h-4 w-4`})});if(t.category===`unstarted`)return(0,V.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`unstarted`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground`,children:(0,V.jsx)(De,{className:`h-4 w-4`,strokeWidth:2})});if(t.category===`completed`)return(0,V.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`completed`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-emerald-600 dark:text-emerald-400`,children:(0,V.jsx)(re,{className:`h-4 w-4`,strokeWidth:2.25})});if(t.category===`canceled`)return(0,V.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`canceled`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground/65`,children:(0,V.jsx)(Ee,{className:`h-4 w-4`})});let n=Math.round((e??.5)*100),r=n>=67?`text-emerald-600 dark:text-emerald-400`:n>=40?`text-orange-500 dark:text-orange-400`:`text-amber-500 dark:text-amber-400`;return(0,V.jsx)(`span`,{"aria-hidden":`true`,"data-state-visual":`started`,className:`inline-flex h-4 w-4 shrink-0 items-center justify-center ${r}`,children:(0,V.jsxs)(`svg`,{className:`h-4 w-4`,viewBox:`0 0 16 16`,fill:`none`,children:[(0,V.jsx)(`circle`,{cx:`8`,cy:`8`,r:`5.5`,stroke:`currentColor`,strokeWidth:`1.75`,opacity:`0.22`}),(0,V.jsx)(`circle`,{cx:`8`,cy:`8`,r:`5.5`,pathLength:`100`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeDasharray:`${n} ${100-n}`,transform:`rotate(-90 8 8)`})]})})}function ct({item:e,onOpen:t}){return(0,V.jsxs)(`button`,{type:`button`,className:`w-full rounded-xl border border-border/50 bg-card p-3 text-left text-sm shadow-sm transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,onClick:t,children:[(0,V.jsx)(`span`,{className:`block font-medium`,children:e.title}),(0,V.jsxs)(`span`,{className:`mt-1 flex flex-wrap items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,V.jsx)(`span`,{children:$(e.state.name)}),e.attention===`none`?null:(0,V.jsx)(`span`,{className:`rounded-full bg-amber-500/15 px-2 py-0.5 text-amber-700 dark:text-amber-300`,children:j(`projectsWorkAttention_${e.attention}`)}),e.deletedAt?(0,V.jsx)(`span`,{children:j(`projectsDeleted`)}):null]})]})}function lt({hasNextPage:e,isError:t,isFetchingNextPage:n,isLoading:r,items:i,onLoadMore:a,onOpenWorkItem:o}){return r?(0,V.jsx)(`p`,{className:`py-3 text-xs text-muted-foreground`,children:j(`projectsLoading`)}):t?(0,V.jsx)(`p`,{className:`py-3 text-xs text-destructive`,children:j(`projectsLoadFailed`)}):(0,V.jsxs)(V.Fragment,{children:[i.length?i.map(e=>(0,V.jsx)(ct,{item:e,onOpen:()=>o(e.id)},e.id)):(0,V.jsx)(`p`,{className:`py-3 text-xs text-muted-foreground`,children:j(`projectsNoData`)}),e?(0,V.jsx)(d,{type:`button`,variant:`ghost`,size:`sm`,className:`w-full`,disabled:n,onClick:a,children:j(n?`projectsLoading`:`projectsWorkLoadMore`)}):null]})}function ut({includeDeleted:e,onOpenWorkItem:t,state:n,startedProgress:r,view:i}){let[a,o]=(0,B.useState)(!1),s=Be(n.projectId,{stateId:n.id,includeDeleted:e,limit:20}),c=s.data?.pages.flatMap(e=>e.items)??[],l=s.data?.pages[0]?.total;return(0,V.jsxs)(`section`,{className:i===`board`?`flex h-full min-h-0 min-w-0 flex-col overflow-hidden rounded-xl bg-muted/25`:`min-w-0 overflow-hidden rounded-xl border border-border/60`,"aria-label":$(n.name),children:[(0,V.jsxs)(`button`,{type:`button`,className:`flex w-full shrink-0 items-center gap-2 bg-muted/30 px-3 py-2.5 text-left transition-colors hover:bg-[var(--interaction-hover)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border`,"aria-expanded":!a,onClick:()=>o(e=>!e),children:[a?(0,V.jsx)(ae,{className:`h-4 w-4 shrink-0`}):(0,V.jsx)(ie,{className:`h-4 w-4 shrink-0`}),(0,V.jsx)(st,{state:n,startedProgress:r}),(0,V.jsx)(`span`,{className:`min-w-0 truncate text-sm font-semibold`,children:$(n.name)}),(0,V.jsx)(`span`,{className:`inline-flex min-w-6 shrink-0 items-center justify-center rounded-full bg-background/85 px-1.5 py-0.5 text-xs font-semibold tabular-nums text-foreground ring-1 ring-border/60`,children:l??`…`})]}),a?null:(0,V.jsx)(`div`,{className:i===`board`?`min-h-0 flex-1 space-y-2 overflow-y-auto overscroll-contain p-3`:`space-y-2 p-3`,children:(0,V.jsx)(lt,{hasNextPage:s.hasNextPage,isError:s.isError,isFetchingNextPage:s.isFetchingNextPage,isLoading:s.isLoading,items:c,onLoadMore:()=>void s.fetchNextPage(),onOpenWorkItem:t})})]})}function dt({onOpenWorkItem:e,projectId:t}){let[n,r]=(0,B.useState)(`list`),[i,a]=(0,B.useState)(!1),[o,s]=(0,B.useState)(``),[l,u]=(0,B.useState)(!1);Ke(t);let f=He(t),p=Q(t),h=async()=>{if(o.trim())try{let t=await p.createItem.mutateAsync({title:o.trim()});s(``),e(t.id)}catch(e){m.error(e instanceof Error?e.message:j(`projectsWorkItemCreateFailed`))}};if(f.isLoading)return(0,V.jsx)(`div`,{className:`rounded-xl border border-border/60 p-5 text-sm text-muted-foreground`,children:j(`projectsLoading`)});if(f.isError)return(0,V.jsx)(`div`,{className:`rounded-xl border border-destructive/40 p-5 text-sm text-destructive`,children:j(`projectsLoadFailed`)});let g=qe(f.data??[]),_=Ye(f.data??[]),v=g.filter(e=>e.category===`started`),y=new Map(v.map((e,t)=>[e.id,(t+1)/(v.length+1)]));return(0,V.jsxs)(`section`,{"aria-label":j(`projectsWork`),className:`min-w-0 space-y-4`,children:[(0,V.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,V.jsxs)(`div`,{className:`flex min-w-[16rem] flex-1 gap-2`,children:[(0,V.jsx)(c,{value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{e.key===`Enter`&&h()},placeholder:j(`projectsWorkNewItem`)}),(0,V.jsxs)(d,{onClick:()=>void h(),disabled:!o.trim()||p.createItem.isPending,children:[(0,V.jsx)(fe,{className:`mr-2 h-4 w-4`}),j(`projectsCreate`)]})]}),(0,V.jsxs)(`div`,{className:`flex items-center gap-1 rounded-xl bg-muted/40 p-1`,role:`group`,"aria-label":j(`projectsWorkViews`),children:[(0,V.jsxs)(d,{size:`sm`,variant:n===`list`?`secondary`:`ghost`,"aria-pressed":n===`list`,onClick:()=>r(`list`),children:[(0,V.jsx)(Oe,{className:`mr-2 h-4 w-4`}),j(`projectsWorkList`)]}),(0,V.jsxs)(d,{size:`sm`,variant:n===`board`?`secondary`:`ghost`,"aria-pressed":n===`board`,onClick:()=>r(`board`),children:[(0,V.jsx)(te,{className:`mr-2 h-4 w-4`}),j(`projectsWorkBoard`)]})]}),(0,V.jsxs)(d,{variant:`outline`,size:`sm`,onClick:()=>u(!0),children:[(0,V.jsx)(pe,{className:`mr-2 h-4 w-4`}),j(`projectsWorkStateSettings`)]})]}),(0,V.jsxs)(`label`,{className:`flex w-fit items-center gap-2 text-xs text-muted-foreground`,children:[(0,V.jsx)(`input`,{type:`checkbox`,checked:i,onChange:e=>a(e.target.checked)}),j(`projectsWorkShowDeleted`)]}),n===`list`?(0,V.jsx)(`div`,{className:`space-y-2`,children:_.map(t=>(0,V.jsx)(ut,{state:t,startedProgress:y.get(t.id)??null,view:n,includeDeleted:i,onOpenWorkItem:e},t.id))}):null,n===`board`?(0,V.jsx)(`div`,{className:`grid h-[calc(100dvh-17rem)] min-h-[28rem] max-h-[52rem] min-w-0 auto-cols-[minmax(18rem,1fr)] grid-flow-col items-stretch gap-3 overflow-x-auto overflow-y-hidden pb-2`,children:g.map(t=>(0,V.jsx)(ut,{state:t,startedProgress:y.get(t.id)??null,view:n,includeDeleted:i,onOpenWorkItem:e},t.id))}):null,(0,V.jsx)(ot,{open:l,onOpenChange:u,projectId:t,states:g})]})}var ft=e=>[`project-observation`,e],pt=new Set([T.MessageTextEnd,T.MessageTextDelta,T.MessageCompleted,T.MessageFailed,T.MessageAbort,T.RunStarted,T.RunFinished,T.RunError]),mt=e=>{if(!(`payload`in e)||!e.payload||typeof e.payload!=`object`||!(`sessionId`in e.payload))return null;let{sessionId:t}=e.payload;return typeof t==`string`&&t.trim()?t.trim():null},ht=e=>{let t=e?.project_root??e?.projectRoot;return typeof t==`string`&&t.trim()?t.trim():null};function gt(e,t,n=!0){let i=p();return(0,B.useEffect)(()=>{if(!n||!e||!t)return;let a=ft(e),o=null,s=()=>{o||=setTimeout(()=>{o=null,i.invalidateQueries({queryKey:a,exact:!0})},100)},c=e=>{let t=i.getQueryData(a);return!!(t?.runs?.some(t=>t.sessionId===e)||t?.workItems.some(t=>t.reference.sessionId===e)||t?.activity.some(t=>t.reference.sessionId===e))},u=[l.eventBus.on(r.ncpEvent,e=>{if(!pt.has(e.type))return;let t=mt(e);t&&c(t)&&s()}),l.eventBus.on(r.sessionRunStatus,({sessionKey:e})=>{c(e)&&s()}),l.eventBus.on(r.sessionSummaryUpsert,({summary:e})=>{ht(e.metadata)===t&&s()}),l.eventBus.on(r.sessionSummaryDelete,({sessionKey:e})=>{c(e)&&s()})];return()=>{o&&clearTimeout(o);for(let e of u)e()}},[n,e,t,i]),f({queryKey:ft(e??``),enabled:n&&!!e,staleTime:5e3,queryFn:async()=>await l.projects.getObservation(e)})}async function _t(e){let t=`project-response-${e.requestId}-${e.decision}`;return await l.agentRuns.send({sessionId:e.sessionId,idempotencyKey:t,delivery:`prefer-steer`,message:{id:t,sessionId:e.sessionId,role:`user`,status:`final`,timestamp:new Date().toISOString(),parts:[{type:`text`,text:`${e.decision===`confirmed`?`确认`:`拒绝`}:${e.prompt}`}],metadata:{project_observation_response:{protocol:`nextclaw.project/v1`,requestId:e.requestId,decision:e.decision}}}})}var vt=[`overview`,`work`,`artifacts`,`skills`,`agreement`];function yt(){let{projectId:e,tab:t}=a(),n=i(),r=E(),o=p(),{isMobile:s}=de(),c=ee(),l=D(),{confirm:u,ConfirmDialog:f}=v(),[g,_]=(0,B.useState)(null),[y,b]=(0,B.useState)(null),x=c.data?.projects??[],S=x.find(t=>t.id===e)??null,C=Qe(t)?t:null,w=C===`artifacts`||C===`skills`||C===`agreement`,T=gt(S?.id??null,S?.rootPath??null,w),te=h({mutationFn:_t,onMutate:e=>b(e.requestId),onSuccess:async()=>{S&&await o.invalidateQueries({queryKey:ft(S.id)}),m.success(j(`projectsResponseSent`))},onError:e=>m.error(`${j(`projectsResponseFailed`)}: ${e instanceof Error?e.message:String(e)}`),onSettled:()=>b(null)}),ne=(e,t)=>{e.reference.sessionId&&te.mutate({requestId:e.id,sessionId:e.reference.sessionId,decision:t,prompt:e.prompt})},k=async()=>{if(S&&await u({title:`${j(`projectsRemoveConfirmTitle`)} “${S.name}”`,description:j(`projectsRemoveConfirmDescription`),confirmLabel:j(`projectsRemoveConfirmAction`),variant:`destructive`}))try{await l.mutateAsync(S.id),n(`/projects`)}catch{}};if(c.isLoading)return(0,V.jsx)(`main`,{className:`flex h-full items-center justify-center p-6 text-sm text-muted-foreground`,children:j(`projectsLoading`)});if(c.isError)return(0,V.jsxs)(`main`,{className:`p-6 text-sm text-destructive`,children:[j(`projectsLoadFailed`),`: `,c.error.message]});if(!x.length)return(0,V.jsx)(`main`,{className:`p-6 text-sm text-muted-foreground`,children:j(`projectsEmpty`)});if(!S||!C)return(0,V.jsx)(`main`,{className:`p-6 text-sm text-muted-foreground`,children:j(`projectsChoose`)});let A=(e,t)=>r.chatThreadManager.openFilePreview({path:e,label:t,viewMode:`preview`,previewViewer:`rendered`}),M=T.data;return(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`main`,{className:`h-full min-w-0 flex-1 overflow-y-auto p-3 sm:p-4 md:p-6`,children:(0,V.jsxs)(`div`,{className:`mx-auto max-w-6xl space-y-4`,children:[(0,V.jsxs)(`header`,{className:`flex flex-col gap-3 rounded-2xl border border-border/60 bg-card p-3 sm:flex-row sm:items-start sm:justify-between sm:p-4`,children:[(0,V.jsxs)(`div`,{className:`min-w-0`,children:[(0,V.jsx)(`h1`,{className:`text-lg font-semibold`,children:S.name}),(0,V.jsx)(`p`,{className:`mt-1 break-all text-xs text-muted-foreground`,children:S.rootPath})]}),(0,V.jsx)(d,{type:`button`,variant:`destructive`,size:`sm`,disabled:l.isPending,onClick:()=>void k(),children:j(`projectsRemoveFromList`)})]}),M?(0,V.jsx)(tt,{requests:et(M),pendingRequestId:y,onReply:ne}):null,(0,V.jsxs)(ue,{value:C,onValueChange:e=>n(`/projects/${encodeURIComponent(S.id)}/${e}`),children:[(0,V.jsx)(`div`,{className:`min-w-0 overflow-x-auto pb-1`,children:(0,V.jsx)(le,{className:`w-max`,children:vt.map(e=>(0,V.jsx)(ce,{value:e,children:j(`projects${e[0].toUpperCase()}${e.slice(1)}`)},e))})}),(0,V.jsx)(z,{value:`overview`,className:`mt-4`,children:(0,V.jsx)(Ze,{projectId:S.id,onOpenArtifact:(e,t)=>A(Ne(S.rootPath,e),t),onOpenWorkItem:_})}),(0,V.jsx)(z,{value:`work`,className:`mt-4`,children:(0,V.jsx)(dt,{projectId:S.id,onOpenWorkItem:_})}),w&&T.isLoading?(0,V.jsx)(`div`,{className:`mt-4 rounded-xl border border-border/60 p-5 text-sm text-muted-foreground`,children:j(`projectsLoading`)}):null,w&&T.isError?(0,V.jsxs)(`div`,{className:`mt-4 rounded-xl border border-destructive/40 p-5 text-sm text-destructive`,children:[j(`projectsLoadFailed`),`: `,T.error.message]}):null,M?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(z,{value:`artifacts`,className:`mt-4`,children:(0,V.jsx)(ze,{snapshot:M,onOpenFile:A})}),(0,V.jsx)(z,{value:`skills`,className:`mt-4`,children:(0,V.jsx)(nt,{snapshot:M,onOpen:e=>A(e.path,e.name)})}),(0,V.jsx)(z,{value:`agreement`,className:`mt-4`,children:(0,V.jsx)(Ae,{snapshot:M,onOpenFile:A})})]}):null]})]})}),(0,V.jsx)(rt,{projectId:S.id,projectRoot:S.rootPath,workItemId:g,onOpenChange:e=>{e||_(null)},onOpenArtifact:A}),(0,V.jsx)(O,{layoutMode:s?`mobile`:`desktop`,sessionKey:null,projectRoot:S.rootPath}),(0,V.jsx)(f,{})]})}export{yt as ProjectsPage};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=[`off`,`minimal`,`low`,`medium`,`high`,`adaptive`,`xhigh`],t=new Set(e);function n(e){if(!e||e.length===0)return[];let t=new Set;for(let n of e){let e=n.trim();e&&t.add(e)}return[...t]}function r(e,t){let n=e.trim(),r=t.trim();if(!n||!r)return n;let i=`${r}/`;return n.startsWith(i)?n.slice(i.length):n}function i(e,t){let n=e.trim();if(!n)return``;for(let e of t)n=r(n,e);return n.trim()}function a(e,t){let n=t.trim(),r=e.trim();return n?r?`${r}/${n}`:n:``}function o(e){if(typeof e!=`string`)return null;let n=e.trim().toLowerCase();return n&&t.has(n)?n:null}function s(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){let e=o(n);!e||t.includes(e)||t.push(e)}return t}function c(e){return e.includes(`off`)?[...e]:[`off`,...e]}function l(e,t){if(!e)return{};let n={};for(let[r,a]of Object.entries(e)){let e=i(r,t);if(!e)continue;let c={},l=s(a?.thinking?.supported);if(l.length>0){let e=o(a?.thinking?.default);c.thinking=e&&l.includes(e)?{supported:l,default:e}:{supported:l}}a?.vision===!0&&(c.vision=!0),(c.thinking||c.vision===!0)&&(n[e]=c)}return n}function u(e){return Object.fromEntries(Object.entries(e).filter(e=>!!e[1].thinking).map(([e,t])=>[e,t.thinking]))}function d(e,t,n){let r=i(t,n);return r?e[r]??null:null}function f(e,t){let r=e.trim();if(!r)return null;let a=null;for(let e of t)for(let t of e.aliases){let n=t.trim();n&&(r===n||r.startsWith(`${n}/`))&&(!a||n.length>a.score)&&(a={name:e.name,score:n.length})}if(a)return a.name;for(let e of t){let t=i(r,e.aliases);if(t&&n(e.models??[]).some(e=>e===t))return e.name}return null}function p(e){return e?e.enabled!==!1&&(e.apiKeyRequired===!1||e.apiKeySet===!0):!1}function m(e){let{providersView:t,templatesView:r,config:a,onlyConfigured:o=!1}=e,s=new Map((r?.providerTemplates??[]).map(e=>[e.providerType,e])),c=Object.values(t?.providers??a?.providers??{}).map(e=>{let{providerId:t}=e,r=e.providerType?s.get(e.providerType):void 0,a=t.trim(),o=n([t,r?.modelPrefix||``,r?.providerType||``]),c=n((e?.models??[]).map(e=>i(e,o))),d={...l(r?.modelConfig,o),...l(e?.modelConfig,o)},f=u(d),m=e?.displayName?.trim(),h=p(e);return{name:t,displayName:m||r?.displayName||t,prefix:a,aliases:o,models:c,modelConfig:d,modelThinking:f,configured:h}});return o?c.filter(e=>e.configured&&e.models.length>0):c}export{p as a,s as c,c as d,i as f,f as i,o as l,m as n,l as o,a as r,n as s,e as t,d as u};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{A as t,M as n,t as r}from"./utils-UBHTdG5Q.js";import{Gt as i}from"./api-Utt-xzrT.js";import{s as a}from"./i18n-B9yXA8KO.js";import{t as o}from"./createLucideIcon-BTHK0Ot9.js";import{n as s}from"./chevron-down-An7Km-t4.js";import{a as c,i as l,n as u,r as d,t as f}from"./select-CmDTqk2C.js";import{a as p,n as m,r as h,t as g}from"./popover-XVDgjxcl.js";import{f as _,i as v,r as y}from"./provider-models-5PGHb6mP.js";var b=o(`ChevronsUpDown`,[[`path`,{d:`m7 15 5 5 5-5`,key:`1hf1tw`}],[`path`,{d:`m7 9 5-5 5 5`,key:`sgt6xg`}]]),x=e(n(),1),S=t(),C=p(`15rem`);function w(e){return[...new Set(e.map(e=>e.trim()).filter(Boolean))]}function T({id:e,value:t,onChange:n,options:a,disabled:o=!1,placeholder:c,className:l,inputClassName:u,emptyText:d,createText:f,toggleLabel:p,maxItems:_=1/0,onEnter:v}){let[y,T]=(0,x.useState)(!1),E=(0,x.useRef)(null);(0,x.useEffect)(()=>{o&&y&&T(!1)},[o,y]);let D=(0,x.useMemo)(()=>w(a),[a]),O=t.trim().toLowerCase(),k=(0,x.useMemo)(()=>{let e=D.map((e,t)=>({option:e,index:t}));O.length>0&&e.sort((e,t)=>{let n=e.option.toLowerCase(),r=t.option.toLowerCase(),i=n===O?0:n.startsWith(O)?1:n.includes(O)?2:3,a=r===O?0:r.startsWith(O)?1:r.includes(O)?2:3;return i===a?e.index-t.index:i-a});let t=e.map(e=>e.option);return Number.isFinite(_)?t.slice(0,Math.max(1,_)):t},[D,O,_]),A=t.trim().length>0&&D.some(e=>e===t.trim()),j=()=>T(!1);return(0,S.jsxs)(g,{open:y&&!o,onOpenChange:e=>T(!o&&e),children:[(0,S.jsx)(m,{asChild:!0,children:(0,S.jsxs)(`div`,{ref:E,className:r(`relative`,l),children:[(0,S.jsx)(i,{id:e,value:t,disabled:o,onFocus:()=>{o||T(!0)},onChange:e=>{n(e.target.value),!y&&!o&&T(!0)},onKeyDown:e=>{e.key===`Enter`&&(v&&(e.preventDefault(),v()),j())},placeholder:c,className:r(`pr-10`,u)}),(0,S.jsx)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:()=>T(e=>!e),disabled:o,className:r(`absolute inset-y-0 right-0 inline-flex w-10 items-center justify-center`,o?`cursor-not-allowed text-gray-300`:`text-gray-400 hover:text-gray-600`),"aria-label":p,children:(0,S.jsx)(b,{className:`h-4 w-4`})})]})}),(0,S.jsx)(h,{align:`start`,className:`flex w-[var(--radix-popover-trigger-width)] min-w-[12rem] flex-col overflow-hidden rounded-xl border border-gray-200 p-0 shadow-lg`,onInteractOutside:e=>{e.target instanceof Node&&E.current?.contains(e.target)&&e.preventDefault()},onOpenAutoFocus:e=>e.preventDefault(),style:{maxHeight:C},children:(0,S.jsxs)(`div`,{className:`custom-scrollbar min-h-0 flex-1 overflow-y-auto py-1`,children:[!A&&t.trim().length>0&&(0,S.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:()=>{n(t.trim()),j()},className:`flex w-full items-center gap-2 px-3 py-2 text-left text-sm hover:bg-gray-50`,children:[(0,S.jsx)(s,{className:`h-4 w-4 text-transparent`}),(0,S.jsx)(`span`,{className:`truncate text-gray-700`,children:f.replace(`{value}`,t.trim())})]}),k.map(e=>(0,S.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:()=>{n(e),j()},className:`flex w-full items-center gap-2 px-3 py-2 text-left text-sm hover:bg-gray-50`,children:[(0,S.jsx)(s,{className:r(`h-4 w-4`,e===t.trim()?`text-primary`:`text-transparent`)}),(0,S.jsx)(`span`,{className:`truncate text-gray-700`,children:e})]},e)),k.length===0&&t.trim().length===0&&(0,S.jsx)(`div`,{className:`px-3 py-2 text-sm text-gray-500`,children:d})]})})]})}var E=`provider/model`;function D(e){let t=new Set;for(let n of e){let e=n.trim();e&&t.add(e)}return[...t]}function O({id:e,value:t,onChange:n,providerCatalog:r,disabled:o=!1,providerPlaceholder:s,modelPlaceholder:p,className:m}){let[h,g]=(0,x.useState)(``),[b,C]=(0,x.useState)(``),w=r.length>0,O=p??E,k=(0,x.useMemo)(()=>new Map(r.map(e=>[e.name,e])),[r]),A=k.get(h),j=(0,x.useMemo)(()=>A?.aliases??[],[A]),M=(0,x.useMemo)(()=>D(A?.models??[]),[A]);return(0,x.useEffect)(()=>{let e=t.trim();if(!w){g(``),C(e);return}if(!e){C(``),g(e=>k.has(e)?e:``);return}let n=v(e,r)??``,i=k.get(n)?.aliases??[];g(n),C(n?_(e,i):e)},[w,r,k,t]),w?(0,S.jsxs)(`div`,{className:m,children:[(0,S.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-center`,children:[(0,S.jsx)(`div`,{className:`sm:w-[38%] sm:min-w-[170px]`,children:(0,S.jsxs)(f,{value:h,onValueChange:e=>{let t=D(k.get(e)?.models??[])[0]??``;if(g(e),C(t),!t){n(``);return}n(y(k.get(e)?.prefix??e,t))},disabled:o,children:[(0,S.jsx)(l,{className:`h-10 w-full rounded-xl`,children:(0,S.jsx)(c,{placeholder:s??a(`providersSelectPlaceholder`)})}),(0,S.jsx)(u,{children:r.map(e=>(0,S.jsx)(d,{value:e.name,children:e.displayName},e.name))})]})}),(0,S.jsx)(`span`,{className:`hidden h-10 items-center justify-center leading-none text-lg font-semibold text-gray-300 sm:inline-flex`,children:`/`}),(0,S.jsx)(T,{id:e,value:b,onChange:e=>{if(!A){let t=e.trim();C(t),n(t);return}let t=_(e,j);C(t),n(t?y(A.prefix,t):``)},options:M,disabled:o||!h,placeholder:O,className:`sm:flex-1`,inputClassName:`h-10 rounded-xl`,emptyText:a(`modelPickerNoOptions`),createText:a(`modelPickerUseCustom`),toggleLabel:a(`modelPickerToggleOptions`)},h)]}),(0,S.jsx)(`p`,{className:`mt-2 text-xs text-gray-500`,children:a(`modelInputCustomHint`)})]}):(0,S.jsxs)(`div`,{className:m,children:[(0,S.jsxs)(`div`,{className:`rounded-2xl border border-amber-200 bg-amber-50/70 px-4 py-3`,children:[(0,S.jsx)(`p`,{className:`text-sm font-semibold text-amber-950`,children:a(`providersEmptyTitle`)}),(0,S.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-amber-900`,children:a(`providersEmptyDescription`)})]}),(0,S.jsx)(i,{id:e,value:t,disabled:o,onChange:e=>n(e.target.value),placeholder:O,className:`mt-3 h-10 rounded-xl`}),(0,S.jsx)(`p`,{className:`mt-2 text-xs text-gray-500`,children:a(`modelInputCustomHint`)})]})}export{O as t};
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./chunk-DF37yw5_.js";import{A as t,M as n,t as r}from"./utils-UBHTdG5Q.js";import{Gt as i,Qt as a,Ut as o,Wt as s,Yt as c,hn as l,jn as u,vn as d}from"./api-Utt-xzrT.js";import{l as f,s as p}from"./i18n-B9yXA8KO.js";import{n as m,t as h}from"./logo-badge-Cr03YceJ.js";import{t as g}from"./createLucideIcon-BTHK0Ot9.js";import{t as _}from"./search-DN-f7IIC.js";import{t as v}from"./chevron-down-An7Km-t4.js";import{n as y,t as b}from"./ellipsis-BRI6ROeu.js";import{a as x,i as S,n as C,r as w,t as T}from"./select-CmDTqk2C.js";import{t as E}from"./circle-alert-CDXqELuo.js";import{t as D}from"./eye-cnynUDGt.js";import{i as O,t as k}from"./use-viewport-layout-CUA3jQsA.js";import{t as A}from"./loader-circle-rWr5Yo0E.js";import{t as j}from"./plus-BHnKwuPq.js";import{t as M}from"./refresh-cw-Bw5BY7vp.js";import{t as N}from"./settings-2-B62YtZon.js";import{n as P,t as F}from"./confirm-dialog-DFt4jpN7.js";import{t as I}from"./trash-2-CVOev8yc.js";import{t as L}from"./x-C0iaOsRW.js";import{t as R}from"./host-capabilities-B107nwS3.js";import{i as z,r as B,t as V}from"./popover-XVDgjxcl.js";import{a as H,c as ee,l as U,o as W,t as te}from"./provider-models-5PGHb6mP.js";import{a as G,c as K,d as q,f as ne,h as re,i as ie,l as ae,m as oe,o as se,p as ce,r as le,y as ue}from"./use-config-b2DN67gs.js";import{t as de}from"./form-actions-gQ0JEUwB.js";import{t as J}from"./config-hints-CBPHrfYk.js";import{a as fe,c as pe,i as me,l as he,n as ge,o as _e,r as ve,s as ye}from"./config-split-page-BtnkqWVp.js";var be=g(`CircleDotDashed`,[[`path`,{d:`M10.1 2.18a9.93 9.93 0 0 1 3.8 0`,key:`1qdqn0`}],[`path`,{d:`M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7`,key:`1bq7p6`}],[`path`,{d:`M21.82 10.1a9.93 9.93 0 0 1 0 3.8`,key:`1rlaqf`}],[`path`,{d:`M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69`,key:`1xk03u`}],[`path`,{d:`M13.9 21.82a9.94 9.94 0 0 1-3.8 0`,key:`l7re25`}],[`path`,{d:`M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7`,key:`1v18p6`}],[`path`,{d:`M2.18 13.9a9.93 9.93 0 0 1 0-3.8`,key:`xdo6bj`}],[`path`,{d:`M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69`,key:`1jjmaz`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}]]),xe=g(`EyeOff`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),Y=e(n(),1),Se={providerId:``,providerType:null,isBuiltInType:!1,isCustom:!0,enabled:!0,displayName:``,apiKeySet:!1,apiKeyMasked:void 0,apiBase:null,extraHeaders:null,wireApi:null,models:[],modelConfig:{}};function X(e){if(!e)return null;let t=Object.entries(e).map(([e,t])=>[e.trim(),t]).filter(([e])=>e.length>0);return t.length===0?null:Object.fromEntries(t)}function Ce(e,t){let n=X(e),r=X(t);if(n===null&&r===null)return!0;if(!n||!r)return!1;let i=Object.entries(n).sort(([e],[t])=>e.localeCompare(t)),a=Object.entries(r).sort(([e],[t])=>e.localeCompare(t));return i.length===a.length?i.every(([e,t],n)=>e===a[n][0]&&t===a[n][1]):!1}function Z(e){if(!e||e.length===0)return[];let t=new Set;for(let n of e){let e=n.trim();e&&t.add(e)}return[...t]}function we(e,t){let n=e.trim();if(!n||!t.trim())return n;let r=`${t.trim()}/`;return n.startsWith(r)?n.slice(r.length):n}function Q(e,t){let n=e.trim();if(!n)return``;for(let e of t){let t=e.trim();t&&(n=we(n,t))}return n.trim()}function Te(e,t){return e.length===t.length?e.every((e,n)=>e===t[n]):!1}function Ee(e,t){return Z(t)}function De(e,t){return Z(e).map(e=>{let n=e.trim();return!n||n.startsWith(`${t}/`)?n:`${t}/${n}`})}function Oe(e,t){let n=new Set(t.map(e=>e.trim()).filter(Boolean)),r={};for(let[t,i]of Object.entries(e)){if(!n.has(t))continue;let e={},a=ee(i.thinking?.supported);if(a.length>0){let t=U(i.thinking?.default);e.thinking=t&&a.includes(t)?{supported:a,default:t}:{supported:a}}i.vision===!0&&(e.vision=!0),(e.thinking||e.vision===!0)&&(r[t]=e)}return r}function ke(e,t,n){return{...W(e,n),...W(t,n)}}function Ae(e,t){let n=Object.keys(e).sort(),r=Object.keys(t).sort();if(n.length!==r.length)return!1;for(let i=0;i<n.length;i+=1){let a=n[i];if(a!==r[i])return!1;let o=e[a],s=t[a];if(!o||!s||!Te([...o.thinking?.supported??[]].sort(),[...s.thinking?.supported??[]].sort())||(o.thinking?.default??null)!==(s.thinking?.default??null)||(o.vision??!1)!==(s.vision??!1))return!1}return!0}function je(e){return e.providerName?e.apiKey.trim().length>0||e.apiBase.trim()!==e.currentApiBase.trim()||!Ce(e.extraHeaders,e.currentHeaders)||e.supportsWireApi&&e.wireApi!==e.currentWireApi||!Te(e.models,e.currentEditableModels)||!Ae(e.modelConfig,e.currentModelConfig)||e.providerDisplayName.trim()!==e.effectiveDisplayName:!1}function Me(e){let t={},n=e.apiKey.trim(),r=e.apiBase.trim(),i=X(e.extraHeaders),a=e.providerDisplayName.trim();return a!==e.effectiveDisplayName&&(t.displayName=a.length>0?a:null),n.length>0&&(t.apiKey=n),r!==e.currentApiBase.trim()&&(t.apiBase=r.length>0&&r!==e.defaultApiBase?r:null),Ce(i,e.currentHeaders)||(t.extraHeaders=i),e.supportsWireApi&&e.wireApi!==e.currentWireApi&&(t.wireApi=e.wireApi),Te(e.models,e.currentEditableModels)||(t.models=De(e.models,e.providerName??``)),Ae(e.modelConfig,e.currentModelConfig)||(t.modelConfig=Oe(e.modelConfig,e.models)),t}function Ne(e){let t=Q(e.models.find(e=>e.trim().length>0)??``,e.providerModelAliases),n={...Pe(e),model:t||null};return e.supportsWireApi&&(n.wireApi=e.wireApi),n}function Pe(e){let t={apiBase:e.apiBase.trim(),extraHeaders:X(e.extraHeaders)};return e.apiKey.trim().length>0&&(t.apiKey=e.apiKey.trim()),t}function Fe(e){return p(e===`off`?`chatThinkingLevelOff`:e===`minimal`?`chatThinkingLevelMinimal`:e===`low`?`chatThinkingLevelLow`:e===`medium`?`chatThinkingLevelMedium`:e===`high`?`chatThinkingLevelHigh`:e===`adaptive`?`chatThinkingLevelAdaptive`:`chatThinkingLevelXhigh`)}function Ie(e){let{providerName:t,methods:n,defaultMethodId:r,language:i}=e;if(n.length===0)return``;let a=new Map;for(let e of n){let t=e.id.trim();t&&a.set(t.toLowerCase(),t)}let o=(...e)=>{for(let t of e){let e=a.get(t.toLowerCase());if(e)return e}},s=r?.trim();if(t===`minimax-portal`){if(i===`zh`)return o(`cn`,`china-mainland`)??o(s??``)??n[0]?.id??``;if(i===`en`)return o(`global`,`intl`,`international`)??o(s??``)??n[0]?.id??``}if(s){let e=o(s);if(e)return e}return i===`zh`?o(`cn`)??n[0]?.id??``:i===`en`?o(`global`)??n[0]?.id??``:n[0]?.id??``}function Le(e){let{required:t,hasDefault:n,optionCount:r}=e;return t&&n&&r>1&&r<=3}function Re(e,t,n){let r=Q(t,n);return r?e.includes(r)?{models:e,draft:``}:{models:[...e,r],draft:``}:{models:e,draft:t}}function ze(e,t,n){let r=[...e],i=new Set(e);for(let e of t){let t=Q(e,n);t&&!i.has(t)&&(i.add(t),r.push(t))}return{models:r,addedCount:r.length-e.length}}function Be(e,t,n){return ze(e,t,n).models.slice(e.length)}function Ve(e,t,n){let r={...t};return delete r[n],{models:e.filter(e=>e!==n),modelConfig:r}}function He(e,t,n){let r=e[t],i=r?.thinking?.supported??[],a=i.includes(n)?i.filter(e=>e!==n):te.filter(e=>e===n||i.includes(e)),o=r?.thinking?.default&&a.includes(r.thinking.default)?r.thinking.default:void 0,s={...r,thinking:a.length>0?o?{supported:a,default:o}:{supported:a}:void 0},c={...e};return s.thinking||s.vision===!0?c[t]=s:delete c[t],c}function Ue(e,t,n){let r=e[t],i=r?.thinking;return!i||i.supported.length===0||n&&!i.supported.includes(n)?e:{...e,[t]:{...r,thinking:n?{supported:i.supported,default:n}:{supported:i.supported}}}}function We(e,t,n){let r={...e[t],vision:n?!0:void 0},i={...e};return r.thinking||r.vision===!0?i[t]=r:delete i[t],i}function Ge(e){let{providerName:t,providerSpec:n,language:r}=e,i=n?.auth,a=i?.methods??[];return{providerAuth:i,providerAuthMethodOptions:a.map(e=>({value:e.id,label:e.label?.[r]||e.label?.en||e.id})),providerAuthMethods:a,preferredAuthMethodId:Ie({providerName:n?.providerType??t,methods:a,defaultMethodId:i?.defaultMethodId,language:r}),shouldUseAuthMethodPills:Le({required:i?.kind===`device_code`,hasDefault:!!i?.defaultMethodId?.trim(),optionCount:a.length})}}function Ke(e,t){let n=!!e?.supportsWireApi||t,r=(e?.wireApiOptions||[`auto`,`chat`,`responses`]).map(e=>({value:e,label:p(e===`chat`?`wireApiChat`:e===`responses`?`wireApiResponses`:`wireApiAuto`)}));return{shouldUseWireApiPills:Le({required:n,hasDefault:typeof e?.defaultWireApi==`string`&&e.defaultWireApi.length>0,optionCount:r.length}),supportsWireApi:n,wireApiSelectOptions:r}}function qe(e){let{providerName:t,providersView:n,templatesView:r,schema:i,language:a}=e,o=t?n?.providers[t]:null,s=r?.providerTemplates.find(e=>e.providerType===o?.providerType),c=o??Se,l=i?.uiHints,u=!!o?.isCustom,d=t?J(`providers.${t}.apiKey`,l):void 0,f=t?J(`providers.${t}.apiBase`,l):void 0,m=t?J(`providers.${t}.extraHeaders`,l):void 0,h=t?J(`providers.${t}.wireApi`,l):void 0,g=s?.displayName||o?.displayName||t||``,_=(c.displayName||``).trim()||g,v=c.enabled!==!1,y=u||s?.supportsModelDiscovery===!0,b=Z([s?.modelPrefix||s?.providerType||``,t||``]),x=s?.defaultApiBase||``,S=c.apiBase||x,C=X(c.extraHeaders||null),w=c.wireApi||s?.defaultWireApi||`auto`,T=Ee(Z((s?.defaultModels??[]).map(e=>Q(e,b))),Z((c.models??[]).map(e=>Q(e,b)))),E=Oe(ke(s?.modelConfig,c.modelConfig,b),T),D=s?.apiBaseHelp?.[a]||s?.apiBaseHelp?.en||f?.help||p(`providerApiBaseHelp`),O=Ge({providerName:t,providerSpec:s,language:a}),k=Ke(s,u);return{apiBaseHelpText:D,apiBaseHint:f,apiKeyHint:d,currentApiBase:S,currentEditableModels:T,currentEnabled:v,currentHeaders:C,currentModelConfig:E,currentWireApi:w,defaultApiBase:x,defaultDisplayName:g,effectiveDisplayName:_,extraHeadersHint:m,...O,providerConfig:o,providerModelAliases:b,resolvedProviderConfig:c,supportsModelDiscovery:y,wireApiHint:h,...k}}function Je(e){let{providerName:t,providerAuth:n,resolvedAuthMethodId:r}=e,i=u(),a=oe(),o=ae(),s=K(),[c,l]=(0,Y.useState)(``),[f,m]=(0,Y.useState)(null),[h,g]=(0,Y.useState)(``),_=(0,Y.useRef)(null),v=(0,Y.useCallback)(()=>{_.current!==null&&(window.clearTimeout(_.current),_.current=null)},[]),y=(0,Y.useCallback)((e,n)=>{v(),_.current=window.setTimeout(()=>{(async()=>{if(t)try{let r=await o.mutateAsync({provider:t,data:{sessionId:e}});if(r.status===`pending`){g(p(`providerAuthWaitingBrowser`)),y(e,r.nextPollMs??n);return}if(r.status===`authorized`){m(null),v(),g(p(`providerAuthCompleted`)),d.success(p(`providerAuthCompleted`)),i.invalidateQueries({queryKey:[`config`]}),i.invalidateQueries({queryKey:[`providers`]});return}m(null),v(),g(r.message||`Authorization ${r.status}.`),d.error(r.message||`Authorization ${r.status}.`)}catch(e){m(null),v();let t=e instanceof Error?e.message:String(e);g(t),d.error(`Authorization failed: ${t}`)}})()},Math.max(1e3,n))},[v,o,t,i]),b=(0,Y.useCallback)(async()=>{if(!(!t||n?.kind!==`device_code`))try{l(t),g(``);let e=await a.mutateAsync({provider:t,data:r?{methodId:r}:{}});if(!e.sessionId||!e.verificationUri)throw Error(p(`providerAuthStartFailed`));m(e.sessionId),g(`${p(`providerAuthOpenPrompt`)}${e.userCode}${p(`providerAuthOpenPromptSuffix`)}`),await R.openExternalUrl(e.verificationUri),y(e.sessionId,e.intervalMs)}catch(e){let t=e instanceof Error?e.message:String(e);m(null),v(),g(t),d.error(`${p(`providerAuthStartFailed`)}: ${t}`)}},[v,n?.kind,t,r,y,a]),x=(0,Y.useCallback)(async()=>{if(!(!t||n?.kind!==`device_code`))try{l(t),v(),m(null);let e=await s.mutateAsync({provider:t});g(`${p(`providerAuthImportStatusPrefix`)}${e.expiresAt?` (expires: ${e.expiresAt})`:``}`),d.success(p(`providerAuthImportSuccess`)),i.invalidateQueries({queryKey:[`config`]}),i.invalidateQueries({queryKey:[`providers`]})}catch(e){let t=e instanceof Error?e.message:String(e);g(t),d.error(`${p(`providerAuthImportFailed`)}: ${t}`)}},[v,s,n?.kind,t,i]);return(0,Y.useEffect)(()=>{v()},[v,t]),(0,Y.useEffect)(()=>()=>v(),[v]),{authSessionId:c===t?f:null,authStatusMessage:c===t?h:``,importAuthFromCli:x,importPending:s.isPending,startAuth:b,startPending:a.isPending}}function Ye(e){let{providerName:t,apiKey:n,apiKeyRequired:r,apiKeySet:i,apiBase:a,extraHeaders:o,supportsWireApi:s,wireApi:c,models:u,providerModelAliases:f}=e,m=re(),h=se(),g=(0,Y.useMemo)(()=>JSON.stringify({providerName:t,apiKey:n,apiBase:a,extraHeaders:o}),[a,n,o,t]),[_,v]=(0,Y.useState)(null),y=(0,Y.useCallback)(async()=>{if(t)try{let e=await m.mutateAsync({provider:t,data:Ne({apiKey:n,apiBase:a,extraHeaders:o,supportsWireApi:s,wireApi:c,models:u,providerModelAliases:f})});if(e.success){d.success(`${p(`providerTestConnectionSuccess`)} (${e.latencyMs}ms)`);return}let r=[`provider=${e.provider}`,`latency=${e.latencyMs}ms`];e.model&&r.push(`model=${e.model}`),d.error(`${p(`providerTestConnectionFailed`)}: ${e.message} | ${r.join(` | `)}`)}catch(e){let t=e instanceof Error?e.message:String(e);d.error(`${p(`providerTestConnectionFailed`)}: ${t}`)}},[a,n,o,u,f,t,s,m,c]);return{discoverModels:(0,Y.useCallback)(async()=>{if(!t)return null;if(r&&!n.trim()&&!i)return d.error(p(`providerModelsApiKeyRequired`)),null;try{let e=await h.mutateAsync({provider:t,data:Pe({apiKey:n,apiBase:a,extraHeaders:o})});return v({key:g,models:e.models}),d.success(p(`providerModelsFetchSuccess`)),e.models}catch(e){if(e instanceof l&&(e.details?.upstreamStatus===401||e.details?.upstreamStatus===403))return d.error(p(`providerModelsAuthorizationFailed`)),null;let t=e instanceof Error?e.message:String(e);return d.error(`${p(`providerModelsFetchFailed`)}: ${t}`),null}},[a,n,r,i,h,g,o,t]),fetchedModels:_?.key===g?_.models:[],isDiscoveringModels:h.isPending,isTestPending:m.isPending,testConnection:y}}var $=t();function Xe({value:e,onChange:t,className:n}){let a=e?Object.entries(e):[],o=(e,n,r)=>{let i=[...a];i[e]=[n,r],t(Object.fromEntries(i))},s=()=>{t({...e,"":``})},l=e=>{let n=a.filter((t,n)=>n!==e);t(Object.fromEntries(n))};return(0,$.jsxs)(`div`,{className:r(`space-y-2`,n),children:[a.map(([e,t],n)=>(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(i,{type:`text`,value:e,onChange:e=>o(n,e.target.value,t),placeholder:p(`headerName`),className:`flex-1`}),(0,$.jsx)(i,{type:`text`,value:t,onChange:t=>o(n,e,t.target.value),placeholder:p(`headerValue`),className:`flex-1`}),(0,$.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,onClick:()=>l(n),children:(0,$.jsx)(I,{className:`h-4 w-4 text-red-500`})})]},n)),(0,$.jsxs)(c,{type:`button`,variant:`outline`,size:`sm`,onClick:s,children:[(0,$.jsx)(j,{className:`h-4 w-4 mr-2`}),p(`add`)]})]})}function Ze(e){let{value:t,onChange:n,options:r}=e;return(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:r.map(e=>{let r=e.value===t;return(0,$.jsx)(`button`,{type:`button`,onClick:()=>n(e.value),"aria-pressed":r,className:`rounded-full border px-3 py-1.5 text-xs font-medium transition-colors ${r?`border-foreground/15 bg-foreground text-background`:`border-border/55 bg-muted/50 text-muted-foreground hover:border-border hover:bg-muted hover:text-foreground`}`,children:e.label},e.value)})})}function Qe(e){let{showAdvanced:t,onShowAdvancedChange:n,supportsWireApi:r,wireApiLabel:i,wireApi:a,onWireApiChange:o,shouldUseWireApiPills:c,wireApiSelectOptions:l,extraHeadersLabel:u,extraHeaders:d,onExtraHeadersChange:f}=e;return(0,$.jsxs)(`div`,{className:`border-t border-border/70 pt-4`,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:()=>n(!t),className:`flex w-full items-center justify-between text-sm text-muted-foreground transition-colors hover:text-foreground`,children:[(0,$.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(N,{className:`h-3.5 w-3.5`}),p(`providerAdvancedSettings`)]}),(0,$.jsx)(v,{className:`h-4 w-4 transition-transform ${t?`rotate-180`:``}`})]}),t?(0,$.jsxs)(`div`,{className:`mt-4 space-y-5`,children:[r?(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(s,{htmlFor:`wireApi`,className:`text-sm font-medium text-foreground`,children:i}),c?(0,$.jsx)(Ze,{value:a,onChange:e=>o(e),options:l}):(0,$.jsxs)(T,{value:a,onValueChange:e=>o(e),children:[(0,$.jsx)(S,{className:`rounded-xl`,children:(0,$.jsx)(x,{})}),(0,$.jsx)(C,{children:l.map(e=>(0,$.jsx)(w,{value:e.value,children:e.label},e.value))})]})]}):null,(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(s,{className:`text-sm font-medium text-foreground`,children:u}),(0,$.jsx)(Xe,{value:d,onChange:f}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:p(`providerExtraHeadersHelpShort`)})]})]}):null]})}function $e({isSet:e,className:t,value:n,onChange:a,placeholder:o,...s}){let[l,u]=(0,Y.useState)(!1),[d,f]=(0,Y.useState)(!1),p=typeof n==`string`&&n.length>0;return(0,$.jsxs)(`div`,{className:`relative`,children:[e&&!p&&!d?(0,$.jsx)(`div`,{onClick:()=>f(!0),className:r(`flex h-9 w-full rounded-xl border border-gray-200/80 bg-white px-3.5 py-2 text-sm text-gray-500 cursor-text items-center pr-12`,t),children:`••••••••••••`}):(0,$.jsx)(i,{type:l?`text`:`password`,className:r(`pr-12`,t),value:n,onChange:a,onBlur:()=>{p||f(!1)},placeholder:o,autoFocus:d,...s}),(0,$.jsx)(`div`,{className:`absolute right-2 top-1/2 -translate-y-1/2 flex gap-1`,children:(e||p)&&(0,$.jsx)(c,{type:`button`,variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>u(!l),children:l?(0,$.jsx)(xe,{className:`h-4 w-4`}):(0,$.jsx)(D,{className:`h-4 w-4`})})})]})}function et(e){let{apiKey:t,apiKeyRequired:n,apiKeySet:r,apiKeyPlaceholder:i,providerAuth:a,providerAuthNote:o,providerAuthMethodOptions:l,providerAuthMethodsCount:u,selectedAuthMethodHint:d,shouldUseAuthMethodPills:f,resolvedAuthMethodId:m,onAuthMethodChange:h,onStartProviderAuth:g,onImportProviderAuthFromCli:_,startPending:v,importPending:y,authSessionId:b,authStatusMessage:E,onApiKeyChange:D}=e,O=n?(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(s,{htmlFor:`apiKey`,className:`text-sm font-medium text-foreground`,children:p(`apiKey`)}),(0,$.jsx)($e,{id:`apiKey`,value:t,isSet:r,onChange:e=>D(e.target.value),placeholder:i,className:`rounded-xl`}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:p(`leaveBlankToKeepUnchanged`)})]}):null;return a?.kind===`device_code`?(0,$.jsxs)($.Fragment,{children:[O,(0,$.jsxs)(`div`,{className:`space-y-2 rounded-xl bg-muted/45 p-3`,children:[(0,$.jsx)(s,{className:`text-sm font-medium text-foreground`,children:a.displayName||p(`providerAuthSectionTitle`)}),o?(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o}):null,u>1?(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(s,{className:`text-xs font-medium text-foreground`,children:p(`providerAuthMethodLabel`)}),f?(0,$.jsx)(Ze,{value:m,onChange:h,options:l}):(0,$.jsxs)(T,{value:m,onValueChange:h,children:[(0,$.jsx)(S,{className:`h-8 rounded-lg`,children:(0,$.jsx)(x,{placeholder:p(`providerAuthMethodPlaceholder`)})}),(0,$.jsx)(C,{children:l.map(e=>(0,$.jsx)(w,{value:e.value,children:e.label},e.value))})]}),d?(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:d}):null]}):null,(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,$.jsx)(c,{type:`button`,variant:`outline`,size:`sm`,onClick:g,disabled:v||!!b,children:p(v?`providerAuthStarting`:b?`providerAuthAuthorizing`:`providerAuthAuthorizeInBrowser`)}),a.supportsCliImport?(0,$.jsx)(c,{type:`button`,variant:`outline`,size:`sm`,onClick:_,disabled:y,children:p(y?`providerAuthImporting`:`providerAuthImportFromCli`)}):null,b?(0,$.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[p(`providerAuthSessionLabel`),`: `,b.slice(0,8),`…`]}):null]}),E?(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:E}):null]})]}):O}function tt(e){let{providerName:t,models:n,aliases:r,fetchedModels:i=[],onModelsChange:a}=e,o=q({pollWhileRefreshing:!0,refreshOnMount:!0}),s=t?o.data?.providers[t]:void 0,c=i.length>0?`fetched`:`background`,l=(0,Y.useMemo)(()=>Be(n,c===`fetched`?i:s?.models??[],r),[r,s?.models,i,n,c]);return{addSuggestedModels:(0,Y.useCallback)(e=>{let t=ze(n,e,r);t.addedCount>0&&a(t.models)},[r,n,a]),hasSuggestionError:!!(s?.lastError&&!s.fetchedAt),isCheckingSuggestions:!!(t&&(o.isLoading||o.data?.refreshing&&!s)),suggestedModels:l,suggestionSource:c}}function nt(e){let{models:t,modelConfig:n,onModelsChange:r,onRemoveModel:i,onToggleModelThinkingLevel:a,onSetModelThinkingDefault:c,onSetModelVision:l,thinkingLevels:u,formatThinkingLevelLabel:d}=e,[f,m]=(0,Y.useState)(!1),[h,g]=(0,Y.useState)(()=>new Set),_=(0,Y.useMemo)(()=>t.filter(e=>h.has(e)),[t,h]),v=e=>{g(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},y=()=>{m(!1),g(new Set)};return(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(`div`,{className:`flex min-h-7 flex-wrap items-center justify-end gap-2`,children:f?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`mr-auto text-xs text-muted-foreground`,children:p(`providerModelsSuggestionsSelected`).replace(`{count}`,String(_.length))}),(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-primary hover:text-primary/80`,onClick:()=>g(_.length===t.length?new Set:new Set(t)),children:p(_.length===t.length?`providerModelsClearSelection`:`providerModelsSelectAll`)}),(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-muted-foreground hover:text-foreground`,onClick:y,children:p(`cancel`)}),(0,$.jsxs)(`button`,{type:`button`,disabled:_.length===0,className:`inline-flex items-center gap-1 rounded-md bg-destructive/10 px-2 py-1 text-xs font-medium text-destructive transition-colors hover:bg-destructive/15 disabled:cursor-not-allowed disabled:opacity-45`,onClick:()=>{_.length!==0&&(r(t.filter(e=>!h.has(e))),y())},children:[(0,$.jsx)(I,{className:`h-3 w-3`}),p(`providerModelsRemoveSelected`)]})]}):(0,$.jsxs)(`button`,{type:`button`,className:`inline-flex items-center gap-1 text-xs font-medium text-muted-foreground hover:text-foreground`,onClick:()=>m(!0),children:[(0,$.jsx)(I,{className:`h-3 w-3`}),p(`providerModelsBulkRemove`)]})}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:t.map(e=>{if(f)return(0,$.jsxs)(`label`,{className:`inline-flex max-w-full cursor-pointer items-center gap-2 rounded-full border border-border/55 bg-muted/45 px-3 py-1.5 hover:bg-muted/70`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:h.has(e),onChange:()=>v(e),"aria-label":p(`providerModelsSuggestionSelect`).replace(`{model}`,e),className:`h-3.5 w-3.5 shrink-0 accent-primary`}),(0,$.jsx)(`span`,{className:`max-w-[140px] truncate text-sm text-foreground sm:max-w-[220px]`,children:e})]},e);let t=n[e],r=t?.thinking,m=r?.supported??[],g=r?.default??null,_=t?.vision===!0;return(0,$.jsxs)(`div`,{className:`group inline-flex max-w-full items-center gap-1 rounded-full border border-border/55 bg-muted/45 px-3 py-1.5`,children:[(0,$.jsx)(`span`,{className:`max-w-[140px] truncate text-sm text-foreground sm:max-w-[220px]`,children:e}),(0,$.jsxs)(V,{children:[(0,$.jsx)(z,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:`inline-flex h-5 w-5 items-center justify-center rounded-full text-muted-foreground/70 opacity-100 transition-opacity hover:bg-muted hover:text-foreground md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100`,"aria-label":p(`providerModelThinkingTitle`),title:p(`providerModelThinkingTitle`),children:(0,$.jsx)(N,{className:`h-3 w-3`})})}),(0,$.jsxs)(B,{className:`w-80 space-y-3`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-3 rounded-lg bg-muted/50 px-3 py-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`p`,{className:`text-xs font-semibold text-foreground`,children:p(`providerModelVisionTitle`)}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:p(`providerModelVisionHint`)})]}),(0,$.jsx)(o,{checked:_,onCheckedChange:t=>l(e,t)})]}),(0,$.jsxs)(`div`,{className:`space-y-1`,children:[(0,$.jsx)(`p`,{className:`text-xs font-semibold text-foreground`,children:p(`providerModelThinkingTitle`)}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:p(`providerModelThinkingHint`)})]}),(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:u.map(t=>(0,$.jsx)(`button`,{type:`button`,onClick:()=>a(e,t),className:`rounded-full border px-2.5 py-1 text-xs font-medium transition-colors ${m.includes(t)?`border-foreground/15 bg-foreground text-background`:`border-border/55 bg-muted/50 text-muted-foreground hover:border-border hover:bg-muted hover:text-foreground`}`,children:d(t)},t))}),(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsx)(s,{className:`text-xs font-medium text-foreground`,children:p(`providerModelThinkingDefault`)}),(0,$.jsxs)(T,{value:g??`__none__`,onValueChange:t=>c(e,t===`__none__`?null:t),disabled:m.length===0,children:[(0,$.jsx)(S,{className:`h-8 rounded-lg text-xs`,children:(0,$.jsx)(x,{})}),(0,$.jsxs)(C,{children:[(0,$.jsx)(w,{value:`__none__`,children:p(`providerModelThinkingDefaultNone`)}),m.map(e=>(0,$.jsx)(w,{value:e,children:d(e)},e))]})]}),m.length===0?(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:p(`providerModelThinkingNoSupported`)}):null]})]})]}),(0,$.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:`inline-flex h-5 w-5 items-center justify-center rounded-full text-muted-foreground/70 opacity-100 transition-opacity hover:bg-muted hover:text-foreground md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100`,"aria-label":p(`remove`),children:(0,$.jsx)(L,{className:`h-3 w-3`})})]},e)})}),f?(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:p(`providerModelsRemoveSaveHint`)}):null]})}var rt=20,it=50,at=50;function ot(e){let{expanded:t,fetchedTotal:n,models:r,source:a,onExpandedChange:o,onAddModels:s}=e,[c,l]=(0,Y.useState)(``),[u,d]=(0,Y.useState)(()=>new Set),f=(0,Y.useMemo)(()=>{let e=c.trim().toLowerCase();return e?r.filter(t=>t.toLowerCase().includes(e)):r},[r,c]),m=f.slice(0,at),h=(0,Y.useMemo)(()=>r.filter(e=>u.has(e)),[r,u]),g=e=>{d(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},v=e=>{e.length!==0&&(s(e),l(``),d(new Set))},b=a===`fetched`?`providerModelsFetchedSuggestionsSummary`:`providerModelsSuggestionsSummary`;return a===`fetched`&&r.length===0?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-muted/35 px-3 py-2 text-xs text-muted-foreground`,role:`status`,children:[(0,$.jsx)(P,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),(0,$.jsx)(`span`,{children:p(`providerModelsFetchedAllConfigured`).replace(`{count}`,String(n))})]}):(0,$.jsxs)(`div`,{className:`rounded-xl bg-muted/35 p-2`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-1.5`,children:[(0,$.jsxs)(`button`,{type:`button`,"aria-expanded":t,className:`flex min-w-0 flex-1 items-center gap-1.5 rounded-lg px-2 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-muted/70 hover:text-foreground`,onClick:()=>o(!t),children:[(0,$.jsx)(P,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),(0,$.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:p(b).replace(`{count}`,String(r.length))}),(0,$.jsx)(y,{className:`h-3.5 w-3.5 shrink-0 transition-transform ${t?`rotate-90`:``}`})]}),r.length<=it?(0,$.jsx)(`button`,{type:`button`,className:`shrink-0 rounded-lg px-2 py-1.5 text-xs font-medium text-primary transition-colors hover:bg-primary/10`,onClick:()=>v(r),children:p(`providerModelsSuggestionsAddAll`)}):null]}),t?(0,$.jsxs)(`div`,{className:`px-1 pb-1`,children:[r.length>rt?(0,$.jsxs)(`div`,{className:`relative px-2 pb-1 pt-1.5`,children:[(0,$.jsx)(_,{className:`pointer-events-none absolute left-4 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground`}),(0,$.jsx)(i,{value:c,onChange:e=>l(e.target.value),placeholder:p(`providerModelsSuggestionsSearchPlaceholder`),className:`h-8 rounded-lg pl-8 text-xs`})]}):null,(0,$.jsxs)(`div`,{className:`custom-scrollbar max-h-44 overflow-y-auto overscroll-contain`,children:[m.map(e=>(0,$.jsxs)(`label`,{className:`grid min-w-0 cursor-pointer grid-cols-[auto_minmax(0,1fr)] items-center gap-2 rounded-lg px-2 py-1.5 hover:bg-muted/70`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:u.has(e),onChange:()=>g(e),"aria-label":p(`providerModelsSuggestionSelect`).replace(`{model}`,e),className:`h-3.5 w-3.5 shrink-0 accent-primary`}),(0,$.jsx)(`span`,{className:`block min-w-0 truncate text-xs text-foreground`,title:e,children:e})]},e)),f.length===0?(0,$.jsx)(`p`,{className:`px-2 py-4 text-center text-xs text-muted-foreground`,children:p(`providerModelsSuggestionsSearchEmpty`)}):null]}),f.length>m.length?(0,$.jsx)(`p`,{className:`px-2 pt-1 text-[11px] text-muted-foreground`,children:p(`providerModelsSuggestionsShowing`).replace(`{visible}`,String(m.length)).replace(`{count}`,String(f.length))}):null,(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-2 pt-1.5`,children:[(0,$.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:p(`providerModelsSuggestionsSelected`).replace(`{count}`,String(h.length))}),(0,$.jsx)(`button`,{type:`button`,disabled:h.length===0,className:`shrink-0 rounded-md bg-primary/10 px-2 py-1 text-[11px] font-medium text-primary transition-colors hover:bg-primary/15 disabled:cursor-not-allowed disabled:opacity-45`,onClick:()=>v(h),children:p(`providerModelsSuggestionsAddSelected`)})]}),(0,$.jsx)(`p`,{className:`px-2 pb-1 pt-1 text-[11px] text-muted-foreground`,children:p(`providerModelsSuggestionsSaveHint`)})]}):null]})}function st({hasFetchedCatalog:e,hasSuggestionError:t,supportsModelDiscovery:n}){return!n||!t||e?null:(0,$.jsxs)(`div`,{className:`flex items-start gap-2 rounded-xl bg-destructive/10 px-3 py-2 text-xs text-destructive`,children:[(0,$.jsx)(E,{className:`mt-0.5 h-3.5 w-3.5 shrink-0`}),p(`providerModelsSuggestionsFailed`)]})}function ct(e){let{providerName:t,providerModelAliases:n,models:r,modelConfig:a,modelDraft:o,showModelInput:l,onModelDraftChange:u,onShowModelInputChange:d,onAddModel:f,onModelsChange:m,supportsModelDiscovery:h,onDiscoverModels:g,isDiscoveringModels:_,fetchedModels:v,onRemoveModel:y,onToggleModelThinkingLevel:b,onSetModelThinkingDefault:x,onSetModelVision:S,thinkingLevels:C,formatThinkingLevelLabel:w}=e,[T,E]=(0,Y.useState)(!1),D=(0,Y.useRef)(null),{addSuggestedModels:O,hasSuggestionError:k,isCheckingSuggestions:N,suggestedModels:P,suggestionSource:F}=tt({providerName:t,models:r,aliases:n,fetchedModels:v,onModelsChange:m}),I=async()=>{await g()&&(E(!0),window.requestAnimationFrame(()=>{let e=D.current;e?.scrollIntoView?.({behavior:`smooth`,block:`center`}),e?.focus({preventScroll:!0})}))},R=v.length>0;return(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsx)(s,{className:`text-sm font-medium text-foreground`,children:p(`providerModelsTitle`)}),(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[h?(0,$.jsxs)(`button`,{type:`button`,onClick:I,disabled:_,className:`flex items-center gap-1 text-xs font-medium text-primary transition-colors hover:text-primary/80 disabled:cursor-wait disabled:opacity-60`,children:[(0,$.jsx)(M,{className:`h-3 w-3 ${_?`animate-spin`:``}`}),p(_?`providerModelsFetching`:`providerModelsFetch`)]}):null,l?null:(0,$.jsxs)(`button`,{type:`button`,onClick:()=>d(!0),className:`flex items-center gap-1 text-xs font-medium text-primary hover:text-primary/80`,children:[(0,$.jsx)(j,{className:`h-3 w-3`}),p(`providerAddModel`)]})]})]}),l?(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(i,{value:o,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),f()),e.key===`Escape`&&(d(!1),u(``))},placeholder:p(`providerModelInputPlaceholder`),className:`flex-1 rounded-xl`,autoFocus:!0}),(0,$.jsx)(c,{type:`button`,size:`sm`,onClick:f,disabled:o.trim().length===0,children:p(`add`)}),(0,$.jsx)(c,{type:`button`,size:`sm`,variant:`ghost`,onClick:()=>{d(!1),u(``)},children:(0,$.jsx)(L,{className:`h-4 w-4`})})]}):null,(0,$.jsx)(st,{hasFetchedCatalog:R,hasSuggestionError:k,supportsModelDiscovery:h}),h&&N&&!R?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-muted/35 px-3 py-2 text-xs text-muted-foreground`,children:[(0,$.jsx)(A,{className:`h-3.5 w-3.5 animate-spin`}),p(`providerModelsSuggestionsChecking`)]}):h&&(P.length>0||R)?(0,$.jsx)(`div`,{ref:D,tabIndex:-1,"aria-live":`polite`,className:`scroll-m-4 outline-none`,children:(0,$.jsx)(ot,{expanded:T,fetchedTotal:v.length,models:P,source:F,onExpandedChange:E,onAddModels:O})}):null,r.length===0?(0,$.jsxs)(`div`,{className:`rounded-xl bg-muted/35 px-4 py-6 text-center`,children:[(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:p(`providerModelsEmptyShort`)}),l?null:(0,$.jsx)(`button`,{type:`button`,onClick:()=>d(!0),className:`mt-2 text-sm font-medium text-primary hover:text-primary/80`,children:p(`providerAddFirstModel`)})]}):(0,$.jsx)(nt,{models:r,modelConfig:a,onModelsChange:m,onRemoveModel:y,onToggleModelThinkingLevel:b,onSetModelThinkingDefault:x,onSetModelVision:S,thinkingLevels:C,formatThinkingLevelLabel:w})]})}function lt({apiKeyRequired:e=!0,apiKeySet:t,className:n,enabled:r}){if(!r)return(0,$.jsx)(m,{status:`inactive`,label:p(`disabled`),className:n});let i=!e||t;return(0,$.jsx)(m,{status:i?`ready`:`setup`,label:p(i?`statusReady`:`statusSetup`),className:n})}function ut(e){let{context:t,language:n,providerTitle:r,providerDisplayName:a,apiKey:o,apiBase:l,extraHeaders:u,wireApi:d,models:f,modelConfig:m,modelDraft:h,showAdvanced:g,showModelInput:_,resolvedAuthMethodId:v,authSessionId:y,authStatusMessage:b,hasChanges:x,isDeletePending:S,isUpdatePending:C,connectivity:w,startPending:T,importPending:E,onProviderDisplayNameChange:D,onApiKeyChange:O,onApiBaseChange:k,onAuthMethodChange:A,onStartProviderAuth:j,onImportProviderAuthFromCli:M,onModelDraftChange:N,onShowModelInputChange:P,onAddModel:F,onModelsChange:L,onRemoveModel:R,onToggleModelThinkingLevel:z,onSetModelThinkingDefault:B,onSetModelVision:V,onShowAdvancedChange:H,onWireApiChange:ee,onExtraHeadersChange:U,onDeleteProvider:W,onSubmit:G,onTestConnection:K}=e,q=t.providerAuthMethods.find(e=>e.id===v);return(0,$.jsxs)(ge,{children:[(0,$.jsx)(pe,{className:`px-5 py-4`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsx)(`h3`,{className:`truncate text-lg font-semibold text-foreground`,children:r}),(0,$.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,$.jsx)(`button`,{type:`button`,onClick:W,disabled:S,className:`text-muted-foreground/70 transition-colors hover:text-red-500`,title:p(`providerDelete`),children:(0,$.jsx)(I,{className:`h-4 w-4`})}),(0,$.jsx)(lt,{enabled:t.currentEnabled,apiKeyRequired:t.resolvedProviderConfig.apiKeyRequired,apiKeySet:t.resolvedProviderConfig.apiKeySet})]})]})}),(0,$.jsxs)(`form`,{onSubmit:G,className:`flex min-h-0 flex-1 flex-col`,children:[(0,$.jsxs)(_e,{className:`space-y-4 px-5 py-4`,children:[(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(s,{htmlFor:`providerDisplayName`,className:`text-sm font-medium text-foreground`,children:p(`providerDisplayName`)}),(0,$.jsx)(i,{id:`providerDisplayName`,type:`text`,value:a,onChange:e=>D(e.target.value),placeholder:t.defaultDisplayName||p(`providerDisplayNamePlaceholder`),className:`rounded-xl`}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:p(`providerDisplayNameHelpShort`)})]}),(0,$.jsx)(et,{apiKey:o,apiKeyRequired:t.resolvedProviderConfig.apiKeyRequired!==!1,apiKeySet:t.resolvedProviderConfig.apiKeySet,apiKeyPlaceholder:t.apiKeyHint?.placeholder??p(`enterApiKey`),providerAuth:t.providerAuth,providerAuthNote:t.providerAuth?.note?.[n]||t.providerAuth?.note?.en||t.providerAuth?.displayName||``,providerAuthMethodOptions:t.providerAuthMethodOptions,providerAuthMethodsCount:t.providerAuthMethods.length,selectedAuthMethodHint:q?.hint?.[n]||q?.hint?.en||``,shouldUseAuthMethodPills:t.shouldUseAuthMethodPills,resolvedAuthMethodId:v,onAuthMethodChange:A,onStartProviderAuth:j,onImportProviderAuthFromCli:M,startPending:T,importPending:E,authSessionId:y,authStatusMessage:b,onApiKeyChange:O}),(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsx)(s,{htmlFor:`apiBase`,className:`text-sm font-medium text-foreground`,children:p(`apiBase`)}),(0,$.jsx)(i,{id:`apiBase`,type:`text`,value:l,onChange:e=>k(e.target.value),placeholder:t.defaultApiBase||t.apiBaseHint?.placeholder||`https://api.example.com`,className:`rounded-xl`}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:t.apiBaseHelpText})]}),(0,$.jsx)(ct,{providerName:t.providerConfig?.providerId??``,providerModelAliases:t.providerModelAliases,models:f,modelConfig:m,modelDraft:h,showModelInput:_,onModelDraftChange:N,onShowModelInputChange:P,onAddModel:F,onModelsChange:L,supportsModelDiscovery:t.supportsModelDiscovery,onDiscoverModels:w.discoverModels,isDiscoveringModels:w.isDiscoveringModels,fetchedModels:w.fetchedModels,onRemoveModel:R,onToggleModelThinkingLevel:z,onSetModelThinkingDefault:B,onSetModelVision:V,thinkingLevels:te,formatThinkingLevelLabel:Fe},t.providerConfig?.providerId),(0,$.jsx)(Qe,{showAdvanced:g,onShowAdvancedChange:H,supportsWireApi:t.supportsWireApi,wireApiLabel:p(`wireApi`),wireApi:d,onWireApiChange:ee,shouldUseWireApiPills:t.shouldUseWireApiPills,wireApiSelectOptions:t.wireApiSelectOptions,extraHeadersLabel:p(`extraHeaders`),extraHeaders:u,onExtraHeadersChange:U})]}),(0,$.jsx)(ye,{children:(0,$.jsxs)(de,{align:`between`,children:[(0,$.jsxs)(c,{type:`button`,variant:`outline`,size:`sm`,onClick:K,disabled:w.isTestPending,children:[(0,$.jsx)(be,{className:`mr-1.5 h-3.5 w-3.5`}),w.isTestPending?p(`providerTestingConnection`):p(`providerTestConnection`)]}),(0,$.jsx)(c,{type:`submit`,size:`sm`,disabled:C||!x,children:p(C?`saving`:x?`save`:`unchanged`)})]})})]})]})}function dt({providerName:e,onProviderDeleted:t}){let{data:n}=ce(),{data:r}=ne(),{data:i}=le(),a=f(),o=(0,Y.useMemo)(()=>qe({providerName:e,providersView:n,templatesView:r,schema:i,language:a}),[a,e,n,i,r]);if(!e||!o.providerConfig)return(0,$.jsx)(ve,{children:(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h3`,{className:`text-base font-semibold text-foreground`,children:p(`providersSelectTitle`)}),(0,$.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:p(`providersSelectDescription`)})]})});let s=JSON.stringify({providerConfig:o.providerConfig,currentApiBase:o.currentApiBase,currentEditableModels:o.currentEditableModels,currentModelConfig:o.currentModelConfig,currentWireApi:o.currentWireApi,effectiveDisplayName:o.effectiveDisplayName,preferredAuthMethodId:o.preferredAuthMethodId});return(0,$.jsx)(ft,{providerName:e,onProviderDeleted:t,context:o,language:a},s)}function ft({providerName:e,onProviderDeleted:t,context:n,language:r}){let i=ue(),a=G(),{currentApiBase:o,currentEditableModels:s,currentHeaders:c,currentModelConfig:l,currentWireApi:u,defaultApiBase:d,effectiveDisplayName:f,providerAuth:m,providerAuthMethods:h,providerModelAliases:g,resolvedProviderConfig:_,preferredAuthMethodId:v,supportsWireApi:y}=n,[b,x]=(0,Y.useState)(``),[S,C]=(0,Y.useState)(o),[w,T]=(0,Y.useState)(_.extraHeaders||null),[E,D]=(0,Y.useState)(u),[O,k]=(0,Y.useState)(s),[A,j]=(0,Y.useState)(l),[M,N]=(0,Y.useState)(``),[P,F]=(0,Y.useState)(f),[I,L]=(0,Y.useState)(!1),[R,z]=(0,Y.useState)(!1),[B,V]=(0,Y.useState)(v),H=Ye({providerName:e,apiKey:b,apiKeyRequired:_.apiKeyRequired!==!1,apiKeySet:_.apiKeySet,apiBase:S,extraHeaders:w,supportsWireApi:y,wireApi:E,models:O,providerModelAliases:g}),ee=P.trim()||f||e||p(`providersSelectPlaceholder`),U=(0,Y.useMemo)(()=>{if(!h.length)return``;let e=B.trim();return e&&h.some(t=>t.id===e)?e:v||h[0]?.id||``},[B,v,h]),{authSessionId:W,authStatusMessage:te,importAuthFromCli:K,importPending:q,startAuth:ne,startPending:re}=Je({providerName:e,providerAuth:m,resolvedAuthMethodId:U}),ie=(0,Y.useMemo)(()=>je({providerName:e,apiKey:b,apiBase:S,currentApiBase:o,extraHeaders:w,currentHeaders:c,supportsWireApi:y,wireApi:E,currentWireApi:u,models:O,currentEditableModels:s,modelConfig:A,currentModelConfig:l,providerDisplayName:P,effectiveDisplayName:f}),[e,b,S,o,w,c,y,E,u,O,s,A,l,P,f]),ae=e=>{k(e),j(t=>Oe(t,e))};return(0,$.jsx)(ut,{context:n,language:r,providerTitle:ee,providerDisplayName:P,apiKey:b,apiBase:S,extraHeaders:w,wireApi:E,models:O,modelConfig:A,modelDraft:M,showAdvanced:I,showModelInput:R,resolvedAuthMethodId:U,authSessionId:W,authStatusMessage:te,hasChanges:ie,isDeletePending:a.isPending,isUpdatePending:i.isPending,connectivity:H,startPending:re,importPending:q,onProviderDisplayNameChange:F,onApiKeyChange:x,onApiBaseChange:C,onAuthMethodChange:V,onStartProviderAuth:ne,onImportProviderAuthFromCli:K,onModelDraftChange:N,onShowModelInputChange:z,onAddModel:()=>{let e=Re(O,M,g);ae(e.models),N(e.draft)},onModelsChange:ae,onRemoveModel:e=>{let t=Ve(O,A,e);k(t.models),j(t.modelConfig)},onToggleModelThinkingLevel:(e,t)=>{j(n=>He(n,e,t))},onSetModelThinkingDefault:(e,t)=>{j(n=>Ue(n,e,t))},onSetModelVision:(e,t)=>{j(n=>We(n,e,t))},onShowAdvancedChange:L,onWireApiChange:D,onExtraHeadersChange:T,onDeleteProvider:async()=>{if(e&&window.confirm(p(`providerDeleteConfirm`)))try{await a.mutateAsync({provider:e}),t?.(e)}catch{}},onSubmit:t=>{t.preventDefault(),e&&i.mutate({provider:e,data:Me({providerName:e,apiKey:b,apiBase:S,currentApiBase:o,defaultApiBase:d,extraHeaders:w,currentHeaders:c,supportsWireApi:y,wireApi:E,currentWireApi:u,models:O,currentEditableModels:s,modelConfig:A,currentModelConfig:l,providerDisplayName:P,effectiveDisplayName:f})})},onTestConnection:H.testConnection})}function pt(e){if(!e)return null;try{let t=new URL(e);return`${t.host}${t.pathname&&t.pathname!==`/`?t.pathname:``}`}catch{return e.replace(/^https?:\/\//,``)}}function mt(e,t=[]){let n=new Map(t.map((e,t)=>[e,t]));return e.map((e,t)=>({provider:e,index:t})).sort((e,t)=>{let r=n.get(e.provider.providerId),i=n.get(t.provider.providerId);if(r!==void 0||i!==void 0)return(r??2**53-1)-(i??2**53-1);let a=e.provider.providerType===`nextclaw`?1:0,o=t.provider.providerType===`nextclaw`?1:0;return a===o?e.index-t.index:a-o}).map(({provider:e})=>e)}function ht(e){let t=e.findIndex(e=>e.providerType===`zhipu`),n=e.findIndex(e=>e.providerType===`dashscope-coding-plan`);return e.map((e,t)=>({template:e,index:t})).sort((e,r)=>{let i=({template:e,index:r})=>e.providerType===`nextclaw`?2**53-1:e.providerType===`deepseek`&&n>=0?n-.5:e.providerType===`mimo`&&t>=0?t+.5:r;return i(e)-i(r)}).map(({template:e})=>e)}function gt(){let{isMobile:e}=k(),{data:t}=ce(),{data:n}=ne(),s=ie(),l=G(),u=ue(),[d,f]=(0,Y.useState)(null),[g,v]=(0,Y.useState)(null),[y,x]=(0,Y.useState)(!1),[S,C]=(0,Y.useState)([]),[w,T]=(0,Y.useState)(``),E=(0,Y.useMemo)(()=>mt(Object.values(t?.providers??{}),S),[t?.providers,S]),D=(0,Y.useMemo)(()=>n?.providerTemplates??[],[n?.providerTemplates]),A=(0,Y.useMemo)(()=>ht(D),[D]),M=(0,Y.useMemo)(()=>new Map(D.map(e=>[e.providerType,e])),[D]),N=(0,Y.useMemo)(()=>{let e=w.trim().toLowerCase();return E.filter(t=>{if(!e)return!0;let n=t.providerType?M.get(t.providerType):null;return(t.displayName?.trim()||n?.displayName||t.providerId).toLowerCase().includes(e)||t.providerId.toLowerCase().includes(e)})},[E,w,M]),P=(0,Y.useMemo)(()=>d&&N.some(e=>e.providerId===d)?d:e?null:N[0]?.providerId??null,[N,e,d]);return!t||!n?(0,$.jsx)(a,{title:p(`providersPageTitle`),description:p(`providersPageDescription`),layout:`split`,children:(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:p(`providersLoading`)})}):(0,$.jsxs)(a,{title:p(`providersPageTitle`),description:p(`providersPageDescription`),layout:`split`,children:[(0,$.jsxs)(fe,{className:`md:min-h-0`,compactView:d?`detail`:`list`,onMobileBack:()=>f(null),mobileListLabel:p(`providersPageTitle`),children:[(0,$.jsxs)(he,{children:[(0,$.jsx)(pe,{className:`space-y-3 px-4 pb-3 pt-4`,children:(0,$.jsxs)(V,{open:y,onOpenChange:x,children:[(0,$.jsx)(z,{asChild:!0,children:(0,$.jsxs)(c,{type:`button`,variant:`outline`,className:`w-full justify-center`,disabled:s.isPending,children:[(0,$.jsx)(j,{className:`mr-2 h-4 w-4`}),s.isPending?p(`saving`):p(`providerAdd`)]})}),(0,$.jsxs)(B,{className:`w-[42rem] max-w-[calc(100vw-2rem)] p-3`,align:`start`,children:[(0,$.jsx)(`div`,{className:`mb-2 px-1 text-xs font-semibold text-muted-foreground`,children:p(`providerTemplatePickerTitle`)}),(0,$.jsxs)(`div`,{className:`grid max-h-[24rem] grid-cols-2 gap-2 overflow-y-auto sm:grid-cols-3`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex min-h-20 w-full flex-col items-start gap-2 rounded-lg border border-dashed border-border/70 bg-muted/20 px-3 py-2 text-left transition-colors hover:border-border hover:bg-muted/45`,onClick:async()=>{try{let e=await s.mutateAsync({data:{providerType:null}});T(``),f(e.providerId),C(t=>[e.providerId,...t.filter(t=>t!==e.providerId)]),x(!1)}catch{}},children:[(0,$.jsx)(h,{name:`custom`,className:`h-8 w-8 rounded-lg border border-border/60 bg-muted/50`}),(0,$.jsx)(`span`,{className:`line-clamp-2 min-w-0 text-xs font-semibold leading-4 text-foreground`,children:p(`providerAddCustom`)})]}),A.map(e=>(0,$.jsxs)(`button`,{type:`button`,className:`flex min-h-20 w-full flex-col items-start gap-2 rounded-lg border border-border/55 bg-muted/15 px-3 py-2 text-left transition-colors hover:border-border/80 hover:bg-muted/40`,onClick:async()=>{try{let t=await s.mutateAsync({data:{providerType:e.providerType}});T(``),f(t.providerId),C(e=>[t.providerId,...e.filter(e=>e!==t.providerId)]),x(!1)}catch{}},children:[(0,$.jsx)(h,{name:e.providerType,src:e.logo?`/logos/${e.logo}`:null,className:`h-8 w-8 rounded-lg border border-border/55 bg-background`,imgClassName:`h-4 w-4 object-contain`}),(0,$.jsx)(`span`,{className:`line-clamp-2 min-w-0 text-xs font-semibold leading-4 text-foreground`,children:e.displayName||e.providerType})]},e.providerType))]})]})]})}),(0,$.jsx)(`div`,{className:`border-b border-border/70 px-4 py-3`,children:(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(_,{className:`pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground/70`}),(0,$.jsx)(i,{value:w,onChange:e=>T(e.target.value),placeholder:p(`providersFilterPlaceholder`),className:`h-10 rounded-xl pl-9`})]})}),(0,$.jsxs)(_e,{className:`space-y-2 p-3`,children:[N.map(e=>{let t=e.providerType?M.get(e.providerType):null,n=e.enabled!==!1,i=H(e),a=e.displayName?.trim()||t?.displayName||e.providerId,s=pt(e.apiBase||t?.defaultApiBase||``)||p(`providersDefaultDescription`);return(0,$.jsx)(`div`,{onClick:()=>f(e.providerId),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),f(e.providerId))},role:`button`,tabIndex:0,className:r(`group w-full rounded-xl p-2.5 text-left transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40`,P===e.providerId?`bg-background/95 text-foreground shadow-sm`:`bg-transparent text-muted-foreground hover:bg-background/65 hover:text-foreground`),children:(0,$.jsxs)(`div`,{className:`relative min-h-10`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3 pr-20`,children:[(0,$.jsx)(h,{name:e.providerType??e.providerId,src:t?.logo?`/logos/${t.logo}`:null,className:`h-10 w-10 rounded-lg bg-background/80`,imgClassName:`h-5 w-5 object-contain`,fallback:(0,$.jsx)(`span`,{className:`text-sm font-semibold uppercase text-muted-foreground`,children:e.providerId[0]})}),(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`p`,{className:`truncate text-sm font-semibold text-foreground`,children:a}),(0,$.jsx)(`p`,{className:`truncate font-mono text-[10px] text-muted-foreground/65`,children:e.providerId}),(0,$.jsxs)(`p`,{className:`line-clamp-1 text-[11px] text-muted-foreground`,children:[s,` · `,e.models?.length??0]})]})]}),(0,$.jsxs)(`div`,{className:`absolute right-0 top-0 flex items-center gap-1.5 opacity-70 transition-opacity group-hover:opacity-100`,children:[(0,$.jsx)(`div`,{onClick:e=>e.stopPropagation(),children:(0,$.jsx)(o,{checked:n,disabled:u.isPending,title:p(n?`disabled`:`enabled`),className:`h-[18px] w-8`,thumbClassName:`h-4 w-4 data-[state=checked]:translate-x-4`,onCheckedChange:t=>{u.mutateAsync({provider:e.providerId,data:{enabled:t},silentSuccess:!0})}})}),(0,$.jsxs)(V,{children:[(0,$.jsx)(z,{asChild:!0,children:(0,$.jsx)(`button`,{type:`button`,className:`inline-flex h-7 w-7 items-center justify-center rounded-lg text-muted-foreground/70 hover:bg-muted hover:text-foreground`,onClick:e=>e.stopPropagation(),title:p(`more`),children:(0,$.jsx)(b,{className:`h-4 w-4`})})}),(0,$.jsx)(B,{className:`w-40 p-1`,align:`end`,onClick:e=>e.stopPropagation(),children:(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-md px-2 py-2 text-sm text-red-600 hover:bg-red-50`,onClick:()=>v(e.providerId),children:[(0,$.jsx)(I,{className:`h-4 w-4`}),p(`providerDelete`)]})})]})]}),(0,$.jsx)(m,{status:n?i?`ready`:`setup`:`inactive`,label:p(n?i?`statusReady`:`statusSetup`:`disabled`),className:`absolute bottom-0 right-0 justify-end`})]})},e.providerId)}),N.length===0?(0,$.jsx)(me,{icon:O,title:p(`providersNoMatch`)}):null]})]}),(0,$.jsx)(dt,{providerName:P??void 0,onProviderDeleted:e=>{C(t=>t.filter(t=>t!==e)),e===P&&f(null)}})]}),(0,$.jsx)(F,{open:!!g,onOpenChange:e=>{e||v(null)},title:p(`providerDelete`),description:g??void 0,confirmLabel:p(`delete`),variant:`destructive`,onCancel:()=>v(null),onConfirm:()=>{g&&l.mutateAsync({provider:g}).then(()=>{C(e=>e.filter(e=>e!==g)),g===P&&f(null),v(null)})}})]})}export{gt as ProvidersConfigPage};
|
|
Binary file
|