agentengine-sdk-python 0.8.2__py3-none-any.whl → 0.8.3__py3-none-any.whl
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.
- {agentengine_sdk_python-0.8.2.dist-info → agentengine_sdk_python-0.8.3.dist-info}/METADATA +18 -25
- {agentengine_sdk_python-0.8.2.dist-info → agentengine_sdk_python-0.8.3.dist-info}/RECORD +224 -169
- ksadk/_build_provenance.json +1 -0
- ksadk/agui/_agent_helpers.py +4 -0
- ksadk/api/client.py +3 -0
- ksadk/builders/managed_runtime_builder.py +3 -0
- ksadk/cli/__init__.py +6 -0
- ksadk/cli/cmd_plugin.py +657 -0
- ksadk/codex/runtime.py +50 -8
- ksadk/configs/env_registry.py +31 -3
- ksadk/configs/settings.py +9 -0
- ksadk/context_engine/contributors.py +73 -8
- ksadk/conversations/__init__.py +19 -0
- ksadk/conversations/context.py +104 -24
- ksadk/conversations/contracts.py +266 -0
- ksadk/conversations/message_projection.py +19 -1
- ksadk/conversations/projector.py +616 -0
- ksadk/conversations/reducer.py +98 -0
- ksadk/events/_v1_compat/projection.py +2 -0
- ksadk/events/adapters/codex.py +190 -0
- ksadk/harness/__init__.py +45 -35
- ksadk/harness/runtime.py +60 -1
- ksadk/kernel/contract_fingerprints.py +5 -4
- ksadk/kernel/contracts.py +8 -0
- ksadk/kernel/control.py +1 -0
- ksadk/kernel/ingress.py +21 -0
- ksadk/kernel/memory_store.py +1 -0
- ksadk/kernel/postgres_store.py +1 -0
- ksadk/kernel/sqlite_store.py +1 -0
- ksadk/kernel/worker.py +11 -0
- ksadk/memory/providers/local_sqlite.py +7 -0
- ksadk/plugins/__init__.py +167 -0
- ksadk/plugins/bridges/__init__.py +45 -0
- ksadk/plugins/bridges/codex.py +552 -0
- ksadk/plugins/bridges/dsh.py +1116 -0
- ksadk/plugins/builtins.py +747 -0
- ksadk/plugins/bundle.py +246 -0
- ksadk/plugins/bundle_security.py +167 -0
- ksadk/plugins/composition.py +529 -0
- ksadk/plugins/context_contributor.py +437 -0
- ksadk/plugins/contracts.py +451 -0
- ksadk/plugins/dsh_toolchain.py +935 -0
- ksadk/plugins/ecosystem_bridge.py +1105 -0
- ksadk/plugins/ecosystem_probe.py +191 -0
- ksadk/plugins/host.py +724 -0
- ksadk/plugins/providers/__init__.py +85 -0
- ksadk/plugins/providers/bundles/ksadk-codex/cordis.patch.yml +3 -0
- ksadk/plugins/providers/bundles/ksadk-codex/index.mjs +18 -0
- ksadk/plugins/providers/bundles/ksadk-codex/package.json +19 -0
- ksadk/plugins/providers/bundles/ksadk-harness/cordis.patch.yml +3 -0
- ksadk/plugins/providers/bundles/ksadk-harness/index.mjs +19 -0
- ksadk/plugins/providers/bundles/ksadk-harness/package.json +19 -0
- ksadk/plugins/providers/codex.py +722 -0
- ksadk/plugins/providers/codex_dsh.py +83 -0
- ksadk/plugins/providers/dsh.py +951 -0
- ksadk/plugins/providers/dsh_descriptor_host.py +226 -0
- ksadk/plugins/providers/harness.py +627 -0
- ksadk/plugins/providers/harness_dsh.py +91 -0
- ksadk/plugins/providers/legacy.py +215 -0
- ksadk/plugins/providers/legacy_catalog.py +100 -0
- ksadk/plugins/providers/shipped_dsh.py +370 -0
- ksadk/plugins/resolver.py +331 -0
- ksadk/plugins/subagent_providers/__init__.py +12 -0
- ksadk/plugins/subagent_providers/codex.py +443 -0
- ksadk/plugins/subagents.py +333 -0
- ksadk/runtime/_runner_adapter/stream_mapping.py +51 -42
- ksadk/runtime/adapter.py +1 -0
- ksadk/runtime/factory.py +76 -2
- ksadk/runtime/framework_adapters.py +18 -0
- ksadk/runtime/runner_adapter.py +5 -0
- ksadk/sandbox/__init__.py +2 -1
- ksadk/sandbox/factory.py +72 -0
- ksadk/scheduler/__init__.py +18 -0
- ksadk/scheduler/calendar.py +102 -0
- ksadk/scheduler/contracts.py +254 -0
- ksadk/scheduler/dispatcher.py +129 -0
- ksadk/scheduler/engine.py +416 -0
- ksadk/scheduler/sqlite_store.py +563 -0
- ksadk/server/static/assets/{ArtifactsPanel-DSU1sWD_.js → ArtifactsPanel-10GPXIJ6.js} +1 -1
- ksadk/server/static/assets/{CodeBlock-DOH6MVcn.js → CodeBlock-BXk1l-G1.js} +1 -1
- ksadk/server/static/assets/{MathMessageMarkdown-BL8my1R2.js → MathMessageMarkdown-D9uB55Oh.js} +1 -1
- ksadk/server/static/assets/{MermaidBlock-Dz4IP-Tx.js → MermaidBlock--OEYoXIJ.js} +6 -6
- ksadk/server/static/assets/{NativeTerminalPanel-DUrK0JpZ.js → NativeTerminalPanel-DrEe1syq.js} +1 -1
- ksadk/server/static/assets/{abnfDiagram-VCTEODGH-g20pFzNV.js → abnfDiagram-VCTEODGH-eeTFJLvo.js} +1 -1
- ksadk/server/static/assets/{arc-C4FzinUA.js → arc-S3ZNbIAd.js} +1 -1
- ksadk/server/static/assets/architecture-7GRP2DOG-Dk9nRQ6-.js +1 -0
- ksadk/server/static/assets/{architectureDiagram-5GKGNRK7-DpIqL5h4.js → architectureDiagram-5GKGNRK7-CRjgEJDX.js} +1 -1
- ksadk/server/static/assets/{blockDiagram-NRAW4CY4-BjkljTNz.js → blockDiagram-NRAW4CY4-C7bsBoNH.js} +1 -1
- ksadk/server/static/assets/{c4Diagram-UCG6FXSJ-Dk_ieq2X.js → c4Diagram-UCG6FXSJ-BX3c33Ob.js} +1 -1
- ksadk/server/static/assets/channel-s354Yo6o.js +1 -0
- ksadk/server/static/assets/chunk-2Q5K7J3B-CDpPpKR5.js +1 -0
- ksadk/server/static/assets/{chunk-5VM5RSS4-BVHAchFb.js → chunk-5VM5RSS4-bZ7ws-8m.js} +1 -1
- ksadk/server/static/assets/{chunk-F27PBJKO-C-ipQzuS.js → chunk-F27PBJKO-D2r0pvhY.js} +1 -1
- ksadk/server/static/assets/{chunk-G27WJ6UU-C2EyJbIK.js → chunk-G27WJ6UU-CZwF3oUP.js} +1 -1
- ksadk/server/static/assets/{chunk-JWPE2WC7-vYvVJb_M.js → chunk-JWPE2WC7-DigFYCML.js} +1 -1
- ksadk/server/static/assets/{chunk-LCL6LL3I-BcI6ysPT.js → chunk-LCL6LL3I-CnorGV5q.js} +1 -1
- ksadk/server/static/assets/{chunk-POPQ4Y6H-C030x_Z1.js → chunk-POPQ4Y6H-CexntQA-.js} +1 -1
- ksadk/server/static/assets/{chunk-RHFEMEQ7-yyGpsz4n.js → chunk-RHFEMEQ7-CHTC7UxA.js} +1 -1
- ksadk/server/static/assets/{chunk-SVP7TREG-BLTlmMU7.js → chunk-SVP7TREG-BC1EWt_-.js} +1 -1
- ksadk/server/static/assets/{chunk-XXDRQBXY-C_32ArgP.js → chunk-XXDRQBXY-BTG24xN0.js} +1 -1
- ksadk/server/static/assets/classDiagram-DTDB5LWJ-Dd0nucl9.js +1 -0
- ksadk/server/static/assets/classDiagram-v2-JRS7N3AN-Dd0nucl9.js +1 -0
- ksadk/server/static/assets/{cose-bilkent-JH36ORCC-9YQYwdl0.js → cose-bilkent-JH36ORCC-CkonRdAS.js} +1 -1
- ksadk/server/static/assets/cynefin-OW5HDTMX-BBlT4uMf.js +1 -0
- ksadk/server/static/assets/{cynefinDiagram-5FMLGOSQ-ErLF5N13.js → cynefinDiagram-5FMLGOSQ-DEOCBe15.js} +1 -1
- ksadk/server/static/assets/{dagre-3AP2YEHR-DFiQF-6f.js → dagre-3AP2YEHR-DBThPuLa.js} +1 -1
- ksadk/server/static/assets/{dagre-BuhGnRI1.js → dagre-ClTPrTht.js} +1 -1
- ksadk/server/static/assets/{diagram-S7CK7UJ4-Bt1v8-GC.js → diagram-S7CK7UJ4-DsZHrnpJ.js} +1 -1
- ksadk/server/static/assets/{diagram-UQ7AKVKN-DSCxJdBK.js → diagram-UQ7AKVKN-BJR4nhVr.js} +1 -1
- ksadk/server/static/assets/{diagram-VSXAHHWV-DHfYwp_9.js → diagram-VSXAHHWV-xzcERX0a.js} +1 -1
- ksadk/server/static/assets/{diagram-VX7I27RA-DdzD-4Le.js → diagram-VX7I27RA-tn2xM1xu.js} +1 -1
- ksadk/server/static/assets/{diagram-Z3DM3KII-Du-nAJ9F.js → diagram-Z3DM3KII-BZPGBkw5.js} +1 -1
- ksadk/server/static/assets/{dist-ClxGviKw.js → dist-4zN1_tq5.js} +1 -1
- ksadk/server/static/assets/{dist-BE7bu-DL.js → dist-8VWI-2bZ.js} +1 -1
- ksadk/server/static/assets/{dist-BX8z72IC.js → dist-B-46q3Hk.js} +1 -1
- ksadk/server/static/assets/{dist-BjU6y-A2.js → dist-B0gdk4rl.js} +1 -1
- ksadk/server/static/assets/{dist-C_wsv-Qd.js → dist-B1oWRmrH.js} +1 -1
- ksadk/server/static/assets/{dist-ngtN0DJB.js → dist-BI1qQH4n.js} +1 -1
- ksadk/server/static/assets/{dist-dydu68Fl.js → dist-BJLUwH6W.js} +1 -1
- ksadk/server/static/assets/{dist-Dq9gLD7L.js → dist-Bbwqa8TG.js} +1 -1
- ksadk/server/static/assets/{dist-CttYUqzS.js → dist-Btyo4vX4.js} +1 -1
- ksadk/server/static/assets/{dist-CXYYBw3_.js → dist-C71CsujO.js} +1 -1
- ksadk/server/static/assets/{dist-dDdADKFA.js → dist-CXpH_Rdd.js} +1 -1
- ksadk/server/static/assets/{dist-CSh_DE14.js → dist-Cq4OL6nO.js} +1 -1
- ksadk/server/static/assets/{dist-8hqcx0sU.js → dist-D1V3f1B4.js} +1 -1
- ksadk/server/static/assets/{dist-BVDffZ0U.js → dist-DJmCPRVB.js} +1 -1
- ksadk/server/static/assets/{dist-DnfXs8Vn.js → dist-DQAB0qn_.js} +1 -1
- ksadk/server/static/assets/{dist-DNp6rLRA.js → dist-DUwKa_l6.js} +1 -1
- ksadk/server/static/assets/{dist-B7seoj3d.js → dist-DdRBIceA.js} +1 -1
- ksadk/server/static/assets/{dist-BytlxIDT.js → dist-DfGFrb0v.js} +1 -1
- ksadk/server/static/assets/{dist-Bf2M8m3N.js → dist-DjhwGUgZ.js} +1 -1
- ksadk/server/static/assets/{dist-W-TIVntx.js → dist-DyqV4fL4.js} +1 -1
- ksadk/server/static/assets/{dist-DUX-id_F.js → dist-M67Hwu0n.js} +1 -1
- ksadk/server/static/assets/{dist-DmldrHd_.js → dist-u8tVH5Ak.js} +1 -1
- ksadk/server/static/assets/{ebnfDiagram-PWID7BFC-Da9C9NO1.js → ebnfDiagram-PWID7BFC-DVfMsLge.js} +1 -1
- ksadk/server/static/assets/{erDiagram-SSCWMZ5O-EAGqqR79.js → erDiagram-SSCWMZ5O-CWEZSYaw.js} +1 -1
- ksadk/server/static/assets/eventmodeling-NTZA5JFV-Dr5okd8V.js +1 -0
- ksadk/server/static/assets/flowDiagram-A5DVABFB-VEO-cVcO.js +1 -0
- ksadk/server/static/assets/{ganttDiagram-EL5Y4UJY-DqJsKb59.js → ganttDiagram-EL5Y4UJY-TWIxoyYL.js} +1 -1
- ksadk/server/static/assets/gitGraph-4MIJSDKK-CKiKY9Cf.js +1 -0
- ksadk/server/static/assets/{gitGraphDiagram-WWUBYQGX-B6g4dtDi.js → gitGraphDiagram-WWUBYQGX-DDh2hd2S.js} +1 -1
- ksadk/server/static/assets/index-B2k_urY8.js +241 -0
- ksadk/server/static/assets/index-ILPt6IWF.css +2 -0
- ksadk/server/static/assets/info-A6RAGUB7-ubA4Nm_p.js +1 -0
- ksadk/server/static/assets/{infoDiagram-RXCK75RN-Djm_nbd5.js → infoDiagram-RXCK75RN-CgoyWiDR.js} +1 -1
- ksadk/server/static/assets/{ishikawaDiagram-5VMMS53U-DWya9SG2.js → ishikawaDiagram-5VMMS53U-CyRIu_om.js} +1 -1
- ksadk/server/static/assets/{journeyDiagram-EYS64GPL-DutxhSNI.js → journeyDiagram-EYS64GPL-DN5JXHzN.js} +1 -1
- ksadk/server/static/assets/{kanban-definition-3QL26DDD-DJdOF8Fm.js → kanban-definition-3QL26DDD-CNP3ui66.js} +1 -1
- ksadk/server/static/assets/{katex-vFWytM5c.js → katex-DWEzQy1d.js} +1 -1
- ksadk/server/static/assets/{linear-BHjG8b-J.js → linear-C-qHp7d2.js} +1 -1
- ksadk/server/static/assets/{mermaid-parser.core-KGSy4jWT.js → mermaid-parser.core-Cl-K943T.js} +2 -2
- ksadk/server/static/assets/{mindmap-definition-FBJOCRG2-9-HC88D4.js → mindmap-definition-FBJOCRG2-D5DB5mYm.js} +1 -1
- ksadk/server/static/assets/packet-AYTQ26CC-C7R3NUlK.js +1 -0
- ksadk/server/static/assets/{pegDiagram-XKGWAZYB-DrEZd4fD.js → pegDiagram-XKGWAZYB-BQVc9ia_.js} +1 -1
- ksadk/server/static/assets/pie-WAS4IAKB-BIT6qjr3.js +1 -0
- ksadk/server/static/assets/{pieDiagram-E7YTZNPT-DpjqOFFp.js → pieDiagram-E7YTZNPT-B6UCAvtY.js} +1 -1
- ksadk/server/static/assets/{quadrantDiagram-AXDQQJYC-BiNhgOXX.js → quadrantDiagram-AXDQQJYC-mIr2d3eb.js} +1 -1
- ksadk/server/static/assets/radar-RG4KPBEZ-l5noef9X.js +1 -0
- ksadk/server/static/assets/railroad-74A4TZTK-Baea6ZvM.js +1 -0
- ksadk/server/static/assets/railroad-abnf-HS5TGJTU-OKn8zZnU.js +1 -0
- ksadk/server/static/assets/railroad-ebnf-LZEXJU2U-DdKAKC4l.js +1 -0
- ksadk/server/static/assets/railroad-peg-WCYAUIDC-Bds8udlG.js +1 -0
- ksadk/server/static/assets/{railroadDiagram-O6MQD6OU-_Y3Ojg6G.js → railroadDiagram-O6MQD6OU-Dt3FFDmK.js} +1 -1
- ksadk/server/static/assets/{requirementDiagram-EFPCY7ZU-DeCFdg9K.js → requirementDiagram-EFPCY7ZU-Cz_vQtgF.js} +1 -1
- ksadk/server/static/assets/{sankeyDiagram-P5KCCOFB-CPH75rhw.js → sankeyDiagram-P5KCCOFB-wlO1TsH5.js} +1 -1
- ksadk/server/static/assets/{sequenceDiagram-WJ2MYXX4-OEpQQdr4.js → sequenceDiagram-WJ2MYXX4-CHRbElYq.js} +1 -1
- ksadk/server/static/assets/{sizeCapture-X5ZJPWSS-heUErzhI.js → sizeCapture-X5ZJPWSS-DXX54iyO.js} +1 -1
- ksadk/server/static/assets/{stateDiagram-HBIQ2CUA-DvA3jSMB.js → stateDiagram-HBIQ2CUA-Dp_lw9II.js} +1 -1
- ksadk/server/static/assets/stateDiagram-v2-4QOOHH4V-5b-8o2iS.js +1 -0
- ksadk/server/static/assets/{swimlanes-XN3QIQJK-CR-dfN_t.js → swimlanes-XN3QIQJK-D8O5UlLG.js} +1 -1
- ksadk/server/static/assets/swimlanesDiagram-VK2B7HYN-uf6WPRA4.js +8 -0
- ksadk/server/static/assets/{timeline-definition-24CTP7MA-DAVJf1TX.js → timeline-definition-24CTP7MA-8mfKcxvG.js} +1 -1
- ksadk/server/static/assets/treeView-Q6P3EWNA-CK5CSrSO.js +1 -0
- ksadk/server/static/assets/treemap-WGGIJYW6-Ch2BKgAM.js +1 -0
- ksadk/server/static/assets/{vennDiagram-4TSXK5OY-DwM8eDkh.js → vennDiagram-4TSXK5OY-EnNl0DE7.js} +1 -1
- ksadk/server/static/assets/wardley-WFR3VGLG-YW3Q0ml_.js +1 -0
- ksadk/server/static/assets/{wardleyDiagram-VM6X3IG4-DZL-Zz2t.js → wardleyDiagram-VM6X3IG4-DBu5fbYr.js} +1 -1
- ksadk/server/static/assets/{xychartDiagram-S5SC5T6Z-Dy6Yh_hu.js → xychartDiagram-S5SC5T6Z-BSVXs4IY.js} +1 -1
- ksadk/server/static/index.html +2 -2
- ksadk/skills/service_client.py +48 -0
- ksadk/studio/agent_lifecycle.py +26 -20
- ksadk/studio/api.py +513 -71
- ksadk/studio/api_catalog_routes.py +5 -0
- ksadk/studio/api_contracts.py +34 -1
- ksadk/studio/api_plugin_routes.py +480 -0
- ksadk/studio/attachment_store.py +187 -0
- ksadk/studio/authoring.py +10 -4
- ksadk/studio/authoring_coordinator.py +12 -2
- ksadk/studio/builder.py +123 -43
- ksadk/studio/cloud.py +4 -0
- ksadk/studio/codex_agent_service.py +12 -1
- ksadk/studio/codex_builder.py +54 -15
- ksadk/studio/codex_manifest.py +21 -1
- ksadk/studio/codex_run.py +16 -4
- ksadk/studio/compatibility_report.py +445 -0
- ksadk/studio/compiler.py +6 -1
- ksadk/studio/contracts.py +123 -4
- ksadk/studio/dsh_provider_registration.py +768 -0
- ksadk/studio/event_store.py +54 -6
- ksadk/studio/framework_run.py +37 -4
- ksadk/studio/hosted_kernel.py +1 -1
- ksadk/studio/operations.py +12 -2
- ksadk/studio/plugin_composition.py +301 -0
- ksadk/studio/plugin_kernel_adapter.py +128 -0
- ksadk/studio/plugin_runtime.py +652 -0
- ksadk/studio/resource_catalog.py +6 -1
- ksadk/studio/run_service.py +713 -75
- ksadk/studio/runtime_source.py +9 -1
- ksadk/studio/scheduler_runtime.py +374 -0
- ksadk/studio/scheduler_service.py +211 -0
- ksadk/studio/service.py +672 -82
- ksadk/studio/shared_web.py +167 -28
- ksadk/studio/soul.py +52 -0
- ksadk/studio/static/assets/index-DXs1Eq4M.css +1 -0
- ksadk/studio/static/assets/index-DeDqwTsD.js +283 -0
- ksadk/studio/static/index.html +2 -2
- ksadk/studio/validator.py +1 -1
- ksadk/studio/workspace.py +1 -0
- ksadk/version.py +1 -1
- ksadk_runtime_common/workspace_files/path_utils.py +41 -0
- ksadk/server/static/assets/architecture-7GRP2DOG-DjKratdf.js +0 -1
- ksadk/server/static/assets/channel-4cQHKtx1.js +0 -1
- ksadk/server/static/assets/chunk-2Q5K7J3B-DmgWkESh.js +0 -1
- ksadk/server/static/assets/classDiagram-DTDB5LWJ-DLFd9Xi0.js +0 -1
- ksadk/server/static/assets/classDiagram-v2-JRS7N3AN-DLFd9Xi0.js +0 -1
- ksadk/server/static/assets/cynefin-OW5HDTMX-DjEM48Qp.js +0 -1
- ksadk/server/static/assets/eventmodeling-NTZA5JFV-CMgMaJrC.js +0 -1
- ksadk/server/static/assets/flowDiagram-A5DVABFB-BBKL0x3P.js +0 -1
- ksadk/server/static/assets/gitGraph-4MIJSDKK-Dw63mrhw.js +0 -1
- ksadk/server/static/assets/index-8ipRcQ-M.js +0 -240
- ksadk/server/static/assets/index-ByFCqjlh.css +0 -2
- ksadk/server/static/assets/info-A6RAGUB7-B6iAblII.js +0 -1
- ksadk/server/static/assets/packet-AYTQ26CC-BOYAipuq.js +0 -1
- ksadk/server/static/assets/pie-WAS4IAKB-Ctq0Kbku.js +0 -1
- ksadk/server/static/assets/radar-RG4KPBEZ-DN0-ul_0.js +0 -1
- ksadk/server/static/assets/railroad-74A4TZTK-C6cC_to0.js +0 -1
- ksadk/server/static/assets/railroad-abnf-HS5TGJTU-BimjIuRc.js +0 -1
- ksadk/server/static/assets/railroad-ebnf-LZEXJU2U-CvY65ABq.js +0 -1
- ksadk/server/static/assets/railroad-peg-WCYAUIDC-D72Iq_Tv.js +0 -1
- ksadk/server/static/assets/stateDiagram-v2-4QOOHH4V-BgQY03nz.js +0 -1
- ksadk/server/static/assets/swimlanesDiagram-VK2B7HYN-DLVw3q5Q.js +0 -8
- ksadk/server/static/assets/treeView-Q6P3EWNA-BMpO0wsB.js +0 -1
- ksadk/server/static/assets/treemap-WGGIJYW6-Et0aqzU3.js +0 -1
- ksadk/server/static/assets/wardley-WFR3VGLG-CbY0mhpl.js +0 -1
- ksadk/studio/static/assets/index-BLpcdrgW.css +0 -1
- ksadk/studio/static/assets/index-CYekR2Xv.js +0 -260
- {agentengine_sdk_python-0.8.2.dist-info → agentengine_sdk_python-0.8.3.dist-info}/WHEEL +0 -0
- {agentengine_sdk_python-0.8.2.dist-info → agentengine_sdk_python-0.8.3.dist-info}/entry_points.txt +0 -0
- {agentengine_sdk_python-0.8.2.dist-info → agentengine_sdk_python-0.8.3.dist-info}/licenses/LICENSE +0 -0
- {agentengine_sdk_python-0.8.2.dist-info → agentengine_sdk_python-0.8.3.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PrismRenderer-IYN-ffww.js","assets/rolldown-runtime-hePW80VL.js","assets/react-vendor-BNmTiJ-I.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e,r as t,t as n}from"./rolldown-runtime-hePW80VL.js";import{i as r,n as i,r as a,t as o}from"./react-vendor-BNmTiJ-I.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var s=t(r(),1),c=i(),l=`modulepreload`,u=function(e){return`/static/`+e},d={},f=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=u(t,n),t=s(t),t in d)return;d[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:l,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},p=``,m=window.fetch.bind(window);function h(e){return e.startsWith(`/api/v1/`)||e===`/v1/responses`||e.startsWith(`/v1/responses/`)}async function g(e,t={}){let n=String(t.method||(e instanceof Request?e.method:`GET`)).toUpperCase(),r=new URL(e instanceof Request?e.url:String(e),window.location.href),i=new Headers(t.headers||(e instanceof Request?e.headers:void 0));p&&r.origin===window.location.origin&&h(r.pathname)&&![`GET`,`HEAD`,`OPTIONS`].includes(n)&&i.set(`X-CSRF-Token`,p);let a=e instanceof Request?e.clone():e,o={...t,headers:i,credentials:t.credentials||`same-origin`},s=await m(e,o);if(s.status!==403||[`GET`,`HEAD`,`OPTIONS`].includes(n)||r.origin!==window.location.origin||!h(r.pathname))return s;let c=``;try{c=(await s.clone().json())?.error?.code||``}catch{return s}if(c!==`CSRF_TOKEN_INVALID`)return s;let l=await m(`/api/v1/system/bootstrap`,{credentials:`same-origin`});return!l.ok||(p=(await l.json()).csrfToken||``,!p)?s:(i.set(`X-CSRF-Token`,p),m(a,{...o,headers:i}))}async function _(){let e=window.location.hash.match(/(?:^#|&)session=([^&]+)/);if(e){let t=await m(`/api/v1/system/session`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:decodeURIComponent(e[1])}),credentials:`same-origin`});if(!t.ok)throw Error(`本地 Studio 会话已失效,请重新启动服务。`);p=(await t.json()).csrfToken||``,window.history.replaceState(null,``,`${window.location.pathname}${window.location.search}`);return}let t=await m(`/api/v1/system/bootstrap`,{credentials:`same-origin`});t.ok&&(p=(await t.json()).csrfToken||``)}var v=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),y=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),b=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),x=e=>{let t=b(e);return t.charAt(0).toUpperCase()+t.slice(1)},S={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},C=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},w=(0,s.createContext)({}),T=()=>(0,s.useContext)(w),E=(0,s.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...c},l)=>{let{size:u=24,strokeWidth:d=2,absoluteStrokeWidth:f=!1,color:p=`currentColor`,className:m=``}=T()??{},h=r??f?Number(n??d)*24/Number(t??u):n??d;return(0,s.createElement)(`svg`,{ref:l,...S,width:t??u??S.width,height:t??u??S.height,stroke:e??p,strokeWidth:h,className:v(`lucide`,m,i),...!a&&!C(c)&&{"aria-hidden":`true`},...c},[...o.map(([e,t])=>(0,s.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),D=(e,t)=>{let n=(0,s.forwardRef)(({className:n,...r},i)=>(0,s.createElement)(E,{ref:i,iconNode:t,className:v(`lucide-${y(x(e))}`,`lucide-${e}`,n),...r}));return n.displayName=x(e),n},O=D(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),k=D(`archive`,[[`rect`,{width:`20`,height:`5`,x:`2`,y:`3`,rx:`1`,key:`1wp1u1`}],[`path`,{d:`M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8`,key:`1s80jp`}],[`path`,{d:`M10 12h4`,key:`a56b0p`}]]),A=D(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),j=D(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),M=D(`book-open`,[[`path`,{d:`M12 5v16`,key:`1f6ucr`}],[`path`,{d:`M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z`,key:`1fyvmf`}]]),N=D(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),P=D(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),F=D(`boxes`,[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`,key:`lc1i9w`}],[`path`,{d:`m7 16.5-4.74-2.85`,key:`1o9zyk`}],[`path`,{d:`m7 16.5 5-3`,key:`va8pkn`}],[`path`,{d:`M7 16.5v5.17`,key:`jnp8gn`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`,key:`8zsnat`}],[`path`,{d:`m17 16.5-5-3`,key:`8arw3v`}],[`path`,{d:`m17 16.5 4.74-2.85`,key:`8rfmw`}],[`path`,{d:`M17 16.5v5.17`,key:`k6z78m`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`,key:`1xygjf`}],[`path`,{d:`M12 8 7.26 5.15`,key:`1vbdud`}],[`path`,{d:`m12 8 4.74-2.85`,key:`3rx089`}],[`path`,{d:`M12 13.5V8`,key:`1io7kd`}]]),I=D(`braces`,[[`path`,{d:`M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1`,key:`ezmyqa`}],[`path`,{d:`M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1`,key:`e1hn23`}]]),L=D(`brain-circuit`,[[`path`,{d:`M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z`,key:`l5xja`}],[`path`,{d:`M9 13a4.5 4.5 0 0 0 3-4`,key:`10igwf`}],[`path`,{d:`M6.003 5.125A3 3 0 0 0 6.401 6.5`,key:`105sqy`}],[`path`,{d:`M3.477 10.896a4 4 0 0 1 .585-.396`,key:`ql3yin`}],[`path`,{d:`M6 18a4 4 0 0 1-1.967-.516`,key:`2e4loj`}],[`path`,{d:`M12 13h4`,key:`1ku699`}],[`path`,{d:`M12 18h6a2 2 0 0 1 2 2v1`,key:`105ag5`}],[`path`,{d:`M12 8h8`,key:`1lhi5i`}],[`path`,{d:`M16 8V5a2 2 0 0 1 2-2`,key:`u6izg6`}],[`circle`,{cx:`16`,cy:`13`,r:`.5`,key:`ry7gng`}],[`circle`,{cx:`18`,cy:`3`,r:`.5`,key:`1aiba7`}],[`circle`,{cx:`20`,cy:`21`,r:`.5`,key:`yhc1fs`}],[`circle`,{cx:`20`,cy:`8`,r:`.5`,key:`1e43v0`}]]),R=D(`brain`,[[`path`,{d:`M12 18V5`,key:`adv99a`}],[`path`,{d:`M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4`,key:`1e3is1`}],[`path`,{d:`M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5`,key:`1gqd8o`}],[`path`,{d:`M17.997 5.125a4 4 0 0 1 2.526 5.77`,key:`iwvgf7`}],[`path`,{d:`M18 18a4 4 0 0 0 2-7.464`,key:`efp6ie`}],[`path`,{d:`M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517`,key:`1gq6am`}],[`path`,{d:`M6 18a4 4 0 0 1-2-7.464`,key:`k1g0md`}],[`path`,{d:`M6.003 5.125a4 4 0 0 0-2.526 5.77`,key:`q97ue3`}]]),z=D(`calendar-clock`,[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`path`,{d:`M21 7.338V5a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h2.338`,key:`7hb8p4`}],[`path`,{d:`M3 9h5.859`,key:`numkqi`}],[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),B=D(`chart-spline`,[[`path`,{d:`M3 3v16a2 2 0 0 0 2 2h16`,key:`c24i48`}],[`path`,{d:`M7 16c.5-2 1.5-7 4-7 2 0 2 3 4 3 2.5 0 4.5-5 5-7`,key:`lw07rv`}]]),V=D(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),H=D(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),ee=D(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),te=D(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),ne=D(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),U=D(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),re=D(`circle-check-big`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),ie=D(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),ae=D(`circle-dot`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}]]),oe=D(`circle-off`,[[`path`,{d:`m2 2 20 20`,key:`1ooewy`}],[`path`,{d:`M8.35 2.69A10 10 0 0 1 21.3 15.65`,key:`1pfsoa`}],[`path`,{d:`M19.08 19.08A10 10 0 1 1 4.92 4.92`,key:`1ablyi`}]]),se=D(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),ce=D(`circle-x`,[[`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`}]]),le=D(`clipboard-check`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`m9 14 2 2 4-4`,key:`df797q`}]]),ue=D(`clock-3`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6h4`,key:`135r8i`}]]),de=D(`cloud-upload`,[[`path`,{d:`M12 13v8`,key:`1l5pq0`}],[`path`,{d:`M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242`,key:`1pljnt`}],[`path`,{d:`m8 17 4-4 4 4`,key:`1quai1`}]]),W=D(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),fe=D(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]),pe=D(`coins`,[[`path`,{d:`M13.744 17.736a6 6 0 1 1-7.48-7.48`,key:`bq4yh3`}],[`path`,{d:`M15 6h1v4`,key:`11y1tn`}],[`path`,{d:`m6.134 14.768.866-.5 2 3.464`,key:`17snzx`}],[`circle`,{cx:`16`,cy:`8`,r:`6`,key:`14bfc9`}]]),me=D(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),he=D(`corner-down-left`,[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}],[`path`,{d:`m9 10-5 5 5 5`,key:`1kshq7`}]]),ge=D(`cpu`,[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]),_e=D(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),ve=D(`ellipsis`,[[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`circle`,{cx:`19`,cy:`12`,r:`1`,key:`1wjl8i`}],[`circle`,{cx:`5`,cy:`12`,r:`1`,key:`1pcz8c`}]]),ye=D(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),be=D(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),xe=D(`file-box`,[[`path`,{d:`M14 2v5a1 1 0 001 1h5`,key:`9v5fu7`}],[`path`,{d:`M14.692 22H18a2 2 0 002-2V8a2.4 2.4 0 00-.706-1.706l-3.588-3.588A2.4 2.4 0 0014 2H6a2 2 0 00-2 2v3.804`,key:`1ne0j7`}],[`path`,{d:`M2.264 13.752 7 16.5l4.737-2.748`,key:`t73mg3`}],[`path`,{d:`M2.995 13.014A2 2 0 002 14.744v3.516a2 2 0 00.996 1.73l3 1.74a2 2 0 002.008 0l3-1.74A2 2 0 0012 18.26v-3.517a2 2 0 00-.995-1.73l-3-1.742a2 2 0 00-1.892-.064z`,key:`h4qck`}],[`path`,{d:`M7 16.5V22`,key:`1i1gou`}]]),Se=D(`file-code-corner`,[[`path`,{d:`M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35`,key:`1wthlu`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`m5 16-3 3 3 3`,key:`331omg`}],[`path`,{d:`m9 22 3-3-3-3`,key:`lsp7cz`}]]),Ce=D(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),we=D(`file-up`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`m15 15-3-3-3 3`,key:`15xj92`}]]),Te=D(`folder-closed`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}],[`path`,{d:`M2 10h20`,key:`1ir3d8`}]]),Ee=D(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),De=D(`gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),Oe=D(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),ke=D(`hand`,[[`path`,{d:`M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2`,key:`1fvzgz`}],[`path`,{d:`M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2`,key:`1kc0my`}],[`path`,{d:`M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8`,key:`10h0bg`}],[`path`,{d:`M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15`,key:`1s1gnw`}]]),Ae=D(`image-plus`,[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]),je=D(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Me=D(`list-todo`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`rect`,{x:`3`,y:`4`,width:`6`,height:`6`,rx:`1`,key:`cif1o7`}]]),Ne=D(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),Pe=D(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),Fe=D(`message-square-plus`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M12 8v6`,key:`1ib9pf`}],[`path`,{d:`M9 11h6`,key:`1fldmi`}]]),Ie=D(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),Le=D(`messages-square`,[[`path`,{d:`M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z`,key:`1n2ejm`}],[`path`,{d:`M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1`,key:`1qfcsi`}]]),Re=D(`minimize-2`,[[`path`,{d:`m14 10 7-7`,key:`oa77jy`}],[`path`,{d:`M20 10h-6V4`,key:`mjg0md`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M4 14h6v6`,key:`rmj7iw`}]]),ze=D(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),Be=D(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),Ve=D(`network`,[[`rect`,{x:`16`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`4q2zg0`}],[`rect`,{x:`2`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`8cvhb9`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`6`,rx:`1`,key:`1egb70`}],[`path`,{d:`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`,key:`1jsf9p`}],[`path`,{d:`M12 12V8`,key:`2874zd`}]]),He=D(`package-check`,[[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`path`,{d:`m16 17 2 2 4-4`,key:`uh5qu3`}],[`path`,{d:`M21 11.127V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.729l7 4a2 2 0 0 0 2 .001l1.32-.753`,key:`kpkbpo`}],[`path`,{d:`M3.29 7 12 12l8.71-5`,key:`19ckod`}],[`path`,{d:`m7.5 4.27 8.997 5.148`,key:`9yrvtv`}]]),Ue=D(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),We=D(`panel-left-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m16 15-3-3 3-3`,key:`14y99z`}]]),Ge=D(`panel-left-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}],[`path`,{d:`m14 9 3 3-3 3`,key:`8010ee`}]]),Ke=D(`panel-right`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}]]),qe=D(`paperclip`,[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]),Je=D(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),Ye=D(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),Xe=D(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),Ze=D(`plug`,[[`path`,{d:`M12 22v-5`,key:`1ega77`}],[`path`,{d:`M15 8V2`,key:`18g5xt`}],[`path`,{d:`M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z`,key:`1xoxul`}],[`path`,{d:`M9 8V2`,key:`14iosj`}]]),Qe=D(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),$e=D(`puzzle`,[[`path`,{d:`M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z`,key:`w46dr5`}]]),et=D(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),tt=D(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),nt=D(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),rt=D(`server-cog`,[[`path`,{d:`m10.852 14.772-.383.923`,key:`11vil6`}],[`path`,{d:`M13.148 14.772a3 3 0 1 0-2.296-5.544l-.383-.923`,key:`1v3clb`}],[`path`,{d:`m13.148 9.228.383-.923`,key:`t2zzyc`}],[`path`,{d:`m13.53 15.696-.382-.924a3 3 0 1 1-2.296-5.544`,key:`1bxfiv`}],[`path`,{d:`m14.772 10.852.923-.383`,key:`k9m8cz`}],[`path`,{d:`m14.772 13.148.923.383`,key:`1xvhww`}],[`path`,{d:`M4.5 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-.5`,key:`tn8das`}],[`path`,{d:`M4.5 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-.5`,key:`1g2pve`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`M6 6h.01`,key:`1utrut`}],[`path`,{d:`m9.228 10.852-.923-.383`,key:`1wtb30`}],[`path`,{d:`m9.228 13.148-.923.383`,key:`1a830x`}]]),it=D(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),at=D(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),ot=D(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),st=D(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),ct=D(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),lt=D(`square-pen`,[[`path`,{d:`M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`,key:`1m0v6g`}],[`path`,{d:`M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z`,key:`ohrbg2`}]]),ut=D(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),dt=D(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),ft=D(`target`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`6`,key:`1vlfrh`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]),pt=D(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),mt=D(`text-wrap`,[[`path`,{d:`m16 16-3 3 3 3`,key:`117b85`}],[`path`,{d:`M3 12h14.5a1 1 0 0 1 0 7H13`,key:`18xa6z`}],[`path`,{d:`M3 19h6`,key:`1ygdsz`}],[`path`,{d:`M3 5h18`,key:`1u36vt`}]]),ht=D(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),gt=D(`undo-2`,[[`path`,{d:`M9 14 4 9l5-5`,key:`102s5s`}],[`path`,{d:`M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11`,key:`f3b9sd`}]]),_t=D(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),vt=D(`workflow`,[[`rect`,{width:`8`,height:`8`,x:`3`,y:`3`,rx:`2`,key:`by2w9f`}],[`path`,{d:`M7 11v4a2 2 0 0 0 2 2h4`,key:`xkn7yn`}],[`rect`,{width:`8`,height:`8`,x:`13`,y:`13`,rx:`2`,key:`1cgmvn`}]]),yt=D(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]),bt=D(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),xt=D(`zap`,[[`path`,{d:`M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z`,key:`1v7up4`}]]),G=o(),St={bot:N,sparkles:ct,search:tt,code:W,workflow:Ve};function Ct({name:e,appearance:t,template:n,size:r=`md`,className:i=``}){let a=St[t?.icon||(n===`research`?`search`:`bot`)],o={"--agent-avatar-color":t?.color||(n===`research`?`#2d7c68`:`#426ea8`)};return(0,G.jsx)(`span`,{className:`agent-avatar agent-avatar-${r}${i?` ${i}`:``}`,style:o,role:`img`,"aria-label":`${e}头像`,children:t?.imageUrl?(0,G.jsx)(`img`,{src:t.imageUrl,alt:``,draggable:!1}):(0,G.jsx)(a,{"aria-hidden":!0,size:r===`lg`?22:r===`xs`?12:16})})}var wt=Object.defineProperty,Tt=(e,t)=>wt(e,`name`,{value:t,configurable:!0}),Et=!!(typeof window<`u`&&window.document&&window.document.createElement);function K(e,t,{checkForDefaultPrevented:n=!0}={}){return Tt(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},`handleEvent`)}Tt(K,`composeEventHandlers`);function Dt(e){if(!Et)throw Error(`Cannot access window outside of the DOM`);return e?.ownerDocument?.defaultView??window}Tt(Dt,`getOwnerWindow`);function Ot(e){if(!Et)throw Error(`Cannot access document outside of the DOM`);return e?.ownerDocument??document}Tt(Ot,`getOwnerDocument`);function kt(e,t=!1){let{activeElement:n}=Ot(e);if(!n?.nodeName)return null;if(At(n)&&n.contentDocument)return kt(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=Ot(n).getElementById(e);if(t)return t}}return n}Tt(kt,`getActiveElement`);function At(e){return e.tagName===`IFRAME`}Tt(At,`isFrame`);var jt=Object.defineProperty,Mt=(e,t)=>jt(e,`name`,{value:t,configurable:!0});function Nt(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}Mt(Nt,`setRef`);function Pt(...e){return t=>{let n=!1,r=e.map(e=>{let r=Nt(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():Nt(e[t],null)}}}}Mt(Pt,`composeRefs`);function Ft(...e){return s.useCallback(Pt(...e),e)}Mt(Ft,`useComposedRefs`);var It=Object.defineProperty,Lt=(e,t)=>It(e,`name`,{value:t,configurable:!0});function Rt(e,t){let n=s.createContext(t);n.displayName=e+`Context`;let r=Lt(e=>{let{children:t,...r}=e,i=s.useMemo(()=>r,Object.values(r));return(0,G.jsx)(n.Provider,{value:i,children:t})},`Provider`);r.displayName=e+`Provider`;function i(r,i={}){let{optional:a=!1}=i,o=s.useContext(n);if(o)return o;if(t!==void 0)return t;if(!a)throw Error(`\`${r}\` must be used within \`${e}\``)}return Lt(i,`useContext`),[r,i]}Lt(Rt,`createContext`);function zt(e,t=[]){let n=[];function r(t,r){let i=s.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=Lt(t=>{let{scope:n,children:r,...o}=t,c=n?.[e]?.[a]||i,l=s.useMemo(()=>o,Object.values(o));return(0,G.jsx)(c.Provider,{value:l,children:r})},`Provider`);o.displayName=t+`Provider`;function c(n,o,c={}){let{optional:l=!1}=c,u=o?.[e]?.[a]||i,d=s.useContext(u);if(d)return d;if(r!==void 0)return r;if(!l)throw Error(`\`${n}\` must be used within \`${t}\``)}return Lt(c,`useContext`),[o,c]}Lt(r,`createContext`);let i=Lt(()=>{let t=n.map(e=>s.createContext(e));return Lt(function(n){let r=n?.[e]||t;return s.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},`useScope`)},`createScope`);return i.scopeName=e,[r,Bt(i,...t)]}Lt(zt,`createContextScope`);function Bt(...e){let t=e[0];if(e.length===1)return t;let n=Lt(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return Lt(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return s.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},`useComposedScopes`)},`createScope`);return n.scopeName=t.scopeName,n}Lt(Bt,`composeContextScopes`);var Vt=globalThis?.document?s.useLayoutEffect:()=>{},Ht=Object.defineProperty,Ut=(e,t)=>Ht(e,`name`,{value:t,configurable:!0}),Wt=s.useId||(()=>void 0),Gt=0;function Kt(e){let[t,n]=s.useState(Wt());return Vt(()=>{e||n(e=>e??String(Gt++))},[e]),e||(t?`radix-${t}`:``)}Ut(Kt,`useId`);var qt=Object.defineProperty,Jt=(e,t)=>qt(e,`name`,{value:t,configurable:!0}),Yt=s.useEffectEvent,Xt=s.useInsertionEffect;function Zt(e){if(typeof Yt==`function`)return Yt(e);let t=s.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof Xt==`function`?Xt(()=>{t.current=e}):Vt(()=>{t.current=e}),s.useMemo(()=>((...e)=>t.current?.(...e)),[])}Jt(Zt,`useEffectEvent`);var Qt=Object.defineProperty,$t=(e,t)=>Qt(e,`name`,{value:t,configurable:!0}),en=s.useInsertionEffect||Vt;function tn({prop:e,defaultProp:t,onChange:n=$t(()=>{},`onChange`),caller:r}){let[i,a,o]=nn({defaultProp:t,onChange:n}),c=e!==void 0;return[c?e:i,s.useCallback(t=>{if(c){let n=rn(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[c,e,a,o])]}$t(tn,`useControllableState`);function nn({defaultProp:e,onChange:t}){let[n,r]=s.useState(e),i=s.useRef(n),a=s.useRef(t);return en(()=>{a.current=t},[t]),s.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}$t(nn,`useUncontrolledState`);function rn(e){return typeof e==`function`}$t(rn,`isFunction`);var an=Symbol(`RADIX:SYNC_STATE`);function on(e,t,n,r){let{prop:i,defaultProp:a,onChange:o,caller:c}=t,l=i!==void 0,u=Zt(o),d=[{...n,state:a}];r&&d.push(r);let[f,p]=s.useReducer((t,n)=>{if(n.type===an)return{...t,state:n.state};let r=e(t,n);return l&&!Object.is(r.state,t.state)&&u(r.state),r},...d),m=f.state,h=s.useRef(m);s.useEffect(()=>{h.current!==m&&(h.current=m,l||u(m))},[m,h,l]);let g=s.useMemo(()=>i===void 0?f:{...f,state:i},[f,i]);return s.useEffect(()=>{l&&!Object.is(i,f.state)&&p({type:an,state:i})},[i,f.state,l]),[g,p]}$t(on,`useControllableStateReducer`);var sn=t(a(),1),cn=Object.defineProperty,ln=(e,t)=>cn(e,`name`,{value:t,configurable:!0});function un(e){let t=s.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,c=[];vn(r)&&typeof Sn==`function`&&(r=Sn(r._payload)),s.Children.forEach(r,e=>{if(gn(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;vn(n)&&typeof Sn==`function`&&(n=Sn(n._payload)),a=pn(t,n),c.push(a?.props?.children)}else c.push(e)}),a?a=s.cloneElement(a,void 0,c):!o&&s.Children.count(r)===1&&s.isValidElement(r)&&(a=r);let l=a?hn(a):void 0,u=Ft(n,l);if(!a){if(r||r===0)throw Error(o?xn(e):bn(e));return r}let d=mn(i,a.props??{});return a.type!==s.Fragment&&(d.ref=n?u:l),s.cloneElement(a,d)});return t.displayName=`${e}.Slot`,t}ln(un,`createSlot`);var dn=Symbol.for(`radix.slottable`);function fn(e){let t=ln(e=>`child`in e?e.children(e.child):e.children,`Slottable`);return t.displayName=`${e}.Slottable`,t.__radixId=dn,t}ln(fn,`createSlottable`);var pn=ln((e,t)=>{if(`child`in e.props){let t=e.props.child;return s.isValidElement(t)?s.cloneElement(t,void 0,e.props.children(t.props.children)):null}return s.isValidElement(t)?t:null},`getSlottableElementFromSlottable`);function mn(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}ln(mn,`mergeProps`);function hn(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}ln(hn,`getElementRef`);function gn(e){return s.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===dn}ln(gn,`isSlottable`);var _n=Symbol.for(`react.lazy`);function vn(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===_n&&`_payload`in e&&yn(e._payload)}ln(vn,`isLazyComponent`);function yn(e){return typeof e==`object`&&!!e&&`then`in e}ln(yn,`isPromiseLike`);var bn=ln(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,`createSlotError`),xn=ln(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,`createSlottableError`),Sn=s.use,Cn=Object.defineProperty,wn=(e,t)=>Cn(e,`name`,{value:t,configurable:!0}),Tn=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=un(`Primitive.${t}`),r=s.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,G.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function En(e,t){e&&sn.flushSync(()=>e.dispatchEvent(t))}wn(En,`dispatchDiscreteCustomEvent`);var Dn=Object.defineProperty,On=(e,t)=>Dn(e,`name`,{value:t,configurable:!0});function kn(e){let t=s.useRef(e);return s.useEffect(()=>{t.current=e}),s.useMemo(()=>((...e)=>t.current?.(...e)),[])}On(kn,`useCallbackRef`);var An=Object.defineProperty,jn=(e,t)=>An(e,`name`,{value:t,configurable:!0}),Mn=`dismissableLayer.update`,Nn=`dismissableLayer.pointerDownOutside`,Pn=`dismissableLayer.focusOutside`,Fn,In=s.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),Ln=s.forwardRef(jn(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:c,onDismiss:l,...u}=e,d=s.useContext(In),[f,p]=s.useState(null),m=f?.ownerDocument??globalThis?.document,[,h]=s.useState({}),g=Ft(t,p),_=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),y=v?_.indexOf(v):-1,b=f?_.indexOf(f):-1,x=d.layersWithOutsidePointerEventsDisabled.size>0,S=b>=y,C=s.useRef(!1),w=Bn(e=>{a?.(e),c?.(e),e.defaultPrevented||l?.()},{ownerDocument:m,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:C,dismissableSurfaces:d.dismissableSurfaces,shouldHandlePointerDownOutside:s.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...d.branches].some(t=>t.contains(e));return S&&!t},[d.branches,S])}),T=Vn(e=>{if(r&&C.current)return;let t=e.target;[...d.branches].some(e=>e.contains(t))||(o?.(e),c?.(e),e.defaultPrevented||l?.())},m),E=f?b===_.length-1:!1,D=kn(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&l&&(e.preventDefault(),l()))});return s.useEffect(()=>{if(E)return m.addEventListener(`keydown`,D,{capture:!0}),()=>m.removeEventListener(`keydown`,D,{capture:!0})},[m,E,D]),s.useEffect(()=>{if(f)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(Fn=m.body.style.pointerEvents,m.body.style.pointerEvents=`none`),d.layersWithOutsidePointerEventsDisabled.add(f)),d.layers.add(f),Hn(),()=>{n&&(d.layersWithOutsidePointerEventsDisabled.delete(f),d.layersWithOutsidePointerEventsDisabled.size===0&&(m.body.style.pointerEvents=Fn))}},[f,m,n,d]),s.useEffect(()=>()=>{f&&(d.layers.delete(f),d.layersWithOutsidePointerEventsDisabled.delete(f),Hn())},[f,d]),s.useEffect(()=>{let e=jn(()=>h({}),`handleUpdate`);return document.addEventListener(Mn,e),()=>document.removeEventListener(Mn,e)},[]),(0,G.jsx)(Tn.div,{...u,ref:g,style:{pointerEvents:x?S?`auto`:`none`:void 0,...e.style},onFocusCapture:K(e.onFocusCapture,T.onFocusCapture),onBlurCapture:K(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:K(e.onPointerDownCapture,w.onPointerDownCapture)})},`DismissableLayer`));function Rn(){let e=s.useContext(In),[t,n]=s.useState(null);return s.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}jn(Rn,`useDismissableLayerSurface`);var zn=jn(()=>!0,`IS_TRUE`);function Bn(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=zn}=t,c=kn(e),l=s.useRef(!1),u=s.useRef(!1),d=s.useRef(new Map),f=s.useRef(()=>{});return s.useEffect(()=>{function e(){u.current=!1,i.current=!1,d.current.clear()}jn(e,`resetOutsideInteraction`);function t(){return Array.from(d.current.values()).some(Boolean)}jn(t,`isOutsideInteractionIntercepted`);function s(e){if(!u.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||d.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{u.current&&f.current()},0)}jn(s,`handleInteractionCapture`);function p(e){u.current&&d.current.set(e.type,!1)}jn(p,`handleInteractionBubble`);let m=jn(a=>{if(a.target&&!l.current){let s=function(){n.removeEventListener(`click`,f.current);let r=t();e(),r||Un(Nn,c,p,{discrete:!0})};if(jn(s,`handleAndDispatchPointerDownOutsideEvent`),!o(a.target)){n.removeEventListener(`click`,f.current),e(),l.current=!1;return}let p={originalEvent:a};u.current=!0,i.current=r&&a.button===0,d.current.clear(),!r||a.button!==0?s():(n.removeEventListener(`click`,f.current),f.current=s,n.addEventListener(`click`,f.current,{once:!0}))}else n.removeEventListener(`click`,f.current),e();l.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,s,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,f.current);for(let e of h)n.removeEventListener(e,s,!0),n.removeEventListener(e,p)}},[n,c,r,i,a,o]),{onPointerDownCapture:jn(()=>l.current=!0,`onPointerDownCapture`)}}jn(Bn,`usePointerDownOutside`);function Vn(e,t=globalThis?.document){let n=kn(e),r=s.useRef(!1);return s.useEffect(()=>{let e=jn(e=>{e.target&&!r.current&&Un(Pn,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:jn(()=>r.current=!0,`onFocusCapture`),onBlurCapture:jn(()=>r.current=!1,`onBlurCapture`)}}jn(Vn,`useFocusOutside`);function Hn(){let e=new CustomEvent(Mn);document.dispatchEvent(e)}jn(Hn,`dispatchUpdate`);function Un(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?En(i,a):i.dispatchEvent(a)}jn(Un,`handleAndDispatchCustomEvent`);var Wn=Object.defineProperty,Gn=(e,t)=>Wn(e,`name`,{value:t,configurable:!0}),Kn=`focusScope.autoFocusOnMount`,qn=`focusScope.autoFocusOnUnmount`,Jn={bubbles:!1,cancelable:!0},Yn=s.forwardRef(Gn(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[c,l]=s.useState(null),u=kn(i),d=kn(a),f=s.useRef(null),p=Ft(t,l),m=s.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;s.useEffect(()=>{if(r){let e=function(e){if(m.paused||!c)return;let t=e.target;c.contains(t)?f.current=t:nr(f.current,{select:!0})},t=function(e){if(m.paused||!c)return;let t=e.relatedTarget;t!==null&&(c.contains(t)||nr(f.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&nr(c)};Gn(e,`handleFocusIn`),Gn(t,`handleFocusOut`),Gn(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return c&&r.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,c,m.paused]),s.useEffect(()=>{if(c){rr.add(m);let e=document.activeElement;if(!c.contains(e)){let t=new CustomEvent(Kn,Jn);c.addEventListener(Kn,u),c.dispatchEvent(t),t.defaultPrevented||(Xn(or(Qn(c)),{select:!0}),document.activeElement===e&&nr(c))}return()=>{c.removeEventListener(Kn,u),setTimeout(()=>{let t=new CustomEvent(qn,Jn);c.addEventListener(qn,d),c.dispatchEvent(t),t.defaultPrevented||nr(e??document.body,{select:!0}),c.removeEventListener(qn,d),rr.remove(m)},0)}}},[c,u,d,m]);let h=s.useCallback(e=>{if(!n&&!r||m.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=Zn(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&nr(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&nr(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,m.paused]);return(0,G.jsx)(Tn.div,{tabIndex:-1,...o,ref:p,onKeyDown:h})},`FocusScope`));function Xn(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(nr(r,{select:t}),document.activeElement!==n)return}Gn(Xn,`focusFirst`);function Zn(e){let t=Qn(e);return[$n(t,e),$n(t.reverse(),e)]}Gn(Zn,`getTabbableEdges`);function Qn(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:Gn(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}Gn(Qn,`getTabbableCandidates`);function $n(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):er(r,{upTo:t})))return r}Gn($n,`findVisible`);function er(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}Gn(er,`isHidden`);function tr(e){return e instanceof HTMLInputElement&&`select`in e}Gn(tr,`isSelectableInput`);function nr(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&tr(e)&&t&&e.select()}}Gn(nr,`focus`);var rr=ir();function ir(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=ar(e,t),e.unshift(t)},remove(t){e=ar(e,t),e[0]?.resume()}}}Gn(ir,`createFocusScopesStack`);function ar(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}Gn(ar,`arrayRemove`);function or(e){return e.filter(e=>e.tagName!==`A`)}Gn(or,`removeLinks`);var sr=Object.defineProperty,cr=s.forwardRef(((e,t)=>sr(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=s.useState(!1);Vt(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?sn.createPortal((0,G.jsx)(Tn.div,{...r,ref:t}),o):null},`Portal`)),lr=Object.defineProperty,ur=(e,t)=>lr(e,`name`,{value:t,configurable:!0});function dr(e,t){return s.useReducer((e,n)=>t[e][n]??e,e)}ur(dr,`useStateMachine`);var fr=ur(e=>{let{present:t,children:n}=e,r=pr(t),i=typeof n==`function`?n({present:r.isPresent}):s.Children.only(n),a=hr(r.ref,_r(i));return typeof n==`function`||r.isPresent?s.cloneElement(i,{ref:a}):null},`Presence`);function pr(e){let[t,n]=s.useState(),r=s.useRef(null),i=s.useRef(e),a=s.useRef(`none`),o=s.useRef(void 0),[c,l]=dr(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return s.useEffect(()=>{c===`mounted`?(a.current=o.current??gr(r.current),o.current=void 0):a.current=`none`},[c]),Vt(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=gr(t);e?(o.current=s,l(`MOUNT`)):s===`none`||t?.display===`none`?l(`UNMOUNT`):l(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,l]),Vt(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=ur(a=>{let o=gr(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(l(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},`handleAnimationEnd`),s=ur(e=>{e.target===t&&(a.current=gr(r.current))},`handleAnimationStart`);return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}l(`ANIMATION_END`)},[t,l]),{isPresent:[`mounted`,`unmountSuspended`].includes(c),ref:s.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=gr(t)}else r.current=null;n(e)},[])}}ur(pr,`usePresence`);function mr(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}ur(mr,`setRef`);function hr(...e){let t=s.useRef(e);return t.current=e,s.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=mr(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():mr(n[e],null)}}},[])}ur(hr,`useStableComposedRefs`);function gr(e){return e?.animationName||`none`}ur(gr,`getAnimationName`);function _r(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}ur(_r,`getElementRef`);var vr=Object.defineProperty,yr=(e,t)=>vr(e,`name`,{value:t,configurable:!0}),br=0,xr=null;function Sr(e){return Cr(),e.children}yr(Sr,`FocusGuards`);function Cr(){s.useEffect(()=>{xr||={start:wr(),end:wr()};let{start:e,end:t}=xr;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),br++,()=>{br===1&&(xr?.start.remove(),xr?.end.remove(),xr=null),br=Math.max(0,br-1)}},[])}yr(Cr,`useFocusGuards`);function wr(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}yr(wr,`createFocusGuard`);var Tr=function(e,t){return Tr=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},Tr(e,t)};function Er(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);Tr(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Dr=function(){return Dr=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},Dr.apply(this,arguments)};function Or(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function kr(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var Ar=`right-scroll-bar-position`,jr=`width-before-scroll-bar`,Mr=`with-scroll-bars-hidden`,Nr=`--removed-body-scroll-bar-size`;function Pr(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function Fr(e,t){var n=(0,s.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var Ir=typeof window<`u`?s.useLayoutEffect:s.useEffect,Lr=new WeakMap;function Rr(e,t){var n=Fr(t||null,function(t){return e.forEach(function(e){return Pr(e,t)})});return Ir(function(){var t=Lr.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||Pr(e,null)}),i.forEach(function(e){r.has(e)||Pr(e,a)})}Lr.set(n,e)},[e]),n}function zr(e){return e}function Br(e,t){t===void 0&&(t=zr);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function Vr(e){e===void 0&&(e={});var t=Br(null);return t.options=Dr({async:!0,ssr:!1},e),t}var Hr=function(e){var t=e.sideCar,n=Or(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return s.createElement(r,Dr({},n))};Hr.isSideCarExport=!0;function Ur(e,t){return e.useMedium(t),Hr}var Wr=Vr(),Gr=function(){},Kr=s.forwardRef(function(e,t){var n=s.useRef(null),r=s.useState({onScrollCapture:Gr,onWheelCapture:Gr,onTouchMoveCapture:Gr}),i=r[0],a=r[1],o=e.forwardProps,c=e.children,l=e.className,u=e.removeScrollBar,d=e.enabled,f=e.shards,p=e.sideCar,m=e.noRelative,h=e.noIsolation,g=e.inert,_=e.allowPinchZoom,v=e.as,y=v===void 0?`div`:v,b=e.gapMode,x=Or(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),S=p,C=Rr([n,t]),w=Dr(Dr({},x),i);return s.createElement(s.Fragment,null,d&&s.createElement(S,{sideCar:Wr,removeScrollBar:u,shards:f,noRelative:m,noIsolation:h,inert:g,setCallbacks:a,allowPinchZoom:!!_,lockRef:n,gapMode:b}),o?s.cloneElement(s.Children.only(c),Dr(Dr({},w),{ref:C})):s.createElement(y,Dr({},w,{className:l,ref:C}),c))});Kr.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},Kr.classNames={fullWidth:jr,zeroRight:Ar};var qr,Jr=function(){if(qr)return qr;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function Yr(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=Jr();return t&&e.setAttribute(`nonce`,t),e}function Xr(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function Zr(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var Qr=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Yr())&&(Xr(t,n),Zr(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},$r=function(){var e=Qr();return function(t,n){s.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},ei=function(){var e=$r();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},ti={left:0,top:0,right:0,gap:0},ni=function(e){return parseInt(e||``,10)||0},ri=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[ni(n),ni(r),ni(i)]},ii=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return ti;var t=ri(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},ai=ei(),oi=`data-scroll-locked`,si=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
|
|
3
|
+
.${Mr} {
|
|
4
|
+
overflow: hidden ${r};
|
|
5
|
+
padding-right: ${s}px ${r};
|
|
6
|
+
}
|
|
7
|
+
body[${oi}] {
|
|
8
|
+
overflow: hidden ${r};
|
|
9
|
+
overscroll-behavior: contain;
|
|
10
|
+
${[t&&`position: relative ${r};`,n===`margin`&&`
|
|
11
|
+
padding-left: ${i}px;
|
|
12
|
+
padding-top: ${a}px;
|
|
13
|
+
padding-right: ${o}px;
|
|
14
|
+
margin-left:0;
|
|
15
|
+
margin-top:0;
|
|
16
|
+
margin-right: ${s}px ${r};
|
|
17
|
+
`,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.${Ar} {
|
|
21
|
+
right: ${s}px ${r};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.${jr} {
|
|
25
|
+
margin-right: ${s}px ${r};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.${Ar} .${Ar} {
|
|
29
|
+
right: 0 ${r};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.${jr} .${jr} {
|
|
33
|
+
margin-right: 0 ${r};
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
body[${oi}] {
|
|
37
|
+
${Nr}: ${s}px;
|
|
38
|
+
}
|
|
39
|
+
`},ci=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},li=function(){s.useEffect(function(){return document.body.setAttribute(oi,(ci()+1).toString()),function(){var e=ci()-1;e<=0?document.body.removeAttribute(oi):document.body.setAttribute(oi,e.toString())}},[])},ui=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;li();var a=s.useMemo(function(){return ii(i)},[i]);return s.createElement(ai,{styles:si(a,!t,i,n?``:`!important`)})},di=!1;if(typeof window<`u`)try{var fi=Object.defineProperty({},"passive",{get:function(){return di=!0,!0}});window.addEventListener(`test`,fi,fi),window.removeEventListener(`test`,fi,fi)}catch{di=!1}var pi=di?{passive:!1}:!1,mi=function(e){return e.tagName===`TEXTAREA`},hi=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!mi(e)&&n[t]===`visible`)},gi=function(e){return hi(e,`overflowY`)},_i=function(e){return hi(e,`overflowX`)},vi=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),xi(e,r)){var i=Si(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},yi=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},bi=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},xi=function(e,t){return e===`v`?gi(t):_i(t)},Si=function(e,t){return e===`v`?yi(t):bi(t)},Ci=function(e,t){return e===`h`&&t===`rtl`?-1:1},wi=function(e,t,n,r,i){var a=Ci(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=Si(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&xi(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},Ti=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Ei=function(e){return[e.deltaX,e.deltaY]},Di=function(e){return e&&`current`in e?e.current:e},Oi=function(e,t){return e[0]===t[0]&&e[1]===t[1]},ki=function(e){return`
|
|
40
|
+
.block-interactivity-${e} {pointer-events: none;}
|
|
41
|
+
.allow-interactivity-${e} {pointer-events: all;}
|
|
42
|
+
`},Ai=0,ji=[];function Mi(e){var t=s.useRef([]),n=s.useRef([0,0]),r=s.useRef(),i=s.useState(Ai++)[0],a=s.useState(ei)[0],o=s.useRef(e);s.useEffect(function(){o.current=e},[e]),s.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=kr([e.lockRef.current],(e.shards||[]).map(Di),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var c=s.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=Ti(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=vi(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=vi(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return wi(h,t,e,h===`h`?s:c,!0)},[]),l=s.useCallback(function(e){var n=e;if(!(!ji.length||ji[ji.length-1]!==a)){var r=`deltaY`in n?Ei(n):Ti(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&Oi(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var s=(o.current.shards||[]).map(Di).filter(Boolean).filter(function(e){return e.contains(n.target)});(s.length>0?c(n,s[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),u=s.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:Ni(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),d=s.useCallback(function(e){n.current=Ti(e),r.current=void 0},[]),f=s.useCallback(function(t){u(t.type,Ei(t),t.target,c(t,e.lockRef.current))},[]),p=s.useCallback(function(t){u(t.type,Ti(t),t.target,c(t,e.lockRef.current))},[]);s.useEffect(function(){return ji.push(a),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener(`wheel`,l,pi),document.addEventListener(`touchmove`,l,pi),document.addEventListener(`touchstart`,d,pi),function(){ji=ji.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,l,pi),document.removeEventListener(`touchmove`,l,pi),document.removeEventListener(`touchstart`,d,pi)}},[]);var m=e.removeScrollBar,h=e.inert;return s.createElement(s.Fragment,null,h?s.createElement(a,{styles:ki(i)}):null,m?s.createElement(ui,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Ni(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Pi=Ur(Wr,Mi),Fi=s.forwardRef(function(e,t){return s.createElement(Kr,Dr({},e,{ref:t,sideCar:Pi}))});Fi.classNames=Kr.classNames;var Ii=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},Li=new WeakMap,Ri=new WeakMap,zi={},Bi=0,Vi=function(e){return e&&(e.host||Vi(e.parentNode))},Hi=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=Vi(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Ui=function(e,t,n,r){var i=Hi(t,Array.isArray(e)?e:[e]);zi[n]||(zi[n]=new WeakMap);var a=zi[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(Li.get(e)||0)+1,l=(a.get(e)||0)+1;Li.set(e,c),a.set(e,l),o.push(e),c===1&&i&&Ri.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),Bi++,function(){o.forEach(function(e){var t=Li.get(e)-1,i=a.get(e)-1;Li.set(e,t),a.set(e,i),t||(Ri.has(e)||e.removeAttribute(r),Ri.delete(e)),i||e.removeAttribute(n)}),Bi--,Bi||(Li=new WeakMap,Li=new WeakMap,Ri=new WeakMap,zi={})}},Wi=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Ii(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),Ui(r,i,n,`aria-hidden`)):function(){return null}},Gi=Object.defineProperty,Ki=(e,t)=>Gi(e,`name`,{value:t,configurable:!0}),qi=`Dialog`,[Ji,Yi]=zt(qi),[Xi,Zi]=Ji(qi),Qi=Ki(e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,c=s.useRef(null),l=s.useRef(null),[u,d]=tn({prop:r,defaultProp:i??!1,onChange:a,caller:qi}),[f,p]=s.useState(0),[m,h]=s.useState(0);return(0,G.jsx)(Xi,{scope:t,triggerRef:c,contentRef:l,contentId:Kt(),titleId:Kt(),descriptionId:Kt(),titlePresent:f>0,descriptionPresent:m>0,setTitleCount:p,setDescriptionCount:h,open:u,onOpenChange:d,onOpenToggle:s.useCallback(()=>d(e=>!e),[d]),modal:o,children:n})},`Dialog`),$i=`DialogPortal`,[ea,ta]=Ji($i,{forceMount:void 0}),na=Ki(e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=Zi($i,t);return(0,G.jsx)(ea,{scope:t,forceMount:n,children:s.Children.map(r,e=>(0,G.jsx)(fr,{present:n||a.open,children:(0,G.jsx)(cr,{asChild:!0,container:i,children:e})}))})},`DialogPortal`),ra=`DialogOverlay`,ia=s.forwardRef(Ki(function(e,t){let n=ta(ra,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Zi(ra,e.__scopeDialog);return a.modal?(0,G.jsx)(fr,{present:r||a.open,children:(0,G.jsx)(oa,{...i,ref:t})}):null},`DialogOverlay`)),aa=un(`DialogOverlay.RemoveScroll`),oa=s.forwardRef(Ki(function(e,t){let{__scopeDialog:n,...r}=e,i=Zi(ra,n),a=Ft(t,Rn());return(0,G.jsx)(Fi,{as:aa,allowPinchZoom:!0,shards:[i.contentRef],children:(0,G.jsx)(Tn.div,{"data-state":va(i.open),...r,ref:a,style:{pointerEvents:`auto`,...r.style}})})},`DialogOverlayImpl`)),sa=`DialogContent`,ca=s.forwardRef(Ki(function(e,t){let n=ta(sa,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=Zi(sa,e.__scopeDialog);return(0,G.jsx)(fr,{present:r||a.open,children:a.modal?(0,G.jsx)(la,{...i,ref:t}):(0,G.jsx)(ua,{...i,ref:t})})},`DialogContent`)),la=s.forwardRef(Ki(function(e,t){let n=Zi(sa,e.__scopeDialog),r=s.useRef(null),i=Ft(t,n.contentRef,r);return s.useEffect(()=>{let e=r.current;if(e)return Wi(e)},[]),(0,G.jsx)(da,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,onCloseAutoFocus:K(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:K(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:K(e.onFocusOutside,e=>e.preventDefault())})},`DialogContentModal`)),ua=s.forwardRef(Ki(function(e,t){let n=Zi(sa,e.__scopeDialog),r=s.useRef(!1),i=s.useRef(!1);return(0,G.jsx)(da,{...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()}})},`DialogContentNonModal`)),da=s.forwardRef(Ki(function(e,t){let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=Zi(sa,n);return Cr(),(0,G.jsx)(G.Fragment,{children:(0,G.jsx)(Yn,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,G.jsx)(Ln,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionPresent?s.descriptionId:void 0,"aria-labelledby":s.titlePresent?s.titleId:void 0,"data-state":va(s.open),...o,ref:t,deferPointerDownOutside:!0,onDismiss:()=>s.onOpenChange(!1)})})})},`DialogContentImpl`)),fa=`DialogTitle`,pa=s.forwardRef(Ki(function(e,t){let{__scopeDialog:n,...r}=e,i=Zi(fa,n),{setTitleCount:a}=i;return Vt(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,G.jsx)(Tn.h2,{id:i.titleId,...r,ref:t})},`DialogTitle`)),ma=`DialogDescription`,ha=s.forwardRef(Ki(function(e,t){let{__scopeDialog:n,...r}=e,i=Zi(ma,n),{setDescriptionCount:a}=i;return Vt(()=>(a(e=>e+1),()=>a(e=>e-1)),[a]),(0,G.jsx)(Tn.p,{id:i.descriptionId,...r,ref:t})},`DialogDescription`)),ga=`DialogClose`,_a=s.forwardRef(Ki(function(e,t){let{__scopeDialog:n,...r}=e,i=Zi(ga,n);return(0,G.jsx)(Tn.button,{type:`button`,...r,ref:t,onClick:K(e.onClick,()=>i.onOpenChange(!1))})},`DialogClose`));function va(e){return e?`open`:`closed`}Ki(va,`getState`);var ya=[],ba=new Map,xa=[`.skip-link`,`.sidebar`,`.global-header`,`#mainContent`];function Sa(e){if(e){for(let e of document.querySelectorAll(xa.join(`,`)))ba.has(e)||ba.set(e,e.hasAttribute(`inert`)),e.setAttribute(`inert`,``);return}for(let[e,t]of ba)e.isConnected&&!t&&e.removeAttribute(`inert`);ba.clear()}function Ca(e){if(e.key!==`Escape`||!ya.length)return;let t=ya[ya.length-1];e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),t.disabled||t.close()}function wa(e){return ya.length||(document.addEventListener(`keydown`,Ca,!0),Sa(!0)),ya.push(e),()=>{let t=ya.lastIndexOf(e);t>=0&&ya.splice(t,1),ya.length||(document.removeEventListener(`keydown`,Ca,!0),Sa(!1))}}function Ta({open:e,onOpenChange:t,closeDisabled:n=!1,children:r}){return(0,G.jsx)(Qi,{open:e,onOpenChange:e=>{!e&&n||t(e)},children:r})}function Ea({open:e,className:t,closeDisabled:n=!1,role:r=`dialog`,onRequestClose:i,children:a}){let o=(0,s.useRef)(null),c=(0,s.useRef)({close:i,disabled:n});return c.current.close=i,c.current.disabled=n,(0,s.useEffect)(()=>{if(e)return o.current=document.activeElement instanceof HTMLElement?document.activeElement:null,wa(c.current)},[e]),(0,G.jsx)(na,{children:(0,G.jsxs)(`div`,{className:`overlay`,children:[(0,G.jsx)(ia,{className:`overlay-backdrop`}),(0,G.jsx)(ca,{className:t,role:r,"aria-busy":n||void 0,onEscapeKeyDown:e=>{e.preventDefault(),e.stopPropagation()},onPointerDownOutside:e=>{n&&e.preventDefault()},onCloseAutoFocus:e=>{let t=o.current;t?.isConnected&&(e.preventDefault(),t.focus())},children:a})]})})}function Da({open:e,onOpenChange:t,title:n,description:r,icon:i,footer:a,children:o,closeDisabled:s=!1,showClose:c=!0,className:l,role:u=`dialog`}){return(0,G.jsx)(Ta,{open:e,onOpenChange:t,closeDisabled:s,children:(0,G.jsxs)(Ea,{open:e,className:`studio-dialog${l?` ${l}`:``}`,closeDisabled:s,role:u,onRequestClose:()=>t(!1),children:[i?(0,G.jsx)(`div`,{className:`studio-dialog-icon`,children:i}):null,(0,G.jsxs)(`header`,{className:`studio-dialog-header`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(pa,{children:n}),r?(0,G.jsx)(ha,{children:r}):null]}),c?(0,G.jsx)(_a,{asChild:!0,children:(0,G.jsx)(`button`,{className:`icon-button tertiary`,type:`button`,"aria-label":`关闭`,disabled:s,children:(0,G.jsx)(bt,{size:16})})}):null]}),o?(0,G.jsx)(`div`,{className:`studio-dialog-body`,children:o}):null,a?(0,G.jsx)(`footer`,{className:`studio-dialog-footer`,children:a}):null]})})}function Oa({open:e,onOpenChange:t,title:n,subtitle:r,wide:i=!1,compact:a=!1,closeDisabled:o=!1,footer:s,children:c}){return(0,G.jsx)(Ta,{open:e,onOpenChange:t,closeDisabled:o,children:(0,G.jsxs)(Ea,{open:e,className:`drawer${i?` wide`:``}${a?` compact`:``}`,closeDisabled:o,onRequestClose:()=>t(!1),children:[(0,G.jsxs)(`header`,{className:`drawer-header`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(pa,{children:n}),r?(0,G.jsx)(ha,{children:r}):null]}),(0,G.jsx)(_a,{asChild:!0,children:(0,G.jsx)(`button`,{className:`icon-button tertiary`,type:`button`,"aria-label":`关闭`,disabled:o,children:(0,G.jsx)(bt,{size:16})})})]}),(0,G.jsx)(`div`,{className:`drawer-body`,children:c}),s?(0,G.jsx)(`footer`,{className:`drawer-footer`,children:s}):null]})})}function ka({title:e,description:t,confirmText:n=`确认`,danger:r=!0,busy:i=!1,onConfirm:a,onCancel:o}){return(0,G.jsx)(Da,{open:!0,onOpenChange:e=>{!e&&!i&&o()},title:e,description:t,closeDisabled:i,showClose:!1,role:`alertdialog`,className:`confirm-dialog`,icon:(0,G.jsx)(`span`,{className:`confirm-icon${r?` danger`:``}`,style:r?void 0:{background:`var(--accent-soft)`,color:`var(--accent-strong)`},children:r?(0,G.jsx)(U,{size:18}):(0,G.jsx)(je,{size:18})}),footer:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(_a,{asChild:!0,children:(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,disabled:i,children:`取消`})}),(0,G.jsx)(`button`,{className:`button ${r?`danger`:`accent`}`,type:`button`,onClick:a,disabled:i,children:i?`处理中…`:n})]})})}var Aa=Object.defineProperty,ja=(e,t)=>Aa(e,`name`,{value:t,configurable:!0});function Ma(e){let t=e+`CollectionProvider`,[n,r]=zt(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=ja(e=>{let{scope:t,children:n}=e,r=s.useRef(null),a=s.useRef(new Map).current;return(0,G.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})},`CollectionProvider`);o.displayName=t;let c=e+`CollectionSlot`,l=un(c),u=s.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=Ft(t,a(c,n).collectionRef);return(0,G.jsx)(l,{ref:i,children:r})});u.displayName=c;let d=e+`CollectionItemSlot`,f=`data-radix-collection-item`,p=un(d),m=s.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=s.useRef(null),c=Ft(t,o),l=a(d,n);return s.useEffect(()=>(l.itemMap.set(o,{ref:o,...i}),()=>void l.itemMap.delete(o))),(0,G.jsx)(p,{[f]:``,ref:c,children:r})});m.displayName=d;function h(t){let n=a(e+`CollectionConsumer`,t);return s.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${f}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return ja(h,`useCollection`),[{Provider:o,Slot:u,ItemSlot:m},h,r]}ja(Ma,`createCollection`);var Na=new WeakMap,Pa=class e extends Map{static{ja(this,`OrderedDict`)}#e;constructor(e){super(e),this.#e=[...super.keys()],Na.set(this,!0)}set(e,t){return Na.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,n){let r=this.has(t),i=this.#e.length,a=La(e),o=a>=0?a:i+a,s=o<0||o>=i?-1:o;if(s===this.size||r&&s===this.size-1||s===-1)return this.set(t,n),this;let c=this.size+ +!r;a<0&&o++;let l=[...this.#e],u,d=!1;for(let e=o;e<c;e++)if(o===e){let i=l[e];l[e]===t&&(i=l[e+1]),r&&this.delete(t),u=this.get(i),this.set(t,n)}else{!d&&l[e-1]===t&&(d=!0);let n=l[d?e:e-1],r=u;u=this.get(n),this.delete(n),this.set(n,r)}return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r,t,n)}after(e){let t=this.#e.indexOf(e);if(t=t===-1||t===this.size-1?-1:t+1,t!==-1)return this.entryAt(t)}setAfter(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r+1,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return t!==void 0&&this.delete(t)}at(e){let t=Fa(this.#e,e);if(t!==void 0)return this.get(t)}entryAt(e){let t=Fa(this.#e,e);if(t!==void 0)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return Fa(this.#e,e)}from(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return r;n++}}findIndex(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return n;n++}return-1}filter(t,n){let r=[],i=0;for(let e of this)Reflect.apply(t,n,[e,i,this])&&r.push(e),i++;return new e(r)}map(t,n){let r=[],i=0;for(let e of this)r.push([e[0],Reflect.apply(t,n,[e,i,this])]),i++;return new e(r)}reduce(...e){let[t,n]=e,r=0,i=n??this.at(0);for(let n of this)i=r===0&&e.length===1?n:Reflect.apply(t,this,[i,n,r,this]),r++;return i}reduceRight(...e){let[t,n]=e,r=n??this.at(-1);for(let n=this.size-1;n>=0;n--){let i=this.at(n);r=n===this.size-1&&e.length===1?i:Reflect.apply(t,this,[r,i,n,this])}return r}toSorted(t){let n=[...this.entries()].sort(t);return new e(n)}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let n=this.keyAt(e),r=this.get(n);t.set(n,r)}return t}toSpliced(...t){let n=[...this.entries()];return n.splice(...t),new e(n)}slice(t,n){let r=new e,i=this.size-1;if(t===void 0)return r;t<0&&(t+=this.size),n!==void 0&&n>0&&(i=n-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),n=this.get(t);r.set(t,n)}return r}every(e,t){let n=0;for(let r of this){if(!Reflect.apply(e,t,[r,n,this]))return!1;n++}return!0}some(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return!0;n++}return!1}};function Fa(e,t){if(`at`in Array.prototype)return Array.prototype.at.call(e,t);let n=Ia(e,t);return n===-1?void 0:e[n]}ja(Fa,`at`);function Ia(e,t){let n=e.length,r=La(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}ja(Ia,`toSafeIndex`);function La(e){return e!==e||e===0?0:Math.trunc(e)}ja(La,`toSafeInteger`);function Ra(e){let t=e+`CollectionProvider`,[n,r]=zt(t),[i,a]=n(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new Pa,setItemMap:ja(()=>void 0,`setItemMap`)}),o=ja(({state:e,...t})=>e?(0,G.jsx)(l,{...t,state:e}):(0,G.jsx)(c,{...t}),`CollectionProvider`);o.displayName=t;let c=ja(e=>{let t=g();return(0,G.jsx)(l,{...e,state:t})},`CollectionInit`);c.displayName=t+`Init`;let l=ja(e=>{let{scope:t,children:n,state:r}=e,a=s.useRef(null),[o,c]=s.useState(null),l=Ft(a,c),[u,d]=r;return s.useEffect(()=>{if(!o)return;let e=Ha(()=>{});return e.observe(o,{childList:!0,subtree:!0}),()=>{e.disconnect()}},[o]),(0,G.jsx)(i,{scope:t,itemMap:u,setItemMap:d,collectionRef:l,collectionRefObject:a,collectionElement:o,children:n})},`CollectionProviderImpl`);l.displayName=t+`Impl`;let u=e+`CollectionSlot`,d=un(u),f=s.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=Ft(t,a(u,n).collectionRef);return(0,G.jsx)(d,{ref:i,children:r})});f.displayName=u;let p=e+`CollectionItemSlot`,m=un(p),h=s.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=s.useRef(null),[c,l]=s.useState(null),u=Ft(t,o,l),{setItemMap:d}=a(p,n),f=s.useRef(i);za(f.current,i)||(f.current=i);let h=f.current;return s.useEffect(()=>{let e=h;return d(t=>c?t.has(c)?t.set(c,{...e,element:c}).toSorted(Va):(t.set(c,{...e,element:c}),t.toSorted(Va)):t),()=>{d(e=>!c||!e.has(c)?e:(e.delete(c),new Pa(e)))}},[c,h,d]),(0,G.jsx)(m,{"data-radix-collection-item":``,ref:u,children:r})});h.displayName=p;function g(){return s.useState(new Pa)}ja(g,`useInitCollection`);function _(t){let{itemMap:n}=a(e+`CollectionConsumer`,t);return n}return ja(_,`useCollection`),[{Provider:o,Slot:f,ItemSlot:h},{createCollectionScope:r,useCollection:_,useInitCollection:g}]}ja(Ra,`createCollection`);function za(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||e[r]!==t[r])return!1;return!0}ja(za,`shallowEqual`);function Ba(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}ja(Ba,`isElementPreceding`);function Va(e,t){return!e[1].element||!t[1].element?0:Ba(e[1].element,t[1].element)?-1:1}ja(Va,`sortByDocumentPosition`);function Ha(e){return new MutationObserver(t=>{for(let n of t)if(n.type===`childList`){e();return}})}ja(Ha,`getChildListObserver`);var Ua=Object.defineProperty,Wa=(e,t)=>Ua(e,`name`,{value:t,configurable:!0}),Ga=s.createContext(void 0);function Ka(e){let t=s.useContext(Ga);return e||t||`ltr`}Wa(Ka,`useDirection`);var qa=[`top`,`right`,`bottom`,`left`],Ja=Math.min,Ya=Math.max,Xa=Math.round,Za=Math.floor,Qa=e=>({x:e,y:e}),$a={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function eo(e,t,n){return Ya(e,Ja(t,n))}function to(e,t){return typeof e==`function`?e(t):e}function no(e){return e.split(`-`)[0]}function ro(e){return e.split(`-`)[1]}function io(e){return e===`x`?`y`:`x`}function ao(e){return e===`y`?`height`:`width`}function oo(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function so(e){return io(oo(e))}function co(e,t,n){n===void 0&&(n=!1);let r=ro(e),i=so(e),a=ao(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=vo(o)),[o,vo(o)]}function lo(e){let t=vo(e);return[uo(e),t,uo(t)]}function uo(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var fo=[`left`,`right`],po=[`right`,`left`],mo=[`top`,`bottom`],ho=[`bottom`,`top`];function go(e,t,n){switch(e){case`top`:case`bottom`:return n?t?po:fo:t?fo:po;case`left`:case`right`:return t?mo:ho;default:return[]}}function _o(e,t,n,r){let i=ro(e),a=go(no(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(uo)))),a}function vo(e){let t=no(e);return $a[t]+e.slice(t.length)}function yo(e){return{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0}}function bo(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:yo(e)}function xo(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function So(e,t,n){let{reference:r,floating:i}=e,a=oo(t),o=so(t),s=ao(o),c=no(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}let m=ro(t);return m&&(p[o]+=f*(m===`end`?1:-1)*(n&&l?-1:1)),p}async function Co(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=to(t,e),p=bo(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=xo(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=xo(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var wo=50,To=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Co},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=So(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<wo&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=So(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Eo=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=to(e,t)||{};if(l==null)return{};let d=bo(u),f={x:n,y:r},p=so(i),m=ao(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=Ja(d[_],T),D=Ja(d[v],T),O=C-h[m]-D,k=C/2-h[m]/2+w,A=eo(E,k,O),j=!c.arrow&&ro(i)!=null&&k!==A&&a.reference[m]/2-(k<E?E:D)-h[m]/2<0,M=j?k<E?k-E:k-O:0;return{[p]:f[p]+M,data:{[p]:A,centerOffset:k-A-M,...j&&{alignmentOffset:M}},reset:j}}}),Do=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=to(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=no(r),_=oo(o),v=no(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[vo(o)]:lo(o)),x=p!==`none`;!d&&x&&b.push(..._o(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=co(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===oo(t)||T.every(e=>oo(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=oo(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}};function Oo(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function ko(e){return qa.some(t=>e[t]>=0)}var Ao=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=to(e,t);switch(i){case`referenceHidden`:{let e=Oo(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:ko(e)}}}case`escaped`:{let e=Oo(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:ko(e)}}}default:return{}}}}},jo=new Set([`left`,`top`]);async function Mo(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=no(n),s=ro(n),c=oo(n)===`y`,l=jo.has(o)?-1:1,u=a&&c?-1:1,d=to(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var No=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Mo(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Po=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=to(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=oo(i),p=io(f),m=u[p],h=u[f],g=(e,t)=>eo(t+d[e===`y`?`top`:`left`],t,t-d[e===`y`?`bottom`:`right`]);o&&(m=g(p,m)),s&&(h=g(f,h));let _=c.fn({...t,[p]:m,[f]:h});return{..._,data:{x:_.x-n,y:_.y-r,enabled:{[p]:o,[f]:s}}}}}},Fo=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=to(e,t),u={x:n,y:r},d=oo(i),f=io(d),p=u[f],m=u[d],h=to(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:h.mainAxis??0,crossAxis:h.crossAxis??0};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=jo.has(no(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Io=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){let{placement:n,rects:r,platform:i,elements:a}=t,{apply:o=()=>{},...s}=to(e,t),c=await i.detectOverflow(t,s),l=no(n),u=ro(n),d=oo(n)===`y`,{width:f,height:p}=r.floating,m,h;l===`top`||l===`bottom`?(m=l,h=u===(await(i.isRTL==null?void 0:i.isRTL(a.floating))?`start`:`end`)?`left`:`right`):(h=l,m=u===`end`?`top`:`bottom`);let g=p-c.top-c.bottom,_=f-c.left-c.right,v=Ja(p-c[m],g),y=Ja(f-c[h],_),b=t.middlewareData.shift,x=!b,S=v,C=y;b!=null&&b.enabled.x&&(C=_),b!=null&&b.enabled.y&&(S=g),x&&!u&&(d?C=f-2*Ya(c.left,c.right):S=p-2*Ya(c.top,c.bottom)),await o({...t,availableWidth:C,availableHeight:S});let w=await i.getDimensions(a.floating);return f!==w.width||p!==w.height?{reset:{rects:!0}}:{}}}};function Lo(){return typeof window<`u`}function Ro(e){return Vo(e)?(e.nodeName||``).toLowerCase():`#document`}function zo(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Bo(e){return((Vo(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Vo(e){return Lo()?e instanceof Node||e instanceof zo(e).Node:!1}function Ho(e){return Lo()?e instanceof Element||e instanceof zo(e).Element:!1}function Uo(e){return Lo()?e instanceof HTMLElement||e instanceof zo(e).HTMLElement:!1}function Wo(e){return!Lo()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof zo(e).ShadowRoot}function Go(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=ns(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function Ko(e){return/^(table|td|th)$/.test(Ro(e))}function qo(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Jo=/transform|translate|scale|rotate|perspective|filter/,Yo=/paint|layout|strict|content/,Xo=e=>!!e&&e!==`none`,Zo;function Qo(e){let t=Ho(e)?ns(e):e;return Xo(t.transform)||Xo(t.translate)||Xo(t.scale)||Xo(t.rotate)||Xo(t.perspective)||!es()&&(Xo(t.backdropFilter)||Xo(t.filter))||Jo.test(t.willChange||``)||Yo.test(t.contain||``)}function $o(e){let t=is(e);for(;Uo(t)&&!ts(t);){if(Qo(t))return t;if(qo(t))return null;t=is(t)}return null}function es(){return Zo??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Zo}function ts(e){return/^(html|body|#document)$/.test(Ro(e))}function ns(e){return zo(e).getComputedStyle(e)}function rs(e){return Ho(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function is(e){if(Ro(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||Wo(e)&&e.host||Bo(e);return Wo(t)?t.host:t}function as(e){let t=is(e);return ts(t)?(e.ownerDocument||e).body:Uo(t)&&Go(t)?t:as(t)}function os(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=as(e),i=r===e.ownerDocument?.body,a=zo(r);if(i){let e=ss(a);return t.concat(a,a.visualViewport||[],Go(r)?r:[],e&&n?os(e):[])}return t.concat(r,os(r,[],n))}function ss(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function cs(e){let t=ns(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=Uo(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=Xa(n)!==a||Xa(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function ls(e){return Ho(e)?e:e.contextElement}function us(e){let t=ls(e);if(!Uo(t))return Qa(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=cs(t),o=(a?Xa(n.width):n.width)/r,s=(a?Xa(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var ds=Qa(0);function fs(e){let t=zo(e);return!es()||!t.visualViewport?ds:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ps(e,t,n){return t===void 0&&(t=!1),!!n&&t&&n===zo(e)}function ms(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=ls(e),o=Qa(1);t&&(r?Ho(r)&&(o=us(r)):o=us(e));let s=ps(a,n,r)?fs(a):Qa(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a&&r){let e=zo(a),t=Ho(r)?zo(r):r,n=e,i=ss(n);for(;i&&t!==n;){let e=us(i),t=i.getBoundingClientRect(),r=ns(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=zo(i),i=ss(n)}}return xo({width:u,height:d,x:c,y:l})}function hs(e,t){let n=rs(e).scrollLeft;return t?t.left+n:ms(Bo(e)).left+n}function gs(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-hs(e,n),y:n.top+t.scrollTop}}function _s(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=Bo(r),s=t?qo(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Qa(1),u=Qa(0),d=Uo(r);if((d||!a)&&((Ro(r)!==`body`||Go(o))&&(c=rs(r)),d)){let e=ms(r);l=us(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?gs(o,c):Qa(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function vs(e){return e.getClientRects?Array.from(e.getClientRects()):[]}function ys(e){let t=rs(e),n=e.ownerDocument.body,r=Ya(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=Ya(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),a=-t.scrollLeft+hs(e),o=-t.scrollTop;return ns(n).direction===`rtl`&&(a+=Ya(e.clientWidth,n.clientWidth)-r),{width:r,height:i,x:a,y:o}}var bs=25;function xs(e,t,n){n===void 0&&(n=`viewport`);let r=n===`layoutViewport`,i=zo(e),a=Bo(e),o=i.visualViewport,s=a.clientWidth,c=a.clientHeight,l=0,u=0;if(o){let e=!es()||t===`fixed`;r?e||(l=-o.offsetLeft,u=-o.offsetTop):(s=o.width,c=o.height,e&&(l=o.offsetLeft,u=o.offsetTop))}if(hs(a)<=0){let e=a.ownerDocument,t=e.body,n=getComputedStyle(t),r=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,i=Math.abs(a.clientWidth-t.clientWidth-r),o=getComputedStyle(a).scrollbarGutter===`stable both-edges`?i/2:i;o<=bs&&(s-=o)}return{width:s,height:c,x:l,y:u}}function Ss(e,t){let n=ms(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=us(e);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Cs(e,t,n){let r;if(t===`viewport`||t===`layoutViewport`)r=xs(e,n,t);else if(t===`document`)r=ys(Bo(e));else if(Ho(t))r=Ss(t,n);else{let n=fs(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return xo(r)}function ws(e,t){let n=t.get(e);if(n)return n;let r=os(e,[],!1).filter(e=>Ho(e)&&Ro(e)!==`body`),i=null,a=ns(e).position===`fixed`,o=a?is(e):e;for(;Ho(o)&&!ts(o);){let e=ns(o),t=Qo(o),n=i?i.position:a?`fixed`:``;!t&&(n===`fixed`||n===`absolute`&&e.position===`static`)?r=r.filter(e=>e!==o):i=e,o=is(o)}return t.set(e,r),r}function Ts(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?qo(t)?[]:ws(t,this._c):[].concat(n),r],o=Cs(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=Cs(t,a[e],i);s=Ya(n.top,s),c=Ja(n.right,c),l=Ja(n.bottom,l),u=Ya(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function Es(e){let{width:t,height:n}=cs(e);return{width:t,height:n}}function Ds(e,t,n){let r=Uo(t),i=Bo(t),a=n===`fixed`,o=ms(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=Qa(0);if((r||!a)&&((Ro(t)!==`body`||Go(i))&&(s=rs(t)),r)){let e=ms(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}!r&&i&&(c.x=hs(i));let l=i&&!r&&!a?gs(i,s):Qa(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function Os(e){return ns(e).position===`static`}function ks(e,t){if(!Uo(e)||ns(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return Bo(e)===n&&(n=n.ownerDocument.body),n}function As(e,t){let n=zo(e);if(qo(e))return n;if(!Uo(e)){let t=is(e);for(;t&&!ts(t);){if(Ho(t)&&!Os(t))return t;t=is(t)}return n}let r=ks(e,t);for(;r&&Ko(r)&&Os(r);)r=ks(r,t);return r&&ts(r)&&Os(r)&&!Qo(r)?n:r||$o(e)||n}var js=async function(e){let t=this.getOffsetParent||As,n=this.getDimensions,r=await n(e.floating);return{reference:Ds(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Ms(e){return ns(e).direction===`rtl`}var Ns={convertOffsetParentRelativeRectToViewportRelativeRect:_s,getDocumentElement:Bo,getClippingRect:Ts,getOffsetParent:As,getElementRects:js,getClientRects:vs,getDimensions:Es,getScale:us,isElement:Ho,isRTL:Ms};function Ps(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Fs(e,t,n){let r=null,i,a=Bo(e);function o(){var e;clearTimeout(i),(e=r)==null||e.disconnect(),r=null}function s(n,c){n===void 0&&(n=!1),c===void 0&&(c=1),o();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(n||t(),!f||!p)return;let m=Za(d),h=Za(a.clientWidth-(u+f)),g=Za(a.clientHeight-(d+p)),_=Za(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:Ya(0,Ja(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(!Ps(l,e.getBoundingClientRect()))return s();if(n!==c){if(!y)return s();n?s(!1,n):i=setTimeout(()=>{s(!1,1e-7)},1e3)}y=!1}try{r=new IntersectionObserver(b,{...v,root:a.ownerDocument})}catch{r=new IntersectionObserver(b,v)}r.observe(e)}let c=zo(e),l=()=>s(n);return c.addEventListener(`resize`,l),s(!0),()=>{c.removeEventListener(`resize`,l),o()}}function Is(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=ls(e),u=i||a?[...l?os(l):[],...t?os(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n),a&&e.addEventListener(`resize`,n)});let d=l&&s?Fs(l,n,a):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?ms(e):null;c&&g();function g(){let t=ms(e);h&&!Ps(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Ls=No,Rs=Po,zs=Do,Bs=Io,Vs=Ao,Hs=Eo,Us=Fo,Ws=(e,t,n)=>{let r=new Map,i=n??{},a={...Ns,...i.platform,_c:r};return To(e,t,{...i,platform:a})},Gs=typeof document<`u`?s.useLayoutEffect:function(){};function Ks(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Ks(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Ks(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function qs(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Js(e,t){let n=qs(e);return Math.round(t*n)/n}function Ys(e){let t=s.useRef(e);return Gs(()=>{t.current=e}),t}function Xs(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:c=!0,whileElementsMounted:l,open:u}=e,[d,f]=s.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[p,m]=s.useState(r);Ks(p,r)||m(r);let[h,g]=s.useState(null),[_,v]=s.useState(null),y=s.useCallback(e=>{e!==C.current&&(C.current=e,g(e))},[]),b=s.useCallback(e=>{e!==w.current&&(w.current=e,v(e))},[]),x=a||h,S=o||_,C=s.useRef(null),w=s.useRef(null),T=s.useRef(d),E=l!=null,D=Ys(l),O=Ys(i),k=Ys(u),A=s.useCallback(()=>{if(!C.current||!w.current)return;let e={placement:t,strategy:n,middleware:p};O.current&&(e.platform=O.current),Ws(C.current,w.current,e).then(e=>{let t={...e,isPositioned:k.current!==!1};j.current&&!Ks(T.current,t)&&(T.current=t,sn.flushSync(()=>{f(t)}))})},[p,t,n,O,k]);Gs(()=>{u===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,f(e=>({...e,isPositioned:!1})))},[u]);let j=s.useRef(!1);Gs(()=>(j.current=!0,()=>{j.current=!1}),[]),Gs(()=>{if(x&&(C.current=x),S&&(w.current=S),x&&S){if(D.current)return D.current(x,S,A);A()}},[x,S,A,D,E]);let M=s.useMemo(()=>({reference:C,floating:w,setReference:y,setFloating:b}),[y,b]),N=s.useMemo(()=>({reference:x,floating:S}),[x,S]),P=s.useMemo(()=>{let e={position:n,left:0,top:0};if(!N.floating)return e;let t=Js(N.floating,d.x),r=Js(N.floating,d.y);return c?{...e,transform:`translate(`+t+`px, `+r+`px)`,...qs(N.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,c,N.floating,d.x,d.y]);return s.useMemo(()=>({...d,update:A,refs:M,elements:N,floatingStyles:P}),[d,A,M,N,P])}var Zs=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:Hs({element:r.current,padding:i}).fn(n):r?Hs({element:r,padding:i}).fn(n):{}}}},Qs=(e,t)=>{let n=Ls(e);return{name:n.name,fn:n.fn,options:[e,t]}},$s=(e,t)=>{let n=Rs(e);return{name:n.name,fn:n.fn,options:[e,t]}},ec=(e,t)=>({fn:Us(e).fn,options:[e,t]}),tc=(e,t)=>{let n=zs(e);return{name:n.name,fn:n.fn,options:[e,t]}},nc=(e,t)=>{let n=Bs(e);return{name:n.name,fn:n.fn,options:[e,t]}},rc=(e,t)=>{let n=Vs(e);return{name:n.name,fn:n.fn,options:[e,t]}},ic=(e,t)=>{let n=Zs(e);return{name:n.name,fn:n.fn,options:[e,t]}},ac=Object.defineProperty,oc=s.forwardRef(((e,t)=>ac(e,`name`,{value:t,configurable:!0}))(function(e,t){let{children:n,width:r=10,height:i=5,...a}=e;return(0,G.jsx)(Tn.svg,{...a,ref:t,width:r,height:i,viewBox:`0 0 30 10`,preserveAspectRatio:`none`,children:e.asChild?n:(0,G.jsx)(`polygon`,{points:`0,0 30,0 15,10`})})},`Arrow`)),sc=Object.defineProperty,cc=(e,t)=>sc(e,`name`,{value:t,configurable:!0});function lc(e){let[t,n]=s.useState(void 0);return Vt(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}n(void 0)},[e]),t}cc(lc,`useSize`);var uc=Object.defineProperty,dc=(e,t)=>uc(e,`name`,{value:t,configurable:!0}),fc=`Popper`,[pc,mc]=zt(fc),[hc,gc]=pc(fc),_c=dc(e=>{let{__scopePopper:t,children:n}=e,[r,i]=s.useState(null),[a,o]=s.useState(void 0);return(0,G.jsx)(hc,{scope:t,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:o,children:n})},`Popper`),vc=`PopperAnchor`,yc=s.forwardRef(dc(function(e,t){let{__scopePopper:n,virtualRef:r,...i}=e,a=gc(vc,n),o=s.useRef(null),c=a.onAnchorChange,l=Ft(t,s.useCallback(e=>{o.current=e,e&&c(e)},[c])),u=s.useRef(null);s.useEffect(()=>{if(!r)return;let e=u.current;u.current=r.current,e!==u.current&&c(u.current)});let d=a.placementState&&kc(a.placementState),f=d?.[0],p=d?.[1];return r?null:(0,G.jsx)(Tn.div,{"data-radix-popper-side":f,"data-radix-popper-align":p,...i,ref:l})},`PopperAnchor`)),bc=`PopperContent`,[xc,Sc]=pc(bc),Cc=s.forwardRef(dc(function(e,t){let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:c=0,avoidCollisions:l=!0,collisionBoundary:u=[],collisionPadding:d=0,sticky:f=`partial`,hideWhenDetached:p=!1,updatePositionStrategy:m=`optimized`,onPlaced:h,...g}=e,_=gc(bc,n),[v,y]=s.useState(null),b=Ft(t,y),[x,S]=s.useState(null),C=lc(x),w=C?.width??0,T=C?.height??0,E=r+(a===`center`?``:`-`+a),D=typeof d==`number`?d:{top:0,right:0,bottom:0,left:0,...d},O=Array.isArray(u)?u:[u],k=O.length>0,A={padding:D,boundary:O.filter(Dc),altBoundary:k},{refs:j,floatingStyles:M,placement:N,isPositioned:P,middlewareData:F}=Xs({strategy:`fixed`,placement:E,whileElementsMounted:dc((...e)=>Is(...e,{animationFrame:m===`always`}),`whileElementsMounted`),elements:{reference:_.anchor},middleware:[Qs({mainAxis:i+T,alignmentAxis:o}),l&&$s({mainAxis:!0,crossAxis:!1,limiter:f===`partial`?ec():void 0,...A}),l&&tc({...A}),nc({...A,apply:dc(({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)},`apply`)}),x&&ic({element:x,padding:c}),Oc({arrowWidth:w,arrowHeight:T}),p&&rc({strategy:`referenceHidden`,...A,boundary:k?A.boundary:void 0})]}),I=_.setPlacementState;Vt(()=>(I(N),()=>{I(void 0)}),[N,I]);let[L,R]=kc(N),z=kn(h);Vt(()=>{P&&z?.()},[P,z]);let B=F.arrow?.x,V=F.arrow?.y,H=F.arrow?.centerOffset!==0,[ee,te]=s.useState();return Vt(()=>{v&&te(window.getComputedStyle(v).zIndex)},[v]),(0,G.jsx)(`div`,{ref:j.setFloating,"data-radix-popper-content-wrapper":``,style:{...M,transform:P?M.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:ee,"--radix-popper-transform-origin":[F.transformOrigin?.x,F.transformOrigin?.y].join(` `),...F.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,G.jsx)(xc,{scope:n,placedSide:L,placedAlign:R,onArrowChange:S,arrowX:B,arrowY:V,shouldHideArrow:H,children:(0,G.jsx)(Tn.div,{"data-side":L,"data-align":R,...g,ref:b,style:{...g.style,animation:P?g.style?.animation:`none`}})})})},`PopperContent`)),wc=`PopperArrow`,Tc={top:`bottom`,right:`left`,bottom:`top`,left:`right`},Ec=s.forwardRef(dc(function(e,t){let{__scopePopper:n,...r}=e,i=Sc(wc,n),a=Tc[i.placedSide];return(0,G.jsx)(`span`,{ref:i.onArrowChange,style:{position:`absolute`,left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[i.placedSide],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[i.placedSide],visibility:i.shouldHideArrow?`hidden`:void 0},children:(0,G.jsx)(oc,{...r,ref:t,style:{...r.style,display:`block`}})})},`PopperArrow`));function Dc(e){return e!==null}dc(Dc,`isNotNull`);var Oc=dc(e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=kc(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}),`transformOrigin`);function kc(e){let[t,n=`center`]=e.split(`-`);return[t,n]}dc(kc,`getSideAndAlignFromPlacement`);var Ac=_c,jc=yc,Mc=Cc,Nc=Ec,Pc=Object.defineProperty,Fc=(e,t)=>Pc(e,`name`,{value:t,configurable:!0}),Ic=!1;function Lc(){let[e,t]=s.useState(Ic);return s.useEffect(()=>{Ic||(Ic=!0,t(!0))},[]),e}Fc(Lc,`useIsHydrated`);var Rc=s.useSyncExternalStore;function zc(){return()=>{}}Fc(zc,`subscribe`);function Bc(){return Rc(zc,()=>!0,()=>!1)}Fc(Bc,`useIsHydratedModern`);var Vc=typeof Rc==`function`?Bc:Lc,Hc=Object.defineProperty,Uc=(e,t)=>Hc(e,`name`,{value:t,configurable:!0}),Wc=`rovingFocusGroup.onEntryFocus`,Gc={bubbles:!1,cancelable:!0},Kc=`RovingFocusGroup`,[qc,Jc,Yc]=Ma(Kc),[Xc,Zc]=zt(Kc,[Yc]),[Qc,$c]=Xc(Kc),el=s.forwardRef(Uc(function(e,t){return(0,G.jsx)(qc.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,G.jsx)(qc.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,G.jsx)(tl,{...e,ref:t})})})},`RovingFocusGroup`)),tl=s.forwardRef(Uc(function(e,t){let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:d=!1,...f}=e,p=s.useRef(null),m=Ft(t,p),h=Ka(a),[g,_]=tn({prop:o,defaultProp:c??null,onChange:l,caller:Kc}),[v,y]=s.useState(!1),b=kn(u),x=Jc(n),S=s.useRef(!1),[C,w]=s.useState(0);return s.useEffect(()=>{let e=p.current;if(e)return e.addEventListener(Wc,b),()=>e.removeEventListener(Wc,b)},[b]),(0,G.jsx)(Qc,{scope:n,orientation:r,dir:h,loop:i,currentTabStopId:g,onItemFocus:s.useCallback(e=>_(e),[_]),onItemShiftTab:s.useCallback(()=>y(!0),[]),onFocusableItemAdd:s.useCallback(()=>w(e=>e+1),[]),onFocusableItemRemove:s.useCallback(()=>w(e=>e-1),[]),children:(0,G.jsx)(Tn.div,{tabIndex:v||C===0?-1:0,"data-orientation":r,...f,ref:m,style:{outline:`none`,...e.style},onMouseDown:K(e.onMouseDown,()=>{S.current=!0}),onFocus:K(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!v){let t=new CustomEvent(Wc,Gc);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>e.focusable);sl([e.find(e=>e.active),e.find(e=>e.id===g),...e].filter(Boolean).map(e=>e.ref.current),d)}}S.current=!1}),onBlur:K(e.onBlur,()=>y(!1))})})},`RovingFocusGroupImpl`)),nl=`RovingFocusGroupItem`,rl=s.forwardRef(Uc(function(e,t){let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...c}=e,l=Kt(),u=a||l,d=$c(nl,n),f=d.currentTabStopId===u,p=Jc(n),{onFocusableItemAdd:m,onFocusableItemRemove:h,currentTabStopId:g}=d,_=Vc();return Vt(()=>{if(!(!_||!r))return m(),()=>h()},[_,r,m,h]),s.useEffect(()=>{if(!(_||!r))return m(),()=>h()},[_,r,m,h]),(0,G.jsx)(qc.ItemSlot,{scope:n,id:u,focusable:r,active:i,children:(0,G.jsx)(Tn.span,{tabIndex:f?0:-1,"data-orientation":d.orientation,...c,ref:t,onMouseDown:K(e.onMouseDown,e=>{r?d.onItemFocus(u):e.preventDefault()}),onFocus:K(e.onFocus,()=>d.onItemFocus(u)),onKeyDown:K(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){d.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=ol(e,d.orientation,d.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=p().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=d.loop?cl(n,r+1):n.slice(r+1)}setTimeout(()=>sl(n))}}),children:typeof o==`function`?o({isCurrentTabStop:f,hasTabStop:g!=null}):o})})},`RovingFocusGroupItem`)),il={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function al(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}Uc(al,`getDirectionAwareKey`);function ol(e,t,n){let r=al(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return il[r]}Uc(ol,`getFocusIntent`);function sl(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}Uc(sl,`focusFirst`);function cl(e,t){return e.map((n,r)=>e[(t+r)%e.length])}Uc(cl,`wrapArray`);var ll=el,ul=rl,dl=Object.defineProperty,fl=(e,t)=>dl(e,`name`,{value:t,configurable:!0}),pl=[`Enter`,` `],ml=[`ArrowDown`,`PageUp`,`Home`],hl=[`ArrowUp`,`PageDown`,`End`],gl=[...ml,...hl],_l={ltr:[...pl,`ArrowRight`],rtl:[...pl,`ArrowLeft`]},vl={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},yl=`Menu`,[bl,xl,Sl]=Ma(yl),[Cl,wl]=zt(yl,[Sl,mc,Zc]),Tl=mc(),El=Zc(),[Dl,Ol]=Cl(yl),[kl,Al]=Cl(yl),jl=fl(e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,c=Tl(t),[l,u]=s.useState(null),d=s.useRef(!1),f=kn(a),p=Ka(i);return s.useEffect(()=>{let e=fl(()=>{d.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},`handleKeyDown`),t=fl(()=>d.current=!1,`handlePointer`);return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),s.useEffect(()=>{if(!n)return;let e=fl(()=>f(!1),`handleBlur`);return window.addEventListener(`blur`,e),()=>window.removeEventListener(`blur`,e)},[n,f]),(0,G.jsx)(Ac,{...c,children:(0,G.jsx)(Dl,{scope:t,open:n,onOpenChange:f,content:l,onContentChange:u,children:(0,G.jsx)(kl,{scope:t,onClose:s.useCallback(()=>f(!1),[f]),isUsingKeyboardRef:d,dir:p,modal:o,children:r})})})},`Menu`),Ml=s.forwardRef(fl(function(e,t){let{__scopeMenu:n,...r}=e,i=Tl(n);return(0,G.jsx)(jc,{...i,...r,ref:t})},`MenuAnchor`)),Nl=`MenuPortal`,[Pl,Fl]=Cl(Nl,{forceMount:void 0}),Il=fl(e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=Ol(Nl,t);return(0,G.jsx)(Pl,{scope:t,forceMount:n,children:(0,G.jsx)(fr,{present:n||a.open,children:(0,G.jsx)(cr,{asChild:!0,container:i,children:r})})})},`MenuPortal`),Ll=`MenuContent`,[Rl,zl]=Cl(Ll),Bl=s.forwardRef(fl(function(e,t){let n=Fl(Ll,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Ol(Ll,e.__scopeMenu),o=Al(Ll,e.__scopeMenu);return(0,G.jsx)(bl.Provider,{scope:e.__scopeMenu,children:(0,G.jsx)(fr,{present:r||a.open,children:(0,G.jsx)(bl.Slot,{scope:e.__scopeMenu,children:o.modal?(0,G.jsx)(Vl,{...i,ref:t}):(0,G.jsx)(Hl,{...i,ref:t})})})})},`MenuContent`)),Vl=s.forwardRef(fl(function(e,t){let n=Ol(Ll,e.__scopeMenu),r=s.useRef(null),i=Ft(t,r);return s.useEffect(()=>{let e=r.current;if(e)return Wi(e)},[]),(0,G.jsx)(Wl,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:K(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})},`MenuRootContentModal`)),Hl=s.forwardRef(fl(function(e,t){let n=Ol(Ll,e.__scopeMenu);return(0,G.jsx)(Wl,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})},`MenuRootContentNonModal`)),Ul=un(`MenuContent.ScrollLock`),Wl=s.forwardRef(fl(function(e,t){let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:c,onEntryFocus:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:m,disableOutsideScroll:h,...g}=e,_=Ol(Ll,n),v=Al(Ll,n),y=Tl(n),b=El(n),x=xl(n),[S,C]=s.useState(null),w=s.useRef(null),T=Ft(t,w,_.onContentChange),E=s.useRef(0),D=s.useRef(``),O=s.useRef(0),k=s.useRef(null),A=s.useRef(`right`),j=s.useRef(0),M=h?Fi:s.Fragment,N=h?{as:Ul,allowPinchZoom:!0}:void 0,P=fl(e=>{let t=D.current+e,n=x().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=bu(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;fl((function e(t){D.current=t,window.clearTimeout(E.current),t!==``&&(E.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(t),o&&setTimeout(()=>o.focus())},`handleTypeaheadSearch`);s.useEffect(()=>()=>window.clearTimeout(E.current),[]),Cr();let F=s.useCallback(e=>A.current===k.current?.side&&Su(e,k.current?.area),[]);return(0,G.jsx)(Rl,{scope:n,searchRef:D,onItemEnter:s.useCallback(e=>{F(e)&&e.preventDefault()},[F]),onItemLeave:s.useCallback(e=>{F(e)||(w.current?.focus(),C(null))},[F]),onTriggerLeave:s.useCallback(e=>{F(e)&&e.preventDefault()},[F]),pointerGraceTimerRef:O,onPointerGraceIntentChange:s.useCallback(e=>{k.current=e},[]),children:(0,G.jsx)(M,{...N,children:(0,G.jsx)(Yn,{asChild:!0,trapped:i,onMountAutoFocus:K(a,e=>{e.preventDefault(),w.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:o,children:(0,G.jsx)(Ln,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:m,children:(0,G.jsx)(ll,{asChild:!0,...b,dir:v.dir,orientation:`vertical`,loop:r,currentTabStopId:S,onCurrentTabStopIdChange:C,onEntryFocus:K(l,e=>{v.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,G.jsx)(Mc,{role:`menu`,"aria-orientation":`vertical`,"data-state":hu(_.open),"data-radix-menu-content":``,dir:v.dir,...y,...g,ref:T,style:{outline:`none`,...g.style},onKeyDown:K(g.onKeyDown,e=>{let t=e.target.closest(`[data-radix-menu-content]`)===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=e.key.length===1;t&&(e.key===`Tab`&&e.preventDefault(),!n&&r&&P(e.key));let i=w.current;if(e.target!==i||!gl.includes(e.key))return;e.preventDefault();let a=x().filter(e=>!e.disabled).map(e=>e.ref.current);hl.includes(e.key)&&a.reverse(),vu(a)}),onBlur:K(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(E.current),D.current=``)}),onPointerMove:K(e.onPointerMove,Cu(e=>{let t=e.target,n=j.current!==e.clientX;if(e.currentTarget.contains(t)&&n){let t=e.clientX>j.current?`right`:`left`;A.current=t,j.current=e.clientX}}))})})})})})})},`MenuContentImpl`)),Gl=s.forwardRef(fl(function(e,t){let{__scopeMenu:n,...r}=e;return(0,G.jsx)(Tn.div,{role:`group`,...r,ref:t})},`MenuGroup`)),Kl=s.forwardRef(fl(function(e,t){let{__scopeMenu:n,...r}=e;return(0,G.jsx)(Tn.div,{...r,ref:t})},`MenuLabel`)),ql=`MenuItem`,Jl=`menu.itemSelect`,Yl=s.forwardRef(fl(function(e,t){let{disabled:n=!1,onSelect:r,...i}=e,a=s.useRef(null),o=Al(ql,e.__scopeMenu),c=zl(ql,e.__scopeMenu),l=Ft(t,a),u=s.useRef(!1),d=fl(()=>{let e=a.current;if(!n&&e){let t=new CustomEvent(Jl,{bubbles:!0,cancelable:!0});e.addEventListener(Jl,e=>r?.(e),{once:!0}),En(e,t),t.defaultPrevented?u.current=!1:o.onClose()}},`handleSelect`);return(0,G.jsx)(Xl,{...i,ref:l,disabled:n,onClick:K(e.onClick,d),onPointerDown:t=>{e.onPointerDown?.(t),u.current=!0},onPointerUp:K(e.onPointerUp,e=>{u.current||e.currentTarget?.click()}),onKeyDown:K(e.onKeyDown,e=>{n||e.target!==e.currentTarget||(c.searchRef.current===``||e.key!==` `)&&pl.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})},`MenuItem`)),Xl=s.forwardRef(fl(function(e,t){let{__scopeMenu:n,disabled:r=!1,textValue:i,...a}=e,o=zl(ql,n),c=El(n),l=s.useRef(null),u=Ft(t,l),[d,f]=s.useState(!1),[p,m]=s.useState(``);return s.useEffect(()=>{let e=l.current;e&&m((e.textContent??``).trim())},[a.children]),(0,G.jsx)(bl.ItemSlot,{scope:n,disabled:r,textValue:i??p,children:(0,G.jsx)(ul,{asChild:!0,...c,focusable:!r,children:(0,G.jsx)(Tn.div,{role:`menuitem`,"data-highlighted":d?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...a,ref:u,onPointerMove:K(e.onPointerMove,Cu(e=>{r?o.onItemLeave(e):(o.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:K(e.onPointerLeave,Cu(e=>o.onItemLeave(e))),onFocus:K(e.onFocus,()=>f(!0)),onBlur:K(e.onBlur,()=>f(!1))})})})},`MenuItemImpl`)),[Zl,Ql]=Cl(`MenuRadioGroup`,{value:void 0,onValueChange:fl(()=>{},`onValueChange`)}),$l=s.forwardRef(fl(function(e,t){let{value:n,onValueChange:r,...i}=e,a=kn(r);return(0,G.jsx)(Zl,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,G.jsx)(Gl,{...i,ref:t})})},`MenuRadioGroup`)),eu=`MenuRadioItem`,tu=s.forwardRef(fl(function(e,t){let{value:n,...r}=e,i=Ql(eu,e.__scopeMenu),a=n===i.value;return(0,G.jsx)(ru,{scope:e.__scopeMenu,checked:a,children:(0,G.jsx)(Yl,{role:`menuitemradio`,"aria-checked":a,...r,ref:t,"data-state":_u(a),onSelect:K(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})},`MenuRadioItem`)),nu=`MenuItemIndicator`,[ru,iu]=Cl(nu,{checked:!1}),au=s.forwardRef(fl(function(e,t){let{__scopeMenu:n,forceMount:r,...i}=e,a=iu(nu,n);return(0,G.jsx)(fr,{present:r||gu(a.checked)||a.checked===!0,children:(0,G.jsx)(Tn.span,{...i,ref:t,"data-state":_u(a.checked)})})},`MenuItemIndicator`)),ou=s.forwardRef(fl(function(e,t){let{__scopeMenu:n,...r}=e;return(0,G.jsx)(Tn.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})},`MenuSeparator`)),su=`MenuSub`,[cu,lu]=Cl(su),uu=fl(e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,a=Ol(su,t),o=Tl(t),[c,l]=s.useState(null),[u,d]=s.useState(null),f=kn(i);return s.useEffect(()=>(a.open===!1&&f(!1),()=>f(!1)),[a.open,f]),(0,G.jsx)(Ac,{...o,children:(0,G.jsx)(Dl,{scope:t,open:r,onOpenChange:f,content:u,onContentChange:d,children:(0,G.jsx)(cu,{scope:t,contentId:Kt(),triggerId:Kt(),trigger:c,onTriggerChange:l,children:n})})})},`MenuSub`),du=`MenuSubTrigger`,fu=s.forwardRef(fl(function(e,t){let n=Ol(du,e.__scopeMenu),r=Al(du,e.__scopeMenu),i=lu(du,e.__scopeMenu),a=zl(du,e.__scopeMenu),o=s.useRef(null),{pointerGraceTimerRef:c,onPointerGraceIntentChange:l}=a,u={__scopeMenu:e.__scopeMenu},d=s.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);s.useEffect(()=>d,[d]),s.useEffect(()=>{let e=c.current;return()=>{window.clearTimeout(e),l(null)}},[c,l]);let f=Ft(t,i.onTriggerChange);return(0,G.jsx)(Ml,{asChild:!0,...u,children:(0,G.jsx)(Xl,{id:i.triggerId,"aria-haspopup":`menu`,"aria-expanded":n.open,"aria-controls":n.open?i.contentId:void 0,"data-state":hu(n.open),...e,ref:f,onClick:t=>{e.onClick?.(t),!(e.disabled||t.defaultPrevented)&&(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:K(e.onPointerMove,Cu(t=>{a.onItemEnter(t),!t.defaultPrevented&&!e.disabled&&!n.open&&!o.current&&(a.onPointerGraceIntentChange(null),o.current=window.setTimeout(()=>{n.onOpenChange(!0),d()},100))})),onPointerLeave:K(e.onPointerLeave,Cu(e=>{d();let t=n.content?.getBoundingClientRect();if(t){let r=n.content?.dataset.side,i=r===`right`,o=i?-5:5,s=t[i?`left`:`right`],l=t[i?`right`:`left`];a.onPointerGraceIntentChange({area:[{x:e.clientX+o,y:e.clientY},{x:s,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:s,y:t.bottom}],side:r}),window.clearTimeout(c.current),c.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:K(e.onKeyDown,t=>{e.disabled||t.target!==t.currentTarget||(a.searchRef.current===``||t.key!==` `)&&_l[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})},`MenuSubTrigger`)),pu=`MenuSubContent`,mu=s.forwardRef(fl(function(e,t){let n=Fl(Ll,e.__scopeMenu),{forceMount:r=n.forceMount,align:i=`start`,...a}=e,o=Ol(Ll,e.__scopeMenu),c=Al(Ll,e.__scopeMenu),l=lu(pu,e.__scopeMenu),u=s.useRef(null),d=Ft(t,u);return(0,G.jsx)(bl.Provider,{scope:e.__scopeMenu,children:(0,G.jsx)(fr,{present:r||o.open,children:(0,G.jsx)(bl.Slot,{scope:e.__scopeMenu,children:(0,G.jsx)(Wl,{id:l.contentId,"aria-labelledby":l.triggerId,...a,ref:d,align:i,side:c.dir===`rtl`?`left`:`right`,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{c.isUsingKeyboardRef.current&&u.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:K(e.onFocusOutside,e=>{e.target!==l.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:K(e.onEscapeKeyDown,e=>{c.onClose(),e.preventDefault()}),onKeyDown:K(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=vl[c.dir].includes(e.key);t&&n&&(o.onOpenChange(!1),l.trigger?.focus(),e.preventDefault())})})})})})},`MenuSubContent`));function hu(e){return e?`open`:`closed`}fl(hu,`getOpenState`);function gu(e){return e===`indeterminate`}fl(gu,`isIndeterminate`);function _u(e){return gu(e)?`indeterminate`:e?`checked`:`unchecked`}fl(_u,`getCheckedState`);function vu(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}fl(vu,`focusFirst`);function yu(e,t){return e.map((n,r)=>e[(t+r)%e.length])}fl(yu,`wrapArray`);function bu(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=yu(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}fl(bu,`getNextMatch`);function xu(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}fl(xu,`isPointInPolygon`);function Su(e,t){return t?xu({x:e.clientX,y:e.clientY},t):!1}fl(Su,`isPointerInGraceArea`);function Cu(e){return t=>t.pointerType===`mouse`?e(t):void 0}fl(Cu,`whenMouse`);var wu=jl,Tu=Ml,Eu=Il,Du=Bl,Ou=Kl,ku=Yl,Au=$l,ju=tu,Mu=au,Nu=ou,Pu=uu,Fu=fu,Iu=mu,Lu=Object.defineProperty,Ru=(e,t)=>Lu(e,`name`,{value:t,configurable:!0}),zu=`DropdownMenu`,[Bu,Vu]=zt(zu,[wl]),Hu=wl(),[Uu,Wu]=Bu(zu),Gu=Ru(e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:c=!0}=e,l=Hu(t),u=s.useRef(null),[d,f]=tn({prop:i,defaultProp:a??!1,onChange:o,caller:zu});return(0,G.jsx)(Uu,{scope:t,triggerId:Kt(),triggerRef:u,contentId:Kt(),open:d,onOpenChange:f,onOpenToggle:s.useCallback(()=>f(e=>!e),[f]),modal:c,children:(0,G.jsx)(wu,{...l,open:d,onOpenChange:f,dir:r,modal:c,children:n})})},`DropdownMenu`),Ku=`DropdownMenuTrigger`,qu=s.forwardRef(Ru(function(e,t){let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=Wu(Ku,n),o=Hu(n),s=Ft(t,a.triggerRef);return(0,G.jsx)(Tu,{asChild:!0,...o,children:(0,G.jsx)(Tn.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:s,onPointerDown:K(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:K(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})},`DropdownMenuTrigger`)),Ju=Ru(e=>{let{__scopeDropdownMenu:t,...n}=e,r=Hu(t);return(0,G.jsx)(Eu,{...r,...n})},`DropdownMenuPortal`),Yu=`DropdownMenuContent`,Xu=s.forwardRef(Ru(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=Wu(Yu,n),a=Hu(n),o=s.useRef(!1);return(0,G.jsx)(Du,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:K(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:K(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!i.modal||r)&&(o.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})},`DropdownMenuContent`)),Zu=s.forwardRef(Ru(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=Hu(n);return(0,G.jsx)(Ou,{...i,...r,ref:t})},`DropdownMenuLabel`)),Qu=s.forwardRef(Ru(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=Hu(n);return(0,G.jsx)(ku,{...i,...r,ref:t})},`DropdownMenuItem`)),$u=s.forwardRef(Ru(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=Hu(n);return(0,G.jsx)(Au,{...i,...r,ref:t})},`DropdownMenuRadioGroup`)),ed=s.forwardRef(Ru(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=Hu(n);return(0,G.jsx)(ju,{...i,...r,ref:t})},`DropdownMenuRadioItem`)),td=s.forwardRef(Ru(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=Hu(n);return(0,G.jsx)(Mu,{...i,...r,ref:t})},`DropdownMenuItemIndicator`)),nd=s.forwardRef(Ru(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=Hu(n);return(0,G.jsx)(Nu,{...i,...r,ref:t})},`DropdownMenuSeparator`)),rd=Ru(e=>{let{__scopeDropdownMenu:t,children:n,open:r,onOpenChange:i,defaultOpen:a}=e,o=Hu(t),[s,c]=tn({prop:r,defaultProp:a??!1,onChange:i,caller:`DropdownMenuSub`});return(0,G.jsx)(Pu,{...o,open:s,onOpenChange:c,children:n})},`DropdownMenuSub`),id=s.forwardRef(Ru(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=Hu(n);return(0,G.jsx)(Fu,{...i,...r,ref:t})},`DropdownMenuSubTrigger`)),ad=s.forwardRef(Ru(function(e,t){let{__scopeDropdownMenu:n,...r}=e,i=Hu(n);return(0,G.jsx)(Iu,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})},`DropdownMenuSubContent`)),od=Gu,sd=qu,cd=Ju,ld=Xu,ud=Zu,dd=Qu,fd=$u,pd=ed,md=td,hd=nd,gd=rd,_d=id,vd=ad;function yd({items:e,label:t=`更多操作`}){let n=e.findIndex(e=>e.danger);return(0,G.jsxs)(od,{children:[(0,G.jsx)(sd,{asChild:!0,children:(0,G.jsx)(`button`,{className:`icon-button more-actions-trigger`,type:`button`,"aria-label":t,title:t,children:(0,G.jsx)(ve,{size:16})})}),(0,G.jsx)(cd,{children:(0,G.jsx)(ld,{className:`more-actions-menu`,align:`end`,sideOffset:6,collisionPadding:12,children:e.map((e,t)=>(0,G.jsxs)(s.Fragment,{children:[t===n&&t>0&&(0,G.jsx)(hd,{className:`more-actions-separator`}),(0,G.jsx)(dd,{className:`more-actions-item${e.danger?` danger`:``}`,disabled:e.disabled,onSelect:e.onSelect,children:e.label})]},e.label))})})]})}function bd({targetId:e,children:t}){let[n,r]=(0,s.useState)(null);return(0,s.useLayoutEffect)(()=>{r(document.getElementById(e))},[e]),n?(0,sn.createPortal)(t,n):(0,G.jsx)(G.Fragment,{children:t})}function xd({children:e}){return(0,G.jsx)(bd,{targetId:`pageHeaderTools`,children:e})}function Sd({children:e}){return(0,G.jsx)(bd,{targetId:`pageHeaderActions`,children:e})}function Cd(e){return wd(e)||typeof e==`function`||Td(e)}function wd(e){return typeof e==`function`&&(()=>{let t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function Td(e){return typeof e==`object`&&typeof e.$$typeof==`symbol`&&[`react.memo`,`react.forward_ref`].includes(e.$$typeof.description)}function Ed(e,t){return e==null?null:Cd(e)?s.createElement(e,t):e}function Dd(e){if(`cell`in e&&e.cell){let t=e.cell,n=t.column.columnDef,r=t,i=n;return r.getIsAggregated?.()?Ed(i.aggregatedCell??n.cell,t.getContext()):r.getIsPlaceholder?.()?null:Ed(n.cell,t.getContext())}return`header`in e&&e.header?Ed(e.header.column.columnDef.header,e.header.getContext()):`footer`in e&&e.footer?Ed(e.footer.column.columnDef.footer,e.footer.getContext()):null}function Od({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function kd(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var Ad=[],jd=0,{link:Md,unlink:Nd,propagate:Pd,checkDirty:Fd,shallowPropagate:Id}=Od({update(e){return e._update()},notify(e){Ad[Rd++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,Hd(e))}}),Ld=0,Rd=0,zd,Bd=0;function Vd(e){try{++Bd,e()}finally{--Bd||Ud()}}function Hd(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Nd(n,e)}function Ud(){if(!(Bd>0)){for(;Ld<Rd;){let e=Ad[Ld];Ad[Ld++]=void 0,e.notify()}Ld=0,Rd=0}}function Wd(e,t){let n=typeof e==`function`,r=e,i={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:+!n,get(){return zd!==void 0&&Md(i,zd,jd),i._snapshot},subscribe(e){let t=kd(e),n={current:!1},r=Gd(()=>{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=zd,o=t?.compare??Object.is;if(n)zd=i,++jd,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=5);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{zd=a,n&&(i.flags&=-5),Hd(i)}}};return n?(i.flags=17,i.get=function(){let e=i.flags;if(e&16||e&32&&Fd(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Id(e)}}else e&32&&(i.flags=e&-33);return zd!==void 0&&Md(i,zd,jd),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(Pd(e),Id(e),Ud())}},i}function Gd(e){let t=()=>{let t=zd;zd=n,++jd,n.depsTail=void 0,n.flags=6;try{return e()}finally{zd=t,n.flags&=-5,Hd(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:6,notify(){let e=this.flags;e&16||e&32&&Fd(this.deps,this)?t():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,Hd(this)}};return t(),n}function Kd(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!t.has(n)||!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();let n=qd(e);if(n.length!==qd(t).length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0}function qd(e){return Object.keys(e).concat(Object.getOwnPropertySymbols(e))}var Jd=n((e=>{var t=r();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:n,a=t.useState,o=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),i=r[0].inst,l=r[1];return s(function(){i.value=n,i.getSnapshot=t,u(i)&&l({inst:i})},[e,n,t]),o(function(){return u(i)&&l({inst:i}),e(function(){u(i)&&l({inst:i})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!i(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),Yd=n(((e,t)=>{t.exports=Jd()})),Xd=n((e=>{var t=r(),n=Yd();function i(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var a=typeof Object.is==`function`?Object.is:i,o=n.useSyncExternalStore,s=t.useRef,c=t.useEffect,l=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var d=s(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=l(function(){function e(e){if(!o){if(o=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,a(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var o=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=o(e,d[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),Zd=t(n(((e,t)=>{t.exports=Xd()}))(),1);function Qd(e,t){return e===t}function $d(e,t=e=>e,n){let r=n?.compare??Qd,i=(0,s.useCallback)(t=>{let{unsubscribe:n}=e.subscribe(t);return n},[e]),a=(0,s.useCallback)(()=>e.get(),[e]);return(0,Zd.useSyncExternalStoreWithSelector)(i,a,a,t,r)}function ef(e){let t=$d(e.source,e.selector,{compare:Kd});return typeof e.children==`function`?e.children(t):e.children}function tf(e){let t=e;return Object.defineProperty(e,"state",{get(){return e.get()}}),`set`in e&&(t.setState=e.set.bind(e)),t}function nf(e){let{createAtom:t,batch:n}=e,r=t(0);return{createOptionsStore:!1,wrapExternalAtoms:!1,addSubscription:()=>{throw Error(`Feature not supported in current reactivity implementation`)},unmount:()=>{throw Error(`Feature not supported in current reactivity implementation`)},schedule:e.schedule??(e=>queueMicrotask(e)),batch:n,untrack:e=>e(),createReadonlyAtom:(e,n)=>{let i=n?.compare??Object.is,a=!1,o,s=()=>{let t=e();return(!a||!i(o,t))&&(o=t,a=!0),o},c=t(()=>(r.get(),s()),{compare:i});return{get:s,subscribe:c.subscribe.bind(c)}},createWritableAtom:(e,n)=>t(e,{compare:n?.compare}),commit:()=>{r.set(e=>e+1)}}}function rf(e,t=Object.is){let n=!1,r;return{get:e.get,markCommitted:e=>{r=e,n=!0},subscribe:i=>e.subscribe(e=>{(!n||!t(r,e))&&i(e)})}}function af(){return nf({createAtom:Wd,batch:Vd})}function of(e,t){return typeof e==`function`?e(t):e}function sf(e){if(Array.isArray(e))return e.map(sf);if(e&&typeof e==`object`){let t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null)return e;let n=t===null?cf():{},r=Object.keys(e);for(let t=0;t<r.length;t++){let i=r[t];Object.defineProperty(n,i,{configurable:!0,enumerable:!0,value:sf(e[i]),writable:!0})}return n}return e}function cf(){return Object.create(null)}function lf(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function uf(e){if(typeof e!=`object`||!e)return!1;if(Array.isArray(e))return!0;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function df(e){return Reflect.ownKeys(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}var ff=3;function pf(e,t){return mf(e,t,ff)}function mf(e,t,n){if(Object.is(e,t))return!0;if(n<=0||!uf(e)||!uf(t)||(Array.isArray(e)||Array.isArray(t))&&(!Array.isArray(e)||!Array.isArray(t)||e.length!==t.length))return!1;let r=df(e),i=df(t);if(r.length!==i.length)return!1;let a=e,o=t;for(let e=0;e<r.length;e++){let i=r[e];if(!Object.prototype.propertyIsEnumerable.call(t,i)||!mf(a[i],o[i],n-1))return!1}return!0}function hf(e,t,n,r=pf){let i=`on${t.charAt(0).toUpperCase()}${t.slice(1)}Change`,a=e.options[i];a&&a(e=>{let t=of(n,e);return r(e,t)?e:t})}function gf(e,t){let n=[],r=e=>{e.forEach(e=>{n.push(e);let i=t(e);i.length&&r(i)})};return r(e),n}var _f=({fn:e,memoDeps:t,onAfterCompare:n,onAfterUpdate:r,onBeforeCompare:i,onBeforeUpdate:a})=>{let o=[],s;return c=>{i?.();let l=t?.(c),u=!l||l.length!==o?.length;if(!u&&l){for(let e=0;e<l.length;e++)if(l[e]!==o[e]){u=!0;break}}return n?.(u),u?(o=l,a?.(),s=e(...l??[]),r?.(s),s):s}};function vf(e){let t=!1;return()=>{if(!t){t=!0;return}e()}}function yf({feature:e,fnName:t,objectId:n,onAfterUpdate:r,table:i,...a}){let o=()=>{if(!r)return;let{schedule:e,untrack:t}=i._reactivity;e(()=>t(()=>r()))},s={onAfterUpdate:()=>{o()}};return _f({...a,...s})}function bf(e,t=`_`){let[n,r]=e.split(t);return{fnKey:r,fnName:`${n}.${r}`,parentName:n}}function xf(e,t,n){for(let[r,{fn:i,memoDeps:a}]of Object.entries(n)){let{fnKey:n,fnName:o}=bf(r);t[n]=a?yf({memoDeps:a,fn:i,fnName:o,table:t,feature:e}):i}}function Sf(e,t,n,r){for(let[i,{fn:a,memoDeps:o}]of Object.entries(r)){let{fnKey:r,fnName:s}=bf(i);if(o){let i=`_memo_${r}`;t[r]=function(...t){if(!this[i]){let t=this;this[i]=yf({memoDeps:e=>o(t,e),fn:(...e)=>a(t,...e),fnName:s,objectId:t.id,table:n,feature:e})}return this[i](...t)}}else t[r]=function(...e){return a(this,...e)}}}function Cf(e,t,n,...r){return e[t]?.(...r)??n(e,...r)}function wf(e){return e.row.getValue(e.column.id)}function Tf(e){return e.getValue()??e.table.options.renderFallbackValue}function Ef(e){return{table:e.table,column:e.column,row:e.row,cell:e,getValue:()=>e.getValue(),renderValue:()=>e.renderValue()}}var Df={assignCellPrototype:(e,t)=>{Sf(`coreCellsFeature`,e,t,{cell_getValue:{fn:e=>wf(e)},cell_renderValue:{fn:e=>Tf(e)},cell_getContext:{fn:e=>Ef(e),memoDeps:e=>[e]}})}};function Of(e){if(!e._headerPrototype){e._headerPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignHeaderPrototype?.(e._headerPrototype,e)}return e._headerPrototype}function kf(e,t,n){let r=Of(e),i=Object.create(r);i.colSpan=0,i.column=t,i.depth=n.depth,i.headerGroup=null,i.id=n.id??t.id,i.index=n.index,i.isPlaceholder=!!n.isPlaceholder,i.placeholderId=n.placeholderId,i.rowSpan=0,i.subHeaders=[];let a=e._headerInstanceInitFns;for(let e=0;e<a.length;e++)a[e](i);return i}function Af(){return{start:[],end:[]}}function jf(e){let t=e.table.atoms.columnVisibility?.get();if(!t)return!0;let n=e.columns;return n.length?n.some(e=>Cf(e,`getIsVisible`,jf)):(lf(t,e.id)?t[e.id]:void 0)??!0}function Mf(e){return e.getAllLeafColumns().filter(e=>Cf(e,`getIsVisible`,jf))}function Nf(e,t=1){let n=t;for(let r=0;r<e.length;r++){let i=e[r];Cf(i,`getIsVisible`,jf)&&i.columns.length&&(n=Math.max(n,Nf(i.columns,t+1)))}return n}function Pf(e,t){return e?`${e}_${t}`:String(t)}function Ff(e,t,n,r){let i=e??``;return t&&(i=i?`${i}_${t}`:String(t)),n&&(i=i?`${i}_${n}`:n),r&&(i=i?`${i}_${r}`:r),i}function If(e,t){let n=0;for(let r=0;r<e.length;r++)e[r].column===t&&n++;return n}function Lf(e,t,n,r,i,a){let o={depth:t,id:Pf(r,t),headers:[]},s=[];for(let i=0;i<e.length;i++){if(!(i in e))continue;let a=e[i],c=s[s.length-1],l=a.column.depth===o.depth,u,d=!1;if(l&&a.column.parent?u=a.column.parent:(u=a.column,d=!0),c&&c.column===u)c.subHeaders.push(a);else{let e=kf(n,u,{id:Ff(r,t,u.id,a.id),isPlaceholder:d,placeholderId:d?String(If(s,u)):void 0,depth:t,index:s.length});e.subHeaders.push(a),s.push(e)}o.headers.push(a),a.headerGroup=o}for(let e=0;e<a.length;e++)a[e](o);i.push(o),t>0&&Lf(s,t-1,n,r,i,a)}function Rf(e){for(let t=0;t<e.length;t++){let n=e[t];if(!Cf(n.column,`getIsVisible`,jf))continue;let r=0;if(n.subHeaders.length){Rf(n.subHeaders);for(let e=0;e<n.subHeaders.length;e++){let t=n.subHeaders[e];Cf(t.column,`getIsVisible`,jf)&&(r+=t.colSpan)}}else r=1;if(n.colSpan=r,n.isPlaceholder&&n.subHeaders.length===1&&n.subHeaders[0].column===n.column){let e=1,t=n.subHeaders[0];for(;t;)t.rowSpan=0,e++,t=t.subHeaders.length===1&&t.subHeaders[0].column===n.column?t.subHeaders[0]:void 0;n.rowSpan=e}else n.rowSpan=1}}function zf(e,t,n,r){let i=Nf(e),a=[],o=n._headerGroupInstanceInitFns,s=Array(t.length);for(let e=0;e<t.length;e++)e in t&&(s[e]=kf(n,t[e],{depth:i,index:e}));return Lf(s,i-1,n,r,a,o),a.reverse(),Rf(a[0]?.headers??[]),a}function Bf(e){if(!e._columnPrototype){e._columnPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignColumnPrototype?.(e._columnPrototype,e)}return e._columnPrototype}function Vf(e,t,n,r){let i={...e.getDefaultColumnDef(),...t},a=i.accessorKey,o=a===void 0?void 0:String(a),s=i.id??o?.replaceAll(`.`,`_`)??(typeof i.header==`string`?i.header:void 0),c;if(i.accessorFn)c=i.accessorFn;else if(a!==void 0){if(typeof a==`string`&&a.includes(`.`)){let e=a.split(`.`);c=t=>{let n=t;for(let t=0;t<e.length;t++){let r=e[t];n=n?.[r]}return n}}else c=e=>e[i.accessorKey]}if(!s)throw Error();let l=Bf(e),u=Object.create(l);u.accessorFn=c,u.columnDef=i,u.columns=[],u.depth=n,u.id=`${String(s)}`,u.parent=r;let d=e._columnInstanceInitFns;for(let e=0;e<d.length;e++)d[e](u);return u}function Hf(e){let t=e.atoms.columnOrder?.get();return n=>{let r=[];if(!t?.length)r=n;else{let e=new Map;for(let t=0;t<n.length;t++){let r=n[t];e.set(r.id,r)}for(let n=0;n<t.length;n++){let i=t[n],a=e.get(i);a&&(r.push(a),e.delete(i))}for(let t=0;t<n.length;t++){let i=n[t];e.has(i.id)&&r.push(i)}}return Uf(e,r)}}function Uf(e,t){let n=e.atoms.grouping?.get()??[],{groupedColumnMode:r}=e.options;if(!n.length||!r)return t;let i=t.filter(e=>!n.includes(e.id));if(r===`remove`)return i;let a=new Map;for(let e=0;e<t.length;e++){let n=t[e];a.set(n.id,n)}let o=[];for(let e=0;e<n.length;e++){let t=a.get(n[e]);t&&o.push(t)}return[...o,...i]}function Wf(e){return[e,...e.columns.flatMap(e=>e.getFlatColumns())]}function Gf(e){if(e.columns.length){let t=e.columns.flatMap(e=>e.getLeafColumns());return Cf(e.table,`getOrderColumns`,Hf)(t)}return[e]}function Kf(e){return{header:e=>{let t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>e.renderValue()?.toString?.()??null,...Object.values(e._features).reduce((e,t)=>Object.assign(e,t.getDefaultColumnDef?.()),{}),...e.options.defaultColumn}}function qf(e,t,n,r=0){let i=Array(t.length);for(let a=0;a<t.length;a++){if(!(a in t))continue;let o=t[a],s=Vf(e,o,r,n),c=o;s.columns=c.columns?qf(e,c.columns,s,r+1):[],i[a]=s}return i}function Jf(e){return qf(e,e.options.columns)}function Yf(e){return e.getAllColumns().flatMap(e=>e.getFlatColumns())}function Xf(e){let t=cf(),n=e.getAllFlatColumns();for(let e=0;e<n.length;e++){let r=n[e];t[r.id]=r}return t}function Zf(e){let t=e.getAllColumns().flatMap(e=>e.getLeafColumns());return Cf(e,`getOrderColumns`,Hf)(t)}function Qf(e){let t=cf(),n=e.getAllLeafColumns();for(let e=0;e<n.length;e++){let r=n[e];t[r.id]=r}return t}function $f(e,t){return e.getAllFlatColumnsById()[t]}var ep={assignColumnPrototype:(e,t)=>{Sf(`coreColumnsFeature`,e,t,{column_getFlatColumns:{fn:e=>Wf(e),memoDeps:e=>[e.table.options.columns]},column_getLeafColumns:{fn:e=>Gf(e),memoDeps:e=>[e.table.atoms.columnOrder?.get(),e.table.atoms.grouping?.get(),e.table.options.columns,e.table.options.groupedColumnMode]}})},constructTableAPIs:e=>{xf(`coreColumnsFeature`,e,{table_getDefaultColumnDef:{fn:()=>Kf(e),memoDeps:()=>[e.options.defaultColumn]},table_getAllColumns:{fn:()=>Jf(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumns:{fn:()=>Yf(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumnsById:{fn:()=>Xf(e),memoDeps:()=>[e.options.columns]},table_getAllLeafColumns:{fn:()=>Zf(e),memoDeps:()=>[e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode]},table_getAllLeafColumnsById:{fn:()=>Qf(e),memoDeps:()=>[e.getAllLeafColumns()]},table_getColumn:{fn:t=>$f(e,t)}})}};function tp(e,t){for(let n=0;n<e.subHeaders.length;n++)tp(e.subHeaders[n],t);t.push(e)}function np(e){let t=[];return tp(e,t),t}function rp(e){return{column:e.column,header:e,table:e.column.table}}function ip(e){let{start:t,end:n}=e.atoms.columnPinning?.get()??Af(),r=e.getAllColumns(),i=Cf(e,`getVisibleLeafColumns`,Mf);if(!t.length&&!n.length)return zf(r,i,e);let a=e.getAllLeafColumnsById(),o=[];for(let e=0;e<t.length;e++){let n=a[t[e]];n&&Cf(n,`getIsVisible`,jf)&&o.push(n)}let s=[];for(let e=0;e<n.length;e++){let t=a[n[e]];t&&Cf(t,`getIsVisible`,jf)&&s.push(t)}let c=i.filter(e=>!t.includes(e.id)&&!n.includes(e.id));return zf(r,[...o,...c,...s],e)}function ap(e){return[...e.getHeaderGroups()].reverse()}function op(e){let t=e.getHeaderGroups(),n=[];for(let e=0;e<t.length;e++){let r=t[e].headers;for(let e=0;e<r.length;e++)n.push(r[e])}return n}function sp(e){let t=e.getHeaderGroups()[0]?.headers??[],n=[];for(let e=0;e<t.length;e++){let r=t[e].getLeafHeaders();for(let e=0;e<r.length;e++)n.push(r[e])}return n}var cp={assignHeaderPrototype:(e,t)=>{Sf(`coreHeadersFeature`,e,t,{header_getLeafHeaders:{fn:e=>np(e),memoDeps:e=>[e.column.table.options.columns]},header_getContext:{fn:e=>rp(e),memoDeps:e=>[e.column.table.options.columns]}})},constructTableAPIs:e=>{xf(`coreHeadersFeature`,e,{table_getHeaderGroups:{fn:()=>ip(e),memoDeps:()=>[e.options.columns,e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.atoms.columnPinning?.get(),e.atoms.columnVisibility?.get(),e.options.groupedColumnMode]},table_getFooterGroups:{fn:()=>ap(e),memoDeps:()=>[e.getHeaderGroups()]},table_getFlatHeaders:{fn:()=>op(e),memoDeps:()=>[e.getHeaderGroups()]},table_getLeafHeaders:{fn:()=>sp(e),memoDeps:()=>[e.getHeaderGroups()]}})}};function lp(e){if(!e._rowPrototype){e._rowPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignRowPrototype?.(e._rowPrototype,e)}return e._rowPrototype}var up=(e,t,n,r,i,a,o)=>{let s=lp(e),c=Object.create(s);c._displayIndexCache=-1,c._uniqueValuesCache=cf(),c._valuesCache=cf(),c.depth=i,c.id=t,c.index=r,c.original=n,c.parentId=o,c.subRows=a??[];let l=e._rowInstanceInitFns;for(let e=0;e<l.length;e++)l[e](c);return c};function dp(){return[]}function fp(e,t){hf(e,`cellSelection`,t?dp():sf(e.initialState.cellSelection)??dp())}function pp(e){e.atoms.cellSelection&&(e.options.autoResetAll??e.options.autoResetCellSelection??!0)&&e._reactivity.schedule(()=>fp(e))}function mp(e){e.atoms.expanded&&(e.options.autoResetAll??e.options.autoResetExpanded??!e.options.manualExpanding)&&e._reactivity.schedule(()=>hp(e))}function hp(e,t){let n=e.initialState.expanded;hf(e,`expanded`,t?cf():n===!0||Object.assign(cf(),sf(n??{})))}var gp=0;function _p(e){if(e.options.autoResetAll??e.options.autoResetPageIndex??!e.options.manualPagination){if((e.atoms.pagination?.get()?.pageIndex??gp)===gp)return;bp(e,!0)}}function vp(e,t){hf(e,`pagination`,t)}function yp(e,t){vp(e,n=>{let r=of(t,n.pageIndex),i=e.options.pageCount===void 0||e.options.pageCount===-1?2**53-1:e.options.pageCount-1;return r=Math.max(0,Math.min(r,i)),{...n,pageIndex:r}})}function bp(e,t){yp(e,t?gp:e.initialState.pagination?.pageIndex??gp)}function xp(e,t){hf(e,`sorting`,t)}function Sp(e,t){xp(e,t?[]:sf(e.initialState.sorting??[]))}function Cp(e){e.atoms.sorting&&(e.options.autoResetAll??e.options.autoResetSorting??!1)&&Sp(e)}function wp(){return e=>yf({feature:`coreRowModelsFeature`,table:e,fnName:`table.getCoreRowModel`,memoDeps:()=>[e.options.data],fn:()=>Ep(e,e.options.data),onAfterUpdate:vf(()=>{mp(e),_p(e),Cp(e),pp(e)})})}function Tp(e,t,n,r=0,i){let a=[];for(let o=0;o<n.length;o++){let s=n[o],c=up(e,e.getRowId(s,o,i),s,o,r,void 0,i?.id);t.flatRows.push(c),t.rowsById[c.id]=c,a.push(c),e.options.getSubRows&&(c.originalSubRows=e.options.getSubRows(s,o),c.originalSubRows?.length&&(c.subRows=Tp(e,t,c.originalSubRows,r+1,c)))}return a}function Ep(e,t){let n={rows:[],flatRows:[],rowsById:cf()};return n.rows=Tp(e,n,t),n}function Dp(e){return e._rowModels.coreRowModel||(e._rowModels.coreRowModel=e.options.features.coreRowModel?.(e)??wp()(e)),e._rowModels.coreRowModel()}function Op(e){return e.getCoreRowModel()}function kp(e){return e._rowModels.filteredRowModel||(e._rowModels.filteredRowModel=e.options.features.filteredRowModel?.(e)),e.options.manualFiltering||!e._rowModels.filteredRowModel?e.getPreFilteredRowModel():e._rowModels.filteredRowModel()}function Ap(e){return e.getFilteredRowModel()}function jp(e){return e._rowModels.groupedRowModel||(e._rowModels.groupedRowModel=e.options.features.groupedRowModel?.(e)),e.options.manualGrouping||!e._rowModels.groupedRowModel?e.getPreGroupedRowModel():e._rowModels.groupedRowModel()}function Mp(e){return e.getGroupedRowModel()}function Np(e){return e._rowModels.sortedRowModel||(e._rowModels.sortedRowModel=e.options.features.sortedRowModel?.(e)),e.options.manualSorting||!e._rowModels.sortedRowModel?e.getPreSortedRowModel():e._rowModels.sortedRowModel()}function Pp(e){return e.getSortedRowModel()}function Fp(e){return e._rowModels.expandedRowModel||(e._rowModels.expandedRowModel=e.options.features.expandedRowModel?.(e)),e.options.manualExpanding||!e._rowModels.expandedRowModel?e.getPreExpandedRowModel():e._rowModels.expandedRowModel()}function Ip(e){return e.getExpandedRowModel()}function Lp(e){return e._rowModels.paginatedRowModel||(e._rowModels.paginatedRowModel=e.options.features.paginatedRowModel?.(e)),e.options.manualPagination||!e._rowModels.paginatedRowModel?e.getPrePaginatedRowModel():e._rowModels.paginatedRowModel()}function Rp(e){return e.getPaginatedRowModel()}var zp={constructTableAPIs:e=>{xf(`coreRowModelsFeature`,e,{table_getCoreRowModel:{fn:()=>Dp(e)},table_getPreFilteredRowModel:{fn:()=>Op(e)},table_getFilteredRowModel:{fn:()=>kp(e)},table_getPreGroupedRowModel:{fn:()=>Ap(e)},table_getGroupedRowModel:{fn:()=>jp(e)},table_getPreSortedRowModel:{fn:()=>Mp(e)},table_getSortedRowModel:{fn:()=>Np(e)},table_getPreExpandedRowModel:{fn:()=>Pp(e)},table_getExpandedRowModel:{fn:()=>Fp(e)},table_getPrePaginatedRowModel:{fn:()=>Ip(e)},table_getPaginatedRowModel:{fn:()=>Lp(e)},table_getRowModel:{fn:()=>Rp(e)}})}};function Bp(e){if(!e._cellPrototype){e._cellPrototype={table:e};let t=Object.values(e._features);for(let n=0;n<t.length;n++)t[n].assignCellPrototype?.(e._cellPrototype,e)}return e._cellPrototype}function Vp(e,t,n){let r=Bp(n),i=Object.create(r);i.column=e,i.id=`${t.id}_${e.id}`,i.row=t;let a=n._cellInstanceInitFns;for(let e=0;e<a.length;e++)a[e](i);return i}function Hp(e){let t=e.table.getRowsInDisplayOrder(),n=e._displayIndexCache;return t[n]===e?n:-1}function Up(e){let t=e.getPrePaginatedRowModel().rows;if(e.options.paginateExpandedRows===!1){let e=[],n=t=>{t._displayIndexCache=e.length,e.push(t),t.subRows.length&&t.getIsExpanded?.()&&t.subRows.forEach(n)};return t.forEach(n),e}for(let e=0;e<t.length;e++)t[e]._displayIndexCache=e;return t}function Wp(e,t){if(lf(e._valuesCache,t))return e._valuesCache[t];let n=e.table.getColumn(t);if(n?.accessorFn)return e._valuesCache[t]=n.accessorFn(e.original,e.index),e._valuesCache[t]}function Gp(e,t){if(lf(e._uniqueValuesCache,t))return e._uniqueValuesCache[t];let n=e.table.getColumn(t);if(n?.accessorFn)return n.columnDef.getUniqueValues?(e._uniqueValuesCache[t]=n.columnDef.getUniqueValues(e.original,e.index),e._uniqueValuesCache[t]):(e._uniqueValuesCache[t]=[e.getValue(t)],e._uniqueValuesCache[t])}function Kp(e,t){return e.getValue(t)??e.table.options.renderFallbackValue}function qp(e){return gf(e.subRows,e=>e.subRows)}function Jp(e){let t=e.getCoreRowModel().flatRows,n=0;for(let e=0;e<t.length;e++)n=Math.max(n,t[e].depth);return n}function Yp(e){if(e.parentId)return e.table.getCoreRowModel().rowsById[e.parentId]??e.table.getRow(e.parentId,!0)}function Xp(e){let t=[],n=e;for(;;){let e=n.getParentRow();if(!e)break;t.push(e),n=e}return t.reverse()}function Zp(e){let t=e.table.getAllLeafColumns(),n=e._cellsCache;n||=e._cellsCache=new WeakMap;let r=Array(t.length);for(let i=0;i<t.length;i++){let a=t[i],o=n.get(a);o||(o=Vp(a,e,e.table),n.set(a,o)),r[i]=o}return r}function Qp(e){let t=cf(),n=e.getAllCells();for(let e=0;e<n.length;e++){let r=n[e];t[r.column.id]=r}return t}function $p(e,t,n,r){return t.options.getRowId?.(e,n,r)??(r?`${r.id}.${n}`:String(n))}function em(e,t,n){let r=(n?e.getPrePaginatedRowModel():e.getRowModel()).rowsById[t];if(!r&&(r=e.getCoreRowModel().rowsById[t],!r))throw Error();return r}var tm={assignRowPrototype:(e,t)=>{Sf(`coreRowsFeature`,e,t,{row_getDisplayIndex:{fn:e=>Hp(e)},row_getAllCellsByColumnId:{fn:e=>Qp(e),memoDeps:e=>[e.getAllCells()]},row_getAllCells:{fn:e=>Zp(e),memoDeps:e=>[e.table.getAllLeafColumns()]},row_getLeafRows:{fn:e=>qp(e),memoDeps:e=>[e.subRows]},row_getParentRow:{fn:e=>Yp(e)},row_getParentRows:{fn:e=>Xp(e)},row_getUniqueValues:{fn:(e,t)=>Gp(e,t)},row_getValue:{fn:(e,t)=>Wp(e,t)},row_renderValue:{fn:(e,t)=>Kp(e,t)}})},constructTableAPIs:e=>{xf(`coreRowsFeature`,e,{table_getRowsInDisplayOrder:{fn:()=>Up(e),memoDeps:()=>[e.getPrePaginatedRowModel().rows,e.options.paginateExpandedRows,e.options.paginateExpandedRows===!1?e.atoms.expanded?.get():void 0]},table_getRowId:{fn:(t,n,r)=>$p(t,e,n,r)},table_getRow:{fn:(t,n)=>em(e,t,n)},table_getMaxSubRowDepth:{fn:()=>Jp(e),memoDeps:()=>[e.getCoreRowModel()]}})}};function nm(e,t,n=(e,t)=>e===t){let r=t===void 0?e.options.state:t;e._reactivity.batch(()=>{if(r)for(let t in r){let i=e.baseAtoms[t];if(!i)continue;let a=r[t],o=a===void 0?e.initialState[t]:a;n(e._reactivity.untrack(()=>i.get()),o)||i.set(()=>o)}})}function rm(e,t,n=(e,t)=>e===t){e._reactivity.batch(()=>{nm(e,t,n),e._reactivity.commit?.()})}function im(e){let t=sf(e.initialState);e._reactivity.batch(()=>{let n=Object.keys(t);for(let r=0;r<n.length;r++){let i=n[r];e.baseAtoms[i].set(t[i])}});let n=Object.values(e._features);for(let t=0;t<n.length;t++)n[t].resetTableInstanceData?.(e)}function am(e,t){let{features:n,atoms:r,initialState:i}=e.options;if(!e.options.mergeOptions)return{...e.options,...t,features:n,atoms:r,initialState:i};let a=e.options.mergeOptions(e.options,t),o={...Object.getOwnPropertyDescriptors(a)};return Object.defineProperties(Object.create(Object.getPrototypeOf(a)),{...o,features:{value:n,enumerable:!0,configurable:!0,writable:!0},atoms:{value:r,enumerable:!0,configurable:!0,writable:!0},initialState:{value:i,enumerable:!0,configurable:!0,writable:!0}})}function om(e,t,n){let r=am(e,of(t,e.options));e.optionsStore?e.optionsStore.set(()=>r):e.options=r,n?.syncExternalState!==!1&&rm(e,r.state??null)}var sm={coreCellsFeature:Df,coreColumnsFeature:ep,coreHeadersFeature:cp,coreRowModelsFeature:zp,coreRowsFeature:tm,coreTablesFeature:{constructTableAPIs:e=>{xf(`coreTablesFeature`,e,{table_reset:{fn:()=>im(e)},table_setOptions:{fn:t=>om(e,t)}})}}};function cm(){return{accessor:(e,t)=>typeof e==`function`?{...t,accessorFn:e}:{...t,accessorKey:e},columns:e=>e,display:e=>e,group:e=>e}}function lm(e){return e}function um(e,t={}){return Object.values(e).forEach(e=>{t=e.getInitialState?.(t)??t}),sf(t)}function dm(e){let t=e.features.coreReactivityFeature,{aggregationFns:n,columnMeta:r,coreRowModel:i,expandedRowModel:a,facetedMinMaxValues:o,facetedRowModel:s,facetedUniqueValues:c,filterFns:l,filterMeta:u,filteredRowModel:d,groupedRowModel:f,paginatedRowModel:p,sortFns:m,sortedRowModel:h,tableMeta:g,..._}=e.features,v={_cellInstanceInitFns:[],_columnInstanceInitFns:[],_features:{...sm,..._},_headerGroupInstanceInitFns:[],_headerInstanceInitFns:[],_reactivity:t,_rowInstanceInitFns:[],_rowModelFns:{aggregationFns:n,filterFns:l,sortFns:m},_rowModels:{},atoms:{},baseAtoms:{}},y=Object.values(v._features),b={...y.reduce((e,t)=>Object.assign(e,t.getDefaultTableOptions?.(v)),{}),...e};if(t.wrapExternalAtoms&&b.atoms)for(let[e,n]of Object.entries(b.atoms)){let r=n,i=t.createWritableAtom(r.get(),{debugName:`externalAtom/${e}`});b.atoms[e]=i;let a=!1,o=r.subscribe(e=>{a||i.set(e)}),s=i.subscribe(e=>{a=!0,r.set(e),a=!1});t.addSubscription(o),t.addSubscription(s)}t.createOptionsStore?(v.optionsStore=t.createWritableAtom(b,{debugName:`table/optionsStore`}),Object.defineProperty(v,"options",{configurable:!0,enumerable:!0,get(){return v.optionsStore.get()},set(e){v.optionsStore.set(()=>e)}})):v.options=b,v.initialState=um(v._features,v.options.initialState);let x=Object.keys(v.initialState);for(let e=0;e<x.length;e++){let n=x[e];v.baseAtoms[n]=t.createWritableAtom(v.initialState[n],{debugName:`table/baseAtoms/${n}`}),v.atoms[n]=t.createReadonlyAtom(()=>{let e=v.options,t=e.atoms?.[n],r=t?t.get():v.baseAtoms[n].get();if(t)return r;let i=e.state;if(i&&lf(i,n)){let e=i[n];return e===void 0?v.initialState[n]:e}return r},{debugName:`table/atoms/${n}`})}nm(v),v.store=tf(t.createReadonlyAtom(()=>{let e={};for(let t=0;t<x.length;t++){let n=x[t];e[n]=v.atoms[n].get()}return e},{compare:Kd,debugName:`table/store`}));for(let e=0;e<y.length;e++){let t=y[e];t.initTableInstanceData?.(v),t.initCellInstanceData&&v._cellInstanceInitFns.push(t.initCellInstanceData.bind(t)),t.initColumnInstanceData&&v._columnInstanceInitFns.push(t.initColumnInstanceData.bind(t)),t.initHeaderGroupInstanceData&&v._headerGroupInstanceInitFns.push(t.initHeaderGroupInstanceData.bind(t)),t.initHeaderInstanceData&&v._headerInstanceInitFns.push(t.initHeaderInstanceData.bind(t)),t.initRowInstanceData&&v._rowInstanceInitFns.push(t.initRowInstanceData.bind(t)),t.constructTableAPIs?.(v)}return v}var fm=typeof window>`u`?s.useEffect:s.useLayoutEffect;function pm(e,t){let[{table:n,rootSource:r}]=(0,s.useState)(()=>{let t=dm({...e,features:{coreReactivityFeature:af(),...e.features}});return t.Subscribe=(e=>ef({...e,source:e.source??t.store})),t.FlexRender=Dd,{table:t,rootSource:rf(t.store,Kd)}}),i=n;om(i,t=>({...t,...e}),{syncExternalState:!1});let a=i.options.state,o=r.get(),c=$d(r,t,{compare:Kd});return fm(()=>{r.markCommitted(o),rm(i,a??null,Kd)}),(0,s.useMemo)(()=>({...n,options:e,state:c}),[n,e,c])}var mm=lm({});function hm(e){return typeof e==`number`?`${e}px`:e}function gm(e){return e instanceof Element&&!!e.closest(`button, a, input, select, textarea, [role='button']`)}function _m({columns:e,data:t,getRowId:n,caption:r,minWidth:i=880,loading:a=!1,error:o=``,onRetry:c,empty:l={title:`没有数据`},pagination:u,onRowActivate:d,rowAriaLabel:f}){let p=(0,s.useMemo)(()=>cm(),[]),m=pm({features:mm,columns:(0,s.useMemo)(()=>p.columns(e.map(e=>p.display({id:e.id,header:()=>e.header,cell:t=>e.cell(t.row.original)}))),[e,p]),data:t,getRowId:n}),h=(e,t)=>{!d||e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),d(t))},g=u&&t.length?u.pageIndex*u.pageSize+1:0,_=u?Math.min(u.pageIndex*u.pageSize+t.length,u.total):0;return(0,G.jsxs)(`div`,{className:`studio-data-table`,"aria-busy":a||void 0,"data-state":a?`loading`:o?`error`:t.length?`ready`:`empty`,children:[(0,G.jsxs)(`div`,{className:`studio-data-table-scroll data-scroll-region`,children:[!a&&!o&&(0,G.jsxs)(`table`,{style:{minWidth:hm(i)},children:[r&&(0,G.jsx)(`caption`,{className:`sr-only`,children:r}),(0,G.jsx)(`thead`,{children:m.getHeaderGroups().map(t=>(0,G.jsx)(`tr`,{children:t.headers.map((t,n)=>{let r=e[n],i={width:hm(r?.width),minWidth:hm(r?.minWidth)};return(0,G.jsx)(`th`,{className:r?.headerClassName,style:i,children:t.isPlaceholder?null:(0,G.jsx)(m.FlexRender,{header:t})},t.id)})},t.id))}),(0,G.jsx)(`tbody`,{children:m.getRowModel().rows.map(t=>(0,G.jsx)(`tr`,{className:d?`is-interactive`:void 0,tabIndex:d?0:void 0,"aria-label":f?.(t.original),onKeyDown:e=>h(e,t.original),onClick:e=>{d&&!gm(e.target)&&d(t.original)},children:t.getAllCells().map((t,n)=>(0,G.jsx)(`td`,{className:e[n]?.className,children:(0,G.jsx)(m.FlexRender,{cell:t})},t.id))},t.id))})]}),a&&(0,G.jsxs)(`div`,{className:`studio-data-table-state is-loading`,role:`status`,children:[(0,G.jsx)(`span`,{className:`sr-only`,children:`正在加载`}),(0,G.jsx)(`div`,{className:`studio-table-skeleton`,"aria-hidden":`true`,children:[0,1,2,3].map(e=>(0,G.jsxs)(`div`,{className:`studio-table-skeleton-row`,children:[(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{})]},e))}),(0,G.jsxs)(`span`,{className:`studio-table-loading-copy`,children:[(0,G.jsx)(Ne,{className:`animate-spin`,size:14}),` 正在加载`]})]}),!a&&o&&(0,G.jsxs)(`div`,{className:`studio-data-table-state is-error`,role:`alert`,children:[(0,G.jsx)(U,{size:20}),(0,G.jsx)(`strong`,{children:`加载失败`}),(0,G.jsx)(`span`,{children:o}),c&&(0,G.jsx)(`button`,{className:`button secondary small`,type:`button`,onClick:c,children:`重新加载`})]}),!a&&!o&&t.length===0&&(0,G.jsxs)(`div`,{className:`studio-data-table-state empty-state${l.action?``:` inline`}`,children:[l.icon&&(0,G.jsx)(`span`,{className:`empty-icon`,children:l.icon}),(0,G.jsx)(`h2`,{children:l.title}),l.description&&(0,G.jsx)(`p`,{children:l.description}),l.action]})]}),u&&!a&&!o&&(0,G.jsxs)(`footer`,{className:`studio-data-table-pagination`,children:[(0,G.jsxs)(`span`,{children:[`第 `,u.pageIndex+1,` 页 · `,g,`–`,_,` / `,u.total,` 条`]}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`button`,{className:`button tertiary small`,type:`button`,disabled:u.pageIndex<=0,onClick:u.onPreviousPage,children:[(0,G.jsx)(ee,{size:14}),`上一页`]}),(0,G.jsxs)(`button`,{className:`button tertiary small`,type:`button`,disabled:!u.hasNextPage,onClick:u.onNextPage,children:[`下一页`,(0,G.jsx)(te,{size:14})]})]})]})]})}var vm=Object.defineProperty,ym=(e,t)=>vm(e,`name`,{value:t,configurable:!0});function bm(e,[t,n]){return Math.min(n,Math.max(t,e))}ym(bm,`clamp`);var xm=Object.defineProperty,Sm=(e,t)=>xm(e,`name`,{value:t,configurable:!0});function Cm(e){let t=s.useRef({value:e,previous:e});return s.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}Sm(Cm,`usePrevious`);var wm=Object.defineProperty,Tm=(e,t)=>wm(e,`name`,{value:t,configurable:!0}),Em=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),Dm=s.forwardRef(Tm(function(e,t){return(0,G.jsx)(Tn.span,{...e,ref:t,style:{...Em,...e.style}})},`VisuallyHidden`)),Om=Object.defineProperty,km=(e,t)=>Om(e,`name`,{value:t,configurable:!0}),Am=[` `,`Enter`,`ArrowUp`,`ArrowDown`],jm=[` `,`Enter`],Mm=`Select`,[Nm,Pm,Fm]=Ma(Mm),[Im,Lm]=zt(Mm,[Fm,mc]),Rm=mc(),[zm,Bm]=Im(Mm),[Vm,Hm]=Im(Mm);function Um(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:c,onValueChange:l,dir:u,name:d,autoComplete:f,disabled:p,required:m,form:h,internal_do_not_use_render:g}=e,_=Rm(t),[v,y]=s.useState(null),[b,x]=s.useState(null),[S,C]=s.useState(!1),w=Ka(u),[T,E]=tn({prop:r,defaultProp:i??!1,onChange:a,caller:Mm}),[D,O]=tn({prop:o,defaultProp:c,onChange:l,caller:Mm}),k=s.useRef(null),A=s.useRef(D);s.useEffect(()=>{let e=h?v?.ownerDocument.getElementById(h):v?.form;if(e instanceof HTMLFormElement){let t=km(()=>O(A.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[h,v,O]);let j=!v||!!h||!!v.closest(`form`),[M,N]=s.useState(new Set),P=Kt(),F=Array.from(M).map(e=>e.props.value).join(`;`),I=s.useCallback(e=>{N(t=>new Set(t).add(e))},[]),L=s.useCallback(e=>{N(t=>{let n=new Set(t);return n.delete(e),n})},[]),R={required:m,trigger:v,onTriggerChange:y,valueNode:b,onValueNodeChange:x,valueNodeHasChildren:S,onValueNodeHasChildrenChange:C,contentId:P,value:D,onValueChange:O,open:T,onOpenChange:E,dir:w,triggerPointerDownPosRef:k,disabled:p,name:d,autoComplete:f,form:h,nativeOptions:M,nativeSelectKey:F,isFormControl:j};return(0,G.jsx)(Ac,{..._,children:(0,G.jsx)(zm,{scope:t,...R,children:(0,G.jsx)(Nm.Provider,{scope:t,children:(0,G.jsx)(Vm,{scope:t,onNativeOptionAdd:I,onNativeOptionRemove:L,children:Ah(g)?g(R):n})})})})}km(Um,`SelectProvider`);var Wm=km(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,G.jsx)(Um,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,G.jsxs)(G.Fragment,{children:[n,e?(0,G.jsx)(kh,{__scopeSelect:t}):null]})})},`Select`),Gm=`SelectTrigger`,Km=s.forwardRef(km(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=Rm(n),o=Bm(Gm,n),c=o.disabled||r,l=Ft(t,o.onTriggerChange),u=Pm(n),d=s.useRef(`touch`),[f,p,m]=Mh(e=>{let t=u().filter(e=>!e.disabled),n=Nh(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),h=km(e=>{c||(o.onOpenChange(!0),m()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,G.jsx)(jc,{asChild:!0,...a,children:(0,G.jsx)(Tn.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:c,"data-disabled":c?``:void 0,"data-placeholder":jh(o.value)?``:void 0,...i,ref:l,onClick:K(i.onClick,e=>{e.currentTarget.focus(),d.current!==`mouse`&&h(e)}),onPointerDown:K(i.onPointerDown,e=>{d.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(h(e),e.preventDefault())}),onKeyDown:K(i.onKeyDown,e=>{let t=f.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&p(e.key),!(t&&e.key===` `)&&Am.includes(e.key)&&(h(),e.preventDefault())})})})},`SelectTrigger`)),qm=`SelectValue`,Jm=s.forwardRef(km(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...c}=e,l=Bm(qm,n),{onValueNodeHasChildrenChange:u}=l,d=a!==void 0,f=Ft(t,l.onValueNodeChange);Vt(()=>{u(d)},[u,d]);let p=jh(l.value);return(0,G.jsx)(Tn.span,{...c,asChild:!p&&c.asChild,ref:f,style:{pointerEvents:`none`},children:(0,G.jsx)(s.Fragment,{children:p?o:a},p?`placeholder`:`value`)})},`SelectValue`)),Ym=s.forwardRef(km(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,G.jsx)(Tn.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[Xm,Zm]=Im(`SelectPortal`,{forceMount:void 0}),Qm=km(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,G.jsx)(Xm,{scope:e.__scopeSelect,forceMount:n,children:(0,G.jsx)(cr,{asChild:!0,...r})})},`SelectPortal`),$m=`SelectContent`,eh=s.forwardRef(km(function(e,t){let n=Zm($m,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=Bm($m,e.__scopeSelect),[o,c]=s.useState();return Vt(()=>{c(new DocumentFragment)},[]),(0,G.jsx)(fr,{present:r||a.open,children:({present:e})=>e?(0,G.jsx)(oh,{...i,ref:t}):(0,G.jsx)(th,{...i,fragment:o})})},`SelectContent`)),th=s.forwardRef(km(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?sn.createPortal((0,G.jsx)(rh,{scope:n,children:(0,G.jsx)(Nm.Slot,{scope:n,children:(0,G.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),nh=10,[rh,ih]=Im($m),ah=un(`SelectContent.RemoveScroll`),oh=s.forwardRef(km(function(e,t){let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:c,sideOffset:l,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:m,sticky:h,hideWhenDetached:g,avoidCollisions:_,...v}=e,y=Bm($m,n),[b,x]=s.useState(null),[S,C]=s.useState(null),w=Ft(t,x),[T,E]=s.useState(null),[D,O]=s.useState(null),k=Pm(n),[A,j]=s.useState(!1),M=s.useRef(!1);s.useEffect(()=>{if(b)return Wi(b)},[b]),Cr();let N=s.useCallback(e=>{let[t,...n]=k().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&S&&(S.scrollTop=0),n===r&&S&&(S.scrollTop=S.scrollHeight),n?.focus(),document.activeElement!==i))return},[k,S]),P=s.useCallback(()=>N([T,b]),[N,T,b]);s.useEffect(()=>{A&&P()},[A,P]);let{onOpenChange:F,triggerPointerDownPosRef:I}=y;s.useEffect(()=>{if(b){let e={x:0,y:0},t=km(t=>{e={x:Math.abs(Math.round(t.pageX)-(I.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(I.current?.y??0))}},`handlePointerMove`),n=km(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(b)||F(!1),document.removeEventListener(`pointermove`,t),I.current=null},`handlePointerUp`);return I.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[b,F,I]),s.useEffect(()=>{let e=km(()=>F(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[F]);let[L,R]=Mh(e=>{let t=k().filter(e=>!e.disabled),n=Nh(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),z=s.useCallback((e,t,n)=>{let r=!M.current&&!n;(y.value!==void 0&&y.value===t||r)&&(E(e),r&&(M.current=!0))},[y.value]),B=s.useCallback(()=>b?.focus(),[b]),V=s.useCallback((e,t,n)=>{let r=!M.current&&!n;(y.value!==void 0&&y.value===t||r)&&O(e)},[y.value]),H=r===`popper`?ch:sh,ee=H===ch?{side:c,sideOffset:l,align:u,alignOffset:d,arrowPadding:f,collisionBoundary:p,collisionPadding:m,sticky:h,hideWhenDetached:g,avoidCollisions:_}:{};return(0,G.jsx)(rh,{scope:n,content:b,viewport:S,onViewportChange:C,itemRefCallback:z,selectedItem:T,onItemLeave:B,itemTextRefCallback:V,focusSelectedItem:P,selectedItemText:D,position:r,isPositioned:A,searchRef:L,children:(0,G.jsx)(Fi,{as:ah,allowPinchZoom:!0,children:(0,G.jsx)(Yn,{asChild:!0,trapped:y.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:K(i,e=>{y.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,G.jsx)(Ln,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>y.onOpenChange(!1),children:(0,G.jsx)(H,{role:`listbox`,id:y.contentId,"data-state":y.open?`open`:`closed`,dir:y.dir,onContextMenu:e=>e.preventDefault(),...v,...ee,onPlaced:()=>j(!0),ref:w,style:{display:`flex`,flexDirection:`column`,outline:`none`,...v.style},onKeyDown:K(v.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&R(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=k().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>N(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),sh=s.forwardRef(km(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=Bm($m,n),o=ih($m,n),[c,l]=s.useState(null),[u,d]=s.useState(null),f=Ft(t,d),p=Pm(n),m=s.useRef(!1),h=s.useRef(!0),{viewport:g,selectedItem:_,selectedItemText:v,focusSelectedItem:y}=o,b=s.useCallback(()=>{if(a.trigger&&a.valueNode&&c&&u&&g&&_&&v){let e=a.trigger.getBoundingClientRect(),t=u.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=v.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,s=e.width+o,l=Math.max(s,t.width),u=window.innerWidth-nh,d=bm(a,[nh,Math.max(nh,u-l)]);c.style.minWidth=s+`px`,c.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,s=e.width+o,l=Math.max(s,t.width),u=window.innerWidth-nh,d=bm(a,[nh,Math.max(nh,u-l)]);c.style.minWidth=s+`px`,c.style.right=d+`px`}let o=p(),s=window.innerHeight-nh*2,l=g.scrollHeight,d=window.getComputedStyle(u),f=parseInt(d.borderTopWidth,10),h=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=f+h+l+b+y,S=Math.min(_.offsetHeight*5,x),C=window.getComputedStyle(g),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-nh,D=s-E,O=_.offsetHeight/2,k=_.offsetTop+O,A=f+h+k,j=x-A;if(A<=E){let e=o.length>0&&_===o[o.length-1].ref.current;c.style.bottom=`0px`;let t=u.clientHeight-g.offsetTop-g.offsetHeight,n=A+Math.max(D,O+(e?T:0)+t+y);c.style.height=n+`px`}else{let e=o.length>0&&_===o[0].ref.current;c.style.top=`0px`;let t=Math.max(E,f+g.offsetTop+(e?w:0)+O)+j;c.style.height=t+`px`,g.scrollTop=A-E+g.offsetTop}c.style.margin=`${nh}px 0`,c.style.minHeight=S+`px`,c.style.maxHeight=s+`px`,r?.(),requestAnimationFrame(()=>m.current=!0)}},[p,a.trigger,a.valueNode,c,u,g,_,v,a.dir,r]);Vt(()=>b(),[b]);let[x,S]=s.useState();Vt(()=>{u&&S(window.getComputedStyle(u).zIndex)},[u]);let C=s.useCallback(e=>{e&&h.current===!0&&(b(),y?.(),h.current=!1)},[b,y]);return(0,G.jsx)(lh,{scope:n,contentWrapper:c,shouldExpandOnScrollRef:m,onScrollButtonChange:C,children:(0,G.jsx)(`div`,{ref:l,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:x},children:(0,G.jsx)(Tn.div,{...i,ref:f,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),ch=s.forwardRef(km(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=nh,...a}=e,o=Rm(n);return(0,G.jsx)(Mc,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[lh,uh]=Im($m,{}),dh=`SelectViewport`,fh=s.forwardRef(km(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=ih(dh,n),o=uh(dh,n),c=Ft(t,a.onViewportChange),l=s.useRef(0);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,G.jsx)(Nm.Slot,{scope:n,children:(0,G.jsx)(Tn.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:c,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:K(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(l.current-t.scrollTop);if(e>0){let r=window.innerHeight-nh*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}l.current=t.scrollTop})})})]})},`SelectViewport`)),[ph,mh]=Im(`SelectGroup`),hh=`SelectItem`,[gh,_h]=Im(hh),vh=s.forwardRef(km(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,c=Bm(hh,n),l=ih(hh,n),u=c.value===r,[d,f]=s.useState(a??``),[p,m]=s.useState(!1),h=Ft(t,kn(e=>l.itemRefCallback?.(e,r,i))),g=Kt(),_=s.useRef(`touch`),v=km(()=>{i||(c.onValueChange(r),c.onOpenChange(!1))},`handleSelect`);return(0,G.jsx)(gh,{scope:n,value:r,disabled:i,textId:g,isSelected:u,onItemTextChange:s.useCallback(e=>{f(t=>t||(e?.textContent??``).trim())},[]),children:(0,G.jsx)(Nm.ItemSlot,{scope:n,value:r,disabled:i,textValue:d,children:(0,G.jsx)(Tn.div,{role:`option`,"aria-labelledby":g,"data-highlighted":p?``:void 0,"aria-selected":u&&p,"data-state":u?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:h,onFocus:K(o.onFocus,()=>m(!0)),onBlur:K(o.onBlur,()=>m(!1)),onClick:K(o.onClick,()=>{_.current!==`mouse`&&v()}),onPointerUp:K(o.onPointerUp,()=>{_.current===`mouse`&&v()}),onPointerDown:K(o.onPointerDown,e=>{_.current=e.pointerType}),onPointerMove:K(o.onPointerMove,e=>{_.current=e.pointerType,i?l.onItemLeave?.():_.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:K(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:K(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(l.searchRef?.current===``||e.key!==` `)&&(jm.includes(e.key)&&v(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),yh=`SelectItemText`,bh=s.forwardRef(km(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=Bm(yh,n),c=ih(yh,n),l=_h(yh,n),u=Hm(yh,n),[d,f]=s.useState(null),p=kn(e=>c.itemTextRefCallback?.(e,l.value,l.disabled)),m=Ft(t,f,l.onItemTextChange,p),h=d?.textContent,g=s.useMemo(()=>(0,G.jsx)(`option`,{value:l.value,disabled:l.disabled,children:h},l.value),[l.disabled,l.value,h]),{onNativeOptionAdd:_,onNativeOptionRemove:v}=u;return Vt(()=>(_(g),()=>v(g)),[_,v,g]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Tn.span,{id:l.textId,...a,ref:m}),l.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!jh(o.value)?sn.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),xh=`SelectItemIndicator`,Sh=s.forwardRef(km(function(e,t){let{__scopeSelect:n,...r}=e;return _h(xh,n).isSelected?(0,G.jsx)(Tn.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),Ch=`SelectScrollUpButton`,wh=s.forwardRef(km(function(e,t){let n=ih(Ch,e.__scopeSelect),r=uh(Ch,e.__scopeSelect),[i,a]=s.useState(!1),o=Ft(t,r.onScrollButtonChange);return Vt(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};km(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,G.jsx)(Dh,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),Th=`SelectScrollDownButton`,Eh=s.forwardRef(km(function(e,t){let n=ih(Th,e.__scopeSelect),r=uh(Th,e.__scopeSelect),[i,a]=s.useState(!1),o=Ft(t,r.onScrollButtonChange);return Vt(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};km(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,G.jsx)(Dh,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),Dh=s.forwardRef(km(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=ih(`SelectScrollButton`,n),o=s.useRef(null),c=Pm(n),l=s.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return s.useEffect(()=>()=>l(),[l]),Vt(()=>{c().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[c]),(0,G.jsx)(Tn.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:K(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:K(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:K(i.onPointerLeave,()=>{l()})})},`SelectScrollButtonImpl`)),Oh=`SelectBubbleInput`,kh=s.forwardRef(km(function({__scopeSelect:e,...t},n){let r=Bm(Oh,e),{value:i,onValueChange:a,required:o,disabled:c,name:l,autoComplete:u,form:d}=r,{nativeOptions:f,nativeSelectKey:p}=r,m=s.useRef(null),h=Ft(n,m),g=i??``,_=Cm(g),v=Array.from(f).some(e=>(e.props.value??``)===``);return s.useEffect(()=>{let e=m.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(_!==g&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,g),e.dispatchEvent(t)}},[_,g]),(0,G.jsxs)(Tn.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:l,autoComplete:u,disabled:c,form:d,onChange:e=>a(e.target.value),...t,style:{...Em,...t.style},ref:h,defaultValue:g,children:[jh(i)&&!v?(0,G.jsx)(`option`,{value:``}):null,Array.from(f)]},p)},`SelectBubbleInput`));function Ah(e){return typeof e==`function`}km(Ah,`isFunction`);function jh(e){return e===``||e===void 0}km(jh,`shouldShowPlaceholder`);function Mh(e){let t=kn(e),n=s.useRef(``),r=s.useRef(0),i=s.useCallback(e=>{let i=n.current+e;t(i),km((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=s.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return s.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}km(Mh,`useTypeaheadSearch`);function Nh(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Ph(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}km(Nh,`findNextItem`);function Ph(e,t){return e.map((n,r)=>e[(t+r)%e.length])}km(Ph,`wrapArray`);function Fh({id:e,ariaLabel:t,value:n,placeholder:r=`请选择`,options:i,disabled:a=!1,className:o=``,onValueChange:c}){let[l,u]=(0,s.useState)(!1),d=i.find(e=>e.value===n);return(0,G.jsxs)(Wm,{value:n||void 0,open:l,disabled:a,onOpenChange:u,onValueChange:e=>{u(!1),c(e)},children:[(0,G.jsxs)(Km,{id:e,className:`studio-select-trigger${o?` ${o}`:``}`,"aria-label":t,title:d?.label||r,children:[(0,G.jsx)(Jm,{placeholder:r,children:d?.label}),(0,G.jsx)(Ym,{className:`studio-select-chevron`,children:(0,G.jsx)(H,{size:15})})]}),(0,G.jsx)(Qm,{children:(0,G.jsxs)(eh,{className:`studio-select-content`,position:`popper`,sideOffset:5,collisionPadding:10,children:[(0,G.jsx)(wh,{className:`studio-select-scroll`,children:(0,G.jsx)(ne,{size:14})}),(0,G.jsx)(fh,{className:`studio-select-viewport`,children:i.map(e=>(0,G.jsxs)(vh,{value:e.value,disabled:e.disabled,className:`studio-select-item`,children:[(0,G.jsx)(bh,{children:(0,G.jsxs)(`span`,{className:`studio-select-item-copy`,children:[(0,G.jsx)(`span`,{children:e.label}),e.description&&(0,G.jsx)(`small`,{children:e.description})]})}),(0,G.jsx)(Sh,{className:`studio-select-check`,children:(0,G.jsx)(V,{size:14})})]},e.value))}),(0,G.jsx)(Eh,{className:`studio-select-scroll`,children:(0,G.jsx)(H,{size:14})})]})})]})}function Ih(e){return e.spec?.runtime?.type===`codex`}function Lh({agents:e,runtimeReady:t,runtimeChecked:n=!0,workspaceName:r,onCreate:i,onDetail:a,onChat:o,onBuild:c,onChanged:l}){let[u,d]=(0,s.useState)(``),[f,p]=(0,s.useState)(``),[m,h]=(0,s.useState)(0),[_,v]=(0,s.useState)(0),[y,b]=(0,s.useState)(null),[x,S]=(0,s.useState)(!1),[C,w]=(0,s.useState)(``);(0,s.useEffect)(()=>{Promise.all([g(`/api/v1/catalog/resources?limit=200`).then(e=>e.json()),g(`/api/v1/catalog/models`).then(e=>e.json()).catch(()=>null)]).then(([e,t])=>{let n=e.items||[],r=n.filter(e=>e.kind===`model`);t?.items?.length&&(r=[...r.filter(e=>e.source===`local`||e.source===`market`),...t.items]),h(r.filter(e=>e.status===`ready`).length),v(n.filter(e=>[`tool`,`mcp`,`skill`].includes(e.kind)&&e.status===`ready`).length)}).catch(()=>{})},[]);let T=(0,s.useMemo)(()=>e.filter(e=>{let t=!!e.builds?.some(e=>e.status===`SUCCEEDED`),n=u.trim().toLowerCase();return(!n||e.metadata.name.toLowerCase().includes(n)||e.metadata.id.toLowerCase().includes(n))&&(!f||f===`built`&&t||f===`draft`&&!t)}),[e,u,f]),E=(0,s.useMemo)(()=>[{id:`agent`,header:`Agent`,minWidth:220,className:`agent-name-column`,headerClassName:`agent-name-column`,cell:e=>{let t=e.metadata.labels?.[`agentkit.ksyun.com/template`]||`blank`;return(0,G.jsxs)(`div`,{className:`agent-cell`,children:[(0,G.jsx)(Ct,{name:e.metadata.name,appearance:e.metadata.appearance,template:t}),(0,G.jsxs)(`div`,{className:`agent-cell-copy`,children:[(0,G.jsx)(`strong`,{children:e.metadata.name}),(0,G.jsx)(`span`,{children:e.metadata.id})]})]})}},{id:`template`,header:`运行时`,minWidth:100,className:`agent-runtime-column`,headerClassName:`agent-runtime-column`,cell:e=>{let t=e.spec?.runtime?.type||e.metadata.labels?.[`agentkit.ksyun.com/framework`]||`adk`;return(0,G.jsx)(`span`,{className:`tag mono`,children:t})}},{id:`capabilities`,header:`能力`,minWidth:170,className:`agent-capabilities-column`,headerClassName:`agent-capabilities-column`,cell:e=>{let t=e.spec?.bindings||{};return(0,G.jsxs)(`div`,{className:`resource-counts`,children:[(0,G.jsxs)(`span`,{children:[t.tools?.length||0,` Tool`]}),(0,G.jsxs)(`span`,{children:[t.mcpServers?.length||0,` MCP`]}),(0,G.jsxs)(`span`,{children:[t.skills?.length||0,` Skill`]})]})}},{id:`revision`,header:`Revision`,width:84,className:`agent-revision-column`,headerClassName:`agent-revision-column`,cell:e=>(0,G.jsxs)(`span`,{className:`mono`,children:[`r`,e.metadata.revision]})},{id:`build`,header:`最近校验 / 构建`,width:108,className:`agent-build-column`,headerClassName:`agent-build-column`,cell:e=>e.builds?.some(e=>e.status===`SUCCEEDED`)?(0,G.jsx)(`span`,{className:`badge`,"data-state":`ready`,children:Ih(e)?`声明已校验`:`已构建`}):(0,G.jsx)(`span`,{className:`badge`,"data-state":`idle`,children:`草稿`})},{id:`actions`,header:`操作`,minWidth:108,className:`actions-column agent-actions-column`,headerClassName:`actions-column agent-actions-column`,cell:e=>(0,G.jsxs)(`div`,{className:`row-actions`,children:[(0,G.jsx)(`button`,{className:`button secondary small`,type:`button`,onClick:()=>o(e.metadata.id),children:`会话`}),(0,G.jsx)(yd,{label:`${e.metadata.name} 的更多操作`,items:[{label:`配置`,onSelect:()=>a(e.metadata.id)},{label:Ih(e)?`校验声明`:`构建`,onSelect:c}]}),(0,G.jsx)(`button`,{className:`icon-button danger-ghost`,type:`button`,"aria-label":`删除 ${e.metadata.name}`,title:`删除`,onClick:()=>b(e),children:(0,G.jsx)(ht,{size:15})})]})}],[c,o,a]);async function D(){if(y){S(!0),w(``);try{let e=await g(`/api/v1/agents/${encodeURIComponent(y.metadata.id)}`,{method:`DELETE`});if(!e.ok){let t=await e.text().catch(()=>``),n=`删除失败(${e.status})`;try{n=JSON.parse(t)?.error?.message||n}catch{}throw Error(n)}}catch(e){w(e.message||`删除失败`)}S(!1),b(null),l()}}return(0,G.jsxs)(`div`,{className:`page-container agents-page`,"data-layout":`data`,children:[(0,G.jsx)(Sd,{children:(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,disabled:!t,onClick:i,children:[(0,G.jsx)(Qe,{size:16}),(0,G.jsx)(`span`,{children:`创建 Agent`})]})}),(0,G.jsxs)(`div`,{className:`data-page-body table-data-body`,children:[C&&(0,G.jsx)(`div`,{className:`form-error`,style:{marginBottom:16},children:C}),(0,G.jsxs)(`section`,{className:`agents-overview-section`,"aria-labelledby":`agents-overview-title`,title:r||`本地工作区`,children:[(0,G.jsx)(`h2`,{id:`agents-overview-title`,className:`sr-only`,children:`工作区概览`}),(0,G.jsxs)(`div`,{className:`stat-strip compact-summary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`Agent`}),(0,G.jsx)(`strong`,{className:`stat-value`,children:e.length})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`可用模型`}),(0,G.jsx)(`strong`,{className:`stat-value`,children:m})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`能力资源`}),(0,G.jsx)(`strong`,{className:`stat-value`,children:_})]}),(0,G.jsxs)(`div`,{className:`runtime-summary`,"data-state":n?t?`ready`:`failed`:`pending`,children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`本地 Runtime`}),(0,G.jsxs)(`strong`,{className:`stat-value`,children:[(0,G.jsx)(`span`,{className:`summary-status-dot`}),n?t?`正常`:`连接失败`:`检查中`]})]})]}),n&&!t&&(0,G.jsxs)(`div`,{className:`compact-status-alert`,role:`alert`,children:[(0,G.jsx)(`strong`,{children:`本地 Runtime 连接失败`}),(0,G.jsx)(`span`,{children:`请确认本地服务正在运行,然后刷新页面。`})]})]}),(0,G.jsxs)(`section`,{className:`agents-catalog-section block`,"aria-labelledby":`agents-catalog-title`,children:[(0,G.jsxs)(`header`,{className:`agents-catalog-header`,children:[(0,G.jsx)(`h2`,{id:`agents-catalog-title`,children:`Agent 列表`}),(0,G.jsxs)(`div`,{className:`agents-catalog-meta`,children:[(0,G.jsx)(`span`,{children:T.length===e.length?`${e.length} 个 Agent`:`${T.length} / ${e.length} 个 Agent`}),(0,G.jsx)(`span`,{className:`sync-state`,children:`已同步`})]})]}),(0,G.jsxs)(`div`,{className:`section-toolbar`,children:[(0,G.jsxs)(`div`,{className:`search-field`,children:[(0,G.jsx)(tt,{size:15}),(0,G.jsx)(`input`,{type:`search`,placeholder:`搜索 Agent 名称或 ID`,"aria-label":`搜索 Agent`,value:u,onChange:e=>d(e.target.value)})]}),(0,G.jsx)(Fh,{className:`compact-select`,ariaLabel:`筛选 Agent 状态`,value:f||`__all__`,options:[{value:`__all__`,label:`全部状态`},{value:`built`,label:`已构建`},{value:`draft`,label:`草稿`}],onValueChange:e=>p(e===`__all__`?``:e)})]}),(0,G.jsx)(_m,{columns:E,data:T,getRowId:e=>e.metadata.id,caption:`Agent 列表`,minWidth:0,onRowActivate:e=>a(e.metadata.id),rowAriaLabel:e=>`${e.metadata.name} ${e.metadata.id}`,empty:{icon:(0,G.jsx)(N,{size:24}),title:u||f?`没有匹配的 Agent`:`还没有 Agent`,description:u||f?`调整搜索词或状态筛选。`:`创建第一个可运行的 Agent。`,action:!u&&!f?(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:i,children:[(0,G.jsx)(Qe,{size:16}),(0,G.jsx)(`span`,{children:`创建 Agent`})]}):void 0}})]})]}),y&&(0,G.jsx)(ka,{title:`确认删除 Agent「${y.metadata.name}」?`,description:`Agent ID:${y.metadata.id}。删除后其配置与 Revision 将移除,此操作不可撤销。`,confirmText:`确认删除`,busy:x,onConfirm:D,onCancel:()=>b(null)})]})}var Rh=e=>e.type===`checkbox`,zh=e=>e.type===`file`,Bh=e=>e instanceof Date,Vh=e=>e==null,Hh=e=>typeof e==`object`,Uh=e=>!Vh(e)&&!Array.isArray(e)&&Hh(e)&&!Bh(e),Wh=e=>Uh(e)&&e.target?Rh(e.target)?e.target.checked:zh(e.target)?e.target.files:e.target.value:e,Gh=(e,t)=>t.split(`.`).some((t,n,r)=>!isNaN(Number(t))&&e.has(r.slice(0,n).join(`.`))),Kh=e=>{let t=e.constructor&&e.constructor.prototype;return Uh(t)&&t.hasOwnProperty(`isPrototypeOf`)},qh=typeof window<`u`&&window.HTMLElement!==void 0&&typeof document<`u`;function Jh(e){if(e instanceof Date)return new Date(e);let t=typeof FileList<`u`&&e instanceof FileList;if(qh&&(e instanceof Blob||t))return e;let n=Array.isArray(e);if(!n&&!(Uh(e)&&Kh(e)))return e;let r=n?[]:Object.create(Object.getPrototypeOf(e));for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=Jh(e[t]));return r}var Yh={BLUR:`blur`,FOCUS_OUT:`focusout`,CHANGE:`change`,SUBMIT:`submit`,TRIGGER:`trigger`,VALID:`valid`},Xh={onBlur:`onBlur`,onChange:`onChange`,onSubmit:`onSubmit`,onTouched:`onTouched`,all:`all`},Zh={max:`max`,min:`min`,maxLength:`maxLength`,minLength:`minLength`,pattern:`pattern`,required:`required`,validate:`validate`},Qh=`root`,$h=[`__proto__`,`constructor`,`prototype`],eg=/^\w*$/,tg=e=>eg.test(e),ng=e=>e===void 0,rg=/[.[\]'"]/,ig=e=>e.split(rg).filter(Boolean),q=(e,t,n)=>{if(!t||!Uh(e))return n;let r=tg(t)?[t]:ig(t);if(r.some(e=>$h.includes(e)))return n;let i=r.reduce((e,t)=>Vh(e)?void 0:e[t],e);return ng(i)||i===e?ng(e[t])?n:e[t]:i},ag=e=>typeof e==`boolean`,og=e=>typeof e==`function`,sg=(e,t,n)=>{let r=-1,i=tg(t)?[t]:ig(t),a=i.length,o=a-1;for(;++r<a;){let t=i[r],a=n;if(r!==o){let n=e[t];a=Uh(n)||Array.isArray(n)?n:isNaN(+i[r+1])?{}:[]}if($h.includes(t))return;e[t]=a,e=e[t]}},cg=s.createContext(null);cg.displayName=`HookFormControlContext`;var lg=(e,t,n,r=!0)=>{let i={};for(let a in e)Object.defineProperty(i,a,{get:()=>{let i=a;return t._proxyFormState[i]!==Xh.all&&(t._proxyFormState[i]=!r||Xh.all),n&&(n[i]=!0),e[i]}});return i},ug=qh?s.useLayoutEffect:s.useEffect,dg=e=>Vh(e)||!Hh(e),fg=(e,t)=>t.length===0&&!Array.isArray(e)&&!Kh(e);function pg(e,t,n=new WeakMap){if(e===t)return!0;if(dg(e)||dg(t))return Object.is(e,t);if(Bh(e)&&Bh(t))return Object.is(e.getTime(),t.getTime());let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;if(fg(e,r)||fg(t,i))return Object.is(e,t);if(!r.length&&Array.isArray(e)!==Array.isArray(t))return!1;let a=n.get(e);if(a&&a.has(t))return!0;if(a)a.add(t);else{let r=new WeakSet;r.add(t),n.set(e,r)}for(let i of r){let r=e[i];if(!(i in t))return!1;if(i!==`ref`){let e=t[i];if(Bh(r)&&Bh(e)||(Uh(r)||Array.isArray(r))&&(Uh(e)||Array.isArray(e))?!pg(r,e,n):!Object.is(r,e))return!1}}return!0}function mg(){let e=s.useRef(!1),t=s.useRef(void 0);return{resyncIfNeeded:s.useCallback((n,r,i)=>{if(n&&e.current){let e=r();pg(t.current,e)||i(e)}e.current=!0},[]),snapshot:s.useCallback((e,n)=>{e&&(t.current=Jh(n()))},[])}}var hg=e=>typeof e==`string`,gg=(e,t,n,r,i)=>hg(e)?(r&&t.watch.add(e),q(n,e,i)):Array.isArray(e)?e.map(e=>(r&&t.watch.add(e),q(n,e))):(r&&(t.watchAll=!0),n),_g=e=>({isOnSubmit:!e||e===Xh.onSubmit,isOnBlur:e===Xh.onBlur,isOnChange:e===Xh.onChange,isOnAll:e===Xh.all,isOnTouch:e===Xh.onTouched}),vg=(e,t,n)=>{if(n)return!1;if(t.watchAll||t.watch.has(e))return!0;for(let n of t.watch)if(e.startsWith(n)&&e.charAt(n.length)===`.`)return!0;return!1},yg=(e,t,n,r)=>{for(let i of n||Object.keys(e)){if(i===`_f`)continue;let a=n?q(e,i):e[i];if(a){let{_f:e}=a;if(e){if(e.refs&&e.refs[0]&&t(e.refs[0],i)&&!r||e.ref&&t(e.ref,e.name)&&!r)return!0;if(yg(a,t))break}else if((Uh(a)||Array.isArray(a))&&yg(a,t))break}}},bg=(e,t,n)=>{let r=q(e,n),i=Array.isArray(r)?r:[];return sg(i,Qh,t[n]),sg(e,n,i),e},xg=e=>Uh(e)&&!Object.keys(e).length,Sg=e=>{if(!qh)return!1;let t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},Cg=e=>e.type===`radio`,wg=e=>e instanceof RegExp,Tg=(e,t,n,r,i)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[r]:i||!0}}:{},Eg={value:!1,isValid:!1},Dg={value:!0,isValid:!0},Og=e=>{if(Array.isArray(e)){if(e.length>1){let t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!ng(e[0].attributes.value)?ng(e[0].value)||e[0].value===``?Dg:{value:e[0].value,isValid:!0}:Dg:Eg}return Eg},kg={isValid:!1,value:null},Ag=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,kg):kg;function jg(e,t,n=`validate`){if(hg(e)||Array.isArray(e)&&e.every(hg)||ag(e)&&!e)return{type:n,message:hg(e)?e:``,ref:t}}var Mg=e=>Uh(e)&&!wg(e)?e:{value:e,message:``},Ng=async(e,t,n,r,i,a)=>{let{ref:o,refs:s,required:c,maxLength:l,minLength:u,min:d,max:f,pattern:p,validate:m,name:h,valueAsNumber:g,mount:_}=e._f,v=q(n,h);if(!_||t.has(h))return{};let y=s?s[0]:o,b=e=>{if(i&&y.reportValidity){let t=ag(e)?``:e||``;s?s.forEach(e=>e.setCustomValidity(t)):y.setCustomValidity(t),y.reportValidity()}},x={},S=Cg(o),C=Rh(o),w=S||C,T=(g||zh(o))&&ng(o.value)&&ng(v)||Sg(o)&&o.value===``||v===``||Array.isArray(v)&&!v.length,E=Tg.bind(null,h,r,x),D=(e,t,n,r=Zh.maxLength,i=Zh.minLength)=>{let a=e?t:n;x[h]={type:e?r:i,message:a,ref:o,...E(e?r:i,a)}};if(a?!Array.isArray(v)||!v.length:c&&(!w&&(T||Vh(v))||ag(v)&&!v||C&&!Og(s).isValid||S&&!Ag(s).isValid)){let{value:e,message:t}=hg(c)?{value:!!c,message:c}:Mg(c);if(e&&(x[h]={type:Zh.required,message:t,ref:y,...E(Zh.required,t)},!r))return b(t),x}if(!T&&(!Vh(d)||!Vh(f))){let e,t,n=Mg(f),i=Mg(d);if(!Vh(v)&&!Bh(v)&&!isNaN(v)){let r=o.valueAsNumber||v&&+v;Vh(n.value)||(e=r>n.value),Vh(i.value)||(t=r<i.value)}else{let r=o.valueAsDate||new Date(v),a=e=>new Date(new Date().toDateString()+` `+e),s=o.type==`time`,c=o.type==`week`;hg(n.value)&&v&&(e=s?a(v)>a(n.value):c?v>n.value:r>new Date(n.value)),hg(i.value)&&v&&(t=s?a(v)<a(i.value):c?v<i.value:r<new Date(i.value))}if((e||t)&&(D(!!e,n.message,i.message,Zh.max,Zh.min),!r))return b(x[h].message),x}if((l||u)&&!T&&(hg(v)||a&&Array.isArray(v))){let e=Mg(l),t=Mg(u),n=!Vh(e.value)&&v.length>+e.value,i=!Vh(t.value)&&v.length<+t.value;if((n||i)&&(D(n,e.message,t.message),!r))return b(x[h].message),x}if(p&&!T&&hg(v)){let{value:e,message:t}=Mg(p);if(wg(e)&&!v.match(e)&&(x[h]={type:Zh.pattern,message:t,ref:o,...E(Zh.pattern,t)},!r))return b(t),x}if(m){if(og(m)){let e=jg(await m(v,n),y);if(e&&(x[h]={...e,...E(Zh.validate,e.message)},!r))return b(e.message),x}else if(Uh(m)){let e={};for(let t in m){if(!xg(e)&&!r)break;let i=jg(await m[t](v,n),y,t);i&&(e={...i,...E(t,i.message)},b(i.message),r&&(x[h]=e))}if(!xg(e)&&(x[h]={ref:y,...e},!r))return x}}return b(!0),x},Pg=e=>Array.isArray(e)?e:[e],Fg=e=>Array.isArray(e)?e.filter(Boolean):[];function Ig(e,t){let n=t.length-1,r=0;for(;r<n;){if(Vh(e)){e=void 0;break}e=e[t[r]],r++}return e}function Lg(e){for(let t in e)if(e.hasOwnProperty(t)&&!ng(e[t]))return!1;return!0}function Rg(e,t){if(hg(t)&&Object.prototype.hasOwnProperty.call(e,t))return delete e[t],e;let n=Array.isArray(t)?t:tg(t)?[t]:ig(t);if(n.some(e=>$h.includes(String(e))))return e;let r=n.length===1?e:Ig(e,n),i=n.length-1,a=n[i];return r&&delete r[a],i!==0&&(Uh(r)&&xg(r)||Array.isArray(r)&&Lg(r))&&Rg(e,n.slice(0,-1)),e}var zg=e=>{let t={};for(let n of Object.keys(e))if(Hh(e[n])&&e[n]!==null&&!Bh(e[n])){let r=zg(e[n]);for(let e of Object.keys(r))t[`${n}.${e}`]=r[e]}else t[n]=e[n];return t},Bg=s.createContext(null);Bg.displayName=`HookFormContext`;var Vg=({children:e,watch:t,getValues:n,getFieldState:r,setError:i,clearErrors:a,setValue:o,setValues:c,trigger:l,formState:u,resetField:d,reset:f,resetDefaultValues:p,handleSubmit:m,unregister:h,control:g,register:_,setFocus:v,subscribe:y})=>{let b=s.useMemo(()=>({watch:t,getValues:n,getFieldState:r,setError:i,clearErrors:a,setValue:o,setValues:c,trigger:l,formState:u,resetField:d,reset:f,resetDefaultValues:p,handleSubmit:m,unregister:h,control:g,register:_,setFocus:v,subscribe:y}),[a,g,u,r,n,m,_,f,p,d,i,v,o,c,y,l,h,t]);return s.createElement(Bg.Provider,{value:b},s.createElement(cg.Provider,{value:b.control},e))},Hg=()=>{let e=[];return{get observers(){return e},next:t=>{for(let n of e)n.next&&n.next(t)},subscribe:t=>(e.push(t),{unsubscribe:()=>{e=e.filter(e=>e!==t)}}),unsubscribe:()=>{e=[]}}};function Ug(e,t){let n={};for(let r in e)if(e.hasOwnProperty(r)){let i=e[r],a=t[r];if(i&&Uh(i)&&a){let e=Ug(i,a);Uh(e)&&(n[r]=e)}else e[r]&&(n[r]=a)}return n}var Wg=e=>e.type===`select-multiple`,Gg=e=>Cg(e)||Rh(e),Kg=e=>Sg(e)&&e.isConnected;function qg(e){return Array.isArray(e)||Uh(e)}function Jg(e,t,n=``,r=[]){for(let i in e){let a=n?`${n}.${i}`:i,o=e[i];qg(o)&&qg(q(t,a))?Jg(o,t,a,r):r.push(a)}return r}var Yg=e=>{for(let t in e)if(og(e[t]))return!0;return!1};function Xg(e){return Array.isArray(e)||Uh(e)&&!Yg(e)}function Zg(e){return!!(e&&`_f`in e)}function Qg(e){return Array.isArray(e)?!e.some(e=>!ng(e)):!Object.keys(e).length}function $g(e,t){Array.isArray(e)?e[t]=void 0:delete e[t]}function e_(e,t={},n){for(let r in e){let i=e[r],a=n&&n[r];Xg(i)&&(!Array.isArray(i)||!Zg(a))?(t[r]=Array.isArray(i)?[]:{},e_(i,t[r],a),Qg(t[r])&&$g(t,r)):ng(i)||(t[r]=!0)}return t}function t_(e,t,n,r){n||=e_(t,{},r);for(let i in e){let a=e[i],o=r&&r[i];Xg(a)&&(!Array.isArray(a)||!Zg(o))?(ng(t)||dg(n[i])?n[i]=e_(a,Array.isArray(a)?[]:{},o):t_(a,Vh(t)?{}:t[i],n[i],o),Qg(n[i])&&$g(n,i)):pg(a,t[i])?$g(n,i):n[i]=!0}return n}var n_=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:r})=>ng(e)?e:t?e===``?NaN:e&&+e:n&&hg(e)?new Date(e):r?r(e):e;function r_(e){let t=e.ref;return zh(t)?t.files:Cg(t)?Ag(e.refs).value:Wg(t)?[...t.selectedOptions].map(({value:e})=>e):Rh(t)?Og(e.refs).value:n_(t.value,e)}var i_=(e,t,n,r)=>{let i={};for(let n of e){let e=q(t,n);e&&sg(i,n,e._f)}return{criteriaMode:n,names:[...e],fields:i,shouldUseNativeValidation:r}},a_=e=>ng(e)?e:wg(e)?e.source:Uh(e)?wg(e.value)?e.value.source:e.value:e,o_=`AsyncFunction`,s_=e=>{if(!e||!e.validate)return!1;if(og(e.validate))return e.validate.constructor.name===o_;if(Uh(e.validate)){for(let t in e.validate)if(e.validate[t].constructor.name===o_)return!0}return!1},c_=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate);function l_(e,t,n){let r=q(e,n);if(r||tg(n))return{error:r,name:n};let i=n.split(`.`);for(;i.length;){let r=i.join(`.`),a=q(t,r),o=q(e,r);if(a&&!Array.isArray(a)&&n!==r)return{name:n};if(o&&o.type)return{name:r,error:o};if(o&&o.root&&o.root.type)return{name:`${r}.root`,error:o.root};i.pop()}return{name:n}}var u_=(e,t,n,r)=>{n(e);let i=Object.keys(e).filter(e=>e!==`name`);return!i.length||r&&i.length>=Object.keys(t).length||i.find(e=>t[e]===(!r||Xh.all))},d_=(e,t,n)=>!e||!t||e===t||Pg(e).some(e=>e&&(n?e===t||e.startsWith(t+`.`):e.startsWith(t)||t.startsWith(e))),f_=(e,t,n,r,i)=>i.isOnAll?!1:!n&&i.isOnTouch?!(t||e):(n?r.isOnBlur:i.isOnBlur)?!e:!(n?r.isOnChange:i.isOnChange)||e,p_=(e,t)=>{let n=q(e,t);!Fg(n).length&&!n?.root&&Rg(e,t)},m_={mode:Xh.onSubmit,reValidateMode:Xh.onChange,shouldFocusError:!0},h_=`form`,g_=(e,t)=>{for(let n in e)n in t||delete e[n];Object.assign(e,t)},__={submitCount:0,isDirty:!1,isReady:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{}};function v_(e={}){let t={...m_,...e},n={...Jh(__),isLoading:og(t.defaultValues),errors:t.errors||{},disabled:t.disabled||!1},r={},i=(Uh(t.defaultValues)||Uh(t.values))&&Jh(t.defaultValues||t.values)||{},a=t.shouldUnregister?{}:Jh(i),o={action:!1,actionArrayLengths:new Map,mount:!1,watch:!1,keepIsValid:!1},s={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},c={},l={},u=0,d=_g(t.mode),f=_g(t.reValidateMode),p={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},m={...p},h={...m},g={array:Hg(),state:Hg()},_=0,v=t.criteriaMode===Xh.all,y=(e,t)=>n=>{clearTimeout(l[e]),l[e]=setTimeout(t,n)},b=async e=>{if(!o.keepIsValid&&!t.disabled&&(m.isValid||h.isValid||e)){let e=++_,i;t.resolver?(i=xg((await j()).errors),e===_&&x()):i=await P({fields:r,onlyCheckValid:!0,eventType:Yh.VALID}),e===_&&i!==n.isValid&&g.state.next({isValid:i})}},x=(e,r)=>{!t.disabled&&(m.isValidating||m.validatingFields||h.isValidating||h.validatingFields)&&((e||Array.from(s.mount)).forEach(e=>{e&&(r?sg(n.validatingFields,e,r):Rg(n.validatingFields,e))}),g.state.next({validatingFields:n.validatingFields,isValidating:!xg(n.validatingFields)}))},S=()=>{n.dirtyFields=t_(i,a,void 0,r)},C=(e,i=[],s,c,l=!0,u=!0)=>{if(c&&s&&!t.disabled){if(o.action=!0,!o.actionArrayLengths.has(e)){let t=q(r,e);o.actionArrayLengths.set(e,Array.isArray(t)?t.length:0)}if(u&&Array.isArray(q(r,e))){let t=s(q(r,e),c.argA,c.argB);l&&sg(r,e,t)}if(u&&Array.isArray(q(n.errors,e))){let t=q(n.errors,e),r=t.root,i=s(t,c.argA,c.argB)||t;r&&(i.root=r),l&&sg(n.errors,e,i),p_(n.errors,e)}if((m.touchedFields||h.touchedFields)&&u&&Array.isArray(q(n.touchedFields,e))){let t=s(q(n.touchedFields,e),c.argA,c.argB);l&&sg(n.touchedFields,e,t)}(m.dirtyFields||h.dirtyFields)&&S(),g.state.next({name:e,isDirty:I(e,i),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else sg(a,e,i)},w=(e,t)=>{sg(n.errors,e,t),n.errors={...n.errors},g.state.next({errors:n.errors})},T=e=>{n.errors=e,g.state.next({errors:n.errors,isValid:!1})},E=e=>{let t=tg(e)?[e]:ig(e),n=a,r=i;for(let e=0;e<t.length-1;e++){let i=t[e];if(n=Vh(n)?n:n[i],r=Vh(r)?r:r[i],n===null&&r!==null)return!0}return!1},D=e=>{if(!o.actionArrayLengths.size)return!1;let t=tg(e)?[e]:ig(e),n=a,r=``,i=-1,s=0;for(let e=0;e<t.length;e++){if(Vh(n))return!1;let a=t[e];if(r=r?`${r}.${a}`:a,Array.isArray(n)&&+a>=n.length)return i===-1?!1:e!==i||+a<s;o.actionArrayLengths.has(r)&&(i=e+1,s=o.actionArrayLengths.get(r)),n=n[a]}return!1},O=(t,c,l,u)=>{let d=q(r,t);if(d){if(E(t)||D(t))return;let r=ng(q(a,t)),f=q(a,t,ng(l)?q(i,t):l);ng(f)||u&&u.defaultChecked||c?sg(a,t,c?f:r_(d._f)):z(t,f),o.mount&&!o.action&&(b(),r&&n.isDirty&&(m.isDirty||h.isDirty)&&(I()||(n.isDirty=!1,g.state.next({...n}))),e.shouldUnregister&&r&&!ng(q(a,t))&&vg(t,s)&&(o.watch=!0))}},k=(e,o,s,c,l)=>{let u=!1,d=!1,f={name:e};if(!t.disabled||c===!0){if(!s||c){let t=pg(q(i,e),o);(m.isDirty||h.isDirty)&&(d=n.isDirty,n.isDirty=f.isDirty=!t||I(),u=d!==f.isDirty),d=!!q(n.dirtyFields,e),t===n.isDirty?t?Rg(n.dirtyFields,e):sg(n.dirtyFields,e,!0):g_(n.dirtyFields,t_(i,a,void 0,r)),f.dirtyFields=n.dirtyFields,u||=(m.dirtyFields||h.dirtyFields)&&d!==!t}if(s){let t=q(n.touchedFields,e);t||(sg(n.touchedFields,e,s),f.touchedFields=n.touchedFields,u||=(m.touchedFields||h.touchedFields)&&t!==s)}u&&l&&g.state.next(f)}return u?f:{}},A=(e,r,i,a)=>{let o=q(n.errors,e),s=(m.isValid||h.isValid)&&ag(r)&&n.isValid!==r;if(t.delayError&&i?(c[e]=y(e,()=>w(e,i)),c[e](t.delayError)):(clearTimeout(l[e]),delete c[e],i?sg(n.errors,e,i):Rg(n.errors,e),n.errors={...n.errors}),(i?!pg(o,i):o)||!xg(a)||s){let t={...a,...s&&ag(r)?{isValid:r}:{},errors:n.errors,name:e};n={...n,...t},g.state.next(t)}},j=async e=>(x(e,!0),await t.resolver(a,t.context,i_(e||s.mount,r,t.criteriaMode,t.shouldUseNativeValidation))),M=async e=>{let{errors:t}=await j(e);if(x(e),e){for(let r of e){let e=q(t,r);e?s.array.has(r)&&Uh(e)&&!Object.keys(e).some(e=>!Number.isNaN(Number(e)))?bg(n.errors,{[r]:e},r):sg(n.errors,r,e):Rg(n.errors,r)}n.errors={...n.errors}}else n.errors=t;return t},N=async({name:t,eventType:r})=>{if(e.validate){let i=await e.validate({formValues:a,formState:n,name:t,eventType:r});if(Uh(i))for(let e in i){let t=i[e];t&&oe(`${h_}.${e}`,{message:hg(t.message)?t.message:``,type:t.type||Zh.validate})}else hg(i)||!i?oe(h_,{message:i||``,type:Zh.validate}):ae(h_);return i}return!0},P=async({fields:r,onlyCheckValid:i,name:o,eventType:c,context:l={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(l.runRootValidation=!0,!await N({name:o,eventType:c})&&(l.valid=!1,i)))return l.valid;for(let o in r){let u=r[o];if(u){let{_f:r,...d}=u;if(r){let o=s.array.has(r.name),c=u._f&&s_(u._f),d=m.validatingFields||m.isValidating||h.validatingFields||h.isValidating;c&&d&&x([r.name],!0);let f=await Ng(u,s.disabled,a,v,t.shouldUseNativeValidation&&!i,o);if(c&&d&&x([r.name]),f[r.name]&&(l.valid=!1,i)||(!i&&(q(f,r.name)?o?bg(n.errors,f,r.name):sg(n.errors,r.name,f[r.name]):Rg(n.errors,r.name)),e.shouldUseNativeValidation&&f[r.name]))break}!xg(d)&&await P({context:l,onlyCheckValid:i,fields:d,name:o,eventType:c})}}return l.valid},F=()=>{for(let e of s.unMount){let t=q(r,e);t&&(t._f.refs?t._f.refs.every(e=>!Kg(e)):!Kg(t._f.ref))&&ue(e)}s.unMount=new Set},I=(e,t)=>(e&&t&&sg(a,e,t),!pg(o.mount?a:i,i)),L=(e,t,n)=>gg(e,s,{...o.mount?a:ng(t)||hg(e)?i:t},n,t),R=e=>Fg(q(o.mount?a:i,e,t.shouldUnregister?q(i,e,[]):[])),z=(e,t,n={},i=!1,o=!1,s=!1)=>{let c=q(r,e),l=t;if(c){let n=c._f;n&&(!n.disabled&&sg(a,e,n_(t,n)),l=Sg(n.ref)&&Vh(t)?``:t,Wg(n.ref)?[...n.ref.options].forEach(e=>e.selected=l.includes(e.value)):n.refs?Rh(n.ref)?n.refs.forEach(e=>{(!e.defaultChecked||!e.disabled)&&(e.checked=Array.isArray(l)?!!l.find(t=>t===e.value):l===e.value||!!l)}):n.refs.forEach(e=>e.checked=e.value===l):zh(n.ref)?n.ref.value=``:(n.ref.value=l,!n.ref.type&&!o&&!s&&g.state.next({name:e,values:i?a:Jh(a)})))}(n.shouldDirty||n.shouldTouch)&&k(e,l,n.shouldTouch,n.shouldDirty,!o),n.shouldValidate&&U(e,{delayError:n.delayError})},B=(e,t,n,i=!1,o=!1,c=!1)=>{s.array.has(e)&&g.array.next({name:e,values:i?a:Jh(a)});for(let a in t){if(!t.hasOwnProperty(a))return;let l=t[a],u=e+`.`+a,d=q(r,u);(s.array.has(e)||Uh(l)||d&&!d._f)&&!Bh(l)?B(u,l,n,i,o,c):z(u,l,n,i,o,c)}},V=(e,t,i,c,l=!1)=>{let u=q(r,e),d=s.array.has(e),f=c?t:Jh(t),p=pg(q(a,e),f);if(p||sg(a,e,f),d)g.array.next({name:e,values:c?a:Jh(a)}),(m.isDirty||m.dirtyFields||h.isDirty||h.dirtyFields)&&i.shouldDirty&&(S(),l||g.state.next({name:e,dirtyFields:n.dirtyFields,isDirty:I(e,f)}));else{let t=Array.isArray(f)&&!f.length||xg(f),n=!p&&!l;!u||u._f||Vh(f)||t?z(e,f,i,c,l,n):B(e,f,i,c,l,n)}if(!p&&!l){let t=vg(e,s),r=c?a:Jh(a);g.state.next({...t&&n,name:o.mount||t?e:void 0,values:r})}},H=(e,t,n={})=>V(e,t,n,!1),ee=(e,t={})=>{let r=og(e)?e(a):e;if(!pg(a,r)){a={...a,...r};let e=zg(r);for(let n of s.mount)n in e&&V(n,e[n],t,!0,!0);g.state.next({...n,name:void 0,type:void 0,...u?{values:a}:{}}),t.shouldValidate&&b()}},te=async i=>{o.mount=!0;let l=i.target,p=l.name,_=!0,y=q(r,p),S=e=>{_=Number.isNaN(e)||Bh(e)&&isNaN(e.getTime())||pg(e,q(a,p,e))};if(y){let o,C,w=l.type?r_(y._f):Wh(i),T=i.type===Yh.BLUR||i.type===Yh.FOCUS_OUT,E=!c_(y._f)&&!e.validate&&!t.resolver&&!q(n.errors,p)&&!y._f.deps,D=E||f_(T,q(n.touchedFields,p),n.isSubmitted,f,d),O=vg(p,s,T);if(sg(a,p,w),T){if(!l||!l.readOnly){y._f.onBlur&&y._f.onBlur(i);let e=c[p];e&&e(0)}}else y._f.onChange&&y._f.onChange(i);let M=k(p,w,T),F=!xg(M)||O;if(!T&&g.state.next({name:p,type:i.type,...u?{values:Jh(a)}:{}}),D)return(!E||!n.isValid)&&(m.isValid||h.isValid)&&(t.mode===`onBlur`?T&&b():T||b()),F&&g.state.next({name:p,...O?{}:M});if(!t.resolver&&e.validate&&await N({name:p,eventType:i.type}),!T&&O&&g.state.next({...n}),t.resolver){let{errors:e}=await j([p]);if(x([p]),S(w),!_){!xg(M)&&g.state.next(M);return}let t=l_(n.errors,r,p),i=l_(e,r,t.name||p);o=i.error,p=i.name,C=xg(e)}else x([p],!0),o=(await Ng(y,s.disabled,a,v,t.shouldUseNativeValidation))[p],x([p]),S(w),_&&(o?C=!1:(m.isValid||h.isValid)&&(C=await P({fields:r,onlyCheckValid:!0,name:p,eventType:i.type})));_&&(y._f.deps&&(!Array.isArray(y._f.deps)||y._f.deps.length>0)&&U(y._f.deps),A(p,C,o,M))}},ne=(e,t)=>{if(q(n.errors,t)&&e.focus)return e.focus(),1},U=async(e,i={})=>{let a,o,u=Pg(e);if(t.resolver){let t=await M(ng(e)?e:u);a=xg(t),o=e?!u.some(e=>q(t,e)):a}else e?(o=(await Promise.all(u.map(async e=>{let t=q(r,e);return await P({fields:t&&t._f?{[e]:t}:t,eventType:Yh.TRIGGER})}))).every(Boolean),!(!o&&!n.isValid)&&b()):o=a=await P({fields:r,name:e,eventType:Yh.TRIGGER});if(i.delayError&&t.delayError&&hg(e)){let r=q(n.errors,e);r?(Rg(n.errors,e),c[e]=y(e,()=>w(e,r)),c[e](t.delayError)):(clearTimeout(l[e]),delete c[e])}return g.state.next({...!hg(e)||(m.isValid||h.isValid)&&a!==n.isValid?{}:{name:e},...t.resolver||!e?{isValid:a}:{},errors:n.errors}),i.shouldFocus&&!o&&yg(r,ne,e?u:s.mount),o},re=(e,t)=>{let r={...o.mount?a:i};return t&&(r=Ug(t.dirtyFields?n.dirtyFields:n.touchedFields,r)),ng(e)?r:hg(e)?q(r,e):e.map(e=>q(r,e))},ie=(e,t)=>({invalid:!!q((t||n).errors,e),isDirty:!!q((t||n).dirtyFields,e),error:q((t||n).errors,e),isValidating:!!q(n.validatingFields,e),isTouched:!!q((t||n).touchedFields,e)}),ae=e=>{let t=e?Pg(e):void 0;t?.forEach(e=>Rg(n.errors,e)),t?t.forEach(e=>{g.state.next({name:e,errors:n.errors})}):(n.errors={},g.state.next({errors:n.errors}))},oe=(e,t,i)=>{let a=(q(r,e,{_f:{}})._f||{}).ref,{ref:o,message:s,type:c,...l}=q(n.errors,e)||{};sg(n.errors,e,{...l,...t,ref:a}),g.state.next({name:e,errors:n.errors,isValid:!1}),i&&i.shouldFocus&&a&&a.focus&&a.focus()},se=(e,t)=>{if(og(e)){u++;let{unsubscribe:n}=g.state.subscribe({next:n=>`values`in n&&e(n.values||L(void 0,t),n)}),r=!1;return{unsubscribe:()=>{r||(r=!0,u--,n())}}}return L(e,t,!0)},ce=e=>{let t=!!e.formState?.values;t&&u++;let{unsubscribe:r}=g.state.subscribe({next:t=>{if(d_(e.name,t.name,e.exact)&&u_(t,e.formState||m,ye,e.reRenderRoot)){let r={...a};e.callback({values:r,...n,...t,defaultValues:i})}}});if(!t)return r;let o=!1;return()=>{o||(o=!0,u--,r())}},le=e=>(o.mount=!0,h={...h,...e.formState},ce({...e,formState:{...p,...e.formState}})),ue=(e,o={})=>{for(let c of e?Pg(e):s.mount)s.mount.delete(c),s.array.delete(c),o.keepValue||(Rg(r,c),Rg(a,c)),!o.keepError&&Rg(n.errors,c),!o.keepDirty&&Rg(n.dirtyFields,c),!o.keepTouched&&Rg(n.touchedFields,c),!o.keepIsValidating&&Rg(n.validatingFields,c),!t.shouldUnregister&&!o.keepDefaultValue&&Rg(i,c);g.state.next({values:Jh(a)}),g.state.next({...n,...o.keepDirty?{isDirty:I()}:{}}),!o.keepIsValid&&b()},de=({disabled:e,name:t})=>{if(ag(e)&&o.mount||e||s.disabled.has(t)){let n=s.disabled.has(t)!==!!e;e?s.disabled.add(t):s.disabled.delete(t),n&&o.mount&&!o.action&&b()}},W=(e,n={})=>{let a=q(r,e),c=ag(n.disabled)||ag(t.disabled),l=!s.registerName.has(e)&&a&&a._f&&!a._f.mount;return sg(r,e,{...a||{},_f:{...a&&a._f?a._f:{ref:{name:e}},name:e,mount:!0,...n}}),s.mount.add(e),a&&!l?de({disabled:ag(n.disabled)?n.disabled:t.disabled,name:e}):O(e,!0,n.value),{...c?{disabled:n.disabled||t.disabled}:{},...t.progressive?{required:!!n.required,min:a_(n.min),max:a_(n.max),minLength:a_(n.minLength),maxLength:a_(n.maxLength),pattern:a_(n.pattern)}:{},name:e,onChange:te,onBlur:te,ref:c=>{if(c){s.registerName.add(e),W(e,n),s.registerName.delete(e),a=q(r,e);let t=ng(c.value)&&c.querySelectorAll&&c.querySelectorAll(`input,select,textarea`)[0]||c,o=Gg(t),l=a._f.refs||[];if(o?l.find(e=>e===t):t===a._f.ref)return;let u={...a._f};o?(u.refs=[...l.filter(Kg),t,...Array.isArray(q(i,e))?[{}]:[]],u.ref={type:t.type,name:e}):(u.ref=t,delete u.refs),sg(r,e,{_f:u}),O(e,!1,void 0,t)}else a=q(r,e,{}),a._f&&(a._f.mount=!1),(t.shouldUnregister||n.shouldUnregister)&&!(Gh(s.array,e)&&o.action)&&s.unMount.add(e)}}},fe=()=>t.shouldFocusError&&!t.shouldUseNativeValidation&&yg(r,ne,s.mount),pe=e=>{ag(e)&&(g.state.next({disabled:e}),yg(r,(t,n)=>{let i=q(r,n);i&&(t.disabled=i._f.disabled||e,Array.isArray(i._f.refs)&&i._f.refs.forEach(t=>{t.disabled=i._f.disabled||e}))},0,!1))},me=(e,i)=>async o=>{let c,l;o&&(o.preventDefault&&o.preventDefault(),o.persist&&o.persist());let u=Jh(a);if(g.state.next({isSubmitting:!0}),t.resolver){let{errors:e,values:t}=await j();x(),n.errors=e,u=Jh(t)}else await P({fields:r,eventType:Yh.SUBMIT});if(s.disabled.size)for(let e of s.disabled)Rg(u,e);if(Rg(n.errors,Qh),xg(n.errors)){g.state.next({errors:{}});try{c=await e(u,o)}catch(e){l=e}}else i&&await i({...n.errors},o),fe(),setTimeout(fe);if(g.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:xg(n.errors)&&!l,submitCount:n.submitCount+1,errors:n.errors}),l)throw l;return c},he=(e,t={})=>{q(r,e)&&(ng(t.defaultValue)?H(e,Jh(q(i,e))):(H(e,t.defaultValue),sg(i,e,Jh(t.defaultValue))),t.keepTouched||Rg(n.touchedFields,e),t.keepDirty||(Rg(n.dirtyFields,e),n.isDirty=t.defaultValue?I(e,Jh(q(i,e))):I()),t.keepError||(Rg(n.errors,e),m.isValid&&b()),g.state.next({...n}))},ge=(e,c={})=>{let l=e?Jh(e):i,u=Jh(l),d=xg(e),f=u,p=r;if(c.keepDefaultValues||(i=l),!c.keepValues){if(c.keepDirtyValues){let e=new Set([...s.mount,...Jg(t_(i,a,void 0,p),n.dirtyFields)]);for(let t of Array.from(e)){let e=q(n.dirtyFields,t),r=q(a,t),i=q(f,t);e&&!ng(r)?sg(f,t,r):!e&&!ng(i)&&H(t,i)}}else{if(qh&&ng(e))for(let e of s.mount){let t=q(r,e);if(t&&t._f){let e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;if(Sg(e)){let t=e.closest(`form`);if(t){t.reset();break}}}}if(c.keepFieldsRef)for(let e of s.mount)H(e,q(f,e));else r={}}if(t.shouldUnregister){if(a=c.keepDefaultValues?Jh(i):{},c.keepFieldsRef)for(let e of s.mount)sg(a,e,q(f,e))}else a=Jh(f);g.array.next({values:{...f}}),g.state.next({name:void 0,type:void 0,values:{...f}})}s={mount:c.keepDirtyValues?s.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:``},o.mount=!m.isValid||!!c.keepIsValid||!!c.keepDirtyValues||!t.shouldUnregister&&!xg(f),o.watch=!!t.shouldUnregister,o.keepIsValid=!!c.keepIsValid,o.action=!1,o.actionArrayLengths.clear(),c.keepErrors||(n.errors={}),g.state.next({submitCount:c.keepSubmitCount?n.submitCount:0,isDirty:d?!1:c.keepDirty?n.isDirty:c.keepValues?I():!!(c.keepDefaultValues&&!pg(e,i)),isSubmitted:c.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:d?{}:c.keepDirtyValues?c.keepDefaultValues&&a?t_(i,a,void 0,p):n.dirtyFields:c.keepDefaultValues&&e?t_(i,e,void 0,p):c.keepDirty?n.dirtyFields:{},touchedFields:c.keepTouched?n.touchedFields:{},errors:c.keepErrors?n.errors:{},isSubmitSuccessful:c.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:i})},_e=(e,n)=>ge(og(e)?e(a):e,{...t.resetOptions,...n}),ve=(e,t={})=>{let n=q(r,e),i=n&&n._f;if(i){let e=i.refs?i.refs[0]:i.ref;e.focus&&setTimeout(()=>{e.focus(),t.shouldSelect&&og(e.select)&&e.select()})}},ye=e=>{let{name:t,type:r,values:i,...a}=e;n={...n,...a}};g.state.subscribe({next:ye});let be={control:{register:W,unregister:ue,getFieldState:ie,handleSubmit:me,setError:oe,_subscribe:ce,_runSchema:j,_updateIsValidating:x,_focusError:fe,_getWatch:L,_getDirty:I,_setValid:b,_setFieldArray:C,_setDisabledField:de,_setErrors:T,_getFieldArray:R,_reset:ge,_resetDefaultValues:()=>og(t.defaultValues)&&t.defaultValues().then(e=>{_e(e,t.resetOptions),g.state.next({isLoading:!1})}),_removeUnmounted:F,_disableForm:pe,_subjects:g,_proxyFormState:m,get _fields(){return r},get _formValues(){return a},get _state(){return o},set _state(e){o=e},get _defaultValues(){return i},get _names(){return s},set _names(e){s=e},get _formState(){return n},get _options(){return t},set _options(e){t={...t,...e},d=_g(t.mode),f=_g(t.reValidateMode)}},subscribe:le,trigger:U,register:W,handleSubmit:me,watch:se,setValue:H,setValues:ee,getValues:re,reset:_e,resetField:he,resetDefaultValues:(e,t={})=>{if(i=Jh(e),!t.keepDirty){let e=t_(i,a,void 0,r);n.dirtyFields=e,n.isDirty=!xg(e)}t.keepIsValid||b(),g.state.next({...n,defaultValues:i})},clearErrors:ae,unregister:ue,setError:oe,setFocus:ve,getFieldState:ie};return{...be,formControl:be}}function y_(e={}){let t=s.useRef(void 0),n=s.useRef(void 0),r=s.useRef(e.formControl),[i,a]=s.useState(()=>({...Jh(__),isLoading:og(e.defaultValues),errors:e.errors||{},disabled:e.disabled||!1,defaultValues:og(e.defaultValues)?void 0:e.defaultValues}));if(!t.current||e.formControl&&r.current!==e.formControl){if(r.current=e.formControl,e.formControl)t.current={...e.formControl,formState:i},e.defaultValues&&!og(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{let{formControl:n,...r}=v_(e);t.current={...r,formState:i}}}let o=t.current.control;o._options=e;let{resyncIfNeeded:c,snapshot:l}=mg();return ug(()=>{let e=()=>({...o._formState,defaultValues:o._defaultValues});c(!0,e,a);let t=o._subscribe({formState:o._proxyFormState,callback:()=>a({...o._formState,defaultValues:o._defaultValues}),reRenderRoot:!0});return a(e=>({...e,isReady:!0})),o._formState.isReady=!0,()=>{t(),l(!0,e)}},[o,c,l]),s.useEffect(()=>o._disableForm(e.disabled),[o,e.disabled]),s.useEffect(()=>{e.mode&&(o._options.mode=e.mode),e.reValidateMode&&(o._options.reValidateMode=e.reValidateMode)},[o,e.mode,e.reValidateMode]),s.useEffect(()=>{e.errors&&(o._setErrors(e.errors),o._focusError())},[o,e.errors]),s.useEffect(()=>{e.shouldUnregister&&o._subjects.state.next({values:o._getWatch()})},[o,e.shouldUnregister]),s.useEffect(()=>{if(o._proxyFormState.isDirty){let e=o._getDirty();e!==i.isDirty&&o._subjects.state.next({isDirty:e})}},[o,i.isDirty]),s.useEffect(()=>{e.values&&!pg(e.values,n.current)?(o._reset(e.values,{keepFieldsRef:!0,...o._options.resetOptions}),o._options.resetOptions?.keepIsValid||o._setValid(),n.current=e.values,a(e=>({...e}))):o._resetDefaultValues()},[o,e.values]),s.useEffect(()=>{o._state.mount||(o._setValid(),o._state.mount=!0),o._state.watch&&(o._state.watch=!1,o._subjects.state.next({...o._formState})),o._removeUnmounted()}),t.current.formState=s.useMemo(()=>lg(i,o),[o,i]),t.current}var b_=(e,t,n)=>{if(e&&`reportValidity`in e){let r=q(n,t);e.setCustomValidity(r&&r.message||``),e.reportValidity()}},x_=(e,t)=>{for(let n in t.fields){let r=t.fields[n];r&&r.ref&&`reportValidity`in r.ref?b_(r.ref,n,e):r&&r.refs&&r.refs.forEach(t=>b_(t,n,e))}},S_=(e,t)=>{t.shouldUseNativeValidation&&x_(e,t);let n={};for(let r in e){let i=q(t.fields,r),a=Object.assign(e[r]||{},{ref:i&&i.refs?i.refs[0]:i&&i.ref});if(C_(t.names||Object.keys(e),r)){let e=Object.assign({},q(n,r));sg(e,`root`,a),sg(n,r,e)}else sg(n,r,a)}return n},C_=(e,t)=>{let n=w_(t).replace(/[.*+?^${}()|\\]/g,`\\$&`);return e.some(e=>w_(e).match(`^${n}\\.\\d+`))};function w_(e){return e.replace(/[\[\]]/g,``)}function T_(){return T_=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},T_.apply(null,arguments)}function E_(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}function D_(e,t){for(var n=Object.create(null);e.length;){var r=e[0],i=r.code,a=r.message,o=r.path.join(`.`);if(!n[o]){if(`unionErrors`in r){var s=r.unionErrors.reduce(function(e,t){return t.errors.length<e.errors.length?t:e}).errors[0];n[o]={message:s?.message??a,type:s?.code??i}}else n[o]={message:a,type:i}}if(`unionErrors`in r&&r.unionErrors.forEach(function(t){return t.errors.forEach(function(t){return e.push(t)})}),t){var c=n[o].types,l=c&&c[r.code];n[o]=Tg(o,t,n,i,l?[].concat(l,r.message):r.message)}e.shift()}return n}function O_(e,t){for(var n=Object.create(null),r=function(){var r=e[0],i=r.code,a=r.message,o=r.path.join(`.`);if(!n[o]){if(r.code===`invalid_union`&&r.errors.length>0){var s=r.errors.reduce(function(e,t){return t.length<e.length?t:e})[0];n[o]={message:s?.message??a,type:s?.code??i}}else n[o]={message:a,type:i}}if(r.code===`invalid_union`&&r.errors.forEach(function(t){return t.forEach(function(t){return e.push(T_({},t,{path:[].concat(r.path,t.path)}))})}),t){var c=n[o].types,l=c&&c[r.code];n[o]=Tg(o,t,n,i,l?[].concat(l,r.message):r.message)}e.shift()};e.length;)r();return n}function k_(e,t,n){if(n===void 0&&(n={}),function(e){return`_zod`in e&&typeof e._zod==`object`}(e))return function(r,i,a){try{return Promise.resolve(E_(function(){function i(e){return a.shouldUseNativeValidation&&x_({},a),{errors:{},values:n.raw?Object.assign({},r):e}}var o=e;return n.mode===`sync`?i(o.parse(r,t)):Promise.resolve(o.parseAsync(r,t)).then(i)},function(e){if(function(e){var t;return!(e==null||(t=e._zod)==null||(t=t.traits)==null||!t.has(`$ZodError`))}(e))return{values:{},errors:S_(O_(e.issues,!a.shouldUseNativeValidation&&a.criteriaMode===`all`),a)};throw e}))}catch(e){return Promise.reject(e)}};if(function(e){return`_def`in e&&typeof e._def==`object`}(e))return function(r,i,a){try{return Promise.resolve(E_(function(){return Promise.resolve(e[n.mode===`sync`?`parse`:`parseAsync`](r,t)).then(function(e){return a.shouldUseNativeValidation&&x_({},a),{errors:{},values:n.raw?Object.assign({},r):e}})},function(e){if(function(e){return Array.isArray(e?.issues)}(e))return{values:{},errors:S_(D_(e.errors,!a.shouldUseNativeValidation&&a.criteriaMode===`all`),a)};throw e}))}catch(e){return Promise.reject(e)}};throw Error(`Invalid input: not a Zod schema`)}var A_=[],j_=0,M_=new Set;function N_(){M_.forEach(e=>e([...A_]))}function J(e,t=``,n=`success`){let r=`${n}:${e}:${t}`;if(A_.some(e=>e.toastKey===r))return;let i={key:++j_,toastKey:r,title:e,message:t,type:n};A_=[...A_,i],N_(),window.setTimeout(()=>{A_=A_.filter(e=>e.key!==i.key),N_()},n===`error`?7e3:3600)}function P_(){let[e,t]=(0,s.useState)(A_);return(0,s.useEffect)(()=>{let e=e=>t(e);return M_.add(e),()=>{M_.delete(e)}},[]),(0,G.jsx)(`div`,{className:`toast-region`,"aria-live":`polite`,"aria-atomic":`true`,children:e.map(e=>(0,G.jsxs)(`div`,{className:`toast ${e.type}`,children:[e.type===`error`?(0,G.jsx)(U,{size:15}):(0,G.jsx)(V,{size:15}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:e.title}),e.message?(0,G.jsx)(`p`,{children:e.message}):null]})]},e.key))})}var F_=n(((e,t)=>{var n=!1,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_;function v(){if(!n){n=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),v=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(m=/\b(iPhone|iP[ao]d)/.exec(e),h=/\b(iP[ao]d)/.exec(e),f=/Android/i.exec(e),g=/FBAN\/\w+;/i.exec(e),_=/Mobile/i.exec(e),p=!!/Win64/.exec(e),t){r=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,r&&document&&document.documentMode&&(r=document.documentMode);var y=/(?:Trident\/(\d+.\d+))/.exec(e);c=y?parseFloat(y[1])+4:r,i=t[2]?parseFloat(t[2]):NaN,a=t[3]?parseFloat(t[3]):NaN,o=t[4]?parseFloat(t[4]):NaN,o?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),s=t&&t[1]?parseFloat(t[1]):NaN):s=NaN}else r=i=a=s=o=NaN;if(v){if(v[1]){var b=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);l=!b||parseFloat(b[1].replace(`_`,`.`))}else l=!1;u=!!v[2],d=!!v[3]}else l=u=d=!1}}var y={ie:function(){return v()||r},ieCompatibilityMode:function(){return v()||c>r},ie64:function(){return y.ie()&&p},firefox:function(){return v()||i},opera:function(){return v()||a},webkit:function(){return v()||o},safari:function(){return y.webkit()},chrome:function(){return v()||s},windows:function(){return v()||u},osx:function(){return v()||l},linux:function(){return v()||d},iphone:function(){return v()||m},mobile:function(){return v()||m||h||f||_},nativeApp:function(){return v()||g},android:function(){return v()||f},ipad:function(){return v()||h}};t.exports=y})),I_=n(((e,t)=>{var n=!!(typeof window<`u`&&window.document&&window.document.createElement);t.exports={canUseDOM:n,canUseWorkers:typeof Worker<`u`,canUseEventListeners:n&&!!(window.addEventListener||window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n}})),L_=n(((e,t)=>{var n=I_(),r;n.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature(``,``)!==!0);function i(e,t){if(!n.canUseDOM||t&&!(`addEventListener`in document))return!1;var i=`on`+e,a=i in document;if(!a){var o=document.createElement(`div`);o.setAttribute(i,`return;`),a=typeof o[i]==`function`}return!a&&r&&e===`wheel`&&(a=document.implementation.hasFeature(`Events.wheel`,`3.0`)),a}t.exports=i})),R_=n(((e,t)=>{var n=F_(),r=L_(),i=10,a=40,o=800;function s(e){var t=0,n=0,r=0,s=0;return`detail`in e&&(n=e.detail),`wheelDelta`in e&&(n=-e.wheelDelta/120),`wheelDeltaY`in e&&(n=-e.wheelDeltaY/120),`wheelDeltaX`in e&&(t=-e.wheelDeltaX/120),`axis`in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*i,s=n*i,`deltaY`in e&&(s=e.deltaY),`deltaX`in e&&(r=e.deltaX),(r||s)&&e.deltaMode&&(e.deltaMode==1?(r*=a,s*=a):(r*=o,s*=o)),r&&!t&&(t=r<1?-1:1),s&&!n&&(n=s<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:s}}s.getEventType=function(){return n.firefox()?`DOMMouseScroll`:r(`wheel`)?`wheel`:`mousewheel`},t.exports=s})),z_=t(n(((e,t)=>{t.exports=R_()}))(),1);function B_(e,t,n,r,i,a){a===void 0&&(a=0);var o=ev(e,t,a),s=o.width,c=o.height,l=Math.min(s,n),u=Math.min(c,r);return l>u*i?{width:u*i,height:u}:{width:l,height:l/i}}function V_(e){return e.width>e.height?e.width/e.naturalWidth:e.height/e.naturalHeight}function H_(e,t,n,r,i){i===void 0&&(i=0);var a=ev(t.width,t.height,i),o=a.width,s=a.height;return{x:U_(e.x,o,n.width,r),y:U_(e.y,s,n.height,r)}}function U_(e,t,n,r){var i=Math.abs(t*r/2-n/2);return tv(e,-i,i)}function W_(e,t){return Math.sqrt((e.y-t.y)**2+(e.x-t.x)**2)}function G_(e,t){return Math.atan2(t.y-e.y,t.x-e.x)*180/Math.PI}function K_(e,t,n,r,i,a,o){a===void 0&&(a=0),o===void 0&&(o=!0);var s=o?q_:J_,c=ev(t.width,t.height,a),l=ev(t.naturalWidth,t.naturalHeight,a),u={x:s(100,((c.width-n.width/i)/2-e.x/i)/c.width*100),y:s(100,((c.height-n.height/i)/2-e.y/i)/c.height*100),width:s(100,n.width/c.width*100/i),height:s(100,n.height/c.height*100/i)},d=Math.round(s(l.width,u.width*l.width/100)),f=Math.round(s(l.height,u.height*l.height/100)),p=l.width>=l.height*r?{width:Math.round(f*r),height:f}:{width:d,height:Math.round(d/r)};return{croppedAreaPercentages:u,croppedAreaPixels:Dr(Dr({},p),{x:Math.round(s(l.width-p.width,u.x*l.width/100)),y:Math.round(s(l.height-p.height,u.y*l.height/100))})}}function q_(e,t){return Math.min(e,Math.max(0,t))}function J_(e,t){return t}function Y_(e,t,n,r,i,a){var o=ev(t.width,t.height,n),s=tv(r.width/o.width*(100/e.width),i,a);return{crop:{x:s*o.width/2-r.width/2-o.width*s*(e.x/100),y:s*o.height/2-r.height/2-o.height*s*(e.y/100)},zoom:s}}function X_(e,t,n){var r=V_(t);return n.height>n.width?n.height/(e.height*r):n.width/(e.width*r)}function Z_(e,t,n,r,i,a){n===void 0&&(n=0);var o=ev(t.naturalWidth,t.naturalHeight,n),s=tv(X_(e,t,r),i,a),c=r.height>r.width?r.height/e.height:r.width/e.width;return{crop:{x:((o.width-e.width)/2-e.x)*c,y:((o.height-e.height)/2-e.y)*c},zoom:s}}function Q_(e,t){return{x:(t.x+e.x)/2,y:(t.y+e.y)/2}}function $_(e){return e*Math.PI/180}function ev(e,t,n){var r=$_(n);return{width:Math.abs(Math.cos(r)*e)+Math.abs(Math.sin(r)*t),height:Math.abs(Math.sin(r)*e)+Math.abs(Math.cos(r)*t)}}function tv(e,t,n){return Math.min(Math.max(e,t),n)}function nv(){return[...arguments].filter(function(e){return typeof e==`string`&&e.length>0}).join(` `).trim()}var rv=`.reactEasyCrop_Container {
|
|
43
|
+
position: absolute;
|
|
44
|
+
top: 0;
|
|
45
|
+
left: 0;
|
|
46
|
+
right: 0;
|
|
47
|
+
bottom: 0;
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
user-select: none;
|
|
50
|
+
touch-action: none;
|
|
51
|
+
cursor: move;
|
|
52
|
+
display: flex;
|
|
53
|
+
justify-content: center;
|
|
54
|
+
align-items: center;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.reactEasyCrop_Image,
|
|
58
|
+
.reactEasyCrop_Video {
|
|
59
|
+
will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.reactEasyCrop_Contain {
|
|
63
|
+
max-width: 100%;
|
|
64
|
+
max-height: 100%;
|
|
65
|
+
margin: auto;
|
|
66
|
+
position: absolute;
|
|
67
|
+
top: 0;
|
|
68
|
+
bottom: 0;
|
|
69
|
+
left: 0;
|
|
70
|
+
right: 0;
|
|
71
|
+
}
|
|
72
|
+
.reactEasyCrop_Cover_Horizontal {
|
|
73
|
+
width: 100%;
|
|
74
|
+
height: auto;
|
|
75
|
+
}
|
|
76
|
+
.reactEasyCrop_Cover_Vertical {
|
|
77
|
+
width: auto;
|
|
78
|
+
height: 100%;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.reactEasyCrop_CropArea {
|
|
82
|
+
position: absolute;
|
|
83
|
+
left: 50%;
|
|
84
|
+
top: 50%;
|
|
85
|
+
transform: translate(-50%, -50%);
|
|
86
|
+
border: 1px solid rgba(255, 255, 255, 0.5);
|
|
87
|
+
box-sizing: border-box;
|
|
88
|
+
box-shadow: 0 0 0 9999em;
|
|
89
|
+
color: rgba(0, 0, 0, 0.5);
|
|
90
|
+
overflow: hidden;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.reactEasyCrop_CropAreaRound {
|
|
94
|
+
border-radius: 50%;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.reactEasyCrop_CropAreaGrid::before {
|
|
98
|
+
content: ' ';
|
|
99
|
+
box-sizing: border-box;
|
|
100
|
+
position: absolute;
|
|
101
|
+
border: 1px solid rgba(255, 255, 255, 0.5);
|
|
102
|
+
top: 0;
|
|
103
|
+
bottom: 0;
|
|
104
|
+
left: 33.33%;
|
|
105
|
+
right: 33.33%;
|
|
106
|
+
border-top: 0;
|
|
107
|
+
border-bottom: 0;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.reactEasyCrop_CropAreaGrid::after {
|
|
111
|
+
content: ' ';
|
|
112
|
+
box-sizing: border-box;
|
|
113
|
+
position: absolute;
|
|
114
|
+
border: 1px solid rgba(255, 255, 255, 0.5);
|
|
115
|
+
top: 33.33%;
|
|
116
|
+
bottom: 33.33%;
|
|
117
|
+
left: 0;
|
|
118
|
+
right: 0;
|
|
119
|
+
border-left: 0;
|
|
120
|
+
border-right: 0;
|
|
121
|
+
}
|
|
122
|
+
`,iv=1,av=3,ov=1,sv=function(e){Er(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.cropperRef=s.createRef(),n.imageRef=s.createRef(),n.videoRef=s.createRef(),n.containerPosition={x:0,y:0},n.containerRef=null,n.styleRef=null,n.containerRect=null,n.mediaSize={width:0,height:0,naturalWidth:0,naturalHeight:0},n.dragStartPosition={x:0,y:0},n.dragStartCrop={x:0,y:0},n.gestureZoomStart=0,n.gestureRotationStart=0,n.isTouching=!1,n.lastPinchDistance=0,n.lastPinchRotation=0,n.rafDragTimeout=null,n.rafPinchTimeout=null,n.wheelTimer=null,n.currentDoc=typeof document<`u`?document:null,n.currentWindow=typeof window<`u`?window:null,n.resizeObserver=null,n.previousCropSize=null,n.isInitialized=!1,n.state={cropSize:null,hasWheelJustStarted:!1,mediaObjectFit:void 0},n.initResizeObserver=function(){if(!(window.ResizeObserver===void 0||!n.containerRef)){var e=!0;n.resizeObserver=new window.ResizeObserver(function(t){if(e){e=!1;return}n.computeSizes()}),n.resizeObserver.observe(n.containerRef)}},n.preventZoomSafari=function(e){return e.preventDefault()},n.cleanEvents=function(){n.currentDoc&&(n.currentDoc.removeEventListener(`mousemove`,n.onMouseMove),n.currentDoc.removeEventListener(`mouseup`,n.onDragStopped),n.currentDoc.removeEventListener(`touchmove`,n.onTouchMove),n.currentDoc.removeEventListener(`touchend`,n.onDragStopped),n.currentDoc.removeEventListener(`gesturechange`,n.onGestureChange),n.currentDoc.removeEventListener(`gestureend`,n.onGestureEnd),n.currentDoc.removeEventListener(`scroll`,n.onScroll))},n.clearScrollEvent=function(){n.containerRef&&n.containerRef.removeEventListener(`wheel`,n.onWheel),n.wheelTimer&&clearTimeout(n.wheelTimer)},n.onMediaLoad=function(){var e=n.computeSizes();e&&(n.previousCropSize=e,n.emitCropData(),n.setInitialCrop(e),n.isInitialized=!0),n.props.onMediaLoaded&&n.props.onMediaLoaded(n.mediaSize)},n.setInitialCrop=function(e){if(n.props.initialCroppedAreaPercentages){var t=Y_(n.props.initialCroppedAreaPercentages,n.mediaSize,n.props.rotation,e,n.props.minZoom,n.props.maxZoom),r=t.crop,i=t.zoom;n.props.onCropChange(r),n.props.onZoomChange&&n.props.onZoomChange(i)}else if(n.props.initialCroppedAreaPixels){var a=Z_(n.props.initialCroppedAreaPixels,n.mediaSize,n.props.rotation,e,n.props.minZoom,n.props.maxZoom),r=a.crop,i=a.zoom;n.props.onCropChange(r),n.props.onZoomChange&&n.props.onZoomChange(i)}},n.computeSizes=function(){var e=n.imageRef.current||n.videoRef.current;if(e&&n.containerRef){n.containerRect=n.containerRef.getBoundingClientRect(),n.saveContainerPosition();var t=n.containerRect.width/n.containerRect.height,r=n.imageRef.current?.naturalWidth||n.videoRef.current?.videoWidth||0,i=n.imageRef.current?.naturalHeight||n.videoRef.current?.videoHeight||0,a=e.offsetWidth<r||e.offsetHeight<i,o=r/i,s=void 0;if(a)switch(n.state.mediaObjectFit){default:case`contain`:s=t>o?{width:n.containerRect.height*o,height:n.containerRect.height}:{width:n.containerRect.width,height:n.containerRect.width/o};break;case`horizontal-cover`:s={width:n.containerRect.width,height:n.containerRect.width/o};break;case`vertical-cover`:s={width:n.containerRect.height*o,height:n.containerRect.height}}else s={width:e.offsetWidth,height:e.offsetHeight};n.mediaSize=Dr(Dr({},s),{naturalWidth:r,naturalHeight:i}),n.props.setMediaSize&&n.props.setMediaSize(n.mediaSize);var c=n.props.cropSize?n.props.cropSize:B_(n.mediaSize.width,n.mediaSize.height,n.containerRect.width,n.containerRect.height,n.props.aspect,n.props.rotation);return(n.state.cropSize?.height!==c.height||n.state.cropSize?.width!==c.width)&&n.props.onCropSizeChange&&n.props.onCropSizeChange(c),n.setState({cropSize:c},n.recomputeCropPosition),n.props.setCropSize&&n.props.setCropSize(c),c}},n.saveContainerPosition=function(){if(n.containerRef){var e=n.containerRef.getBoundingClientRect();n.containerPosition={x:e.left,y:e.top}}},n.onMouseDown=function(e){n.currentDoc&&(e.preventDefault(),n.currentDoc.addEventListener(`mousemove`,n.onMouseMove),n.currentDoc.addEventListener(`mouseup`,n.onDragStopped),n.saveContainerPosition(),n.onDragStart(t.getMousePoint(e)))},n.onMouseMove=function(e){return n.onDrag(t.getMousePoint(e))},n.onScroll=function(e){n.currentDoc&&(e.preventDefault(),n.saveContainerPosition())},n.onTouchStart=function(e){n.currentDoc&&(n.isTouching=!0,!(n.props.onTouchRequest&&!n.props.onTouchRequest(e))&&(n.currentDoc.addEventListener(`touchmove`,n.onTouchMove,{passive:!1}),n.currentDoc.addEventListener(`touchend`,n.onDragStopped),n.saveContainerPosition(),e.touches.length===2?n.onPinchStart(e):e.touches.length===1&&n.onDragStart(t.getTouchPoint(e.touches[0]))))},n.onTouchMove=function(e){e.preventDefault(),e.touches.length===2?n.onPinchMove(e):e.touches.length===1&&n.onDrag(t.getTouchPoint(e.touches[0]))},n.onGestureStart=function(e){n.currentDoc&&(e.preventDefault(),n.currentDoc.addEventListener(`gesturechange`,n.onGestureChange),n.currentDoc.addEventListener(`gestureend`,n.onGestureEnd),n.gestureZoomStart=n.props.zoom,n.gestureRotationStart=n.props.rotation)},n.onGestureChange=function(e){if(e.preventDefault(),!n.isTouching){var r=t.getMousePoint(e),i=n.gestureZoomStart-1+e.scale;if(n.setNewZoom(i,r,{shouldUpdatePosition:!0}),n.props.onRotationChange){var a=n.gestureRotationStart+e.rotation;n.props.onRotationChange(a)}}},n.onGestureEnd=function(e){n.cleanEvents()},n.onDragStart=function(e){var t,r;n.dragStartPosition={x:e.x,y:e.y},n.dragStartCrop=Dr({},n.props.crop),(r=(t=n.props).onInteractionStart)==null||r.call(t)},n.onDrag=function(e){var t=e.x,r=e.y;n.currentWindow&&(n.rafDragTimeout&&n.currentWindow.cancelAnimationFrame(n.rafDragTimeout),n.rafDragTimeout=n.currentWindow.requestAnimationFrame(function(){if(n.state.cropSize&&t!==void 0&&r!==void 0){var e=t-n.dragStartPosition.x,i=r-n.dragStartPosition.y,a={x:n.dragStartCrop.x+e,y:n.dragStartCrop.y+i},o=n.props.restrictPosition?H_(a,n.mediaSize,n.state.cropSize,n.props.zoom,n.props.rotation):a;n.props.onCropChange(o)}}))},n.onDragStopped=function(){var e,t;n.isTouching=!1,n.cleanEvents(),n.emitCropData(),(t=(e=n.props).onInteractionEnd)==null||t.call(e)},n.onWheel=function(e){if(n.currentWindow&&!(n.props.onWheelRequest&&!n.props.onWheelRequest(e))){e.preventDefault();var r=t.getMousePoint(e),i=(0,z_.default)(e).pixelY,a=n.props.zoom-i*n.props.zoomSpeed/200;n.setNewZoom(a,r,{shouldUpdatePosition:!0}),n.state.hasWheelJustStarted||n.setState({hasWheelJustStarted:!0},function(){var e;return(e=n.props).onInteractionStart?.call(e)}),n.wheelTimer&&clearTimeout(n.wheelTimer),n.wheelTimer=n.currentWindow.setTimeout(function(){return n.setState({hasWheelJustStarted:!1},function(){var e;return(e=n.props).onInteractionEnd?.call(e)})},250)}},n.getPointOnContainer=function(e,t){var r=e.x,i=e.y;if(!n.containerRect)throw Error(`The Cropper is not mounted`);return{x:n.containerRect.width/2-(r-t.x),y:n.containerRect.height/2-(i-t.y)}},n.getPointOnMedia=function(e){var t=e.x,r=e.y,i=n.props,a=i.crop,o=i.zoom;return{x:(t+a.x)/o,y:(r+a.y)/o}},n.setNewZoom=function(e,t,r){var i=(r===void 0?{}:r).shouldUpdatePosition,a=i===void 0||i;if(!(!n.state.cropSize||!n.props.onZoomChange)){var o=tv(e,n.props.minZoom,n.props.maxZoom);if(a){var s=n.getPointOnContainer(t,n.containerPosition),c=n.getPointOnMedia(s),l={x:c.x*o-s.x,y:c.y*o-s.y},u=n.props.restrictPosition?H_(l,n.mediaSize,n.state.cropSize,o,n.props.rotation):l;n.props.onCropChange(u)}n.props.onZoomChange(o)}},n.getCropData=function(){return n.state.cropSize?K_(n.props.restrictPosition?H_(n.props.crop,n.mediaSize,n.state.cropSize,n.props.zoom,n.props.rotation):n.props.crop,n.mediaSize,n.state.cropSize,n.getAspect(),n.props.zoom,n.props.rotation,n.props.restrictPosition):null},n.emitCropData=function(){var e=n.getCropData();if(e){var t=e.croppedAreaPercentages,r=e.croppedAreaPixels;n.props.onCropComplete&&n.props.onCropComplete(t,r),n.props.onCropAreaChange&&n.props.onCropAreaChange(t,r)}},n.emitCropAreaChange=function(){var e=n.getCropData();if(e){var t=e.croppedAreaPercentages,r=e.croppedAreaPixels;n.props.onCropAreaChange&&n.props.onCropAreaChange(t,r)}},n.recomputeCropPosition=function(){if(n.state.cropSize){var e=n.props.crop;if(n.isInitialized&&n.previousCropSize?.width&&n.previousCropSize?.height&&(Math.abs(n.previousCropSize.width-n.state.cropSize.width)>1e-6||Math.abs(n.previousCropSize.height-n.state.cropSize.height)>1e-6)){var t=n.state.cropSize.width/n.previousCropSize.width,r=n.state.cropSize.height/n.previousCropSize.height;e={x:n.props.crop.x*t,y:n.props.crop.y*r}}var i=n.props.restrictPosition?H_(e,n.mediaSize,n.state.cropSize,n.props.zoom,n.props.rotation):e;n.previousCropSize=n.state.cropSize,n.props.onCropChange(i),n.emitCropData()}},n.onKeyDown=function(e){var t,r,i=n.props,a=i.crop,o=i.onCropChange,s=i.keyboardStep,c=i.zoom,l=i.rotation,u=s;if(n.state.cropSize){e.shiftKey&&(u*=.2);var d=Dr({},a);switch(e.key){case`ArrowUp`:d.y-=u,e.preventDefault();break;case`ArrowDown`:d.y+=u,e.preventDefault();break;case`ArrowLeft`:d.x-=u,e.preventDefault();break;case`ArrowRight`:d.x+=u,e.preventDefault();break;default:return}n.props.restrictPosition&&(d=H_(d,n.mediaSize,n.state.cropSize,c,l)),e.repeat||(r=(t=n.props).onInteractionStart)==null||r.call(t),o(d)}},n.onKeyUp=function(e){var t,r;switch(e.key){case`ArrowUp`:case`ArrowDown`:case`ArrowLeft`:case`ArrowRight`:e.preventDefault();break;default:return}n.emitCropData(),(r=(t=n.props).onInteractionEnd)==null||r.call(t)},n}return t.prototype.componentDidMount=function(){!this.currentDoc||!this.currentWindow||(this.containerRef&&(this.containerRef.ownerDocument&&(this.currentDoc=this.containerRef.ownerDocument),this.currentDoc.defaultView&&(this.currentWindow=this.currentDoc.defaultView),this.initResizeObserver(),window.ResizeObserver===void 0&&this.currentWindow.addEventListener(`resize`,this.computeSizes),this.props.zoomWithScroll&&this.containerRef.addEventListener(`wheel`,this.onWheel,{passive:!1}),this.containerRef.addEventListener(`gesturestart`,this.onGestureStart)),this.currentDoc.addEventListener(`scroll`,this.onScroll),this.props.disableAutomaticStylesInjection||(this.styleRef=this.currentDoc.createElement(`style`),this.styleRef.setAttribute(`type`,`text/css`),this.props.nonce&&this.styleRef.setAttribute(`nonce`,this.props.nonce),this.styleRef.innerHTML=rv,this.currentDoc.head.appendChild(this.styleRef)),this.imageRef.current&&this.imageRef.current.complete&&this.onMediaLoad(),this.props.setImageRef&&this.props.setImageRef(this.imageRef),this.props.setVideoRef&&this.props.setVideoRef(this.videoRef),this.props.setCropperRef&&this.props.setCropperRef(this.cropperRef))},t.prototype.componentWillUnmount=function(){var e,t;!this.currentDoc||!this.currentWindow||(window.ResizeObserver===void 0&&this.currentWindow.removeEventListener(`resize`,this.computeSizes),(e=this.resizeObserver)==null||e.disconnect(),this.containerRef&&this.containerRef.removeEventListener(`gesturestart`,this.preventZoomSafari),this.styleRef&&((t=this.styleRef.parentNode)==null||t.removeChild(this.styleRef)),this.cleanEvents(),this.props.zoomWithScroll&&this.clearScrollEvent())},t.prototype.componentDidUpdate=function(e){var t;e.rotation===this.props.rotation?e.aspect===this.props.aspect&&e.objectFit===this.props.objectFit?e.zoom===this.props.zoom?e.cropSize?.height!==this.props.cropSize?.height||e.cropSize?.width!==this.props.cropSize?.width?this.computeSizes():(e.crop?.x!==this.props.crop?.x||e.crop?.y!==this.props.crop?.y)&&this.emitCropAreaChange():this.recomputeCropPosition():this.computeSizes():(this.computeSizes(),this.recomputeCropPosition()),e.zoomWithScroll!==this.props.zoomWithScroll&&this.containerRef&&(this.props.zoomWithScroll?this.containerRef.addEventListener(`wheel`,this.onWheel,{passive:!1}):this.clearScrollEvent()),e.video!==this.props.video&&((t=this.videoRef.current)==null||t.load());var n=this.getObjectFit();n!==this.state.mediaObjectFit&&this.setState({mediaObjectFit:n},this.computeSizes)},t.prototype.getAspect=function(){var e=this.props,t=e.cropSize,n=e.aspect;return t?t.width/t.height:n},t.prototype.getObjectFit=function(){if(this.props.objectFit===`cover`){if((this.imageRef.current||this.videoRef.current)&&this.containerRef){this.containerRect=this.containerRef.getBoundingClientRect();var e=this.containerRect.width/this.containerRect.height;return(this.imageRef.current?.naturalWidth||this.videoRef.current?.videoWidth||0)/(this.imageRef.current?.naturalHeight||this.videoRef.current?.videoHeight||0)<e?`horizontal-cover`:`vertical-cover`}return`horizontal-cover`}return this.props.objectFit},t.prototype.onPinchStart=function(e){var n=t.getTouchPoint(e.touches[0]),r=t.getTouchPoint(e.touches[1]);this.lastPinchDistance=W_(n,r),this.lastPinchRotation=G_(n,r),this.onDragStart(Q_(n,r))},t.prototype.onPinchMove=function(e){var n=this;if(!(!this.currentDoc||!this.currentWindow)){var r=t.getTouchPoint(e.touches[0]),i=t.getTouchPoint(e.touches[1]),a=Q_(r,i);this.onDrag(a),this.rafPinchTimeout&&this.currentWindow.cancelAnimationFrame(this.rafPinchTimeout),this.rafPinchTimeout=this.currentWindow.requestAnimationFrame(function(){var e=W_(r,i),t=n.props.zoom*(e/n.lastPinchDistance);n.setNewZoom(t,a,{shouldUpdatePosition:!1}),n.lastPinchDistance=e;var o=G_(r,i),s=n.props.rotation+(o-n.lastPinchRotation);n.props.onRotationChange&&n.props.onRotationChange(s),n.lastPinchRotation=o})}},t.prototype.render=function(){var e=this,t=this.props,n=t.image,r=t.video,i=t.mediaProps,a=t.cropperProps,o=t.transform,c=t.crop,l=c.x,u=c.y,d=t.rotation,f=t.zoom,p=t.cropShape,m=t.showGrid,h=t.roundCropAreaPixels,g=t.style,_=g.containerStyle,v=g.cropAreaStyle,y=g.mediaStyle,b=t.classes,x=b.containerClassName,S=b.cropAreaClassName,C=b.mediaClassName,w=this.state.mediaObjectFit??this.getObjectFit();return s.createElement(`div`,{onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,ref:function(t){return e.containerRef=t},"data-testid":`container`,style:_,className:nv(`reactEasyCrop_Container`,x)},n?s.createElement(`img`,Dr({alt:``,className:nv(`reactEasyCrop_Image`,w===`contain`&&`reactEasyCrop_Contain`,w===`horizontal-cover`&&`reactEasyCrop_Cover_Horizontal`,w===`vertical-cover`&&`reactEasyCrop_Cover_Vertical`,C)},i,{src:n,ref:this.imageRef,style:Dr(Dr({},y),{transform:o||`translate(${l}px, ${u}px) rotate(${d}deg) scale(${f})`}),onLoad:this.onMediaLoad})):r&&s.createElement(`video`,Dr({autoPlay:!0,playsInline:!0,loop:!0,muted:!0,className:nv(`reactEasyCrop_Video`,w===`contain`&&`reactEasyCrop_Contain`,w===`horizontal-cover`&&`reactEasyCrop_Cover_Horizontal`,w===`vertical-cover`&&`reactEasyCrop_Cover_Vertical`,C)},i,{ref:this.videoRef,onLoadedMetadata:this.onMediaLoad,style:Dr(Dr({},y),{transform:o||`translate(${l}px, ${u}px) rotate(${d}deg) scale(${f})`}),controls:!1}),(Array.isArray(r)?r:[{src:r}]).map(function(e){return s.createElement(`source`,Dr({key:e.src},e))})),this.state.cropSize&&s.createElement(`div`,Dr({ref:this.cropperRef,style:Dr(Dr({},v),{width:h?Math.round(this.state.cropSize.width):this.state.cropSize.width,height:h?Math.round(this.state.cropSize.height):this.state.cropSize.height}),tabIndex:0,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp,"data-testid":`cropper`,className:nv(`reactEasyCrop_CropArea`,p===`round`&&`reactEasyCrop_CropAreaRound`,m&&`reactEasyCrop_CropAreaGrid`,S)},a)))},t.defaultProps={zoom:1,rotation:0,aspect:4/3,maxZoom:av,minZoom:iv,cropShape:`rect`,objectFit:`contain`,showGrid:!0,style:{},classes:{},mediaProps:{},cropperProps:{},zoomSpeed:1,restrictPosition:!0,zoomWithScroll:!0,keyboardStep:ov},t.getMousePoint=function(e){return{x:Number(e.clientX),y:Number(e.clientY)}},t.getTouchPoint=function(e){return{x:Number(e.clientX),y:Number(e.clientY)}},t}(s.Component),cv=[{id:`bot`,label:`Bot`,icon:N},{id:`sparkles`,label:`Sparkles`,icon:ct},{id:`search`,label:`Search`,icon:tt},{id:`code`,label:`Code`,icon:W},{id:`workflow`,label:`Workflow`,icon:Ve}],lv=[{value:`#426ea8`,label:`云蓝`},{value:`#7c5cc4`,label:`紫罗兰`},{value:`#2d7c68`,label:`松石绿`},{value:`#a86d32`,label:`琥珀`},{value:`#a55267`,label:`玫瑰`},{value:`#526173`,label:`石墨`}];function uv(e){return{icon:e?.icon||`bot`,color:e?.color||`#426ea8`,imageUrl:e?.imageUrl||null}}async function dv(e){let t=new Image;return t.decoding=`async`,t.src=e,await t.decode(),t}async function fv(e,t){let n=await dv(e),r=document.createElement(`canvas`);r.width=512,r.height=512;let i=r.getContext(`2d`);if(!i)throw Error(`当前浏览器无法创建头像画布`);i.imageSmoothingEnabled=!0,i.imageSmoothingQuality=`high`,i.drawImage(n,t.x,t.y,t.width,t.height,0,0,r.width,r.height);let a=await new Promise(e=>r.toBlob(e,`image/webp`,.9));if(!a)throw Error(`头像裁剪失败,请更换图片后重试`);return a}function pv({name:e,appearance:t,disabled:n=!1,onSave:r}){let[i,a]=(0,s.useState)(()=>uv(t)),[o,c]=(0,s.useState)(null),[l,u]=(0,s.useState)({x:0,y:0}),[d,f]=(0,s.useState)(1),[p,m]=(0,s.useState)(null),[h,_]=(0,s.useState)(!1),[v,y]=(0,s.useState)(!1),[b,x]=(0,s.useState)(``),S=(0,s.useRef)(null);(0,s.useEffect)(()=>a(uv(t)),[t]),(0,s.useEffect)(()=>()=>{o&&URL.revokeObjectURL(o)},[o]);let C=uv(t),w=i.icon!==C.icon||i.color!==C.color||i.imageUrl!==C.imageUrl;function T(e){if(x(``),e){if(![`image/png`,`image/webp`].includes(e.type)){x(`仅支持 PNG 或 WebP 图片`);return}if(e.size>2097152){x(`头像文件不能超过 2 MiB`);return}u({x:0,y:0}),f(1),m(null),c(URL.createObjectURL(e))}}async function E(){if(!(!o||!p||h)){_(!0),x(``);try{let e=await fv(o,p),t=await g(`/api/v1/assets/agent-avatars`,{method:`POST`,headers:{"Content-Type":e.type},body:e}),n=await t.json().catch(()=>null);if(!t.ok)throw Error(n?.error?.message||`头像上传失败(${t.status})`);a(e=>({...e,imageUrl:n.url})),c(null)}catch(e){x(e instanceof Error?e.message:`头像上传失败`)}finally{_(!1)}}}async function D(){if(!(!w||v||n)){y(!0),x(``);try{await r(i)}catch(e){x(e instanceof Error?e.message:`外观保存失败`)}finally{y(!1)}}}return(0,G.jsxs)(`section`,{className:`agent-appearance-editor`,"aria-label":`Agent 外观`,children:[(0,G.jsxs)(`div`,{className:`agent-appearance-preview`,children:[(0,G.jsx)(Ct,{name:e,appearance:i,size:`lg`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`Agent 外观`}),(0,G.jsx)(`span`,{children:`用于列表、会话和 Trace;不会写入模型提示词。`})]})]}),(0,G.jsxs)(`div`,{className:`agent-appearance-controls`,children:[(0,G.jsxs)(`div`,{className:`appearance-choice-group`,role:`group`,"aria-label":`头像图标`,children:[(0,G.jsx)(`span`,{children:`图标`}),(0,G.jsx)(`div`,{children:cv.map(e=>(0,G.jsx)(`button`,{className:i.icon===e.id&&!i.imageUrl?`active`:``,type:`button`,"aria-label":`使用 ${e.label} 图标`,"aria-pressed":i.icon===e.id&&!i.imageUrl,disabled:n,onClick:()=>a(t=>({...t,icon:e.id,imageUrl:null})),children:(0,G.jsx)(e.icon,{size:16})},e.id))})]}),(0,G.jsxs)(`div`,{className:`appearance-choice-group color`,role:`group`,"aria-label":`头像配色`,children:[(0,G.jsx)(`span`,{children:`配色`}),(0,G.jsx)(`div`,{children:lv.map(e=>(0,G.jsx)(`button`,{className:i.color===e.value?`active`:``,type:`button`,"aria-label":`使用${e.label}配色`,"aria-pressed":i.color===e.value,disabled:n,style:{"--appearance-swatch":e.value},onClick:()=>a(t=>({...t,color:e.value}))},e.value))})]})]}),(0,G.jsxs)(`div`,{className:`agent-appearance-actions`,children:[(0,G.jsx)(`input`,{ref:S,className:`sr-only`,type:`file`,accept:`image/png,image/webp`,"aria-label":`选择 Agent 头像图片`,disabled:n,onChange:e=>{T(e.target.files?.[0]),e.target.value=``}}),(0,G.jsxs)(`button`,{className:`button tertiary small`,type:`button`,disabled:n,onClick:()=>S.current?.click(),children:[(0,G.jsx)(Ae,{size:14}),(0,G.jsx)(`span`,{children:`上传图片`})]}),i.imageUrl?(0,G.jsxs)(`button`,{className:`button tertiary small`,type:`button`,disabled:n,onClick:()=>a(e=>({...e,imageUrl:null})),children:[(0,G.jsx)(ht,{size:14}),(0,G.jsx)(`span`,{children:`移除图片`})]}):null,(0,G.jsx)(`button`,{className:`button secondary small`,type:`button`,disabled:n||v||!w,onClick:D,children:v?`正在保存`:`保存外观`})]}),b?(0,G.jsx)(`p`,{className:`studio-field-error`,role:`alert`,children:b}):null,(0,G.jsx)(Da,{open:!!o,onOpenChange:e=>{!e&&!h&&c(null)},title:`调整 Agent 头像`,description:`拖动画面并缩放,保存后会生成 512 × 512 WebP。`,closeDisabled:h,className:`avatar-crop-dialog`,footer:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{className:`button tertiary`,type:`button`,disabled:h,onClick:()=>c(null),children:`取消`}),(0,G.jsx)(`button`,{className:`button accent`,type:`button`,disabled:h||!p,onClick:E,children:h?`正在上传`:`使用裁剪`})]}),children:o?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`avatar-crop-stage`,children:(0,G.jsx)(sv,{image:o,crop:l,zoom:d,aspect:1,showGrid:!1,onCropChange:u,onZoomChange:f,onCropComplete:(e,t)=>m(t)})}),(0,G.jsxs)(`label`,{className:`avatar-zoom-control`,children:[(0,G.jsx)(`span`,{children:`缩放`}),(0,G.jsx)(`input`,{type:`range`,min:1,max:3,step:.05,value:d,onChange:e=>f(Number(e.target.value))})]})]}):null})]})}var mv=Object.defineProperty,hv=s.forwardRef(((e,t)=>mv(e,`name`,{value:t,configurable:!0}))(function(e,t){return(0,G.jsx)(Tn.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}})},`Label`)),gv=Object.defineProperty,_v=(e,t)=>gv(e,`name`,{value:t,configurable:!0}),[vv,yv]=zt(`Tooltip`,[mc]),bv=mc(),xv=`TooltipProvider`,Sv=700,Cv=`tooltip.open`,[wv,Tv]=vv(xv),Ev=_v(e=>{let{__scopeTooltip:t,delayDuration:n=Sv,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=s.useRef(!0),c=s.useRef(!1),l=s.useRef(0);return s.useEffect(()=>{let e=l.current;return()=>window.clearTimeout(e)},[]),(0,G.jsx)(wv,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:s.useCallback(()=>{r<=0||(window.clearTimeout(l.current),o.current=!1)},[r]),onClose:s.useCallback(()=>{r<=0||(window.clearTimeout(l.current),l.current=window.setTimeout(()=>o.current=!0,r))},[r]),isPointerInTransitRef:c,onPointerInTransitChange:s.useCallback(e=>{c.current=e},[]),disableHoverableContent:i,children:a})},`TooltipProvider`),Dv=`Tooltip`,[Ov,kv]=vv(Dv),Av=_v(e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:c}=e,l=Tv(Dv,e.__scopeTooltip),u=bv(t),[d,f]=s.useState(null),[p,m]=s.useState(void 0),h=Kt(),g=s.useRef(0),_=o??l.disableHoverableContent,v=c??l.delayDuration,y=s.useRef(!1),[b,x]=tn({prop:r,defaultProp:i??!1,onChange:_v(e=>{e?(l.onOpen(),document.dispatchEvent(new CustomEvent(Cv))):l.onClose(),a?.(e)},`onChange`),caller:Dv}),S=s.useMemo(()=>b?y.current?`delayed-open`:`instant-open`:`closed`,[b]),C=s.useCallback(()=>{window.clearTimeout(g.current),g.current=0,y.current=!1,x(!0)},[x]),w=s.useCallback(()=>{window.clearTimeout(g.current),g.current=0,x(!1)},[x]),T=s.useCallback(()=>{window.clearTimeout(g.current),g.current=window.setTimeout(()=>{y.current=!0,x(!0),g.current=0},v)},[v,x]);s.useEffect(()=>()=>{g.current&&=(window.clearTimeout(g.current),0)},[]);let E=p??h;return(0,G.jsx)(Ac,{...u,children:(0,G.jsx)(Ov,{scope:t,contentId:E,setContentId:m,open:b,stateAttribute:S,trigger:d,onTriggerChange:f,onTriggerEnter:s.useCallback(()=>{l.isOpenDelayedRef.current?T():C()},[l.isOpenDelayedRef,T,C]),onTriggerLeave:s.useCallback(()=>{_?w():(window.clearTimeout(g.current),g.current=0)},[w,_]),onOpen:C,onClose:w,disableHoverableContent:_,children:n})})},`Tooltip`),jv=`TooltipTrigger`,Mv=s.forwardRef(_v(function(e,t){let{__scopeTooltip:n,...r}=e,i=kv(jv,n),a=Tv(jv,n),o=bv(n),c=Ft(t,s.useRef(null),i.onTriggerChange),l=s.useRef(!1),u=s.useRef(!1),d=s.useCallback(()=>l.current=!1,[]);return s.useEffect(()=>()=>document.removeEventListener(`pointerup`,d),[d]),(0,G.jsx)(jc,{asChild:!0,...o,children:(0,G.jsx)(Tn.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:c,onPointerMove:K(e.onPointerMove,e=>{e.pointerType!==`touch`&&!u.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),u.current=!0)}),onPointerLeave:K(e.onPointerLeave,()=>{i.onTriggerLeave(),u.current=!1}),onPointerDown:K(e.onPointerDown,()=>{i.open&&i.onClose(),l.current=!0,document.addEventListener(`pointerup`,d,{once:!0})}),onFocus:K(e.onFocus,()=>{l.current||i.onOpen()}),onBlur:K(e.onBlur,i.onClose),onClick:K(e.onClick,i.onClose)})})},`TooltipTrigger`)),Nv=`TooltipPortal`,[Pv,Fv]=vv(Nv,{forceMount:void 0}),Iv=_v(e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=kv(Nv,t);return(0,G.jsx)(Pv,{scope:t,forceMount:n,children:(0,G.jsx)(fr,{present:n||a.open,children:(0,G.jsx)(cr,{asChild:!0,container:i,children:r})})})},`TooltipPortal`),Lv=`TooltipContent`,Rv=s.forwardRef(_v(function(e,t){let n=Fv(Lv,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=kv(Lv,e.__scopeTooltip);return(0,G.jsx)(fr,{present:r||o.open,children:o.disableHoverableContent?(0,G.jsx)(Vv,{side:i,...a,ref:t}):(0,G.jsx)(zv,{side:i,...a,ref:t})})},`TooltipContent`)),zv=s.forwardRef(_v(function(e,t){let n=kv(Lv,e.__scopeTooltip),r=Tv(Lv,e.__scopeTooltip),i=s.useRef(null),a=Ft(t,i),[o,c]=s.useState(null),{trigger:l,onClose:u}=n,d=i.current,{onPointerInTransitChange:f}=r,p=s.useCallback(()=>{c(null),f(!1)},[f]),m=s.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=Wv(r,Uv(r,n.getBoundingClientRect())),a=Gv(t.getBoundingClientRect()),o=qv([...i,...a]);c(o),f(!0)},[f]);return s.useEffect(()=>()=>p(),[p]),s.useEffect(()=>{if(l&&d){let e=_v(e=>m(e,d),`handleTriggerLeave`),t=_v(e=>m(e,l),`handleContentLeave`);return l.addEventListener(`pointerleave`,e),d.addEventListener(`pointerleave`,t),()=>{l.removeEventListener(`pointerleave`,e),d.removeEventListener(`pointerleave`,t)}}},[l,d,m,p]),s.useEffect(()=>{if(o){let e=_v(e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=l?.contains(t)||d?.contains(t),i=!Kv(n,o);r?p():i&&(p(),u())},`handleTrackPointerGrace`);return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[l,d,o,u,p]),(0,G.jsx)(Vv,{...e,ref:a})},`TooltipContentHoverable`)),Bv=fn(`TooltipContent`),Vv=s.forwardRef(_v(function(e,t){let{__scopeTooltip:n,children:r,"aria-label":i,id:a,onEscapeKeyDown:o,onPointerDownOutside:c,...l}=e,u=kv(Lv,n),d=bv(n),{onClose:f}=u;s.useEffect(()=>(document.addEventListener(Cv,f),()=>document.removeEventListener(Cv,f)),[f]),s.useEffect(()=>{if(u.trigger){let e=_v(e=>{e.target instanceof Node&&e.target.contains(u.trigger)&&f()},`handleScroll`);return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[u.trigger,f]);let{setContentId:p}=u;return Vt(()=>(p(a),()=>{p(void 0)}),[a,p]),(0,G.jsx)(Ln,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:f,children:(0,G.jsxs)(Mc,{"data-state":u.stateAttribute,role:i?void 0:`tooltip`,id:i?void 0:u.contentId,...d,...l,ref:t,style:{...l.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,G.jsx)(Bv,{children:r}),i?(0,G.jsx)(Dm,{id:u.contentId,role:`tooltip`,children:i}):null]})})},`TooltipContentImpl`)),Hv=s.forwardRef(_v(function(e,t){let{__scopeTooltip:n,...r}=e,i=bv(n);return(0,G.jsx)(Nc,{...i,...r,ref:t})},`TooltipArrow`));function Uv(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}_v(Uv,`getExitSideFromRect`);function Wv(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n})}return r}_v(Wv,`getPaddedExitPoints`);function Gv(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}_v(Gv,`getPointsFromRect`);function Kv(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}_v(Kv,`isPointInPolygon`);function qv(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),Jv(t)}_v(qv,`getHull`);function Jv(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}_v(Jv,`getHullPresorted`);var Yv=Ev,Xv=Av,Zv=Mv,Qv=Iv,$v=Rv,ey=Hv,ty={required:`*`,optional:``,generated:`自动生成`};function ny({children:e,htmlFor:t,requirement:n,hint:r}){return(0,G.jsxs)(`div`,{className:`studio-field-label-row`,children:[(0,G.jsxs)(hv,{className:`studio-field-label`,htmlFor:t,children:[(0,G.jsx)(`span`,{children:e}),n&&ty[n]?(0,G.jsxs)(`span`,{className:`studio-field-requirement ${n}`,children:[(0,G.jsx)(`span`,{"aria-hidden":`true`,children:ty[n]}),n===`required`&&(0,G.jsx)(`span`,{className:`sr-only`,children:`必填`})]}):null]}),r?(0,G.jsx)(Yv,{delayDuration:240,children:(0,G.jsxs)(Xv,{children:[(0,G.jsx)(Zv,{asChild:!0,children:(0,G.jsx)(`button`,{className:`field-help-trigger`,type:`button`,"aria-label":`${String(e)}说明`,onClick:e=>e.preventDefault(),children:(0,G.jsx)(se,{size:14})})}),(0,G.jsx)(Qv,{children:(0,G.jsxs)($v,{className:`studio-tooltip field-help-tooltip`,side:`top`,sideOffset:7,children:[r,(0,G.jsx)(ey,{className:`studio-tooltip-arrow`})]})})]})}):null]})}function ry({id:e,children:t}){return(0,G.jsx)(`p`,{className:`studio-field-error`,id:e,role:`alert`,children:t})}function Y({label:e,requirement:t,hint:n,error:r,htmlFor:i,children:a,className:o,footer:c}){let l=(0,s.useId)(),u=n?`${l}-hint`:void 0,d=r?`${l}-error`:void 0,f=[u,d].filter(Boolean).join(` `)||void 0,p=a;if((0,s.isValidElement)(a)){let e=a,t=typeof e.props[`aria-describedby`]==`string`?e.props[`aria-describedby`]:void 0;p=(0,s.cloneElement)(e,{"aria-describedby":[t,f].filter(Boolean).join(` `)||void 0,"aria-invalid":r?!0:e.props[`aria-invalid`]})}return(0,G.jsxs)(`div`,{className:`studio-form-field${r?` has-error`:``}${o?` ${o}`:``}`,children:[(0,G.jsx)(ny,{htmlFor:i,requirement:t,hint:n,children:e}),(0,G.jsx)(`div`,{className:`studio-field-control`,children:p}),c?(0,G.jsx)(`div`,{className:`studio-field-footer`,children:c}):null,n?(0,G.jsx)(`span`,{className:`sr-only`,id:u,children:n}):null,r?(0,G.jsx)(ry,{id:d,children:r}):null]})}var iy=Object.defineProperty,ay=(e,t)=>iy(e,`name`,{value:t,configurable:!0}),oy=`Popover`,[sy,cy]=zt(oy,[mc]),ly=mc(),[uy,dy]=sy(oy),fy=ay(e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,c=ly(t),l=s.useRef(null),[u,d]=s.useState(!1),[f,p]=tn({prop:r,defaultProp:i??!1,onChange:a,caller:oy});return(0,G.jsx)(Ac,{...c,children:(0,G.jsx)(uy,{scope:t,contentId:Kt(),triggerRef:l,open:f,onOpenChange:p,onOpenToggle:s.useCallback(()=>p(e=>!e),[p]),hasCustomAnchor:u,onCustomAnchorAdd:s.useCallback(()=>d(!0),[]),onCustomAnchorRemove:s.useCallback(()=>d(!1),[]),modal:o,children:n})})},`Popover`),py=`PopoverTrigger`,my=s.forwardRef(ay(function(e,t){let{__scopePopover:n,...r}=e,i=dy(py,n),a=ly(n),o=Ft(t,i.triggerRef),s=(0,G.jsx)(Tn.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.open?i.contentId:void 0,"data-state":Ty(i.open),...r,ref:o,onClick:K(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:(0,G.jsx)(jc,{asChild:!0,...a,children:s})},`PopoverTrigger`)),hy=`PopoverPortal`,[gy,_y]=sy(hy,{forceMount:void 0}),vy=ay(e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=dy(hy,t);return(0,G.jsx)(gy,{scope:t,forceMount:n,children:(0,G.jsx)(fr,{present:n||a.open,children:(0,G.jsx)(cr,{asChild:!0,container:i,children:r})})})},`PopoverPortal`),yy=`PopoverContent`,by=s.forwardRef(ay(function(e,t){let n=_y(yy,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=dy(yy,e.__scopePopover);return(0,G.jsx)(fr,{present:r||a.open,children:a.modal?(0,G.jsx)(Sy,{...i,ref:t}):(0,G.jsx)(Cy,{...i,ref:t})})},`PopoverContent`)),xy=un(`PopoverContent.RemoveScroll`),Sy=s.forwardRef(ay(function(e,t){let n=dy(yy,e.__scopePopover),r=s.useRef(null),i=Ft(t,r),a=s.useRef(!1);return s.useEffect(()=>{let e=r.current;if(e)return Wi(e)},[]),(0,G.jsx)(Fi,{as:xy,allowPinchZoom:!0,children:(0,G.jsx)(wy,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:K(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:K(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;a.current=r},{checkForDefaultPrevented:!1}),onFocusOutside:K(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})},`PopoverContentModal`)),Cy=s.forwardRef(ay(function(e,t){let n=dy(yy,e.__scopePopover),r=s.useRef(!1),i=s.useRef(!1);return(0,G.jsx)(wy,{...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()}})},`PopoverContentNonModal`)),wy=s.forwardRef(ay(function(e,t){let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,disableOutsidePointerEvents:o,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onInteractOutside:u,...d}=e,f=dy(yy,n),p=ly(n);return Cr(),(0,G.jsx)(Yn,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,G.jsx)(Ln,{asChild:!0,disableOutsidePointerEvents:o,onInteractOutside:u,onEscapeKeyDown:s,onPointerDownOutside:c,onFocusOutside:l,onDismiss:()=>f.onOpenChange(!1),deferPointerDownOutside:!0,children:(0,G.jsx)(Mc,{"data-state":Ty(f.open),role:`dialog`,id:f.contentId,...p,...d,ref:t,style:{...d.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)`}})})})},`PopoverContentImpl`));function Ty(e){return e?`open`:`closed`}ay(Ty,`getState`);var Ey=fy,Dy=my,Oy=vy,ky=by,Ay=1,jy=.9,My=.8,Ny=.17,Py=.1,Fy=.999,Iy=.9999,Ly=.99,Ry=/[\\\/_+.#"@\[\(\{&]/,zy=/[\\\/_+.#"@\[\(\{&]/g,By=/[\s-]/,Vy=/[\s-]/g;function Hy(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?Ay:Ly;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,d,f,p,m;l>=0;)d=Hy(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=Ay:Ry.test(e.charAt(l-1))?(d*=My,p=e.slice(i,l-1).match(zy),p&&i>0&&(d*=Fy**+p.length)):By.test(e.charAt(l-1))?(d*=jy,m=e.slice(i,l-1).match(Vy),m&&i>0&&(d*=Fy**+m.length)):(d*=Ny,i>0&&(d*=Fy**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=Iy)),(d<Py&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=Hy(e,t,n,r,l+1,a+2,o),f*Py>d&&(d=f*Py)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function Uy(e){return e.toLowerCase().replace(Vy,` `)}function Wy(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,Hy(e,t,Uy(e),Uy(t),0,0,{})}var Gy=`[cmdk-group=""]`,Ky=`[cmdk-group-items=""]`,qy=`[cmdk-group-heading=""]`,Jy=`[cmdk-item=""]`,Yy=`${Jy}:not([aria-disabled="true"])`,Xy=`cmdk-item-select`,Zy=`data-value`,Qy=(e,t,n)=>Wy(e,t,n),$y=s.createContext(void 0),eb=()=>s.useContext($y),tb=s.createContext(void 0),nb=()=>s.useContext(tb),rb=s.createContext(void 0),ib=s.forwardRef((e,t)=>{let n=vb(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=vb(()=>new Set),i=vb(()=>new Map),a=vb(()=>new Map),o=vb(()=>new Set),c=gb(e),{label:l,children:u,value:d,onValueChange:f,filter:p,shouldFilter:m,loop:h,disablePointerSelection:g=!1,vimBindings:_=!0,...v}=e,y=Kt(),b=Kt(),x=Kt(),S=s.useRef(null),C=xb();_b(()=>{if(d!==void 0){let e=d.trim();n.current.value=e,w.emit()}},[d]),_b(()=>{C(6,A)},[]);let w=s.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)k(),D(),C(1,O);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(x);e?e.focus():(i=document.getElementById(y))==null||i.focus()}if(C(7,()=>{n.current.selectedItemId=j()?.id,w.emit()}),r||C(5,A),c.current?.value!==void 0){let e=t??``;(o=(a=c.current).onValueChange)==null||o.call(a,e);return}}w.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),T=s.useMemo(()=>({value:(e,t,r)=>{t!==a.current.get(e)?.value&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,E(t,r)),C(2,()=>{D(),w.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),C(3,()=>{k(),D(),n.current.value||O(),w.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=j();C(4,()=>{k(),t?.getAttribute(`id`)===e&&O(),w.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{a.current.delete(e),i.current.delete(e)}),filter:()=>c.current.shouldFilter,label:l||e[`aria-label`],getDisablePointerSelection:()=>c.current.disablePointerSelection,listId:y,inputId:x,labelId:b,listInnerRef:S}),[]);function E(e,t){let r=c.current?.filter??Qy;return e?r(e,n.current.search,t):0}function D(){if(!n.current.search||c.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=S.current;M().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(Ky);t?t.appendChild(e.parentElement===t?e:e.closest(`${Ky} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${Ky} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${Gy}[${Zy}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=M().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(Zy);w.setState(`value`,e||void 0)}function k(){if(!n.current.search||c.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=E(a.current.get(t)?.value??``,a.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function A(){var e;let t=j();t&&(t.parentElement?.firstChild===t&&((e=t.closest(Gy)?.querySelector(qy))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function j(){return S.current?.querySelector(`${Jy}[aria-selected="true"]`)}function M(){return Array.from(S.current?.querySelectorAll(Yy)||[])}function N(e){let t=M()[e];t&&w.setState(`value`,t.getAttribute(Zy))}function P(e){var t;let n=j(),r=M(),i=r.findIndex(e=>e===n),a=r[i+e];(t=c.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&w.setState(`value`,a.getAttribute(Zy))}function F(e){let t=j()?.closest(Gy),n;for(;t&&!n;)t=e>0?mb(t,Gy):hb(t,Gy),n=t?.querySelector(Yy);n?w.setState(`value`,n.getAttribute(Zy)):P(e)}let I=()=>N(M().length-1),L=e=>{e.preventDefault(),e.metaKey?I():e.altKey?F(1):P(1)},R=e=>{e.preventDefault(),e.metaKey?N(0):e.altKey?F(-1):P(-1)};return s.createElement(Tn.div,{ref:t,tabIndex:-1,...v,"cmdk-root":``,onKeyDown:e=>{var t;(t=v.onKeyDown)==null||t.call(v,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:_&&e.ctrlKey&&L(e);break;case`ArrowDown`:L(e);break;case`p`:case`k`:_&&e.ctrlKey&&R(e);break;case`ArrowUp`:R(e);break;case`Home`:e.preventDefault(),N(0);break;case`End`:e.preventDefault(),I();break;case`Enter`:{e.preventDefault();let t=j();if(t){let e=new Event(Xy);t.dispatchEvent(e)}}}}},s.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:wb},l),Cb(e,e=>s.createElement(tb.Provider,{value:w},s.createElement($y.Provider,{value:T},e))))}),ab=s.forwardRef((e,t)=>{let n=Kt(),r=s.useRef(null),i=s.useContext(rb),a=eb(),o=gb(e),c=o.current?.forceMount??i?.forceMount;_b(()=>{if(!c)return a.item(n,i?.id)},[c]);let l=bb(n,r,[e.value,e.children,r],e.keywords),u=nb(),d=yb(e=>e.value&&e.value===l.current),f=yb(e=>c||a.filter()===!1?!0:!e.search||e.filtered.items.get(n)>0);s.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(Xy,p),()=>t.removeEventListener(Xy,p)},[f,e.onSelect,e.disabled]);function p(){var e,t;m(),(t=(e=o.current).onSelect)==null||t.call(e,l.current)}function m(){u.setState(`value`,l.current,!0)}if(!f)return null;let{disabled:h,value:g,onSelect:_,forceMount:v,keywords:y,...b}=e;return s.createElement(Tn.div,{ref:Pt(r,t),...b,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!h,"aria-selected":!!d,"data-disabled":!!h,"data-selected":!!d,onPointerMove:h||a.getDisablePointerSelection()?void 0:m,onClick:h?void 0:p},e.children)}),ob=s.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=Kt(),c=s.useRef(null),l=s.useRef(null),u=Kt(),d=eb(),f=yb(e=>i||d.filter()===!1?!0:!e.search||e.filtered.groups.has(o));_b(()=>d.group(o),[]),bb(o,c,[e.value,e.heading,l]);let p=s.useMemo(()=>({id:o,forceMount:i}),[i]);return s.createElement(Tn.div,{ref:Pt(c,t),...a,"cmdk-group":``,role:`presentation`,hidden:!f||void 0},n&&s.createElement(`div`,{ref:l,"cmdk-group-heading":``,"aria-hidden":!0,id:u},n),Cb(e,e=>s.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?u:void 0},s.createElement(rb.Provider,{value:p},e))))}),sb=s.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=s.useRef(null),a=yb(e=>!e.search);return!n&&!a?null:s.createElement(Tn.div,{ref:Pt(i,t),...r,"cmdk-separator":``,role:`separator`})}),cb=s.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=nb(),o=yb(e=>e.search),c=yb(e=>e.selectedItemId),l=eb();return s.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),s.createElement(Tn.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":l.listId,"aria-labelledby":l.labelId,"aria-activedescendant":c,id:l.inputId,type:`text`,value:i?e.value:o,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),lb=s.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=s.useRef(null),o=s.useRef(null),c=yb(e=>e.selectedItemId),l=eb();return s.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),s.createElement(Tn.div,{ref:Pt(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":c,"aria-label":r,id:l.listId},Cb(e,e=>s.createElement(`div`,{ref:Pt(o,l.listInnerRef),"cmdk-list-sizer":``},e)))}),ub=s.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...c}=e;return s.createElement(Qi,{open:n,onOpenChange:r},s.createElement(na,{container:o},s.createElement(ia,{"cmdk-overlay":``,className:i}),s.createElement(ca,{"aria-label":e.label,"cmdk-dialog":``,className:a},s.createElement(ib,{ref:t,...c}))))}),db=s.forwardRef((e,t)=>yb(e=>e.filtered.count===0)?s.createElement(Tn.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),fb=s.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return s.createElement(Tn.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},Cb(e,e=>s.createElement(`div`,{"aria-hidden":!0},e)))}),pb=Object.assign(ib,{List:lb,Item:ab,Input:cb,Group:ob,Separator:sb,Dialog:ub,Empty:db,Loading:fb});function mb(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function hb(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function gb(e){let t=s.useRef(e);return _b(()=>{t.current=e}),t}var _b=typeof window>`u`?s.useEffect:s.useLayoutEffect;function vb(e){let t=s.useRef();return t.current===void 0&&(t.current=e()),t}function yb(e){let t=nb(),n=()=>e(t.snapshot());return s.useSyncExternalStore(t.subscribe,n,n)}function bb(e,t,n,r=[]){let i=s.useRef(),a=eb();return _b(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(Zy,s),i.current=s}),i}var xb=()=>{let[e,t]=s.useState(),n=vb(()=>new Map);return _b(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function Sb(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function Cb({asChild:e,children:t},n){return e&&s.isValidElement(t)?s.cloneElement(Sb(t),{ref:t.ref},n(t.props.children)):n(t)}var wb={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`};function Tb({ariaLabel:e,items:t,selectedIds:n,getId:r,getLabel:i,getDescription:a=()=>``,onChange:o,searchPlaceholder:c=`搜索`,emptyMessage:l=`没有匹配项`,disabledIds:u=[]}){let[d,f]=(0,s.useState)(!1),[p,m]=(0,s.useState)(!1),h=(0,s.useMemo)(()=>new Set(u),[u]),g=(0,s.useMemo)(()=>new Set(n),[n]),_=t.filter(e=>g.has(r(e))),v=p?_:t;function y(e){h.has(e)||o(g.has(e)?n.filter(t=>t!==e):[...n,e])}return(0,G.jsxs)(`div`,{className:`studio-multi-select`,children:[(0,G.jsxs)(`div`,{className:`studio-multi-select-summary`,children:[(0,G.jsx)(`span`,{children:n.length?`已选 ${n.length} 个`:`尚未选择`}),n.length?(0,G.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>o([]),children:`清空`}):null]}),(0,G.jsx)(`div`,{className:`studio-multi-select-selection`,"data-testid":`studio-multi-select-selection`,children:_.map(e=>{let t=r(e),n=i(e);return(0,G.jsxs)(`span`,{className:`studio-selection-chip`,children:[(0,G.jsx)(`span`,{title:n,children:n}),h.has(t)?null:(0,G.jsx)(`button`,{type:`button`,"aria-label":`移除 ${n}`,onClick:()=>y(t),children:(0,G.jsx)(bt,{size:12})})]},t)})}),(0,G.jsxs)(Ey,{open:d,onOpenChange:f,children:[(0,G.jsx)(Dy,{asChild:!0,children:(0,G.jsxs)(`button`,{className:`studio-multi-select-trigger`,type:`button`,"aria-label":e,"aria-expanded":d,children:[(0,G.jsx)(`span`,{children:n.length?`继续选择`:e}),(0,G.jsx)(H,{size:15})]})}),(0,G.jsx)(Oy,{children:(0,G.jsx)(ky,{className:`studio-multi-select-popover`,align:`start`,sideOffset:6,collisionPadding:12,children:(0,G.jsxs)(pb,{loop:!0,label:c,children:[(0,G.jsxs)(`div`,{className:`studio-command-search`,children:[(0,G.jsx)(tt,{size:14,"aria-hidden":`true`}),(0,G.jsx)(pb.Input,{"aria-label":c,placeholder:c,autoFocus:!0})]}),(0,G.jsxs)(`div`,{className:`studio-multi-select-tools`,children:[(0,G.jsx)(`button`,{className:p?`selected`:``,type:`button`,"aria-pressed":p,onClick:()=>m(e=>!e),children:`仅看已选`}),(0,G.jsxs)(`span`,{children:[v.length,` 项`]})]}),(0,G.jsxs)(pb.List,{className:`studio-command-list`,children:[(0,G.jsx)(pb.Empty,{children:l}),v.map(e=>{let t=r(e),n=i(e),o=a(e),s=g.has(t),c=h.has(t);return(0,G.jsxs)(pb.Item,{value:`${n} ${o} ${t}`,disabled:c,onSelect:()=>y(t),children:[(0,G.jsx)(`span`,{className:`studio-option-check`,role:`checkbox`,"aria-checked":s,children:s?(0,G.jsx)(V,{size:13}):null}),(0,G.jsxs)(`span`,{className:`studio-option-copy`,children:[(0,G.jsx)(`strong`,{children:n}),o?(0,G.jsx)(`small`,{children:o}):null]})]},t)})]})]})})})]})]})}var Eb=(0,s.lazy)(()=>f(()=>import(`./PrismRenderer-IYN-ffww.js`),__vite__mapDeps([0,1,2])));function Db({code:e,language:t=`text`,filename:n,wrap:r=!1,showLineNumbers:i=!0}){let[a,o]=(0,s.useState)(r),[c,l]=(0,s.useState)(!1);(0,s.useEffect)(()=>o(r),[r]);async function u(){navigator.clipboard?.writeText&&(await navigator.clipboard.writeText(e),l(!0),window.setTimeout(()=>l(!1),1600))}let d=n?`${n} 源码`:`${t||`text`} 代码`;return(0,G.jsxs)(`section`,{className:`code-viewer`,role:`region`,"aria-label":d,"data-code-theme":`studio`,"data-wrap":String(a),children:[(0,G.jsxs)(`header`,{className:`code-viewer-toolbar`,children:[(0,G.jsxs)(`div`,{children:[n&&(0,G.jsx)(`strong`,{title:n,children:n}),(0,G.jsx)(`span`,{children:t||`text`})]}),(0,G.jsxs)(`div`,{className:`code-viewer-actions`,children:[(0,G.jsx)(`button`,{className:`icon-button tertiary`,type:`button`,"aria-label":a?`取消自动换行`:`自动换行`,title:a?`取消自动换行`:`自动换行`,"aria-pressed":a,onClick:()=>o(e=>!e),children:(0,G.jsx)(mt,{size:15})}),(0,G.jsx)(`button`,{className:`icon-button tertiary`,type:`button`,"aria-label":c?`已复制`:`复制代码`,title:c?`已复制`:`复制代码`,onClick:()=>void u(),children:c?(0,G.jsx)(V,{size:15}):(0,G.jsx)(me,{size:15})})]})]}),(0,G.jsx)(`div`,{className:`code-viewer-scroll`,children:(0,G.jsx)(s.Suspense,{fallback:(0,G.jsx)(`pre`,{className:`code-viewer-fallback`,children:(0,G.jsx)(`code`,{children:e})}),children:(0,G.jsx)(Eb,{code:e,language:t||`text`,showLineNumbers:i})})})]})}function Ob(e){return(e.split(`.`).filter(Boolean).at(-1)||e).replace(/_([a-z])/g,(e,t)=>t.toUpperCase())}function kb(e){if(!e?.length)return null;let t=e[e.length-1];return typeof t==`string`?t:null}function Ab(e,t,n){typeof t==`string`&&t.trim()&&typeof n==`string`&&n&&(e[Ob(t)]=n)}function jb(e,t){if(!(!t||typeof t!=`object`||Array.isArray(t)))for(let[n,r]of Object.entries(t))typeof r==`string`?Ab(e,n,r):Array.isArray(r)&&typeof r[0]==`string`&&Ab(e,n,r[0])}function Mb(e){if(!e||typeof e!=`object`)return null;let t=e,n={};jb(n,t.errors);let r=t.error;if(r&&typeof r==`object`&&!Array.isArray(r)){let e=r;if(typeof e.field==`string`&&typeof e.message==`string`)return{[e.field]:e.message};let t=e.fields;if(t&&typeof t==`object`&&!Array.isArray(t)){let e={},n=!1;for(let[r,i]of Object.entries(t))typeof i==`string`&&(e[r]=i,n=!0);if(n)return e}let i=e.details;if(Array.isArray(i))for(let e of i)Ab(n,e.field||kb(e.loc),e.message);else i&&typeof i==`object`&&jb(n,i.fields)}return Object.keys(n).length?n:null}function Nb(e,t){let n=Mb(e);if(!n)return!1;for(let[e,r]of Object.entries(n))t(e,{type:`server`,message:r});return!0}var Pb;function X(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,"name",{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,"init",{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}var Fb=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Ib=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};(Pb=globalThis).__zod_globalConfig??(Pb.__zod_globalConfig={});var Lb=globalThis.__zod_globalConfig;function Rb(e){return e&&Object.assign(Lb,e),Lb}function zb(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function Bb(e,t){return typeof t==`bigint`?t.toString():t}function Vb(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function Hb(e){return e==null}function Ub(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Wb(e,t){let n=e/t,r=Math.round(n),i=2**-52*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}var Gb=Symbol(`evaluating`);function Kb(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Gb)return r===void 0&&(r=Gb,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function qb(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Jb(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function Yb(e){return JSON.stringify(e)}function Xb(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}var Zb=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function Qb(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var $b=Vb(()=>{if(Lb.jitless||typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function ex(e){if(Qb(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return Qb(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function tx(e){return ex(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var nx=new Set([`string`,`number`,`symbol`]);function rx(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function ix(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function ax(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function ox(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}var sx={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function cx(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return ix(e,Jb(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return qb(this,`shape`,e),e},checks:[]}))}function lx(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return ix(e,Jb(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return qb(this,`shape`,r),r},checks:[]}))}function ux(e,t){if(!ex(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return ix(e,Jb(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return qb(this,`shape`,n),n}}))}function dx(e,t){if(!ex(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return ix(e,Jb(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return qb(this,`shape`,n),n}}))}function fx(e,t){if(e._zod.def.checks?.length)throw Error(`.merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.`);return ix(e,Jb(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return qb(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function px(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return ix(t,Jb(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return qb(this,`shape`,i),i},checks:[]}))}function mx(e,t,n){return ix(t,Jb(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return qb(this,`shape`,i),i}}))}function hx(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function gx(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function _x(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function vx(e){return typeof e==`string`?e:e?.message}function yx(e,t,n){let r=e.message?e.message:vx(e.inst?._zod.def?.error?.(e))??vx(t?.error?.(e))??vx(n.customError?.(e))??vx(n.localeError?.(e))??`Invalid input`,{inst:i,continue:a,input:o,...s}=e;return s.path??=[],s.message=r,t?.reportInput&&(s.input=o),s}function bx(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function xx(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}var Sx=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Bb,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Cx=X(`$ZodError`,Sx),wx=X(`$ZodError`,Sx,{Parent:Error});function Tx(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function Ex(e,t=e=>e.message){let n={_errors:[]},r=(e,i=[])=>{for(let a of e.issues)if(a.code===`invalid_union`&&a.errors.length)a.errors.map(e=>r({issues:e},[...i,...a.path]));else if(a.code===`invalid_key`)r({issues:a.issues},[...i,...a.path]);else if(a.code===`invalid_element`)r({issues:a.issues},[...i,...a.path]);else{let e=[...i,...a.path];if(e.length===0)n._errors.push(t(a));else{let r=n,i=0;for(;i<e.length;){let n=e[i];i===e.length-1?(r[n]=r[n]||{_errors:[]},r[n]._errors.push(t(a))):r[n]=r[n]||{_errors:[]},r=r[n],i++}}}};return r(e),n}var Dx=e=>(t,n,r,i)=>{let a=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new Fb;if(o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>yx(e,a,Rb())));throw Zb(t,i?.callee),t}return o.value},Ox=e=>async(t,n,r,i)=>{let a=r?{...r,async:!0}:{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>yx(e,a,Rb())));throw Zb(t,i?.callee),t}return o.value},kx=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new Fb;return a.issues.length?{success:!1,error:new(e??Cx)(a.issues.map(e=>yx(e,i,Rb())))}:{success:!0,data:a.value}},Ax=kx(wx),jx=e=>async(t,n,r)=>{let i=r?{...r,async:!0}:{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>yx(e,i,Rb())))}:{success:!0,data:a.value}},Mx=jx(wx),Nx=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Dx(e)(t,n,i)},Px=e=>(t,n,r)=>Dx(e)(t,n,r),Fx=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return Ox(e)(t,n,i)},Ix=e=>async(t,n,r)=>Ox(e)(t,n,r),Lx=e=>(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return kx(e)(t,n,i)},Rx=e=>(t,n,r)=>kx(e)(t,n,r),zx=e=>async(t,n,r)=>{let i=r?{...r,direction:`backward`}:{direction:`backward`};return jx(e)(t,n,i)},Bx=e=>async(t,n,r)=>jx(e)(t,n,r),Vx=/^[cC][0-9a-z]{6,}$/,Hx=/^[0-9a-z]+$/,Ux=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Wx=/^[0-9a-vA-V]{20}$/,Gx=/^[A-Za-z0-9]{27}$/,Kx=/^[a-zA-Z0-9_-]{21}$/,qx=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Jx=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Yx=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Xx=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Zx=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;function Qx(){return new RegExp(Zx,`u`)}var $x=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,eS=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,tS=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,nS=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,rS=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,iS=/^[A-Za-z0-9_-]*$/,aS=/^https?$/,oS=/^\+[1-9]\d{6,14}$/,sS=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,cS=RegExp(`^${sS}$`);function lS(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function uS(e){return RegExp(`^${lS(e)}$`)}function dS(e){let t=lS({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${sS}T(?:${r})$`)}var fS=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},pS=/^-?\d+$/,mS=/^-?\d+(?:\.\d+)?$/,hS=/^(?:true|false)$/i,gS=/^[^A-Z]*$/,_S=/^[^a-z]*$/,vS=X(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),yS={number:`number`,bigint:`bigint`,object:`date`},bS=X(`$ZodCheckLessThan`,(e,t)=>{vS.init(e,t);let n=yS[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),xS=X(`$ZodCheckGreaterThan`,(e,t)=>{vS.init(e,t);let n=yS[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),SS=X(`$ZodCheckMultipleOf`,(e,t)=>{vS.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):Wb(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),CS=X(`$ZodCheckNumberFormat`,(e,t)=>{vS.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=sx[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=pS)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),wS=X(`$ZodCheckMaxLength`,(e,t)=>{var n;vS.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Hb(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=bx(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),TS=X(`$ZodCheckMinLength`,(e,t)=>{var n;vS.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Hb(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=bx(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),ES=X(`$ZodCheckLengthEquals`,(e,t)=>{var n;vS.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!Hb(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=bx(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),DS=X(`$ZodCheckStringFormat`,(e,t)=>{var n,r;vS.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),OS=X(`$ZodCheckRegex`,(e,t)=>{DS.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),kS=X(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=gS,DS.init(e,t)}),AS=X(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=_S,DS.init(e,t)}),jS=X(`$ZodCheckIncludes`,(e,t)=>{vS.init(e,t);let n=rx(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),MS=X(`$ZodCheckStartsWith`,(e,t)=>{vS.init(e,t);let n=RegExp(`^${rx(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),NS=X(`$ZodCheckEndsWith`,(e,t)=>{vS.init(e,t);let n=RegExp(`.*${rx(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),PS=X(`$ZodCheckOverwrite`,(e,t)=>{vS.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),FS=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
|
|
123
|
+
`).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
|
|
124
|
+
`))}},IS={major:4,minor:4,patch:3},LS=X(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=IS;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=hx(e),i;for(let a of t){if(a._zod.def.when){if(gx(e)||!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new Fb;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=hx(e,t))});else{if(e.issues.length===t)continue;r||=hx(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(hx(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new Fb;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new Fb;return o.then(e=>t(e,r,a))}return t(o,r,a)}}Kb(e,`~standard`,()=>({validate:t=>{try{let n=Ax(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return Mx(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),RS=X(`$ZodString`,(e,t)=>{LS.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??fS(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),zS=X(`$ZodStringFormat`,(e,t)=>{DS.init(e,t),RS.init(e,t)}),BS=X(`$ZodGUID`,(e,t)=>{t.pattern??=Jx,zS.init(e,t)}),VS=X(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=Yx(e)}else t.pattern??=Yx();zS.init(e,t)}),HS=X(`$ZodEmail`,(e,t)=>{t.pattern??=Xx,zS.init(e,t)}),US=X(`$ZodURL`,(e,t)=>{zS.init(e,t),e._zod.check=n=>{try{let r=n.value.trim();if(!t.normalize&&t.protocol?.source===aS.source&&!/^https?:\/\//i.test(r)){n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid URL format`,input:n.value,inst:e,continue:!t.abort});return}let i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),n.value=t.normalize?i.href:r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),WS=X(`$ZodEmoji`,(e,t)=>{t.pattern??=Qx(),zS.init(e,t)}),GS=X(`$ZodNanoID`,(e,t)=>{t.pattern??=Kx,zS.init(e,t)}),KS=X(`$ZodCUID`,(e,t)=>{t.pattern??=Vx,zS.init(e,t)}),qS=X(`$ZodCUID2`,(e,t)=>{t.pattern??=Hx,zS.init(e,t)}),JS=X(`$ZodULID`,(e,t)=>{t.pattern??=Ux,zS.init(e,t)}),YS=X(`$ZodXID`,(e,t)=>{t.pattern??=Wx,zS.init(e,t)}),XS=X(`$ZodKSUID`,(e,t)=>{t.pattern??=Gx,zS.init(e,t)}),ZS=X(`$ZodISODateTime`,(e,t)=>{t.pattern??=dS(t),zS.init(e,t)}),QS=X(`$ZodISODate`,(e,t)=>{t.pattern??=cS,zS.init(e,t)}),$S=X(`$ZodISOTime`,(e,t)=>{t.pattern??=uS(t),zS.init(e,t)}),eC=X(`$ZodISODuration`,(e,t)=>{t.pattern??=qx,zS.init(e,t)}),tC=X(`$ZodIPv4`,(e,t)=>{t.pattern??=$x,zS.init(e,t),e._zod.bag.format=`ipv4`}),nC=X(`$ZodIPv6`,(e,t)=>{t.pattern??=eS,zS.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),rC=X(`$ZodCIDRv4`,(e,t)=>{t.pattern??=tS,zS.init(e,t)}),iC=X(`$ZodCIDRv6`,(e,t)=>{t.pattern??=nS,zS.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function aC(e){if(e===``)return!0;if(/\s/.test(e)||e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var oC=X(`$ZodBase64`,(e,t)=>{t.pattern??=rS,zS.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{aC(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function sC(e){if(!iS.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return aC(t.padEnd(Math.ceil(t.length/4)*4,`=`))}var cC=X(`$ZodBase64URL`,(e,t)=>{t.pattern??=iS,zS.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{sC(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),lC=X(`$ZodE164`,(e,t)=>{t.pattern??=oS,zS.init(e,t)});function uC(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}var dC=X(`$ZodJWT`,(e,t)=>{zS.init(e,t),e._zod.check=n=>{uC(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),fC=X(`$ZodNumber`,(e,t)=>{LS.init(e,t),e._zod.pattern=e._zod.bag.pattern??mS,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),pC=X(`$ZodNumberFormat`,(e,t)=>{CS.init(e,t),fC.init(e,t)}),mC=X(`$ZodBoolean`,(e,t)=>{LS.init(e,t),e._zod.pattern=hS,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),hC=X(`$ZodUnknown`,(e,t)=>{LS.init(e,t),e._zod.parse=e=>e}),gC=X(`$ZodNever`,(e,t)=>{LS.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function _C(e,t,n){e.issues.length&&t.issues.push(..._x(n,e.issues)),t.value[n]=e.value}var vC=X(`$ZodArray`,(e,t)=>{LS.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>_C(t,n,e))):_C(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function yC(e,t,n,r,i,a){let o=n in r;if(e.issues.length){if(i&&a&&!o)return;t.issues.push(..._x(n,e.issues))}if(!o&&!i){e.issues.length||t.issues.push({code:`invalid_type`,expected:`nonoptional`,input:void 0,path:[n]});return}e.value===void 0?o&&(t.value[n]=void 0):t.value[n]=e.value}function bC(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=ox(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function xC(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optin===`optional`,d=c.optout===`optional`;for(let i in t){if(i===`__proto__`||s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>yC(e,n,i,t,u,d))):yC(a,n,i,t,u,d)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}var SC=X(`$ZodObject`,(e,t)=>{if(LS.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,"shape",{get:()=>{let n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}let n=Vb(()=>bC(t));Kb(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=Qb,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e],r=n._zod.optin===`optional`,i=n._zod.optout===`optional`,a=n._zod.run({value:s[e],issues:[]},o);a instanceof Promise?c.push(a.then(n=>yC(n,t,e,s,r,i))):yC(a,t,e,s,r,i)}return i?xC(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),CC=X(`$ZodObjectJIT`,(e,t)=>{SC.init(e,t);let n=e._zod.parse,r=Vb(()=>bC(t)),i=e=>{let t=new FS([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=Yb(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let r of n.keys){let n=a[r],o=Yb(r),s=e[r],c=s?._zod?.optin===`optional`,l=s?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),c&&l?t.write(`
|
|
125
|
+
if (${n}.issues.length) {
|
|
126
|
+
if (${o} in input) {
|
|
127
|
+
payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
|
|
128
|
+
...iss,
|
|
129
|
+
path: iss.path ? [${o}, ...iss.path] : [${o}]
|
|
130
|
+
})));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (${n}.value === undefined) {
|
|
135
|
+
if (${o} in input) {
|
|
136
|
+
newResult[${o}] = undefined;
|
|
137
|
+
}
|
|
138
|
+
} else {
|
|
139
|
+
newResult[${o}] = ${n}.value;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
`):c?t.write(`
|
|
143
|
+
if (${n}.issues.length) {
|
|
144
|
+
payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
|
|
145
|
+
...iss,
|
|
146
|
+
path: iss.path ? [${o}, ...iss.path] : [${o}]
|
|
147
|
+
})));
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if (${n}.value === undefined) {
|
|
151
|
+
if (${o} in input) {
|
|
152
|
+
newResult[${o}] = undefined;
|
|
153
|
+
}
|
|
154
|
+
} else {
|
|
155
|
+
newResult[${o}] = ${n}.value;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
`):t.write(`
|
|
159
|
+
const ${n}_present = ${o} in input;
|
|
160
|
+
if (${n}.issues.length) {
|
|
161
|
+
payload.issues = payload.issues.concat(${n}.issues.map(iss => ({
|
|
162
|
+
...iss,
|
|
163
|
+
path: iss.path ? [${o}, ...iss.path] : [${o}]
|
|
164
|
+
})));
|
|
165
|
+
}
|
|
166
|
+
if (!${n}_present && !${n}.issues.length) {
|
|
167
|
+
payload.issues.push({
|
|
168
|
+
code: "invalid_type",
|
|
169
|
+
expected: "nonoptional",
|
|
170
|
+
input: undefined,
|
|
171
|
+
path: [${o}]
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (${n}_present) {
|
|
176
|
+
if (${n}.value === undefined) {
|
|
177
|
+
newResult[${o}] = undefined;
|
|
178
|
+
} else {
|
|
179
|
+
newResult[${o}] = ${n}.value;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
`)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=Qb,s=!Lb.jitless,c=s&&$b.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?xC([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function wC(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!hx(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>yx(e,r,Rb())))}),t)}var TC=X(`$ZodUnion`,(e,t)=>{LS.init(e,t),Kb(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),Kb(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),Kb(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),Kb(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>Ub(e.source)).join(`|`)})$`)}});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let a=!1,o=[];for(let e of t.options){let t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)o.push(t),a=!0;else{if(t.issues.length===0)return t;o.push(t)}}return a?Promise.all(o).then(t=>wC(t,r,e,i)):wC(o,r,e,i)}}),EC=X(`$ZodIntersection`,(e,t)=>{LS.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>OC(e,t,n)):OC(e,i,a)}});function DC(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ex(e)&&ex(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=DC(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=DC(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function OC(e,t,n){let r=new Map,i;for(let n of t.issues)if(n.code===`unrecognized_keys`){i??=n;for(let e of n.keys)r.has(e)||r.set(e,{}),r.get(e).l=!0}else e.issues.push(n);for(let t of n.issues)if(t.code===`unrecognized_keys`)for(let e of t.keys)r.has(e)||r.set(e,{}),r.get(e).r=!0;else e.issues.push(t);let a=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),hx(e))return e;let o=DC(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}var kC=X(`$ZodEnum`,(e,t)=>{LS.init(e,t);let n=zb(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>nx.has(typeof e)).map(e=>typeof e==`string`?rx(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),AC=X(`$ZodLiteral`,(e,t)=>{if(LS.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?rx(e):e?rx(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),jC=X(`$ZodTransform`,(e,t)=>{LS.init(e,t),e._zod.optin=`optional`,e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ib(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new Fb;return n.value=i,n.fallback=!0,n}});function MC(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var NC=X(`$ZodOptional`,(e,t)=>{LS.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,Kb(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),Kb(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Ub(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>MC(e,r)):MC(i,r)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),PC=X(`$ZodExactOptional`,(e,t)=>{NC.init(e,t),Kb(e._zod,`values`,()=>t.innerType._zod.values),Kb(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),FC=X(`$ZodNullable`,(e,t)=>{LS.init(e,t),Kb(e._zod,`optin`,()=>t.innerType._zod.optin),Kb(e._zod,`optout`,()=>t.innerType._zod.optout),Kb(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Ub(e.source)}|null)$`):void 0}),Kb(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),IC=X(`$ZodDefault`,(e,t)=>{LS.init(e,t),e._zod.optin=`optional`,Kb(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>LC(e,t)):LC(r,t)}});function LC(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var RC=X(`$ZodPrefault`,(e,t)=>{LS.init(e,t),e._zod.optin=`optional`,Kb(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),zC=X(`$ZodNonOptional`,(e,t)=>{LS.init(e,t),Kb(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>BC(t,e)):BC(i,e)}});function BC(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}var VC=X(`$ZodCatch`,(e,t)=>{LS.init(e,t),e._zod.optin=`optional`,Kb(e._zod,`optout`,()=>t.innerType._zod.optout),Kb(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>yx(e,n,Rb()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>yx(e,n,Rb()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),HC=X(`$ZodPipe`,(e,t)=>{LS.init(e,t),Kb(e._zod,`values`,()=>t.in._zod.values),Kb(e._zod,`optin`,()=>t.in._zod.optin),Kb(e._zod,`optout`,()=>t.out._zod.optout),Kb(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>UC(e,t.in,n)):UC(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>UC(e,t.out,n)):UC(r,t.out,n)}});function UC(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var WC=X(`$ZodReadonly`,(e,t)=>{LS.init(e,t),Kb(e._zod,`propValues`,()=>t.innerType._zod.propValues),Kb(e._zod,`values`,()=>t.innerType._zod.values),Kb(e._zod,`optin`,()=>t.innerType?._zod?.optin),Kb(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(GC):GC(r)}});function GC(e){return e.value=Object.freeze(e.value),e}var KC=X(`$ZodCustom`,(e,t)=>{vS.init(e,t),LS.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>qC(t,n,r,e));qC(i,n,r,e)}});function qC(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(xx(e))}}var JC,YC=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function XC(){return new YC}(JC=globalThis).__zod_globalRegistry??(JC.__zod_globalRegistry=XC());var ZC=globalThis.__zod_globalRegistry;function QC(e,t){return new e({type:`string`,...ax(t)})}function $C(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...ax(t)})}function ew(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...ax(t)})}function tw(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...ax(t)})}function nw(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...ax(t)})}function rw(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...ax(t)})}function iw(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...ax(t)})}function aw(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...ax(t)})}function ow(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...ax(t)})}function sw(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...ax(t)})}function cw(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...ax(t)})}function lw(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...ax(t)})}function uw(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...ax(t)})}function dw(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...ax(t)})}function fw(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...ax(t)})}function pw(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...ax(t)})}function mw(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...ax(t)})}function hw(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...ax(t)})}function gw(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...ax(t)})}function _w(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...ax(t)})}function vw(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...ax(t)})}function yw(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...ax(t)})}function bw(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...ax(t)})}function xw(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...ax(t)})}function Sw(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...ax(t)})}function Cw(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...ax(t)})}function ww(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...ax(t)})}function Tw(e,t){return new e({type:`number`,coerce:!0,checks:[],...ax(t)})}function Ew(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...ax(t)})}function Dw(e,t){return new e({type:`boolean`,...ax(t)})}function Ow(e){return new e({type:`unknown`})}function kw(e,t){return new e({type:`never`,...ax(t)})}function Aw(e,t){return new bS({check:`less_than`,...ax(t),value:e,inclusive:!1})}function jw(e,t){return new bS({check:`less_than`,...ax(t),value:e,inclusive:!0})}function Mw(e,t){return new xS({check:`greater_than`,...ax(t),value:e,inclusive:!1})}function Nw(e,t){return new xS({check:`greater_than`,...ax(t),value:e,inclusive:!0})}function Pw(e,t){return new SS({check:`multiple_of`,...ax(t),value:e})}function Fw(e,t){return new wS({check:`max_length`,...ax(t),maximum:e})}function Iw(e,t){return new TS({check:`min_length`,...ax(t),minimum:e})}function Lw(e,t){return new ES({check:`length_equals`,...ax(t),length:e})}function Rw(e,t){return new OS({check:`string_format`,format:`regex`,...ax(t),pattern:e})}function zw(e){return new kS({check:`string_format`,format:`lowercase`,...ax(e)})}function Bw(e){return new AS({check:`string_format`,format:`uppercase`,...ax(e)})}function Vw(e,t){return new jS({check:`string_format`,format:`includes`,...ax(t),includes:e})}function Hw(e,t){return new MS({check:`string_format`,format:`starts_with`,...ax(t),prefix:e})}function Uw(e,t){return new NS({check:`string_format`,format:`ends_with`,...ax(t),suffix:e})}function Ww(e){return new PS({check:`overwrite`,tx:e})}function Gw(e){return Ww(t=>t.normalize(e))}function Kw(){return Ww(e=>e.trim())}function qw(){return Ww(e=>e.toLowerCase())}function Jw(){return Ww(e=>e.toUpperCase())}function Yw(){return Ww(e=>Xb(e))}function Xw(e,t,n){return new e({type:`array`,element:t,...ax(n)})}function Zw(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...ax(n)})}function Qw(e,t){let n=$w(t=>(t.addIssue=e=>{if(typeof e==`string`)t.issues.push(xx(e,t.value,n._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=t.value,r.inst??=n,r.continue??=!n._zod.def.abort,t.issues.push(xx(r))}},e(t.value,t)),t);return n}function $w(e,t){let n=new vS({check:`custom`,...ax(t)});return n._zod.check=e,n}function eT(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??ZC,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function tT(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,tT(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&iT(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&`_prefault`in o.schema&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function nT(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
|
|
184
|
+
|
|
185
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function rT(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.metadataRegistry.get(t)?.id;a!==void 0&&i.id===a&&delete i.id;let o=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,o[e.defId]=e.def)}e.external||Object.keys(o).length>0&&(e.target===`draft-2020-12`?i.$defs=o:i.definitions=o);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:oT(t,`input`,e.processors),output:oT(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function iT(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return iT(r.element,n);if(r.type===`set`)return iT(r.valueType,n);if(r.type===`lazy`)return iT(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`)return iT(r.innerType,n);if(r.type===`intersection`)return iT(r.left,n)||iT(r.right,n);if(r.type===`record`||r.type===`map`)return iT(r.keyType,n)||iT(r.valueType,n);if(r.type===`pipe`)return e._zod.traits.has(`$ZodCodec`)?!0:iT(r.in,n)||iT(r.out,n);if(r.type===`object`){for(let e in r.shape)if(iT(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(iT(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(iT(e,n))return!0;return!!(r.rest&&iT(r.rest,n))}return!1}var aT=(e,t={})=>n=>{let r=eT({...n,processors:t});return tT(e,r),nT(r,e),rT(r,e)},oT=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=eT({...i??{},target:a,io:t,processors:n});return tT(e,o),nT(o,e),rT(o,e)},sT={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},cT=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=sT[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},lT=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;i.type=typeof s==`string`&&s.includes(`int`)?`integer`:`number`;let d=typeof u==`number`&&u>=(a??-1/0),f=typeof l==`number`&&l<=(o??1/0),p=t.target===`draft-04`||t.target===`openapi-3.0`;d?p?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u:typeof a==`number`&&(i.minimum=a),f?p?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l:typeof o==`number`&&(i.maximum=o),typeof c==`number`&&(i.multipleOf=c)},uT=(e,t,n,r)=>{n.type=`boolean`},dT=(e,t,n,r)=>{n.not={}},fT=(e,t,n,r)=>{let i=e._zod.def,a=zb(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},pT=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},mT=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},hT=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},gT=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=tT(a.element,t,{...r,path:[...r.path,`items`]})},_T=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=tT(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=tT(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},vT=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>tT(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},yT=(e,t,n,r)=>{let i=e._zod.def,a=tT(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=tT(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},bT=(e,t,n,r)=>{let i=e._zod.def,a=tT(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},xT=(e,t,n,r)=>{let i=e._zod.def;tT(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},ST=(e,t,n,r)=>{let i=e._zod.def;tT(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},CT=(e,t,n,r)=>{let i=e._zod.def;tT(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},wT=(e,t,n,r)=>{let i=e._zod.def;tT(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},TT=(e,t,n,r)=>{let i=e._zod.def,a=i.in._zod.traits.has(`$ZodTransform`),o=t.io===`input`?a?i.out:i.in:i.out;tT(o,t,r);let s=t.seen.get(e);s.ref=o},ET=(e,t,n,r)=>{let i=e._zod.def;tT(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},DT=(e,t,n,r)=>{let i=e._zod.def;tT(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},OT=X(`ZodISODateTime`,(e,t)=>{ZS.init(e,t),tE.init(e,t)});function kT(e){return xw(OT,e)}var AT=X(`ZodISODate`,(e,t)=>{QS.init(e,t),tE.init(e,t)});function jT(e){return Sw(AT,e)}var MT=X(`ZodISOTime`,(e,t)=>{$S.init(e,t),tE.init(e,t)});function NT(e){return Cw(MT,e)}var PT=X(`ZodISODuration`,(e,t)=>{eC.init(e,t),tE.init(e,t)});function FT(e){return ww(PT,e)}var IT=X(`ZodError`,(e,t)=>{Cx.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>Ex(e,t)},flatten:{value:t=>Tx(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,Bb,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,Bb,2)}},isEmpty:{get(){return e.issues.length===0}}})},{Parent:Error}),LT=Dx(IT),RT=Ox(IT),zT=kx(IT),BT=jx(IT),VT=Nx(IT),HT=Px(IT),UT=Fx(IT),WT=Ix(IT),GT=Lx(IT),KT=Rx(IT),qT=zx(IT),JT=Bx(IT),YT=new WeakMap;function XT(e,t,n){let r=Object.getPrototypeOf(e),i=YT.get(r);if(i||(i=new Set,YT.set(r,i)),!i.has(t)){i.add(t);for(let e in n){let t=n[e];Object.defineProperty(r,e,{configurable:!0,enumerable:!1,get(){let n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var ZT=X(`ZodType`,(e,t)=>(LS.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:oT(e,`input`),output:oT(e,`output`)}}),e.toJSONSchema=aT(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>LT(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>zT(e,t,n),e.parseAsync=async(t,n)=>RT(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>BT(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>VT(e,t,n),e.decode=(t,n)=>HT(e,t,n),e.encodeAsync=async(t,n)=>UT(e,t,n),e.decodeAsync=async(t,n)=>WT(e,t,n),e.safeEncode=(t,n)=>GT(e,t,n),e.safeDecode=(t,n)=>KT(e,t,n),e.safeEncodeAsync=async(t,n)=>qT(e,t,n),e.safeDecodeAsync=async(t,n)=>JT(e,t,n),XT(e,`ZodType`,{check(...e){let t=this.def;return this.clone(Jb(t,{checks:[...t.checks??[],...e.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return ix(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(uD(e,t))},superRefine(e,t){return this.check(dD(e,t))},overwrite(e){return this.check(Ww(e))},optional(){return KE(this)},exactOptional(){return JE(this)},nullable(){return XE(this)},nullish(){return KE(XE(this))},nonoptional(e){return nD(this,e)},array(){return ME(this)},or(e){return IE([this,e])},and(e){return RE(this,e)},transform(e){return oD(this,WE(e))},default(e){return QE(this,e)},prefault(e){return eD(this,e)},catch(e){return iD(this,e)},pipe(e){return oD(this,e)},readonly(){return cD(this)},describe(e){let t=this.clone();return ZC.add(t,{description:e}),t},meta(...e){if(e.length===0)return ZC.get(this);let t=this.clone();return ZC.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get(){return ZC.get(e)?.description},configurable:!0}),e)),QT=X(`_ZodString`,(e,t)=>{RS.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>cT(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,XT(e,`_ZodString`,{regex(...e){return this.check(Rw(...e))},includes(...e){return this.check(Vw(...e))},startsWith(...e){return this.check(Hw(...e))},endsWith(...e){return this.check(Uw(...e))},min(...e){return this.check(Iw(...e))},max(...e){return this.check(Fw(...e))},length(...e){return this.check(Lw(...e))},nonempty(...e){return this.check(Iw(1,...e))},lowercase(e){return this.check(zw(e))},uppercase(e){return this.check(Bw(e))},trim(){return this.check(Kw())},normalize(...e){return this.check(Gw(...e))},toLowerCase(){return this.check(qw())},toUpperCase(){return this.check(Jw())},slugify(){return this.check(Yw())}})}),$T=X(`ZodString`,(e,t)=>{RS.init(e,t),QT.init(e,t),e.email=t=>e.check($C(nE,t)),e.url=t=>e.check(aw(aE,t)),e.jwt=t=>e.check(bw(xE,t)),e.emoji=t=>e.check(ow(sE,t)),e.guid=t=>e.check(ew(rE,t)),e.uuid=t=>e.check(tw(iE,t)),e.uuidv4=t=>e.check(nw(iE,t)),e.uuidv6=t=>e.check(rw(iE,t)),e.uuidv7=t=>e.check(iw(iE,t)),e.nanoid=t=>e.check(sw(cE,t)),e.guid=t=>e.check(ew(rE,t)),e.cuid=t=>e.check(cw(lE,t)),e.cuid2=t=>e.check(lw(uE,t)),e.ulid=t=>e.check(uw(dE,t)),e.base64=t=>e.check(_w(vE,t)),e.base64url=t=>e.check(vw(yE,t)),e.xid=t=>e.check(dw(fE,t)),e.ksuid=t=>e.check(fw(pE,t)),e.ipv4=t=>e.check(pw(mE,t)),e.ipv6=t=>e.check(mw(hE,t)),e.cidrv4=t=>e.check(hw(gE,t)),e.cidrv6=t=>e.check(gw(_E,t)),e.e164=t=>e.check(yw(bE,t)),e.datetime=t=>e.check(kT(t)),e.date=t=>e.check(jT(t)),e.time=t=>e.check(NT(t)),e.duration=t=>e.check(FT(t))});function eE(e){return QC($T,e)}var tE=X(`ZodStringFormat`,(e,t)=>{zS.init(e,t),QT.init(e,t)}),nE=X(`ZodEmail`,(e,t)=>{HS.init(e,t),tE.init(e,t)}),rE=X(`ZodGUID`,(e,t)=>{BS.init(e,t),tE.init(e,t)}),iE=X(`ZodUUID`,(e,t)=>{VS.init(e,t),tE.init(e,t)}),aE=X(`ZodURL`,(e,t)=>{US.init(e,t),tE.init(e,t)});function oE(e){return aw(aE,e)}var sE=X(`ZodEmoji`,(e,t)=>{WS.init(e,t),tE.init(e,t)}),cE=X(`ZodNanoID`,(e,t)=>{GS.init(e,t),tE.init(e,t)}),lE=X(`ZodCUID`,(e,t)=>{KS.init(e,t),tE.init(e,t)}),uE=X(`ZodCUID2`,(e,t)=>{qS.init(e,t),tE.init(e,t)}),dE=X(`ZodULID`,(e,t)=>{JS.init(e,t),tE.init(e,t)}),fE=X(`ZodXID`,(e,t)=>{YS.init(e,t),tE.init(e,t)}),pE=X(`ZodKSUID`,(e,t)=>{XS.init(e,t),tE.init(e,t)}),mE=X(`ZodIPv4`,(e,t)=>{tC.init(e,t),tE.init(e,t)}),hE=X(`ZodIPv6`,(e,t)=>{nC.init(e,t),tE.init(e,t)}),gE=X(`ZodCIDRv4`,(e,t)=>{rC.init(e,t),tE.init(e,t)}),_E=X(`ZodCIDRv6`,(e,t)=>{iC.init(e,t),tE.init(e,t)}),vE=X(`ZodBase64`,(e,t)=>{oC.init(e,t),tE.init(e,t)}),yE=X(`ZodBase64URL`,(e,t)=>{cC.init(e,t),tE.init(e,t)}),bE=X(`ZodE164`,(e,t)=>{lC.init(e,t),tE.init(e,t)}),xE=X(`ZodJWT`,(e,t)=>{dC.init(e,t),tE.init(e,t)}),SE=X(`ZodNumber`,(e,t)=>{fC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>lT(e,t,n,r),XT(e,`ZodNumber`,{gt(e,t){return this.check(Mw(e,t))},gte(e,t){return this.check(Nw(e,t))},min(e,t){return this.check(Nw(e,t))},lt(e,t){return this.check(Aw(e,t))},lte(e,t){return this.check(jw(e,t))},max(e,t){return this.check(jw(e,t))},int(e){return this.check(wE(e))},safe(e){return this.check(wE(e))},positive(e){return this.check(Mw(0,e))},nonnegative(e){return this.check(Nw(0,e))},negative(e){return this.check(Aw(0,e))},nonpositive(e){return this.check(jw(0,e))},multipleOf(e,t){return this.check(Pw(e,t))},step(e,t){return this.check(Pw(e,t))},finite(){return this}});let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null}),CE=X(`ZodNumberFormat`,(e,t)=>{pC.init(e,t),SE.init(e,t)});function wE(e){return Ew(CE,e)}var TE=X(`ZodBoolean`,(e,t)=>{mC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>uT(e,t,n,r)});function EE(e){return Dw(TE,e)}var DE=X(`ZodUnknown`,(e,t)=>{hC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function OE(){return Ow(DE)}var kE=X(`ZodNever`,(e,t)=>{gC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>dT(e,t,n,r)});function AE(e){return kw(kE,e)}var jE=X(`ZodArray`,(e,t)=>{vC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>gT(e,t,n,r),e.element=t.element,XT(e,`ZodArray`,{min(e,t){return this.check(Iw(e,t))},nonempty(e){return this.check(Iw(1,e))},max(e,t){return this.check(Fw(e,t))},length(e,t){return this.check(Lw(e,t))},unwrap(){return this.element}})});function ME(e,t){return Xw(jE,e,t)}var NE=X(`ZodObject`,(e,t)=>{CC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_T(e,t,n,r),Kb(e,`shape`,()=>t.shape),XT(e,`ZodObject`,{keyof(){return BE(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:OE()})},loose(){return this.clone({...this._zod.def,catchall:OE()})},strict(){return this.clone({...this._zod.def,catchall:AE()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return ux(this,e)},safeExtend(e){return dx(this,e)},merge(e){return fx(this,e)},pick(e){return cx(this,e)},omit(e){return lx(this,e)},partial(...e){return px(GE,this,e[0])},required(...e){return mx(tD,this,e[0])}})});function PE(e,t){return new NE({type:`object`,shape:e??{},...ax(t)})}var FE=X(`ZodUnion`,(e,t)=>{TC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>vT(e,t,n,r),e.options=t.options});function IE(e,t){return new FE({type:`union`,options:e,...ax(t)})}var LE=X(`ZodIntersection`,(e,t)=>{EC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>yT(e,t,n,r)});function RE(e,t){return new LE({type:`intersection`,left:e,right:t})}var zE=X(`ZodEnum`,(e,t)=>{kC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fT(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new zE({...t,checks:[],...ax(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new zE({...t,checks:[],...ax(r),entries:i})}});function BE(e,t){return new zE({type:`enum`,entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...ax(t)})}var VE=X(`ZodLiteral`,(e,t)=>{AC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>pT(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function HE(e,t){return new VE({type:`literal`,values:Array.isArray(e)?e:[e],...ax(t)})}var UE=X(`ZodTransform`,(e,t)=>{jC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>hT(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Ib(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(xx(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(xx(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});function WE(e){return new UE({type:`transform`,transform:e})}var GE=X(`ZodOptional`,(e,t)=>{NC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>DT(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function KE(e){return new GE({type:`optional`,innerType:e})}var qE=X(`ZodExactOptional`,(e,t)=>{PC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>DT(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function JE(e){return new qE({type:`optional`,innerType:e})}var YE=X(`ZodNullable`,(e,t)=>{FC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>bT(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function XE(e){return new YE({type:`nullable`,innerType:e})}var ZE=X(`ZodDefault`,(e,t)=>{IC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ST(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function QE(e,t){return new ZE({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():tx(t)}})}var $E=X(`ZodPrefault`,(e,t)=>{RC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>CT(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function eD(e,t){return new $E({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():tx(t)}})}var tD=X(`ZodNonOptional`,(e,t)=>{zC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>xT(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function nD(e,t){return new tD({type:`nonoptional`,innerType:e,...ax(t)})}var rD=X(`ZodCatch`,(e,t)=>{VC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>wT(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function iD(e,t){return new rD({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}var aD=X(`ZodPipe`,(e,t)=>{HC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>TT(e,t,n,r),e.in=t.in,e.out=t.out});function oD(e,t){return new aD({type:`pipe`,in:e,out:t})}var sD=X(`ZodReadonly`,(e,t)=>{WC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ET(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function cD(e){return new sD({type:`readonly`,innerType:e})}var lD=X(`ZodCustom`,(e,t)=>{KC.init(e,t),ZT.init(e,t),e._zod.processJSONSchema=(t,n,r)=>mT(e,t,n,r)});function uD(e,t={}){return Zw(lD,e,t)}function dD(e,t){return Qw(e,t)}function fD(e){return Tw(SE,e)}var pD=eE().trim().min(1,`请填写 Agent 名称`).max(128,`Agent 名称不能超过 128 个字符`),mD=eE().trim().min(3,`本地标识至少填写 3 个字符`).max(63,`本地标识不能超过 63 个字符`).regex(/^[a-z][a-z0-9-]*$/,`本地标识只能包含小写字母、数字和连字符`),hD=IE([HE(``),mD]),gD=BE([`codex`,`adk`,`langgraph`,`plugin`]),_D=BE([`codex`,`adk`,`langgraph`]),vD=eE().trim().min(4,`系统提示词至少填写 4 个字符`).max(32768,`系统提示词不能超过 32768 个字符`),yD=eE().trim().min(4,`Agent 目标与要求至少填写 4 个字符`).max(32768,`Agent 目标与要求不能超过 32768 个字符`),bD=eE().trim().max(1024,`描述不能超过 1024 个字符`).default(``),xD=PE({name:pD,slug:mD,runtimeType:gD,template:BE([`blank`,`research`]).default(`blank`),prompt:yD,description:bD,audience:eE().trim().max(256,`目标读者不能超过 256 个字符`).default(``),language:BE([`zh-CN`,`en-US`]).default(`zh-CN`),depth:BE([`focused`,`standard`,`deep`]).default(`deep`),format:BE([`report`,`brief`,`evidence-table`]).default(`report`),systemPrompt:eE().trim().min(4,`最终系统规则至少填写 4 个字符`).max(32768,`最终系统规则不能超过 32768 个字符`).default(``),taskPrompt:eE().max(32768,`任务契约不能超过 32768 个字符`).default(``),buildAfterCreate:EE().default(!0)}).superRefine((e,t)=>{e.template===`research`&&!e.audience&&t.addIssue({code:`custom`,path:[`audience`],message:`请填写目标读者`})}),SD=PE({name:pD,slug:mD,runtimeType:gD,prompt:vD,description:bD}),CD=PE({name:pD,slug:mD,runtimeType:_D,prompt:vD,description:bD.optional(),modelProfileId:eE().trim().min(3,`请选择用于构建的模型`).max(256).optional()}),wD=PE({name:pD,slug:hD.default(``)}),TD=PE({name:pD,slug:hD.default(``),path:eE().trim().min(1,`请选择项目目录`).max(4096,`项目路径不能超过 4096 个字符`)}),ED=/(?:secret|password|token|api[_-]?key)/i,DD=[`secret://`,`env://`,`credential://`,`vault://`];function OD(e,t=[]){let n=e.trim();if(!n)return{};let r;try{r=JSON.parse(n)}catch{throw Error(`Provider 配置必须是合法的 JSON 对象`)}if(!r||typeof r!=`object`||Array.isArray(r))throw Error(`Provider 配置必须是 JSON 对象`);let i=new Set(t.map(e=>e.replace(/^providerConfig\./,``).replace(/^\.+|\.+$/g,``)).filter(Boolean));return kD(r,`providerConfig`,[],i),r}function kD(e,t,n,r){if(Array.isArray(e)){e.forEach((e,i)=>kD(e,`${t}[${i}]`,[...n,String(i)],r));return}!e||typeof e!=`object`||Object.entries(e).forEach(([e,i])=>{let a=`${t}.${e}`,o=[...n,e],s=o.join(`.`),c=r.has(s)||[...r].some(t=>t.split(`.`).at(-1)===e);if((ED.test(e)||c)&&i!==null&&(typeof i!=`string`||!DD.some(e=>i.startsWith(e))))throw Error(`${a} 只能填写 Secret 引用,不能填写明文`);kD(i,a,o,r)})}function AD(e){let t=e.selectable?`已启用`:e.reason?.message||`不可用`;return`${e.pluginId}@${e.resolvedVersion} · ${t}`}var jD=new Set([`SUCCEEDED`,`FAILED`,`CANCELLED`,`TIMED_OUT`]);function MD(e){return e?.contract?.model||e?.name||``}function ND(e){return e===`adk`?`ADKRuntimeAdapter`:e===`langgraph`?`LangGraphRuntimeAdapter`:e===`plugin`?`External AgentProvider`:`CodexRuntimeAdapter`}function PD(e){return e===`codex`?{type:`codex`}:{type:e,projectPath:`.`,entryPoint:e===`adk`?`agent.py`:`graph.py`,agentVariable:e===`adk`?`root_agent`:`app`}}function FD(e,t,n){let r=new Set(e.map(e=>e.resourceId));return[...e,...t.filter(e=>!r.has(e)).map(e=>({resourceId:e,kind:n,name:e,displayName:e,version:`历史绑定 · 未进入资源目录`,status:`unresolved`,...n===`model`?{contract:{model:e}}:{}}))]}function ID(e,t){let n=new Map((e||[]).map(e=>[e.resourceId,e]));return t.map(e=>n.get(e)||{resourceId:e,enabled:!0})}function LD(e){return e.split(/\r?\n/).map(e=>e.trim()).filter(Boolean)}async function RD(e){for(let t=0;t<1200;t+=1){let t=await g(`/api/v1/operations/${encodeURIComponent(e)}`),n=await t.json().catch(()=>null);if(!t.ok)throw Error(n?.error?.message||`构建状态获取失败(${t.status})`);if(jD.has(n.status)){if(n.status!==`SUCCEEDED`)throw Error(n.error?.message||`构建未完成`);return n}await new Promise(e=>window.setTimeout(e,200))}throw Error(`构建等待超时`)}function zD({agentId:e,catalog:t,providers:n=[],activeSection:r=1,onSaved:i,onAppearanceSaved:a}){let[o,c]=(0,s.useState)(null),[l,u]=(0,s.useState)(``),d=y_({resolver:k_(SD),defaultValues:{name:``,slug:e,runtimeType:`codex`,prompt:``,description:``}}),f=d.reset,{name:p,slug:m,runtimeType:h,prompt:_}=d.watch(),[v,y]=(0,s.useState)(``),[b,x]=(0,s.useState)([]),[S,C]=(0,s.useState)([]),[w,T]=(0,s.useState)([]),[E,D]=(0,s.useState)([]),[O,k]=(0,s.useState)(r),[A,j]=(0,s.useState)(`.`),[M,N]=(0,s.useState)(``),[P,F]=(0,s.useState)(`root_agent`),[I,L]=(0,s.useState)(``),[R,z]=(0,s.useState)(`{}`),[B,H]=(0,s.useState)(!1),[ee,te]=(0,s.useState)(`direct`),[ne,re]=(0,s.useState)(12),[ie,ae]=(0,s.useState)(120),[oe,se]=(0,s.useState)(`auto`),[ce,le]=(0,s.useState)(`shadow`),[ue,de]=(0,s.useState)(!1),[W,pe]=(0,s.useState)(``),[me,he]=(0,s.useState)(``),[ge,_e]=(0,s.useState)(``),[ve,ye]=(0,s.useState)(``),[be,xe]=(0,s.useState)(!1),[Se,Ce]=(0,s.useState)(!1),[we,Te]=(0,s.useState)(`local-default`),[Ee,De]=(0,s.useState)(!0),[Oe,ke]=(0,s.useState)(1600),[Ae,je]=(0,s.useState)(8),[Me,Ne]=(0,s.useState)(.45),[Pe,Fe]=(0,s.useState)(`candidate`),[Ie,Le]=(0,s.useState)(!0),[Re,ze]=(0,s.useState)(`shadow`),[Be,Ve]=(0,s.useState)(!1),[He,We]=(0,s.useState)(!0),[Ge,Ke]=(0,s.useState)(!1),[qe,Je]=(0,s.useState)(``),Ye=(0,s.useMemo)(()=>t.filter(e=>e.kind===`model`&&[`ready`,`missing-secret`].includes(e.status)),[t]),Xe=(0,s.useMemo)(()=>t.filter(e=>e.kind===`skill`&&e.status===`ready`),[t]),Ze=(0,s.useMemo)(()=>t.filter(e=>e.kind===`mcp`),[t]),Qe=(0,s.useMemo)(()=>t.filter(e=>e.kind===`tool`&&e.status===`ready`&&[`builtin`,`python`].includes(e.contract?.executor||`builtin`)),[t]),$e=(0,s.useMemo)(()=>FD(Ye,b,`model`),[Ye,b]),et=(0,s.useMemo)(()=>FD(Xe,S,`skill`),[Xe,S]),tt=(0,s.useMemo)(()=>FD(Ze,w,`mcp`),[Ze,w]),nt=(0,s.useMemo)(()=>FD(Qe,E,`tool`),[Qe,E]),rt=b.map(e=>$e.find(t=>t.resourceId===e)).filter(Boolean),it=(0,s.useMemo)(()=>!I||n.some(e=>e.providerRef===I)?n:[{providerRef:I,pluginId:I,resolvedVersion:`历史版本`,displayName:I,state:`disabled`,compatible:!1,selectable:!1,reason:{code:`AGENT_PROVIDER_NOT_INSTALLED`,message:`该历史 Provider 当前未安装`},permissions:[],isolation:`process`,configSchemaDeclared:!1,secretFields:[]},...n],[I,n]),at=it.find(e=>e.providerRef===I),ot=it.map(e=>({value:e.providerRef,label:e.displayName,description:AD(e),disabled:!e.selectable}));(0,s.useEffect)(()=>{let t=!0;return c(null),u(``),g(`/api/v1/agents/${encodeURIComponent(e)}`).then(async r=>{let i=await r.json().catch(()=>null);if(!r.ok)throw Error(i?.error?.message||`Agent 加载失败(${r.status})`);if(!t)return;let a=i.draft,o=a.spec?.bindings||{},s=o.modelProfileIds?.length?o.modelProfileIds:o.modelProfileId?[o.modelProfileId]:[];c(i),f({name:a.metadata.name||``,slug:a.metadata.id||e,runtimeType:a.spec?.runtime?.type||a.metadata.labels?.[`agentkit.ksyun.com/framework`]||`codex`,prompt:a.spec?.instructions?.system||``,description:a.spec?.description||``}),x(s),y(o.modelProfileId||s[0]||``),C((o.skills||[]).map(e=>e.resourceId)),T((o.mcpServers||[]).map(e=>e.resourceId)),D((o.tools||[]).map(e=>e.resourceId)),j(String(a.spec?.runtime?.projectPath||`.`)),N(String(a.spec?.runtime?.entryPoint||(a.spec?.runtime?.type===`langgraph`?`graph.py`:`agent.py`))),F(String(a.spec?.runtime?.agentVariable||(a.spec?.runtime?.type===`langgraph`?`app`:`root_agent`))),L(String(a.spec?.runtime?.providerRef||``)),z(JSON.stringify(a.spec?.runtime?.providerConfig||{},null,2));let l=n.find(e=>e.providerRef===a.spec?.runtime?.providerRef),u=new Set(a.spec?.security?.allowedPermissions||[]);H(!!(l&&l.permissions.every(e=>u.has(e)))),te(String(a.spec?.execution?.strategy||`direct`)),re(Number(a.spec?.execution?.maxSteps??12)),ae(Number(a.spec?.execution?.timeoutSeconds??120)),se(String(a.spec?.context?.ownership||`auto`)),le(String(a.spec?.context?.rollout?.contextEngine||`shadow`)),de(!!a.spec?.soul),pe(String(a.spec?.soul?.identity||``)),he((a.spec?.soul?.principles||[]).join(`
|
|
186
|
+
`)),_e((a.spec?.soul?.boundaries||[]).join(`
|
|
187
|
+
`)),ye(String(a.spec?.soul?.tone||``)),xe(!1),Ce(!!a.spec?.memory?.enabled),Te(String(a.spec?.memory?.providerRef||`local-default`)),De(a.spec?.memory?.recall?.enabled??!0),ke(Number(a.spec?.memory?.recall?.maxTokens??1600)),je(Number(a.spec?.memory?.recall?.topK??8)),Ne(Number(a.spec?.memory?.recall?.minScore??.45)),Fe(String(a.spec?.memory?.write?.mode||`candidate`)),Le(a.spec?.memory?.write?.flushBeforeCompaction??!0),ze(String(a.spec?.context?.rollout?.memoryWrite||`shadow`)),Ve(!1)}).catch(e=>{t&&u(e.message||`Agent 加载失败`)}),()=>{t=!1}},[e,f]),(0,s.useEffect)(()=>k(r),[r]),(0,s.useEffect)(()=>{if(!o||b.length||!Ye.length)return;let e=o.draft.metadata.labels?.[`agentkit.ksyun.com/model`],t=Ye.find(t=>MD(t)===e)?.resourceId;t&&(x([t]),y(t))},[o,Ye,b.length]);function st(e){x(e),e.includes(v)||y(e[0]||``)}let ct=Ye.find(e=>e.resourceId===v)||rt[0],lt=h===`codex`?[{value:`auto`,label:`自动(推荐)`,description:`按 Codex Runtime 能力选择安全投影方式`},{value:`native`,label:`原生 Runtime 管理`,description:`由 Codex 管理最终模型上下文`}]:h===`langgraph`?[{value:`auto`,label:`自动(推荐)`,description:`按 Runtime 能力选择安全模式`},{value:`framework`,label:`框架管理`,description:`保留 LangGraph 原有上下文行为`},{value:`ksadk`,label:`KsADK 管理`,description:`统一规划、压缩和投影上下文`}]:[{value:`auto`,label:`自动(推荐)`,description:`按 Runtime 能力选择安全模式`},{value:`framework`,label:`框架管理`,description:`保留 ADK 原有上下文行为`}],ut=o?.draft.metadata.labels?.[`agentkit.ksyun.com/model`]||`glm-5.1`,dt=h===`codex`&&b.length===0&&!!ut,ft=o?.draft.metadata.labels?.[`agentkit.ksyun.com/artifact-type`]===`ManagedRuntime`||h===`codex`,pt=rt.map(MD).filter(Boolean),mt=ue?[` soul:`,` schemaVersion: agentkit.soul/v1`,` identity: |-`,...W.split(`
|
|
188
|
+
`).map(e=>` ${e}`),...LD(me).length?[` principles:`,...LD(me).map(e=>` - ${e}`)]:[],...LD(ge).length?[` boundaries:`,...LD(ge).map(e=>` - ${e}`)]:[],...ve.trim()?[` tone: |-`,...ve.split(`
|
|
189
|
+
`).map(e=>` ${e}`)]:[]]:[],ht=ue?[`soul:`,` schemaVersion: agentkit.soul/v1`,` identity: |-`,...W.split(`
|
|
190
|
+
`).map(e=>` ${e}`),...LD(me).length?[` principles:`,...LD(me).map(e=>` - ${e}`)]:[],...LD(ge).length?[` boundaries:`,...LD(ge).map(e=>` - ${e}`)]:[],...ve.trim()?[` tone: |-`,...ve.split(`
|
|
191
|
+
`).map(e=>` ${e}`)]:[],`soul_source: AgentSpec.soul`,`soul_digest: ${be?`<保存后重新计算>`:o?.soulProjection?.digest||`<保存后计算>`}`]:[],gt=o?.soulProjection?.compileTarget||(h===`codex`?`managed-runtime.base_instructions`:h===`plugin`?`instructions/soul.md`:`resolved-agent-spec.instructions.system`),_t=h===`codex`?[`name: ${m}`,`version: 1.0.0`,`framework: codex`,`artifact_type: ManagedRuntime`,`runtime:`,` name: codex`,` version: 0.144.4`,`model: ${MD(ct)||ut}`,...pt.length>1?[`models:`,...pt.map(e=>` - ${e}`)]:[],...ht,`prompt: |-`,..._.split(`
|
|
192
|
+
`).map(e=>` ${e}`)].join(`
|
|
193
|
+
`):h===`plugin`?[`apiVersion: agentkit.ksyun.com/v1alpha1`,`kind: Agent`,`metadata:`,` id: ${m}`,`spec:`,` runtime:`,` type: plugin`,` providerRef: ${I||`<未选择>`}`,` providerConfig: # Secret 仅保存引用`,...R.split(`
|
|
194
|
+
`).map(e=>` ${e}`),...mt,` instructions:`,` system: |-`,..._.split(`
|
|
195
|
+
`).map(e=>` ${e}`)].join(`
|
|
196
|
+
`):[`apiVersion: agentkit.ksyun.com/v1alpha1`,`kind: Agent`,`metadata:`,` id: ${m}`,`spec:`,` runtime:`,` type: ${h}`,` projectPath: ${A||`.`}`,` entryPoint: ${M||(h===`adk`?`agent.py`:`graph.py`)}`,` agentVariable: ${P||(h===`adk`?`root_agent`:`app`)}`,...mt,` instructions:`,` system: |-`,..._.split(`
|
|
197
|
+
`).map(e=>` ${e}`)].join(`
|
|
198
|
+
`);async function vt(t){if(!o||Ge)return;let n=v||b[0]||``;if(!n&&!dt){Je(`请至少绑定一个模型并设置为默认模型`);return}if(ue&&!W.trim()){Je(`启用 Soul 后必须填写身份定义`),k(1);return}if([`adk`,`langgraph`].includes(t.runtimeType)&&(!A.trim()||!M.trim()||!P.trim())){Je(`请完整填写项目相对路径、入口文件和 Agent 变量`);return}let r={};if(t.runtimeType===`plugin`){if(!at?.selectable){Je(at?.reason?.message||`所选 AgentProvider 当前不可用`);return}try{r=OD(R,at.secretFields)}catch(e){Je(e.message||`Provider 配置无效`);return}if(at.permissions.length&&!B){Je(`请先确认 AgentProvider 请求的权限`);return}}if(!Number.isInteger(ne)||ne<1||ne>100){Je(`最大步骤数必须是 1 到 100 的整数`);return}if(!Number.isInteger(ie)||ie<1||ie>3600){Je(`超时秒数必须是 1 到 3600 的整数`);return}if(Be&&(!we.trim()||!Number.isInteger(Oe)||Oe<0||!Number.isInteger(Ae)||Ae<1||Ae>64||!Number.isFinite(Me)||Me<0||Me>1)){Je(`请检查 Memory Provider 与召回策略范围`),k(3);return}Ke(!0),Je(``);try{let a=o.draft.spec,s=JSON.parse(JSON.stringify(a));s.runtime=t.runtimeType===`plugin`?{type:`plugin`,providerRef:at?.providerRef,providerConfig:r}:{...PD(t.runtimeType),...a.runtime||{},type:t.runtimeType,...[`adk`,`langgraph`].includes(t.runtimeType)?{projectPath:A.trim(),entryPoint:M.trim(),agentVariable:P.trim()}:{}},t.runtimeType===`plugin`&&(s.security={...a.security||{},allowedPermissions:[...new Set([...a.security?.allowedPermissions||[],...at?.permissions||[]])].sort()}),s.instructions={...a.instructions||{},system:t.prompt.trim(),task:a.instructions?.task||``},be&&(s.soul=ue?{schemaVersion:`agentkit.soul/v1`,identity:W.trim(),principles:LD(me),boundaries:LD(ge),tone:ve.trim()||null}:null),s.execution={...a.execution||{},strategy:ee,maxSteps:ne,timeoutSeconds:ie},s.bindings={...a.bindings||{},modelProfileId:n||null,modelProfileIds:b,skills:ID(a.bindings?.skills,S),mcpServers:ID(a.bindings?.mcpServers,w),tools:ID(a.bindings?.tools,E)},s.context={...a.context||{},ownership:oe,promptOwnership:oe===`ksadk`?`ksadk`:oe===`framework`?`framework`:a.context?.promptOwnership||`framework`,rollout:{...a.context?.rollout||{},contextEngine:ce,...Be?{memoryWrite:Re}:{}}},Be&&(s.memory={...a.memory||{},enabled:Se,providerRef:we.trim(),recall:{...a.memory?.recall||{},enabled:Ee,maxTokens:Oe,topK:Ae,minScore:Me},write:{...a.memory?.write||{},mode:Pe,flushBeforeCompaction:Ie}});let c=await g(`/api/v1/agents/${encodeURIComponent(e)}?name=${encodeURIComponent(t.name.trim())}`,{method:`PUT`,headers:{"Content-Type":`application/json`,"If-Match":String(o.draft.metadata.revision)},body:JSON.stringify(s)}),l=await c.json().catch(()=>null);if(!c.ok){if(Nb(l,d.setError))return;throw Error(l?.error?.message||`保存失败(${c.status})`)}let u=l?.metadata?.id||e;if(J(`Agent 已更新`,ft?`本地配置已保存;更新云端后生效。`:`本地声明已保存;已部署版本不会静默改变。`),He){let e=l?.metadata?.revision;if(!e||typeof e!=`number`){let t=await g(`/api/v1/agents/${encodeURIComponent(u)}`);e=t.ok&&(await t.json().catch(()=>null))?.draft?.metadata?.revision||o.draft.metadata.revision}let n=await g(`/api/v1/agents/${encodeURIComponent(u)}/builds`,{method:`POST`,headers:{"Content-Type":`application/json`,"Idempotency-Key":`build-${u}-r${e}-${Date.now()}`},body:JSON.stringify({revision:e,runEvaluation:!1})}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error?.message||`构建提交失败(${n.status})`);await RD(r.id),J(t.runtimeType===`codex`?`YAML 声明已校验`:`${t.runtimeType} Bundle 构建完成`,u)}i(u,He)}catch(e){Je(e.message||`保存失败`),J(`保存失败`,e.message||`保存失败`,`error`)}finally{Ke(!1)}}async function yt(t){if(!o)return;let n=await g(`/api/v1/agents/${encodeURIComponent(e)}/appearance`,{method:`PUT`,headers:{"Content-Type":`application/json`,"If-Match":String(o.draft.metadata.revision)},body:JSON.stringify(t)}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error?.message||`外观保存失败(${n.status})`);c(e=>e&&{...e,draft:{...e.draft,metadata:r.metadata}}),a?.(),J(`Agent 外观已更新`,`列表、会话和 Trace 将使用新的头像。`)}return l?(0,G.jsxs)(`div`,{className:`inline-alert error`,children:[(0,G.jsx)(U,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`Agent 加载失败`}),(0,G.jsx)(`p`,{children:l})]})]}):o?(0,G.jsxs)(`div`,{className:`quick-create`,children:[(0,G.jsx)(Vg,{...d,children:(0,G.jsxs)(`form`,{className:`quick-create-form`,onSubmit:d.handleSubmit(vt,e=>{let t=Object.values(e).find(e=>typeof e?.message==`string`);Je(String(t?.message||`请检查必填配置后重试`))}),noValidate:!0,children:[(0,G.jsxs)(`div`,{className:`quick-runtime-strip`,children:[(0,G.jsx)(`span`,{className:`runtime-logo`,children:(0,G.jsx)(fe,{size:17})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:ND(h)}),(0,G.jsx)(`span`,{children:`一 Agent 一 YAML · 不可变 Bundle`})]}),(0,G.jsx)(`span`,{className:`badge`,"data-state":`ready`,children:`本地可运行`})]}),(0,G.jsxs)(`div`,{className:`quick-create-heading`,children:[(0,G.jsx)(`span`,{className:`eyebrow`,children:`YAML-first`}),(0,G.jsxs)(`h2`,{title:m,children:[`编辑 `,p||o.draft.metadata.name]}),(0,G.jsx)(`p`,{children:`保存会直接回写该 Agent 的 agentengine.yaml;旧构建会标记为过期。`})]}),(0,G.jsx)(`nav`,{className:`agent-edit-nav`,"aria-label":`Agent 编辑分区`,children:[{id:1,label:`基础与 Prompt`},{id:2,label:`能力绑定`},{id:3,label:`运行策略`}].map(e=>(0,G.jsx)(`button`,{type:`button`,className:O===e.id?`active`:``,"aria-current":O===e.id?`page`:void 0,onClick:()=>k(e.id),children:e.label},e.id))}),(0,G.jsx)(`div`,{className:`callout compact agent-version-boundary`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:ft?`配置修订边界`:`部署版本边界`}),(0,G.jsx)(`p`,{children:ft?`本页保存本地 YAML 配置;已部署版本不会自动改变,执行云端更新后才会生效。`:`本页保存 Prompt、模型与能力绑定。Runtime 类型不可直接切换;代码入口等修改会进入新 Revision,并按运行时能力生成新 Bundle。`})]})}),(0,G.jsxs)(`section`,{className:`agent-edit-section`,hidden:O!==1,"aria-label":`基础与 Prompt`,children:[(0,G.jsxs)(`div`,{className:`agent-edit-section-heading`,children:[(0,G.jsx)(`span`,{className:`eyebrow`,children:`01`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{children:`基础与 Prompt`}),(0,G.jsx)(`p`,{children:`维护 Agent 身份、Runtime 与系统提示词。`})]})]}),(0,G.jsx)(pv,{name:p||o.draft.metadata.name,appearance:o.draft.metadata.appearance,disabled:Ge,onSave:yt}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`显示名称`,requirement:`required`,htmlFor:`editAgentName`,error:d.formState.errors.name?.message,children:(0,G.jsx)(`input`,{id:`editAgentName`,readOnly:!0,...d.register(`name`)})}),(0,G.jsx)(Y,{label:`本地标识(Slug)`,requirement:`generated`,htmlFor:`editAgentSlug`,hint:`本地唯一标识由创建流程生成;云端 AgentId 由部署服务另行映射。`,error:d.formState.errors.slug?.message,children:(0,G.jsx)(`input`,{id:`editAgentSlug`,className:`mono generated-value`,readOnly:!0,...d.register(`slug`)})})]}),(0,G.jsx)(Y,{label:`Runtime`,requirement:`required`,htmlFor:`editAgentRuntime`,hint:`已有 Build 后不能直接切换 Runtime;需创建迁移 Revision。`,error:d.formState.errors.runtimeType?.message,children:(0,G.jsx)(Fh,{id:`editAgentRuntime`,ariaLabel:`Runtime`,disabled:!0,value:h,options:[{value:`codex`,label:`CodexRuntimeAdapter`},{value:`adk`,label:`ADKRuntimeAdapter`},{value:`langgraph`,label:`LangGraphRuntimeAdapter`},{value:`plugin`,label:`External AgentProvider`}],onValueChange:()=>void 0})}),h===`plugin`&&(0,G.jsxs)(`div`,{className:`template-specific`,"data-testid":`edit-external-provider-config`,children:[(0,G.jsx)(Y,{label:`AgentProvider`,requirement:`required`,htmlFor:`editAgentProvider`,hint:`可以切换到另一个已安装、已启用且兼容的精确版本;Runtime 类型保持不变。`,children:(0,G.jsx)(Fh,{id:`editAgentProvider`,ariaLabel:`AgentProvider`,value:I,placeholder:`Provider 不可用`,options:ot,onValueChange:e=>{L(e),H(!1)}})}),!at?.selectable&&(0,G.jsxs)(`div`,{className:`inline-alert warning`,role:`status`,children:[(0,G.jsx)(U,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`AgentProvider 当前不可用`}),(0,G.jsx)(`p`,{children:at?.reason?.message||`该 Provider 未安装或未启用,请先在插件中心处理。`})]})]}),(0,G.jsx)(Y,{label:`Provider 配置`,requirement:`optional`,htmlFor:`editProviderConfig`,hint:`填写 JSON 对象;敏感字段只能保存 Secret 引用,不能保存明文。`,children:(0,G.jsx)(`textarea`,{id:`editProviderConfig`,className:`mono`,rows:6,value:R,onChange:e=>z(e.target.value)})}),at?.permissions.length?(0,G.jsxs)(`label`,{className:`post-create-option`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:B,onChange:e=>H(e.target.checked)}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`确认 Provider 请求的权限`}),(0,G.jsxs)(`small`,{children:[at.permissions.join(`、`),`;确认后才会写入新 Revision。`]})]})]}):null]}),(0,G.jsxs)(`fieldset`,{className:`agent-policy-editor soul-editor`,"aria-describedby":`soulPolicyHint`,children:[(0,G.jsx)(`legend`,{children:`Soul · 稳定人格`}),(0,G.jsxs)(`label`,{className:`pcm-memory-toggle soul-enable-toggle`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:ue,onChange:e=>{de(e.target.checked),xe(!0)}}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:ue?`已声明 Soul`:`未声明 Soul`}),(0,G.jsx)(`small`,{id:`soulPolicyHint`,children:`Soul 属于人工审核的 Revision 源,不会从会话或 Memory 自动改写。`})]})]}),ue?(0,G.jsxs)(`div`,{className:`agent-policy-fields`,children:[(0,G.jsx)(Y,{label:`身份定义`,requirement:`required`,htmlFor:`editSoulIdentity`,hint:`说明 Agent 是谁、承担什么稳定职责。`,children:(0,G.jsx)(`textarea`,{id:`editSoulIdentity`,rows:4,maxLength:4096,value:W,onChange:e=>{pe(e.target.value),xe(!0)}})}),(0,G.jsxs)(`div`,{className:`form-grid two-columns soul-list-grid`,children:[(0,G.jsx)(Y,{label:`原则`,requirement:`optional`,htmlFor:`editSoulPrinciples`,hint:`每行一条,最多 64 条。`,children:(0,G.jsx)(`textarea`,{id:`editSoulPrinciples`,rows:5,value:me,onChange:e=>{he(e.target.value),xe(!0)}})}),(0,G.jsx)(Y,{label:`边界`,requirement:`optional`,htmlFor:`editSoulBoundaries`,hint:`每行一条不可突破的行为边界。`,children:(0,G.jsx)(`textarea`,{id:`editSoulBoundaries`,rows:5,value:ge,onChange:e=>{_e(e.target.value),xe(!0)}})})]}),(0,G.jsx)(Y,{label:`表达语气`,requirement:`optional`,htmlFor:`editSoulTone`,hint:`稳定语气,不替代本轮用户要求。`,children:(0,G.jsx)(`textarea`,{id:`editSoulTone`,rows:3,maxLength:1024,value:ve,onChange:e=>{ye(e.target.value),xe(!0)}})})]}):null,(0,G.jsxs)(`div`,{className:`source-provenance`,role:`status`,"aria-label":`Soul 编译来源`,children:[(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`结构化来源`}),(0,G.jsx)(`code`,{children:o.soulProjection?.source||`AgentSpec.soul`})]}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`生效摘要`}),(0,G.jsx)(`code`,{children:be?`保存后重新计算`:o.soulProjection?.digest||`未生成`})]}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`编译位置`}),(0,G.jsx)(`code`,{children:gt})]})]}),(0,G.jsx)(`p`,{className:`agent-policy-note`,children:h===`codex`?`ManagedRuntime 启动时会把 Soul 确定性编译到 base_instructions,并保留结构化源与 digest。`:h===`plugin`?`Bundle 保留 instructions/soul.md;外部 Provider 按固定插件合同消费该审核快照。`:`构建时按 canonical JSON 计算 SHA-256,并编译到 resolved-agent-spec.instructions.system;Bundle 同时保留 instructions/soul.md。`})]}),(0,G.jsx)(Y,{label:`系统提示词`,requirement:`required`,htmlFor:`editAgentPrompt`,hint:`首个 Agent 写入根目录 agentengine.yaml;后续 Agent 写入 agents/<id>/agentengine.yaml。`,error:d.formState.errors.prompt?.message,children:(0,G.jsx)(`textarea`,{id:`editAgentPrompt`,maxLength:32768,rows:10,...d.register(`prompt`)})})]}),(0,G.jsxs)(`section`,{className:`agent-edit-section`,hidden:O!==2,"aria-label":`能力绑定`,children:[(0,G.jsxs)(`div`,{className:`agent-edit-section-heading`,children:[(0,G.jsx)(`span`,{className:`eyebrow`,children:`02`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{children:`能力绑定`}),(0,G.jsx)(`p`,{children:`配置模型、Skill、MCP 与 Runtime 支持的 Tool;切换分区不会丢失未保存修改。`})]})]}),(0,G.jsx)(`div`,{className:`form-grid two-columns`,children:(0,G.jsx)(Y,{label:`默认模型`,requirement:`required`,htmlFor:`editDefaultModel`,hint:`每轮未指定模型时使用`,footer:rt.length?null:(0,G.jsx)(`span`,{className:`studio-field-hint`,children:dt?`历史声明模型 ${ut} 将原样保留;从下方目录选择后可切换。`:`请先从模型 allowlist 中至少选择一个模型。`}),children:(0,G.jsx)(Fh,{id:`editDefaultModel`,ariaLabel:`默认模型`,value:v,placeholder:ut||`请先绑定模型`,disabled:!rt.length,options:rt.map(e=>({value:e.resourceId,label:e.displayName,description:MD(e)})),onValueChange:y})})}),(0,G.jsxs)(`div`,{className:`field quick-model-binding-field`,children:[(0,G.jsxs)(`div`,{className:`field-heading`,children:[(0,G.jsx)(`label`,{children:`绑定模型`}),(0,G.jsx)(`span`,{className:`helper`,children:`会话中只能动态切换到这里选中的模型`})]}),(0,G.jsx)(Tb,{ariaLabel:`选择绑定模型`,items:$e,selectedIds:b,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>`${MD(e)} · ${e.status}`,onChange:st,searchPlaceholder:`搜索绑定模型`,emptyMessage:`当前模型服务没有返回可绑定模型`})]}),(0,G.jsxs)(`div`,{className:`field quick-model-binding-field`,children:[(0,G.jsxs)(`div`,{className:`field-heading`,children:[(0,G.jsx)(`label`,{children:`绑定 Skill / MCP`}),(0,G.jsx)(`span`,{className:`helper`,children:h===`codex`?`Skill 与 MCP 由 Codex Runtime 按能力投影。`:h===`plugin`?`Skill 与 MCP 会通过 PluginHost 投影给外部 Provider。`:`Skill 可编辑;当前 Runtime 尚未实现 MCP 源码注入,历史 MCP 仅保留。`})]}),(0,G.jsxs)(`div`,{className:`quick-capability-bindings`,children:[(0,G.jsx)(Tb,{ariaLabel:`选择绑定 Skill`,items:et,selectedIds:S,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>e.version,onChange:C,searchPlaceholder:`搜索 Skill`,emptyMessage:`没有已安装的 Skill`}),(0,G.jsx)(Tb,{ariaLabel:`选择绑定 MCP`,items:[`codex`,`plugin`].includes(h)?tt:tt.filter(e=>w.includes(e.resourceId)),selectedIds:w,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>`${e.version} · ${e.health?.toolCount||0} Tool`,onChange:[`codex`,`plugin`].includes(h)?T:()=>void 0,disabledIds:[`codex`,`plugin`].includes(h)?[]:w,searchPlaceholder:`搜索 MCP`,emptyMessage:[`codex`,`plugin`].includes(h)?`没有已连接的 MCP`:`当前 Runtime 不支持新增 MCP`})]})]}),o.bindingProjection?.unresolvedMcpServers?.length?(0,G.jsxs)(`div`,{className:`inline-alert warning`,role:`status`,children:[(0,G.jsx)(U,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`部分 YAML MCP 尚未进入资源目录`}),(0,G.jsxs)(`p`,{children:[o.bindingProjection.unresolvedMcpServers.map(e=>e.name).join(`、`),` 未映射到资源目录;保存时会原样保留,请在资源页接入后再可视化编辑。`]})]})]}):null,(0,G.jsxs)(`div`,{className:`field quick-model-binding-field`,children:[(0,G.jsxs)(`div`,{className:`field-heading`,children:[(0,G.jsx)(`label`,{children:`绑定 Tool`}),(0,G.jsx)(`span`,{className:`helper`,children:[`codex`,`plugin`].includes(h)?`当前 Runtime 不支持新增 ksadk Tool;历史绑定仅保留,不能修改。`:`仅展示当前 Runtime 合同允许的 ksadk Tool。`})]}),(0,G.jsx)(Tb,{ariaLabel:`选择绑定 Tool`,items:[`codex`,`plugin`].includes(h)?nt.filter(e=>E.includes(e.resourceId)):nt,selectedIds:E,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>e.version,onChange:[`codex`,`plugin`].includes(h)?()=>void 0:D,disabledIds:[`codex`,`plugin`].includes(h)?E:[],searchPlaceholder:`搜索 Tool`,emptyMessage:h===`codex`?`Codex 使用原生工具`:h===`plugin`?`外部 Provider 当前接收 MCP 与 Skill 能力`:`没有可绑定的 Tool`})]})]}),(0,G.jsxs)(`section`,{className:`agent-edit-section`,hidden:O!==3,"aria-label":`运行策略`,children:[(0,G.jsxs)(`div`,{className:`agent-edit-section-heading`,children:[(0,G.jsx)(`span`,{className:`eyebrow`,children:`03`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{children:`运行策略`}),(0,G.jsx)(`p`,{children:`配置跨会话记忆;Context 高级选项通常保持默认即可。`})]})]}),[`adk`,`langgraph`].includes(h)?(0,G.jsxs)(`div`,{className:`form-grid two-columns agent-runtime-config-grid`,children:[(0,G.jsx)(Y,{label:`项目相对路径`,requirement:`required`,htmlFor:`editRuntimeProjectPath`,hint:`相对于当前 Studio 工作区;保存后由新 Revision 构建。`,children:(0,G.jsx)(`input`,{id:`editRuntimeProjectPath`,value:A,onChange:e=>j(e.target.value)})}),(0,G.jsx)(Y,{label:`入口文件`,requirement:`required`,htmlFor:`editRuntimeEntryPoint`,hint:`ADK 或 LangGraph Agent 的 Python 入口文件。`,children:(0,G.jsx)(`input`,{id:`editRuntimeEntryPoint`,value:M,onChange:e=>N(e.target.value)})}),(0,G.jsx)(Y,{label:`Agent 变量`,requirement:`required`,htmlFor:`editRuntimeAgentVariable`,hint:`入口模块导出的 Agent 或 Graph 变量名。`,children:(0,G.jsx)(`input`,{id:`editRuntimeAgentVariable`,value:P,onChange:e=>F(e.target.value)})})]}):null,(0,G.jsxs)(`div`,{className:`form-grid two-columns agent-execution-config-grid`,children:[(0,G.jsx)(Y,{label:`执行策略`,requirement:`required`,htmlFor:`editExecutionStrategy`,hint:`直接执行适合普通对话;计划执行适合多步骤任务。`,children:(0,G.jsx)(Fh,{id:`editExecutionStrategy`,ariaLabel:`执行策略`,value:ee,options:[{value:`direct`,label:`直接执行`},{value:`plan-act-observe`,label:`计划 · 执行 · 观察`}],onValueChange:te})}),(0,G.jsx)(Y,{label:`最大步骤数`,requirement:`required`,htmlFor:`editExecutionMaxSteps`,hint:`单次运行允许的最大 Agent 步骤,范围 1–100。`,children:(0,G.jsx)(`input`,{id:`editExecutionMaxSteps`,type:`number`,min:1,max:100,value:ne,onChange:e=>re(Number(e.target.value))})}),(0,G.jsx)(Y,{label:`超时秒数`,requirement:`required`,htmlFor:`editExecutionTimeout`,hint:`单次运行的整体超时,范围 1–3600 秒。`,children:(0,G.jsx)(`input`,{id:`editExecutionTimeout`,type:`number`,min:1,max:3600,value:ie,onChange:e=>ae(Number(e.target.value))})})]}),(0,G.jsxs)(`fieldset`,{className:`agent-policy-editor memory-policy-editor`,children:[(0,G.jsx)(`legend`,{children:`Memory · 跨会话策略`}),(0,G.jsxs)(`label`,{className:`pcm-memory-toggle`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:Se,onChange:e=>{Ce(e.target.checked),Ve(!0)}}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:Se?`已启用跨会话记忆`:`未启用跨会话记忆`}),(0,G.jsx)(`small`,{children:`启用状态、召回与写入分别受下列 AgentVersion 策略控制;不会因打开编辑页而改写旧配置。`})]})]}),(0,G.jsxs)(`div`,{className:`form-grid two-columns memory-policy-grid`,children:[(0,G.jsx)(Y,{label:`Memory Provider`,requirement:`required`,htmlFor:`editMemoryProvider`,hint:`只保存 providerRef,不保存凭证。`,children:(0,G.jsx)(`input`,{id:`editMemoryProvider`,maxLength:128,value:we,onChange:e=>{Te(e.target.value),Ve(!0)}})}),(0,G.jsx)(Y,{label:`写入模式`,requirement:`required`,htmlFor:`editMemoryWriteMode`,hint:`候选模式仍需策略审核;显式模式只接受用户确认的写入。`,children:(0,G.jsx)(Fh,{id:`editMemoryWriteMode`,ariaLabel:`Memory 写入模式`,value:Pe,options:[{value:`off`,label:`不产生写入候选`},{value:`explicit_only`,label:`仅显式写入`},{value:`candidate`,label:`候选写入`}],onValueChange:e=>{Fe(e),Ve(!0)}})}),(0,G.jsx)(Y,{label:`写入 Rollout`,requirement:`required`,htmlFor:`editMemoryWriteRollout`,hint:`关闭、仅观察和正式启用由版本策略明确区分。`,children:(0,G.jsx)(Fh,{id:`editMemoryWriteRollout`,ariaLabel:`Memory 写入 Rollout`,value:Re,options:[{value:`off`,label:`关闭`},{value:`shadow`,label:`仅观察`},{value:`enabled`,label:`正式启用`}],onValueChange:e=>{ze(e),Ve(!0)}})}),(0,G.jsx)(Y,{label:`召回开关`,requirement:`required`,htmlFor:`editMemoryRecallEnabled`,hint:`可启用 Memory 但关闭自动召回。`,children:(0,G.jsxs)(`div`,{className:`inline-checkbox-control`,children:[(0,G.jsx)(`input`,{id:`editMemoryRecallEnabled`,type:`checkbox`,checked:Ee,onChange:e=>{De(e.target.checked),Ve(!0)}}),(0,G.jsx)(`span`,{children:Ee?`允许按策略召回`:`不自动召回`})]})}),(0,G.jsx)(Y,{label:`召回 Token 上限`,requirement:`required`,htmlFor:`editMemoryRecallMaxTokens`,hint:`允许为 0,表示不投影召回正文。`,children:(0,G.jsx)(`input`,{id:`editMemoryRecallMaxTokens`,type:`number`,min:0,value:Oe,onChange:e=>{ke(Number(e.target.value)),Ve(!0)}})}),(0,G.jsx)(Y,{label:`召回条数`,requirement:`required`,htmlFor:`editMemoryRecallTopK`,hint:`范围 1–64。`,children:(0,G.jsx)(`input`,{id:`editMemoryRecallTopK`,type:`number`,min:1,max:64,value:Ae,onChange:e=>{je(Number(e.target.value)),Ve(!0)}})}),(0,G.jsx)(Y,{label:`最小相关度`,requirement:`required`,htmlFor:`editMemoryRecallMinScore`,hint:`范围 0–1。`,children:(0,G.jsx)(`input`,{id:`editMemoryRecallMinScore`,type:`number`,min:0,max:1,step:.05,value:Me,onChange:e=>{Ne(Number(e.target.value)),Ve(!0)}})}),(0,G.jsx)(Y,{label:`压缩前刷新`,requirement:`optional`,htmlFor:`editMemoryFlush`,hint:`在上下文压缩前提交已审核的 Memory 候选。`,children:(0,G.jsxs)(`div`,{className:`inline-checkbox-control`,children:[(0,G.jsx)(`input`,{id:`editMemoryFlush`,type:`checkbox`,checked:Ie,onChange:e=>{Le(e.target.checked),Ve(!0)}}),(0,G.jsx)(`span`,{children:Ie?`压缩前刷新`:`不在压缩前刷新`})]})})]}),(0,G.jsxs)(`div`,{className:`source-provenance memory-source-provenance`,role:`status`,"aria-label":`Memory 策略来源`,children:[(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`策略来源`}),(0,G.jsx)(`code`,{children:`AgentSpec.memory`})]}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`Provider`}),(0,G.jsx)(`code`,{children:we||`未配置`})]}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`写入生效`}),(0,G.jsxs)(`code`,{children:[`Context.rollout.memoryWrite=`,Re]})]})]})]}),(0,G.jsxs)(`details`,{className:`pcm-policy-card`,children:[(0,G.jsx)(`summary`,{children:(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`运行上下文(高级)`}),(0,G.jsx)(`small`,{children:`调整 Context 责任边界和优化策略;不确定时保持自动与仅观察`})]})}),(0,G.jsx)(`div`,{className:`pcm-policy-body`,children:(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`上下文管理方式`,requirement:`optional`,htmlFor:`editContextOwnership`,hint:`决定由平台、框架或原生 Runtime 负责最终模型输入。`,children:(0,G.jsx)(Fh,{id:`editContextOwnership`,ariaLabel:`上下文管理方式`,value:oe,options:lt,onValueChange:se})}),(0,G.jsx)(Y,{label:`上下文优化`,requirement:`optional`,htmlFor:`editContextEngineRollout`,hint:`仅观察只生成诊断证据;正式启用会执行预算、压缩和降载。`,children:(0,G.jsx)(Fh,{id:`editContextEngineRollout`,ariaLabel:`Context Engine`,value:ce,options:[{value:`off`,label:`使用 Runtime 默认行为`},{value:`shadow`,label:`仅观察(推荐)`},{value:`enabled`,label:`正式启用`}],onValueChange:le})})]})})]})]}),(0,G.jsxs)(`div`,{className:`quick-create-actions`,children:[(0,G.jsxs)(`label`,{className:`checkbox-row`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:He,onChange:e=>We(e.target.checked)}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:ft?`保存后生成配置快照`:`保存后构建新 Bundle`}),(0,G.jsx)(`small`,{children:ft?`校验 YAML 并生成可追溯的部署输入`:`新 Bundle 完成后进入会话工作台`})]})]}),(0,G.jsxs)(`button`,{className:`button accent`,type:`submit`,disabled:Ge,children:[(0,G.jsx)(Ue,{size:15}),(0,G.jsx)(`span`,{children:Ge?`正在保存`:`保存修改`})]})]}),qe&&(0,G.jsxs)(`div`,{className:`inline-alert error`,children:[(0,G.jsx)(U,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`保存失败`}),(0,G.jsx)(`p`,{children:qe})]})]})]})}),(0,G.jsxs)(`aside`,{className:`manifest-preview`,children:[(0,G.jsx)(Db,{code:_t,language:`yaml`,filename:`agentkit.yaml`,wrap:!0}),(0,G.jsxs)(`div`,{className:`manifest-contract`,children:[(0,G.jsxs)(`span`,{children:[(0,G.jsx)(V,{size:13}),`唯一配置源`]}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(V,{size:13}),`SHA-256 可追溯`]}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(V,{size:13}),`RuntimeAdapter 执行`]})]})]})]}):(0,G.jsx)(`div`,{className:`quick-create`,children:(0,G.jsx)(`p`,{children:`正在加载 Agent 配置…`})})}function BD({title:e,subtitle:t,wide:n=!1,closeDisabled:r=!1,onClose:i,footer:a,children:o}){return(0,G.jsx)(Oa,{open:!0,onOpenChange:e=>{e||i()},title:e,subtitle:t,wide:n,closeDisabled:r,footer:a,children:o})}function VD({kind:e,title:t,message:n}){return(0,G.jsxs)(`div`,{className:`inline-alert ${e}`,children:[e===`success`?(0,G.jsx)(ie,{size:15}):(0,G.jsx)(U,{size:15}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:t}),n?(0,G.jsx)(`p`,{children:n}):null]})]})}function HD(e,t){let n=t||{};return(e[e.length-1]===``?[...e,``]:e).join((n.padRight?` `:``)+`,`+(n.padLeft===!1?``:` `)).trim()}var UD=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,WD=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,GD={};function KD(e,t){return((t||GD).jsx?WD:UD).test(e)}var qD=/[ \t\n\f\r]/g;function JD(e){return typeof e==`object`?e.type===`text`&&YD(e.value):YD(e)}function YD(e){return e.replace(qD,``)===``}var XD=class{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}};XD.prototype.normal={},XD.prototype.property={},XD.prototype.space=void 0;function ZD(e,t){let n={},r={};for(let t of e)Object.assign(n,t.property),Object.assign(r,t.normal);return new XD(n,r,t)}function QD(e){return e.toLowerCase()}var $D=class{constructor(e,t){this.attribute=t,this.property=e}};$D.prototype.attribute=``,$D.prototype.booleanish=!1,$D.prototype.boolean=!1,$D.prototype.commaOrSpaceSeparated=!1,$D.prototype.commaSeparated=!1,$D.prototype.defined=!1,$D.prototype.mustUseProperty=!1,$D.prototype.number=!1,$D.prototype.overloadedBoolean=!1,$D.prototype.property=``,$D.prototype.spaceSeparated=!1,$D.prototype.space=void 0;var eO=e({boolean:()=>nO,booleanish:()=>rO,commaOrSpaceSeparated:()=>sO,commaSeparated:()=>oO,number:()=>Z,overloadedBoolean:()=>iO,spaceSeparated:()=>aO}),tO=0,nO=cO(),rO=cO(),iO=cO(),Z=cO(),aO=cO(),oO=cO(),sO=cO();function cO(){return 2**++tO}var lO=Object.keys(eO),uO=class extends $D{constructor(e,t,n,r){let i=-1;if(super(e,t),dO(this,`space`,r),typeof n==`number`)for(;++i<lO.length;){let e=lO[i];dO(this,lO[i],(n&eO[e])===eO[e])}}};uO.prototype.defined=!0;function dO(e,t,n){n&&(e[t]=n)}function fO(e){let t={},n={};for(let[r,i]of Object.entries(e.properties)){let a=new uO(r,e.transform(e.attributes||{},r),i,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),t[r]=a,n[QD(r)]=r,n[QD(a.attribute)]=r}return new XD(t,n,e.space)}var pO=fO({properties:{ariaActiveDescendant:null,ariaAtomic:rO,ariaAutoComplete:null,ariaBusy:rO,ariaChecked:rO,ariaColCount:Z,ariaColIndex:Z,ariaColSpan:Z,ariaControls:aO,ariaCurrent:null,ariaDescribedBy:aO,ariaDetails:null,ariaDisabled:rO,ariaDropEffect:aO,ariaErrorMessage:null,ariaExpanded:rO,ariaFlowTo:aO,ariaGrabbed:rO,ariaHasPopup:null,ariaHidden:rO,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:aO,ariaLevel:Z,ariaLive:null,ariaModal:rO,ariaMultiLine:rO,ariaMultiSelectable:rO,ariaOrientation:null,ariaOwns:aO,ariaPlaceholder:null,ariaPosInSet:Z,ariaPressed:rO,ariaReadOnly:rO,ariaRelevant:null,ariaRequired:rO,ariaRoleDescription:aO,ariaRowCount:Z,ariaRowIndex:Z,ariaRowSpan:Z,ariaSelected:rO,ariaSetSize:Z,ariaSort:null,ariaValueMax:Z,ariaValueMin:Z,ariaValueNow:Z,ariaValueText:null,role:null},transform(e,t){return t===`role`?t:`aria-`+t.slice(4).toLowerCase()}});function mO(e,t){return t in e?e[t]:t}function hO(e,t){return mO(e,t.toLowerCase())}var gO=fO({attributes:{acceptcharset:`accept-charset`,classname:`class`,htmlfor:`for`,httpequiv:`http-equiv`},mustUseProperty:[`checked`,`multiple`,`muted`,`selected`],properties:{abbr:null,accept:oO,acceptCharset:aO,accessKey:aO,action:null,allow:null,allowFullScreen:nO,allowPaymentRequest:nO,allowUserMedia:nO,alpha:nO,alt:null,as:null,async:nO,autoCapitalize:null,autoComplete:aO,autoFocus:nO,autoPlay:nO,blocking:aO,capture:null,charSet:null,checked:nO,cite:null,className:aO,closedBy:null,colorSpace:null,cols:Z,colSpan:Z,command:null,commandFor:null,content:null,contentEditable:rO,controls:nO,controlsList:aO,coords:Z|oO,crossOrigin:null,data:null,dateTime:null,decoding:null,default:nO,defer:nO,dir:null,dirName:null,disabled:nO,download:iO,draggable:rO,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:nO,formTarget:null,headers:aO,height:Z,hidden:iO,high:Z,href:null,hrefLang:null,htmlFor:aO,httpEquiv:aO,id:null,imageSizes:null,imageSrcSet:null,inert:nO,inputMode:null,integrity:null,is:null,isMap:nO,itemId:null,itemProp:aO,itemRef:aO,itemScope:nO,itemType:aO,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:nO,low:Z,manifest:null,max:null,maxLength:Z,media:null,method:null,min:null,minLength:Z,multiple:nO,muted:nO,name:null,nonce:null,noModule:nO,noValidate:nO,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:nO,optimum:Z,pattern:null,ping:aO,placeholder:null,playsInline:nO,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:nO,referrerPolicy:null,rel:aO,required:nO,reversed:nO,rows:Z,rowSpan:Z,sandbox:aO,scope:null,scoped:nO,seamless:nO,selected:nO,shadowRootClonable:nO,shadowRootCustomElementRegistry:nO,shadowRootDelegatesFocus:nO,shadowRootMode:null,shadowRootSerializable:nO,shape:null,size:Z,sizes:null,slot:null,span:Z,spellCheck:rO,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Z,step:null,style:null,tabIndex:Z,target:null,title:null,translate:null,type:null,typeMustMatch:nO,useMap:null,value:rO,width:Z,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:aO,axis:null,background:null,bgColor:null,border:Z,borderColor:null,bottomMargin:Z,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:nO,declare:nO,event:null,face:null,frame:null,frameBorder:null,hSpace:Z,leftMargin:Z,link:null,longDesc:null,lowSrc:null,marginHeight:Z,marginWidth:Z,noResize:nO,noHref:nO,noShade:nO,noWrap:nO,object:null,profile:null,prompt:null,rev:null,rightMargin:Z,rules:null,scheme:null,scrolling:rO,standby:null,summary:null,text:null,topMargin:Z,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Z,allowTransparency:null,autoCorrect:null,autoSave:null,credentialless:nO,disablePictureInPicture:nO,disableRemotePlayback:nO,exportParts:oO,part:aO,prefix:null,property:null,results:Z,security:null,unselectable:null},space:`html`,transform:hO}),_O=fO({attributes:{accentHeight:`accent-height`,alignmentBaseline:`alignment-baseline`,arabicForm:`arabic-form`,baselineShift:`baseline-shift`,capHeight:`cap-height`,className:`class`,clipPath:`clip-path`,clipRule:`clip-rule`,colorInterpolation:`color-interpolation`,colorInterpolationFilters:`color-interpolation-filters`,colorProfile:`color-profile`,colorRendering:`color-rendering`,crossOrigin:`crossorigin`,dataType:`datatype`,dominantBaseline:`dominant-baseline`,enableBackground:`enable-background`,fillOpacity:`fill-opacity`,fillRule:`fill-rule`,floodColor:`flood-color`,floodOpacity:`flood-opacity`,fontFamily:`font-family`,fontSize:`font-size`,fontSizeAdjust:`font-size-adjust`,fontStretch:`font-stretch`,fontStyle:`font-style`,fontVariant:`font-variant`,fontWeight:`font-weight`,glyphName:`glyph-name`,glyphOrientationHorizontal:`glyph-orientation-horizontal`,glyphOrientationVertical:`glyph-orientation-vertical`,hrefLang:`hreflang`,horizAdvX:`horiz-adv-x`,horizOriginX:`horiz-origin-x`,horizOriginY:`horiz-origin-y`,imageRendering:`image-rendering`,letterSpacing:`letter-spacing`,lightingColor:`lighting-color`,markerEnd:`marker-end`,markerMid:`marker-mid`,markerStart:`marker-start`,maskType:`mask-type`,navDown:`nav-down`,navDownLeft:`nav-down-left`,navDownRight:`nav-down-right`,navLeft:`nav-left`,navNext:`nav-next`,navPrev:`nav-prev`,navRight:`nav-right`,navUp:`nav-up`,navUpLeft:`nav-up-left`,navUpRight:`nav-up-right`,onAbort:`onabort`,onActivate:`onactivate`,onAfterPrint:`onafterprint`,onBeforePrint:`onbeforeprint`,onBegin:`onbegin`,onCancel:`oncancel`,onCanPlay:`oncanplay`,onCanPlayThrough:`oncanplaythrough`,onChange:`onchange`,onClick:`onclick`,onClose:`onclose`,onCopy:`oncopy`,onCueChange:`oncuechange`,onCut:`oncut`,onDblClick:`ondblclick`,onDrag:`ondrag`,onDragEnd:`ondragend`,onDragEnter:`ondragenter`,onDragExit:`ondragexit`,onDragLeave:`ondragleave`,onDragOver:`ondragover`,onDragStart:`ondragstart`,onDrop:`ondrop`,onDurationChange:`ondurationchange`,onEmptied:`onemptied`,onEnd:`onend`,onEnded:`onended`,onError:`onerror`,onFocus:`onfocus`,onFocusIn:`onfocusin`,onFocusOut:`onfocusout`,onHashChange:`onhashchange`,onInput:`oninput`,onInvalid:`oninvalid`,onKeyDown:`onkeydown`,onKeyPress:`onkeypress`,onKeyUp:`onkeyup`,onLoad:`onload`,onLoadedData:`onloadeddata`,onLoadedMetadata:`onloadedmetadata`,onLoadStart:`onloadstart`,onMessage:`onmessage`,onMouseDown:`onmousedown`,onMouseEnter:`onmouseenter`,onMouseLeave:`onmouseleave`,onMouseMove:`onmousemove`,onMouseOut:`onmouseout`,onMouseOver:`onmouseover`,onMouseUp:`onmouseup`,onMouseWheel:`onmousewheel`,onOffline:`onoffline`,onOnline:`ononline`,onPageHide:`onpagehide`,onPageShow:`onpageshow`,onPaste:`onpaste`,onPause:`onpause`,onPlay:`onplay`,onPlaying:`onplaying`,onPopState:`onpopstate`,onProgress:`onprogress`,onRateChange:`onratechange`,onRepeat:`onrepeat`,onReset:`onreset`,onResize:`onresize`,onScroll:`onscroll`,onSeeked:`onseeked`,onSeeking:`onseeking`,onSelect:`onselect`,onShow:`onshow`,onStalled:`onstalled`,onStorage:`onstorage`,onSubmit:`onsubmit`,onSuspend:`onsuspend`,onTimeUpdate:`ontimeupdate`,onToggle:`ontoggle`,onUnload:`onunload`,onVolumeChange:`onvolumechange`,onWaiting:`onwaiting`,onZoom:`onzoom`,overlinePosition:`overline-position`,overlineThickness:`overline-thickness`,paintOrder:`paint-order`,panose1:`panose-1`,pointerEvents:`pointer-events`,referrerPolicy:`referrerpolicy`,renderingIntent:`rendering-intent`,shapeRendering:`shape-rendering`,stopColor:`stop-color`,stopOpacity:`stop-opacity`,strikethroughPosition:`strikethrough-position`,strikethroughThickness:`strikethrough-thickness`,strokeDashArray:`stroke-dasharray`,strokeDashOffset:`stroke-dashoffset`,strokeLineCap:`stroke-linecap`,strokeLineJoin:`stroke-linejoin`,strokeMiterLimit:`stroke-miterlimit`,strokeOpacity:`stroke-opacity`,strokeWidth:`stroke-width`,tabIndex:`tabindex`,textAnchor:`text-anchor`,textDecoration:`text-decoration`,textRendering:`text-rendering`,transformOrigin:`transform-origin`,typeOf:`typeof`,underlinePosition:`underline-position`,underlineThickness:`underline-thickness`,unicodeBidi:`unicode-bidi`,unicodeRange:`unicode-range`,unitsPerEm:`units-per-em`,vAlphabetic:`v-alphabetic`,vHanging:`v-hanging`,vIdeographic:`v-ideographic`,vMathematical:`v-mathematical`,vectorEffect:`vector-effect`,vertAdvY:`vert-adv-y`,vertOriginX:`vert-origin-x`,vertOriginY:`vert-origin-y`,wordSpacing:`word-spacing`,writingMode:`writing-mode`,xHeight:`x-height`,playbackOrder:`playbackorder`,timelineBegin:`timelinebegin`},properties:{about:sO,accentHeight:Z,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Z,amplitude:Z,arabicForm:null,ascent:Z,attributeName:null,attributeType:null,azimuth:Z,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Z,by:null,calcMode:null,capHeight:Z,className:aO,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Z,diffuseConstant:Z,direction:null,display:null,dur:null,divisor:Z,dominantBaseline:null,download:nO,dx:null,dy:null,edgeMode:null,editable:null,elevation:Z,enableBackground:null,end:null,event:null,exponent:Z,externalResourcesRequired:null,fill:null,fillOpacity:Z,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:oO,g2:oO,glyphName:oO,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Z,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Z,horizOriginX:Z,horizOriginY:Z,id:null,ideographic:Z,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Z,k:Z,k1:Z,k2:Z,k3:Z,k4:Z,kernelMatrix:sO,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Z,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskType:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Z,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Z,overlineThickness:Z,paintOrder:null,panose1:null,path:null,pathLength:Z,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:aO,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Z,pointsAtY:Z,pointsAtZ:Z,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:sO,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:sO,rev:sO,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:sO,requiredFeatures:sO,requiredFonts:sO,requiredFormats:sO,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Z,specularExponent:Z,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Z,strikethroughThickness:Z,string:null,stroke:null,strokeDashArray:sO,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Z,strokeOpacity:Z,strokeWidth:null,style:null,surfaceScale:Z,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:sO,tabIndex:Z,tableValues:null,target:null,targetX:Z,targetY:Z,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:sO,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Z,underlineThickness:Z,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Z,values:null,vAlphabetic:Z,vMathematical:Z,vectorEffect:null,vHanging:Z,vIdeographic:Z,version:null,vertAdvY:Z,vertOriginX:Z,vertOriginY:Z,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Z,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:`svg`,transform:mO}),vO=fO({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:`xlink`,transform(e,t){return`xlink:`+t.slice(5).toLowerCase()}}),yO=fO({attributes:{xmlnsxlink:`xmlns:xlink`},properties:{xmlnsXLink:null,xmlns:null},space:`xmlns`,transform:hO}),bO=fO({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:`xml`,transform(e,t){return`xml:`+t.slice(3).toLowerCase()}}),xO={classId:`classID`,dataType:`datatype`,itemId:`itemID`,strokeDashArray:`strokeDasharray`,strokeDashOffset:`strokeDashoffset`,strokeLineCap:`strokeLinecap`,strokeLineJoin:`strokeLinejoin`,strokeMiterLimit:`strokeMiterlimit`,typeOf:`typeof`,xLinkActuate:`xlinkActuate`,xLinkArcRole:`xlinkArcrole`,xLinkHref:`xlinkHref`,xLinkRole:`xlinkRole`,xLinkShow:`xlinkShow`,xLinkTitle:`xlinkTitle`,xLinkType:`xlinkType`,xmlnsXLink:`xmlnsXlink`},SO=/[A-Z]/g,CO=/-[a-z]/g,wO=/^data[-\w.:]+$/i;function TO(e,t){let n=QD(t),r=t,i=$D;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)===`data`&&wO.test(t)){if(t.charAt(4)===`-`){let e=t.slice(5).replace(CO,DO);r=`data`+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=t.slice(4);if(!CO.test(e)){let n=e.replace(SO,EO);n.charAt(0)!==`-`&&(n=`-`+n),t=`data`+n}}i=uO}return new i(r,t)}function EO(e){return`-`+e.toLowerCase()}function DO(e){return e.charAt(1).toUpperCase()}var OO=ZD([pO,gO,vO,yO,bO],`html`),kO=ZD([pO,_O,vO,yO,bO],`svg`);function AO(e){return e.join(` `).trim()}var jO=n(((e,t)=>{var n=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,r=/\n/g,i=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,s=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,l=/^\s+|\s+$/g;function u(e,t){if(typeof e!=`string`)throw TypeError(`First argument must be a string`);if(!e)return[];t||={};var l=1,u=1;function f(e){var t=e.match(r);t&&(l+=t.length);var n=e.lastIndexOf(`
|
|
199
|
+
`);u=~n?e.length-n:u+e.length}function p(){var e={line:l,column:u};return function(t){return t.position=new m(e),_(),t}}function m(e){this.start=e,this.end={line:l,column:u},this.source=t.source}m.prototype.content=e;function h(n){var r=Error(t.source+`:`+l+`:`+u+`: `+n);if(r.reason=n,r.filename=t.source,r.line=l,r.column=u,r.source=e,!t.silent)throw r}function g(t){var n=t.exec(e);if(n){var r=n[0];return f(r),e=e.slice(r.length),n}}function _(){g(i)}function v(e){var t;for(e||=[];t=y();)t!==!1&&e.push(t);return e}function y(){var t=p();if(e.charAt(0)==`/`&&e.charAt(1)==`*`){for(var n=2;e.charAt(n)!=``&&(e.charAt(n)!=`*`||e.charAt(n+1)!=`/`);)++n;if(n+=2,e.charAt(n-1)===``)return h(`End of comment missing`);var r=e.slice(2,n-2);return u+=2,f(r),e=e.slice(n),u+=2,t({type:`comment`,comment:r})}}function b(){var e=p(),t=g(a);if(t){if(y(),!g(o))return h(`property missing ':'`);var r=g(s),i=e({type:`declaration`,property:d(t[0].replace(n,``)),value:r?d(r[0].replace(n,``)):``});return g(c),i}}function x(){var e=[];v(e);for(var t;t=b();)t!==!1&&(e.push(t),v(e));return e}return _(),x()}function d(e){return e?e.replace(l,``):``}t.exports=u})),MO=n((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.default=r;var n=t(jO());function r(e,t){let r=null;if(!e||typeof e!=`string`)return r;let i=(0,n.default)(e),a=typeof t==`function`;return i.forEach(e=>{if(e.type!==`declaration`)return;let{property:n,value:i}=e;a?t(n,i,e):i&&(r||={},r[n]=i)}),r}})),NO=n((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=void 0;var t=/^--[a-zA-Z0-9_-]+$/,n=/-([a-z])/g,r=/^[^-]+$/,i=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,o=function(e){return!e||r.test(e)||t.test(e)},s=function(e,t){return t.toUpperCase()},c=function(e,t){return`${t}-`};e.camelCase=function(e,t){return t===void 0&&(t={}),o(e)?e:(e=e.toLowerCase(),e=t.reactCompat?e.replace(a,c):e.replace(i,c),e.replace(n,s))}})),PO=n(((e,t)=>{var n=(e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}})(MO()),r=NO();function i(e,t){var i={};return!e||typeof e!=`string`||(0,n.default)(e,function(e,n){e&&n&&(i[(0,r.camelCase)(e,t)]=n)}),i}i.default=i,t.exports=i})),FO=LO(`end`),IO=LO(`start`);function LO(e){return t;function t(t){let n=t&&t.position&&t.position[e]||{};if(typeof n.line==`number`&&n.line>0&&typeof n.column==`number`&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset==`number`&&n.offset>-1?n.offset:void 0}}}function RO(e){let t=IO(e),n=FO(e);if(t&&n)return{start:t,end:n}}function zO(e){return!e||typeof e!=`object`?``:`position`in e||`type`in e?VO(e.position):`start`in e||`end`in e?VO(e):`line`in e||`column`in e?BO(e):``}function BO(e){return HO(e&&e.line)+`:`+HO(e&&e.column)}function VO(e){return BO(e&&e.start)+`-`+BO(e&&e.end)}function HO(e){return e&&typeof e==`number`?e:1}var UO=class extends Error{constructor(e,t,n){super(),typeof t==`string`&&(n=t,t=void 0);let r=``,i={},a=!1;if(t&&(i=`line`in t&&`column`in t||`start`in t&&`end`in t?{place:t}:`type`in t?{ancestors:[t],place:t.position}:{...t}),typeof e==`string`?r=e:!i.cause&&e&&(a=!0,r=e.message,i.cause=e),!i.ruleId&&!i.source&&typeof n==`string`){let e=n.indexOf(`:`);e===-1?i.ruleId=n:(i.source=n.slice(0,e),i.ruleId=n.slice(e+1))}if(!i.place&&i.ancestors&&i.ancestors){let e=i.ancestors[i.ancestors.length-1];e&&(i.place=e.position)}let o=i.place&&`start`in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=o?o.column:void 0,this.fatal=void 0,this.file=``,this.message=r,this.line=o?o.line:void 0,this.name=zO(i.place)||`1:1`,this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack==`string`?i.cause.stack:``,this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}};UO.prototype.file=``,UO.prototype.name=``,UO.prototype.reason=``,UO.prototype.message=``,UO.prototype.stack=``,UO.prototype.column=void 0,UO.prototype.line=void 0,UO.prototype.ancestors=void 0,UO.prototype.cause=void 0,UO.prototype.fatal=void 0,UO.prototype.place=void 0,UO.prototype.ruleId=void 0,UO.prototype.source=void 0;var WO=t(PO(),1),GO={}.hasOwnProperty,KO=new Map,qO=/[A-Z]/g,JO=new Set([`table`,`tbody`,`thead`,`tfoot`,`tr`]),YO=new Set([`td`,`th`]);function XO(e,t){if(!t||t.Fragment===void 0)throw TypeError("Expected `Fragment` in options");let n=t.filePath||void 0,r;if(t.development){if(typeof t.jsxDEV!=`function`)throw TypeError("Expected `jsxDEV` in options when `development: true`");r=sk(n,t.jsxDEV)}else{if(typeof t.jsx!=`function`)throw TypeError("Expected `jsx` in production options");if(typeof t.jsxs!=`function`)throw TypeError("Expected `jsxs` in production options");r=ok(n,t.jsx,t.jsxs)}let i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||`react`,evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space===`svg`?kO:OO,stylePropertyNameCase:t.stylePropertyNameCase||`dom`,tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=ZO(i,e,void 0);return a&&typeof a!=`string`?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function ZO(e,t,n){if(t.type===`element`)return QO(e,t,n);if(t.type===`mdxFlowExpression`||t.type===`mdxTextExpression`)return $O(e,t);if(t.type===`mdxJsxFlowElement`||t.type===`mdxJsxTextElement`)return tk(e,t,n);if(t.type===`mdxjsEsm`)return ek(e,t);if(t.type===`root`)return nk(e,t,n);if(t.type===`text`)return rk(e,t)}function QO(e,t,n){let r=e.schema,i=r;t.tagName.toLowerCase()===`svg`&&r.space===`html`&&(i=kO,e.schema=i),e.ancestors.push(t);let a=pk(e,t.tagName,!1),o=ck(e,t),s=uk(e,t);return JO.has(t.tagName)&&(s=s.filter(function(e){return typeof e!=`string`||!JD(e)})),ik(e,o,a,t),ak(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function $O(e,t){if(t.data&&t.data.estree&&e.evaluater){let n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}mk(e,t.position)}function ek(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);mk(e,t.position)}function tk(e,t,n){let r=e.schema,i=r;t.name===`svg`&&r.space===`html`&&(i=kO,e.schema=i),e.ancestors.push(t);let a=t.name===null?e.Fragment:pk(e,t.name,!0),o=lk(e,t),s=uk(e,t);return ik(e,o,a,t),ak(o,s),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function nk(e,t,n){let r={};return ak(r,uk(e,t)),e.create(t,e.Fragment,r,n)}function rk(e,t){return t.value}function ik(e,t,n,r){typeof n!=`string`&&n!==e.Fragment&&e.passNode&&(t.node=r)}function ak(e,t){if(t.length>0){let n=t.length>1?t:t[0];n&&(e.children=n)}}function ok(e,t,n){return r;function r(e,r,i,a){let o=Array.isArray(i.children)?n:t;return a?o(r,i,a):o(r,i)}}function sk(e,t){return n;function n(n,r,i,a){let o=Array.isArray(i.children),s=IO(n);return t(r,i,a,o,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function ck(e,t){let n={},r,i;for(i in t.properties)if(i!==`children`&&GO.call(t.properties,i)){let a=dk(e,i,t.properties[i]);if(a){let[i,o]=a;e.tableCellAlignToStyle&&i===`align`&&typeof o==`string`&&YO.has(t.tagName)?r=o:n[i]=o}}if(r){let t=n.style||={};t[e.stylePropertyNameCase===`css`?`text-align`:`textAlign`]=r}return n}function lk(e,t){let n={};for(let r of t.attributes)if(r.type===`mdxJsxExpressionAttribute`){if(r.data&&r.data.estree&&e.evaluater){let t=r.data.estree.body[0];t.type;let i=t.expression;i.type;let a=i.properties[0];a.type,Object.assign(n,e.evaluater.evaluateExpression(a.argument))}else mk(e,t.position)}else{let i=r.name,a;if(r.value&&typeof r.value==`object`){if(r.value.data&&r.value.data.estree&&e.evaluater){let t=r.value.data.estree.body[0];t.type,a=e.evaluater.evaluateExpression(t.expression)}else mk(e,t.position)}else a=r.value===null||r.value;n[i]=a}return n}function uk(e,t){let n=[],r=-1,i=e.passKeys?new Map:KO;for(;++r<t.children.length;){let a=t.children[r],o;if(e.passKeys){let e=a.type===`element`?a.tagName:a.type===`mdxJsxFlowElement`||a.type===`mdxJsxTextElement`?a.name:void 0;if(e){let t=i.get(e)||0;o=e+`-`+t,i.set(e,t+1)}}let s=ZO(e,a,o);s!==void 0&&n.push(s)}return n}function dk(e,t,n){let r=TO(e.schema,t);if(!(n==null||typeof n==`number`&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?HD(n):AO(n)),r.property===`style`){let t=typeof n==`object`?n:fk(e,String(n));return e.stylePropertyNameCase===`css`&&(t=hk(t)),[`style`,t]}return[e.elementAttributeNameCase===`react`&&r.space?xO[r.property]||r.property:r.attribute,n]}}function fk(e,t){try{return(0,WO.default)(t,{reactCompat:!0})}catch(t){if(e.ignoreInvalidStyle)return{};let n=t,r=new UO("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:n,ruleId:`style`,source:`hast-util-to-jsx-runtime`});throw r.file=e.filePath||void 0,r.url=`https://github.com/syntax-tree/hast-util-to-jsx-runtime#cannot-parse-style-attribute`,r}}function pk(e,t,n){let r;if(!n)r={type:`Literal`,value:t};else if(t.includes(`.`)){let e=t.split(`.`),n=-1,i;for(;++n<e.length;){let t=KD(e[n])?{type:`Identifier`,name:e[n]}:{type:`Literal`,value:e[n]};i=i?{type:`MemberExpression`,object:i,property:t,computed:!!(n&&t.type===`Literal`),optional:!1}:t}r=i}else r=KD(t)&&!/^[a-z]/.test(t)?{type:`Identifier`,name:t}:{type:`Literal`,value:t};if(r.type===`Literal`){let t=r.value;return GO.call(e.components,t)?e.components[t]:t}if(e.evaluater)return e.evaluater.evaluateExpression(r);mk(e)}function mk(e,t){let n=new UO("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:`mdx-estree`,source:`hast-util-to-jsx-runtime`});throw n.file=e.filePath||void 0,n.url=`https://github.com/syntax-tree/hast-util-to-jsx-runtime#cannot-handle-mdx-estrees-without-createevaluater`,n}function hk(e){let t={},n;for(n in e)GO.call(e,n)&&(t[gk(n)]=e[n]);return t}function gk(e){let t=e.replace(qO,_k);return t.slice(0,3)===`ms-`&&(t=`-`+t),t}function _k(e){return`-`+e.toLowerCase()}var vk={action:[`form`],cite:[`blockquote`,`del`,`ins`,`q`],data:[`object`],formAction:[`button`,`input`],href:[`a`,`area`,`base`,`link`],icon:[`menuitem`],itemId:null,manifest:[`html`],ping:[`a`,`area`],poster:[`video`],src:[`audio`,`embed`,`iframe`,`img`,`input`,`script`,`source`,`track`,`video`]},yk={};function bk(e,t){let n=t||yk;return xk(e,typeof n.includeImageAlt!=`boolean`||n.includeImageAlt,typeof n.includeHtml!=`boolean`||n.includeHtml)}function xk(e,t,n){if(Ck(e)){if(`value`in e)return e.type===`html`&&!n?``:e.value;if(t&&`alt`in e&&e.alt)return e.alt;if(`children`in e)return Sk(e.children,t,n)}return Array.isArray(e)?Sk(e,t,n):``}function Sk(e,t,n){let r=[],i=-1;for(;++i<e.length;)r[i]=xk(e[i],t,n);return r.join(``)}function Ck(e){return!!(e&&typeof e==`object`)}var wk=document.createElement(`i`);function Tk(e){let t=`&`+e+`;`;wk.innerHTML=t;let n=wk.textContent;return n.charCodeAt(n.length-1)===59&&e!==`semi`?!1:n!==t&&n}function Ek(e,t,n,r){let i=e.length,a=0,o;if(t=t<0?-t>i?0:i+t:t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a<r.length;)o=r.slice(a,a+1e4),o.unshift(t,0),e.splice(...o),a+=1e4,t+=1e4}function Dk(e,t){return e.length>0?(Ek(e,e.length,0,t),e):t}var Ok={}.hasOwnProperty;function kk(e){let t={},n=-1;for(;++n<e.length;)Ak(t,e[n]);return t}function Ak(e,t){let n;for(n in t){let r=(Ok.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n],a;if(i)for(a in i){Ok.call(r,a)||(r[a]=[]);let e=i[a];jk(r[a],Array.isArray(e)?e:e?[e]:[])}}}function jk(e,t){let n=-1,r=[];for(;++n<t.length;)(t[n].add===`after`?e:r).push(t[n]);Ek(e,0,0,r)}function Mk(e,t){let n=Number.parseInt(e,t);return n<9||n===11||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)==65535||(n&65535)==65534||n>1114111?`�`:String.fromCodePoint(n)}function Nk(e){return e.replace(/[\t\n\r ]+/g,` `).replace(/^ | $/g,``).toLowerCase().toUpperCase()}var Pk=Kk(/[A-Za-z]/),Fk=Kk(/[\dA-Za-z]/),Ik=Kk(/[#-'*+\--9=?A-Z^-~]/);function Lk(e){return e!==null&&(e<32||e===127)}var Rk=Kk(/\d/),zk=Kk(/[\dA-Fa-f]/),Bk=Kk(/[!-/:-@[-`{-~]/);function Vk(e){return e!==null&&e<-2}function Hk(e){return e!==null&&(e<0||e===32)}function Uk(e){return e===-2||e===-1||e===32}var Wk=Kk(/\p{P}|\p{S}/u),Gk=Kk(/\s/);function Kk(e){return t;function t(t){return t!==null&&t>-1&&e.test(String.fromCharCode(t))}}function qk(e){let t=[],n=-1,r=0,i=0;for(;++n<e.length;){let a=e.charCodeAt(n),o=``;if(a===37&&Fk(e.charCodeAt(n+1))&&Fk(e.charCodeAt(n+2)))i=2;else if(a<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(a))||(o=String.fromCharCode(a));else if(a>55295&&a<57344){let t=e.charCodeAt(n+1);a<56320&&t>56319&&t<57344?(o=String.fromCharCode(a,t),i=1):o=`�`}else o=String.fromCharCode(a);o&&=(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,``),i&&=(n+=i,0)}return t.join(``)+e.slice(r)}function Jk(e,t,n,r){let i=r?r-1:1/0,a=0;return o;function o(r){return Uk(r)?(e.enter(n),s(r)):t(r)}function s(r){return Uk(r)&&a++<i?(e.consume(r),s):(e.exit(n),t(r))}}var Yk={tokenize:Xk};function Xk(e){let t=e.attempt(this.parser.constructs.contentInitial,r,i),n;return t;function r(n){if(n===null){e.consume(n);return}return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),Jk(e,t,`linePrefix`)}function i(t){return e.enter(`paragraph`),a(t)}function a(t){let r=e.enter(`chunkText`,{contentType:`text`,previous:n});return n&&(n.next=r),n=r,o(t)}function o(t){if(t===null){e.exit(`chunkText`),e.exit(`paragraph`),e.consume(t);return}return Vk(t)?(e.consume(t),e.exit(`chunkText`),a):(e.consume(t),o)}}var Zk={tokenize:$k},Qk={tokenize:eA};function $k(e){let t=this,n=[],r=0,i,a,o;return s;function s(i){if(r<n.length){let a=n[r];return t.containerState=a[1],e.attempt(a[0].continuation,c,l)(i)}return l(i)}function c(e){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,i&&v();let n=t.events.length,a=n,o;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){o=t.events[a][1].end;break}_(r);let s=n;for(;s<t.events.length;)t.events[s][1].end={...o},s++;return Ek(t.events,a+1,0,t.events.slice(n)),t.events.length=s,l(e)}return s(e)}function l(a){if(r===n.length){if(!i)return f(a);if(i.currentConstruct&&i.currentConstruct.concrete)return m(a);t.interrupt=!!(i.currentConstruct&&!i._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(Qk,u,d)(a)}function u(e){return i&&v(),_(r),f(e)}function d(e){return t.parser.lazy[t.now().line]=r!==n.length,o=t.now().offset,m(e)}function f(n){return t.containerState={},e.attempt(Qk,p,m)(n)}function p(e){return r++,n.push([t.currentConstruct,t.containerState]),f(e)}function m(n){if(n===null){i&&v(),_(0),e.consume(n);return}return i||=t.parser.flow(t.now()),e.enter(`chunkFlow`,{_tokenizer:i,contentType:`flow`,previous:a}),h(n)}function h(n){if(n===null){g(e.exit(`chunkFlow`),!0),_(0),e.consume(n);return}return Vk(n)?(e.consume(n),g(e.exit(`chunkFlow`)),r=0,t.interrupt=void 0,s):(e.consume(n),h)}function g(e,n){let s=t.sliceStream(e);if(n&&s.push(null),e.previous=a,a&&(a.next=e),a=e,i.defineSkip(e.start),i.write(s),t.parser.lazy[e.start.line]){let e=i.events.length;for(;e--;)if(i.events[e][1].start.offset<o&&(!i.events[e][1].end||i.events[e][1].end.offset>o))return;let n=t.events.length,a=n,s,c;for(;a--;)if(t.events[a][0]===`exit`&&t.events[a][1].type===`chunkFlow`){if(s){c=t.events[a][1].end;break}s=!0}for(_(r),e=n;e<t.events.length;)t.events[e][1].end={...c},e++;Ek(t.events,a+1,0,t.events.slice(n)),t.events.length=e}}function _(r){let i=n.length;for(;i-->r;){let r=n[i];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function eA(e,t,n){return Jk(e,e.attempt(this.parser.constructs.document,t,n),`linePrefix`,this.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)}function tA(e){if(e===null||Hk(e)||Gk(e))return 1;if(Wk(e))return 2}function nA(e,t,n){let r=[],i=-1;for(;++i<e.length;){let a=e[i].resolveAll;a&&!r.includes(a)&&(t=a(t,n),r.push(a))}return t}var rA={name:`attention`,resolveAll:iA,tokenize:aA};function iA(e,t){let n=-1,r,i,a,o,s,c,l,u;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`attentionSequence`&&e[n][1]._close){for(r=n;r--;)if(e[r][0]===`exit`&&e[r][1].type===`attentionSequence`&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;c=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;let d={...e[r][1].end},f={...e[n][1].start};oA(d,-c),oA(f,c),o={type:c>1?`strongSequence`:`emphasisSequence`,start:d,end:{...e[r][1].end}},s={type:c>1?`strongSequence`:`emphasisSequence`,start:{...e[n][1].start},end:f},a={type:c>1?`strongText`:`emphasisText`,start:{...e[r][1].end},end:{...e[n][1].start}},i={type:c>1?`strong`:`emphasis`,start:{...o.start},end:{...s.end}},e[r][1].end={...o.start},e[n][1].start={...s.end},l=[],e[r][1].end.offset-e[r][1].start.offset&&(l=Dk(l,[[`enter`,e[r][1],t],[`exit`,e[r][1],t]])),l=Dk(l,[[`enter`,i,t],[`enter`,o,t],[`exit`,o,t],[`enter`,a,t]]),l=Dk(l,nA(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),l=Dk(l,[[`exit`,a,t],[`enter`,s,t],[`exit`,s,t],[`exit`,i,t]]),e[n][1].end.offset-e[n][1].start.offset?(u=2,l=Dk(l,[[`enter`,e[n][1],t],[`exit`,e[n][1],t]])):u=0,Ek(e,r-1,n-r+3,l),n=r+l.length-u-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`attentionSequence`&&(e[n][1].type=`data`);return e}function aA(e,t){let n=this.parser.constructs.attentionMarkers.null,r=this.previous,i=tA(r),a;return o;function o(t){return a=t,e.enter(`attentionSequence`),s(t)}function s(o){if(o===a)return e.consume(o),s;let c=e.exit(`attentionSequence`),l=tA(o),u=!l||l===2&&i||n.includes(o),d=!i||i===2&&l||n.includes(r);return c._open=!!(a===42?u:u&&(i||!d)),c._close=!!(a===42?d:d&&(l||!u)),t(o)}}function oA(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}var sA={name:`autolink`,tokenize:cA};function cA(e,t,n){let r=0;return i;function i(t){return e.enter(`autolink`),e.enter(`autolinkMarker`),e.consume(t),e.exit(`autolinkMarker`),e.enter(`autolinkProtocol`),a}function a(t){return Pk(t)?(e.consume(t),o):t===64?n(t):l(t)}function o(e){return e===43||e===45||e===46||Fk(e)?(r=1,s(e)):l(e)}function s(t){return t===58?(e.consume(t),r=0,c):(t===43||t===45||t===46||Fk(t))&&r++<32?(e.consume(t),s):(r=0,l(t))}function c(r){return r===62?(e.exit(`autolinkProtocol`),e.enter(`autolinkMarker`),e.consume(r),e.exit(`autolinkMarker`),e.exit(`autolink`),t):r===null||r===32||r===60||Lk(r)?n(r):(e.consume(r),c)}function l(t){return t===64?(e.consume(t),u):Ik(t)?(e.consume(t),l):n(t)}function u(e){return Fk(e)?d(e):n(e)}function d(n){return n===46?(e.consume(n),r=0,u):n===62?(e.exit(`autolinkProtocol`).type=`autolinkEmail`,e.enter(`autolinkMarker`),e.consume(n),e.exit(`autolinkMarker`),e.exit(`autolink`),t):f(n)}function f(t){if((t===45||Fk(t))&&r++<63){let n=t===45?f:d;return e.consume(t),n}return n(t)}}var lA={partial:!0,tokenize:uA};function uA(e,t,n){return r;function r(t){return Uk(t)?Jk(e,i,`linePrefix`)(t):i(t)}function i(e){return e===null||Vk(e)?t(e):n(e)}}var dA={continuation:{tokenize:pA},exit:mA,name:`blockQuote`,tokenize:fA};function fA(e,t,n){let r=this;return i;function i(t){if(t===62){let n=r.containerState;return n.open||=(e.enter(`blockQuote`,{_container:!0}),!0),e.enter(`blockQuotePrefix`),e.enter(`blockQuoteMarker`),e.consume(t),e.exit(`blockQuoteMarker`),a}return n(t)}function a(n){return Uk(n)?(e.enter(`blockQuotePrefixWhitespace`),e.consume(n),e.exit(`blockQuotePrefixWhitespace`),e.exit(`blockQuotePrefix`),t):(e.exit(`blockQuotePrefix`),t(n))}}function pA(e,t,n){let r=this;return i;function i(t){return Uk(t)?Jk(e,a,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):a(t)}function a(r){return e.attempt(dA,t,n)(r)}}function mA(e){e.exit(`blockQuote`)}var hA={name:`characterEscape`,tokenize:gA};function gA(e,t,n){return r;function r(t){return e.enter(`characterEscape`),e.enter(`escapeMarker`),e.consume(t),e.exit(`escapeMarker`),i}function i(r){return Bk(r)?(e.enter(`characterEscapeValue`),e.consume(r),e.exit(`characterEscapeValue`),e.exit(`characterEscape`),t):n(r)}}var _A={name:`characterReference`,tokenize:vA};function vA(e,t,n){let r=this,i=0,a,o;return s;function s(t){return e.enter(`characterReference`),e.enter(`characterReferenceMarker`),e.consume(t),e.exit(`characterReferenceMarker`),c}function c(t){return t===35?(e.enter(`characterReferenceMarkerNumeric`),e.consume(t),e.exit(`characterReferenceMarkerNumeric`),l):(e.enter(`characterReferenceValue`),a=31,o=Fk,u(t))}function l(t){return t===88||t===120?(e.enter(`characterReferenceMarkerHexadecimal`),e.consume(t),e.exit(`characterReferenceMarkerHexadecimal`),e.enter(`characterReferenceValue`),a=6,o=zk,u):(e.enter(`characterReferenceValue`),a=7,o=Rk,u(t))}function u(s){if(s===59&&i){let i=e.exit(`characterReferenceValue`);return o===Fk&&!Tk(r.sliceSerialize(i))?n(s):(e.enter(`characterReferenceMarker`),e.consume(s),e.exit(`characterReferenceMarker`),e.exit(`characterReference`),t)}return o(s)&&i++<a?(e.consume(s),u):n(s)}}var yA={partial:!0,tokenize:SA},bA={concrete:!0,name:`codeFenced`,tokenize:xA};function xA(e,t,n){let r=this,i={partial:!0,tokenize:x},a=0,o=0,s;return c;function c(e){return l(e)}function l(t){let n=r.events[r.events.length-1];return a=n&&n[1].type===`linePrefix`?n[2].sliceSerialize(n[1],!0).length:0,s=t,e.enter(`codeFenced`),e.enter(`codeFencedFence`),e.enter(`codeFencedFenceSequence`),u(t)}function u(t){return t===s?(o++,e.consume(t),u):o<3?n(t):(e.exit(`codeFencedFenceSequence`),Uk(t)?Jk(e,d,`whitespace`)(t):d(t))}function d(n){return n===null||Vk(n)?(e.exit(`codeFencedFence`),r.interrupt?t(n):e.check(yA,h,b)(n)):(e.enter(`codeFencedFenceInfo`),e.enter(`chunkString`,{contentType:`string`}),f(n))}function f(t){return t===null||Vk(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),d(t)):Uk(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceInfo`),Jk(e,p,`whitespace`)(t)):t===96&&t===s?n(t):(e.consume(t),f)}function p(t){return t===null||Vk(t)?d(t):(e.enter(`codeFencedFenceMeta`),e.enter(`chunkString`,{contentType:`string`}),m(t))}function m(t){return t===null||Vk(t)?(e.exit(`chunkString`),e.exit(`codeFencedFenceMeta`),d(t)):t===96&&t===s?n(t):(e.consume(t),m)}function h(t){return e.attempt(i,b,g)(t)}function g(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),_}function _(t){return a>0&&Uk(t)?Jk(e,v,`linePrefix`,a+1)(t):v(t)}function v(t){return t===null||Vk(t)?e.check(yA,h,b)(t):(e.enter(`codeFlowValue`),y(t))}function y(t){return t===null||Vk(t)?(e.exit(`codeFlowValue`),v(t)):(e.consume(t),y)}function b(n){return e.exit(`codeFenced`),t(n)}function x(e,t,n){let i=0;return a;function a(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c}function c(t){return e.enter(`codeFencedFence`),Uk(t)?Jk(e,l,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):l(t)}function l(t){return t===s?(e.enter(`codeFencedFenceSequence`),u(t)):n(t)}function u(t){return t===s?(i++,e.consume(t),u):i>=o?(e.exit(`codeFencedFenceSequence`),Uk(t)?Jk(e,d,`whitespace`)(t):d(t)):n(t)}function d(r){return r===null||Vk(r)?(e.exit(`codeFencedFence`),t(r)):n(r)}}}function SA(e,t,n){let r=this;return i;function i(t){return t===null?n(t):(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}var CA={name:`codeIndented`,tokenize:TA},wA={partial:!0,tokenize:EA};function TA(e,t,n){let r=this;return i;function i(t){return e.enter(`codeIndented`),Jk(e,a,`linePrefix`,5)(t)}function a(e){let t=r.events[r.events.length-1];return t&&t[1].type===`linePrefix`&&t[2].sliceSerialize(t[1],!0).length>=4?o(e):n(e)}function o(t){return t===null?c(t):Vk(t)?e.attempt(wA,o,c)(t):(e.enter(`codeFlowValue`),s(t))}function s(t){return t===null||Vk(t)?(e.exit(`codeFlowValue`),o(t)):(e.consume(t),s)}function c(n){return e.exit(`codeIndented`),t(n)}}function EA(e,t,n){let r=this;return i;function i(t){return r.parser.lazy[r.now().line]?n(t):Vk(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),i):Jk(e,a,`linePrefix`,5)(t)}function a(e){let a=r.events[r.events.length-1];return a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(e):Vk(e)?i(e):n(e)}}var DA={name:`codeText`,previous:kA,resolve:OA,tokenize:AA};function OA(e){let t=e.length-4,n=3,r,i;if((e[n][1].type===`lineEnding`||e[n][1].type===`space`)&&(e[t][1].type===`lineEnding`||e[t][1].type===`space`)){for(r=n;++r<t;)if(e[r][1].type===`codeTextData`){e[n][1].type=`codeTextPadding`,e[t][1].type=`codeTextPadding`,n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)i===void 0?r!==t&&e[r][1].type!==`lineEnding`&&(i=r):(r===t||e[r][1].type===`lineEnding`)&&(e[i][1].type=`codeTextData`,r!==i+2&&(e[i][1].end=e[r-1][1].end,e.splice(i+2,r-i-2),t-=r-i-2,r=i+2),i=void 0);return e}function kA(e){return e!==96||this.events[this.events.length-1][1].type===`characterEscape`}function AA(e,t,n){let r=0,i,a;return o;function o(t){return e.enter(`codeText`),e.enter(`codeTextSequence`),s(t)}function s(t){return t===96?(e.consume(t),r++,s):(e.exit(`codeTextSequence`),c(t))}function c(t){return t===null?n(t):t===32?(e.enter(`space`),e.consume(t),e.exit(`space`),c):t===96?(a=e.enter(`codeTextSequence`),i=0,u(t)):Vk(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),c):(e.enter(`codeTextData`),l(t))}function l(t){return t===null||t===32||t===96||Vk(t)?(e.exit(`codeTextData`),c(t)):(e.consume(t),l)}function u(n){return n===96?(e.consume(n),i++,u):i===r?(e.exit(`codeTextSequence`),e.exit(`codeText`),t(n)):(a.type=`codeTextData`,l(n))}}var jA=class{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){let n=t??1/0;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){let r=t||0;this.setCursor(Math.trunc(e));let i=this.right.splice(this.right.length-r,1/0);return n&&MA(this.left,n),i.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),MA(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),MA(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0)){if(e<this.left.length){let t=this.left.splice(e,1/0);MA(this.right,t.reverse())}else{let t=this.right.splice(this.left.length+this.right.length-e,1/0);MA(this.left,t.reverse())}}}};function MA(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function NA(e){let t={},n=-1,r,i,a,o,s,c,l,u=new jA(e);for(;++n<u.length;){for(;n in t;)n=t[n];if(r=u.get(n),n&&r[1].type===`chunkFlow`&&u.get(n-1)[1].type===`listItemPrefix`&&(c=r[1]._tokenizer.events,a=0,a<c.length&&c[a][1].type===`lineEndingBlank`&&(a+=2),a<c.length&&c[a][1].type===`content`))for(;++a<c.length&&c[a][1].type!==`content`;)c[a][1].type===`chunkText`&&(c[a][1]._isInFirstContentOfListItem=!0,a++);if(r[0]===`enter`)r[1].contentType&&(Object.assign(t,PA(u,n)),n=t[n],l=!0);else if(r[1]._container){for(a=n,i=void 0;a--;)if(o=u.get(a),o[1].type===`lineEnding`||o[1].type===`lineEndingBlank`)o[0]===`enter`&&(i&&(u.get(i)[1].type=`lineEndingBlank`),o[1].type=`lineEnding`,i=a);else if(o[1].type!==`linePrefix`&&o[1].type!==`listItemIndent`)break;i&&(r[1].end={...u.get(i)[1].start},s=u.slice(i,n),s.unshift(r),u.splice(i,n-i+1,s))}}return Ek(e,0,1/0,u.slice(0)),!l}function PA(e,t){let n=e.get(t)[1],r=e.get(t)[2],i=t-1,a=[],o=n._tokenizer;o||(o=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));let s=o.events,c=[],l={},u,d,f=-1,p=n,m=0,h=0,g=[h];for(;p;){for(;e.get(++i)[1]!==p;);a.push(i),p._tokenizer||(u=r.sliceStream(p),p.next||u.push(null),d&&o.defineSkip(p.start),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(u),p._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),d=p,p=p.next}for(p=n;++f<s.length;)s[f][0]===`exit`&&s[f-1][0]===`enter`&&s[f][1].type===s[f-1][1].type&&s[f][1].start.line!==s[f][1].end.line&&(h=f+1,g.push(h),p._tokenizer=void 0,p.previous=void 0,p=p.next);for(o.events=[],p?(p._tokenizer=void 0,p.previous=void 0):g.pop(),f=g.length;f--;){let t=s.slice(g[f],g[f+1]),n=a.pop();c.push([n,n+t.length-1]),e.splice(n,2,t)}for(c.reverse(),f=-1;++f<c.length;)l[m+c[f][0]]=m+c[f][1],m+=c[f][1]-c[f][0]-1;return l}var FA={resolve:LA,tokenize:RA},IA={partial:!0,tokenize:zA};function LA(e){return NA(e),e}function RA(e,t){let n;return r;function r(t){return e.enter(`content`),n=e.enter(`chunkContent`,{contentType:`content`}),i(t)}function i(t){return t===null?a(t):Vk(t)?e.check(IA,o,a)(t):(e.consume(t),i)}function a(n){return e.exit(`chunkContent`),e.exit(`content`),t(n)}function o(t){return e.consume(t),e.exit(`chunkContent`),n.next=e.enter(`chunkContent`,{contentType:`content`,previous:n}),n=n.next,i}}function zA(e,t,n){let r=this;return i;function i(t){return e.exit(`chunkContent`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),Jk(e,a,`linePrefix`)}function a(i){if(i===null||Vk(i))return n(i);let a=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes(`codeIndented`)&&a&&a[1].type===`linePrefix`&&a[2].sliceSerialize(a[1],!0).length>=4?t(i):e.interrupt(r.parser.constructs.flow,n,t)(i)}}function BA(e,t,n,r,i,a,o,s,c){let l=c||1/0,u=0;return d;function d(t){return t===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(t),e.exit(a),f):t===null||t===32||t===41||Lk(t)?n(t):(e.enter(r),e.enter(o),e.enter(s),e.enter(`chunkString`,{contentType:`string`}),h(t))}function f(n){return n===62?(e.enter(a),e.consume(n),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(s),e.enter(`chunkString`,{contentType:`string`}),p(n))}function p(t){return t===62?(e.exit(`chunkString`),e.exit(s),f(t)):t===null||t===60||Vk(t)?n(t):(e.consume(t),t===92?m:p)}function m(t){return t===60||t===62||t===92?(e.consume(t),p):p(t)}function h(i){return!u&&(i===null||i===41||Hk(i))?(e.exit(`chunkString`),e.exit(s),e.exit(o),e.exit(r),t(i)):u<l&&i===40?(e.consume(i),u++,h):i===41?(e.consume(i),u--,h):i===null||i===32||i===40||Lk(i)?n(i):(e.consume(i),i===92?g:h)}function g(t){return t===40||t===41||t===92?(e.consume(t),h):h(t)}}function VA(e,t,n,r,i,a){let o=this,s=0,c;return l;function l(t){return e.enter(r),e.enter(i),e.consume(t),e.exit(i),e.enter(a),u}function u(l){return s>999||l===null||l===91||l===93&&!c||l===94&&!s&&`_hiddenFootnoteSupport`in o.parser.constructs?n(l):l===93?(e.exit(a),e.enter(i),e.consume(l),e.exit(i),e.exit(r),t):Vk(l)?(e.enter(`lineEnding`),e.consume(l),e.exit(`lineEnding`),u):(e.enter(`chunkString`,{contentType:`string`}),d(l))}function d(t){return t===null||t===91||t===93||Vk(t)||s++>999?(e.exit(`chunkString`),u(t)):(e.consume(t),c||=!Uk(t),t===92?f:d)}function f(t){return t===91||t===92||t===93?(e.consume(t),s++,d):d(t)}}function HA(e,t,n,r,i,a){let o;return s;function s(t){return t===34||t===39||t===40?(e.enter(r),e.enter(i),e.consume(t),e.exit(i),o=t===40?41:t,c):n(t)}function c(n){return n===o?(e.enter(i),e.consume(n),e.exit(i),e.exit(r),t):(e.enter(a),l(n))}function l(t){return t===o?(e.exit(a),c(o)):t===null?n(t):Vk(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),Jk(e,l,`linePrefix`)):(e.enter(`chunkString`,{contentType:`string`}),u(t))}function u(t){return t===o||t===null||Vk(t)?(e.exit(`chunkString`),l(t)):(e.consume(t),t===92?d:u)}function d(t){return t===o||t===92?(e.consume(t),u):u(t)}}function UA(e,t){let n;return r;function r(i){return Vk(i)?(e.enter(`lineEnding`),e.consume(i),e.exit(`lineEnding`),n=!0,r):Uk(i)?Jk(e,r,n?`linePrefix`:`lineSuffix`)(i):t(i)}}var WA={name:`definition`,tokenize:KA},GA={partial:!0,tokenize:qA};function KA(e,t,n){let r=this,i;return a;function a(t){return e.enter(`definition`),o(t)}function o(t){return VA.call(r,e,s,n,`definitionLabel`,`definitionLabelMarker`,`definitionLabelString`)(t)}function s(t){return i=Nk(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),c):n(t)}function c(t){return Hk(t)?UA(e,l)(t):l(t)}function l(t){return BA(e,u,n,`definitionDestination`,`definitionDestinationLiteral`,`definitionDestinationLiteralMarker`,`definitionDestinationRaw`,`definitionDestinationString`)(t)}function u(t){return e.attempt(GA,d,d)(t)}function d(t){return Uk(t)?Jk(e,f,`whitespace`)(t):f(t)}function f(a){return a===null||Vk(a)?(e.exit(`definition`),r.parser.defined.push(i),t(a)):n(a)}}function qA(e,t,n){return r;function r(t){return Hk(t)?UA(e,i)(t):n(t)}function i(t){return HA(e,a,n,`definitionTitle`,`definitionTitleMarker`,`definitionTitleString`)(t)}function a(t){return Uk(t)?Jk(e,o,`whitespace`)(t):o(t)}function o(e){return e===null||Vk(e)?t(e):n(e)}}var JA={name:`hardBreakEscape`,tokenize:YA};function YA(e,t,n){return r;function r(t){return e.enter(`hardBreakEscape`),e.consume(t),i}function i(r){return Vk(r)?(e.exit(`hardBreakEscape`),t(r)):n(r)}}var XA={name:`headingAtx`,resolve:ZA,tokenize:QA};function ZA(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type===`whitespace`&&(r+=2),n-2>r&&e[n][1].type===`whitespace`&&(n-=2),e[n][1].type===`atxHeadingSequence`&&(r===n-1||n-4>r&&e[n-2][1].type===`whitespace`)&&(n-=r+1===n?2:4),n>r&&(i={type:`atxHeadingText`,start:e[r][1].start,end:e[n][1].end},a={type:`chunkText`,start:e[r][1].start,end:e[n][1].end,contentType:`text`},Ek(e,r,n-r+1,[[`enter`,i,t],[`enter`,a,t],[`exit`,a,t],[`exit`,i,t]])),e}function QA(e,t,n){let r=0;return i;function i(t){return e.enter(`atxHeading`),a(t)}function a(t){return e.enter(`atxHeadingSequence`),o(t)}function o(t){return t===35&&r++<6?(e.consume(t),o):t===null||Hk(t)?(e.exit(`atxHeadingSequence`),s(t)):n(t)}function s(n){return n===35?(e.enter(`atxHeadingSequence`),c(n)):n===null||Vk(n)?(e.exit(`atxHeading`),t(n)):Uk(n)?Jk(e,s,`whitespace`)(n):(e.enter(`atxHeadingText`),l(n))}function c(t){return t===35?(e.consume(t),c):(e.exit(`atxHeadingSequence`),s(t))}function l(t){return t===null||t===35||Hk(t)?(e.exit(`atxHeadingText`),s(t)):(e.consume(t),l)}}var $A=`address.article.aside.base.basefont.blockquote.body.caption.center.col.colgroup.dd.details.dialog.dir.div.dl.dt.fieldset.figcaption.figure.footer.form.frame.frameset.h1.h2.h3.h4.h5.h6.head.header.hr.html.iframe.legend.li.link.main.menu.menuitem.nav.noframes.ol.optgroup.option.p.param.search.section.summary.table.tbody.td.tfoot.th.thead.title.tr.track.ul`.split(`.`),ej=[`pre`,`script`,`style`,`textarea`],tj={concrete:!0,name:`htmlFlow`,resolveTo:ij,tokenize:aj},nj={partial:!0,tokenize:sj},rj={partial:!0,tokenize:oj};function ij(e){let t=e.length;for(;t--&&(e[t][0]!==`enter`||e[t][1].type!==`htmlFlow`););return t>1&&e[t-2][1].type===`linePrefix`&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function aj(e,t,n){let r=this,i,a,o,s,c;return l;function l(e){return u(e)}function u(t){return e.enter(`htmlFlow`),e.enter(`htmlFlowData`),e.consume(t),d}function d(s){return s===33?(e.consume(s),f):s===47?(e.consume(s),a=!0,h):s===63?(e.consume(s),i=3,r.interrupt?t:I):Pk(s)?(e.consume(s),o=String.fromCharCode(s),g):n(s)}function f(a){return a===45?(e.consume(a),i=2,p):a===91?(e.consume(a),i=5,s=0,m):Pk(a)?(e.consume(a),i=4,r.interrupt?t:I):n(a)}function p(i){return i===45?(e.consume(i),r.interrupt?t:I):n(i)}function m(i){return i===`CDATA[`.charCodeAt(s++)?(e.consume(i),s===6?r.interrupt?t:O:m):n(i)}function h(t){return Pk(t)?(e.consume(t),o=String.fromCharCode(t),g):n(t)}function g(s){if(s===null||s===47||s===62||Hk(s)){let c=s===47,l=o.toLowerCase();return!c&&!a&&ej.includes(l)?(i=1,r.interrupt?t(s):O(s)):$A.includes(o.toLowerCase())?(i=6,c?(e.consume(s),_):r.interrupt?t(s):O(s)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(s):a?v(s):y(s))}return s===45||Fk(s)?(e.consume(s),o+=String.fromCharCode(s),g):n(s)}function _(i){return i===62?(e.consume(i),r.interrupt?t:O):n(i)}function v(t){return Uk(t)?(e.consume(t),v):E(t)}function y(t){return t===47?(e.consume(t),E):t===58||t===95||Pk(t)?(e.consume(t),b):Uk(t)?(e.consume(t),y):E(t)}function b(t){return t===45||t===46||t===58||t===95||Fk(t)?(e.consume(t),b):x(t)}function x(t){return t===61?(e.consume(t),S):Uk(t)?(e.consume(t),x):y(t)}function S(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),c=t,C):Uk(t)?(e.consume(t),S):w(t)}function C(t){return t===c?(e.consume(t),c=null,T):t===null||Vk(t)?n(t):(e.consume(t),C)}function w(t){return t===null||t===34||t===39||t===47||t===60||t===61||t===62||t===96||Hk(t)?x(t):(e.consume(t),w)}function T(e){return e===47||e===62||Uk(e)?y(e):n(e)}function E(t){return t===62?(e.consume(t),D):n(t)}function D(t){return t===null||Vk(t)?O(t):Uk(t)?(e.consume(t),D):n(t)}function O(t){return t===45&&i===2?(e.consume(t),M):t===60&&i===1?(e.consume(t),N):t===62&&i===4?(e.consume(t),L):t===63&&i===3?(e.consume(t),I):t===93&&i===5?(e.consume(t),F):Vk(t)&&(i===6||i===7)?(e.exit(`htmlFlowData`),e.check(nj,R,k)(t)):t===null||Vk(t)?(e.exit(`htmlFlowData`),k(t)):(e.consume(t),O)}function k(t){return e.check(rj,A,R)(t)}function A(t){return e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),j}function j(t){return t===null||Vk(t)?k(t):(e.enter(`htmlFlowData`),O(t))}function M(t){return t===45?(e.consume(t),I):O(t)}function N(t){return t===47?(e.consume(t),o=``,P):O(t)}function P(t){if(t===62){let n=o.toLowerCase();return ej.includes(n)?(e.consume(t),L):O(t)}return Pk(t)&&o.length<8?(e.consume(t),o+=String.fromCharCode(t),P):O(t)}function F(t){return t===93?(e.consume(t),I):O(t)}function I(t){return t===62?(e.consume(t),L):t===45&&i===2?(e.consume(t),I):O(t)}function L(t){return t===null||Vk(t)?(e.exit(`htmlFlowData`),R(t)):(e.consume(t),L)}function R(n){return e.exit(`htmlFlow`),t(n)}}function oj(e,t,n){let r=this;return i;function i(t){return Vk(t)?(e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),a):n(t)}function a(e){return r.parser.lazy[r.now().line]?n(e):t(e)}}function sj(e,t,n){return r;function r(r){return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),e.attempt(lA,t,n)}}var cj={name:`htmlText`,tokenize:lj};function lj(e,t,n){let r=this,i,a,o;return s;function s(t){return e.enter(`htmlText`),e.enter(`htmlTextData`),e.consume(t),c}function c(t){return t===33?(e.consume(t),l):t===47?(e.consume(t),x):t===63?(e.consume(t),y):Pk(t)?(e.consume(t),w):n(t)}function l(t){return t===45?(e.consume(t),u):t===91?(e.consume(t),a=0,m):Pk(t)?(e.consume(t),v):n(t)}function u(t){return t===45?(e.consume(t),p):n(t)}function d(t){return t===null?n(t):t===45?(e.consume(t),f):Vk(t)?(o=d,N(t)):(e.consume(t),d)}function f(t){return t===45?(e.consume(t),p):d(t)}function p(e){return e===62?M(e):e===45?f(e):d(e)}function m(t){return t===`CDATA[`.charCodeAt(a++)?(e.consume(t),a===6?h:m):n(t)}function h(t){return t===null?n(t):t===93?(e.consume(t),g):Vk(t)?(o=h,N(t)):(e.consume(t),h)}function g(t){return t===93?(e.consume(t),_):h(t)}function _(t){return t===62?M(t):t===93?(e.consume(t),_):h(t)}function v(t){return t===null||t===62?M(t):Vk(t)?(o=v,N(t)):(e.consume(t),v)}function y(t){return t===null?n(t):t===63?(e.consume(t),b):Vk(t)?(o=y,N(t)):(e.consume(t),y)}function b(e){return e===62?M(e):y(e)}function x(t){return Pk(t)?(e.consume(t),S):n(t)}function S(t){return t===45||Fk(t)?(e.consume(t),S):C(t)}function C(t){return Vk(t)?(o=C,N(t)):Uk(t)?(e.consume(t),C):M(t)}function w(t){return t===45||Fk(t)?(e.consume(t),w):t===47||t===62||Hk(t)?T(t):n(t)}function T(t){return t===47?(e.consume(t),M):t===58||t===95||Pk(t)?(e.consume(t),E):Vk(t)?(o=T,N(t)):Uk(t)?(e.consume(t),T):M(t)}function E(t){return t===45||t===46||t===58||t===95||Fk(t)?(e.consume(t),E):D(t)}function D(t){return t===61?(e.consume(t),O):Vk(t)?(o=D,N(t)):Uk(t)?(e.consume(t),D):T(t)}function O(t){return t===null||t===60||t===61||t===62||t===96?n(t):t===34||t===39?(e.consume(t),i=t,k):Vk(t)?(o=O,N(t)):Uk(t)?(e.consume(t),O):(e.consume(t),A)}function k(t){return t===i?(e.consume(t),i=void 0,j):t===null?n(t):Vk(t)?(o=k,N(t)):(e.consume(t),k)}function A(t){return t===null||t===34||t===39||t===60||t===61||t===96?n(t):t===47||t===62||Hk(t)?T(t):(e.consume(t),A)}function j(e){return e===47||e===62||Hk(e)?T(e):n(e)}function M(r){return r===62?(e.consume(r),e.exit(`htmlTextData`),e.exit(`htmlText`),t):n(r)}function N(t){return e.exit(`htmlTextData`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),P}function P(t){return Uk(t)?Jk(e,F,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):F(t)}function F(t){return e.enter(`htmlTextData`),o(t)}}var uj={name:`labelEnd`,resolveAll:mj,resolveTo:hj,tokenize:gj},dj={tokenize:_j},fj={tokenize:vj},pj={tokenize:yj};function mj(e){let t=-1,n=[];for(;++t<e.length;){let r=e[t][1];if(n.push(e[t]),r.type===`labelImage`||r.type===`labelLink`||r.type===`labelEnd`){let e=r.type===`labelImage`?4:2;r.type=`data`,t+=e}}return e.length!==n.length&&Ek(e,0,e.length,n),e}function hj(e,t){let n=e.length,r=0,i,a,o,s;for(;n--;)if(i=e[n][1],a){if(i.type===`link`||i.type===`labelLink`&&i._inactive)break;e[n][0]===`enter`&&i.type===`labelLink`&&(i._inactive=!0)}else if(o){if(e[n][0]===`enter`&&(i.type===`labelImage`||i.type===`labelLink`)&&!i._balanced&&(a=n,i.type!==`labelLink`)){r=2;break}}else i.type===`labelEnd`&&(o=n);let c={type:e[a][1].type===`labelLink`?`link`:`image`,start:{...e[a][1].start},end:{...e[e.length-1][1].end}},l={type:`label`,start:{...e[a][1].start},end:{...e[o][1].end}},u={type:`labelText`,start:{...e[a+r+2][1].end},end:{...e[o-2][1].start}};return s=[[`enter`,c,t],[`enter`,l,t]],s=Dk(s,e.slice(a+1,a+r+3)),s=Dk(s,[[`enter`,u,t]]),s=Dk(s,nA(t.parser.constructs.insideSpan.null,e.slice(a+r+4,o-3),t)),s=Dk(s,[[`exit`,u,t],e[o-2],e[o-1],[`exit`,l,t]]),s=Dk(s,e.slice(o+1)),s=Dk(s,[[`exit`,c,t]]),Ek(e,a,e.length,s),e}function gj(e,t,n){let r=this,i=r.events.length,a,o;for(;i--;)if((r.events[i][1].type===`labelImage`||r.events[i][1].type===`labelLink`)&&!r.events[i][1]._balanced){a=r.events[i][1];break}return s;function s(t){return a?a._inactive?d(t):(o=r.parser.defined.includes(Nk(r.sliceSerialize({start:a.end,end:r.now()}))),e.enter(`labelEnd`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelEnd`),c):n(t)}function c(t){return t===40?e.attempt(dj,u,o?u:d)(t):t===91?e.attempt(fj,u,o?l:d)(t):o?u(t):d(t)}function l(t){return e.attempt(pj,u,d)(t)}function u(e){return t(e)}function d(e){return a._balanced=!0,n(e)}}function _j(e,t,n){return r;function r(t){return e.enter(`resource`),e.enter(`resourceMarker`),e.consume(t),e.exit(`resourceMarker`),i}function i(t){return Hk(t)?UA(e,a)(t):a(t)}function a(t){return t===41?u(t):BA(e,o,s,`resourceDestination`,`resourceDestinationLiteral`,`resourceDestinationLiteralMarker`,`resourceDestinationRaw`,`resourceDestinationString`,32)(t)}function o(t){return Hk(t)?UA(e,c)(t):u(t)}function s(e){return n(e)}function c(t){return t===34||t===39||t===40?HA(e,l,n,`resourceTitle`,`resourceTitleMarker`,`resourceTitleString`)(t):u(t)}function l(t){return Hk(t)?UA(e,u)(t):u(t)}function u(r){return r===41?(e.enter(`resourceMarker`),e.consume(r),e.exit(`resourceMarker`),e.exit(`resource`),t):n(r)}}function vj(e,t,n){let r=this;return i;function i(t){return VA.call(r,e,a,o,`reference`,`referenceMarker`,`referenceString`)(t)}function a(e){return r.parser.defined.includes(Nk(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function o(e){return n(e)}}function yj(e,t,n){return r;function r(t){return e.enter(`reference`),e.enter(`referenceMarker`),e.consume(t),e.exit(`referenceMarker`),i}function i(r){return r===93?(e.enter(`referenceMarker`),e.consume(r),e.exit(`referenceMarker`),e.exit(`reference`),t):n(r)}}var bj={name:`labelStartImage`,resolveAll:uj.resolveAll,tokenize:xj};function xj(e,t,n){let r=this;return i;function i(t){return e.enter(`labelImage`),e.enter(`labelImageMarker`),e.consume(t),e.exit(`labelImageMarker`),a}function a(t){return t===91?(e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelImage`),o):n(t)}function o(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var Sj={name:`labelStartLink`,resolveAll:uj.resolveAll,tokenize:Cj};function Cj(e,t,n){let r=this;return i;function i(t){return e.enter(`labelLink`),e.enter(`labelMarker`),e.consume(t),e.exit(`labelMarker`),e.exit(`labelLink`),a}function a(e){return e===94&&`_hiddenFootnoteSupport`in r.parser.constructs?n(e):t(e)}}var wj={name:`lineEnding`,tokenize:Tj};function Tj(e,t){return n;function n(n){return e.enter(`lineEnding`),e.consume(n),e.exit(`lineEnding`),Jk(e,t,`linePrefix`)}}var Ej={name:`thematicBreak`,tokenize:Dj};function Dj(e,t,n){let r=0,i;return a;function a(t){return e.enter(`thematicBreak`),o(t)}function o(e){return i=e,s(e)}function s(a){return a===i?(e.enter(`thematicBreakSequence`),c(a)):r>=3&&(a===null||Vk(a))?(e.exit(`thematicBreak`),t(a)):n(a)}function c(t){return t===i?(e.consume(t),r++,c):(e.exit(`thematicBreakSequence`),Uk(t)?Jk(e,s,`whitespace`)(t):s(t))}}var Oj={continuation:{tokenize:Mj},exit:Pj,name:`list`,tokenize:jj},kj={partial:!0,tokenize:Fj},Aj={partial:!0,tokenize:Nj};function jj(e,t,n){let r=this,i=r.events[r.events.length-1],a=i&&i[1].type===`linePrefix`?i[2].sliceSerialize(i[1],!0).length:0,o=0;return s;function s(t){let i=r.containerState.type||(t===42||t===43||t===45?`listUnordered`:`listOrdered`);if(i===`listUnordered`?!r.containerState.marker||t===r.containerState.marker:Rk(t)){if(r.containerState.type||(r.containerState.type=i,e.enter(i,{_container:!0})),i===`listUnordered`)return e.enter(`listItemPrefix`),t===42||t===45?e.check(Ej,n,l)(t):l(t);if(!r.interrupt||t===49)return e.enter(`listItemPrefix`),e.enter(`listItemValue`),c(t)}return n(t)}function c(t){return Rk(t)&&++o<10?(e.consume(t),c):(!r.interrupt||o<2)&&(r.containerState.marker?t===r.containerState.marker:t===41||t===46)?(e.exit(`listItemValue`),l(t)):n(t)}function l(t){return e.enter(`listItemMarker`),e.consume(t),e.exit(`listItemMarker`),r.containerState.marker=r.containerState.marker||t,e.check(lA,r.interrupt?n:u,e.attempt(kj,f,d))}function u(e){return r.containerState.initialBlankLine=!0,a++,f(e)}function d(t){return Uk(t)?(e.enter(`listItemPrefixWhitespace`),e.consume(t),e.exit(`listItemPrefixWhitespace`),f):n(t)}function f(n){return r.containerState.size=a+r.sliceSerialize(e.exit(`listItemPrefix`),!0).length,t(n)}}function Mj(e,t,n){let r=this;return r.containerState._closeFlow=void 0,e.check(lA,i,a);function i(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Jk(e,t,`listItemIndent`,r.containerState.size+1)(n)}function a(n){return r.containerState.furtherBlankLines||!Uk(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Aj,t,o)(n))}function o(i){return r.containerState._closeFlow=!0,r.interrupt=void 0,Jk(e,e.attempt(Oj,t,n),`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(i)}}function Nj(e,t,n){let r=this;return Jk(e,i,`listItemIndent`,r.containerState.size+1);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`listItemIndent`&&i[2].sliceSerialize(i[1],!0).length===r.containerState.size?t(e):n(e)}}function Pj(e){e.exit(this.containerState.type)}function Fj(e,t,n){let r=this;return Jk(e,i,`listItemPrefixWhitespace`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:5);function i(e){let i=r.events[r.events.length-1];return!Uk(e)&&i&&i[1].type===`listItemPrefixWhitespace`?t(e):n(e)}}var Ij={name:`setextUnderline`,resolveTo:Lj,tokenize:Rj};function Lj(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]===`enter`){if(e[n][1].type===`content`){r=n;break}e[n][1].type===`paragraph`&&(i=n)}else e[n][1].type===`content`&&e.splice(n,1),!a&&e[n][1].type===`definition`&&(a=n);let o={type:`setextHeading`,start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[i][1].type=`setextHeadingText`,a?(e.splice(i,0,[`enter`,o,t]),e.splice(a+1,0,[`exit`,e[r][1],t]),e[r][1].end={...e[a][1].end}):e[r][1]=o,e.push([`exit`,o,t]),e}function Rj(e,t,n){let r=this,i;return a;function a(t){let a=r.events.length,s;for(;a--;)if(r.events[a][1].type!==`lineEnding`&&r.events[a][1].type!==`linePrefix`&&r.events[a][1].type!==`content`){s=r.events[a][1].type===`paragraph`;break}return!r.parser.lazy[r.now().line]&&(r.interrupt||s)?(e.enter(`setextHeadingLine`),i=t,o(t)):n(t)}function o(t){return e.enter(`setextHeadingLineSequence`),s(t)}function s(t){return t===i?(e.consume(t),s):(e.exit(`setextHeadingLineSequence`),Uk(t)?Jk(e,c,`lineSuffix`)(t):c(t))}function c(r){return r===null||Vk(r)?(e.exit(`setextHeadingLine`),t(r)):n(r)}}var zj={tokenize:Bj};function Bj(e){let t=this,n=e.attempt(lA,r,e.attempt(this.parser.constructs.flowInitial,i,Jk(e,e.attempt(this.parser.constructs.flow,i,e.attempt(FA,i)),`linePrefix`)));return n;function r(r){if(r===null){e.consume(r);return}return e.enter(`lineEndingBlank`),e.consume(r),e.exit(`lineEndingBlank`),t.currentConstruct=void 0,n}function i(r){if(r===null){e.consume(r);return}return e.enter(`lineEnding`),e.consume(r),e.exit(`lineEnding`),t.currentConstruct=void 0,n}}var Vj={resolveAll:Gj()},Hj=Wj(`string`),Uj=Wj(`text`);function Wj(e){return{resolveAll:Gj(e===`text`?Kj:void 0),tokenize:t};function t(t){let n=this,r=this.parser.constructs[e],i=t.attempt(r,a,o);return a;function a(e){return c(e)?i(e):o(e)}function o(e){if(e===null){t.consume(e);return}return t.enter(`data`),t.consume(e),s}function s(e){return c(e)?(t.exit(`data`),i(e)):(t.consume(e),s)}function c(e){if(e===null)return!0;let t=r[e],i=-1;if(t)for(;++i<t.length;){let e=t[i];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}}}function Gj(e){return t;function t(t,n){let r=-1,i;for(;++r<=t.length;)i===void 0?t[r]&&t[r][1].type===`data`&&(i=r,r++):(!t[r]||t[r][1].type!==`data`)&&(r!==i+2&&(t[i][1].end=t[r-1][1].end,t.splice(i+2,r-i-2),r=i+2),i=void 0);return e?e(t,n):t}}function Kj(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||e[n][1].type===`lineEnding`)&&e[n-1][1].type===`data`){let r=e[n-1][1],i=t.sliceStream(r),a=i.length,o=-1,s=0,c;for(;a--;){let e=i[a];if(typeof e==`string`){for(o=e.length;e.charCodeAt(o-1)===32;)s++,o--;if(o)break;o=-1}else if(e===-2)c=!0,s++;else if(e!==-1){a++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(s=0),s){let i={type:n===e.length||c||s<2?`lineSuffix`:`hardBreakTrailing`,start:{_bufferIndex:a?o:r.start._bufferIndex+o,_index:r.start._index+a,line:r.end.line,column:r.end.column-s,offset:r.end.offset-s},end:{...r.end}};r.end={...i.start},r.start.offset===r.end.offset?Object.assign(r,i):(e.splice(n,0,[`enter`,i,t],[`exit`,i,t]),n+=2)}n++}return e}var qj=e({attentionMarkers:()=>tM,contentInitial:()=>Yj,disable:()=>nM,document:()=>Jj,flow:()=>Zj,flowInitial:()=>Xj,insideSpan:()=>eM,string:()=>Qj,text:()=>$j}),Jj={42:Oj,43:Oj,45:Oj,48:Oj,49:Oj,50:Oj,51:Oj,52:Oj,53:Oj,54:Oj,55:Oj,56:Oj,57:Oj,62:dA},Yj={91:WA},Xj={[-2]:CA,[-1]:CA,32:CA},Zj={35:XA,42:Ej,45:[Ij,Ej],60:tj,61:Ij,95:Ej,96:bA,126:bA},Qj={38:_A,92:hA},$j={[-5]:wj,[-4]:wj,[-3]:wj,33:bj,38:_A,42:rA,60:[sA,cj],91:Sj,92:[JA,hA],93:uj,95:rA,96:DA},eM={null:[rA,Vj]},tM={null:[42,95]},nM={null:[]};function rM(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0},i={},a=[],o=[],s=[],c={attempt:C(x),check:C(S),consume:v,enter:y,exit:b,interrupt:C(S,{interrupt:!0})},l={code:null,containerState:{},defineSkip:h,events:[],now:m,parser:e,previous:null,sliceSerialize:f,sliceStream:p,write:d},u=t.tokenize.call(l,c);return t.resolveAll&&a.push(t),l;function d(e){return o=Dk(o,e),g(),o[o.length-1]===null?(w(t,0),l.events=nA(a,l.events,l),l.events):[]}function f(e,t){return aM(p(e),t)}function p(e){return iM(o,e)}function m(){let{_bufferIndex:e,_index:t,line:n,column:i,offset:a}=r;return{_bufferIndex:e,_index:t,line:n,column:i,offset:a}}function h(e){i[e.line]=e.column,E()}function g(){let e;for(;r._index<o.length;){let t=o[r._index];if(typeof t==`string`)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<t.length;)_(t.charCodeAt(r._bufferIndex));else _(t)}}function _(e){u=u(e)}function v(e){Vk(e)?(r.line++,r.column=1,r.offset+=e===-3?2:1,E()):e!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===o[r._index].length&&(r._bufferIndex=-1,r._index++)),l.previous=e}function y(e,t){let n=t||{};return n.type=e,n.start=m(),l.events.push([`enter`,n,l]),s.push(n),n}function b(e){let t=s.pop();return t.end=m(),l.events.push([`exit`,t,l]),t}function x(e,t){w(e,t.from)}function S(e,t){t.restore()}function C(e,t){return n;function n(n,r,i){let a,o,s,u;return Array.isArray(n)?f(n):`tokenize`in n?f([n]):d(n);function d(e){return t;function t(t){let n=t!==null&&e[t],r=t!==null&&e.null;return f([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}function f(e){return a=e,o=0,e.length===0?i:p(e[o])}function p(e){return n;function n(n){return u=T(),s=e,e.partial||(l.currentConstruct=e),e.name&&l.parser.constructs.disable.null.includes(e.name)?h(n):e.tokenize.call(t?Object.assign(Object.create(l),t):l,c,m,h)(n)}}function m(t){return e(s,u),r}function h(e){return u.restore(),++o<a.length?p(a[o]):i}}}function w(e,t){e.resolveAll&&!a.includes(e)&&a.push(e),e.resolve&&Ek(l.events,t,l.events.length-t,e.resolve(l.events.slice(t),l)),e.resolveTo&&(l.events=e.resolveTo(l.events,l))}function T(){let e=m(),t=l.previous,n=l.currentConstruct,i=l.events.length,a=Array.from(s);return{from:i,restore:o};function o(){r=e,l.previous=t,l.currentConstruct=n,l.events.length=i,s=a,E()}}function E(){r.line in i&&r.column<2&&(r.column=i[r.line],r.offset+=i[r.line]-1)}}function iM(e,t){let n=t.start._index,r=t.start._bufferIndex,i=t.end._index,a=t.end._bufferIndex,o;if(n===i)o=[e[n].slice(r,a)];else{if(o=e.slice(n,i),r>-1){let e=o[0];typeof e==`string`?o[0]=e.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function aM(e,t){let n=-1,r=[],i;for(;++n<e.length;){let a=e[n],o;if(typeof a==`string`)o=a;else switch(a){case-5:o=`\r`;break;case-4:o=`
|
|
200
|
+
`;break;case-3:o=`\r
|
|
201
|
+
`;break;case-2:o=t?` `:` `;break;case-1:if(!t&&i)continue;o=` `;break;default:o=String.fromCharCode(a)}i=a===-2,r.push(o)}return r.join(``)}function oM(e){let t={constructs:kk([qj,...(e||{}).extensions||[]]),content:n(Yk),defined:[],document:n(Zk),flow:n(zj),lazy:{},string:n(Hj),text:n(Uj)};return t;function n(e){return n;function n(n){return rM(t,e,n)}}}function sM(e){for(;!NA(e););return e}var cM=/[\0\t\n\r]/g;function lM(){let e=1,t=``,n=!0,r;return i;function i(i,a,o){let s=[],c,l,u,d,f;for(i=t+(typeof i==`string`?i.toString():new TextDecoder(a||void 0).decode(i)),u=0,t=``,n&&=(i.charCodeAt(0)===65279&&u++,void 0);u<i.length;){if(cM.lastIndex=u,c=cM.exec(i),d=c&&c.index!==void 0?c.index:i.length,f=i.charCodeAt(d),!c){t=i.slice(u);break}if(f===10&&u===d&&r)s.push(-3),r=void 0;else switch(r&&=(s.push(-5),void 0),u<d&&(s.push(i.slice(u,d)),e+=d-u),f){case 0:s.push(65533),e++;break;case 9:for(l=Math.ceil(e/4)*4,s.push(-2);e++<l;)s.push(-1);break;case 10:s.push(-4),e=1;break;default:r=!0,e=1}u=d+1}return o&&(r&&s.push(-5),t&&s.push(t),s.push(null)),s}}var uM=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function dM(e){return e.replace(uM,fM)}function fM(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){let e=n.charCodeAt(1),t=e===120||e===88;return Mk(n.slice(t?2:1),t?16:10)}return Tk(n)||e}var pM={}.hasOwnProperty;function mM(e,t,n){return t&&typeof t==`object`&&(n=t,t=void 0),hM(n)(sM(oM(n).document().write(lM()(e,t,!0))))}function hM(e){let t={transforms:[],canContainEols:[`emphasis`,`fragment`,`heading`,`paragraph`,`strong`],enter:{autolink:a(de),autolinkProtocol:T,autolinkEmail:T,atxHeading:a(se),blockQuote:a(U),characterEscape:T,characterReference:T,codeFenced:a(re),codeFencedFenceInfo:o,codeFencedFenceMeta:o,codeIndented:a(re,o),codeText:a(ie,o),codeTextData:T,data:T,codeFlowValue:T,definition:a(ae),definitionDestinationString:o,definitionLabelString:o,definitionTitleString:o,emphasis:a(oe),hardBreakEscape:a(ce),hardBreakTrailing:a(ce),htmlFlow:a(le,o),htmlFlowData:T,htmlText:a(le,o),htmlTextData:T,image:a(ue),label:o,link:a(de),listItem:a(fe),listItemValue:f,listOrdered:a(W,d),listUnordered:a(W),paragraph:a(pe),reference:z,referenceString:o,resourceDestinationString:o,resourceTitleString:o,setextHeading:a(se),strong:a(me),thematicBreak:a(ge)},exit:{atxHeading:c(),atxHeadingSequence:x,autolink:c(),autolinkEmail:ne,autolinkProtocol:te,blockQuote:c(),characterEscapeValue:E,characterReferenceMarkerHexadecimal:V,characterReferenceMarkerNumeric:V,characterReferenceValue:H,characterReference:ee,codeFenced:c(g),codeFencedFence:h,codeFencedFenceInfo:p,codeFencedFenceMeta:m,codeFlowValue:E,codeIndented:c(_),codeText:c(j),codeTextData:E,data:E,definition:c(),definitionDestinationString:b,definitionLabelString:v,definitionTitleString:y,emphasis:c(),hardBreakEscape:c(O),hardBreakTrailing:c(O),htmlFlow:c(k),htmlFlowData:E,htmlText:c(A),htmlTextData:E,image:c(N),label:F,labelText:P,lineEnding:D,link:c(M),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:B,resourceDestinationString:I,resourceTitleString:L,resource:R,setextHeading:c(w),setextHeadingLineSequence:C,setextHeadingText:S,strong:c(),thematicBreak:c()}};_M(t,(e||{}).mdastExtensions||[]);let n={};return r;function r(e){let r={type:`root`,children:[]},a={stack:[r],tokenStack:[],config:t,enter:s,exit:l,buffer:o,resume:u,data:n},c=[],d=-1;for(;++d<e.length;)(e[d][1].type===`listOrdered`||e[d][1].type===`listUnordered`)&&(e[d][0]===`enter`?c.push(d):d=i(e,c.pop(),d));for(d=-1;++d<e.length;){let n=t[e[d][0]];pM.call(n,e[d][1].type)&&n[e[d][1].type].call(Object.assign({sliceSerialize:e[d][2].sliceSerialize},a),e[d][1])}if(a.tokenStack.length>0){let e=a.tokenStack[a.tokenStack.length-1];(e[1]||yM).call(a,void 0,e[0])}for(r.position={start:gM(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:gM(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d<t.transforms.length;)r=t.transforms[d](r)||r;return r}function i(e,t,n){let r=t-1,i=-1,a=!1,o,s,c,l;for(;++r<=n;){let t=e[r];switch(t[1].type){case`listUnordered`:case`listOrdered`:case`blockQuote`:t[0]===`enter`?i++:i--,l=void 0;break;case`lineEndingBlank`:t[0]===`enter`&&(o&&!l&&!i&&!c&&(c=r),l=void 0);break;case`linePrefix`:case`listItemValue`:case`listItemMarker`:case`listItemPrefix`:case`listItemPrefixWhitespace`:break;default:l=void 0}if(!i&&t[0]===`enter`&&t[1].type===`listItemPrefix`||i===-1&&t[0]===`exit`&&(t[1].type===`listUnordered`||t[1].type===`listOrdered`)){if(o){let i=r;for(s=void 0;i--;){let t=e[i];if(t[1].type===`lineEnding`||t[1].type===`lineEndingBlank`){if(t[0]===`exit`)continue;s&&(e[s][1].type=`lineEndingBlank`,a=!0),t[1].type=`lineEnding`,s=i}else if(t[1].type!==`linePrefix`&&t[1].type!==`blockQuotePrefix`&&t[1].type!==`blockQuotePrefixWhitespace`&&t[1].type!==`blockQuoteMarker`&&t[1].type!==`listItemIndent`)break}c&&(!s||c<s)&&(o._spread=!0),o.end=Object.assign({},s?e[s][1].start:t[1].end),e.splice(s||r,0,[`exit`,o,t[2]]),r++,n++}if(t[1].type===`listItemPrefix`){let i={type:`listItem`,_spread:!1,start:Object.assign({},t[1].start),end:void 0};o=i,e.splice(r,0,[`enter`,i,t[2]]),r++,n++,c=void 0,l=!0}}}return e[t][1]._spread=a,n}function a(e,t){return n;function n(n){s.call(this,e(n),n),t&&t.call(this,n)}}function o(){this.stack.push({type:`fragment`,children:[]})}function s(e,t,n){this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([t,n||void 0]),e.position={start:gM(t.start),end:void 0}}function c(e){return t;function t(t){e&&e.call(this,t),l.call(this,t)}}function l(e,t){let n=this.stack.pop(),r=this.tokenStack.pop();if(r)r[0].type!==e.type&&(t?t.call(this,e,r[0]):(r[1]||yM).call(this,e,r[0]));else throw Error("Cannot close `"+e.type+"` ("+zO({start:e.start,end:e.end})+`): it’s not open`);n.position.end=gM(e.end)}function u(){return bk(this.stack.pop())}function d(){this.data.expectingFirstListItemValue=!0}function f(e){if(this.data.expectingFirstListItemValue){let t=this.stack[this.stack.length-2];t.start=Number.parseInt(this.sliceSerialize(e),10),this.data.expectingFirstListItemValue=void 0}}function p(){let e=this.resume(),t=this.stack[this.stack.length-1];t.lang=e}function m(){let e=this.resume(),t=this.stack[this.stack.length-1];t.meta=e}function h(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function g(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,``),this.data.flowCodeInside=void 0}function _(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e.replace(/(\r?\n|\r)$/g,``)}function v(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=Nk(this.sliceSerialize(e)).toLowerCase()}function y(){let e=this.resume(),t=this.stack[this.stack.length-1];t.title=e}function b(){let e=this.resume(),t=this.stack[this.stack.length-1];t.url=e}function x(e){let t=this.stack[this.stack.length-1];t.depth||=this.sliceSerialize(e).length}function S(){this.data.setextHeadingSlurpLineEnding=!0}function C(e){let t=this.stack[this.stack.length-1];t.depth=this.sliceSerialize(e).codePointAt(0)===61?1:2}function w(){this.data.setextHeadingSlurpLineEnding=void 0}function T(e){let t=this.stack[this.stack.length-1].children,n=t[t.length-1];(!n||n.type!==`text`)&&(n=he(),n.position={start:gM(e.start),end:void 0},t.push(n)),this.stack.push(n)}function E(e){let t=this.stack.pop();t.value+=this.sliceSerialize(e),t.position.end=gM(e.end)}function D(e){let n=this.stack[this.stack.length-1];if(this.data.atHardBreak){let t=n.children[n.children.length-1];t.position.end=gM(e.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(n.type)&&(T.call(this,e),E.call(this,e))}function O(){this.data.atHardBreak=!0}function k(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function A(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function j(){let e=this.resume(),t=this.stack[this.stack.length-1];t.value=e}function M(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||`shortcut`;e.type+=`Reference`,e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function N(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let t=this.data.referenceType||`shortcut`;e.type+=`Reference`,e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function P(e){let t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=dM(t),n.identifier=Nk(t).toLowerCase()}function F(){let e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];this.data.inReference=!0,n.type===`link`?n.children=e.children:n.alt=t}function I(){let e=this.resume(),t=this.stack[this.stack.length-1];t.url=e}function L(){let e=this.resume(),t=this.stack[this.stack.length-1];t.title=e}function R(){this.data.inReference=void 0}function z(){this.data.referenceType=`collapsed`}function B(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=Nk(this.sliceSerialize(e)).toLowerCase(),this.data.referenceType=`full`}function V(e){this.data.characterReferenceType=e.type}function H(e){let t=this.sliceSerialize(e),n=this.data.characterReferenceType,r;n?(r=Mk(t,n===`characterReferenceMarkerNumeric`?10:16),this.data.characterReferenceType=void 0):r=Tk(t);let i=this.stack[this.stack.length-1];i.value+=r}function ee(e){let t=this.stack.pop();t.position.end=gM(e.end)}function te(e){E.call(this,e);let t=this.stack[this.stack.length-1];t.url=this.sliceSerialize(e)}function ne(e){E.call(this,e);let t=this.stack[this.stack.length-1];t.url=`mailto:`+this.sliceSerialize(e)}function U(){return{type:`blockquote`,children:[]}}function re(){return{type:`code`,lang:null,meta:null,value:``}}function ie(){return{type:`inlineCode`,value:``}}function ae(){return{type:`definition`,identifier:``,label:null,title:null,url:``}}function oe(){return{type:`emphasis`,children:[]}}function se(){return{type:`heading`,depth:0,children:[]}}function ce(){return{type:`break`}}function le(){return{type:`html`,value:``}}function ue(){return{type:`image`,title:null,url:``,alt:null}}function de(){return{type:`link`,title:null,url:``,children:[]}}function W(e){return{type:`list`,ordered:e.type===`listOrdered`,start:null,spread:e._spread,children:[]}}function fe(e){return{type:`listItem`,spread:e._spread,checked:null,children:[]}}function pe(){return{type:`paragraph`,children:[]}}function me(){return{type:`strong`,children:[]}}function he(){return{type:`text`,value:``}}function ge(){return{type:`thematicBreak`}}}function gM(e){return{line:e.line,column:e.column,offset:e.offset}}function _M(e,t){let n=-1;for(;++n<t.length;){let r=t[n];Array.isArray(r)?_M(e,r):vM(e,r)}}function vM(e,t){let n;for(n in t)if(pM.call(t,n))switch(n){case`canContainEols`:{let r=t[n];r&&e[n].push(...r);break}case`transforms`:{let r=t[n];r&&e[n].push(...r);break}case`enter`:case`exit`:{let r=t[n];r&&Object.assign(e[n],r);break}}}function yM(e,t){throw Error(e?"Cannot close `"+e.type+"` ("+zO({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+zO({start:t.start,end:t.end})+`) is open`:"Cannot close document, a token (`"+t.type+"`, "+zO({start:t.start,end:t.end})+`) is still open`)}function bM(e){let t=this;t.parser=n;function n(n){return mM(n,{...t.data(`settings`),...e,extensions:t.data(`micromarkExtensions`)||[],mdastExtensions:t.data(`fromMarkdownExtensions`)||[]})}}function xM(e,t){let n={type:`element`,tagName:`blockquote`,properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)}function SM(e,t){let n={type:`element`,tagName:`br`,properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:`text`,value:`
|
|
202
|
+
`}]}function CM(e,t){let n=t.value?t.value+`
|
|
203
|
+
`:``,r={},i=t.lang?t.lang.split(/\s+/):[];i.length>0&&(r.className=[`language-`+i[0]]);let a={type:`element`,tagName:`code`,properties:r,children:[{type:`text`,value:n}]};return t.meta&&(a.data={meta:t.meta}),e.patch(t,a),a=e.applyData(t,a),a={type:`element`,tagName:`pre`,properties:{},children:[a]},e.patch(t,a),a}function wM(e,t){let n={type:`element`,tagName:`del`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function TM(e,t){let n={type:`element`,tagName:`em`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function EM(e,t){let n=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,r=String(t.identifier).toUpperCase(),i=qk(r.toLowerCase()),a=e.footnoteOrder.indexOf(r),o,s=e.footnoteCounts.get(r);s===void 0?(s=0,e.footnoteOrder.push(r),o=e.footnoteOrder.length):o=a+1,s+=1,e.footnoteCounts.set(r,s);let c={type:`element`,tagName:`a`,properties:{href:`#`+n+`fn-`+i,id:n+`fnref-`+i+(s>1?`-`+s:``),dataFootnoteRef:!0,ariaDescribedBy:[`footnote-label`]},children:[{type:`text`,value:String(o)}]};e.patch(t,c);let l={type:`element`,tagName:`sup`,properties:{},children:[c]};return e.patch(t,l),e.applyData(t,l)}function DM(e,t){let n={type:`element`,tagName:`h`+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function OM(e,t){if(e.options.allowDangerousHtml){let n={type:`raw`,value:t.value};return e.patch(t,n),e.applyData(t,n)}}function kM(e,t){let n=t.referenceType,r=`]`;if(n===`collapsed`?r+=`[]`:n===`full`&&(r+=`[`+(t.label||t.identifier)+`]`),t.type===`imageReference`)return[{type:`text`,value:`![`+t.alt+r}];let i=e.all(t),a=i[0];a&&a.type===`text`?a.value=`[`+a.value:i.unshift({type:`text`,value:`[`});let o=i[i.length-1];return o&&o.type===`text`?o.value+=r:i.push({type:`text`,value:r}),i}function AM(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return kM(e,t);let i={src:qk(r.url||``),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`img`,properties:i,children:[]};return e.patch(t,a),e.applyData(t,a)}function jM(e,t){let n={src:qk(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`img`,properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function MM(e,t){let n={type:`text`,value:t.value.replace(/\r?\n|\r/g,` `)};e.patch(t,n);let r={type:`element`,tagName:`code`,properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function NM(e,t){let n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return kM(e,t);let i={href:qk(r.url||``)};r.title!==null&&r.title!==void 0&&(i.title=r.title);let a={type:`element`,tagName:`a`,properties:i,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function PM(e,t){let n={href:qk(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);let r={type:`element`,tagName:`a`,properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function FM(e,t,n){let r=e.all(t),i=n?IM(n):LM(t),a={},o=[];if(typeof t.checked==`boolean`){let e=r[0],n;e&&e.type===`element`&&e.tagName===`p`?n=e:(n={type:`element`,tagName:`p`,properties:{},children:[]},r.unshift(n)),n.children.length>0&&n.children.unshift({type:`text`,value:` `}),n.children.unshift({type:`element`,tagName:`input`,properties:{type:`checkbox`,checked:t.checked,disabled:!0},children:[]}),a.className=[`task-list-item`]}let s=-1;for(;++s<r.length;){let e=r[s];(i||s!==0||e.type!==`element`||e.tagName!==`p`)&&o.push({type:`text`,value:`
|
|
204
|
+
`}),e.type===`element`&&e.tagName===`p`&&!i?o.push(...e.children):o.push(e)}let c=r[r.length-1];c&&(i||c.type!==`element`||c.tagName!==`p`)&&o.push({type:`text`,value:`
|
|
205
|
+
`});let l={type:`element`,tagName:`li`,properties:a,children:o};return e.patch(t,l),e.applyData(t,l)}function IM(e){let t=!1;if(e.type===`list`){t=e.spread||!1;let n=e.children,r=-1;for(;!t&&++r<n.length;)t=LM(n[r])}return t}function LM(e){return e.spread??e.children.length>1}function RM(e,t){let n={},r=e.all(t),i=-1;for(typeof t.start==`number`&&t.start!==1&&(n.start=t.start);++i<r.length;){let e=r[i];if(e.type===`element`&&e.tagName===`li`&&e.properties&&Array.isArray(e.properties.className)&&e.properties.className.includes(`task-list-item`)){n.className=[`contains-task-list`];break}}let a={type:`element`,tagName:t.ordered?`ol`:`ul`,properties:n,children:e.wrap(r,!0)};return e.patch(t,a),e.applyData(t,a)}function zM(e,t){let n={type:`element`,tagName:`p`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function BM(e,t){let n={type:`root`,children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function VM(e,t){let n={type:`element`,tagName:`strong`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function HM(e,t){let n=e.all(t),r=n.shift(),i=[];if(r){let n={type:`element`,tagName:`thead`,properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],n),i.push(n)}if(n.length>0){let r={type:`element`,tagName:`tbody`,properties:{},children:e.wrap(n,!0)},a=IO(t.children[1]),o=FO(t.children[t.children.length-1]);a&&o&&(r.position={start:a,end:o}),i.push(r)}let a={type:`element`,tagName:`table`,properties:{},children:e.wrap(i,!0)};return e.patch(t,a),e.applyData(t,a)}function UM(e,t,n){let r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?`th`:`td`,a=n&&n.type===`table`?n.align:void 0,o=a?a.length:t.children.length,s=-1,c=[];for(;++s<o;){let n=t.children[s],r={},o=a?a[s]:void 0;o&&(r.align=o);let l={type:`element`,tagName:i,properties:r,children:[]};n&&(l.children=e.all(n),e.patch(n,l),l=e.applyData(n,l)),c.push(l)}let l={type:`element`,tagName:`tr`,properties:{},children:e.wrap(c,!0)};return e.patch(t,l),e.applyData(t,l)}function WM(e,t){let n={type:`element`,tagName:`td`,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}var GM=9,KM=32;function qM(e){let t=String(e),n=/\r?\n|\r/g,r=n.exec(t),i=0,a=[];for(;r;)a.push(JM(t.slice(i,r.index),i>0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return a.push(JM(t.slice(i),i>0,!1)),a.join(``)}function JM(e,t,n){let r=0,i=e.length;if(t){let t=e.codePointAt(r);for(;t===GM||t===KM;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(i-1);for(;t===GM||t===KM;)i--,t=e.codePointAt(i-1)}return i>r?e.slice(r,i):``}function YM(e,t){let n={type:`text`,value:qM(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function XM(e,t){let n={type:`element`,tagName:`hr`,properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}var ZM={blockquote:xM,break:SM,code:CM,delete:wM,emphasis:TM,footnoteReference:EM,heading:DM,html:OM,imageReference:AM,image:jM,inlineCode:MM,linkReference:NM,link:PM,listItem:FM,list:RM,paragraph:zM,root:BM,strong:VM,table:HM,tableCell:WM,tableRow:UM,text:YM,thematicBreak:XM,toml:QM,yaml:QM,definition:QM,footnoteDefinition:QM};function QM(){}var $M=typeof self==`object`?self:globalThis,eN=(e,t)=>{switch(e){case`Function`:case`SharedWorker`:case`Worker`:case`eval`:case`setInterval`:case`setTimeout`:throw TypeError(`unable to deserialize `+e)}return new $M[e](t)},tN=(e,t)=>{let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o;return n(typeof $M[e]==`function`?eN(e,t):Error(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}return n(eN(a,o),i)};return r},nN=e=>tN(new Map,e)(0),rN=``,{toString:iN}={},{keys:aN}=Object,oN=e=>{let t=typeof e;if(t!==`object`||!e)return[0,t];let n=iN.call(e).slice(8,-1);switch(n){case`Array`:return[1,rN];case`Object`:return[2,rN];case`Date`:return[3,rN];case`RegExp`:return[4,rN];case`Map`:return[5,rN];case`Set`:return[6,rN];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:e instanceof Error?[7,e.name||`Error`]:[2,n]},sN=([e,t])=>e===0&&(t===`function`||t===`symbol`),cN=(e,t,n,r)=>{let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=oN(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize `+s);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of aN(r))(e||!sN(oN(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,isNaN(r.getTime())?rN:r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(sN(oN(n))||sN(oN(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!sN(oN(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a},lN=(e,{json:t,lossy:n}={})=>{let r=[];return cN(!(t||n),!!t,new Map,r)(e),r},uN=typeof structuredClone==`function`?(e,t)=>t&&(`json`in t||`lossy`in t)?nN(lN(e,t)):structuredClone(e):(e,t)=>nN(lN(e,t));function dN(e,t){let n=[{type:`text`,value:`↩`}];return t>1&&n.push({type:`element`,tagName:`sup`,properties:{},children:[{type:`text`,value:String(t)}]}),n}function fN(e,t){return`Back to reference `+(e+1)+(t>1?`-`+t:``)}function pN(e){let t=typeof e.options.clobberPrefix==`string`?e.options.clobberPrefix:`user-content-`,n=e.options.footnoteBackContent||dN,r=e.options.footnoteBackLabel||fN,i=e.options.footnoteLabel||`Footnotes`,a=e.options.footnoteLabelTagName||`h2`,o=e.options.footnoteLabelProperties||{className:[`sr-only`]},s=[],c=-1;for(;++c<e.footnoteOrder.length;){let i=e.footnoteById.get(e.footnoteOrder[c]);if(!i)continue;let a=e.all(i),o=String(i.identifier).toUpperCase(),l=qk(o.toLowerCase()),u=0,d=[],f=e.footnoteCounts.get(o);for(;f!==void 0&&++u<=f;){d.length>0&&d.push({type:`text`,value:` `});let e=typeof n==`string`?n:n(c,u);typeof e==`string`&&(e={type:`text`,value:e}),d.push({type:`element`,tagName:`a`,properties:{href:`#`+t+`fnref-`+l+(u>1?`-`+u:``),dataFootnoteBackref:``,ariaLabel:typeof r==`string`?r:r(c,u),className:[`data-footnote-backref`]},children:Array.isArray(e)?e:[e]})}let p=a[a.length-1];if(p&&p.type===`element`&&p.tagName===`p`){let e=p.children[p.children.length-1];e&&e.type===`text`?e.value+=` `:p.children.push({type:`text`,value:` `}),p.children.push(...d)}else a.push(...d);let m={type:`element`,tagName:`li`,properties:{id:t+`fn-`+l},children:e.wrap(a,!0)};e.patch(i,m),s.push(m)}if(s.length!==0)return{type:`element`,tagName:`section`,properties:{dataFootnotes:!0,className:[`footnotes`]},children:[{type:`element`,tagName:a,properties:{...uN(o),id:`footnote-label`},children:[{type:`text`,value:i}]},{type:`text`,value:`
|
|
206
|
+
`},{type:`element`,tagName:`ol`,properties:{},children:e.wrap(s,!0)},{type:`text`,value:`
|
|
207
|
+
`}]}}var mN=(function(e){if(e==null)return yN;if(typeof e==`function`)return vN(e);if(typeof e==`object`)return Array.isArray(e)?hN(e):gN(e);if(typeof e==`string`)return _N(e);throw Error(`Expected function, string, or object as test`)});function hN(e){let t=[],n=-1;for(;++n<e.length;)t[n]=mN(e[n]);return vN(r);function r(...e){let n=-1;for(;++n<t.length;)if(t[n].apply(this,e))return!0;return!1}}function gN(e){let t=e;return vN(n);function n(n){let r=n,i;for(i in e)if(r[i]!==t[i])return!1;return!0}}function _N(e){return vN(t);function t(t){return t&&t.type===e}}function vN(e){return t;function t(t,n,r){return!!(bN(t)&&e.call(this,t,typeof n==`number`?n:void 0,r||void 0))}}function yN(){return!0}function bN(e){return typeof e==`object`&&!!e&&`type`in e}function xN(e){return e}var SN=[];function CN(e,t,n,r){let i;typeof t==`function`&&typeof n!=`function`?(r=n,n=t):i=t;let a=mN(i),o=r?-1:1;s(e,void 0,[])();function s(e,i,c){let l=e&&typeof e==`object`?e:{};if(typeof l.type==`string`){let t=typeof l.tagName==`string`?l.tagName:typeof l.name==`string`?l.name:void 0;Object.defineProperty(u,"name",{value:`node (`+xN(e.type+(t?`<`+t+`>`:``))+`)`})}return u;function u(){let l=SN,u,d,f;if((!t||a(e,i,c[c.length-1]||void 0))&&(l=wN(n(e,c)),l[0]===!1))return l;if(`children`in e&&e.children){let t=e;if(t.children&&l[0]!==`skip`)for(d=(r?t.children.length:-1)+o,f=c.concat(t);d>-1&&d<t.children.length;){let e=t.children[d];if(u=s(e,d,f)(),u[0]===!1)return u;d=typeof u[1]==`number`?u[1]:d+o}}return l}}}function wN(e){return Array.isArray(e)?e:typeof e==`number`?[!0,e]:e==null?SN:[e]}function TN(e,t,n,r){let i,a,o;typeof t==`function`&&typeof n!=`function`?(a=void 0,o=t,i=n):(a=t,o=n,i=r),CN(e,a,s,i);function s(e,t){let n=t[t.length-1],r=n?n.children.indexOf(e):void 0;return o(e,r,n)}}var EN={}.hasOwnProperty,DN={};function ON(e,t){let n=t||DN,r=new Map,i=new Map,a={all:s,applyData:AN,definitionById:r,footnoteById:i,footnoteCounts:new Map,footnoteOrder:[],handlers:{...ZM,...n.handlers},one:o,options:n,patch:kN,wrap:MN};return TN(e,function(e){if(e.type===`definition`||e.type===`footnoteDefinition`){let t=e.type===`definition`?r:i,n=String(e.identifier).toUpperCase();t.has(n)||t.set(n,e)}}),a;function o(e,t){let n=e.type,r=a.handlers[n];if(EN.call(a.handlers,n)&&r)return r(a,e,t);if(a.options.passThrough&&a.options.passThrough.includes(n)){if(`children`in e){let{children:t,...n}=e,r=uN(n);return r.children=a.all(e),r}return uN(e)}return(a.options.unknownHandler||jN)(a,e,t)}function s(e){let t=[];if(`children`in e){let n=e.children,r=-1;for(;++r<n.length;){let i=a.one(n[r],e);if(i){if(r&&n[r-1].type===`break`&&(!Array.isArray(i)&&i.type===`text`&&(i.value=NN(i.value)),!Array.isArray(i)&&i.type===`element`)){let e=i.children[0];e&&e.type===`text`&&(e.value=NN(e.value))}Array.isArray(i)?t.push(...i):t.push(i)}}}return t}}function kN(e,t){e.position&&(t.position=RO(e))}function AN(e,t){let n=t;if(e&&e.data){let t=e.data.hName,r=e.data.hChildren,i=e.data.hProperties;typeof t==`string`&&(n.type===`element`?n.tagName=t:n={type:`element`,tagName:t,properties:{},children:`children`in n?n.children:[n]}),n.type===`element`&&i&&Object.assign(n.properties,uN(i)),`children`in n&&n.children&&r!=null&&(n.children=r)}return n}function jN(e,t){let n=t.data||{},r=`value`in t&&!(EN.call(n,`hProperties`)||EN.call(n,`hChildren`))?{type:`text`,value:t.value}:{type:`element`,tagName:`div`,properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function MN(e,t){let n=[],r=-1;for(t&&n.push({type:`text`,value:`
|
|
208
|
+
`});++r<e.length;)r&&n.push({type:`text`,value:`
|
|
209
|
+
`}),n.push(e[r]);return t&&e.length>0&&n.push({type:`text`,value:`
|
|
210
|
+
`}),n}function NN(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function PN(e,t){let n=ON(e,t),r=n.one(e,void 0),i=pN(n),a=Array.isArray(r)?{type:`root`,children:r}:r||{type:`root`,children:[]};return i&&(`children`in a,a.children.push({type:`text`,value:`
|
|
211
|
+
`},i)),a}function FN(e,t){return e&&`run`in e?async function(n,r){let i=PN(n,{file:r,...t});await e.run(i,r)}:function(n,r){return PN(n,{file:r,...e||t})}}function IN(e){if(e)throw e}var LN=n(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=function(e){return typeof Array.isArray==`function`?Array.isArray(e):r.call(e)===`[object Array]`},s=function(e){if(!e||r.call(e)!==`[object Object]`)return!1;var t=n.call(e,`constructor`),i=e.constructor&&e.constructor.prototype&&n.call(e.constructor.prototype,`isPrototypeOf`);if(e.constructor&&!t&&!i)return!1;for(var a in e);return a===void 0||n.call(e,a)},c=function(e,t){i&&t.name===`__proto__`?i(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},l=function(e,t){if(t===`__proto__`){if(!n.call(e,t))return;if(a)return a(e,t).value}return e[t]};t.exports=function e(){var t,n,r,i,a,u,d=arguments[0],f=1,p=arguments.length,m=!1;for(typeof d==`boolean`&&(m=d,d=arguments[1]||{},f=2),(d==null||typeof d!=`object`&&typeof d!=`function`)&&(d={});f<p;++f)if(t=arguments[f],t!=null)for(n in t)r=l(d,n),i=l(t,n),d!==i&&(m&&i&&(s(i)||(a=o(i)))?(a?(a=!1,u=r&&o(r)?r:[]):u=r&&s(r)?r:{},c(d,{name:n,newValue:e(m,u,i)})):i!==void 0&&c(d,{name:n,newValue:i}));return d}}));function RN(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function zN(){let e=[],t={run:n,use:r};return t;function n(...t){let n=-1,r=t.pop();if(typeof r!=`function`)throw TypeError(`Expected function as last argument, not `+r);i(null,...t);function i(a,...o){let s=e[++n],c=-1;if(a){r(a);return}for(;++c<t.length;)(o[c]===null||o[c]===void 0)&&(o[c]=t[c]);t=o,s?BN(s,i)(...o):r(null,...o)}}function r(n){if(typeof n!=`function`)throw TypeError("Expected `middelware` to be a function, not "+n);return e.push(n),t}}function BN(e,t){let n;return r;function r(...t){let r=e.length>t.length,o;r&&t.push(i);try{o=e.apply(this,t)}catch(e){let t=e;if(r&&n)throw t;return i(t)}r||(o&&o.then&&typeof o.then==`function`?o.then(a,i):o instanceof Error?i(o):a(o))}function i(e,...r){n||(n=!0,t(e,...r))}function a(e){i(null,e)}}var VN={basename:HN,dirname:UN,extname:WN,join:GN,sep:`/`};function HN(e,t){if(t!==void 0&&typeof t!=`string`)throw TypeError(`"ext" argument must be a string`);JN(e);let n=0,r=-1,i=e.length,a;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else r<0&&(a=!0,r=i+1);return r<0?``:e.slice(n,r)}if(t===e)return``;let o=-1,s=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else o<0&&(a=!0,o=i+1),s>-1&&(e.codePointAt(i)===t.codePointAt(s--)?s<0&&(r=i):(s=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function UN(e){if(JN(e),e.length===0)return`.`;let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||=!0;return t<0?e.codePointAt(0)===47?`/`:`.`:t===1&&e.codePointAt(0)===47?`//`:e.slice(0,t)}function WN(e){JN(e);let t=e.length,n=-1,r=0,i=-1,a=0,o;for(;t--;){let s=e.codePointAt(t);if(s===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),s===46?i<0?i=t:a!==1&&(a=1):i>-1&&(a=-1)}return i<0||n<0||a===0||a===1&&i===n-1&&i===r+1?``:e.slice(i,n)}function GN(...e){let t=-1,n;for(;++t<e.length;)JN(e[t]),e[t]&&(n=n===void 0?e[t]:n+`/`+e[t]);return n===void 0?`.`:KN(n)}function KN(e){JN(e);let t=e.codePointAt(0)===47,n=qN(e,!t);return n.length===0&&!t&&(n=`.`),n.length>0&&e.codePointAt(e.length-1)===47&&(n+=`/`),t?`/`+n:n}function qN(e,t){let n=``,r=0,i=-1,a=0,o=-1,s,c;for(;++o<=e.length;){if(o<e.length)s=e.codePointAt(o);else if(s===47)break;else s=47;if(s===47){if(i!==o-1&&a!==1){if(i!==o-1&&a===2){if(n.length<2||r!==2||n.codePointAt(n.length-1)!==46||n.codePointAt(n.length-2)!==46){if(n.length>2){if(c=n.lastIndexOf(`/`),c!==n.length-1){c<0?(n=``,r=0):(n=n.slice(0,c),r=n.length-1-n.lastIndexOf(`/`)),i=o,a=0;continue}}else if(n.length>0){n=``,r=0,i=o,a=0;continue}}t&&(n=n.length>0?n+`/..`:`..`,r=2)}else n.length>0?n+=`/`+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1}i=o,a=0}else s===46&&a>-1?a++:a=-1}return n}function JN(e){if(typeof e!=`string`)throw TypeError(`Path must be a string. Received `+JSON.stringify(e))}var YN={cwd:XN};function XN(){return`/`}function ZN(e){return!!(typeof e==`object`&&e&&`href`in e&&e.href&&`protocol`in e&&e.protocol&&e.auth===void 0)}function QN(e){if(typeof e==`string`)e=new URL(e);else if(!ZN(e)){let t=TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code=`ERR_INVALID_ARG_TYPE`,t}if(e.protocol!==`file:`){let e=TypeError(`The URL must be of scheme file`);throw e.code=`ERR_INVALID_URL_SCHEME`,e}return $N(e)}function $N(e){if(e.hostname!==``){let e=TypeError(`File URL host must be "localhost" or empty on darwin`);throw e.code=`ERR_INVALID_FILE_URL_HOST`,e}let t=e.pathname,n=-1;for(;++n<t.length;)if(t.codePointAt(n)===37&&t.codePointAt(n+1)===50){let e=t.codePointAt(n+2);if(e===70||e===102){let e=TypeError(`File URL path must not include encoded / characters`);throw e.code=`ERR_INVALID_FILE_URL_PATH`,e}}return decodeURIComponent(t)}var eP=[`history`,`path`,`basename`,`stem`,`extname`,`dirname`],tP=class{constructor(e){let t;t=e?ZN(e)?{path:e}:typeof e==`string`||aP(e)?{value:e}:e:{},this.cwd=`cwd`in t?``:YN.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let n=-1;for(;++n<eP.length;){let e=eP[n];e in t&&t[e]!==void 0&&t[e]!==null&&(this[e]=e===`history`?[...t[e]]:t[e])}let r;for(r in t)eP.includes(r)||(this[r]=t[r])}get basename(){return typeof this.path==`string`?VN.basename(this.path):void 0}set basename(e){rP(e,`basename`),nP(e,`basename`),this.path=VN.join(this.dirname||``,e)}get dirname(){return typeof this.path==`string`?VN.dirname(this.path):void 0}set dirname(e){iP(this.basename,`dirname`),this.path=VN.join(e||``,this.basename)}get extname(){return typeof this.path==`string`?VN.extname(this.path):void 0}set extname(e){if(nP(e,`extname`),iP(this.dirname,`extname`),e){if(e.codePointAt(0)!==46)throw Error("`extname` must start with `.`");if(e.includes(`.`,1))throw Error("`extname` cannot contain multiple dots")}this.path=VN.join(this.dirname,this.stem+(e||``))}get path(){return this.history[this.history.length-1]}set path(e){ZN(e)&&(e=QN(e)),rP(e,`path`),this.path!==e&&this.history.push(e)}get stem(){return typeof this.path==`string`?VN.basename(this.path,this.extname):void 0}set stem(e){rP(e,`stem`),nP(e,`stem`),this.path=VN.join(this.dirname||``,e+(this.extname||``))}fail(e,t,n){let r=this.message(e,t,n);throw r.fatal=!0,r}info(e,t,n){let r=this.message(e,t,n);return r.fatal=void 0,r}message(e,t,n){let r=new UO(e,t,n);return this.path&&(r.name=this.path+`:`+r.name,r.file=this.path),r.fatal=!1,this.messages.push(r),r}toString(e){return this.value===void 0?``:typeof this.value==`string`?this.value:new TextDecoder(e||void 0).decode(this.value)}};function nP(e,t){if(e&&e.includes(VN.sep))throw Error("`"+t+"` cannot be a path: did not expect `"+VN.sep+"`")}function rP(e,t){if(!e)throw Error("`"+t+"` cannot be empty")}function iP(e,t){if(!e)throw Error("Setting `"+t+"` requires `path` to be set too")}function aP(e){return!!(e&&typeof e==`object`&&`byteLength`in e&&`byteOffset`in e)}var oP=(function(e){let t=this.constructor.prototype,n=t[e],r=function(){return n.apply(r,arguments)};return Object.setPrototypeOf(r,t),r}),sP=t(LN(),1),cP={}.hasOwnProperty,lP=new class e extends oP{constructor(){super(`copy`),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=zN()}copy(){let t=new e,n=-1;for(;++n<this.attachers.length;){let e=this.attachers[n];t.use(...e)}return t.data((0,sP.default)(!0,{},this.namespace)),t}data(e,t){return typeof e==`string`?arguments.length===2?(fP(`data`,this.frozen),this.namespace[e]=t,this):cP.call(this.namespace,e)&&this.namespace[e]||void 0:e?(fP(`data`,this.frozen),this.namespace=e,this):this.namespace}freeze(){if(this.frozen)return this;let e=this;for(;++this.freezeIndex<this.attachers.length;){let[t,...n]=this.attachers[this.freezeIndex];if(n[0]===!1)continue;n[0]===!0&&(n[0]=void 0);let r=t.call(e,...n);typeof r==`function`&&this.transformers.use(r)}return this.frozen=!0,this.freezeIndex=1/0,this}parse(e){this.freeze();let t=hP(e),n=this.parser||this.Parser;return uP(`parse`,n),n(String(t),t)}process(e,t){let n=this;return this.freeze(),uP(`process`,this.parser||this.Parser),dP(`process`,this.compiler||this.Compiler),t?r(void 0,t):new Promise(r);function r(r,i){let a=hP(e),o=n.parse(a);n.run(o,a,function(e,t,r){if(e||!t||!r)return s(e);let i=t,a=n.stringify(i,r);_P(a)?r.value=a:r.result=a,s(e,r)});function s(e,n){e||!n?i(e):r?r(n):t(void 0,n)}}}processSync(e){let t=!1,n;return this.freeze(),uP(`processSync`,this.parser||this.Parser),dP(`processSync`,this.compiler||this.Compiler),this.process(e,r),mP(`processSync`,`process`,t),n;function r(e,r){t=!0,IN(e),n=r}}run(e,t,n){pP(e),this.freeze();let r=this.transformers;return!n&&typeof t==`function`&&(n=t,t=void 0),n?i(void 0,n):new Promise(i);function i(i,a){let o=hP(t);r.run(e,o,s);function s(t,r,o){let s=r||e;t?a(t):i?i(s):n(void 0,s,o)}}}runSync(e,t){let n=!1,r;return this.run(e,t,i),mP(`runSync`,`run`,n),r;function i(e,t){IN(e),r=t,n=!0}}stringify(e,t){this.freeze();let n=hP(t),r=this.compiler||this.Compiler;return dP(`stringify`,r),pP(e),r(e,n)}use(e,...t){let n=this.attachers,r=this.namespace;if(fP(`use`,this.frozen),e!=null){if(typeof e==`function`)s(e,t);else if(typeof e==`object`)Array.isArray(e)?o(e):a(e);else throw TypeError("Expected usable value, not `"+e+"`")}return this;function i(e){if(typeof e==`function`)s(e,[]);else if(typeof e==`object`){if(Array.isArray(e)){let[t,...n]=e;s(t,n)}else a(e)}else throw TypeError("Expected usable value, not `"+e+"`")}function a(e){if(!(`plugins`in e)&&!(`settings`in e))throw Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");o(e.plugins),e.settings&&(r.settings=(0,sP.default)(!0,r.settings,e.settings))}function o(e){let t=-1;if(e!=null){if(Array.isArray(e))for(;++t<e.length;){let n=e[t];i(n)}else throw TypeError("Expected a list of plugins, not `"+e+"`")}}function s(e,t){let r=-1,i=-1;for(;++r<n.length;)if(n[r][0]===e){i=r;break}if(i===-1)n.push([e,...t]);else if(t.length>0){let[r,...a]=t,o=n[i][1];RN(o)&&RN(r)&&(r=(0,sP.default)(!0,o,r)),n[i]=[e,r,...a]}}}}().freeze();function uP(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `parser`")}function dP(e,t){if(typeof t!=`function`)throw TypeError("Cannot `"+e+"` without `compiler`")}function fP(e,t){if(t)throw Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function pP(e){if(!RN(e)||typeof e.type!=`string`)throw TypeError("Expected node, got `"+e+"`")}function mP(e,t,n){if(!n)throw Error("`"+e+"` finished async. Use `"+t+"` instead")}function hP(e){return gP(e)?e:new tP(e)}function gP(e){return!!(e&&typeof e==`object`&&`message`in e&&`messages`in e)}function _P(e){return typeof e==`string`||vP(e)}function vP(e){return!!(e&&typeof e==`object`&&`byteLength`in e&&`byteOffset`in e)}var yP=[],bP={allowDangerousHtml:!0},xP=/^(https?|ircs?|mailto|xmpp)$/i,SP=[{from:`astPlugins`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowDangerousHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`allowNode`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowElement`},{from:`allowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`allowedElements`},{from:`className`,id:`remove-classname`},{from:`disallowedTypes`,id:`replace-allownode-allowedtypes-and-disallowedtypes`,to:`disallowedElements`},{from:`escapeHtml`,id:`remove-buggy-html-in-markdown-parser`},{from:`includeElementIndex`,id:`#remove-includeelementindex`},{from:`includeNodeIndex`,id:`change-includenodeindex-to-includeelementindex`},{from:`linkTarget`,id:`remove-linktarget`},{from:`plugins`,id:`change-plugins-to-remarkplugins`,to:`remarkPlugins`},{from:`rawSourcePos`,id:`#remove-rawsourcepos`},{from:`renderers`,id:`change-renderers-to-components`,to:`components`},{from:`source`,id:`change-source-to-children`,to:`children`},{from:`sourcePos`,id:`#remove-sourcepos`},{from:`transformImageUri`,id:`#add-urltransform`,to:`urlTransform`},{from:`transformLinkUri`,id:`#add-urltransform`,to:`urlTransform`}];function CP(e){let t=wP(e),n=TP(e);return EP(t.runSync(t.parse(n),n),e)}function wP(e){let t=e.rehypePlugins||yP,n=e.remarkPlugins||yP,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...bP}:bP;return lP().use(bM).use(n).use(FN,r).use(t)}function TP(e){let t=e.children||``,n=new tP;return typeof t==`string`?n.value=t:``+t,n}function EP(e,t){let n=t.allowedElements,r=t.allowElement,i=t.components,a=t.disallowedElements,o=t.skipHtml,s=t.unwrapDisallowed,c=t.urlTransform||DP;for(let e of SP)Object.hasOwn(t,e.from)&&``+e.from+(e.to?"use `"+e.to+"` instead":`remove it`)+e.id;return TN(e,l),XO(e,{Fragment:G.Fragment,components:i,ignoreInvalidStyle:!0,jsx:G.jsx,jsxs:G.jsxs,passKeys:!0,passNode:!0});function l(e,t,i){if(e.type===`raw`&&i&&typeof t==`number`)return o?i.children.splice(t,1):i.children[t]={type:`text`,value:e.value},t;if(e.type===`element`){let t;for(t in vk)if(Object.hasOwn(vk,t)&&Object.hasOwn(e.properties,t)){let n=e.properties[t],r=vk[t];(r===null||r.includes(e.tagName))&&(e.properties[t]=c(String(n||``),t,e))}}if(e.type===`element`){let o=n?!n.includes(e.tagName):a?a.includes(e.tagName):!1;if(!o&&r&&typeof t==`number`&&(o=!r(e,t,i)),o&&i&&typeof t==`number`)return s&&e.children?i.children.splice(t,1,...e.children):i.children.splice(t,1),t}}}function DP(e){let t=e.indexOf(`:`),n=e.indexOf(`?`),r=e.indexOf(`#`),i=e.indexOf(`/`);return t===-1||i!==-1&&t>i||n!==-1&&t>n||r!==-1&&t>r||xP.test(e.slice(0,t))?e:``}function OP(e,t){let n=String(e);if(typeof t!=`string`)throw TypeError(`Expected character`);let r=0,i=n.indexOf(t);for(;i!==-1;)r++,i=n.indexOf(t,i+t.length);return r}function kP(e){if(typeof e!=`string`)throw TypeError(`Expected a string`);return e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`)}function AP(e,t,n){let r=mN((n||{}).ignore||[]),i=jP(t),a=-1;for(;++a<i.length;)CN(e,`text`,o);function o(e,t){let n=-1,i;for(;++n<t.length;){let e=t[n],a=i?i.children:void 0;if(r(e,a?a.indexOf(e):void 0,i))return;i=e}if(i)return s(e,t)}function s(e,t){let n=t[t.length-1],r=i[a][0],o=i[a][1],s=0,c=n.children.indexOf(e),l=!1,u=[];r.lastIndex=0;let d=r.exec(e.value);for(;d;){let n=d.index,i={index:d.index,input:d.input,stack:[...t,e]},a=o(...d,i);if(typeof a==`string`&&(a=a.length>0?{type:`text`,value:a}:void 0),a===!1?r.lastIndex=n+1:(s!==n&&u.push({type:`text`,value:e.value.slice(s,n)}),Array.isArray(a)?u.push(...a):a&&u.push(a),s=n+d[0].length,l=!0),!r.global)break;d=r.exec(e.value)}return l?(s<e.value.length&&u.push({type:`text`,value:e.value.slice(s)}),n.children.splice(c,1,...u)):u=[e],c+u.length}}function jP(e){let t=[];if(!Array.isArray(e))throw TypeError(`Expected find and replace tuple or list of tuples`);let n=!e[0]||Array.isArray(e[0])?e:[e],r=-1;for(;++r<n.length;){let e=n[r];t.push([MP(e[0]),NP(e[1])])}return t}function MP(e){return typeof e==`string`?new RegExp(kP(e),`g`):e}function NP(e){return typeof e==`function`?e:function(){return e}}var PP=`phrasing`,FP=[`autolink`,`link`,`image`,`label`];function IP(){return{transforms:[WP],enter:{literalAutolink:RP,literalAutolinkEmail:zP,literalAutolinkHttp:zP,literalAutolinkWww:zP},exit:{literalAutolink:UP,literalAutolinkEmail:HP,literalAutolinkHttp:BP,literalAutolinkWww:VP}}}function LP(){return{unsafe:[{character:`@`,before:`[+\\-.\\w]`,after:`[\\-.\\w]`,inConstruct:PP,notInConstruct:FP},{character:`.`,before:`[Ww]`,after:`[\\-.\\w]`,inConstruct:PP,notInConstruct:FP},{character:`:`,before:`[ps]`,after:`\\/`,inConstruct:PP,notInConstruct:FP}]}}function RP(e){this.enter({type:`link`,title:null,url:``,children:[]},e)}function zP(e){this.config.enter.autolinkProtocol.call(this,e)}function BP(e){this.config.exit.autolinkProtocol.call(this,e)}function VP(e){this.config.exit.data.call(this,e);let t=this.stack[this.stack.length-1];t.type,t.url=`http://`+this.sliceSerialize(e)}function HP(e){this.config.exit.autolinkEmail.call(this,e)}function UP(e){this.exit(e)}function WP(e){AP(e,[[/(https?:\/\/|www(?=\.))([-.\w]+)([^ \t\r\n]*)/gi,GP],[/(?<=^|\s|\p{P}|\p{S})([-.\w+]+)@([-\w]+(?:\.[-\w]+)+)/gu,KP]],{ignore:[`link`,`linkReference`]})}function GP(e,t,n,r,i){let a=``;if(!YP(i)||(/^w/i.test(t)&&(n=t+n,t=``,a=`http://`),!qP(n)))return!1;let o=JP(n+r);if(!o[0])return!1;let s={type:`link`,title:null,url:a+t+o[0],children:[{type:`text`,value:t+o[0]}]};return o[1]?[s,{type:`text`,value:o[1]}]:s}function KP(e,t,n,r){return!YP(r,!0)||/[-\d_]$/.test(n)?!1:{type:`link`,title:null,url:`mailto:`+t+`@`+n,children:[{type:`text`,value:t+`@`+n}]}}function qP(e){let t=e.split(`.`);return!(t.length<2||t[t.length-1]&&(/_/.test(t[t.length-1])||!/[a-zA-Z\d]/.test(t[t.length-1]))||t[t.length-2]&&(/_/.test(t[t.length-2])||!/[a-zA-Z\d]/.test(t[t.length-2])))}function JP(e){let t=/[!"&'),.:;<>?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],r=n.indexOf(`)`),i=OP(e,`(`),a=OP(e,`)`);for(;r!==-1&&i>a;)e+=n.slice(0,r+1),n=n.slice(r+1),r=n.indexOf(`)`),a++;return[e,n]}function YP(e,t){let n=e.input.charCodeAt(e.index-1);return(e.index===0||Gk(n)||Wk(n))&&(!t||n!==47)}aF.peek=iF;function XP(){this.buffer()}function ZP(e){this.enter({type:`footnoteReference`,identifier:``,label:``},e)}function QP(){this.buffer()}function $P(e){this.enter({type:`footnoteDefinition`,identifier:``,label:``,children:[]},e)}function eF(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Nk(this.sliceSerialize(e)).toLowerCase(),n.label=t}function tF(e){this.exit(e)}function nF(e){let t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Nk(this.sliceSerialize(e)).toLowerCase(),n.label=t}function rF(e){this.exit(e)}function iF(){return`[`}function aF(e,t,n,r){let i=n.createTracker(r),a=i.move(`[^`),o=n.enter(`footnoteReference`),s=n.enter(`reference`);return a+=i.move(n.safe(n.associationId(e),{after:`]`,before:a})),s(),o(),a+=i.move(`]`),a}function oF(){return{enter:{gfmFootnoteCallString:XP,gfmFootnoteCall:ZP,gfmFootnoteDefinitionLabelString:QP,gfmFootnoteDefinition:$P},exit:{gfmFootnoteCallString:eF,gfmFootnoteCall:tF,gfmFootnoteDefinitionLabelString:nF,gfmFootnoteDefinition:rF}}}function sF(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:aF},unsafe:[{character:`[`,inConstruct:[`label`,`phrasing`,`reference`]}]};function n(e,n,r,i){let a=r.createTracker(i),o=a.move(`[^`),s=r.enter(`footnoteDefinition`),c=r.enter(`label`);return o+=a.move(r.safe(r.associationId(e),{before:o,after:`]`})),c(),o+=a.move(`]:`),e.children&&e.children.length>0&&(a.shift(4),o+=a.move((t?`
|
|
212
|
+
`:` `)+r.indentLines(r.containerFlow(e,a.current()),t?lF:cF))),s(),o}}function cF(e,t,n){return t===0?e:lF(e,t,n)}function lF(e,t,n){return(n?``:` `)+e}var uF=[`autolink`,`destinationLiteral`,`destinationRaw`,`reference`,`titleQuote`,`titleApostrophe`];hF.peek=gF;function dF(){return{canContainEols:[`delete`],enter:{strikethrough:pF},exit:{strikethrough:mF}}}function fF(){return{unsafe:[{character:`~`,inConstruct:`phrasing`,notInConstruct:uF}],handlers:{delete:hF}}}function pF(e){this.enter({type:`delete`,children:[]},e)}function mF(e){this.exit(e)}function hF(e,t,n,r){let i=n.createTracker(r),a=n.enter(`strikethrough`),o=i.move(`~~`);return o+=n.containerPhrasing(e,{...i.current(),before:o,after:`~`}),o+=i.move(`~~`),a(),o}function gF(){return`~`}function _F(e){return e.length}function vF(e,t){let n=t||{},r=(n.align||[]).concat(),i=n.stringLength||_F,a=[],o=[],s=[],c=[],l=0,u=-1;for(;++u<e.length;){let t=[],r=[],a=-1;for(e[u].length>l&&(l=e[u].length);++a<e[u].length;){let o=yF(e[u][a]);if(n.alignDelimiters!==!1){let e=i(o);r[a]=e,(c[a]===void 0||e>c[a])&&(c[a]=e)}t.push(o)}o[u]=t,s[u]=r}let d=-1;if(typeof r==`object`&&`length`in r)for(;++d<l;)a[d]=bF(r[d]);else{let e=bF(r);for(;++d<l;)a[d]=e}d=-1;let f=[],p=[];for(;++d<l;){let e=a[d],t=``,r=``;e===99?(t=`:`,r=`:`):e===108?t=`:`:e===114&&(r=`:`);let i=n.alignDelimiters===!1?1:Math.max(1,c[d]-t.length-r.length),o=t+`-`.repeat(i)+r;n.alignDelimiters!==!1&&(i=t.length+i+r.length,i>c[d]&&(c[d]=i),p[d]=i),f[d]=o}o.splice(1,0,f),s.splice(1,0,p),u=-1;let m=[];for(;++u<o.length;){let e=o[u],t=s[u];d=-1;let r=[];for(;++d<l;){let i=e[d]||``,o=``,s=``;if(n.alignDelimiters!==!1){let e=c[d]-(t[d]||0),n=a[d];n===114?o=` `.repeat(e):n===99?e%2?(o=` `.repeat(e/2+.5),s=` `.repeat(e/2-.5)):(o=` `.repeat(e/2),s=o):s=` `.repeat(e)}n.delimiterStart!==!1&&!d&&r.push(`|`),n.padding!==!1&&(n.alignDelimiters!==!1||i!==``)&&(n.delimiterStart!==!1||d)&&r.push(` `),n.alignDelimiters!==!1&&r.push(o),r.push(i),n.alignDelimiters!==!1&&r.push(s),n.padding!==!1&&r.push(` `),(n.delimiterEnd!==!1||d!==l-1)&&r.push(`|`)}m.push(n.delimiterEnd===!1?r.join(``).replace(/ +$/,``):r.join(``))}return m.join(`
|
|
213
|
+
`)}function yF(e){return e==null?``:String(e)}function bF(e){let t=typeof e==`string`?e.codePointAt(0):0;return t===67||t===99?99:t===76||t===108?108:t===82||t===114?114:0}function xF(e,t,n,r){let i=n.enter(`blockquote`),a=n.createTracker(r);a.move(`> `),a.shift(2);let o=n.indentLines(n.containerFlow(e,a.current()),SF);return i(),o}function SF(e,t,n){return`>`+(n?``:` `)+e}function CF(e,t){return wF(e,t.inConstruct,!0)&&!wF(e,t.notInConstruct,!1)}function wF(e,t,n){if(typeof t==`string`&&(t=[t]),!t||t.length===0)return n;let r=-1;for(;++r<t.length;)if(e.includes(t[r]))return!0;return!1}function TF(e,t,n,r){let i=-1;for(;++i<n.unsafe.length;)if(n.unsafe[i].character===`
|
|
214
|
+
`&&CF(n.stack,n.unsafe[i]))return/[ \t]/.test(r.before)?``:` `;return`\\
|
|
215
|
+
`}function EF(e,t){let n=String(e),r=n.indexOf(t),i=r,a=0,o=0;if(typeof t!=`string`)throw TypeError(`Expected substring`);for(;r!==-1;)r===i?++a>o&&(o=a):a=1,i=r+t.length,r=n.indexOf(t,i);return o}function DF(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function OF(e){let t=e.options.fence||"`";if(t!=="`"&&t!==`~`)throw Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function kF(e,t,n,r){let i=OF(n),a=e.value||``,o=i==="`"?`GraveAccent`:`Tilde`;if(DF(e,n)){let e=n.enter(`codeIndented`),t=n.indentLines(a,AF);return e(),t}let s=n.createTracker(r),c=i.repeat(Math.max(EF(a,i)+1,3)),l=n.enter(`codeFenced`),u=s.move(c);if(e.lang){let t=n.enter(`codeFencedLang${o}`);u+=s.move(n.safe(e.lang,{before:u,after:` `,encode:["`"],...s.current()})),t()}if(e.lang&&e.meta){let t=n.enter(`codeFencedMeta${o}`);u+=s.move(` `),u+=s.move(n.safe(e.meta,{before:u,after:`
|
|
216
|
+
`,encode:["`"],...s.current()})),t()}return u+=s.move(`
|
|
217
|
+
`),a&&(u+=s.move(a+`
|
|
218
|
+
`)),u+=s.move(c),l(),u}function AF(e,t,n){return(n?``:` `)+e}function jF(e){let t=e.options.quote||`"`;if(t!==`"`&&t!==`'`)throw Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function MF(e,t,n,r){let i=jF(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`definition`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`[`);return l+=c.move(n.safe(n.associationId(e),{before:l,after:`]`,...c.current()})),l+=c.move(`]: `),s(),!e.url||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`
|
|
219
|
+
`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),o(),l}function NF(e){let t=e.options.emphasis||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function PF(e){return`&#x`+e.toString(16).toUpperCase()+`;`}function FF(e,t,n){let r=tA(e),i=tA(t);return r===void 0?i===void 0?n===`_`?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:r===1?i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:i===void 0?{inside:!1,outside:!1}:i===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}IF.peek=LF;function IF(e,t,n,r){let i=NF(n),a=n.enter(`emphasis`),o=n.createTracker(r),s=o.move(i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=FF(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=PF(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=FF(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+PF(d));let p=o.move(i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function LF(e,t,n){return n.options.emphasis||`*`}function RF(e,t){let n=!1;return TN(e,function(e){if(`value`in e&&/\r?\n|\r/.test(e.value)||e.type===`break`)return n=!0,!1}),!!((!e.depth||e.depth<3)&&bk(e)&&(t.options.setext||n))}function zF(e,t,n,r){let i=Math.max(Math.min(6,e.depth||1),1),a=n.createTracker(r);if(RF(e,n)){let t=n.enter(`headingSetext`),r=n.enter(`phrasing`),o=n.containerPhrasing(e,{...a.current(),before:`
|
|
220
|
+
`,after:`
|
|
221
|
+
`});return r(),t(),o+`
|
|
222
|
+
`+(i===1?`=`:`-`).repeat(o.length-(Math.max(o.lastIndexOf(`\r`),o.lastIndexOf(`
|
|
223
|
+
`))+1))}let o=`#`.repeat(i),s=n.enter(`headingAtx`),c=n.enter(`phrasing`);a.move(o+` `);let l=n.containerPhrasing(e,{before:`# `,after:`
|
|
224
|
+
`,...a.current()});return/^[\t ]/.test(l)&&(l=PF(l.charCodeAt(0))+l.slice(1)),l=l?o+` `+l:o,n.options.closeAtx&&(l+=` `+o),c(),s(),l}BF.peek=VF;function BF(e){return e.value||``}function VF(){return`<`}HF.peek=UF;function HF(e,t,n,r){let i=jF(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.enter(`image`),s=n.enter(`label`),c=n.createTracker(r),l=c.move(`![`);return l+=c.move(n.safe(e.alt,{before:l,after:`]`,...c.current()})),l+=c.move(`](`),s(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(s=n.enter(`destinationLiteral`),l+=c.move(`<`),l+=c.move(n.safe(e.url,{before:l,after:`>`,...c.current()})),l+=c.move(`>`)):(s=n.enter(`destinationRaw`),l+=c.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...c.current()}))),s(),e.title&&(s=n.enter(`title${a}`),l+=c.move(` `+i),l+=c.move(n.safe(e.title,{before:l,after:i,...c.current()})),l+=c.move(i),s()),l+=c.move(`)`),o(),l}function UF(){return`!`}WF.peek=GF;function WF(e,t,n,r){let i=e.referenceType,a=n.enter(`imageReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`![`),l=n.safe(e.alt,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function GF(){return`!`}KF.peek=qF;function KF(e,t,n){let r=e.value||``,i="`",a=-1;for(;RegExp("(^|[^`])"+i+"([^`]|$)").test(r);)i+="`";for(/[^ \r\n]/.test(r)&&(/^[ \r\n]/.test(r)&&/[ \r\n]$/.test(r)||/^`|`$/.test(r))&&(r=` `+r+` `);++a<n.unsafe.length;){let e=n.unsafe[a],t=n.compilePattern(e),i;if(e.atBreak)for(;i=t.exec(r);){let e=i.index;r.charCodeAt(e)===10&&r.charCodeAt(e-1)===13&&e--,r=r.slice(0,e)+` `+r.slice(i.index+1)}}return i+r+i}function qF(){return"`"}function JF(e,t){let n=bk(e);return!!(!t.options.resourceLink&&e.url&&!e.title&&e.children&&e.children.length===1&&e.children[0].type===`text`&&(n===e.url||`mailto:`+n===e.url)&&/^[a-z][a-z+.-]+:/i.test(e.url)&&!/[\0- <>\u007F]/.test(e.url))}YF.peek=XF;function YF(e,t,n,r){let i=jF(n),a=i===`"`?`Quote`:`Apostrophe`,o=n.createTracker(r),s,c;if(JF(e,n)){let t=n.stack;n.stack=[],s=n.enter(`autolink`);let r=o.move(`<`);return r+=o.move(n.containerPhrasing(e,{before:r,after:`>`,...o.current()})),r+=o.move(`>`),s(),n.stack=t,r}s=n.enter(`link`),c=n.enter(`label`);let l=o.move(`[`);return l+=o.move(n.containerPhrasing(e,{before:l,after:`](`,...o.current()})),l+=o.move(`](`),c(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(c=n.enter(`destinationLiteral`),l+=o.move(`<`),l+=o.move(n.safe(e.url,{before:l,after:`>`,...o.current()})),l+=o.move(`>`)):(c=n.enter(`destinationRaw`),l+=o.move(n.safe(e.url,{before:l,after:e.title?` `:`)`,...o.current()}))),c(),e.title&&(c=n.enter(`title${a}`),l+=o.move(` `+i),l+=o.move(n.safe(e.title,{before:l,after:i,...o.current()})),l+=o.move(i),c()),l+=o.move(`)`),s(),l}function XF(e,t,n){return JF(e,n)?`<`:`[`}ZF.peek=QF;function ZF(e,t,n,r){let i=e.referenceType,a=n.enter(`linkReference`),o=n.enter(`label`),s=n.createTracker(r),c=s.move(`[`),l=n.containerPhrasing(e,{before:c,after:`]`,...s.current()});c+=s.move(l+`][`),o();let u=n.stack;n.stack=[],o=n.enter(`reference`);let d=n.safe(n.associationId(e),{before:c,after:`]`,...s.current()});return o(),n.stack=u,a(),i===`full`||!l||l!==d?c+=s.move(d+`]`):i===`shortcut`?c=c.slice(0,-1):c+=s.move(`]`),c}function QF(){return`[`}function $F(e){let t=e.options.bullet||`*`;if(t!==`*`&&t!==`+`&&t!==`-`)throw Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function eI(e){let t=$F(e),n=e.options.bulletOther;if(!n)return t===`*`?`-`:`*`;if(n!==`*`&&n!==`+`&&n!==`-`)throw Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function tI(e){let t=e.options.bulletOrdered||`.`;if(t!==`.`&&t!==`)`)throw Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function nI(e){let t=e.options.rule||`*`;if(t!==`*`&&t!==`-`&&t!==`_`)throw Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function rI(e,t,n,r){let i=n.enter(`list`),a=n.bulletCurrent,o=e.ordered?tI(n):$F(n),s=e.ordered?o===`.`?`)`:`.`:eI(n),c=t&&n.bulletLastUsed?o===n.bulletLastUsed:!1;if(!e.ordered){let t=e.children?e.children[0]:void 0;if((o===`*`||o===`-`)&&t&&(!t.children||!t.children[0])&&n.stack[n.stack.length-1]===`list`&&n.stack[n.stack.length-2]===`listItem`&&n.stack[n.stack.length-3]===`list`&&n.stack[n.stack.length-4]===`listItem`&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(c=!0),nI(n)===o&&t){let t=-1;for(;++t<e.children.length;){let n=e.children[t];if(n&&n.type===`listItem`&&n.children&&n.children[0]&&n.children[0].type===`thematicBreak`){c=!0;break}}}}c&&(o=s),n.bulletCurrent=o;let l=n.containerFlow(e,r);return n.bulletLastUsed=o,n.bulletCurrent=a,i(),l}function iI(e){let t=e.options.listItemIndent||`one`;if(t!==`tab`&&t!==`one`&&t!==`mixed`)throw Error("Cannot serialize items with `"+t+"` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`");return t}function aI(e,t,n,r){let i=iI(n),a=n.bulletCurrent||$F(n);t&&t.type===`list`&&t.ordered&&(a=(typeof t.start==`number`&&t.start>-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+a);let o=a.length+1;(i===`tab`||i===`mixed`&&(t&&t.type===`list`&&t.spread||e.spread))&&(o=Math.ceil(o/4)*4);let s=n.createTracker(r);s.move(a+` `.repeat(o-a.length)),s.shift(o);let c=n.enter(`listItem`),l=n.indentLines(n.containerFlow(e,s.current()),u);return c(),l;function u(e,t,n){return t?(n?``:` `.repeat(o))+e:(n?a:a+` `.repeat(o-a.length))+e}}function oI(e,t,n,r){let i=n.enter(`paragraph`),a=n.enter(`phrasing`),o=n.containerPhrasing(e,r);return a(),i(),o}var sI=mN([`break`,`delete`,`emphasis`,`footnote`,`footnoteReference`,`image`,`imageReference`,`inlineCode`,`inlineMath`,`link`,`linkReference`,`mdxJsxTextElement`,`mdxTextExpression`,`strong`,`text`,`textDirective`]);function cI(e,t,n,r){return(e.children.some(function(e){return sI(e)})?n.containerPhrasing:n.containerFlow).call(n,e,r)}function lI(e){let t=e.options.strong||`*`;if(t!==`*`&&t!==`_`)throw Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}uI.peek=dI;function uI(e,t,n,r){let i=lI(n),a=n.enter(`strong`),o=n.createTracker(r),s=o.move(i+i),c=o.move(n.containerPhrasing(e,{after:i,before:s,...o.current()})),l=c.charCodeAt(0),u=FF(r.before.charCodeAt(r.before.length-1),l,i);u.inside&&(c=PF(l)+c.slice(1));let d=c.charCodeAt(c.length-1),f=FF(r.after.charCodeAt(0),d,i);f.inside&&(c=c.slice(0,-1)+PF(d));let p=o.move(i+i);return a(),n.attentionEncodeSurroundingInfo={after:f.outside,before:u.outside},s+c+p}function dI(e,t,n){return n.options.strong||`*`}function fI(e,t,n,r){return n.safe(e.value,r)}function pI(e){let t=e.options.ruleRepetition||3;if(t<3)throw Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function mI(e,t,n){let r=(nI(n)+(n.options.ruleSpaces?` `:``)).repeat(pI(n));return n.options.ruleSpaces?r.slice(0,-1):r}var hI={blockquote:xF,break:TF,code:kF,definition:MF,emphasis:IF,hardBreak:TF,heading:zF,html:BF,image:HF,imageReference:WF,inlineCode:KF,link:YF,linkReference:ZF,list:rI,listItem:aI,paragraph:oI,root:cI,strong:uI,text:fI,thematicBreak:mI};function gI(){return{enter:{table:_I,tableData:xI,tableHeader:xI,tableRow:yI},exit:{codeText:SI,table:vI,tableData:bI,tableHeader:bI,tableRow:bI}}}function _I(e){let t=e._align;this.enter({type:`table`,align:t.map(function(e){return e===`none`?null:e}),children:[]},e),this.data.inTable=!0}function vI(e){this.exit(e),this.data.inTable=void 0}function yI(e){this.enter({type:`tableRow`,children:[]},e)}function bI(e){this.exit(e)}function xI(e){this.enter({type:`tableCell`,children:[]},e)}function SI(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,CI));let n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function CI(e,t){return t===`|`?t:e}function wI(e){let t=e||{},n=t.tableCellPadding,r=t.tablePipeAlign,i=t.stringLength,a=n?` `:`|`;return{unsafe:[{character:`\r`,inConstruct:`tableCell`},{character:`
|
|
225
|
+
`,inConstruct:`tableCell`},{atBreak:!0,character:`|`,after:`[ :-]`},{character:`|`,inConstruct:`tableCell`},{atBreak:!0,character:`:`,after:`-`},{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{inlineCode:f,table:o,tableCell:c,tableRow:s}};function o(e,t,n,r){return l(u(e,n,r),e.align)}function s(e,t,n,r){let i=l([d(e,n,r)]);return i.slice(0,i.indexOf(`
|
|
226
|
+
`))}function c(e,t,n,r){let i=n.enter(`tableCell`),o=n.enter(`phrasing`),s=n.containerPhrasing(e,{...r,before:a,after:a});return o(),i(),s}function l(e,t){return vF(e,{align:t,alignDelimiters:r,padding:n,stringLength:i})}function u(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`table`);for(;++i<r.length;)a[i]=d(r[i],t,n);return o(),a}function d(e,t,n){let r=e.children,i=-1,a=[],o=t.enter(`tableRow`);for(;++i<r.length;)a[i]=c(r[i],e,t,n);return o(),a}function f(e,t,n){let r=hI.inlineCode(e,t,n);return n.stack.includes(`tableCell`)&&(r=r.replace(/\|/g,`\\$&`)),r}}function TI(){return{exit:{taskListCheckValueChecked:DI,taskListCheckValueUnchecked:DI,paragraph:OI}}}function EI(){return{unsafe:[{atBreak:!0,character:`-`,after:`[:|-]`}],handlers:{listItem:kI}}}function DI(e){let t=this.stack[this.stack.length-2];t.type,t.checked=e.type===`taskListCheckValueChecked`}function OI(e){let t=this.stack[this.stack.length-2];if(t&&t.type===`listItem`&&typeof t.checked==`boolean`){let e=this.stack[this.stack.length-1];e.type;let n=e.children[0];if(n&&n.type===`text`){let r=t.children,i=-1,a;for(;++i<r.length;){let e=r[i];if(e.type===`paragraph`){a=e;break}}a===e&&(n.value=n.value.slice(1),n.value.length===0?e.children.shift():e.position&&n.position&&typeof n.position.start.offset==`number`&&(n.position.start.column++,n.position.start.offset++,e.position.start=Object.assign({},n.position.start)))}}this.exit(e)}function kI(e,t,n,r){let i=e.children[0],a=typeof e.checked==`boolean`&&i&&i.type===`paragraph`,o=`[`+(e.checked?`x`:` `)+`] `,s=n.createTracker(r);a&&s.move(o);let c=hI.listItem(e,t,n,{...r,...s.current()});return a&&(c=c.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,l)),c;function l(e){return e+o}}function AI(){return[IP(),oF(),dF(),gI(),TI()]}function jI(e){return{extensions:[LP(),sF(e),fF(),wI(e),EI()]}}var MI={tokenize:KI,partial:!0},NI={tokenize:qI,partial:!0},PI={tokenize:JI,partial:!0},FI={tokenize:YI,partial:!0},II={tokenize:XI,partial:!0},LI={name:`wwwAutolink`,tokenize:WI,previous:ZI},RI={name:`protocolAutolink`,tokenize:GI,previous:QI},zI={name:`emailAutolink`,tokenize:UI,previous:$I},BI={};function VI(){return{text:BI}}for(var HI=48;HI<123;)BI[HI]=zI,HI++,HI===58?HI=65:HI===91&&(HI=97);BI[43]=zI,BI[45]=zI,BI[46]=zI,BI[95]=zI,BI[72]=[zI,RI],BI[104]=[zI,RI],BI[87]=[zI,LI],BI[119]=[zI,LI];function UI(e,t,n){let r=this,i,a;return o;function o(t){return!eL(t)||!$I.call(r,r.previous)||tL(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkEmail`),s(t))}function s(t){return eL(t)?(e.consume(t),s):t===64?(e.consume(t),c):n(t)}function c(t){return t===46?e.check(II,u,l)(t):t===45||t===95||Fk(t)?(a=!0,e.consume(t),c):u(t)}function l(t){return e.consume(t),i=!0,c}function u(o){return a&&i&&Pk(r.previous)?(e.exit(`literalAutolinkEmail`),e.exit(`literalAutolink`),t(o)):n(o)}}function WI(e,t,n){let r=this;return i;function i(t){return t!==87&&t!==119||!ZI.call(r,r.previous)||tL(r.events)?n(t):(e.enter(`literalAutolink`),e.enter(`literalAutolinkWww`),e.check(MI,e.attempt(NI,e.attempt(PI,a),n),n)(t))}function a(n){return e.exit(`literalAutolinkWww`),e.exit(`literalAutolink`),t(n)}}function GI(e,t,n){let r=this,i=``,a=!1;return o;function o(t){return(t===72||t===104)&&QI.call(r,r.previous)&&!tL(r.events)?(e.enter(`literalAutolink`),e.enter(`literalAutolinkHttp`),i+=String.fromCodePoint(t),e.consume(t),s):n(t)}function s(t){if(Pk(t)&&i.length<5)return i+=String.fromCodePoint(t),e.consume(t),s;if(t===58){let n=i.toLowerCase();if(n===`http`||n===`https`)return e.consume(t),c}return n(t)}function c(t){return t===47?(e.consume(t),a?l:(a=!0,c)):n(t)}function l(t){return t===null||Lk(t)||Hk(t)||Gk(t)||Wk(t)?n(t):e.attempt(NI,e.attempt(PI,u),n)(t)}function u(n){return e.exit(`literalAutolinkHttp`),e.exit(`literalAutolink`),t(n)}}function KI(e,t,n){let r=0;return i;function i(t){return(t===87||t===119)&&r<3?(r++,e.consume(t),i):t===46&&r===3?(e.consume(t),a):n(t)}function a(e){return e===null?n(e):t(e)}}function qI(e,t,n){let r,i,a;return o;function o(t){return t===46||t===95?e.check(FI,c,s)(t):t===null||Hk(t)||Gk(t)||t!==45&&Wk(t)?c(t):(a=!0,e.consume(t),o)}function s(t){return t===95?r=!0:(i=r,r=void 0),e.consume(t),o}function c(e){return i||r||!a?n(e):t(e)}}function JI(e,t){let n=0,r=0;return i;function i(o){return o===40?(n++,e.consume(o),i):o===41&&r<n?a(o):o===33||o===34||o===38||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===60||o===63||o===93||o===95||o===126?e.check(FI,t,a)(o):o===null||Hk(o)||Gk(o)?t(o):(e.consume(o),i)}function a(t){return t===41&&r++,e.consume(t),i}}function YI(e,t,n){return r;function r(o){return o===33||o===34||o===39||o===41||o===42||o===44||o===46||o===58||o===59||o===63||o===95||o===126?(e.consume(o),r):o===38?(e.consume(o),a):o===93?(e.consume(o),i):o===60||o===null||Hk(o)||Gk(o)?t(o):n(o)}function i(e){return e===null||e===40||e===91||Hk(e)||Gk(e)?t(e):r(e)}function a(e){return Pk(e)?o(e):n(e)}function o(t){return t===59?(e.consume(t),r):Pk(t)?(e.consume(t),o):n(t)}}function XI(e,t,n){return r;function r(t){return e.consume(t),i}function i(e){return Fk(e)?n(e):t(e)}}function ZI(e){return e===null||e===40||e===42||e===95||e===91||e===93||e===126||Hk(e)}function QI(e){return!Pk(e)}function $I(e){return!(e===47||eL(e))}function eL(e){return e===43||e===45||e===46||e===95||Fk(e)}function tL(e){let t=e.length,n=!1;for(;t--;){let r=e[t][1];if((r.type===`labelLink`||r.type===`labelImage`)&&!r._balanced){n=!0;break}if(r._gfmAutolinkLiteralWalkedInto){n=!1;break}}return e.length>0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}var nL={tokenize:uL,partial:!0};function rL(){return{document:{91:{name:`gfmFootnoteDefinition`,tokenize:sL,continuation:{tokenize:cL},exit:lL}},text:{91:{name:`gfmFootnoteCall`,tokenize:oL},93:{name:`gfmPotentialFootnoteCall`,add:`after`,tokenize:iL,resolveTo:aL}}}}function iL(e,t,n){let r=this,i=r.events.length,a=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),o;for(;i--;){let e=r.events[i][1];if(e.type===`labelImage`){o=e;break}if(e.type===`gfmFootnoteCall`||e.type===`labelLink`||e.type===`label`||e.type===`image`||e.type===`link`)break}return s;function s(i){if(!o||!o._balanced)return n(i);let s=Nk(r.sliceSerialize({start:o.end,end:r.now()}));return s.codePointAt(0)!==94||!a.includes(s.slice(1))?n(i):(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(i),e.exit(`gfmFootnoteCallLabelMarker`),t(i))}}function aL(e,t){let n=e.length;for(;n--;)if(e[n][1].type===`labelImage`&&e[n][0]===`enter`){e[n][1];break}e[n+1][1].type=`data`,e[n+3][1].type=`gfmFootnoteCallLabelMarker`;let r={type:`gfmFootnoteCall`,start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},i={type:`gfmFootnoteCallMarker`,start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};i.end.column++,i.end.offset++,i.end._bufferIndex++;let a={type:`gfmFootnoteCallString`,start:Object.assign({},i.end),end:Object.assign({},e[e.length-1][1].start)},o={type:`chunkString`,contentType:`string`,start:Object.assign({},a.start),end:Object.assign({},a.end)},s=[e[n+1],e[n+2],[`enter`,r,t],e[n+3],e[n+4],[`enter`,i,t],[`exit`,i,t],[`enter`,a,t],[`enter`,o,t],[`exit`,o,t],[`exit`,a,t],e[e.length-2],e[e.length-1],[`exit`,r,t]];return e.splice(n,e.length-n+1,...s),e}function oL(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a=0,o;return s;function s(t){return e.enter(`gfmFootnoteCall`),e.enter(`gfmFootnoteCallLabelMarker`),e.consume(t),e.exit(`gfmFootnoteCallLabelMarker`),c}function c(t){return t===94?(e.enter(`gfmFootnoteCallMarker`),e.consume(t),e.exit(`gfmFootnoteCallMarker`),e.enter(`gfmFootnoteCallString`),e.enter(`chunkString`).contentType=`string`,l):n(t)}function l(s){if(a>999||s===93&&!o||s===null||s===91||Hk(s))return n(s);if(s===93){e.exit(`chunkString`);let a=e.exit(`gfmFootnoteCallString`);return i.includes(Nk(r.sliceSerialize(a)))?(e.enter(`gfmFootnoteCallLabelMarker`),e.consume(s),e.exit(`gfmFootnoteCallLabelMarker`),e.exit(`gfmFootnoteCall`),t):n(s)}return Hk(s)||(o=!0),a++,e.consume(s),s===92?u:l}function u(t){return t===91||t===92||t===93?(e.consume(t),a++,l):l(t)}}function sL(e,t,n){let r=this,i=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]),a,o=0,s;return c;function c(t){return e.enter(`gfmFootnoteDefinition`)._container=!0,e.enter(`gfmFootnoteDefinitionLabel`),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),l}function l(t){return t===94?(e.enter(`gfmFootnoteDefinitionMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionMarker`),e.enter(`gfmFootnoteDefinitionLabelString`),e.enter(`chunkString`).contentType=`string`,u):n(t)}function u(t){if(o>999||t===93&&!s||t===null||t===91||Hk(t))return n(t);if(t===93){e.exit(`chunkString`);let n=e.exit(`gfmFootnoteDefinitionLabelString`);return a=Nk(r.sliceSerialize(n)),e.enter(`gfmFootnoteDefinitionLabelMarker`),e.consume(t),e.exit(`gfmFootnoteDefinitionLabelMarker`),e.exit(`gfmFootnoteDefinitionLabel`),f}return Hk(t)||(s=!0),o++,e.consume(t),t===92?d:u}function d(t){return t===91||t===92||t===93?(e.consume(t),o++,u):u(t)}function f(t){return t===58?(e.enter(`definitionMarker`),e.consume(t),e.exit(`definitionMarker`),i.includes(a)||i.push(a),Jk(e,p,`gfmFootnoteDefinitionWhitespace`)):n(t)}function p(e){return t(e)}}function cL(e,t,n){return e.check(lA,t,e.attempt(nL,t,n))}function lL(e){e.exit(`gfmFootnoteDefinition`)}function uL(e,t,n){let r=this;return Jk(e,i,`gfmFootnoteDefinitionIndent`,5);function i(e){let i=r.events[r.events.length-1];return i&&i[1].type===`gfmFootnoteDefinitionIndent`&&i[2].sliceSerialize(i[1],!0).length===4?t(e):n(e)}}function dL(e){let t=(e||{}).singleTilde,n={name:`strikethrough`,tokenize:i,resolveAll:r};return t??=!0,{text:{126:n},insideSpan:{null:[n]},attentionMarkers:{null:[126]}};function r(e,t){let n=-1;for(;++n<e.length;)if(e[n][0]===`enter`&&e[n][1].type===`strikethroughSequenceTemporary`&&e[n][1]._close){let r=n;for(;r--;)if(e[r][0]===`exit`&&e[r][1].type===`strikethroughSequenceTemporary`&&e[r][1]._open&&e[n][1].end.offset-e[n][1].start.offset===e[r][1].end.offset-e[r][1].start.offset){e[n][1].type=`strikethroughSequence`,e[r][1].type=`strikethroughSequence`;let i={type:`strikethrough`,start:Object.assign({},e[r][1].start),end:Object.assign({},e[n][1].end)},a={type:`strikethroughText`,start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},o=[[`enter`,i,t],[`enter`,e[r][1],t],[`exit`,e[r][1],t],[`enter`,a,t]],s=t.parser.constructs.insideSpan.null;s&&Ek(o,o.length,0,nA(s,e.slice(r+1,n),t)),Ek(o,o.length,0,[[`exit`,a,t],[`enter`,e[n][1],t],[`exit`,e[n][1],t],[`exit`,i,t]]),Ek(e,r-1,n-r+3,o),n=r+o.length-2;break}}for(n=-1;++n<e.length;)e[n][1].type===`strikethroughSequenceTemporary`&&(e[n][1].type=`data`);return e}function i(e,n,r){let i=this.previous,a=this.events,o=0;return s;function s(t){return i===126&&a[a.length-1][1].type!==`characterEscape`?r(t):(e.enter(`strikethroughSequenceTemporary`),c(t))}function c(a){let s=tA(i);if(a===126)return o>1?r(a):(e.consume(a),o++,c);if(o<2&&!t)return r(a);let l=e.exit(`strikethroughSequenceTemporary`),u=tA(a);return l._open=!u||u===2&&!!s,l._close=!s||s===2&&!!u,n(a)}}}var fL=class{constructor(){this.map=[]}add(e,t,n){pL(this,e,t,n)}consume(e){if(this.map.sort(function(e,t){return e[0]-t[0]}),this.map.length===0)return;let t=this.map.length,n=[];for(;t>0;)--t,n.push(e.slice(this.map[t][0]+this.map[t][1]),this.map[t][2]),e.length=this.map[t][0];n.push(e.slice()),e.length=0;let r=n.pop();for(;r;){for(let t of r)e.push(t);r=n.pop()}this.map.length=0}};function pL(e,t,n,r){let i=0;if(n!==0||r.length!==0){for(;i<e.map.length;){if(e.map[i][0]===t){e.map[i][1]+=n,e.map[i][2].push(...r);return}i+=1}e.map.push([t,n,r])}}function mL(e,t){let n=!1,r=[];for(;t<e.length;){let i=e[t];if(n){if(i[0]===`enter`)i[1].type===`tableContent`&&r.push(e[t+1][1].type===`tableDelimiterMarker`?`left`:`none`);else if(i[1].type===`tableContent`){if(e[t-1][1].type===`tableDelimiterMarker`){let e=r.length-1;r[e]=r[e]===`left`?`center`:`right`}}else if(i[1].type===`tableDelimiterRow`)break}else i[0]===`enter`&&i[1].type===`tableDelimiterRow`&&(n=!0);t+=1}return r}function hL(){return{flow:{null:{name:`table`,tokenize:gL,resolveAll:_L}}}}function gL(e,t,n){let r=this,i=0,a=0,o;return s;function s(e){let t=r.events.length-1;for(;t>-1;){let e=r.events[t][1].type;if(e===`lineEnding`||e===`linePrefix`)t--;else break}let i=t>-1?r.events[t][1].type:null,a=i===`tableHead`||i===`tableRow`?S:c;return a===S&&r.parser.lazy[r.now().line]?n(e):a(e)}function c(t){return e.enter(`tableHead`),e.enter(`tableRow`),l(t)}function l(e){return e===124?u(e):(o=!0,a+=1,u(e))}function u(t){return t===null?n(t):Vk(t)?a>1?(a=0,r.interrupt=!0,e.exit(`tableRow`),e.enter(`lineEnding`),e.consume(t),e.exit(`lineEnding`),p):n(t):Uk(t)?Jk(e,u,`whitespace`)(t):(a+=1,o&&(o=!1,i+=1),t===124?(e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),o=!0,u):(e.enter(`data`),d(t)))}function d(t){return t===null||t===124||Hk(t)?(e.exit(`data`),u(t)):(e.consume(t),t===92?f:d)}function f(t){return t===92||t===124?(e.consume(t),d):d(t)}function p(t){return r.interrupt=!1,r.parser.lazy[r.now().line]?n(t):(e.enter(`tableDelimiterRow`),o=!1,Uk(t)?Jk(e,m,`linePrefix`,r.parser.constructs.disable.null.includes(`codeIndented`)?void 0:4)(t):m(t))}function m(t){return t===45||t===58?g(t):t===124?(o=!0,e.enter(`tableCellDivider`),e.consume(t),e.exit(`tableCellDivider`),h):x(t)}function h(t){return Uk(t)?Jk(e,g,`whitespace`)(t):g(t)}function g(t){return t===58?(a+=1,o=!0,e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),_):t===45?(a+=1,_(t)):t===null||Vk(t)?b(t):x(t)}function _(t){return t===45?(e.enter(`tableDelimiterFiller`),v(t)):x(t)}function v(t){return t===45?(e.consume(t),v):t===58?(o=!0,e.exit(`tableDelimiterFiller`),e.enter(`tableDelimiterMarker`),e.consume(t),e.exit(`tableDelimiterMarker`),y):(e.exit(`tableDelimiterFiller`),y(t))}function y(t){return Uk(t)?Jk(e,b,`whitespace`)(t):b(t)}function b(n){return n===124?m(n):n===null||Vk(n)?!o||i!==a?x(n):(e.exit(`tableDelimiterRow`),e.exit(`tableHead`),t(n)):x(n)}function x(e){return n(e)}function S(t){return e.enter(`tableRow`),C(t)}function C(n){return n===124?(e.enter(`tableCellDivider`),e.consume(n),e.exit(`tableCellDivider`),C):n===null||Vk(n)?(e.exit(`tableRow`),t(n)):Uk(n)?Jk(e,C,`whitespace`)(n):(e.enter(`data`),w(n))}function w(t){return t===null||t===124||Hk(t)?(e.exit(`data`),C(t)):(e.consume(t),t===92?T:w)}function T(t){return t===92||t===124?(e.consume(t),w):w(t)}}function _L(e,t){let n=-1,r=!0,i=0,a=[0,0,0,0],o=[0,0,0,0],s=!1,c=0,l,u,d,f=new fL;for(;++n<e.length;){let p=e[n],m=p[1];p[0]===`enter`?m.type===`tableHead`?(s=!1,c!==0&&(yL(f,t,c,l,u),u=void 0,c=0),l={type:`table`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,l,t]])):m.type===`tableRow`||m.type===`tableDelimiterRow`?(r=!0,d=void 0,a=[0,0,0,0],o=[0,n+1,0,0],s&&(s=!1,u={type:`tableBody`,start:Object.assign({},m.start),end:Object.assign({},m.end)},f.add(n,0,[[`enter`,u,t]])),i=m.type===`tableDelimiterRow`?2:u?3:1):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)?(r=!1,o[2]===0&&(a[1]!==0&&(o[0]=o[1],d=vL(f,t,a,i,void 0,d),a=[0,0,0,0]),o[2]=n)):m.type===`tableCellDivider`&&(r?r=!1:(a[1]!==0&&(o[0]=o[1],d=vL(f,t,a,i,void 0,d)),a=o,o=[a[1],n,0,0])):m.type===`tableHead`?(s=!0,c=n):m.type===`tableRow`||m.type===`tableDelimiterRow`?(c=n,a[1]===0?o[1]!==0&&(d=vL(f,t,o,i,n,d)):(o[0]=o[1],d=vL(f,t,a,i,n,d)),i=0):i&&(m.type===`data`||m.type===`tableDelimiterMarker`||m.type===`tableDelimiterFiller`)&&(o[3]=n)}for(c!==0&&yL(f,t,c,l,u),f.consume(t.events),n=-1;++n<t.events.length;){let e=t.events[n];e[0]===`enter`&&e[1].type===`table`&&(e[1]._align=mL(t.events,n))}return e}function vL(e,t,n,r,i,a){let o=r===1?`tableHeader`:r===2?`tableDelimiter`:`tableData`;n[0]!==0&&(a.end=Object.assign({},bL(t.events,n[0])),e.add(n[0],0,[[`exit`,a,t]]));let s=bL(t.events,n[1]);if(a={type:o,start:Object.assign({},s),end:Object.assign({},s)},e.add(n[1],0,[[`enter`,a,t]]),n[2]!==0){let i=bL(t.events,n[2]),a=bL(t.events,n[3]),o={type:`tableContent`,start:Object.assign({},i),end:Object.assign({},a)};if(e.add(n[2],0,[[`enter`,o,t]]),r!==2){let r=t.events[n[2]],i=t.events[n[3]];if(r[1].end=Object.assign({},i[1].end),r[1].type=`chunkText`,r[1].contentType=`text`,n[3]>n[2]+1){let t=n[2]+1,r=n[3]-n[2]-1;e.add(t,r,[])}}e.add(n[3]+1,0,[[`exit`,o,t]])}return i!==void 0&&(a.end=Object.assign({},bL(t.events,i)),e.add(i,0,[[`exit`,a,t]]),a=void 0),a}function yL(e,t,n,r,i){let a=[],o=bL(t.events,n);i&&(i.end=Object.assign({},o),a.push([`exit`,i,t])),r.end=Object.assign({},o),a.push([`exit`,r,t]),e.add(n+1,0,a)}function bL(e,t){let n=e[t],r=n[0]===`enter`?`start`:`end`;return n[1][r]}var xL={name:`tasklistCheck`,tokenize:CL};function SL(){return{text:{91:xL}}}function CL(e,t,n){let r=this;return i;function i(t){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?n(t):(e.enter(`taskListCheck`),e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),a)}function a(t){return Hk(t)?(e.enter(`taskListCheckValueUnchecked`),e.consume(t),e.exit(`taskListCheckValueUnchecked`),o):t===88||t===120?(e.enter(`taskListCheckValueChecked`),e.consume(t),e.exit(`taskListCheckValueChecked`),o):n(t)}function o(t){return t===93?(e.enter(`taskListCheckMarker`),e.consume(t),e.exit(`taskListCheckMarker`),e.exit(`taskListCheck`),s):n(t)}function s(r){return Vk(r)?t(r):Uk(r)?e.check({tokenize:wL},t,n)(r):n(r)}}function wL(e,t,n){return Jk(e,r,`whitespace`);function r(e){return e===null?n(e):t(e)}}function TL(e){return kk([VI(),rL(),dL(e),hL(),SL()])}var EL={};function DL(e){let t=this,n=e||EL,r=t.data(),i=r.micromarkExtensions||=[],a=r.fromMarkdownExtensions||=[],o=r.toMarkdownExtensions||=[];i.push(TL(n)),a.push(AI()),o.push(jI(n))}function OL(e){let t=e.match(/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/);return t?{frontmatter:t[1].trim(),markdown:e.slice(t[0].length)}:{frontmatter:``,markdown:e}}function kL({content:e}){let{frontmatter:t,markdown:n}=OL(e);return(0,G.jsxs)(`div`,{className:`markdown-preview-shell`,children:[t&&(0,G.jsxs)(`details`,{className:`markdown-frontmatter`,children:[(0,G.jsx)(`summary`,{children:`文档元数据`}),(0,G.jsx)(Db,{code:t,language:`yaml`,filename:`frontmatter.yaml`,showLineNumbers:!1,wrap:!0})]}),(0,G.jsx)(`article`,{className:`markdown-preview`,children:(0,G.jsx)(CP,{remarkPlugins:[DL],components:{pre:({children:e})=>(0,G.jsx)(G.Fragment,{children:e}),code:({className:e,children:t,...n})=>{let r=/language-([\w-]+)/.exec(e||``)?.[1];return r?(0,G.jsx)(Db,{code:String(t).replace(/\n$/,``),language:r,showLineNumbers:!1}):(0,G.jsx)(`code`,{className:e,...n,children:t})},table:({children:e,...t})=>(0,G.jsx)(`div`,{className:`markdown-table-scroll`,children:(0,G.jsx)(`table`,{...t,children:e})}),a:({children:e,...t})=>(0,G.jsx)(`a`,{...t,target:`_blank`,rel:`noreferrer noopener`,children:e})},children:n})})]})}function AL(e){let t=Number(e||0);return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KiB`:`${(t/1024/1024).toFixed(1)} MiB`}async function jL(e,t){let n=await e.text().catch(()=>``);try{return JSON.parse(n)?.error?.message||`${t}(${e.status})`}catch{return`${t}(${e.status})`}}function ML(e){return{bash:`bash`,c:`c`,cpp:`cpp`,css:`css`,go:`go`,h:`c`,html:`markup`,java:`java`,js:`javascript`,json:`json`,jsx:`jsx`,md:`markdown`,mjs:`javascript`,py:`python`,rs:`rust`,sh:`bash`,toml:`toml`,ts:`typescript`,tsx:`tsx`,xml:`markup`,yaml:`yaml`,yml:`yaml`}[e.split(`.`).pop()?.toLowerCase()||``]||`text`}function NL(e){let t={name:``,path:``,directory:!0,children:[]};for(let n of e){let e=n.path.split(`/`).filter(Boolean),r=t;e.forEach((t,i)=>{let a=e.slice(0,i+1).join(`/`),o=i<e.length-1,s=r.children.find(e=>e.name===t&&e.directory===o);s||(s={name:t,path:a,directory:o,file:o?void 0:n,children:[]},r.children.push(s)),r=s})}let n=e=>{e.sort((e,t)=>Number(t.directory)-Number(e.directory)||e.name.localeCompare(t.name)),e.forEach(e=>n(e.children))};return n(t.children),t.children}function PL({files:e,selected:t,onSelect:n}){let r=(0,s.useMemo)(()=>NL(e),[e]),[i,a]=(0,s.useState)(new Set),o=(e,r=0)=>e.map(e=>{let s={"--skill-depth":r};if(e.directory){let t=i.has(e.path);return(0,G.jsxs)(`div`,{role:`none`,children:[(0,G.jsxs)(`button`,{className:`skill-tree-row directory`,type:`button`,role:`treeitem`,style:s,"aria-expanded":!t,onClick:()=>a(t=>{let n=new Set(t);return n.has(e.path)?n.delete(e.path):n.add(e.path),n}),children:[t?(0,G.jsx)(te,{size:13}):(0,G.jsx)(H,{size:13}),(0,G.jsx)(Te,{size:14}),(0,G.jsx)(`span`,{title:e.name,children:e.name})]}),!t&&(0,G.jsx)(`div`,{role:`group`,children:o(e.children,r+1)})]},`dir:${e.path}`)}let c=e.file?.kind===`script`?Se:Ce;return(0,G.jsxs)(`button`,{className:`skill-tree-row file${t===e.path?` active`:``}`,type:`button`,role:`treeitem`,"aria-selected":t===e.path,style:s,onClick:()=>n(e.path),children:[(0,G.jsx)(`span`,{className:`skill-tree-spacer`}),(0,G.jsx)(c,{size:14}),(0,G.jsx)(`span`,{title:e.path,children:e.name})]},`file:${e.path}`)});return(0,G.jsx)(`div`,{className:`skill-file-tree`,role:`tree`,"aria-label":`Skill 文件树`,children:o(r)})}function FL({title:e,endpoint:t,onClose:n}){let[r,i]=(0,s.useState)([]),[a,o]=(0,s.useState)(``),[c,l]=(0,s.useState)(null),[u,d]=(0,s.useState)(!0),[f,p]=(0,s.useState)(!1),[m,h]=(0,s.useState)(``),[_,v]=(0,s.useState)(``),y=(0,s.useRef)(0);return(0,s.useEffect)(()=>{let e=new AbortController;return d(!0),h(``),i([]),o(``),l(null),g(t,{signal:e.signal}).then(async e=>{if(!e.ok)throw Error(await jL(e,`Skill 文件读取失败`));return e.json()}).then(e=>{let t=e.files||[];i(t),o(t.find(e=>e.path===`SKILL.md`)?.path||t[0]?.path||``)}).catch(e=>{e?.name!==`AbortError`&&h(e.message||`Skill 文件读取失败`)}).finally(()=>{e.signal.aborted||d(!1)}),()=>e.abort()},[t]),(0,s.useEffect)(()=>{if(!a){l(null),p(!1);return}let e=new AbortController,n=++y.current;return l(null),p(!0),v(``),g(`${t}?${new URLSearchParams({path:a})}`,{signal:e.signal}).then(async e=>{if(!e.ok)throw Error(await jL(e,`Skill 文件读取失败`));return e.json()}).then(e=>{y.current===n&&l(e)}).catch(e=>{e?.name!==`AbortError`&&y.current===n&&v(e.message||`Skill 文件读取失败`)}).finally(()=>{!e.signal.aborted&&y.current===n&&p(!1)}),()=>e.abort()},[t,a]),(0,G.jsx)(BD,{title:`${e} · 文件`,subtitle:`${r.length} 个文件;只读预览,不会执行脚本。`,wide:!0,onClose:n,children:(0,G.jsxs)(`div`,{className:`skill-preview-layout`,children:[(0,G.jsxs)(`aside`,{className:`skill-preview-sidebar`,children:[u&&(0,G.jsx)(`div`,{className:`skill-file-state`,children:`正在读取目录…`}),!u&&m&&(0,G.jsx)(VD,{kind:`error`,title:`无法读取 Skill 文件`,message:m}),!u&&!m&&r.length===0&&(0,G.jsx)(`div`,{className:`skill-file-state`,children:`Skill 中没有可预览的文件。`}),!u&&!m&&r.length>0&&(0,G.jsx)(PL,{files:r,selected:a,onSelect:o})]}),(0,G.jsxs)(`section`,{className:`skill-preview-pane`,"aria-live":`polite`,children:[(c||a)&&(0,G.jsxs)(`header`,{className:`skill-preview-header`,children:[(0,G.jsx)(`strong`,{title:c?.path||a,children:c?.path||a}),c&&(0,G.jsxs)(`span`,{children:[c.kind,` · `,AL(c.size||0)]})]}),(0,G.jsxs)(`div`,{className:`skill-preview-content`,children:[f&&(0,G.jsx)(`div`,{className:`skill-file-state`,children:`正在读取文件…`}),!f&&_&&(0,G.jsx)(VD,{kind:`error`,title:`无法预览文件`,message:_}),!f&&!_&&c?.kind===`markdown`&&(0,G.jsx)(kL,{content:c.content||``}),!f&&!_&&[`script`,`text`].includes(c?.kind||``)&&(0,G.jsx)(Db,{code:c?.content||``,language:ML(c?.path||a),filename:c?.path||a,showLineNumbers:!0}),!f&&!_&&c?.kind===`binary`&&(0,G.jsx)(`div`,{className:`skill-file-state`,children:`二进制文件不提供内容预览。`}),!f&&!_&&!c&&!a&&(0,G.jsx)(`div`,{className:`skill-file-state`,children:`选择一个文件查看内容。`})]}),c?.truncated&&(0,G.jsx)(`div`,{className:`skill-preview-truncated`,children:`文件较大,仅显示前 512 KiB。`})]})]})})}var IL=new Map([[`avif`,`image/avif`],[`bmp`,`image/bmp`],[`css`,`text/css`],[`csv`,`text/csv`],[`doc`,`application/msword`],[`docx`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`],[`gif`,`image/gif`],[`gz`,`application/gzip`],[`htm`,`text/html`],[`html`,`text/html`],[`ico`,`image/x-icon`],[`jpeg`,`image/jpeg`],[`jpg`,`image/jpeg`],[`js`,`application/javascript`],[`json`,`application/json`],[`md`,`text/markdown`],[`mjs`,`application/javascript`],[`mp3`,`audio/mpeg`],[`mp4`,`video/mp4`],[`ogg`,`audio/ogg`],[`pdf`,`application/pdf`],[`png`,`image/png`],[`ppt`,`application/powerpoint`],[`pptx`,`application/vnd.openxmlformats-officedocument.presentationml.presentation`],[`svg`,`image/svg+xml`],[`tif`,`image/tiff`],[`tiff`,`image/tiff`],[`txt`,`text/plain`],[`wasm`,`application/wasm`],[`wav`,`audio/x-wav`],[`weba`,`audio/webm`],[`webm`,`video/webm`],[`webp`,`image/webp`],[`xls`,`application/vnd.ms-excel`],[`xlsx`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`],[`xml`,`application/xml`],[`zip`,`application/zip`]]),LL=class extends Error{constructor(e){super(`DataTransferItem is not a file`),this.item=e,this.name=`UnexpectedObjectError`}};function RL(e,t,n){let r=e,{webkitRelativePath:i}=e,a=typeof t==`string`?t:typeof i==`string`&&i.length>0?i:`./${e.name}`;return typeof r.path!=`string`&&BL(r,`path`,a),n!==void 0&&Object.defineProperty(r,"handle",{value:n,writable:!1,configurable:!1,enumerable:!0}),BL(r,`relativePath`,a),r}function zL(e,t=IL){let{name:n}=e;if(n&&n.lastIndexOf(`.`)!==-1&&!e.type){let r=n.split(`.`).pop().toLowerCase(),i=t.get(r);i&&Object.defineProperty(e,"type",{value:i,writable:!1,configurable:!1,enumerable:!0})}return e}function BL(e,t,n){Object.defineProperty(e,t,{value:n,writable:!1,configurable:!1,enumerable:!0})}var VL=[`.DS_Store`,`Thumbs.db`];async function HL(e,{mimeTypes:t=IL}={}){return(await UL(e)).map(e=>e instanceof File?zL(e,t):e)}async function UL(e){return qL(e)&&WL(e.dataTransfer)?XL(e.dataTransfer,e.type):GL(e)?ZL(e.clipboardData):KL(e)?JL(e):Array.isArray(e)&&e.every(e=>`getFile`in e&&typeof e.getFile==`function`)?YL(e):[]}function WL(e){return qL(e)}function GL(e){return qL(e)&&WL(e.clipboardData)}function KL(e){return qL(e)&&qL(e.target)}function qL(e){return typeof e==`object`&&!!e}function JL(e){return $L(e.target.files).map(e=>RL(e))}async function YL(e){return(await Promise.all(e.map(e=>e.getFile()))).map(e=>RL(e))}async function XL(e,t){let n=$L(e.items).filter(e=>e.kind===`file`);return t===`drop`?QL(tR(await Promise.all(n.map(eR)))):n}function ZL(e){let t=$L(e.items).filter(e=>e.kind===`file`).map(e=>e.getAsFile()).filter(e=>e!==null);return QL((t.length>0?t:$L(e.files)).map(e=>RL(e)))}function QL(e){return e.filter(e=>VL.indexOf(e.name)===-1)}function $L(e){return e===null?[]:Array.from(e)}async function eR(e){if(typeof e.webkitGetAsEntry!=`function`)return nR(e);let t=e.webkitGetAsEntry();if(t?.isDirectory){let n=await rR(e);return n?.kind===`directory`?iR(n,`/${n.name}`):oR(t)}return nR(e,t)}function tR(e){let t=[];for(let n of e)Array.isArray(n)?t.push(...tR(n)):t.push(n);return t}async function nR(e,t){let n=e.getAsFile(),r=await rR(e);if(r!=null){let e=n??await r.getFile();return e.handle=r,RL(e)}if(!n)throw new LL(e);return RL(n,t?.fullPath??void 0)}async function rR(e){if(globalThis.isSecureContext&&typeof e.getAsFileSystemHandle==`function`)return e.getAsFileSystemHandle()}async function iR(e,t){let n=[];for await(let r of e.values()){let e=`${t}/${r.name}`;if(r.kind===`directory`)n.push(...await iR(r,e));else{let t=await r.getFile();n.push(RL(t,e,r))}}return n}async function aR(e){return e.isDirectory?oR(e):sR(e)}function oR(e){let t=e.createReader();return new Promise((e,n)=>{let r=[];function i(){t.readEntries(async t=>{if(t.length){let e=Promise.all(t.map(aR));r.push(e),i()}else try{e(await Promise.all(r))}catch(e){n(e)}},e=>{n(e)})}i()})}async function sR(e){return new Promise((t,n)=>{e.file(n=>{t(RL(n,e.fullPath))},e=>{n(e)})})}var cR=t(n((e=>{e.__esModule=!0,e.default=function(e,t){if(e&&t){var n=Array.isArray(t)?t:t.split(`,`);if(n.length===0)return!0;var r=e.name||``,i=(e.type||``).toLowerCase(),a=i.replace(/\/.*$/,``);return n.some(function(e){var t=e.trim().toLowerCase();return t.charAt(0)===`.`?r.toLowerCase().endsWith(t):t.endsWith(`/*`)?a===t.replace(/\/.*$/,``):i===t})}return!0}}))(),1),lR=typeof cR.default==`function`?cR.default:cR.default.default,uR=`file-invalid-type`,dR=`file-too-large`,fR=`file-too-small`,pR=`too-many-files`;function mR(e=``){let t=e.split(`,`);return{code:uR,message:`File type must be ${t.length>1?`one of ${t.join(`, `)}`:t[0]}`}}var hR=[`KB`,`MB`,`GB`,`TB`,`PB`];function gR(e){if(e<1024)return`${e} ${e===1?`byte`:`bytes`}`;let t=e/1024,n=0;for(;t>=1024&&n<hR.length-1;)t/=1024,n++;return`${Number(t.toFixed(2))} ${hR[n]}`}function _R(e){return{code:dR,message:`File is larger than ${gR(e)}`}}function vR(e){return{code:fR,message:`File is smaller than ${gR(e)}`}}var yR={code:pR,message:`Too many files`};function bR(e){return e.type===``&&typeof e.getAsFile==`function`}function xR(e,t){let n=e.type===`application/x-moz-file`||lR(e,t??``)||bR(e);return[n,n?null:mR(t)]}function SR(e,t,n){if(CR(e.size)){if(CR(t)&&CR(n)){if(e.size>n)return[!1,_R(n)];if(e.size<t)return[!1,vR(t)]}else if(CR(t)&&e.size<t)return[!1,vR(t)];else if(CR(n)&&e.size>n)return[!1,_R(n)]}return[!0,null]}function CR(e){return e!=null}function wR(e){return e!=null&&typeof e.then==`function`}function TR({files:e,accept:t,minSize:n,maxSize:r,multiple:i,maxFiles:a=0,validator:o,getErrorMessage:s}){let c=[],l=[],u=(e,t)=>s&&typeof File<`u`&&t instanceof File?{...e,message:s(e,t)}:e;e.forEach(e=>{let[i,a]=xR(e,t),[o,s]=SR(e,n,r);i&&o?c.push(e):l.push({file:e,errors:[a,s].filter(e=>e!=null).map(t=>u(t,e))})});let d=i?a>=1?a:1/0:1;return c.length>d&&c.slice(d).forEach(e=>{l.push({file:e,errors:[u(yR,e)]})}),l.length>0?{verdict:`reject`,rejections:l}:{verdict:o?`unknown`:`accept`,rejections:l}}function ER(e){return typeof e.isPropagationStopped==`function`?e.isPropagationStopped():e.cancelBubble!==void 0&&e.cancelBubble}function DR(e){let t=e.dataTransfer??e.clipboardData;return t?Array.prototype.some.call(t.types,e=>e===`Files`||e===`application/x-moz-file`)||Array.prototype.some.call(t.items??[],OR):!!e.target&&!!e.target.files}function OR(e){return typeof e==`object`&&!!e&&e.kind===`file`}function kR(e){e.preventDefault()}function AR(e){return e.indexOf(`MSIE`)!==-1||e.indexOf(`Trident/`)!==-1}function jR(e){return e.indexOf(`Edge/`)!==-1}function MR(e=window.navigator.userAgent){return AR(e)||jR(e)}function NR(...e){return(t,...n)=>e.some(e=>(!ER(t)&&e&&e(t,...n),ER(t)))}function PR(){return`showOpenFilePicker`in window}function FR(e){return Array.isArray(e)?e:typeof e==`string`?[e]:[]}function IR(e){if(CR(e))return Array.isArray(e)?e.filter(e=>CR(e)&&CR(e.accept)):[{accept:e}]}function LR(e){let t=[],n=Object.keys(e);for(let n of Object.values(e))for(let e of FR(n))t.includes(e)||t.push(e);return t.length>0?t.join(`, `):n.length>0?n.join(`, `):`Files`}function RR(e){let t=IR(e);if(!CR(t))return;let n={};for(let e of t)for(let[t,r]of Object.entries(e.accept)){let e=n[t]??(n[t]=[]);for(let t of FR(r))e.includes(t)||e.push(t)}return n}function zR(e){let t=IR(e);if(!CR(t))return;let n=t.map(e=>{let t=Object.entries(e.accept).filter(([e,t])=>{let n=!0;return WR(e)||(console.warn(`Skipped "${e}" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.`),n=!1),(!(Array.isArray(t)||typeof t==`string`)||!FR(t).every(KR))&&(console.warn(`Skipped "${e}" because an invalid file extension was provided.`),n=!1),n}).reduce((e,[t,n])=>(e[t]=FR(n),e),{});return{description:CR(e.description)&&e.description!==``?e.description:LR(t),accept:t}}).filter(e=>Object.keys(e.accept).length>0);return n.length>0?n:void 0}function BR(e,{omitWildcardMimeTypesWithExtensions:t=!1}={}){if(CR(e))return Object.entries(e).reduce((e,[n,r])=>{let i=FR(r);return t&&GR(n)&&i.some(KR)?e.push(...i):e.push(n,...i),e},[]).filter(e=>WR(e)||KR(e)).join(`,`)}function VR(e){return e instanceof DOMException&&(e.name===`AbortError`||e.code===e.ABORT_ERR)}function HR(e){return e instanceof DOMException&&(e.name===`SecurityError`||e.code===e.SECURITY_ERR)}function UR(e){return e instanceof DOMException&&e.name===`NotAllowedError`}function WR(e){return e===`audio/*`||e===`video/*`||e===`image/*`||e===`text/*`||e===`application/*`||/\w+\/[-+.\w]+/g.test(e)}function GR(e){return e.endsWith(`/*`)}function KR(e){return/^.*\.[\w]+$/.test(e)}var qR=(0,s.forwardRef)(({children:e,...t},n)=>{let{open:r,...i}=YR(t);return(0,s.useImperativeHandle)(n,()=>({open:r}),[r]),(0,G.jsx)(G.Fragment,{children:e?.({...i,open:r})})});qR.displayName=`Dropzone`;var JR={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,isDragUnknown:!1,isDragGlobal:!1,isProcessing:!1,acceptedFiles:[],fileRejections:[],dragFileRejections:[]};function YR(e={}){let{accept:t,disabled:n=!1,getFilesFromEvent:r=HL,maxSize:i=1/0,minSize:a=0,multiple:o=!0,maxFiles:c=0,onDragEnter:l,onDragLeave:u,onDragOver:d,onDrop:f,onDropAccepted:p,onDropRejected:m,onFileDialogCancel:h,onFileDialogOpen:g,useFsAccessApi:_=!1,autoFocus:v=!1,preventDropOnDocument:y=!0,noClick:b=!1,noKeyboard:x=!1,noDrag:S=!1,noDragEventsBubbling:C=!1,noPaste:w=!1,onError:T,validator:E,getErrorMessage:D}=e,O=(0,s.useMemo)(()=>RR(t),[t]),k=(0,s.useMemo)(()=>BR(O),[O]),A=(0,s.useMemo)(()=>BR(O,{omitWildcardMimeTypesWithExtensions:!0}),[O]),j=(0,s.useMemo)(()=>zR(t),[t]),M=(0,s.useMemo)(()=>typeof g==`function`?g:ZR,[g]),N=(0,s.useMemo)(()=>typeof h==`function`?h:ZR,[h]),P=(0,s.useRef)(null),F=(0,s.useRef)(null),[I,L]=(0,s.useReducer)(XR,JR),{isFocused:R,isFileDialogActive:z}=I,B=(0,s.useRef)(z);B.current=z;let V=(0,s.useRef)(null),H=(0,s.useCallback)(()=>{V.current?.abort();let e=new AbortController;return V.current=e,L({type:`setProcessing`,isProcessing:!0}),e.signal},[]),ee=(0,s.useCallback)(e=>{e.aborted||L({type:`setProcessing`,isProcessing:!1})},[]),te=(0,s.useRef)(typeof window<`u`&&window.isSecureContext&&_&&PR()),ne=()=>{!te.current&&z&&setTimeout(()=>{if(F.current){let{files:e}=F.current;e?.length||(L({type:`closeDialog`}),N())}},300)};(0,s.useEffect)(()=>(window.addEventListener(`focus`,ne,!1),()=>{window.removeEventListener(`focus`,ne,!1)}),[F,z,N,te]);let U=(0,s.useRef)([]),re=(0,s.useRef)([]),ie=e=>{P.current&&e.target&&P.current.contains(e.target)&&e.defaultPrevented||(e.preventDefault(),U.current=[])};(0,s.useEffect)(()=>(y&&(document.addEventListener(`dragover`,kR,!1),document.addEventListener(`drop`,ie,!1)),()=>{y&&(document.removeEventListener(`dragover`,kR),document.removeEventListener(`drop`,ie))}),[P,y]),(0,s.useEffect)(()=>{let e=e=>{e.target&&(re.current=[...re.current,e.target]),DR(e)&&L({isDragGlobal:!0,type:`setDragGlobal`})},t=e=>{re.current=re.current.filter(t=>t!==e.target&&t!==null),!(re.current.length>0)&&L({isDragGlobal:!1,type:`setDragGlobal`})},n=()=>{re.current=[],L({isDragGlobal:!1,type:`setDragGlobal`})},r=()=>{re.current=[],L({isDragGlobal:!1,type:`setDragGlobal`})};return document.addEventListener(`dragenter`,e,!1),document.addEventListener(`dragleave`,t,!1),document.addEventListener(`dragend`,n,!1),document.addEventListener(`drop`,r,!1),()=>{document.removeEventListener(`dragenter`,e),document.removeEventListener(`dragleave`,t),document.removeEventListener(`dragend`,n),document.removeEventListener(`drop`,r)}},[P]),(0,s.useEffect)(()=>(!n&&v&&P.current&&P.current.focus(),()=>{}),[P,v,n]);let ae=(0,s.useCallback)(e=>{T?T(e):console.error(e)},[T]),oe=(0,s.useCallback)(e=>{e.preventDefault(),e.persist?.(),be(e),!B.current&&(U.current=[...U.current,e.target],DR(e)&&Promise.resolve(r(e)).then(t=>{if(ER(e)&&!C)return;let n=t.length>0?TR({files:t,accept:k,minSize:a,maxSize:i,multiple:o,maxFiles:c,validator:E,getErrorMessage:D}):null;L({isDragAccept:n?.verdict===`accept`,isDragReject:n?.verdict===`reject`,isDragUnknown:n?.verdict===`unknown`,isDragActive:!0,dragFileRejections:n?.rejections??[],type:`setDraggedFiles`}),l&&l(e)}).catch(e=>ae(e)))},[r,l,ae,C,k,a,i,o,c,E,D]),se=(0,s.useCallback)(e=>{if(e.preventDefault(),e.persist?.(),be(e),B.current)return!1;let t=DR(e);if(t&&e.dataTransfer)try{e.dataTransfer.dropEffect=`copy`}catch{}return t&&d&&d(e),!1},[d,C]),ce=(0,s.useCallback)(e=>{e.preventDefault(),e.persist?.(),be(e);let t=U.current.filter(e=>P.current?.contains(e)),n=t.indexOf(e.target);n!==-1&&t.splice(n,1),U.current=t,!(t.length>0)&&(L({type:`setDraggedFiles`,isDragActive:!1,isDragAccept:!1,isDragReject:!1,isDragUnknown:!1,dragFileRejections:[]}),DR(e)&&u&&u(e))},[P,u,C]),le=(0,s.useCallback)(async(e,t,n)=>{let r=(e,t)=>D?{...e,message:D(e,t)}:e,s=e=>{let n=[],i=[];e.forEach(({file:e,accepted:t,acceptError:a,sizeMatch:o,sizeError:s,customErrors:c})=>{if(t&&o&&!c)n.push(e);else{let t=[a,s];c&&(t=t.concat(c)),i.push({file:e,errors:t.filter(e=>e!=null).map(t=>r(t,e))})}});let a=o?c>=1?c:1/0:1;n.length>a&&n.splice(a).forEach(e=>{i.push({file:e,errors:[r(yR,e)]})}),L({acceptedFiles:n,fileRejections:i,type:`setFiles`}),f&&f(n,i,t),i.length>0&&m&&m(i,t),n.length>0&&p&&p(n,t)},l=e.map(e=>{let[t,n]=xR(e,A),[r,o]=SR(e,a,i);return{file:e,accepted:t,acceptError:n,sizeMatch:r,sizeError:o,customErrors:E?E(e):null}});if(!l.some(({customErrors:e})=>wR(e))){s(l);return}let u;try{u=await Promise.all(l.map(async({customErrors:e,...t})=>({...t,customErrors:await e})))}catch(e){n.aborted||(ee(n),ae(e));return}n.aborted||s(u)},[L,o,A,a,i,c,f,p,m,E,D,ae,ee]),ue=(0,s.useCallback)(e=>{if(e.preventDefault(),e.persist?.(),be(e),U.current=[],!(B.current&&e.dataTransfer)&&(L({type:`reset`}),DR(e))){let t=H();Promise.resolve(r(e)).then(n=>{if(!t.aborted){if(ER(e)&&!C){ee(t);return}return le(n,e,t)}}).catch(e=>{t.aborted||(ee(t),ae(e))})}},[r,le,ae,C,H,ee]),de=(0,s.useCallback)(e=>{if(!DR(e))return;e.preventDefault(),e.persist?.(),be(e);let t=H();Promise.resolve(r(e)).then(n=>{if(!t.aborted){if(ER(e)&&!C){ee(t);return}return le(n,e,t)}}).catch(e=>{t.aborted||(ee(t),ae(e))})},[r,le,ae,C,H,ee]),W=(0,s.useCallback)(()=>{if(te.current){L({type:`openDialog`}),M();let e={multiple:o,types:j},t;window.showOpenFilePicker(e).then(e=>(t=H(),r(e))).then(e=>{if(L({type:`closeDialog`}),!t.aborted)return le(e,null,t)}).catch(e=>{t&&ee(t),VR(e)?(N(e),L({type:`closeDialog`})):HR(e)||UR(e)?(te.current=!1,F.current?(F.current.value=``,F.current.click()):ae(Error(`Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no <input> was provided.`))):ae(e)});return}F.current&&(L({type:`openDialog`}),M(),F.current.value=``,F.current.click())},[L,M,N,_,le,ae,j,o,H,ee]),fe=(0,s.useCallback)(e=>{P.current?.isEqualNode(e.target)&&(e.key===` `||e.key===`Enter`||e.keyCode===32||e.keyCode===13)&&(e.preventDefault(),W())},[P,W]),pe=(0,s.useCallback)(()=>{L({type:`focus`})},[]),me=(0,s.useCallback)(()=>{L({type:`blur`})},[]),he=(0,s.useCallback)(()=>{b||(MR()?setTimeout(W,0):W())},[b,W]),ge=e=>n?null:e,_e=e=>x?null:ge(e),ve=e=>S?null:ge(e),ye=e=>w?null:ge(e),be=e=>{C&&e.stopPropagation()},xe=(0,s.useMemo)(()=>({refKey:e=`ref`,role:t,onKeyDown:r,onFocus:i,onBlur:a,onClick:o,onDragEnter:s,onDragOver:c,onDragLeave:l,onDrop:u,onPaste:d,...f}={})=>({onKeyDown:_e(NR(r,fe)),onFocus:_e(NR(i,pe)),onBlur:_e(NR(a,me)),onClick:ge(NR(o,he)),onDragEnter:ve(NR(s,oe)),onDragOver:ve(NR(c,se)),onDragLeave:ve(NR(l,ce)),onDrop:ve(NR(u,ue)),onPaste:ye(NR(d,de)),role:typeof t==`string`&&t!==``?t:`presentation`,[e]:P,...!n&&!x?{tabIndex:0}:{},...n?{"aria-disabled":!0}:{},...f}),[P,fe,pe,me,he,oe,se,ce,ue,de,x,S,w,n]),Se=(0,s.useCallback)(e=>{e.stopPropagation()},[]),Ce=(0,s.useMemo)(()=>({refKey:e=`ref`,onChange:t,onClick:n,...r}={})=>({accept:A,multiple:o,type:`file`,"aria-label":`file upload`,style:{border:0,display:`block`,height:0,margin:0,opacity:0,overflow:`hidden`,padding:0,width:0},onChange:ge(NR(t,ue)),onClick:ge(NR(n,Se)),tabIndex:-1,[e]:F,...r}),[F,t,o,ue,n]);return{...I,isFocused:R&&!n,getRootProps:xe,getInputProps:Ce,rootRef:P,inputRef:F,open:ge(W)}}function XR(e,t){switch(t.type){case`focus`:return{...e,isFocused:!0};case`blur`:return{...e,isFocused:!1};case`openDialog`:return{...JR,isFileDialogActive:!0};case`closeDialog`:return{...e,isFileDialogActive:!1};case`setDraggedFiles`:return{...e,isDragActive:t.isDragActive,isDragAccept:t.isDragAccept,isDragReject:t.isDragReject,isDragUnknown:t.isDragUnknown,dragFileRejections:t.dragFileRejections};case`setProcessing`:return{...e,isProcessing:t.isProcessing};case`setFiles`:return{...e,acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections,dragFileRejections:[],isProcessing:!1,isDragReject:!1,isDragUnknown:!1};case`setDragGlobal`:return{...e,isDragGlobal:t.isDragGlobal};case`reset`:return{...JR};default:return e}}function ZR(){}function QR(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(+(e<10240))} KiB`:`${(e/1048576).toFixed(1)} MiB`}function $R(e){let t=e.errors[0]?.code;return t===`file-invalid-type`?`文件类型不受支持,请重新选择。`:t===`file-too-large`?`文件超过允许大小,请重新选择。`:t===`too-many-files`?`一次只能选择一个文件。`:e.errors[0]?.message||`文件无法读取,请重新选择。`}function ez({accept:e,maxSize:t,file:n,onFile:r,onError:i,ariaLabel:a=`选择文件`,hint:o=`拖放文件到这里,或点击选择`}){let{getRootProps:s,getInputProps:c,isDragActive:l,isDragReject:u,open:d}=YR({accept:e,maxSize:t,multiple:!1,noClick:!!n,onDropAccepted:e=>{i(``),r(e[0]||null)},onDropRejected:e=>{r(null),i($R(e[0]))}});return(0,G.jsxs)(`div`,{...s({className:`studio-file-dropzone${l?` dragging`:``}${u?` rejected`:``}${n?` has-file`:``}`}),children:[(0,G.jsx)(`input`,{...c({"aria-label":a})}),n?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`studio-file-icon`,children:(0,G.jsx)(Se,{size:20})}),(0,G.jsxs)(`span`,{className:`studio-file-copy`,children:[(0,G.jsx)(`strong`,{title:n.name,children:n.name}),(0,G.jsxs)(`small`,{children:[QR(n.size),` · 已准备检查`]})]}),(0,G.jsxs)(`span`,{className:`studio-file-actions`,children:[(0,G.jsx)(`button`,{className:`icon-button tertiary`,type:`button`,"aria-label":`替换 ${n.name}`,title:`替换文件`,onClick:e=>{e.stopPropagation(),d()},children:(0,G.jsx)(et,{size:14})}),(0,G.jsx)(`button`,{className:`icon-button tertiary`,type:`button`,"aria-label":`移除 ${n.name}`,title:`移除文件`,onClick:e=>{e.stopPropagation(),r(null)},children:(0,G.jsx)(bt,{size:15})})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`studio-file-icon`,children:(0,G.jsx)(we,{size:20})}),(0,G.jsxs)(`span`,{className:`studio-file-copy`,children:[(0,G.jsx)(`strong`,{children:l?`松开即可选择`:o}),(0,G.jsx)(`small`,{children:`文件只会先做只读检查,确认后才写入 Catalog。`})]})]})]})}var tz=`def query_order(
|
|
227
|
+
order_id: str,
|
|
228
|
+
include_history: bool = False,
|
|
229
|
+
) -> dict[str, object]:
|
|
230
|
+
"""查询订单状态,并按需返回流转记录。"""
|
|
231
|
+
result: dict[str, object] = {
|
|
232
|
+
"order_id": order_id,
|
|
233
|
+
"status": "processing",
|
|
234
|
+
}
|
|
235
|
+
if include_history:
|
|
236
|
+
result["history"] = ["created", "paid"]
|
|
237
|
+
return result
|
|
238
|
+
`;function nz(){let[e,t]=(0,s.useState)(!1),n=(0,s.useId)();return(0,G.jsxs)(`section`,{className:`python-tool-example`,"aria-label":`Python Tool 编写帮助`,children:[(0,G.jsxs)(`button`,{className:`python-tool-example-trigger`,type:`button`,"aria-label":e?`收起编写示例`:`查看编写示例`,"aria-expanded":e,"aria-controls":n,onClick:()=>t(e=>!e),children:[(0,G.jsx)(M,{size:17,"aria-hidden":`true`}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`Python Tool 怎么写?`}),(0,G.jsx)(`small`,{children:`查看可复制的函数样例与约定`})]}),(0,G.jsx)(H,{className:`python-tool-example-chevron`,size:17,"aria-hidden":`true`})]}),e&&(0,G.jsxs)(`div`,{id:n,className:`python-tool-example-panel`,role:`region`,"aria-label":`Python Tool 编写示例`,children:[(0,G.jsx)(Db,{code:tz,language:`python`,filename:`tool_example.py`,wrap:!0,showLineNumbers:!0}),(0,G.jsxs)(`ul`,{className:`python-tool-example-rules`,children:[(0,G.jsx)(`li`,{children:`公开函数需定义在模块顶层,同步与异步函数均可。`}),(0,G.jsx)(`li`,{children:`建议提供类型注解和 docstring,方便生成清晰的 Tool Contract。`}),(0,G.jsx)(`li`,{children:`返回值应可 JSON 序列化;模块导入阶段不要执行有副作用的逻辑。`})]})]})]})}var rz=eE().trim().min(1,`请填写显示名称`).max(128,`显示名称不能超过 128 个字符`),iz=eE().trim().min(2,`资源标识至少填写 2 个字符`).max(128,`资源标识不能超过 128 个字符`).regex(/^[a-z][a-z0-9._-]*$/,`资源标识只能包含小写字母、数字、点、下划线和连字符`),az=eE().trim().min(1,`请填写 Python 标识`).max(128,`Python 标识不能超过 128 个字符`).regex(/^[A-Za-z_][A-Za-z0-9_]*$/,`请输入有效的 Python 标识`),oz=eE().trim().url(`请输入有效的接口地址`).max(1024,`接口地址不能超过 1024 个字符`),sz=eE().trim().max(512,`凭证引用不能超过 512 个字符`).regex(/^env:\/\/[A-Za-z_][A-Za-z0-9_]*$/,`凭证引用需使用 env://环境变量名`),cz=eE().trim().max(4096,`描述不能超过 4096 个字符`).default(``),lz=PE({name:iz,displayName:rz,model:eE().trim().min(1,`请填写模型 ID`).max(256,`模型 ID 不能超过 256 个字符`),endpointUrl:oz,credentialRef:sz,description:cz.optional(),apiKey:eE().max(16384,`API Key 不能超过 16384 个字符`).default(``),temperature:fD().min(0,`temperature 需在 0-2 之间`).max(2,`temperature 需在 0-2 之间`).default(.2),maxTokens:fD().int(`max_tokens 需为 1-131072 的整数`).min(1,`max_tokens 需为 1-131072 的整数`).max(131072,`max_tokens 需为 1-131072 的整数`).default(2048),addressMode:BE([`endpoint`,`base`]).default(`endpoint`),wireApi:BE([``,`chat`,`responses`]).default(``)}),uz=PE({displayName:rz,name:iz,transport:BE([`stdio`,`sse`,`http`,`streamable-http`]),endpointUrl:eE().trim().max(1024,`Server URL 不能超过 1024 个字符`).default(``),command:eE().trim().max(4096,`Command 不能超过 4096 个字符`).default(``),args:eE().trim().max(8192,`Arguments 不能超过 8192 个字符`).default(``),apiKeyName:IE([HE(``),eE().trim().regex(/^[A-Za-z_][A-Za-z0-9_]*$/,`环境变量名需为合法标识符`)]).default(``),apiKeyValue:eE().max(16384,`API Key 不能超过 16384 个字符`).default(``),description:cz}).superRefine((e,t)=>{if(e.transport===`stdio`){e.command||t.addIssue({code:`custom`,path:[`command`],message:`请填写 Command`});return}if(!e.endpointUrl){t.addIssue({code:`custom`,path:[`endpointUrl`],message:`请填写 Server URL`});return}oE().safeParse(e.endpointUrl).success||t.addIssue({code:`custom`,path:[`endpointUrl`],message:`请输入有效的 Server URL`})}),dz=PE({displayName:rz,name:az,callableName:az,description:eE().trim().max(1024,`描述不能超过 1024 个字符`).default(``),sourceMode:BE([`upload`,`workspace`]).default(`upload`),sourcePath:eE().trim().max(4096,`工作区路径不能超过 4096 个字符`).default(``)}).superRefine((e,t)=>{e.sourceMode===`workspace`&&!e.sourcePath&&t.addIssue({code:`custom`,path:[`sourcePath`],message:`请填写工作区 Python 文件`})}),fz=PE({value:eE().max(16384,`API Key 不能超过 16384 个字符`)}),pz=PE({sandbox:BE([`read-only`,`read_only`,`workspace-write`,`workspace-write-auto`,`full-access`]),buildAfterCreate:EE(),codexProxy:BE([`auto`,`forced`,`direct`]),cloudRegion:eE().trim().max(128,`Region 不能超过 128 个字符`).default(``),cloudBucket:eE().trim().max(128,`KS3 Bucket 不能超过 128 个字符`).default(``),cloudAccessKey:eE().trim().max(256,`Access Key 不能超过 256 个字符`).default(``),cloudSecretKey:eE().trim().max(256,`Secret Key 不能超过 256 个字符`).default(``),cloudAccountId:eE().trim().max(128,`Account ID 不能超过 128 个字符`).default(``)});function mz(e){return e.status===`ready`||e.status===`conflict`}function hz(e){return new Set(e.filter(mz).map(e=>e.candidateId))}async function gz({candidates:e,selectedIds:t,overwriteIds:n,commit:r,onResult:i}){let a=e.filter(e=>t.has(e.candidateId)&&mz(e)),o=[];for(let e of a){let t;try{let i=await r(e,n.has(e.candidateId));t={candidateId:e.candidateId,status:`succeeded`,value:i}}catch(n){t={candidateId:e.candidateId,status:`failed`,error:n instanceof Error?n.message:String(n)}}o.push(t),i?.(t,o.length,a.length)}return{results:o,succeededIds:o.filter(e=>e.status===`succeeded`).map(e=>e.candidateId),failedIds:o.filter(e=>e.status===`failed`).map(e=>e.candidateId)}}var _z={model:{title:`模型`,description:`管理模型端点和凭据引用。`,addLabel:`配置模型`,headings:[`发现来源`,`上下文窗口`,`输入模态`],icon:ge},tool:{title:`Tool`,description:`管理结构化 Tool Contract、权限和审批策略。`,addLabel:`添加 Python Tool`,headings:[`来源`,`Tool 分组`,`权限 / 边界`],icon:yt},mcp:{title:`MCP`,description:`连接、探测并复用 MCP Server。`,addLabel:`添加资源`,headings:[`来源`,`版本`,`说明`],icon:Ve},skill:{title:`Skill`,description:`安装版本化 Skill,并在构建时锁定内容摘要。`,addLabel:`发现 Skill`,headings:[`来源`,`版本`,`说明`],icon:ct}},vz={provider:`模型服务`,builtin:`ksadk 内置`,local:`工作区自定义`,market:`市场`},yz=20;async function bz(e,t){let n=await e.text().catch(()=>``);try{return JSON.parse(n)?.error?.message||`${t}(${e.status})`}catch{return`${t}(${e.status})`}}function xz(e){return e.requiredSecretRefs?.[0]||e.contract?.credentialRef||``}function Sz(e){return e.replace(/^env:\/\//,``)}function Cz(e){let t=Number(e||0);return t<1024?`${t} B`:t<1048576?`${(t/1024).toFixed(1)} KiB`:`${(t/1024/1024).toFixed(1)} MiB`}function wz({kind:e,onKindChange:t,refreshTick:n}){let[r,i]=(0,s.useState)([]),[a,o]=(0,s.useState)(``),c=(0,s.useDeferredValue)(a),[l,u]=(0,s.useState)(``),[d,f]=(0,s.useState)(``),[p,m]=(0,s.useState)(`default`),[h,_]=(0,s.useState)(yz),[v,y]=(0,s.useState)(0),[b,x]=(0,s.useState)([null]),[S,C]=(0,s.useState)(null),[w,T]=(0,s.useState)(0),[E,D]=(0,s.useState)(!0),[O,k]=(0,s.useState)(``),[A,j]=(0,s.useState)(null),[M,N]=(0,s.useState)(!1),[P,F]=(0,s.useState)(!1),[I,L]=(0,s.useState)(null),[R,z]=(0,s.useState)(null),[B,V]=(0,s.useState)(!1),[H,ee]=(0,s.useState)(!1),[te,ne]=(0,s.useState)(null),[U,re]=(0,s.useState)(!1),ie=(0,s.useRef)(0),ae=(0,s.useCallback)(async t=>{let n=++ie.current,r=new URLSearchParams({kind:e,limit:String(h),sort:p});c.trim()&&r.set(`query`,c.trim()),l&&r.set(`status`,l),d&&r.set(`source`,d),t&&r.set(`cursor`,t),D(!0),k(``);try{let e=await g(`/api/v1/catalog/resources?${r}`);if(!e.ok)throw Error(await bz(e,`资源加载失败`));let t=await e.json();if(ie.current!==n)return;i(t.items||[]),C(t.nextCursor||null),T(Number(t.total)||0)}catch(e){if(ie.current!==n)return;i([]),C(null),T(0),k(e instanceof Error?e.message:`资源加载失败`)}finally{ie.current===n&&D(!1)}},[c,e,h,p,d,l]),oe=(0,s.useCallback)(()=>{x([null]),y(0),ae(null)},[ae]),se=(0,s.useCallback)(()=>{ae(b[v]||null)},[b,ae,v]);(0,s.useEffect)(()=>{oe()},[n,oe]);let ce=(0,s.useCallback)(async e=>{try{let t=await g(`/api/v1/catalog/mcp-servers/${encodeURIComponent(e.resourceId)}:probe?timeoutSeconds=15`,{method:`POST`});if(!t.ok)throw Error(await bz(t,`MCP 探测失败`));let n=await t.json();se(),J(`MCP 探测完成`,`已发现 ${n.health?.toolCount||0} 个 Tool。`)}catch(e){se(),J(`MCP 探测失败`,e.message,`error`)}},[se]);async function le(){if(te){re(!0);try{let e=await g(`/api/v1/catalog/resources/${encodeURIComponent(te.resourceId)}`,{method:`DELETE`});if(!e.ok)throw Error(await bz(e,`删除失败`));if(ne(null),r.length===1&&v>0){let e=v-1;y(e),await ae(b[e]||null)}else await ae(b[v]||null);J(`资源已删除`,`${te.displayName||te.name} 已从工作区移除。`)}catch(e){J(`删除失败`,e.message,`error`)}re(!1)}}function ue(){if(e===`model`){N(!0);return}if(e===`mcp`){F(!0);return}if(e===`skill`){V(!0);return}ee(!0)}let de=_z[e],W=(0,s.useMemo)(()=>[{id:`name`,header:`名称`,minWidth:190,className:`resource-name-column`,headerClassName:`resource-name-column`,cell:e=>(0,G.jsx)(Tz,{item:e})},{id:`source`,header:de.headings[0],minWidth:120,className:`resource-source-column`,headerClassName:`resource-source-column`,cell:e=>vz[e.source]||e.source},{id:`detail`,header:de.headings[1],minWidth:110,className:`resource-detail-column`,headerClassName:`resource-detail-column`,cell:e=>(0,G.jsx)(Ez,{item:e})},{id:`capability`,header:de.headings[2],minWidth:180,className:`capability-cell resource-capability-column`,headerClassName:`resource-capability-column`,cell:e=>(0,G.jsx)(Dz,{item:e})},{id:`status`,header:`状态`,minWidth:92,className:`resource-status-column`,headerClassName:`resource-status-column`,cell:e=>(0,G.jsx)(Oz,{item:e})},{id:`actions`,header:`操作`,minWidth:108,className:`actions-column resource-actions-column`,headerClassName:`actions-column resource-actions-column`,cell:e=>(0,G.jsx)(kz,{item:e,onConfigure:()=>j(e),onView:()=>e.kind===`mcp`?L(e):z(e),onProbe:()=>ce(e),onDelete:()=>ne(e)})}],[de.headings,ce]),fe=(0,s.useCallback)(()=>{if(v<=0)return;let e=v-1;y(e),ae(b[e]||null)},[b,ae,v]),pe=(0,s.useCallback)(()=>{if(!S)return;let e=v+1;x(t=>{let n=t.slice(0,e);return n[e]=S,n}),y(e),ae(S)},[ae,S,v]);return(0,G.jsxs)(`div`,{className:`page-container resources-page`,"data-layout":`data`,"data-scroll-mode":`data`,children:[(0,G.jsx)(Sd,{children:(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:ue,children:[(0,G.jsx)(Qe,{size:15}),(0,G.jsx)(`span`,{children:de.addLabel})]})}),(0,G.jsxs)(`div`,{className:`data-page-body table-data-body`,children:[(0,G.jsx)(`div`,{className:`page-tabs`,role:`tablist`,"aria-label":`资源类型`,children:Object.keys(_z).map(n=>(0,G.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":e===n,onClick:()=>t(n),children:[_z[n].title,e===n&&(0,G.jsx)(`span`,{className:`n`,children:w})]},n))}),(0,G.jsxs)(`div`,{className:`section-toolbar`,children:[(0,G.jsxs)(`div`,{className:`search-field`,children:[(0,G.jsx)(tt,{size:14}),(0,G.jsx)(`input`,{type:`search`,placeholder:`搜索资源`,value:a,onChange:e=>o(e.target.value)})]}),(0,G.jsx)(Fh,{className:`compact-select`,ariaLabel:`筛选资源状态`,value:l||`__all__`,options:[{value:`__all__`,label:`全部状态`},{value:`ready`,label:`可用`},{value:`missing-secret`,label:`缺少凭证`},{value:`unhealthy`,label:`异常`},{value:`unresolved`,label:`未解析`}],onValueChange:e=>u(e===`__all__`?``:e)}),(0,G.jsx)(Fh,{className:`compact-select`,ariaLabel:`筛选资源来源`,value:d||`__all__`,options:[{value:`__all__`,label:`全部来源`},{value:`provider`,label:`模型服务`},{value:`builtin`,label:`ksadk 内置`},{value:`local`,label:`工作区自定义`},{value:`market`,label:`市场`}],onValueChange:e=>f(e===`__all__`?``:e)}),(0,G.jsx)(Fh,{className:`compact-select`,ariaLabel:`资源排序`,value:p,options:[{value:`default`,label:`默认排序`},{value:`displayName:asc`,label:`名称升序`},{value:`displayName:desc`,label:`名称降序`}],onValueChange:m}),(0,G.jsx)(Fh,{className:`compact-select`,ariaLabel:`每页显示数量`,value:String(h),options:[{value:`20`,label:`每页 20 条`},{value:`50`,label:`每页 50 条`},{value:`100`,label:`每页 100 条`}],onValueChange:e=>_(Number(e))})]}),(0,G.jsx)(_m,{columns:W,data:r,getRowId:e=>e.resourceId,caption:`${de.title}资源列表`,minWidth:0,loading:E,error:O,onRetry:se,empty:{icon:(0,G.jsx)(_e,{size:20}),title:`没有匹配的资源`,description:`调整筛选条件,或添加一个新的工程资源。`},pagination:{pageIndex:v,pageSize:h,total:w,hasNextPage:!!S,onPreviousPage:fe,onNextPage:pe}})]}),A&&(0,G.jsx)(Az,{model:A,onClose:()=>j(null),onChanged:oe}),M&&(0,G.jsx)(jz,{onClose:()=>N(!1),onAdded:()=>{N(!1),oe()}}),P&&(0,G.jsx)(Mz,{onClose:()=>F(!1),onConnected:()=>{F(!1),oe()}}),I&&(0,G.jsx)(Nz,{item:I,onClose:()=>L(null)}),R&&(0,G.jsx)(Pz,{item:R,onClose:()=>z(null)}),B&&(0,G.jsx)(Fz,{onClose:()=>V(!1),onCatalogChanged:oe}),H&&(0,G.jsx)(Iz,{onClose:()=>ee(!1),onAdded:()=>{ee(!1),oe()}}),te&&(0,G.jsx)(ka,{title:`确认删除资源「${te.displayName||te.name}」?`,description:`删除后已绑定该资源的 Agent 不会自动更新,需手动重新编辑。`,confirmText:`确认删除`,busy:U,onConfirm:le,onCancel:()=>ne(null)})]})}function Tz({item:e}){let t=_z[e.kind]?.icon||_e,n=e.name&&e.name!==e.displayName;return(0,G.jsxs)(`div`,{className:`agent-cell`,children:[(0,G.jsx)(`span`,{className:`capability-icon`,children:(0,G.jsx)(t,{size:15})}),(0,G.jsxs)(`div`,{className:`agent-cell-copy`,children:[(0,G.jsx)(`strong`,{children:e.displayName}),n&&(0,G.jsx)(`span`,{children:e.name})]})]})}function Ez({item:e}){if(e.kind===`model`){let t=e.contract?.metadata||{},n=Number(t.context_window_tokens||0),r=e.contract?.discovery?.contextWindow===`provider`?`服务返回`:`ksadk 默认`,i=n>=1e6?`${(n/1e6).toFixed(n%1e6?1:0)}M`:n>=1e3?`${Math.round(n/1e3)}K`:`${n||`-`}`;return(0,G.jsx)(`strong`,{title:`上下文窗口来源:${r}`,children:i})}return e.kind===`tool`?(0,G.jsx)(`span`,{className:`tag`,children:e.contract?.group||e.category||`general`}):(0,G.jsx)(`span`,{className:`mono`,children:e.version})}function Dz({item:e}){if(e.kind===`model`){let t=e.contract?.metadata?.capabilities||{},n=[`文字`];t.multimodal_input_image&&n.push(`图片`),t.multimodal_input_video&&n.push(`视频`),t.multimodal_input_file&&n.push(`文件`);let r=e.contract?.discovery?.inputModalities===`provider`?`服务返回`:`ksadk 默认`;return(0,G.jsx)(`span`,{title:`输入模态来源:${r}`,children:n.join(` + `)})}if(e.kind===`tool`){let t=e.contract?.approval===`always`?`需审批`:`无需审批`,n=e.contract?.boundary||`ksadk-runtime`;return(0,G.jsxs)(G.Fragment,{children:[t,(0,G.jsx)(`span`,{className:`resource-origin`,children:n})]})}let t=e.description||`未提供说明`;return(0,G.jsx)(`span`,{className:`cell-clamp`,title:t,children:t})}function Oz({item:e}){if(e.kind===`model`){let t=e.status===`ready`;return(0,G.jsx)(`span`,{className:`badge`,"data-state":t?`ready`:`pending`,children:t?`凭证已配置`:`凭证未配置`})}let t=e.status===`ready`?`可用`:e.status===`failed`||e.status===`unhealthy`?`异常`:e.status===`unresolved`?`未解析`:e.status===`missing-secret`?`缺少凭证`:e.status;return(0,G.jsx)(`span`,{className:`badge`,"data-state":e.status===`ready`?`ready`:e.status===`failed`||e.status===`unhealthy`?`failed`:`pending`,children:t})}function kz({item:e,onConfigure:t,onView:n,onProbe:r,onDelete:i}){let a=e.kind===`mcp`?[{label:`重新探测`,onSelect:r,disabled:e.source!==`local`},...e.source===`local`?[{label:`删除`,danger:!0,onSelect:i}]:[]]:[{label:`查看详情`,onSelect:n},...e.source===`local`?[{label:`删除`,danger:!0,onSelect:i}]:[]];return(0,G.jsxs)(`div`,{className:`row-actions`,children:[(0,G.jsx)(`button`,{className:`button secondary small`,type:`button`,onClick:e.kind===`model`?t:n,children:e.kind===`model`?`配置凭证`:`查看`}),(0,G.jsx)(yd,{label:`${e.displayName} 的更多操作`,items:a})]})}function Az({model:e,onClose:t,onChanged:n}){let r=xz(e),i=Sz(r),[a,o]=(0,s.useState)(null),c=y_({resolver:k_(fz),defaultValues:{value:``}}),[l,u]=(0,s.useState)(null),[d,f]=(0,s.useState)(``);(0,s.useEffect)(()=>{g(`/api/v1/credentials/${encodeURIComponent(i)}`).then(e=>e.json()).then(o).catch(()=>o({configured:!1,source:`missing`}))},[i]);let p=!!a?.configured,m=a?.source||`missing`,h=a==null?`正在检查凭证`:p?`模型凭证已配置`:`模型凭证未配置`,_=a==null?`检查当前 Runtime 是否已经获得模型凭证。`:m===`session`?`凭证已持久保存到工作区,重启后仍生效,所有 Agent 可复用。`:m===`environment`?`凭证由 Studio 启动环境变量提供,可以用新的会话凭证临时覆盖。`:`输入 API Key 后即可在本地运行当前模型。`;async function v(r,a){if(u(null),!a.value&&!p){c.setError(`value`,{type:`manual`,message:`当前模型还没有可用凭证,请输入 API Key。`});return}f(r?`test`:`save`);let o=!1;try{if(a.value){let e=await g(`/api/v1/credentials/${encodeURIComponent(i)}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({value:a.value,persistence:`session`})});if(!e.ok)throw Error(await bz(e,`凭证保存失败`));o=!0}let s=null;if(r){let t=await g(`/api/v1/model-profiles/${encodeURIComponent(e.resourceId)}:test`,{method:`POST`}),n=await t.text().catch(()=>``),r={};try{r=JSON.parse(n)}catch{}if(!t.ok||r.ok===!1)throw Error(r?.error?.message||`HTTP ${t.status}`);s=r.latencyMs??0}n?.(),t(),J(r?`模型连接测试通过`:`模型凭证已保存`,r?`${e.displayName} · ${s} ms`:`凭证已持久保存到工作区,所有 Agent 可复用。`)}catch(e){u({title:o?`凭证已保存,但连接测试失败`:`模型凭证配置失败`,message:e.message}),o&&n?.()}f(``)}async function y(){u(null),f(`remove`);try{let r=await g(`/api/v1/credentials/${encodeURIComponent(i)}`,{method:`DELETE`});if(!r.ok)throw Error(await bz(r,`凭证清除失败`));n?.(),J(`会话凭证已清除`,e.displayName),t()}catch(e){u({title:`凭证清除失败`,message:e.message})}f(``)}return(0,G.jsx)(Vg,{...c,children:(0,G.jsxs)(BD,{title:`配置模型凭证`,subtitle:`凭证只保存在当前 Studio 会话,不写入 Agent 或 Bundle。`,onClose:t,footer:(0,G.jsxs)(G.Fragment,{children:[m===`session`&&(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:y,disabled:d!==``,children:d===`remove`?`正在清除`:`清除会话凭证`}),(0,G.jsx)(`span`,{className:`drawer-footer-spacer`}),(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:t,children:`取消`}),(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:c.handleSubmit(e=>v(!1,e)),disabled:d!==``,children:d===`save`?`正在保存`:`仅保存`}),(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:c.handleSubmit(e=>v(!0,e)),disabled:d!==``,children:[(0,G.jsx)(V,{size:15}),(0,G.jsx)(`span`,{children:d===`test`?`正在测试`:`保存并测试`})]})]}),children:[(0,G.jsxs)(`div`,{className:`credential-profile`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`模型`}),(0,G.jsx)(`strong`,{children:e.displayName})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`Provider`}),(0,G.jsx)(`strong`,{children:e.contract?.provider||`openai-compatible`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`Endpoint`}),(0,G.jsx)(`code`,{children:e.contract?.endpointUrl||e.contract?.baseUrl||`-`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`凭证引用`}),(0,G.jsx)(`code`,{children:r||`-`})]})]}),(0,G.jsxs)(`div`,{className:`credential-status ${p?`configured`:`missing`}`,children:[(0,G.jsx)(`span`,{className:`status-dot ${a==null?`warning`:p?`success`:`warning`}`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:h}),(0,G.jsx)(`p`,{children:_})]})]}),(0,G.jsx)(Y,{label:`API Key`,requirement:p?`optional`:`required`,htmlFor:`modelCredValue`,hint:`保存后立即生效;关闭 Studio 后自动清除,需要持久化时可通过启动环境变量注入。`,error:c.formState.errors.value?.message,children:(0,G.jsx)(`input`,{id:`modelCredValue`,type:`password`,autoComplete:`new-password`,maxLength:16384,placeholder:p?`输入新的 API Key 以覆盖当前凭证`:`输入新的 API Key`,...c.register(`value`)})}),l&&(0,G.jsx)(VD,{kind:`error`,title:l.title,message:l.message})]})})}function jz({onClose:e,onAdded:t}){let n=y_({resolver:k_(lz),defaultValues:{name:``,displayName:``,model:``,endpointUrl:``,credentialRef:`env://MODEL_API_KEY`,description:``,apiKey:``,temperature:.2,maxTokens:2048,addressMode:`endpoint`,wireApi:``}}),{name:r,displayName:i,model:a,endpointUrl:o,credentialRef:c,apiKey:l,temperature:u,maxTokens:d,addressMode:f,wireApi:p}=n.watch(),m=c.replace(/^env:\/\//,``),[h,_]=(0,s.useState)(!1),[v,y]=(0,s.useState)(``),[b,x]=(0,s.useState)(!1),[S,C]=(0,s.useState)([]),[w,T]=(0,s.useState)([]),[E,D]=(0,s.useState)([]);(0,s.useEffect)(()=>{g(`/api/v1/catalog/models`).then(e=>e.json()).then(e=>{D((e.items||[]).map(e=>e.name).filter(Boolean))}).catch(()=>{})},[]);async function O(){if(!o.trim()){y(`请先填写接口地址再探测`);return}x(!0),y(``),C([]),T([]);try{let e={url:o.trim()};m.trim()&&(e.credentialRef=`env://${m.trim()}`),l.trim()&&(e.apiKey=l.trim());let t=await g(`/api/v1/model-endpoints:probe`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)});if(!t.ok)throw Error(await bz(t,`探测失败`));let r=await t.json();C(r.attempts||[]),T(r.models||[]),r.recommended?(n.setValue(`wireApi`,r.recommended.wireApi||`chat`),n.setValue(`addressMode`,`endpoint`),n.setValue(`endpointUrl`,r.recommended.endpointUrl,{shouldValidate:!0}),r.recommended.status===`auth_required`&&y(`端点可达,但需要有效凭证(401/403);配置 API Key 后可正常使用`)):y(`未能识别可用协议,请检查地址或网络`)}catch(e){y(e.message)}x(!1)}let k=[...new Set([...w,...E])];async function A(e){_(!0),y(``);try{let r=e.credentialRef.replace(/^env:\/\//,``);if(e.apiKey.trim()){let t=await g(`/api/v1/credentials/${encodeURIComponent(r)}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({value:e.apiKey.trim(),persistence:`session`})});if(!t.ok)throw Error(await bz(t,`凭证保存失败`))}let i={provider:`openai-compatible`,model:e.model.trim(),credentialRef:e.credentialRef,parameters:{temperature:e.temperature,max_tokens:e.maxTokens}};e.wireApi&&(i.wireApi=e.wireApi),e.addressMode===`endpoint`?i.endpointUrl=e.endpointUrl.trim():i.baseUrl=e.endpointUrl.trim();let a=await g(`/api/v1/catalog/model-profiles`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e.name.trim(),displayName:e.displayName.trim(),version:`1.0.0`,description:e.description||``,spec:i})});if(!a.ok){let e=await a.json().catch(()=>null);if(Nb(e,n.setError)){_(!1);return}throw Error(e?.error?.message||`创建失败(${a.status})`)}J(`模型已创建`,`${e.displayName.trim()} · ${e.model.trim()}`),t()}catch(e){y(e.message)}_(!1)}let j=e=>`${e.protocol===`chat`?`Chat`:`Responses`} · ${e.status===`ok`?`可用 ${e.latencyMs}ms`:e.status===`auth_required`?`需凭证`:e.status===`recognized`?`可识别`:e.status===`unavailable`?`不存在`:e.status===`unreachable`?`不可达`:`错误`}`,M=e=>e.status===`ok`?`ready`:e.status===`unavailable`||e.status===`unreachable`?`failed`:`pending`;return(0,G.jsx)(Vg,{...n,children:(0,G.jsxs)(BD,{title:`添加模型`,subtitle:`接入 OpenAI 兼容模型端点。`,wide:!0,onClose:e,footer:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:e,children:`取消`}),(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:n.handleSubmit(A),disabled:h,children:[(0,G.jsx)(V,{size:15}),(0,G.jsx)(`span`,{children:h?`创建中…`:`创建模型`})]})]}),children:[(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`名称(Slug)`,requirement:`required`,htmlFor:`amName`,error:n.formState.errors.name?.message,children:(0,G.jsx)(`input`,{id:`amName`,className:`mono`,placeholder:`my-model`,...n.register(`name`)})}),(0,G.jsx)(Y,{label:`显示名称`,requirement:`required`,htmlFor:`amDisplayName`,error:n.formState.errors.displayName?.message,children:(0,G.jsx)(`input`,{id:`amDisplayName`,placeholder:`我的模型`,...n.register(`displayName`)})})]}),(0,G.jsx)(Y,{label:`模型 ID`,requirement:`required`,htmlFor:`amModelId`,error:n.formState.errors.model?.message,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`input`,{id:`amModelId`,className:`mono`,placeholder:`glm-5.1 / gpt-4o-mini / …`,list:`am-model-suggestions`,...n.register(`model`)}),(0,G.jsx)(`datalist`,{id:`am-model-suggestions`,children:k.map(e=>(0,G.jsx)(`option`,{value:e},e))}),k.length>0&&(0,G.jsxs)(`span`,{className:`helper`,children:[`可输入或从 `,k.length,` 个可用模型中选择(自动补全)。`]})]})}),(0,G.jsx)(Y,{label:`接口地址`,requirement:`required`,htmlFor:`amEndpoint`,hint:`支持主机、/v1、Chat Completions 或 Responses 地址;智能探测会自动归一化。`,error:n.formState.errors.endpointUrl?.message,children:(0,G.jsxs)(`div`,{children:[p&&(0,G.jsx)(`span`,{className:`tag`,children:p===`responses`?`Responses 协议`:`Chat 协议`}),(0,G.jsxs)(`div`,{style:{display:`flex`,gap:8,marginBottom:10,alignItems:`center`},children:[(0,G.jsxs)(`div`,{className:`segmented-control`,children:[(0,G.jsx)(`button`,{type:`button`,className:f===`endpoint`?`selected`:``,onClick:()=>n.setValue(`addressMode`,`endpoint`),children:`完整 endpointUrl`}),(0,G.jsx)(`button`,{type:`button`,className:f===`base`?`selected`:``,onClick:()=>n.setValue(`addressMode`,`base`),children:`baseUrl`})]}),(0,G.jsxs)(`button`,{className:`button secondary small`,type:`button`,onClick:O,disabled:b||!o.trim(),children:[(0,G.jsx)(xt,{size:14}),(0,G.jsx)(`span`,{children:b?`探测中…`:`智能探测`})]})]}),(0,G.jsx)(`input`,{id:`amEndpoint`,className:`mono`,placeholder:f===`endpoint`?`https://host/v1/chat/completions`:`https://host/v1`,...n.register(`endpointUrl`)}),S.length>0&&(0,G.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:6,marginTop:10},children:S.map((e,t)=>(0,G.jsx)(`span`,{className:`badge`,"data-state":M(e),title:e.endpointUrl,children:j(e)},t))})]})}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`凭证环境变量名`,requirement:`required`,htmlFor:`amEnvName`,error:n.formState.errors.credentialRef?.message,children:(0,G.jsx)(`input`,{id:`amEnvName`,className:`mono`,value:m,onChange:e=>n.setValue(`credentialRef`,`env://${e.target.value}`,{shouldDirty:!0,shouldValidate:!0}),placeholder:`MY_MODEL_API_KEY`})}),(0,G.jsx)(Y,{label:`API Key 值`,requirement:`optional`,htmlFor:`amApiKey`,hint:`仅保存到当前 Studio 会话;留空则从启动环境读取。`,error:n.formState.errors.apiKey?.message,children:(0,G.jsx)(`input`,{id:`amApiKey`,type:`password`,autoComplete:`new-password`,placeholder:`留空则从环境读取`,...n.register(`apiKey`)})})]}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`temperature`,requirement:`optional`,htmlFor:`amTemp`,error:n.formState.errors.temperature?.message,children:(0,G.jsx)(`input`,{id:`amTemp`,type:`number`,step:`0.1`,min:0,max:2,...n.register(`temperature`,{valueAsNumber:!0})})}),(0,G.jsx)(Y,{label:`max_tokens`,requirement:`optional`,htmlFor:`amMaxTokens`,error:n.formState.errors.maxTokens?.message,children:(0,G.jsx)(`input`,{id:`amMaxTokens`,type:`number`,min:1,max:131072,...n.register(`maxTokens`,{valueAsNumber:!0})})})]}),v&&(0,G.jsx)(VD,{kind:`error`,title:`添加模型`,message:v})]})})}function Mz({onClose:e,onConnected:t}){let n=(0,s.useRef)(null),r=y_({resolver:k_(uz),defaultValues:{displayName:``,name:``,transport:`http`,command:``,args:``,endpointUrl:``,apiKeyName:``,apiKeyValue:``,description:``}}),{transport:i}=r.watch(),[a,o]=(0,s.useState)(``),[c,l]=(0,s.useState)(!1);function u(){let e=n.current?.value.trim();if(!e)return;let t;try{t=JSON.parse(e)}catch{J(`配置解析失败`,`请粘贴有效的 JSON`,`error`);return}let i=t.mcpServers||t.mcp_servers||t,a=Object.keys(i)[0],o=i[a];if(!o||typeof o!=`object`){J(`配置解析失败`,`未找到 MCP server 定义`,`error`);return}r.setValue(`name`,a,{shouldValidate:!0}),r.setValue(`displayName`,o.name||a,{shouldValidate:!0}),o.description&&r.setValue(`description`,o.description);let s=String(o.type||o.transport||``).toLowerCase();s.includes(`http`)||o.url?(r.setValue(`transport`,s===`sse`?`sse`:`http`),o.url&&r.setValue(`endpointUrl`,o.url,{shouldValidate:!0})):(r.setValue(`transport`,`stdio`),o.command&&r.setValue(`command`,o.command,{shouldValidate:!0}),Array.isArray(o.args)&&r.setValue(`args`,o.args.join(` `)));let c=o.headers||{},l=c.Authorization||c.authorization;if(l){let e=String(l).match(/\$\{?([A-Za-z0-9_]+)\}?/);e&&r.setValue(`apiKeyName`,e[1],{shouldValidate:!0})}else o.env_key&&r.setValue(`apiKeyName`,o.env_key,{shouldValidate:!0})}async function d(e){o(``),l(!0);try{if(e.apiKeyName.trim()&&e.apiKeyValue.trim()){let t=await g(`/api/v1/credentials/${encodeURIComponent(e.apiKeyName.trim())}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({value:e.apiKeyValue.trim(),persistence:`session`})});if(!t.ok)throw Error(await bz(t,`凭证保存失败`))}let n=e.transport===`streamable-http`?`http`:e.transport,i=n===`stdio`?e.apiKeyName.trim():`Authorization`,a={name:e.name.trim(),version:`1.0.0`,transport:n,args:n===`stdio`?e.args.trim().split(/\s+/).filter(Boolean):[],envRefs:e.apiKeyName.trim()?{[i]:`env://${e.apiKeyName.trim()}`}:{}};n===`stdio`?a.command=e.command.trim():a.endpointUrl=e.endpointUrl.trim();let o=await g(`/api/v1/catalog/mcp-servers`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({displayName:e.displayName.trim(),description:e.description.trim(),server:a})}),s=await o.json().catch(()=>null);if(!o.ok){if(Nb(s,r.setError)){l(!1);return}throw Error(s?.error?.message||`保存失败(${o.status})`)}let c=await g(`/api/v1/catalog/mcp-servers/${encodeURIComponent(s.resourceId)}:probe?timeoutSeconds=15`,{method:`POST`});if(!c.ok)throw Error(await bz(c,`探测失败`));J(`MCP 已连接`,`已发现 ${(await c.json()).health?.toolCount||0} 个 Tool。`),t()}catch(e){o(e.message)}l(!1)}return(0,G.jsx)(Vg,{...r,children:(0,G.jsxs)(BD,{title:`连接 MCP Server`,subtitle:`保存后执行探测,再回到 Agent 能力选择。`,onClose:e,footer:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:e,children:`取消`}),(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:r.handleSubmit(d),disabled:c,children:[(0,G.jsx)(Ve,{size:15}),(0,G.jsx)(`span`,{children:c?`正在探测`:`保存并探测`})]})]}),children:[(0,G.jsx)(Y,{label:`粘贴 MCP 配置`,requirement:`optional`,htmlFor:`mcpPaste`,hint:`粘贴 JSON 后会自动填充下方字段。`,children:(0,G.jsx)(`textarea`,{id:`mcpPaste`,ref:n,rows:5,placeholder:'{"mcpServers":{"metaso":{"type":"streamable-http","url":"https://...","headers":{"Authorization":"Bearer ${KSC_AIPRO_API_KEY}"}}}}',onPaste:()=>window.setTimeout(u,0)})}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`显示名称`,requirement:`required`,htmlFor:`mcpDisplayName`,error:r.formState.errors.displayName?.message,children:(0,G.jsx)(`input`,{id:`mcpDisplayName`,placeholder:`Web Research MCP`,...r.register(`displayName`)})}),(0,G.jsx)(Y,{label:`Server 名称`,requirement:`required`,htmlFor:`mcpName`,error:r.formState.errors.name?.message,children:(0,G.jsx)(`input`,{id:`mcpName`,className:`mono`,placeholder:`web-research`,...r.register(`name`)})})]}),(0,G.jsx)(Y,{label:`Transport`,requirement:`required`,htmlFor:`mcpTransport`,error:r.formState.errors.transport?.message,children:(0,G.jsx)(Fh,{id:`mcpTransport`,ariaLabel:`Transport`,value:i,options:[{value:`http`,label:`Streamable HTTP`},{value:`stdio`,label:`STDIO(本地命令)`},{value:`sse`,label:`SSE`}],onValueChange:e=>r.setValue(`transport`,e,{shouldDirty:!0,shouldValidate:!0})})}),i===`stdio`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Y,{label:`Command`,requirement:`required`,htmlFor:`mcpCommand`,error:r.formState.errors.command?.message,children:(0,G.jsx)(`input`,{id:`mcpCommand`,className:`mono`,placeholder:`npx`,...r.register(`command`)})}),(0,G.jsx)(Y,{label:`Arguments`,requirement:`optional`,htmlFor:`mcpArgs`,error:r.formState.errors.args?.message,children:(0,G.jsx)(`input`,{id:`mcpArgs`,className:`mono`,placeholder:`-y @your-org/web-research-mcp`,...r.register(`args`)})})]}),i!==`stdio`&&(0,G.jsx)(Y,{label:`Server URL`,requirement:`required`,htmlFor:`mcpEndpoint`,error:r.formState.errors.endpointUrl?.message,children:(0,G.jsx)(`input`,{id:`mcpEndpoint`,className:`mono`,placeholder:`https://mcp.example.com/mcp`,...r.register(`endpointUrl`)})}),(0,G.jsx)(Y,{label:`API Key 环境变量名`,requirement:`optional`,htmlFor:`mcpApiKey`,error:r.formState.errors.apiKeyName?.message,children:(0,G.jsx)(`input`,{id:`mcpApiKey`,className:`mono`,placeholder:`KSC_AIPRO_API_KEY`,...r.register(`apiKeyName`)})}),(0,G.jsx)(Y,{label:`API Key 值`,requirement:`optional`,htmlFor:`mcpApiKeyValue`,hint:`仅保存到当前 Studio 会话;留空则从环境变量读取。`,error:r.formState.errors.apiKeyValue?.message,children:(0,G.jsx)(`input`,{id:`mcpApiKeyValue`,type:`password`,autoComplete:`new-password`,placeholder:`留空则从环境变量读取`,...r.register(`apiKeyValue`)})}),(0,G.jsx)(Y,{label:`说明`,requirement:`optional`,htmlFor:`mcpDescription`,error:r.formState.errors.description?.message,children:(0,G.jsx)(`textarea`,{id:`mcpDescription`,rows:2,placeholder:`提供 Web 搜索和页面抓取能力`,...r.register(`description`)})}),a&&(0,G.jsx)(VD,{kind:`error`,title:`连接失败`,message:a})]})})}function Nz({item:e,onClose:t}){let n=e.contract||{},r=e.health||{},i=n.discoveredTools||r.discoveredTools||[],a=[[`Resource ID`,e.resourceId],[`Transport`,n.transport||`-`],[`Endpoint`,n.endpointUrl||n.command||`-`],[`状态`,r.status||e.status],[`工具数`,r.toolCount??i.length],[`凭证`,(e.requiredSecretRefs||[]).join(`、`)||`无`]];return(0,G.jsxs)(BD,{title:e.displayName||e.name,subtitle:`${e.name} · ${e.version} · ${n.transport||``}`,onClose:t,children:[(0,G.jsx)(`dl`,{className:`trace-detail-grid`,children:a.map(([e,t])=>(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:e}),(0,G.jsx)(`dd`,{children:String(t)})]},e))}),(0,G.jsx)(`div`,{className:`inspector-title inspector-title-spaced`,children:`已发现工具`}),(0,G.jsx)(`div`,{className:`resource-detail-list`,children:i.length===0?(0,G.jsx)(`div`,{className:`resource-detail-item`,children:(0,G.jsxs)(`span`,{className:`resource-detail-item-copy`,children:[(0,G.jsx)(`strong`,{children:`未发现工具`}),(0,G.jsx)(`span`,{children:`点击“重新探测”以加载工具列表`})]})}):i.map(e=>(0,G.jsxs)(`div`,{className:`resource-detail-item`,children:[(0,G.jsx)(`span`,{className:`capability-icon`,children:(0,G.jsx)(yt,{size:15})}),(0,G.jsxs)(`span`,{className:`resource-detail-item-copy`,children:[(0,G.jsx)(`strong`,{children:e.name}),(0,G.jsx)(`span`,{children:e.description||``})]})]},e.name))})]})}function Pz({item:e,onClose:t}){let[n,r]=(0,s.useState)(!1),i=e.contract||{},a=[[`Resource ID`,e.resourceId],[`来源`,vz[e.source]||e.source],[`版本`,e.version||`-`],[`状态`,e.kind===`model`?e.status===`ready`?`凭证已配置`:`凭证未配置`:e.status]];return e.kind===`tool`&&(a.push([`Tool 分组`,i.group||e.category||`general`]),a.push([`审批`,i.approval===`always`?`需审批`:`无需审批`]),a.push([`边界`,i.boundary||`ksadk-runtime`]),i.sourcePath&&a.push([`源码`,`${i.sourcePath} · ${i.callableName||`-`}()`])),e.kind===`skill`&&i?.contentSha256&&a.push([`内容摘要`,i.contentSha256]),(0,G.jsxs)(BD,{title:e.displayName||e.name,subtitle:`${e.name} · ${e.version}`,onClose:t,children:[(0,G.jsx)(`dl`,{className:`trace-detail-grid`,children:a.map(([e,t])=>(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:e}),(0,G.jsx)(`dd`,{children:String(t)})]},e))}),(0,G.jsx)(`div`,{className:`inspector-title inspector-title-spaced`,children:`说明`}),(0,G.jsx)(`p`,{style:{margin:0,color:`var(--text-secondary)`,fontSize:`var(--font-size-meta)`,lineHeight:`var(--line-height-body)`},children:e.description||i.description||`未提供说明`}),e.kind===`skill`&&e.source===`local`&&(0,G.jsxs)(`button`,{className:`button secondary skill-files-open`,type:`button`,onClick:()=>r(!0),children:[(0,G.jsx)(be,{size:15}),(0,G.jsx)(`span`,{children:`查看 Skill 文件`})]}),n&&(0,G.jsx)(FL,{title:e.displayName||e.name,endpoint:`/api/v1/catalog/skills/${encodeURIComponent(e.resourceId)}/files`,onClose:()=>r(!1)})]})}function Fz({onClose:e,onCatalogChanged:t}){let[n,r]=(0,s.useState)(``),[i,a]=(0,s.useState)(null),[o,c]=(0,s.useState)(new Set),[l,u]=(0,s.useState)({}),[d,f]=(0,s.useState)(null),[p,m]=(0,s.useState)({completed:0,total:0}),[h,_]=(0,s.useState)(``),[v,y]=(0,s.useState)(``),[b,x]=(0,s.useState)(!1),[S,C]=(0,s.useState)(!1),[w,T]=(0,s.useState)(null),[E,D]=(0,s.useState)(null),O=i?.candidates||[];function k(){c(new Set),u({}),f(null),m({completed:0,total:0}),_(``),T(null)}async function A(){y(``),x(!0);try{let e=n.split(`,`).map(e=>e.trim()).filter(Boolean),t=await g(`/api/v1/catalog/skills:discover`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({scanPaths:e})});if(!t.ok)throw Error(await bz(t,`Skill 发现失败`));let r=await t.json();a(r),k()}catch(e){y(e.message)}x(!1)}function j(e){S||l[e]?.status===`succeeded`||c(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function M(){let e=hz(O);for(let[t,n]of Object.entries(l))n.status===`succeeded`&&e.delete(t);c(e)}async function N(e){let n=i?.inspectionToken;if(!o.size||!n||S)return;let r=new Set(o),a=O.filter(e=>r.has(e.candidateId)&&(e.status===`ready`||e.status===`conflict`)).length;y(``),f(null),u({}),m({completed:0,total:a}),C(!0);try{let i=await gz({candidates:O,selectedIds:r,overwriteIds:e,commit:async(e,t)=>{_(e.candidateId);let r=await g(`/api/v1/catalog/skills/discoveries/${encodeURIComponent(n)}:commit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({candidateId:e.candidateId,overwrite:t})});if(!r.ok)throw Error(await bz(r,`Skill 导入失败`));return r.json()},onResult:(e,t,n)=>{u(t=>({...t,[e.candidateId]:e})),m({completed:t,total:n})}});f(i),c(new Set(i.failedIds)),i.succeededIds.length&&await t(),i.failedIds.length?J(`Skill 批量导入完成`,`已导入 ${i.succeededIds.length} 个,${i.failedIds.length} 个失败。`,`error`):J(`Skill 批量导入完成`,`已导入 ${i.succeededIds.length} 个 Skill。`)}catch(e){y(e.message)}_(``),C(!1)}function P(){let e=O.filter(e=>o.has(e.candidateId)&&e.status===`conflict`);if(e.length){T(e);return}N(new Set)}let F=o.size;return(0,G.jsxs)(BD,{title:`发现本地 Skill`,subtitle:`默认扫描工作区及允许的 Claude、Codex、Agent 用户目录;扫描只产生候选,确认后才导入。`,wide:!0,closeDisabled:S,onClose:e,footer:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:e,disabled:S,children:`取消`}),(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:P,disabled:!F||S,children:[(0,G.jsx)(V,{size:15}),(0,G.jsx)(`span`,{children:S?`正在导入 ${p.completed}/${p.total}`:`导入所选 ${F} 个`})]})]}),children:[(0,G.jsxs)(`div`,{className:`field`,children:[(0,G.jsx)(`label`,{htmlFor:`skillScanPaths`,children:`扫描目录(逗号分隔;留空扫描安全默认目录)`}),(0,G.jsx)(`input`,{id:`skillScanPaths`,value:n,onChange:e=>r(e.target.value),placeholder:`skills, .claude/skills, user:codex`}),(0,G.jsx)(`span`,{className:`helper`,children:`用户目录仅支持 user:agents、user:codex、user:claude;不支持任意本机路径扫描。`})]}),(0,G.jsxs)(`button`,{className:`button secondary`,type:`button`,onClick:A,disabled:b||S,children:[(0,G.jsx)(tt,{size:15}),(0,G.jsx)(`span`,{children:b?`正在扫描`:`扫描候选`})]}),O.length>0&&(0,G.jsxs)(`div`,{className:`skill-selection-toolbar`,children:[(0,G.jsxs)(`span`,{children:[`已选择 `,F,` / `,hz(O).size]}),(0,G.jsxs)(`span`,{className:`skill-selection-actions`,children:[(0,G.jsx)(`button`,{className:`button tertiary small`,type:`button`,onClick:M,disabled:S,children:`全选可导入`}),(0,G.jsx)(`button`,{className:`button tertiary small`,type:`button`,onClick:()=>c(new Set),disabled:!F||S,children:`清空选择`})]})]}),(0,G.jsx)(`div`,{className:`skill-discovery-list`,style:{marginTop:16},children:O.length===0?(0,G.jsx)(`div`,{className:`trace-stage-empty compact`,children:(0,G.jsx)(`p`,{children:i?`安全默认目录中没有发现 Skill。`:`点击扫描候选。`})}):O.map(e=>{let t=e.risk||{},n=[`ready`,`conflict`].includes(e.status),r=l[e.candidateId],i=r?.status===`succeeded`,a=e.status===`ready`?`可导入`:e.status===`conflict`?`已安装`:`无效`,s=e.diagnostics?.map(e=>e.message).join(`;`)||`${e.fileCount||0} 个文件 · ${Cz(e.totalBytes||0)}`,c=r?.status===`succeeded`?`已导入`:r?.status===`failed`?`导入失败:${r.error||`未知错误`}`:h===e.candidateId?`正在导入`:S&&o.has(e.candidateId)?`等待导入`:``;return(0,G.jsxs)(`div`,{className:`skill-candidate${n?``:` invalid`}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,"aria-label":`选择 ${e.displayName||e.name}`,disabled:!n||S||i,checked:o.has(e.candidateId),onChange:()=>j(e.candidateId)}),(0,G.jsx)(`span`,{className:`capability-icon`,children:(0,G.jsx)(ct,{size:15})}),(0,G.jsxs)(`span`,{className:`skill-candidate-copy`,children:[(0,G.jsx)(`strong`,{children:e.displayName||e.name}),(0,G.jsxs)(`span`,{children:[e.path,` · `,e.version||`版本无效`]}),(0,G.jsx)(`small`,{children:s}),c&&(0,G.jsx)(`small`,{className:`skill-import-state ${r?.status||`pending`}`,children:c})]}),(0,G.jsxs)(`span`,{className:`badge`,"data-state":e.status===`ready`?`ready`:`pending`,children:[a,t.requiresReview?` · 需复核`:``]}),n&&(0,G.jsxs)(`button`,{className:`button tertiary small skill-preview-button`,type:`button`,onClick:()=>D(e),children:[(0,G.jsx)(be,{size:14}),(0,G.jsx)(`span`,{children:`查看详情`})]})]},e.candidateId)})}),d&&(0,G.jsx)(VD,{kind:d.failedIds.length?`warning`:`success`,title:d.failedIds.length?`已导入 ${d.succeededIds.length} 个,${d.failedIds.length} 个失败`:`已导入 ${d.succeededIds.length} 个 Skill`,message:d.failedIds.length?`失败项已保留选择,可修复后再次导入。`:`资源目录已刷新。`}),v&&(0,G.jsx)(VD,{kind:`error`,title:`Skill 发现或导入失败`,message:v}),w&&(0,G.jsx)(ka,{title:`所选 Skill 中有 ${w.length} 个已安装`,description:`${w.map(e=>e.displayName||e.name).join(`、`)} 将被覆盖;旧版本会移入回收位置,可手工恢复。`,confirmText:`覆盖并继续`,danger:!1,onCancel:()=>T(null),onConfirm:()=>{let e=new Set(w.map(e=>e.candidateId));T(null),N(e)}}),E&&i?.inspectionToken&&(0,G.jsx)(FL,{title:E.displayName||E.name||`Skill`,endpoint:`/api/v1/catalog/skills/discoveries/${encodeURIComponent(i.inspectionToken)}/candidates/${encodeURIComponent(E.candidateId)}/files`,onClose:()=>D(null)})]})}function Iz({onClose:e,onAdded:t}){let n=y_({resolver:k_(dz),defaultValues:{displayName:``,name:``,callableName:``,description:``,sourceMode:`upload`,sourcePath:``}}),{sourceMode:r,name:i,callableName:a}=n.watch(),[o,c]=(0,s.useState)(null),[l,u]=(0,s.useState)(null),[d,f]=(0,s.useState)(``),[p,m]=(0,s.useState)(!1);async function h(){if(!o){f(`请先选择 Python 文件`);return}m(!0),f(``);try{let e=new FormData;e.append(`file`,o);let t=await g(`/api/v1/catalog/python-tools:inspect`,{method:`POST`,body:e});if(!t.ok)throw Error(await bz(t,`Python Tool 检查失败`));let r=await t.json(),i=r.callables?.[0];u(r);let a=o.name.replace(/\.py$/i,``).replace(/[^A-Za-z0-9_]+/g,`_`).replace(/^[^A-Za-z_]+/,`tool_`)||`python_tool`;n.setValue(`callableName`,i?.name||``,{shouldValidate:!0}),n.getValues(`name`)||n.setValue(`name`,a,{shouldValidate:!0}),n.getValues(`displayName`)||n.setValue(`displayName`,a,{shouldValidate:!0}),n.getValues(`description`)||n.setValue(`description`,i?.description||``)}catch(e){u(null),f(e.message||`Python Tool 检查失败`)}finally{m(!1)}}async function _(e){if(e.sourceMode===`upload`&&!l){n.setError(`callableName`,{type:`manual`,message:`请先完成 Python 文件检查`});return}m(!0),f(``);try{let r=e.sourceMode===`upload`?await g(`/api/v1/catalog/python-tools/${encodeURIComponent(l.inspectionToken)}:commit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({displayName:e.displayName.trim(),name:e.name.trim(),callableName:e.callableName.trim(),description:e.description.trim()})}):await g(`/api/v1/catalog/tools`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({displayName:e.displayName.trim(),category:`custom`,contract:{name:e.name.trim(),version:`1.0.0`,description:e.description.trim(),inputSchema:{type:`object`,properties:{}},outputSchema:{},approval:`policy`,sideEffect:`none`,executor:`python`,sourcePath:e.sourcePath.trim(),callableName:e.callableName.trim()}})}),i=await r.json().catch(()=>null);if(!r.ok){if(Nb(i,n.setError)){m(!1);return}throw Error(i?.error?.message||`Tool 添加失败(${r.status})`)}J(`Python Tool 已保存`,`${i.displayName||e.displayName.trim()} · SHA-256 已锁定`),t()}catch(e){f(e.message)}m(!1)}return(0,G.jsx)(Vg,{...n,children:(0,G.jsxs)(BD,{title:`添加 Python Tool`,subtitle:`源码先复制进 Catalog 并锁定 SHA-256,构建时进入不可变 Runtime 快照。`,onClose:e,footer:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:e,children:`取消`}),(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:n.handleSubmit(_),disabled:p,children:[(0,G.jsx)(V,{size:15}),(0,G.jsx)(`span`,{children:p?`正在保存`:`保存 Tool`})]})]}),children:[(0,G.jsxs)(`div`,{className:`segmented-control python-tool-source-mode`,"aria-label":`Python Tool 源码方式`,children:[(0,G.jsx)(`button`,{className:r===`upload`?`selected`:``,type:`button`,onClick:()=>{n.setValue(`sourceMode`,`upload`,{shouldValidate:!0}),f(``)},children:`上传文件`}),(0,G.jsx)(`button`,{className:r===`workspace`?`selected`:``,type:`button`,onClick:()=>{n.setValue(`sourceMode`,`workspace`,{shouldValidate:!0}),f(``)},children:`工作区路径`})]}),(0,G.jsx)(nz,{}),r===`upload`?(0,G.jsx)(Y,{label:`Python 文件`,requirement:`required`,hint:`拖放 .py 文件,或点击选择;检查只解析 AST,不会执行脚本。`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(ez,{ariaLabel:`选择 Python Tool 文件`,accept:{"text/x-python":[`.py`],"text/plain":[`.py`]},maxSize:1048576,file:o,onFile:e=>{c(e),u(null),n.setValue(`callableName`,``)},onError:f}),(0,G.jsxs)(`button`,{className:`button secondary`,type:`button`,onClick:h,disabled:!o||p,children:[(0,G.jsx)(tt,{size:15}),(0,G.jsx)(`span`,{children:p?`检查中`:`只读检查 Callable`})]}),l&&(0,G.jsxs)(`div`,{className:`python-tool-inspection-summary`,children:[(0,G.jsx)(V,{size:15}),(0,G.jsxs)(`span`,{children:[`SHA-256 `,l.sha256.slice(0,12),`… · 发现 `,l.callables.length,` 个公开函数`]})]})]})}):(0,G.jsx)(Y,{label:`工作区 Python 文件`,requirement:`required`,htmlFor:`ptSource`,hint:`仅允许当前工作区内的普通 .py 文件;符号链接会被拒绝。`,error:n.formState.errors.sourcePath?.message,children:(0,G.jsx)(`input`,{id:`ptSource`,placeholder:`tools/my_tool.py`,...n.register(`sourcePath`)})}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`显示名称`,requirement:`required`,htmlFor:`ptDisplayName`,error:n.formState.errors.displayName?.message,children:(0,G.jsx)(`input`,{id:`ptDisplayName`,placeholder:`例如:订单查询`,...n.register(`displayName`)})}),(0,G.jsx)(Y,{label:`Tool 标识`,requirement:`required`,htmlFor:`ptName`,error:n.formState.errors.name?.message,children:(0,G.jsx)(`input`,{id:`ptName`,className:`mono`,...n.register(`name`)})}),(0,G.jsx)(Y,{label:`Callable`,requirement:`required`,htmlFor:`ptCallable`,error:n.formState.errors.callableName?.message,children:r===`upload`?(0,G.jsx)(Fh,{id:`ptCallable`,ariaLabel:`Callable`,value:a,placeholder:l?`选择公开函数`:`请先检查文件`,disabled:!l,options:(l?.callables||[]).map(e=>({value:e.name,label:`${e.async?`async `:``}${e.name}(${e.parameters.join(`, `)})`,description:e.description||void 0})),onValueChange:e=>{n.setValue(`callableName`,e,{shouldDirty:!0,shouldValidate:!0});let t=l?.callables?.find(t=>t.name===e);t?.description&&n.setValue(`description`,t.description)}}):(0,G.jsx)(`input`,{id:`ptCallable`,className:`mono`,...n.register(`callableName`)})})]}),(0,G.jsx)(Y,{label:`说明`,requirement:`optional`,htmlFor:`ptDesc`,error:n.formState.errors.description?.message,children:(0,G.jsx)(`textarea`,{id:`ptDesc`,rows:3,...n.register(`description`)})}),d&&(0,G.jsx)(VD,{kind:`error`,title:`Tool 添加失败`,message:d})]})})}function Lz(e){let t=e?e():new Uint8Array(4);if(!e&&globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(t);else if(!e)for(let e=0;e<t.length;e+=1)t[e]=Math.floor(Math.random()*256);return`agentkit-${Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``)}`}function Rz({value:e,onChange:t,error:n,generate:r=Lz,id:i=`agent-slug`,label:a=`本地标识`}){return(0,G.jsx)(Y,{htmlFor:i,label:a,requirement:`generated`,hint:`默认生成唯一的本地 ID;可手动修改,云端 AgentId 由部署服务另行映射。`,error:n,children:(0,G.jsxs)(`div`,{className:`generated-id-control`,children:[(0,G.jsx)(`input`,{id:i,value:e,onChange:e=>t(e.target.value),pattern:`[a-z][a-z0-9-]{2,62}`,maxLength:63,spellCheck:!1,autoComplete:`off`}),(0,G.jsx)(`button`,{className:`icon-button tertiary`,type:`button`,"aria-label":`重新生成本地标识`,title:`重新生成`,onClick:()=>t(r()),children:(0,G.jsx)(et,{size:15})})]})})}var zz={resolving_model:{text:`正在理解你的需求…`,tip:`分析对话内容,确定 Agent 的框架与能力`},generating:{text:`正在理解你的需求…`,tip:`分析对话内容,确定 Agent 的框架与能力`},codex_writing:{text:`Codex 正在编写 Agent 配置…`,tip:`AI 编程助手正在沙箱中编写 agentkit.yaml,通常需要 1-3 分钟,质量优先`},validating:{text:`正在校验配置…`,tip:`检查配置完整性:名称、模型、运行时与提示词`},correcting:{text:`正在修正配置…`,tip:`发现少量问题,正在按校验意见修正后重新生成`},done:{text:`方案生成完成`,tip:``},failed:{text:`生成失败`,tip:``}};function Bz(e){return e&&zz[e]?.text||zz.resolving_model.text}function Vz(e){return e&&zz[e]?.tip||zz.resolving_model.tip}function Hz(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;return n?`${t}m${n}s`:`${t}m`}function Uz({stage:e,startedAt:t,testId:n=`authoring-stage-shimmer`}){let[r,i]=(0,s.useState)(()=>Date.now());(0,s.useEffect)(()=>{if(!t||e===`done`||e===`failed`)return;let n=window.setInterval(()=>i(Date.now()),1e3);return()=>window.clearInterval(n)},[t,e]);let a=Vz(e),o=t?Hz(Math.max(0,Math.floor((r-t)/1e3))):null,c=e===`done`||e===`failed`;return(0,G.jsxs)(`span`,{className:`authoring-stage`,"data-testid":n,"data-stage":e||`unknown`,children:[(0,G.jsx)(`span`,{className:`text-shimmer`,children:Bz(e)}),o&&!c&&(0,G.jsxs)(`span`,{className:`authoring-stage-elapsed`,children:[`已等待 `,o]}),a&&!c&&(0,G.jsx)(`span`,{className:`authoring-stage-tip`,children:a})]})}var Wz={action:`studio.action`,agentProvider:`studio.agent.provider`,renderer:`studio.renderer`,route:`studio.route`,settingsPage:`studio.settings.page`,sidebarNavigation:`studio.sidebar.navigation`,workspaceTab:`studio.workspace.tab`},Gz=class{entries=new Map;listeners=new Map;snapshots=new Map;register(e,t){let n=this.entries.get(e)??new Map;if(n.has(t.id))throw Error(`DSH contribution already registered: ${e}/${t.id}`);n.set(t.id,t),this.entries.set(e,n),this.publish(e);let r=!0;return()=>{r&&(r=!1,n.delete(t.id),this.publish(e))}}replaceAll(e){let t=e.cloneEntries(),n=new Set([...this.entries.keys(),...t.keys()]);this.entries=t;for(let e of n)this.publish(e)}getEntries(e){let t=this.snapshots.get(e);if(t)return t;let n=this.createSnapshot(e);return this.snapshots.set(e,n),n}subscribe(e,t){let n=this.listeners.get(e)??new Set;return n.add(t),this.listeners.set(e,n),()=>n.delete(t)}cloneEntries(){return new Map([...this.entries].map(([e,t])=>[e,new Map(t)]))}createSnapshot(e){return Object.freeze([...this.entries.get(e)?.values()??[]].sort((e,t)=>(e.order??100)-(t.order??100)||e.id.localeCompare(t.id)))}publish(e){this.snapshots.set(e,this.createSnapshot(e));for(let t of this.listeners.get(e)??[])t()}};function Kz(e,t){return(0,s.useSyncExternalStore)(n=>e.subscribe(t,n),()=>e.getEntries(t),()=>e.getEntries(t))}function qz(e){return e==null}function Jz(e,t,n){return Object.defineProperty(e,t,{writable:!0,value:n,enumerable:!1})}function Yz(e,t){return arguments.length===1?t=>Yz(e,t):e in globalThis&&t instanceof globalThis[e]||Object.prototype.toString.call(t).slice(8,-1)===e}function Xz(e){return Yz(`ArrayBuffer`,e)||Yz(`SharedArrayBuffer`,e)}function Zz(e){return Xz(e)||ArrayBuffer.isView(e)}var Qz;(function(e){e.is=Xz,e.isSource=Zz;function t(e){return ArrayBuffer.isView(e)?e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength):e}e.fromSource=t;function n(e){if(e=t(e),typeof Buffer<`u`)return Buffer.from(e).toString(`base64`);let n=``,r=new Uint8Array(e);for(let e=0;e<r.byteLength;e++)n+=String.fromCharCode(r[e]);return btoa(n)}e.toBase64=n;function r(e){return typeof Buffer<`u`?t(Buffer.from(e,`base64`)):Uint8Array.from(atob(e),e=>e.charCodeAt(0))}e.fromBase64=r;function i(e){return e=t(e),typeof Buffer<`u`?Buffer.from(e).toString(`hex`):Array.from(new Uint8Array(e),e=>e.toString(16).padStart(2,`0`)).join(``)}e.toHex=i;function a(e){if(typeof Buffer<`u`)return t(Buffer.from(e,`hex`));let n=e.length%2==0?e:e.slice(0,e.length-1),r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(`${n[e]}${n[e+1]}`,16));return Uint8Array.from(r).buffer}e.fromHex=a})(Qz||={}),Qz.fromBase64,Qz.toBase64,Qz.fromHex,Qz.toHex;function $z(e,t,n){let r=[],i=0;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a);if(o>=65&&o<=90){if(i===1){let t=e.charCodeAt(a+1);t>=97&&t<=122&&r.push(n),r.push(o+32)}else i!==0&&r.push(n),r.push(o+32);i=1}else o>=97&&o<=122?(r.push(o),i=2):t.includes(o)?(i!==0&&r.push(n),i=0):r.push(o)}return String.fromCharCode(...r)}function eB(e){return $z(e,[45,95],45)}var tB=eB,nB;(function(e){e.millisecond=1,e.second=1e3,e.minute=e.second*60,e.hour=e.minute*60,e.day=e.hour*24,e.week=e.day*7;let t=new Date().getTimezoneOffset();function n(e){t=e}e.setTimezoneOffset=n;function r(){return t}e.getTimezoneOffset=r;function i(n=new Date,r){return typeof n==`number`&&(n=new Date(n)),r===void 0&&(r=t),Math.floor((n.valueOf()/e.minute-r)/1440)}e.getDateNumber=i;function a(n,r){let i=new Date(n*e.day);return r===void 0&&(r=t),new Date(+i+r*e.minute)}e.fromDateNumber=a;let o=RegExp(`^${[`w(?:eek(?:s)?)?`,`d(?:ay(?:s)?)?`,`h(?:our(?:s)?)?`,`m(?:in(?:ute)?(?:s)?)?`,`s(?:ec(?:ond)?(?:s)?)?`].map(e=>`(\\d+(?:\\.\\d+)?${e})?`).join(``)}$`);function s(t){let n=o.exec(t);return n?(parseFloat(n[1])*e.week||0)+(parseFloat(n[2])*e.day||0)+(parseFloat(n[3])*e.hour||0)+(parseFloat(n[4])*e.minute||0)+(parseFloat(n[5])*e.second||0):0}e.parseTime=s;function c(e){let t=s(e);return t?e=Date.now()+t:/^\d{1,2}(:\d{1,2}){1,2}$/.test(e)?e=`${new Date().toLocaleDateString()}-${e}`:/^\d{1,2}-\d{1,2}-\d{1,2}(:\d{1,2}){1,2}$/.test(e)&&(e=`${new Date().getFullYear()}-${e}`),e?new Date(e):new Date}e.parseDate=c;function l(t){let n=Math.abs(t);return n>=e.day-e.hour/2?Math.round(t/e.day)+`d`:n>=e.hour-e.minute/2?Math.round(t/e.hour)+`h`:n>=e.minute-e.second/2?Math.round(t/e.minute)+`m`:n>=e.second?Math.round(t/e.second)+`s`:t+`ms`}e.format=l;function u(e,t=2){return e.toString().padStart(t,`0`)}e.toDigits=u;function d(e,t=new Date){return e.replace(`yyyy`,t.getFullYear().toString()).replace(`yy`,t.getFullYear().toString().slice(2)).replace(`MM`,u(t.getMonth()+1)).replace(`dd`,u(t.getDate())).replace(`hh`,u(t.getHours())).replace(`mm`,u(t.getMinutes())).replace(`ss`,u(t.getSeconds())).replace(`SSS`,u(t.getMilliseconds(),3))}e.template=d})(nB||={});var rB=class{sn=0;map=new Map;weak=new WeakMap;get length(){return this.map.size}push(e){let t=++this.sn;return this.map.set(t,e),this.weak.set(e,t),()=>this.map.delete(t)}delete(e){let t=this.weak.get(e);return t?this.map.delete(t):!1}clear(){let e=[...this.map.values()];return this.map.clear(),e.reverse()}[Symbol.iterator](){return this.map.values()}[Symbol.for(`nodejs.util.inspect.custom`)](){return[...this]}},Q={shadow:Symbol.for(`cordis.shadow`),receiver:Symbol.for(`cordis.receiver`),original:Symbol.for(`cordis.original`),metadata:Symbol.for(`cordis.metadata`),initHooks:Symbol.for(`cordis.initHooks`),checkProto:Symbol.for(`cordis.checkProto`),effect:Symbol.for(`cordis.effect`),filter:Symbol.for(`cordis.filter`),isolate:Symbol.for(`cordis.isolate`),intercept:Symbol.for(`cordis.intercept`),init:Symbol.for(`cordis.init`),check:Symbol.for(`cordis.check`),config:Symbol.for(`cordis.config`),invoke:Symbol.for(`cordis.invoke`),extend:Symbol.for(`cordis.extend`),tracker:Symbol.for(`cordis.tracker`),resolveConfig:Symbol.for(`cordis.resolveConfig`)},iB=function*(){}.constructor,aB=async function*(){}.constructor;function oB(e){return!(!e.prototype||e instanceof iB||aB!==Function&&e instanceof aB)}function sB(e,t){if(e===Object.prototype)return t;let n=Object.create(sB(Object.getPrototypeOf(e),t));for(let t of Reflect.ownKeys(e))Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(e,t));return n}function cB(e){return e&&(typeof e==`object`||typeof e==`function`)}function lB(e,t){let n=e;for(;n;){let e=Reflect.getOwnPropertyDescriptor(n,t);if(e)return e;n=Object.getPrototypeOf(n)}}function uB(e,t){if(!cB(t))return t;if(Object.hasOwn(t,Q.shadow))return Object.getPrototypeOf(t);let n=t[Q.tracker];return n?hB(e,t,n):t}function dB(e,t){return t?new Proxy(e,{get:(e,n,r)=>n in t&&n!==`constructor`?Reflect.get(t,n,r):Reflect.get(e,n,r),set:(e,n,r,i)=>n in t&&n!==`constructor`?Reflect.set(t,n,r,i):Reflect.set(e,n,r,i)}):e}function fB(e,t,n){return dB(e,Object.defineProperty(Object.create(null),t,{value:n,writable:!1}))}function pB(e,t,n,r){if(!n)return r;let i=Reflect.getOwnPropertyDescriptor(t,n)?.value;return i?fB(r,n,e.extend({[Q.shadow]:i})):r}function mB(e,t,n,r){return new Proxy(t,{apply:(t,i,a)=>(i===n&&(i=r),uB(e,Reflect.apply(t,i,a)))})}function hB(e,t,n){e[Q.shadow]&&!n.noShadow&&(e=Object.getPrototypeOf(e));let r=new Proxy(t,{get:(t,r,i)=>{if(r===Q.original)return t;if(r===n.property)return e;if(typeof r==`symbol`)return Reflect.get(t,r,i);if(n.associate&&e.reflect.props[`${n.associate}.${r}`])return Reflect.get(e,`${n.associate}.${r}`,fB(e,Q.receiver,i));let a,o,s=lB(t,r);s&&`value`in s?o=s.value:(a=pB(e,t,n.property,i),o=Reflect.get(t,r,a));let c=o?.[Q.tracker];return c?hB(e,o,c):!n.noShadow&&typeof o==`function`?(a??=pB(e,t,n.property,i),mB(e,o,i,a)):o},set:(t,r,i,a)=>{if(r===Q.original||r===n.property)return!1;if(typeof r==`symbol`)return Reflect.set(t,r,i,a);if(n.associate&&e.reflect.props[`${n.associate}.${r}`])return Reflect.set(e,`${n.associate}.${r}`,i,fB(e,Q.receiver,a));let o=pB(e,t,n.property,a);return Reflect.set(t,r,i,o)},apply:(e,t,n)=>gB(r,e,t,n)});return r}function gB(e,t,n,r){return t[Q.invoke]?t[Q.invoke].apply(e,r):Reflect.apply(t,n,r)}function _B(e,t,n){let r=function(...e){return gB(hB(r.ctx,r,n),r,this,e)};return Jz(r,`name`,e),Object.setPrototypeOf(r,t)}function vB(e,t,n){let r=e.error.stack.split(`
|
|
239
|
+
`);if(typeof t?.stack!=`string`){let e=Error(t),r=e.stack.split(`
|
|
240
|
+
`);throw r.splice(1,1/0,...n()),e.stack=r.join(`
|
|
241
|
+
`),e}let i=t.stack.split(`
|
|
242
|
+
`),a=i.indexOf(r[2]);if(a===-1)throw t;for(a-=e.offset;a>0&&i[a-1].endsWith(` (<anonymous>)`);)--a;throw i.splice(a,1/0,...n()),t.stack=i.join(`
|
|
243
|
+
`),t}function yB(e,t=bB()){let n={offset:1,error:Error()};try{let r=e(n);return cB(r)&&`then`in r?r.then(void 0,e=>vB(n,e,t)):r}catch(e){vB(n,e,t)}}function bB(e=0){let t=Error();return()=>t.stack.split(`
|
|
244
|
+
`).slice(3+e)}function xB(e){return e!==null&&e!==!1&&e!==void 0}var SB=class{ctx;_hooks={};constructor(e){this.ctx=e,Jz(this,Q.tracker,{property:`ctx`,noShadow:!0}),this.on(`internal/listener`,function(e,t,n){if(e===`internal/update`&&!n.global)return(this.fiber._hooks[`internal/update`]??=new rB)[n.prepend?`unshift`:`push`](t)}),this.on(`internal/update`,function(e,t,n){let r=[...this._hooks[`internal/update`]||[]],i=()=>(r.shift()??n).call(this,e,t,i);return i()},{global:!0,prepend:!0})}dispatch(e,t){let n=typeof t[0]==`object`||typeof t[0]==`function`?t.shift():null,r=t.shift();r.startsWith(`internal/`)||this.emit(`internal/dispatch`,e,r,t,n);let i=n?.[GB.filter];return(this._hooks[r]||[]).filter(e=>e.global||!i||i.call(n,e.ctx)).map(e=>e.callback.bind(n))}async parallel(...e){let t=(await Promise.allSettled(this.dispatch(`emit`,e).map(async t=>t(...e)))).filter(e=>e.status===`rejected`);if(t.length)throw AggregateError(t.map(e=>e.reason))}emit(...e){this.dispatch(`emit`,e).map(t=>t(...e))}async serial(...e){for(let t of this.dispatch(`serial`,e)){let n=await t(...e);if(xB(n))return n}}bail(...e){for(let t of this.dispatch(`bail`,e)){let n=t(...e);if(xB(n))return n}}waterfall(...e){let t=this.dispatch(`waterfall`,e),n=e.pop(),r=()=>(t.shift()??n)(...e);return e.push(r),r()}register(e,t,n,r){let i=r.prepend?`unshift`:`push`;return this.ctx.fiber.effect(()=>(t[i]({ctx:this.ctx,callback:n,...r}),()=>this.unregister(t,n)),e)}unregister(e,t){let n=e.findIndex(e=>e.callback===t);if(n>=0)return e.splice(n,1),!0}on(e,t,n){typeof n!=`object`&&(n={prepend:n}),this.ctx.fiber.assertActive(),t=this.ctx.reflect.bind(t);let r=this.bail(this.ctx,`internal/listener`,e,t,n);if(r)return r;let i=this._hooks[e]||=[],a=`ctx.on(${typeof e==`string`?JSON.stringify(e):e.toString()})`;return this.register(a,i,t,n)}once(e,t,n){let r=this.on(e,function(...e){return r(),t.apply(this,e)},n);return r}},CB={s:e=>String(e),d:e=>Math.trunc(Number(e)),i:e=>Math.trunc(Number(e)),f:e=>Number(e),o:e=>JSON.stringify(e),O:e=>JSON.stringify(e),c:()=>``,C:(e,t,n)=>TB.color(t,TB.code(n.name,t.colors),e)};function wB(e){return e instanceof Error&&Array.isArray(e.errors)}var TB=class{service;static color(e,t,n,r=``){return e.colors?`\u001b[3${t<8?t:`8;5;`+t}${e.colors>=2?r:``}m${n}\u001b[0m`:``+n}static code(e,t){let n=0;for(let t=0;t<e.length;t++)n=(n<<3)-n+e.charCodeAt(t)+13,n|=0;let r=t?t>=2?DB:EB:[];return r[Math.abs(n)%r.length]}static format(e,t){let n=t.args.slice();n[0]instanceof Error?(n[0]=n[0].stack||n[0].message,n.unshift(`%s`)):typeof n[0]!=`string`&&n.unshift(`%o`);let r=n.shift();r=r.replace(/%([a-zA-Z%])/g,(r,i)=>{if(r===`%%`)return`%`;let a=e.formatters?.[i]??CB[i];return typeof a==`function`?a(n.shift(),e,t):r});let i=e.formatters?.o??CB.o;for(let a of n)typeof a==`object`&&a&&(a=i(a,e,t)),r+=` `+a;let{maxLength:a=10240}=e;return r.split(/\r?\n/g).map(e=>e.slice(0,a)+(e.length>a?`...`:``)).join(`
|
|
245
|
+
`)}constructor(e,t){this.service=t,Object.assign(this,e),this.error=this._method(`error`,0),this.info=this._method(`info`,1),this.warn=this._method(`warn`,2),this.debug=this._method(`debug`,3)}_method(e,t){return(...n)=>{if(n.length===1&&n[0]instanceof Error){if(n[0].cause)this[e](n[0].cause);else if(wB(n[0])){n[0].errors.forEach(t=>this[e](t));return}}let r=++this.service._snMessage,i=Date.now();for(let a of this.service.exporters.values()){if((a.levels?.[this.name]??a.levels?.default??this.level??1)<t)continue;let o={sn:r,ts:i,type:e,level:t,name:this.name,...this.meta,args:n};a.export(o)}}}},EB=[6,2,3,4,5,1],DB=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221],OB=class e{bufferSize=1e3;buffer=[];ctx;_snMessage=0;_snExporter=0;exporters=new Map;constructor(e){let t={property:`ctx`,noShadow:!0},n=_B(`logger`,sB(Object.getPrototypeOf(this),Function.prototype),t);return Object.assign(n,this),n.ctx=e,Jz(n,Q.tracker,t),n.exporter({colors:3,export:e=>{n.buffer.push(e),n.buffer.length>n.bufferSize&&(n.buffer=n.buffer.slice(-n.bufferSize))}}),n}exporter(e){return this.ctx.effect(()=>(this.exporters.set(++this._snExporter,e),()=>this.exporters.delete(this._snExporter)),`ctx.logger.exporter()`)}_resolveConfig(){let e=this.ctx[Q.intercept],t=[];for(;`logger`in e;)Object.hasOwn(e,`logger`)&&t.unshift(e.logger),e=Object.getPrototypeOf(e);return Object.assign({},...t)}[Q.invoke](e){let t=this._resolveConfig(),n=(this.ctx[Q.shadow]??this.ctx).fiber;return e??=t.name,e??=tB(n.name),new TB({name:e,level:t.level,meta:{fiber:new WeakRef(n)}},this)}static{for(let t of[`error`,`info`,`warn`,`debug`])e.prototype[t]=function(...e){return this()[t](...e)}}};function kB(e){let t=e.stack.split(`
|
|
246
|
+
`);return t.splice(0,2,`Error: ${e.message}`),e.stack=t.join(`
|
|
247
|
+
`),e}var AB=[`prototype`,`then`];function jB(e){return typeof e==`symbol`||AB.includes(e)||parseInt(e).toString()===e||e.startsWith(`_`)}var MB=class{ctx;static handler={get:(e,t,n)=>{if(jB(t))return Reflect.get(e,t,n);if(Reflect.has(e,t))return uB(n,Reflect.get(e,t,n));let r=Error(`cannot get property "${t}" without inject`);try{let i=e.reflect.props[t];return i?.type===`accessor`?i.get.call(n,n[Q.receiver],r):n.fiber.runtime?n.events.waterfall(`internal/get`,n,t,r,()=>{let i=e[Q.isolate][t],a=(n[Q.shadow]??n).fiber;for(;;){let e=a.store?.[t];if(e)return uB(n,e.value);if(t in a.inject)throw r.message=`cannot get required service "${t}" in inactive context`,r;if(!a.runtime||a.parent[Q.isolate][t]!==i)throw r;a=a.parent.fiber}}):n.reflect.get(t,!1)}catch(e){throw e===r?kB(e):e}},set:(e,t,n,r)=>{if(jB(t))return Reflect.set(e,t,n,r);let i=Error(`cannot set property "${t}" without provide`),a=e.reflect.props[t];if(!a){if(!r.fiber.runtime)return Reflect.set(e,t,n,r);throw kB(i)}try{return a.type===`accessor`?a.set?a.set.call(r,n,r[Q.receiver],i):!1:r.events.waterfall(`internal/set`,r,t,n,i,()=>r.reflect.set(t,n,i))}catch(e){throw e===i?kB(e):e}},has:(e,t)=>jB(t)?Reflect.has(e,t):Reflect.has(e,t)?!0:!!e.reflect.props[t]};store=Object.create(null);props=Object.create(null);constructor(e){this.ctx=e,Jz(this,Q.tracker,{property:`ctx`,noShadow:!0}),this.mixin(`reflect`,[`get`,`set`,`provide`,`accessor`,`mixin`]),this.mixin(`fiber`,[`runtime`,`effect`]),this.mixin(`registry`,[`inject`,`plugin`]),this.mixin(`events`,[`on`,`once`,`parallel`,`emit`,`serial`,`bail`,`waterfall`])}get(e,t=!0){return uB(this.ctx,this._getImpl(e,t)?.value)}_getImpl(e,t=!0){let n=this.ctx[Q.isolate][e],r=n&&this.store[n];if(r&&!(t&&r.fiber.state!==2))return r}set(e,t,n){let r=this.ctx[Q.isolate][e],i=this.store[r];if(!i)throw Error(`cannot set property "${e}" without provide`);if(i.fiber!==this.ctx.fiber)throw Error(`cannot set property "${e}" in multiple fibers`);return i.value=t,!0}provide(e,t,n){return this.ctx.fiber.effect(()=>{if(!this.props[e])this.props[e]??={type:`service`};else if(this.props[e].type!==`service`)throw Error(`property "${e}" is already declared as ${this.props[e].type}`);this.props[e]={type:`service`},this.ctx.root[Q.isolate][e]??=Symbol(e);let r=this.ctx[Q.isolate][e],i={name:e,value:t,fiber:this.ctx.fiber,check:n};if(this.store[r])throw Error(`service "${e}" has been registered at <${this.store[r].fiber.name}>`);return this.store[r]=i,this.ctx.fiber.store[e]=i,this.ctx.fiber.state===2&&this.notify([e]),async()=>{delete this.store[r];let t=this.notify([e]);await Promise.allSettled(t.map(e=>e.await())),delete this.ctx.fiber.store[e]}},`ctx.provide(${JSON.stringify(e)})`)}notify(e,t=(e,t)=>e[Q.isolate][t]===this.ctx[Q.isolate][t]){let n=[];for(let r of this.ctx.registry.values())for(let i of r.fibers){let r=!1;for(let n of e)n in i.inject&&t(i.ctx,n)&&(r=!0,i._checkImpl(n));r&&(i._refresh(),n.push(i))}for(let n of e){let e=Object.create(this.ctx);e[Q.filter]=e=>t(e,n),this.ctx.events.emit(e,`internal/service`,n,this._getImpl(n,!1)?.value)}return n}accessor(e,t){return this.ctx.fiber.effect(()=>{if(e in this.props)throw Error(`property "${e}" is already declared as ${this.props[e].type}`);return this.props[e]={type:`accessor`,...t},()=>delete this.props[e]},`ctx.accessor(${JSON.stringify(e)})`)}mixin(e,t){let n=this;return this.ctx.fiber.effect(function*(){let r=Array.isArray(t)?t.map(e=>[e,e]):Object.entries(t),i=(t,n)=>t[e];for(let[e,t]of r)yield n.accessor(t,{get(t,n){let r=i(this,n);if(qz(r))return r;let a=t?dB(t,r):r,o=Reflect.get(r,e,a);return typeof o==`function`?o.bind(a??r):o},set(t,n,r){let a=i(this,r),o=n?dB(n,a):a;return Reflect.set(a,e,t,o)}})},`ctx.mixin(${JSON.stringify(e)})`)}trace(e){return uB(this.ctx,e)}bind(e){return new Proxy(e,{apply:(e,t,n)=>Reflect.apply(e,this.trace(t),n.map(e=>this.trace(e))),construct:(e,t,n)=>Reflect.construct(e,t.map(e=>this.trace(e)),n)})}},NB=Symbol.for(`ValidationError`),PB=class extends TypeError{name=`ValidationError`;constructor(e){super(`invalid config:
|
|
248
|
+
`+e.map(e=>e.path?` - ${e.message} (at ${e.path.join(`.`)})`:` - ${e.message}`).join(`
|
|
249
|
+
`))}};Object.defineProperty(PB.prototype,NB,{value:!0});function FB(e,t){if(!e.Config)return t;let n=e.Config[`~standard`].validate(t);if(`then`in n)throw TypeError(`Async config validation is not supported`);if(n.issues)throw new PB(n.issues);return n.value}var IB=new WeakMap;function LB(e){let t=e();return IB.get(e)?.()??t}function RB(e,t){let n=[`internal/plugin`,t],r;try{r=e.events.dispatch(`emit`,n)}catch(t){e.logger.error(t);return}for(let t of r)try{let r=t(...n);Promise.resolve(r).catch(t=>e.logger.error(t))}catch(t){e.logger.error(t)}}var zB=class e extends Error{code;constructor(t,n){super(n??e.Code[t]),this.code=t}};(function(e){e.Code={INACTIVE_EFFECT:`cannot create effect on inactive context`}})(zB||={});var BB=`__INACTIVE__`,VB=class{parent;inject;runtime;uid;ctx;config;_config;state=0;dispose;store;inertia;_hooks=Object.create(null);_disposables=new rB;context;_error;_runner;_store=Object.create(null);constructor(e,t,n,r,i){this.parent=e,this.inject=n,this.runtime=r,this._config=t;let a=e=>{this._disposables.push(e)};if(r){this.uid=e.registry.counter,this.ctx=this.context=e.extend({fiber:this});let t=Object.entries(this.inject);if(t.length){this.ctx[GB.intercept]=Object.create(e[GB.intercept]);for(let[e,n]of t)qz(n)||(this.ctx[GB.intercept][e]=n)}this._runner={epoch:BB,getOuterStack:i,execute:function(){if(oB(r.callback)){let e=new r.callback(this.ctx,this.config);for(let t of e?.[Q.initHooks]??[])t();return e?.[Q.init]?.()}return r.callback(this.ctx,this.config)},collect:a},this.dispose=e.fiber.effect(()=>{let e=r.fibers.push(this);return async()=>{for(this.uid=null,RB(this.context,this),this.ctx.registry.has(r.callback)&&(e(),r.fibers.length||this.ctx.registry.delete(r.callback)),this._setEpoch(BB),this.inertia||this._updateState(()=>(this.inertia=this._unload(),5));this.inertia;)await this.inertia}},`ctx.plugin()`);try{this.context.emit(`internal/plugin`,this)}catch(e){throw Promise.resolve(this.dispose()).catch(e=>this.ctx.logger.error(e)),e}if(this.uid!==null&&e.fiber.state!==5){for(let e of Object.keys(this.inject))this._checkImpl(e);this._refresh()}}else this.uid=0,this.ctx=this.context=e,this.state=2,this.store=Object.create(null),this._runner={epoch:``,getOuterStack:i,execute:()=>{},collect:a},this.dispose=()=>this.restart()}get name(){let e=this;do{if(e.runtime?.name)return e.runtime.name;e=e.parent.fiber}while(e!==e.parent.fiber);return`root`}assertActive(){if(this.uid===null)throw new zB(`INACTIVE_EFFECT`)}_execute(e){let t=e.epoch;return yB(n=>{let r=t=>{if(typeof t==`function`)e.collect(t);else if(!qz(t))throw TypeError(`Invalid effect`)},i=e.execute.call(this);if(typeof i==`function`)return e.collect(i);if(!qz(i)){if(!cB(i))throw TypeError(`Invalid effect`);if(`then`in i)return i.then(r);if(Symbol.iterator in i){n.error=Error();let e=i[Symbol.iterator]();for(;;){let t=e.next();if(r(t.value),t.done)return}}else if(Symbol.asyncIterator in i){let a=i[Symbol.asyncIterator]();return(async()=>{for(await Promise.resolve(),n.error=Error();;){if(e.epoch!==t)return;let n=await a.next();if(r(n.value),n.done)return}})()}else throw TypeError(`Invalid effect`)}},e.getOuterStack)}effect(e,t=`anonymous`){if(this.assertActive(),this.state===5)throw new zB(`INACTIVE_EFFECT`);let n=[],r=!1,i,a=()=>{if(r)return i;r=!0;let e;for(let t of n.splice(0).reverse())if(e)e=e.then(()=>LB(t));else{let n=LB(t);cB(n)&&`then`in n&&(e=n)}return i=e},o={label:t,children:[]},s={execute:e,epoch:!0,collect:e=>{n.push(e),this._disposables.delete(e),e[Q.effect]&&o.children.push(e[Q.effect])},getOuterStack:bB()},c,l=!0,u,d,f,p=!1,m,h=()=>!1,g=()=>(f??=new Promise((e,t)=>{u=e,d=t}),f),_=e=>Promise.resolve(e).then(()=>a(),async e=>{throw await a(),e}),v=e=>{let t;try{t=e()}catch(e){throw h(),e}if(cB(t)&&`then`in t){let e=Promise.resolve(t).finally(()=>{h(),m===e&&(m=void 0)});return m=e}return h(),t},y=Jz(()=>s.epoch?(s.epoch=!1,v(()=>l?_(g()):c?_(c):a())):p?m:void 0,Q.effect,o);IB.set(y,()=>m),h=this._disposables.push(y);try{c=this._execute(s)}catch(e){l=!1,p=!0,s.epoch=!1;let t;try{t=v(a)}finally{d?.(e)}throw cB(t)&&`then`in t&&t.catch(e=>this.ctx.logger.error(e)),e}l=!1,f&&Promise.resolve(c).then(u,d),c?.catch(()=>s.epoch?v(a):a()).catch(e=>this.ctx.logger.error(e));let b=()=>{if(s.epoch)return s.epoch=!1,v(a)};return y.then=async(e,t)=>Promise.resolve(c).then(()=>b).then(e,t),y}getEffects(){return[...this._disposables].map(e=>e[Q.effect]).filter(Boolean)}_getState(){return this.uid===null?4:this._error?3:this._runner.epoch===BB?0:2}_updateState(e){let t=this.state;if(this.state=e()??this._getState(),t!==this.state&&(this.context.emit(`internal/status`,this,t),t===2||this.state===2))for(let e of Reflect.ownKeys(this.ctx.reflect.store)){let t=this.ctx.reflect.store[e];t.fiber===this&&this.ctx.reflect.notify([t.name])}}_checkImpl(e){let t=this.ctx.reflect._getImpl(e,!0);if(!t)return delete this._store[e];try{if(t.check&&!t.check.call(uB(this.ctx,t.value)))return delete this._store[e]}catch(n){return t.fiber.ctx.logger.error(n),delete this._store[e]}this._store[e]=t}_refresh(){let e=!1;e=``;for(let t of Object.keys(this.inject)){let n=this._store[t];if(!n){e=BB;break}e+=`:`+n.fiber.uid}this._setEpoch(e)}_setEpoch(e){let t=this._runner.epoch;e!==t&&(this._runner.epoch=e,!this.inertia&&this._updateState(()=>e!==BB&&t===BB?(this.inertia=this._reload(),1):(this.inertia=this._unload(),5)))}_resolveConfig(e){return e=this.context.waterfall(this,`internal/config`,e,()=>e),this.runtime?FB(this.runtime,e):e}async _reload(){this.store={...this._store};let e=this._runner.epoch;try{await Promise.resolve(),this._runner.epoch===e&&(this.config=this._resolveConfig(this._config),await this._execute(this._runner),this._error=void 0)}catch(e){this.ctx.logger.error(e),this._error=e,this._runner.epoch=BB}this._updateState(()=>{if(this._runner.epoch===e)this.inertia=void 0;else return this.inertia=this._unload(),5})}async _unload(){await Promise.all(this._disposables.clear().map(async e=>{try{await yB(async t=>{await Promise.resolve(),t.error=Error(),await LB(e)},this._runner.getOuterStack)}catch(e){this.ctx.logger.error(e)}})),this.store=void 0,this._updateState(()=>{if(this._runner.epoch===BB)this.inertia=void 0;else return this.inertia=this._reload(),1})}async await(){for(;this.inertia;)await this.inertia;if(this._error)throw this._error;return this}async restart(){this.assertActive(),this._setEpoch(BB),this._refresh(),await this.await()}update(e,t=!1){if(this.assertActive(),this._config=e,this.state!==2){this._error=void 0,this._setEpoch(BB),this._refresh();return}return e=this._resolveConfig(e),this.context.waterfall(this,`internal/update`,e,t,()=>(this.config=e,this._error=void 0,this.restart()))}};function HB(e){return e&&typeof e==`object`&&typeof e.apply==`function`}function UB(e,t){return function(n,r){if(r.kind===`class`)Object.hasOwn(n,`inject`)||(Jz(n,`inject`,Object.create(Object.getPrototypeOf(n).inject??null)),Jz(n.inject,Q.checkProto,!0)),n.inject[e]=t;else if(r.kind===`method`){let i=(n[Q.metadata]??={}).inject??=Object.create(null);i[e]=t,r.addInitializer(function(){let e=this[Q.tracker]?.property;(this[Q.initHooks]??=[]).push(()=>{this.ctx.inject(i,t=>n.call(e?dB(this,{[e]:t}):this))})})}else throw Error(`@Inject() can only be used on class or class methods`)}}(function(e){function t(e,n=Object.create(null)){if(!e)return n;if(Array.isArray(e))for(let t of e)n[t]=null;else if(Reflect.has(e,Q.checkProto)){Object.assign(n,t(Object.getPrototypeOf(e)));for(let t of Object.keys(e))n[t]=e[t]??null}else for(let t of Object.keys(e))n[t]=e[t]??null;return n}e.resolve=t})(UB||={});var WB=class{ctx;_counter=0;_internal=new Map;constructor(e){this.ctx=e,Jz(this,Q.tracker,{property:`ctx`,noShadow:!0})}get counter(){return++this._counter}get size(){return this._internal.size}resolve(e){try{if(typeof e==`function`)return e;if(HB(e))return e.apply}catch{}}get(e){let t=this.resolve(e);return t&&this._internal.get(t)}has(e){let t=this.resolve(e);return!!t&&this._internal.has(t)}delete(e){let t=this.resolve(e),n=t&&this._internal.get(t);if(n){this._internal.delete(t);for(let e of n.fibers)e.dispose();return n}}keys(){return this._internal.keys()}values(){return this._internal.values()}entries(){return this._internal.entries()}forEach(e){return this._internal.forEach(e)}inject(e,t){return this.plugin({inject:e,apply:t,name:t.name})}plugin(e,t,n=bB()){let r=this.resolve(e);if(!r)throw Error(`invalid plugin, expect function or object with an "apply" method, received `+typeof e);this.ctx.fiber.assertActive();let i=this._internal.get(r);if(!i){let t=e.name;t===`apply`&&(t=void 0),i={name:t,callback:r,fibers:new rB,Config:e.Config},this._internal.set(r,i)}let a=new VB(this.ctx,t,UB.resolve(e.inject),i,n),o=Object.create(a);return o.then=(e,t)=>a.await().then(e,t),o}},GB=class e{static effect=Q.effect;static filter=Q.filter;static isolate=Q.isolate;static intercept=Q.intercept;static is(t){return!!t?.[e.is]}static{e.is[Symbol.toPrimitive]=()=>Symbol.for(`cordis.is`),e.prototype[e.is]=!0}constructor(){this[Q.isolate]=Object.create(null),this[Q.intercept]=Object.create(null);let e=new Proxy(this,MB.handler);return this.root=e,this.baseUrl=void 0,this.fiber=new VB(e,{},Object.create(null),null,()=>[]),this.reflect=new MB(e),this.registry=new WB(e),this.events=new SB(e),this.logger=new OB(e),this.fiber._disposables.clear(),e}[Symbol.for(`nodejs.util.inspect.custom`)](){return`Context <${this.fiber.name}>`}extend(e={}){let t=Reflect.getOwnPropertyDescriptor(this,Q.shadow)?.value,n=Object.create(uB(this,this));for(let t of Reflect.ownKeys(e))Object.defineProperty(n,t,Reflect.getOwnPropertyDescriptor(e,t));return t?Object.assign(Object.create(n),{[Q.shadow]:t}):n}isolate(e,t){let n=Object.create(this[Q.isolate]);return n[e]=t??Symbol(e),this.extend({[Q.isolate]:n})}intercept(e,t){let n=Object.create(this[Q.intercept]);return n[e]=t,this.extend({[Q.intercept]:n})}};(class e{ctx;static init=Q.init;static check=Q.check;static config=Q.config;static invoke=Q.invoke;static extend=Q.extend;static tracker=Q.tracker;static resolveConfig=Q.resolveConfig;name;constructor(e,t){this.ctx=e,t??=this.constructor.provide;let n=this,r={associate:t,property:`ctx`};return n[Q.invoke]&&(n=_B(t,sB(Object.getPrototypeOf(this),Function.prototype),r)),n.ctx=e,n.name=t,Jz(n,Q.tracker,r),n.ctx.reflect.provide(t,n,this[Q.check]),n}[Q.filter](e){return e[Q.isolate][this.name]===this.ctx[Q.isolate][this.name]}[Q.extend](t){let n;return n=this[e.invoke]?_B(this.name,this,this[Q.tracker]):Object.create(this),Object.assign(n,t)}[Q.resolveConfig](e,t){let n=this.ctx[GB.intercept],r=[];for(;this.name in n;)Object.hasOwn(n,this.name)&&r.unshift(n[this.name]),n=Object.getPrototypeOf(n);return e&&r.unshift(e),t&&r.push(t),this.Config?.merge?this.Config.merge(...r):Object.assign({},...r)}static[Symbol.hasInstance](e){if(!e)return!1;let t=e.constructor;for(;t;){if(t=t.prototype?.constructor,t===this)return!0;t&&=Object.getPrototypeOf(t)}return!1}});var KB=class{contributions=new Gz;context=new GB;constructor(){let e=this.contributions;this.context.provide(`studio`,{ui:{register(t,n,r){return t.effect(()=>e.register(n,r))}}})}async mount(e){let t=t=>e.apply(t);Object.assign(t,{inject:[...new Set([`studio`,...e.inject??[]])]}),e.name&&Object.defineProperty(t,"name",{configurable:!0,value:e.name});let n=await this.context.plugin(t);return{dispose:()=>n.dispose()}}async dispose(){await this.context.fiber.dispose()}},qB=new KB,JB=[{value:`codex`,label:`Codex · ManagedRuntime`},{value:`adk`,label:`Google ADK · Python source`},{value:`langgraph`,label:`LangGraph · Python graph`}];function YB(e,t=[]){let n=e.filter(e=>e.state===`ready`&&e.compatible),r=new Set([...n.map(e=>e.providerRef),...t.filter(e=>e.selectable).map(e=>e.providerRef)]);return r.size===0?[...JB]:[...JB,{value:`plugin`,label:r.size===1?`${n[0]?.displayName||t.find(e=>e.selectable)?.displayName||`DSH AgentProvider`} · Plugin`:`DSH AgentProvider · ${r.size} 个可用`}]}var XB=`agentkit.studio.agentDraft.v1`;function ZB(e){return e?.requiredSecretRefs?.[0]||e?.contract?.credentialRef||e?.contract?.credential_ref||e?.contract?.requiredSecretRefs?.[0]||e?.contract?.required_secret_refs?.[0]||``}var QB={loose:{title:`宽松权限策略`,description:`本地 Tool 全部自动允许,外部操作仍需审批。`},strict:{title:`严格权限策略`,description:`只读 Tool 自动允许,外部或写入操作需要审批。`},custom:{title:`自定义权限策略`,description:`沿用每个 Tool Contract 中配置的审批策略。`}},$B=[{value:`codex`,label:`Codex · ManagedRuntime`},{value:`adk`,label:`Google ADK · Python source`},{value:`langgraph`,label:`LangGraph · Python graph`}],eV=[[`定义 Agent`,`模板与系统提示词`],[`绑定能力`,`Model · Tool · MCP · Skill`],[`Prompt 与策略`,`检查并调整`],[`检查并创建`,`构建与打开会话`]],tV=new Set([`SUCCEEDED`,`FAILED`,`CANCELLED`,`TIMED_OUT`]),nV=[`deepseek`,`glm`,`kimi`,`minimax`,`qwen`];function rV(e){let t=String(e.contract?.model||e.name||``).toLowerCase(),n=t.includes(`/`)?t.split(`/`,2)[1]:t,r=n.replaceAll(`.`,`-`),i=nV.findIndex(e=>r===e||r.startsWith(e===`qwen`?e:`${e}-`)),a=(n.match(/\d+/g)||[]).slice(0,8).map(e=>-Number(e));for(;a.length<8;)a.push(0);return[i<0?nV.length:i,a,n]}function iV(e,t){let[n,r,i]=rV(e),[a,o,s]=rV(t);if(n!==a)return n-a;for(let e=0;e<r.length;e+=1)if(r[e]!==o[e])return r[e]-o[e];return i.localeCompare(s)}function aV(e){try{let t=JSON.parse(e),n=t?.spec?.instructions||t?.instructions||{},r=String(t?.name||`未命名 Agent`).trim(),i=String(t?.description||t?.spec?.description||n?.task||n?.system||`已根据这轮对话更新草稿。`).trim();return{title:`已更新草稿:${r}`,body:i}}catch{return{title:`已更新草稿`,body:e||`已根据这轮对话更新草稿。`}}}function oV(e){let t=e?.spec?.instructions||e?.instructions||{};return{name:e?.name||``,slug:e?.slug||``,runtimeType:e?.runtimeType||``,description:e?.description||e?.spec?.description||``,spec:{instructions:{system:t?.system||``,task:t?.task||``}}}}function sV(e,t){if(!e||typeof e!=`object`||Array.isArray(e)||!t||typeof t!=`object`||Array.isArray(t))return t;let n={...e};for(let[e,r]of Object.entries(t))n[e]=r&&typeof r==`object`&&!Array.isArray(r)&&n[e]&&typeof n[e]==`object`&&!Array.isArray(n[e])?sV(n[e],r):r;return n}async function cV(e){for(let t=0;t<1200;t+=1){let t=await g(`/api/v1/operations/${encodeURIComponent(e)}`),n=await t.json().catch(()=>null);if(!t.ok)throw Error(n?.error?.message||`构建状态获取失败(${t.status})`);if(tV.has(n?.status)){if(n.status!==`SUCCEEDED`)throw Error(n.error?.message||`构建未完成`);return n}await new Promise(e=>window.setTimeout(e,200))}throw Error(`构建等待超时`)}function lV({editingAgentId:e,viewportMode:t,onCreated:n,onAgentsChanged:r}){let[i,a]=(0,s.useState)(`quick`),[o,c]=(0,s.useState)(!1),[l,u]=(0,s.useState)(`尚未保存`),[d,f]=(0,s.useState)([]),[p,m]=(0,s.useState)([]),[h,_]=(0,s.useState)(``),[v,y]=(0,s.useState)(`{}`),[b,x]=(0,s.useState)(!1),[S,C]=(0,s.useState)({}),w=Kz(qB.contributions,Wz.agentProvider),[T,E]=(0,s.useState)(1),[D,O]=(0,s.useState)(1),k=y_({resolver:k_(xD),defaultValues:{name:`New Agent`,slug:Lz(),runtimeType:`codex`,template:`blank`,prompt:``,description:``,audience:`产品与技术负责人`,language:`zh-CN`,depth:`deep`,format:`report`,systemPrompt:``,taskPrompt:``,buildAfterCreate:!0}}),{name:M,slug:P,runtimeType:F,template:I,description:L,prompt:R,audience:z,language:B,depth:H,format:ee,systemPrompt:te,taskPrompt:ne,buildAfterCreate:re}=k.watch(),[ie,ae]=(0,s.useState)([]),[oe,se]=(0,s.useState)([]),[ce,le]=(0,s.useState)([]),[ue,de]=(0,s.useState)([]),[W,fe]=(0,s.useState)(`strict`),[pe,me]=(0,s.useState)(`auto`),[he,_e]=(0,s.useState)(`shadow`),[ve,ye]=(0,s.useState)(!1),[be,xe]=(0,s.useState)(`shadow`),Se=(0,s.useMemo)(()=>{let e={value:`auto`,label:`自动(推荐)`,description:`根据 Runtime 能力选择安全模式`};return F===`codex`?[e,{value:`native`,label:`原生 Runtime 管理`,description:`由 Codex 等原生 Runtime 管理最终上下文`}]:F===`langgraph`?[e,{value:`framework`,label:`框架管理`,description:`保留 LangGraph 原有行为`},{value:`ksadk`,label:`KsADK 管理`,description:`统一编译 Prompt 并规划上下文`}]:[e,{value:`framework`,label:`框架管理`,description:`保留 ADK 原有行为`}]},[F]),[Ce,we]=(0,s.useState)(`idle`),[Te,De]=(0,s.useState)(`compose`),[Oe,ke]=(0,s.useState)(``),[Ae,je]=(0,s.useState)(!1),[Me,Ne]=(0,s.useState)(!1),[Pe,Fe]=(0,s.useState)(null),[Ie,Re]=(0,s.useState)(!1),ze=(0,s.useRef)(null),Be=(0,s.useRef)(null),He=(0,s.useRef)(0),We=(0,s.useRef)(!1);(0,s.useEffect)(()=>{Se.some(e=>e.value===pe)||me(`auto`)},[pe,Se]);let[Ge,qe]=(0,s.useState)([]),[Je,Ye]=(0,s.useState)(``),[Xe,Ze]=(0,s.useState)(``),[$e,rt]=(0,s.useState)([]),[it,at]=(0,s.useState)([]),[st,lt]=(0,s.useState)([]),[ut,dt]=(0,s.useState)([]),[ft,pt]=(0,s.useState)(null),mt=y_({resolver:k_(CD),defaultValues:{name:``,slug:Lz(),runtimeType:`codex`,prompt:``,description:``,modelProfileId:void 0}}),[ht,gt]=(0,s.useState)(!1),[vt,bt]=(0,s.useState)(``),[St,Ct]=(0,s.useState)(``),[wt,Tt]=(0,s.useState)(null),[Et,K]=(0,s.useState)(null),[Dt,Ot]=(0,s.useState)(!1),kt=(0,s.useRef)(null);(0,s.useEffect)(()=>()=>kt.current?.abort(),[]);let[At,jt]=(0,s.useState)(null),[Mt,Nt]=(0,s.useState)(null),Pt=y_({resolver:k_(wD),defaultValues:{name:``,slug:Lz()}}),[Ft,It]=(0,s.useState)(null),Lt=y_({resolver:k_(TD),defaultValues:{name:``,slug:Lz(),path:`.`}}),Rt=Lt.watch(`path`),[zt,Bt]=(0,s.useState)(!1),[Vt,Ht]=(0,s.useState)(``),Ut=(0,s.useCallback)(async()=>{try{let[e,t,n]=await Promise.all([g(`/api/v1/catalog/resources?limit=200`).then(e=>e.json()),g(`/api/v1/catalog/models`).then(e=>e.json()).catch(()=>null),g(`/api/v1/agent-providers`).then(e=>e.json()).catch(()=>null)]),r=e.items||[],i=r.filter(e=>e.kind===`model`&&(e.source===`local`||e.source===`market`)),a=t?.items?.length?[...i,...t.items]:r.filter(e=>e.kind===`model`);f([...a,...r.filter(e=>e.kind!==`model`)]);let o=n?.items||[];m(o),_(e=>o.some(t=>t.providerRef===e&&t.selectable)?e:o.find(e=>e.selectable)?.providerRef||``);let s=[...new Set(a.map(ZB).filter(e=>e.startsWith(`env://`)))],c=await Promise.all(s.map(async e=>{let t=e.slice(6);try{let n=await g(`/api/v1/credentials/${encodeURIComponent(t)}`);return[e,n.ok?await n.json():{configured:!1}]}catch{return[e,{configured:!1}]}}));C(Object.fromEntries(c))}catch{}},[]);(0,s.useEffect)(()=>{Ut()},[Ut]);let Wt=(0,s.useMemo)(()=>d.filter(e=>e.kind===`model`&&[`ready`,`missing-secret`].includes(e.status)).sort(iV),[d]),Gt=(0,s.useMemo)(()=>d.filter(e=>e.kind===`tool`&&e.status===`ready`),[d]),Kt=(0,s.useMemo)(()=>d.filter(e=>e.kind===`mcp`),[d]),qt=(0,s.useMemo)(()=>d.filter(e=>e.kind===`skill`&&e.status===`ready`),[d]),Jt=(0,s.useMemo)(()=>{let e=new Set(p.map(e=>e.providerRef));return[...p,...w.filter(t=>t.state===`ready`&&t.compatible&&!e.has(t.providerRef)).map(e=>({providerRef:e.providerRef,pluginId:e.id,resolvedVersion:`cordis`,displayName:e.displayName,state:`enabled`,compatible:!0,selectable:!0,reason:null,permissions:[],isolation:`cordis`,configSchemaDeclared:!1,secretFields:[]}))]},[p,w]),Yt=(0,s.useMemo)(()=>Jt.find(e=>e.providerRef===h),[Jt,h]),Xt=(0,s.useMemo)(()=>Jt.map(e=>({value:e.providerRef,label:e.displayName,description:AD(e),disabled:!e.selectable})),[Jt]),Zt=(0,s.useMemo)(()=>YB(w,p),[p,w]);(0,s.useEffect)(()=>{h&&Jt.some(e=>e.providerRef===h&&e.selectable)||_(Jt.find(e=>e.selectable)?.providerRef||``)},[Jt,h]);let Qt=(0,s.useCallback)(e=>d.find(t=>t.resourceId===e),[d]),$t=(0,s.useCallback)(e=>{let t=ZB(e);return t?S[t]:void 0},[S]),en=(0,s.useCallback)(e=>e?$t(e)?.configured??e.status===`ready`:!1,[$t]),tn=mt.watch(`runtimeType`),nn=(0,s.useMemo)(()=>Wt.map(e=>({value:e.resourceId,label:e.displayName,description:`${e.contract?.model||e.name} · ${en(e)?`凭证已配置`:`需配置凭证`}`})),[en,Wt]),rn=(0,s.useMemo)(()=>Wt.find(e=>String(e.contract?.model||e.name).toLowerCase()===`deepseek-v4-flash`)?.resourceId||Wt[0]?.resourceId||``,[Wt]);(0,s.useEffect)(()=>{if(i!==`conversation`){We.current=!1;return}We.current||!rn||(We.current=!0,Xe||Ze(rn),$e.length||rt([rn]))},[$e.length,Xe,i,rn]);function an(e){let t=new Set(e),n=Wt.map(e=>e.resourceId).filter(e=>t.has(e));rt(n),mt.setValue(`modelProfileId`,n[0]||``,{shouldDirty:!0,shouldValidate:!0})}function on(){return`${XB}:local-workspace`}function sn(){try{window.localStorage.setItem(on(),JSON.stringify({version:1,savedAt:new Date().toISOString(),mode:i,wizard:{step:T,maxStep:D,template:I,runtime:F,depth:H,selectedTools:oe,selectedSkills:ue,selectedMcp:ce,selectedModels:ie,policy:W,contextOwnership:pe,contextEngineRollout:he,memoryEnabled:ve,memoryWriteRollout:be,selectedProviderRef:h,providerConfigText:v,providerPermissionsApproved:b},fields:{name:M,slug:P,description:L,prompt:R,audience:z,language:B,format:ee,systemPrompt:te,taskPrompt:ne,buildAfterCreate:re}})),u(`已保存 ${new Intl.DateTimeFormat(`zh-CN`,{hour:`2-digit`,minute:`2-digit`}).format(new Date)}`)}catch{}}function cn(){u(`有未保存更改`)}let ln=(0,s.useCallback)(()=>({prompt:``,goal:R,description:L,taskPrompt:ne,audience:z,language:B,depth:H,outputFormat:ee,modelProfileId:ie[0]||null,modelProfileIds:ie,toolResourceIds:oe,skillResourceIds:ue,mcpResourceIds:ce,policyTemplate:W,executionStrategy:I===`research`?`plan-act-observe`:`direct`,maxSteps:I===`research`?28:12,timeoutSeconds:I===`research`?900:120}),[R,L,ne,I,z,B,H,ee,ie,oe,ue,ce,W]),un=(0,s.useCallback)(async({preservePrompt:e=!0}={})=>{let t=++He.current;De(`compose`),we(`composing`);try{let n=await g(`/api/v1/agent-templates/${I}:compose`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(ln())}),r=await n.json();if(!n.ok)throw Error(r?.error?.message||`生成 Agent 配置失败(${n.status})`);if(t!==He.current)return;ze.current=r;let i=r.spec?.bindings||{};se(F===`codex`?[]:(i.tools||[]).map(e=>e.resourceId)),de((i.skills||[]).map(e=>e.resourceId)),le((i.mcpServers||[]).map(e=>e.resourceId));let a=i.modelProfileIds?.length?i.modelProfileIds:i.modelProfileId?[i.modelProfileId]:[];a.length&&ae(a),(!e||!te.trim())&&k.setValue(`systemPrompt`,r.spec?.instructions?.system||R.trim(),{shouldDirty:!0}),(!e||!ne.trim())&&k.setValue(`taskPrompt`,r.spec?.instructions?.task||``,{shouldDirty:!0}),we(`done`)}catch(e){t===He.current&&(we(`idle`),ke(e.message||`生成 Agent 配置失败`))}},[I,ln,F,te,ne,k]),dn=(0,s.useCallback)(async()=>{let e=ie[0];if(!e){ke(`请先选择用于优化 Prompt 的模型。`);return}let t=++He.current;ke(``),De(`optimize`),we(`composing`);try{let n=[`请在不改变业务目标、Runtime 和已选能力的前提下,重写并增强这个 Agent 的角色与任务契约。`,`system 必须明确角色、目标、事实边界、失败处理和回答原则;task 必须明确每次请求的执行步骤、约束和交付结构。`,`不要返回解释,只生成可审查的 Agent Draft Patch。`,`Agent 名称:${M.trim()||`未命名 Agent`}`,`业务描述:${L.trim()||`未填写`}`,`原始目标:${R.trim()}`,`当前角色与系统提示词:${te.trim()||`未生成`}`,`当前任务契约:${ne.trim()||`未生成`}`].join(`
|
|
250
|
+
|
|
251
|
+
`),r=`quick-optimize-${Date.now()}-${Math.random().toString(36).slice(2,10)}`,i=await g(`/api/v1/authoring/conversations:compose`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({messages:[{role:`user`,content:n}],modelProfileId:e,runtimeType:F===`plugin`?`codex`:F,agentModelProfileIds:ie,agentDefaultModelProfileId:e,toolResourceIds:F===`codex`?[]:oe,mcpResourceIds:ce,skillResourceIds:ue,requestId:r})}),a=await i.json().catch(()=>null);if(!i.ok)throw Error(a?.error?.message||`优化 Prompt 失败(${i.status})`);if(t!==He.current)return;if(a?.fallback?.active)throw Error(`生成模型暂时不可用,已保留当前角色与任务契约,请稍后重试。`);let o=a?.proposal?.spec||{},s=String(o.instructions?.system||a?.proposal?.instructions?.system||``).trim(),c=String(o.instructions?.task||a?.proposal?.instructions?.task||``).trim();if(!s||!c)throw Error(`生成模型没有同时返回角色提示词与任务契约,已保留当前内容。`);k.setValue(`systemPrompt`,s,{shouldDirty:!0,shouldValidate:!0}),k.setValue(`taskPrompt`,c,{shouldDirty:!0,shouldValidate:!0}),ze.current?.spec&&(ze.current={...ze.current,spec:{...ze.current.spec,instructions:{system:s,task:c}}}),cn(),we(`done`)}catch(e){t===He.current&&(we(`done`),ke(e.message||`优化 Prompt 失败,已保留当前内容。`))}},[L,M,R,k,F,ce,ie,ue,oe,te,ne]);async function fn(e){if(!(e<1||e>4)){if(e>T){if(T===1){if(!await k.trigger([`name`,`slug`,`runtimeType`,`prompt`,`audience`],{shouldFocus:!0})){ke(`请修正标记字段后继续。`);return}if(F===`plugin`){if(!Yt?.selectable){ke(Yt?.reason?.message||`请先在插件中心安装并启用一个兼容的 AgentProvider。`);return}try{OD(v,Yt.secretFields)}catch(e){ke(e.message||`Provider 配置无效`);return}if(Yt.permissions.length&&!b){ke(`请先确认 AgentProvider 请求的权限。`);return}}}if(T===2&&!ie.length){ke(`请至少选择一个模型后继续。`);return}}ke(``),e===3&&Ce===`idle`&&un({preservePrompt:!0}),E(e),O(t=>Math.max(t,e)),cn()}}async function pn(e){ke(``),je(!0);try{if(ze.current||await un({preservePrompt:!1}),!ze.current)throw Error(`未能生成 Agent 配置,请检查模板和能力绑定后重试。`);let t=JSON.parse(JSON.stringify(ze.current?.spec||{}));if(t.instructions={system:e.systemPrompt.trim(),task:e.taskPrompt.trim()},t.description=e.description.trim()||t.description,t.context={...t.context||{},ownership:pe,promptOwnership:pe===`ksadk`?`ksadk`:pe===`framework`?`framework`:t.context?.promptOwnership||`framework`,rollout:{...t.context?.rollout||{},contextEngine:he,memoryWrite:ve?be:`off`}},t.memory={...t.memory||{},enabled:ve,recall:{...t.memory?.recall||{},enabled:ve}},e.runtimeType===`plugin`){if(!Yt?.selectable)throw Error(Yt?.reason?.message||`所选 AgentProvider 当前不可用`);if(Yt.permissions.length&&!b)throw Error(`请先确认 AgentProvider 请求的权限`);t.runtime={type:`plugin`,providerRef:Yt.providerRef,providerConfig:OD(v,Yt.secretFields)},t.security={...t.security||{},allowedPermissions:[...new Set([...t.security?.allowedPermissions||[],...Yt.permissions])].sort()}}let r=await g(`/api/v1/authoring/quick`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e.name.trim(),slug:e.slug.trim(),runtimeType:e.runtimeType,description:t.description,template:e.template,spec:t})}),i=await r.json().catch(()=>null);if(!r.ok){if(Nb(i,k.setError)){E(1);return}throw Error(i?.error?.message||`创建失败(${r.status})`)}let a=String(i?.metadata?.id||``);if(!a)throw Error(`创建响应未返回 Agent 标识`);if(e.buildAfterCreate){let e=Number(i?.metadata?.revision||1),t=await g(`/api/v1/agents/${encodeURIComponent(a)}/builds`,{method:`POST`,headers:{"Content-Type":`application/json`,"Idempotency-Key":`build-${a}-r${e}-${Date.now()}`},body:JSON.stringify({revision:e,runEvaluation:!1})}),n=await t.json().catch(()=>null);if(!t.ok)throw Error(n?.error?.message||`构建提交失败(${t.status})`);let r=String(n?.id||``);if(!r)throw Error(`构建响应未返回操作标识`);await cV(r)}try{window.localStorage.removeItem(on())}catch{}n(a,e.buildAfterCreate)}catch(e){ke(e.message||`创建失败`)}finally{je(!1)}}async function mn(){let e=Je.trim();if(!e||!Xe||!$e.length){bt(`请输入需求并选择用于构建的模型。`);return}if(ht)return;bt(``),Ct(``);let t=[...Ge,{role:`user`,content:e}];qe(t),Ye(``),gt(!0),K(Date.now());let n=`conv-${Date.now()}-${Math.random().toString(36).slice(2,10)}`;Tt(`resolving_model`),hn(n);try{let e=await g(`/api/v1/authoring/conversations:compose`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({messages:t,modelProfileId:Xe,runtimeType:tn,agentModelProfileIds:$e,agentDefaultModelProfileId:$e[0]||null,toolResourceIds:tn===`codex`?[]:it,mcpResourceIds:st,skillResourceIds:ut,requestId:n})}),r=await e.json();if(!e.ok)throw Error(r?.error?.message||`生成失败(${e.status})`);Tt(`done`),r?.fallback?.active&&Ct(`所选生成模型暂时未能返回可用草稿。Studio 已按当前对话和你选定的 Runtime、模型与能力资源生成可编辑的本地兜底草稿;确认创建前请检查并补全。`),pt(r.proposal),Ot(!1);let i=r.proposal.spec||{description:r.proposal.description||``,instructions:r.proposal.instructions||{}};mt.reset({name:r.proposal.name||``,slug:Lz(),runtimeType:tn,prompt:i.instructions?.system||``,description:i.description||r.proposal.description||``,modelProfileId:i.bindings?.modelProfileId||$e[0]}),qe([...t,{role:`assistant`,content:JSON.stringify(oV(r.proposal))}])}catch(e){Tt(`failed`),bt(e.message||`对话构建失败`)}finally{kt.current?.abort(),kt.current=null,gt(!1)}}function hn(e){let t=new AbortController;return kt.current?.abort(),kt.current=t,(async()=>{for(;!t.signal.aborted;){if(await new Promise(e=>window.setTimeout(e,800)),t.signal.aborted)return;try{let n=await g(`/api/v1/authoring/conversations:status/${encodeURIComponent(e)}`,{signal:t.signal});if(!n.ok)continue;let r=await n.json();r?.stage&&Tt(String(r.stage))}catch{return}}})(),t}async function gn(e){if(ft){gt(!0),bt(``);try{let t=ft.spec||{description:ft.description||``,instructions:ft.instructions||{}},r=$e[0]||e.modelProfileId||null,i=$e.length?$e:r?[r]:[],a=e.runtimeType===`codex`?[]:it,o=sV(t,{description:e.description?.trim()||t.description||ft.description||``,runtime:null,model:null,instructions:{system:e.prompt.trim(),task:t.instructions?.task||``},bindings:{modelProfileId:r,modelProfileIds:i,modelParameters:null,policyTemplate:`strict`,tools:a.map(e=>({resourceId:e})),mcpServers:st.map(e=>({resourceId:e})),skills:ut.map(e=>({resourceId:e}))}}),s=await g(`/api/v1/authoring/quick`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e.name.trim(),slug:e.slug.trim(),runtimeType:e.runtimeType,description:o.description,spec:o})}),c=await s.json().catch(()=>null);if(!s.ok){if(Nb(c,mt.setError))return;throw Error(c?.error?.message||`创建失败(${s.status})`)}n(c?.metadata?.id)}catch(e){bt(e.message||`创建失败`)}finally{gt(!1)}}}async function _n(){if(At){Bt(!0),Ht(``);try{let e=new FormData;e.append(`file`,At);let t=await g(`/api/v1/authoring/imports:inspect`,{method:`POST`,body:e}),n=await t.json();if(!t.ok)throw Error(n?.error?.message||`检查失败(${t.status})`);Nt(n),Pt.reset({name:n.displayName||``,slug:Lz()})}catch(e){Ht(e.message)}finally{Bt(!1)}}}async function vn(e){if(Mt){Bt(!0),Ht(``);try{let t=await g(`/api/v1/authoring/imports/${encodeURIComponent(Mt.inspectionToken)}:commit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e.name.trim(),slug:e.slug.trim()||void 0})}),r=await t.json();if(!t.ok){if(Nb(r,Pt.setError))return;throw Error(r?.error?.message||`导入失败(${t.status})`)}n(r?.metadata?.id)}catch(e){Ht(e.message)}finally{Bt(!1)}}}async function yn(){if(await Lt.trigger(`path`)){Bt(!0),Ht(``);try{let e=await g(`/api/v1/authoring/projects:inspect`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({path:Rt.trim()})}),t=await e.json();if(!e.ok)throw Error(t?.error?.message||`检测失败(${e.status})`);It(t),Lt.reset({name:t.name||`Detected Agent`,slug:Lz(),path:Rt})}catch(e){Ht(e.message)}finally{Bt(!1)}}}async function bn(e){if(Ft){Bt(!0),Ht(``);try{let t=await g(`/api/v1/authoring/projects/${encodeURIComponent(Ft.inspectionToken)}:commit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:e.name.trim(),slug:e.slug.trim()||void 0,modelProfileId:Wt[0]?.resourceId||null})}),r=await t.json();if(!t.ok){if(Nb(r,Lt.setError))return;throw Error(r?.error?.message||`创建失败(${t.status})`)}n(r?.metadata?.id)}catch(e){Ht(e.message)}finally{Bt(!1)}}}let xn=I===`research`?`深度调研`:`空白 Agent`,Sn={codex:`Codex`,adk:`ADK`,langgraph:`LangGraph`,plugin:`外部 Provider`}[F]||F,Cn=QB[W],wn=ie.map(e=>Qt(e)?.displayName||e).join(`、`)||`待选择`,Tn=ie.map(Qt).filter(e=>!!e),En=Tn.length===0?`未选择模型;Agent 可以先构建,但运行前需要配置。`:Tn.every(en)?`已选 ${Tn.length} 个模型 · 凭证已配置`:`部分模型凭证未配置;Agent 可以先构建,但运行前需要配置 API Key。`,Dn=Tn.some(e=>!en(e)),On=F===`codex`,kn=On?[...eV.slice(0,3),[`检查并创建`,`校验声明与打开会话`]]:eV,An=(0,s.useCallback)((e=!1)=>{c(!1),e&&requestAnimationFrame(()=>Be.current?.focus())},[]);(0,s.useEffect)(()=>{t!==`compact`&&An()},[An,t]);function jn(e){a(e),t===`compact`&&An(!0)}let Mn=[{id:`quick`,icon:xt,label:`快速创建`,sub:`配置 YAML Revision`},{id:`conversation`,icon:Le,label:`对话构建`,sub:`多轮生成 Draft Patch`},{id:`import`,icon:_t,label:`导入`,sub:`YAML / Agent ZIP`},{id:`project`,icon:Ee,label:`项目识别`,sub:`检测 ADK / LangGraph`}],Nn=!e&&i===`conversation`?`workbench`:`document`,Pn=t=>(0,G.jsxs)(`div`,{className:`create-rail-panel`,children:[t&&(0,G.jsx)(`div`,{className:`create-rail-label`,children:`创建方式`}),!e&&(0,G.jsx)(`nav`,{className:`authoring-mode-tabs`,"aria-label":`创建方式`,role:`tablist`,children:Mn.map(e=>{let t=e.icon;return(0,G.jsxs)(`button`,{id:`authoring-tab-${e.id}`,className:i===e.id?`active`:``,type:`button`,role:`tab`,"aria-selected":i===e.id,"aria-controls":`authoring-panel-${e.id}`,title:`${e.label}:${e.sub}`,onClick:()=>jn(e.id),children:[(0,G.jsx)(t,{size:16}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:e.label}),(0,G.jsx)(`small`,{children:e.sub})]})]},e.id)})}),(e||i===`quick`)&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`create-rail-divider`}),(0,G.jsx)(`div`,{className:`create-rail-label wizard-step-label`,children:`配置步骤`}),(0,G.jsx)(`nav`,{className:`wizard-steps`,"aria-label":`创建步骤`,children:kn.map((t,n)=>{let r=n+1,i=!e&&r<D&&r!==T;return(0,G.jsxs)(`button`,{className:`wizard-step${(e?r===1:T===r)?` active`:``}${i?` completed`:``}`,type:`button`,disabled:!!e||r>D,onClick:()=>fn(r),children:[(0,G.jsx)(`span`,{className:`step-number`,children:i?(0,G.jsx)(V,{size:13,strokeWidth:3}):r}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:t[0]}),(0,G.jsx)(`small`,{children:t[1]})]})]},r)})})]})]});return(0,G.jsxs)(`div`,{className:`create-shell page-container`,"data-layout":Nn,"data-authoring-mode":i,"data-editing":e?`true`:`false`,children:[(0,G.jsxs)(Sd,{children:[!e&&t===`compact`&&(0,G.jsx)(`button`,{ref:Be,className:`icon-button compact-create-rail-trigger`,type:`button`,"aria-label":`查看创建入口与配置步骤`,title:`查看创建入口与配置步骤`,"aria-expanded":o,"aria-controls":`createRail`,onClick:()=>c(e=>!e),children:(0,G.jsx)(Ke,{size:16})}),!e&&i===`quick`&&(0,G.jsx)(`span`,{className:`tag`,children:l})]}),(0,G.jsxs)(`div`,{className:`create-workbench`,children:[!e&&t!==`compact`&&(0,G.jsx)(`aside`,{id:`createRail`,className:`create-rail`,"aria-label":`创建方式与步骤`,children:Pn(!0)}),!e&&t===`compact`&&o&&(0,G.jsx)(Oa,{open:!0,compact:!0,title:`创建方式`,subtitle:`切换创建入口,或查看当前配置步骤。`,onOpenChange:e=>{e||An(!0)},children:(0,G.jsx)(`div`,{id:`createRail`,children:Pn(!1)})}),(0,G.jsxs)(`div`,{className:`create-stage`,children:[e&&(0,G.jsx)(zD,{agentId:e,catalog:d,providers:p,onSaved:(e,t)=>n(e,t),onAppearanceSaved:r}),!e&&i===`conversation`&&(0,G.jsxs)(`section`,{id:`authoring-panel-conversation`,className:`authoring-mode-panel`,role:`tabpanel`,"aria-labelledby":`authoring-tab-conversation`,children:[(0,G.jsxs)(`div`,{className:`authoring-panel-heading conversation-panel-heading`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`eyebrow`,children:`Conversation authoring`}),(0,G.jsx)(`h2`,{children:`对话创建 Agent`}),(0,G.jsx)(`p`,{children:`描述目标,逐轮完善;准备好后再检查并确认草稿。`})]}),(0,G.jsx)(`span`,{className:`tag`,children:`不会自动创建`})]}),(0,G.jsxs)(`div`,{className:`conversation-authoring-layout`,"data-draft-state":ft?Dt?`review`:`summary`:`empty`,children:[(0,G.jsxs)(`section`,{className:`conversation-chat`,"aria-label":`对话创建`,children:[(0,G.jsxs)(`div`,{className:`conversation-chat-header`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`从需求开始`}),(0,G.jsx)(`p`,{children:`像对话一样说明要做什么;后续可以继续补充边界和能力。`})]}),(0,G.jsx)(`span`,{className:`conversation-context-state`,children:Ge.length?`${Math.ceil(Ge.length/2)} 轮上下文`:`持续保留上下文`})]}),(0,G.jsxs)(`div`,{className:`conversation-transcript`,"aria-live":`polite`,children:[Ge.length===0&&(0,G.jsxs)(`div`,{className:`conversation-empty-state`,children:[(0,G.jsx)(ct,{size:18,"aria-hidden":`true`}),(0,G.jsx)(`strong`,{children:`从一句需求开始`}),(0,G.jsx)(`p`,{children:`例如:帮我做一个销售日报 Agent,能汇总群聊记录并标出待跟进事项。`})]}),Ge.map((e,t)=>{let n=e.role===`user`?null:aV(e.content);return(0,G.jsx)(`div`,{className:`conversation-message ${e.role===`user`?`user`:`assistant`}`,children:e.role===`user`?(0,G.jsx)(`p`,{children:e.content}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`strong`,{children:n?.title}),(0,G.jsx)(`p`,{children:n?.body})]})},t)}),ht&&(0,G.jsxs)(`div`,{className:`conversation-thinking`,role:`status`,children:[(0,G.jsxs)(`span`,{className:`conversation-thinking-orb`,"aria-hidden":`true`,children:[(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{})]}),(0,G.jsx)(Uz,{stage:wt,startedAt:Et})]})]}),vt&&(0,G.jsxs)(`div`,{className:`inline-alert error`,children:[(0,G.jsx)(U,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`对话构建失败`}),(0,G.jsx)(`p`,{children:vt})]})]}),St&&(0,G.jsxs)(`div`,{className:`inline-alert warning`,role:`status`,children:[(0,G.jsx)(U,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`已生成本地兜底草稿`}),(0,G.jsx)(`p`,{children:St})]})]}),(0,G.jsxs)(`form`,{className:`conversation-composer`,onSubmit:e=>{e.preventDefault(),mn()},children:[(0,G.jsx)(`textarea`,{rows:3,placeholder:`描述你想创建或调整的 Agent…`,value:Je,onChange:e=>Ye(e.target.value),onKeyDown:e=>{let t=e.nativeEvent;e.key===`Enter`&&!e.shiftKey&&!t.isComposing&&t.keyCode!==229&&(e.preventDefault(),mn())}}),(0,G.jsxs)(`div`,{className:`conversation-composer-footer`,children:[(0,G.jsxs)(`span`,{children:[`Enter 发送 `,(0,G.jsx)(`b`,{children:`·`}),` Shift + Enter 换行`]}),(0,G.jsx)(`button`,{className:`conversation-send-button`,type:`submit`,disabled:ht||!Je.trim(),"aria-label":ht?`正在生成`:`生成方案`,title:ht?`正在生成`:`生成方案`,children:(0,G.jsx)(nt,{size:16,"aria-hidden":`true`})})]})]}),(0,G.jsxs)(`details`,{className:`conversation-settings`,children:[(0,G.jsxs)(`summary`,{children:[(0,G.jsx)(`span`,{children:`部署配置`}),(0,G.jsxs)(`small`,{children:[$B.find(e=>e.value===tn)?.label.split(` · `)[0]||`Runtime`,` · `,$e.length||0,` 个模型 · `,ut.length+st.length+(tn===`codex`?0:it.length),` 项能力`]})]}),(0,G.jsxs)(`div`,{className:`conversation-settings-body`,children:[(0,G.jsx)(Y,{label:`生成模型 Profile`,className:`authoring-model-field`,footer:(0,G.jsx)(`span`,{children:`只决定本次如何生成草稿;默认 DeepSeek V4 Flash。`}),children:(0,G.jsx)(Fh,{ariaLabel:`选择用于生成草稿的模型`,value:Xe,options:nn,onValueChange:Ze})}),(0,G.jsx)(Y,{label:`Runtime`,requirement:`required`,htmlFor:`conversationRuntime`,error:mt.formState.errors.runtimeType?.message,children:(0,G.jsx)(Fh,{id:`conversationRuntime`,ariaLabel:`Runtime`,value:tn,options:$B,onValueChange:e=>mt.setValue(`runtimeType`,e,{shouldDirty:!0,shouldValidate:!0})})}),(0,G.jsx)(Y,{label:`Agent 可用模型`,className:`authoring-model-field`,footer:(0,G.jsx)(`span`,{children:`可多选;按目录中最新的模型作为运行默认值。`}),children:(0,G.jsx)(Tb,{ariaLabel:`选择对话 Agent 模型`,items:Wt,selectedIds:$e,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>`${e.contract?.model||e.name} · ${en(e)?`凭证已配置`:`需配置凭证`}`,onChange:an,searchPlaceholder:`搜索 Agent 模型`,emptyMessage:`没有可用模型`})}),(0,G.jsx)(Y,{label:`Skill`,className:`authoring-model-field`,children:(0,G.jsx)(Tb,{ariaLabel:`选择对话 Agent Skill`,items:qt,selectedIds:ut,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>`${e.version} · ${e.description||`版本化 Skill`}`,onChange:dt,searchPlaceholder:`搜索 Skill`,emptyMessage:`没有已安装的 Skill`})}),(0,G.jsx)(Y,{label:`MCP Server`,className:`authoring-model-field`,children:(0,G.jsx)(Tb,{ariaLabel:`选择对话 Agent MCP Server`,items:Kt,selectedIds:st,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>`${e.description||`MCP Server`} · ${e.health?.toolCount||0} Tool`,onChange:lt,searchPlaceholder:`搜索 MCP Server`,emptyMessage:`没有已连接的 MCP Server`})}),tn===`codex`?(0,G.jsx)(`p`,{className:`helper conversation-runtime-note`,children:`Codex 使用原生工具、MCP 和 Skill;KsADK Tool 仅绑定到 ADK / LangGraph 通用 Agent。`}):(0,G.jsx)(Y,{label:`KsADK Tool`,className:`authoring-model-field`,children:(0,G.jsx)(Tb,{ariaLabel:`选择对话 Agent Tool`,items:Gt,selectedIds:it,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>`${e.version} · ${e.description||`本地 Tool`}`,onChange:at,searchPlaceholder:`搜索 Tool`,emptyMessage:`没有可用 Tool`})})]})]})]}),(0,G.jsx)(Vg,{...mt,children:(0,G.jsxs)(`aside`,{className:`conversation-draft-rail${ft?Dt?` is-reviewing`:``:` is-empty`}`,"aria-label":`Draft Patch`,children:[(0,G.jsxs)(`div`,{className:`conversation-draft-rail-heading`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`Draft Patch`}),(0,G.jsx)(`p`,{children:ft?`草稿已随对话更新`:`对话后生成,可随时检查`})]}),(0,G.jsx)(`span`,{className:`badge`,"data-state":ft?`ready`:`pending`,children:ft?`已更新`:`待生成`})]}),ft?Dt?(0,G.jsxs)(`form`,{className:`conversation-review-form`,onSubmit:mt.handleSubmit(gn),noValidate:!0,children:[(0,G.jsxs)(`div`,{className:`conversation-review-heading`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`检查并确认`}),(0,G.jsx)(`p`,{children:`编辑名称、提示词或打开左侧部署配置;确认后才会创建 Revision。`})]}),(0,G.jsx)(`button`,{type:`button`,className:`button secondary`,onClick:()=>Ot(!1),children:`收起`})]}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`显示名称`,requirement:`required`,htmlFor:`conversationName`,error:mt.formState.errors.name?.message,children:(0,G.jsx)(`input`,{id:`conversationName`,...mt.register(`name`)})}),(0,G.jsx)(Rz,{id:`conversationSlug`,value:mt.watch(`slug`),onChange:e=>mt.setValue(`slug`,e,{shouldDirty:!0,shouldValidate:!0}),error:mt.formState.errors.slug?.message})]}),(0,G.jsx)(Y,{label:`系统提示词`,requirement:`required`,htmlFor:`conversationPrompt`,error:mt.formState.errors.prompt?.message,children:(0,G.jsx)(`textarea`,{id:`conversationPrompt`,rows:8,...mt.register(`prompt`)})}),(0,G.jsx)(`div`,{className:`authoring-card-actions`,children:(0,G.jsxs)(`button`,{className:`button accent`,type:`submit`,disabled:ht,children:[(0,G.jsx)(V,{size:16}),(0,G.jsx)(`span`,{children:`确认并创建 Revision`})]})})]}):(0,G.jsxs)(`div`,{className:`conversation-draft-summary`,children:[(0,G.jsxs)(`div`,{className:`conversation-draft-title`,children:[(0,G.jsx)(N,{size:18,"aria-hidden":`true`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:mt.watch(`name`)||ft.name}),(0,G.jsx)(`p`,{children:mt.watch(`description`)||ft.description||`已生成可编辑的 Agent 草稿`})]})]}),(0,G.jsxs)(`div`,{className:`conversation-preview-section`,children:[(0,G.jsx)(`span`,{children:`角色与系统提示词`}),(0,G.jsx)(`p`,{children:mt.watch(`prompt`)||ft?.spec?.instructions?.system||`尚未生成`})]}),(0,G.jsxs)(`div`,{className:`conversation-preview-section`,children:[(0,G.jsx)(`span`,{children:`任务契约`}),(0,G.jsx)(`p`,{children:ft?.spec?.instructions?.task||`根据对话目标完成任务。`})]}),(0,G.jsxs)(`div`,{className:`conversation-draft-tags`,children:[(0,G.jsx)(`span`,{children:$B.find(e=>e.value===tn)?.label.split(` · `)[0]||`Runtime`}),(0,G.jsxs)(`span`,{children:[$e.length,` 个模型`]}),ut.length+st.length+(tn===`codex`?0:it.length)>0&&(0,G.jsxs)(`span`,{children:[ut.length+st.length+(tn===`codex`?0:it.length),` 项能力`]})]}),(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:()=>Ot(!0),children:[(0,G.jsx)(Ke,{size:16}),(0,G.jsx)(`span`,{children:`编辑并创建`})]})]}):(0,G.jsxs)(`div`,{className:`conversation-draft-empty`,children:[(0,G.jsx)(N,{size:20,"aria-hidden":`true`}),(0,G.jsx)(`strong`,{children:`从对话开始`}),(0,G.jsx)(`p`,{children:`先描述目标。草稿会在这里显示摘要,不会自动创建 Agent。`})]})]})})]})]}),!e&&i===`import`&&(0,G.jsxs)(`section`,{id:`authoring-panel-import`,className:`authoring-mode-panel`,role:`tabpanel`,"aria-labelledby":`authoring-tab-import`,children:[(0,G.jsxs)(`div`,{className:`authoring-panel-heading`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`eyebrow`,children:`Agent import`}),(0,G.jsx)(`h2`,{children:`检查并导入 Agent`}),(0,G.jsx)(`p`,{children:`先解析格式、Runtime、文件清单和 SHA-256,确认后再写入。`})]}),(0,G.jsx)(`span`,{className:`tag`,children:`YAML / ZIP`})]}),(0,G.jsxs)(`div`,{className:`authoring-inspect-grid`,children:[(0,G.jsxs)(`form`,{className:`authoring-input-card`,onSubmit:e=>{e.preventDefault(),_n()},children:[(0,G.jsxs)(`div`,{className:`authoring-section-heading`,children:[(0,G.jsx)(`span`,{className:`authoring-section-index`,children:`01`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`选择 Agent 文件`}),(0,G.jsx)(`p`,{children:`支持 YAML 或 ZIP;检查过程不会写入 Catalog。`})]})]}),(0,G.jsx)(Y,{label:`Agent 文件`,requirement:`required`,hint:`拖放 Agent YAML / ZIP,或点击选择`,children:(0,G.jsx)(`div`,{children:(0,G.jsx)(ez,{ariaLabel:`选择 Agent YAML 或 ZIP`,accept:{"application/zip":[`.zip`],"application/yaml":[`.yaml`,`.yml`],"text/yaml":[`.yaml`,`.yml`]},maxSize:104857600,file:At,onFile:e=>{jt(e),Nt(null)},onError:Ht})})}),(0,G.jsx)(`div`,{className:`authoring-card-actions`,children:(0,G.jsxs)(`button`,{className:`button accent`,type:`submit`,disabled:zt,children:[(0,G.jsx)(tt,{size:16}),(0,G.jsx)(`span`,{children:zt?`检查中`:`只读检查`})]})})]}),(0,G.jsx)(Vg,{...Pt,children:(0,G.jsxs)(`form`,{className:`authoring-inspection-card`,onSubmit:Pt.handleSubmit(vn),noValidate:!0,children:[(0,G.jsxs)(`div`,{className:`authoring-section-heading`,children:[(0,G.jsx)(`span`,{className:`authoring-section-index`,children:`02`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`检查并确认`}),(0,G.jsx)(`p`,{children:`核对解析结果、警告与 RuntimeRef,再执行导入。`})]}),(0,G.jsx)(`span`,{className:`badge`,"data-state":Mt?`ready`:`pending`,"aria-live":`polite`,children:Mt?`检查完成`:`等待检查`})]}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`显示名称`,requirement:`required`,htmlFor:`importName`,error:Pt.formState.errors.name?.message,children:(0,G.jsx)(`input`,{id:`importName`,...Pt.register(`name`)})}),(0,G.jsx)(Rz,{id:`importSlug`,value:Pt.watch(`slug`),onChange:e=>Pt.setValue(`slug`,e,{shouldDirty:!0,shouldValidate:!0}),error:Pt.formState.errors.slug?.message})]}),(0,G.jsx)(Db,{code:Mt?JSON.stringify(Mt,null,2):`选择文件并检查后显示解析结果、警告和 RuntimeRef。`,language:Mt?`json`:`text`,filename:`agent-import-inspection.json`,showLineNumbers:!!Mt,wrap:!Mt}),(0,G.jsx)(`div`,{className:`authoring-card-actions`,children:(0,G.jsxs)(`button`,{className:`button accent`,type:`submit`,disabled:!Mt||zt,children:[(0,G.jsx)(V,{size:16}),(0,G.jsx)(`span`,{children:`确认导入`})]})})]})})]}),Vt&&(0,G.jsxs)(`div`,{className:`inline-alert error`,children:[(0,G.jsx)(U,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`操作失败`}),(0,G.jsx)(`p`,{children:Vt})]})]})]}),!e&&i===`project`&&(0,G.jsxs)(`section`,{id:`authoring-panel-project`,className:`authoring-mode-panel`,role:`tabpanel`,"aria-labelledby":`authoring-tab-project`,children:[(0,G.jsxs)(`div`,{className:`authoring-panel-heading`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`eyebrow`,children:`Project detection`}),(0,G.jsx)(`h2`,{children:`识别现有项目`}),(0,G.jsx)(`p`,{children:`复用 FrameworkDetector 展示证据和置信度;确认前不修改源码。`})]}),(0,G.jsx)(`span`,{className:`tag`,children:`Workspace only`})]}),(0,G.jsx)(Vg,{...Lt,children:(0,G.jsxs)(`div`,{className:`authoring-inspect-grid`,children:[(0,G.jsxs)(`form`,{className:`authoring-input-card`,onSubmit:e=>{e.preventDefault(),yn()},children:[(0,G.jsxs)(`div`,{className:`authoring-section-heading`,children:[(0,G.jsx)(`span`,{className:`authoring-section-index`,children:`01`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`指定项目路径`}),(0,G.jsx)(`p`,{children:`仅识别当前工作区内的目录,不会修改项目源码。`})]})]}),(0,G.jsx)(Y,{label:`工作区相对路径`,requirement:`required`,htmlFor:`projectPath`,hint:`仅检查当前工作区内的目录,不会修改项目源码。`,error:Lt.formState.errors.path?.message,children:(0,G.jsx)(`input`,{id:`projectPath`,...Lt.register(`path`)})}),(0,G.jsx)(`div`,{className:`authoring-card-actions`,children:(0,G.jsxs)(`button`,{className:`button accent`,type:`submit`,disabled:zt,children:[(0,G.jsx)(tt,{size:16}),(0,G.jsx)(`span`,{children:zt?`检测中`:`检测项目`})]})})]}),(0,G.jsxs)(`form`,{className:`authoring-inspection-card`,onSubmit:Lt.handleSubmit(bn),noValidate:!0,children:[(0,G.jsxs)(`div`,{className:`authoring-section-heading`,children:[(0,G.jsx)(`span`,{className:`authoring-section-index`,children:`02`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`检查并确认`}),(0,G.jsx)(`p`,{children:`核对 FrameworkDetector 证据与置信度,再创建 Revision。`})]}),(0,G.jsx)(`span`,{className:`badge`,"data-state":Ft?`ready`:`pending`,"aria-live":`polite`,children:Ft?`检测完成`:`等待检测`})]}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`显示名称`,requirement:`required`,htmlFor:`projectName`,error:Lt.formState.errors.name?.message,children:(0,G.jsx)(`input`,{id:`projectName`,...Lt.register(`name`)})}),(0,G.jsx)(Rz,{id:`projectSlug`,value:Lt.watch(`slug`),onChange:e=>Lt.setValue(`slug`,e,{shouldDirty:!0,shouldValidate:!0}),error:Lt.formState.errors.slug?.message})]}),(0,G.jsx)(Db,{code:Ft?JSON.stringify(Ft,null,2):`输入本地项目路径后显示 FrameworkDetector 证据。`,language:Ft?`json`:`text`,filename:`project-inspection.json`,showLineNumbers:!!Ft,wrap:!Ft}),(0,G.jsx)(`div`,{className:`authoring-card-actions`,children:(0,G.jsxs)(`button`,{className:`button accent`,type:`submit`,disabled:!Ft||zt,children:[(0,G.jsx)(V,{size:16}),(0,G.jsx)(`span`,{children:`确认创建 Revision`})]})})]})]})}),Vt&&(0,G.jsxs)(`div`,{className:`inline-alert error`,children:[(0,G.jsx)(U,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`操作失败`}),(0,G.jsx)(`p`,{children:Vt})]})]})]}),!e&&i===`quick`&&(0,G.jsxs)(`div`,{id:`authoring-panel-quick`,className:`wizard-layout`,role:`tabpanel`,"aria-labelledby":`authoring-tab-quick`,children:[(0,G.jsx)(Vg,{...k,children:(0,G.jsxs)(`form`,{id:`quickAgentForm`,className:`wizard-content`,onSubmit:k.handleSubmit(pn),noValidate:!0,children:[(0,G.jsxs)(`section`,{className:`wizard-panel${T===1?` active`:``}`,hidden:T!==1,children:[(0,G.jsxs)(`div`,{className:`panel-heading`,children:[(0,G.jsx)(`span`,{className:`panel-index`,children:`01`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:`定义 Agent 的角色`}),(0,G.jsx)(`p`,{children:`选择起点,并说明 Agent 的职责、边界和期望行为。`})]})]}),(0,G.jsxs)(`div`,{className:`field`,children:[(0,G.jsx)(`label`,{children:`创建方式`}),(0,G.jsxs)(`div`,{className:`template-grid`,children:[(0,G.jsxs)(`button`,{className:`template-card${I===`blank`?` selected`:``}`,type:`button`,onClick:()=>{k.setValue(`template`,`blank`,{shouldDirty:!0}),cn()},children:[(0,G.jsx)(`span`,{className:`template-icon`,children:(0,G.jsx)(N,{size:18})}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`空白 Agent`}),(0,G.jsx)(`small`,{children:`输入系统提示词,自主选择能力和执行策略`})]}),(0,G.jsx)(`span`,{className:`choice-check`,children:(0,G.jsx)(V,{size:14})})]}),(0,G.jsxs)(`button`,{className:`template-card${I===`research`?` selected`:``}`,type:`button`,onClick:()=>{k.setValue(`template`,`research`,{shouldDirty:!0}),cn()},children:[(0,G.jsx)(`span`,{className:`template-icon`,children:(0,G.jsx)(tt,{size:18})}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`深度调研`}),(0,G.jsx)(`small`,{children:`预置问题拆解、来源验证和引用报告方法`})]}),(0,G.jsx)(`span`,{className:`choice-check`,children:(0,G.jsx)(V,{size:14})})]})]})]}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`Agent 名称`,requirement:`required`,htmlFor:`quickAgentName`,error:k.formState.errors.name?.message,children:(0,G.jsx)(`input`,{id:`quickAgentName`,maxLength:128,placeholder:`例如:技术支持助手`,...k.register(`name`,{onChange:cn})})}),(0,G.jsx)(Rz,{value:P,onChange:e=>{k.setValue(`slug`,e,{shouldDirty:!0,shouldValidate:!0}),cn()},error:k.formState.errors.slug?.message})]}),(0,G.jsx)(Y,{label:`Runtime`,requirement:`required`,htmlFor:`quickRuntime`,hint:`由所选 RuntimeAdapter 运行;Codex 支持 OpenAI Responses 与兼容代理。`,error:k.formState.errors.runtimeType?.message,children:(0,G.jsx)(Fh,{id:`quickRuntime`,ariaLabel:`Runtime`,value:F,options:Zt,onValueChange:e=>{k.setValue(`runtimeType`,e,{shouldDirty:!0,shouldValidate:!0}),cn()}})}),F===`plugin`&&(0,G.jsxs)(`div`,{className:`template-specific`,"data-testid":`external-provider-config`,children:[(0,G.jsx)(Y,{label:`AgentProvider`,requirement:`required`,htmlFor:`quickAgentProvider`,hint:`选项来自本机已安装的 agent.provider/v1;不可用版本会保留原因但不能选择。`,children:(0,G.jsx)(Fh,{id:`quickAgentProvider`,ariaLabel:`AgentProvider`,value:h,placeholder:`没有可用的 AgentProvider`,options:Xt,disabled:!Xt.some(e=>!e.disabled),onValueChange:e=>{_(e),x(!1),cn()}})}),!Yt?.selectable&&(0,G.jsxs)(`div`,{className:`inline-alert warning`,role:`status`,children:[(0,G.jsx)(U,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`AgentProvider 当前不可用`}),(0,G.jsx)(`p`,{children:Yt?.reason?.message||`请先在插件中心安装并启用兼容的 AgentProvider。`})]})]}),(0,G.jsx)(Y,{label:`Provider 配置`,requirement:`optional`,htmlFor:`quickProviderConfig`,hint:`填写 JSON 对象;密码、Token、API Key 只能使用 env://、secret://、credential:// 或 vault:// 引用。`,children:(0,G.jsx)(`textarea`,{id:`quickProviderConfig`,className:`mono`,rows:5,value:v,onChange:e=>{y(e.target.value),cn()}})}),Yt?.permissions.length?(0,G.jsxs)(`label`,{className:`post-create-option`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:b,onChange:e=>{x(e.target.checked),cn()}}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`确认 Provider 请求的权限`}),(0,G.jsxs)(`small`,{children:[Yt.permissions.join(`、`),`;确认后才会写入本 Revision。`]})]})]}):null]}),(0,G.jsx)(Y,{label:`描述`,requirement:`optional`,htmlFor:`quickDescription`,error:k.formState.errors.description?.message,children:(0,G.jsx)(`input`,{id:`quickDescription`,maxLength:1024,placeholder:`简要说明这个 Agent 解决什么问题`,...k.register(`description`,{onChange:cn})})}),(0,G.jsx)(Y,{label:`Agent 目标与要求`,requirement:`required`,htmlFor:`quickPrompt`,hint:`写清角色、目标、工作边界和回答方式。`,error:k.formState.errors.prompt?.message,footer:(0,G.jsxs)(`div`,{className:`field-footer`,children:[(0,G.jsx)(`span`,{children:`角色 · 目标 · 边界 · 回答方式`}),(0,G.jsxs)(`span`,{children:[R.length,` / 32768`]})]}),children:(0,G.jsx)(`textarea`,{id:`quickPrompt`,rows:7,maxLength:32768,placeholder:`例如:你是一名企业技术支持助手。先识别问题类型,再结合知识库给出准确、可执行的处理步骤;信息不足时先提问,不要编造事实。`,...k.register(`prompt`,{onChange:cn})})}),I===`research`&&(0,G.jsxs)(`div`,{className:`template-specific`,children:[(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`目标读者`,requirement:`required`,htmlFor:`researchAudience`,error:k.formState.errors.audience?.message,children:(0,G.jsx)(`input`,{id:`researchAudience`,maxLength:256,...k.register(`audience`)})}),(0,G.jsx)(Y,{label:`输出语言`,requirement:`required`,htmlFor:`researchLanguage`,children:(0,G.jsx)(Fh,{id:`researchLanguage`,ariaLabel:`输出语言`,value:B,options:[{value:`zh-CN`,label:`简体中文`},{value:`en-US`,label:`English`}],onValueChange:e=>k.setValue(`language`,e,{shouldDirty:!0,shouldValidate:!0})})})]}),(0,G.jsxs)(`div`,{className:`field`,children:[(0,G.jsx)(`label`,{children:`调研深度`}),(0,G.jsx)(`div`,{className:`choice-grid`,children:[{value:`focused`,label:`聚焦`,desc:`8 个步骤,适合快速事实核验`,time:`约 3 分钟`},{value:`standard`,label:`标准`,desc:`16 个步骤,兼顾范围和深度`,time:`约 8 分钟`},{value:`deep`,label:`深度`,desc:`28 个步骤,多来源交叉验证`,time:`约 15 分钟`}].map(e=>(0,G.jsxs)(`button`,{className:`choice-card${H===e.value?` selected`:``}`,type:`button`,onClick:()=>k.setValue(`depth`,e.value,{shouldDirty:!0}),children:[(0,G.jsx)(`span`,{className:`choice-check`,children:(0,G.jsx)(V,{size:14})}),(0,G.jsx)(`strong`,{children:e.label}),(0,G.jsx)(`span`,{children:e.desc}),(0,G.jsx)(`small`,{children:e.time})]},e.value))})]}),(0,G.jsx)(Y,{label:`默认输出`,requirement:`required`,htmlFor:`researchFormat`,children:(0,G.jsx)(Fh,{id:`researchFormat`,ariaLabel:`默认输出`,value:ee,options:[{value:`report`,label:`结构化研究报告`},{value:`brief`,label:`决策简报`},{value:`evidence-table`,label:`证据矩阵与结论`}],onValueChange:e=>k.setValue(`format`,e,{shouldDirty:!0,shouldValidate:!0})})})]})]}),(0,G.jsxs)(`section`,{className:`wizard-panel${T===2?` active`:``}`,hidden:T!==2,children:[(0,G.jsxs)(`div`,{className:`panel-heading`,children:[(0,G.jsx)(`span`,{className:`panel-index`,children:`02`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:`选择 Agent 可以使用的能力`}),(0,G.jsx)(`p`,{children:`所有依赖都会在构建时锁定版本和摘要,并由权限策略控制调用。`})]})]}),F===`codex`&&(0,G.jsxs)(`div`,{className:`inline-alert warning codex-capability-notice`,children:[(0,G.jsx)(U,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`ManagedRuntime 不绑定 ksadk Tool`}),(0,G.jsx)(`p`,{children:`codex CLI 自身提供工具能力,ksadk Tool 不会绑定到 codex Agent。MCP(streamable-http)与 Skill 可绑定:MCP 经 codex config_overrides 注入,Skill 以原生 SkillInput 注入。模型仍需选择并配置凭证。`})]})]}),(0,G.jsxs)(`div`,{className:`capability-section`,children:[(0,G.jsxs)(`div`,{className:`capability-heading`,children:[(0,G.jsx)(`span`,{className:`capability-icon`,children:(0,G.jsx)(ge,{size:15})}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`h3`,{children:[`模型 `,(0,G.jsx)(`span`,{className:`studio-field-requirement required`,"aria-hidden":`true`,children:`*`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`必填`})]}),(0,G.jsx)(`p`,{children:`至少选择一个;支持多选`})]})]}),Dn&&(0,G.jsx)(`div`,{className:`model-profile-control`,children:(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:()=>Fe(Tn[0]||null),children:`配置凭证`})}),(0,G.jsx)(Tb,{ariaLabel:`选择模型`,items:Wt,selectedIds:ie,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>`${e.contract?.model||e.name} · ${en(e)?`凭证已配置`:`需配置凭证`}`,onChange:e=>{ae(e),cn()},searchPlaceholder:`搜索模型`,emptyMessage:`没有可用模型`}),(0,G.jsx)(`span`,{className:`helper`,children:En})]}),F!==`codex`&&(0,G.jsxs)(`div`,{className:`capability-section`,children:[(0,G.jsxs)(`div`,{className:`capability-heading`,children:[(0,G.jsx)(`span`,{className:`capability-icon`,children:(0,G.jsx)(yt,{size:15})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{children:`Tool 与权限`}),(0,G.jsx)(`p`,{children:`选择本地 Tool,并设置默认审批级别`})]})]}),(0,G.jsx)(`div`,{className:`segmented-control`,"aria-label":`Tool 权限模板`,children:[`loose`,`strict`,`custom`].map(e=>(0,G.jsx)(`button`,{className:W===e?`selected`:``,type:`button`,onClick:()=>{fe(e),cn()},children:{loose:`宽松`,strict:`严格`,custom:`自定义`}[e]},e))}),(0,G.jsx)(`p`,{className:`policy-description`,children:Cn.description}),(0,G.jsx)(Tb,{ariaLabel:`选择 Tool`,items:Gt,selectedIds:oe,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>`${e.version} · ${e.description||`本地 Tool`}`,onChange:e=>{se(e),cn()},searchPlaceholder:`搜索 Tool`,emptyMessage:`没有可用 Tool`})]}),(0,G.jsxs)(`div`,{className:`capability-section`,children:[(0,G.jsxs)(`div`,{className:`capability-heading`,children:[(0,G.jsx)(`span`,{className:`capability-icon`,children:(0,G.jsx)(Ve,{size:15})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{children:`MCP Server`}),(0,G.jsx)(`p`,{children:`连接外部服务并提供可发现的 Tool;codex 经 config_overrides 注入 streamable-http MCP`})]}),(0,G.jsxs)(`button`,{className:`button secondary small`,type:`button`,onClick:()=>Re(!0),children:[(0,G.jsx)(Qe,{size:14}),(0,G.jsx)(`span`,{children:`连接 MCP`})]})]}),(0,G.jsx)(Tb,{ariaLabel:`选择 MCP Server`,items:Kt,selectedIds:ce,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>`${e.description||`MCP Server`} · ${e.health?.toolCount||0} Tool · ${e.status===`ready`?`Ready`:e.status}`,onChange:e=>{le(e),cn()},searchPlaceholder:`搜索 MCP Server`,emptyMessage:`没有已连接的 MCP Server`})]}),(0,G.jsxs)(`div`,{className:`capability-section`,children:[(0,G.jsxs)(`div`,{className:`capability-heading`,children:[(0,G.jsx)(`span`,{className:`capability-icon`,children:(0,G.jsx)(ct,{size:15})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{children:`Skill`}),(0,G.jsx)(`p`,{children:`按需注入可复用的方法、知识和任务约束`})]})]}),(0,G.jsx)(Tb,{ariaLabel:`选择 Skill`,items:qt,selectedIds:ue,getId:e=>e.resourceId,getLabel:e=>e.displayName,getDescription:e=>`${e.version} · ${e.description||`版本化 Skill`}`,onChange:e=>{de(e),cn()},searchPlaceholder:`搜索 Skill`,emptyMessage:`没有已安装的 Skill`})]})]}),(0,G.jsxs)(`section`,{className:`wizard-panel${T===3?` active`:``}`,hidden:T!==3,children:[(0,G.jsxs)(`div`,{className:`panel-heading`,children:[(0,G.jsx)(`span`,{className:`panel-index`,children:`03`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:`检查系统提示词与任务契约`}),(0,G.jsx)(`p`,{children:`保存前可以继续编辑,创建时会完整写入 Agent Draft。`})]}),(0,G.jsxs)(`button`,{className:`button secondary small`,type:`button`,disabled:Ce===`composing`,onClick:dn,children:[(0,G.jsx)(et,{size:14}),(0,G.jsx)(`span`,{children:Ce===`composing`?Te===`optimize`?`正在优化`:`正在生成`:`一键优化 Prompt`})]})]}),(0,G.jsxs)(`div`,{className:`prompt-status`,children:[(0,G.jsx)(`span`,{className:`status-dot ${Ce===`done`?`success`:`info`}`}),(0,G.jsx)(`span`,{children:Ce===`composing`?Te===`optimize`?`正在使用生成模型优化角色与任务契约`:`正在根据模板与能力生成角色与任务契约`:Ce===`done`?`角色与任务契约已根据当前选择生成`:`进入此步骤后生成 Prompt`})]}),(0,G.jsx)(Y,{label:`角色与系统提示词`,requirement:`required`,htmlFor:`composedSystemPrompt`,hint:`定义角色、目标、工作边界和回答原则`,error:k.formState.errors.systemPrompt?.message,children:(0,G.jsx)(`textarea`,{id:`composedSystemPrompt`,className:`prompt-editor`,rows:16,...k.register(`systemPrompt`,{onChange:cn})})}),(0,G.jsx)(Y,{label:`任务契约`,requirement:`optional`,htmlFor:`composedTaskPrompt`,hint:`约束每次请求的执行步骤、工具使用和交付结构`,error:k.formState.errors.taskPrompt?.message,children:(0,G.jsx)(`textarea`,{id:`composedTaskPrompt`,className:`prompt-editor`,rows:10,...k.register(`taskPrompt`,{onChange:cn})})}),(0,G.jsxs)(`details`,{className:`pcm-policy-card`,children:[(0,G.jsx)(`summary`,{children:(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`上下文与记忆策略`}),(0,G.jsx)(`small`,{children:`按 Runtime 能力控制 Prompt 归属、上下文优化和长期记忆`})]})}),(0,G.jsxs)(`div`,{className:`pcm-policy-body form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`上下文责任边界`,requirement:`optional`,htmlFor:`contextOwnership`,hint:`决定由平台、框架或原生 Runtime 负责最终输入。`,children:(0,G.jsx)(Fh,{id:`contextOwnership`,ariaLabel:`上下文责任边界`,value:pe,options:Se,onValueChange:e=>{me(e),cn()}})}),(0,G.jsx)(Y,{label:`上下文优化`,requirement:`optional`,htmlFor:`contextEngineRollout`,hint:`控制预算规划、压缩和降载能力的启用阶段。`,children:(0,G.jsx)(Fh,{id:`contextEngineRollout`,ariaLabel:`上下文优化`,value:he,options:[{value:`off`,label:`Runtime 默认`,description:`不启用平台上下文优化`},{value:`shadow`,label:`仅观察`,description:`记录规划证据但不接管输入`},{value:`enabled`,label:`正式启用`,description:`按预算规划并组装上下文`}],onValueChange:e=>{_e(e),cn()}})}),(0,G.jsxs)(`label`,{className:`post-create-option`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:ve,onChange:e=>{ye(e.target.checked),cn()}}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`启用长期记忆`}),(0,G.jsx)(`small`,{children:`按 Agent 和用户作用域召回相关事实;凭证不会写入 Agent 配置。`})]})]}),(0,G.jsx)(Y,{label:`记忆写入`,requirement:`optional`,htmlFor:`memoryWriteRollout`,hint:`关闭记忆时固定为不写入。`,children:(0,G.jsx)(Fh,{id:`memoryWriteRollout`,ariaLabel:`记忆写入`,value:ve?be:`off`,disabled:!ve,options:[{value:`off`,label:`不写入`},{value:`shadow`,label:`仅生成候选`},{value:`enabled`,label:`允许写入`}],onValueChange:e=>{xe(e),cn()}})})]})]})]}),(0,G.jsxs)(`section`,{className:`wizard-panel${T===4?` active`:``}`,hidden:T!==4,children:[(0,G.jsxs)(`div`,{className:`panel-heading`,children:[(0,G.jsx)(`span`,{className:`panel-index`,children:`04`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:`检查配置并创建`}),(0,G.jsx)(`p`,{children:`确认 Agent 身份、能力依赖和创建后的动作。`})]})]}),(0,G.jsxs)(`div`,{className:`review-block`,children:[(0,G.jsxs)(`div`,{className:`review-title`,children:[(0,G.jsx)(`span`,{children:`Agent`}),(0,G.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>fn(1),children:`编辑`})]}),(0,G.jsxs)(`div`,{className:`review-agent`,children:[(0,G.jsx)(`span`,{className:`agent-avatar`,children:I===`research`?(0,G.jsx)(tt,{size:16}):(0,G.jsx)(N,{size:16})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:M}),(0,G.jsxs)(`span`,{children:[P,` · `,F,` · `,xn]}),(0,G.jsx)(`p`,{children:R||`等待填写系统提示词`})]})]})]}),(0,G.jsxs)(`div`,{className:`review-block`,children:[(0,G.jsxs)(`div`,{className:`review-title`,children:[(0,G.jsx)(`span`,{children:`能力绑定`}),(0,G.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>fn(2),children:`编辑`})]}),(0,G.jsxs)(`div`,{className:`review-capabilities`,children:[(0,G.jsxs)(`div`,{className:`review-capability`,children:[(0,G.jsx)(ge,{size:16}),(0,G.jsx)(`div`,{children:(0,G.jsx)(`strong`,{children:Tn[0]?.displayName||`模型`})})]}),(0,G.jsxs)(`div`,{className:`review-capability`,children:[(0,G.jsx)(yt,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`strong`,{children:[oe.length,` 个 Tool`]}),(0,G.jsx)(`span`,{children:Cn.title})]})]}),(0,G.jsxs)(`div`,{className:`review-capability`,children:[(0,G.jsx)(Ve,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`strong`,{children:[ce.length,` 个 MCP`]}),(0,G.jsx)(`span`,{children:ce.length?`已连接外部服务`:`未绑定`})]})]}),(0,G.jsxs)(`div`,{className:`review-capability`,children:[(0,G.jsx)(ct,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`strong`,{children:[ue.length,` 个 Skill`]}),(0,G.jsx)(`span`,{children:ue.length?`已注入版本化能力`:`未绑定`})]})]})]})]}),(0,G.jsxs)(`div`,{className:`review-block`,children:[(0,G.jsxs)(`div`,{className:`review-title`,children:[(0,G.jsx)(`span`,{children:`Prompt`}),(0,G.jsx)(`button`,{className:`text-button`,type:`button`,onClick:()=>fn(3),children:`编辑`})]}),(0,G.jsx)(`div`,{className:`prompt-preview`,children:te||R||`等待生成`})]}),(0,G.jsxs)(`label`,{className:`post-create-option`,children:[(0,G.jsx)(`input`,{type:`checkbox`,...k.register(`buildAfterCreate`)}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:On?`创建后立即校验 YAML 声明并打开会话`:`创建后立即构建并打开会话`}),(0,G.jsx)(`small`,{children:On?`只冻结 YAML 和 runtime 摘要;部署时不会上传代码包。`:`生成不可变 AgentBundle,完成后进入 Chat 工作台`})]})]})]}),Oe&&(0,G.jsxs)(`div`,{className:`inline-alert error wizard-error-summary`,role:`alert`,children:[(0,G.jsx)(U,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`需要处理一项配置`}),(0,G.jsx)(`p`,{children:Oe})]})]}),(0,G.jsxs)(`footer`,{className:`wizard-actions`,children:[(0,G.jsxs)(`button`,{className:`button secondary`,type:`button`,disabled:T===1,onClick:()=>fn(T-1),children:[(0,G.jsx)(A,{size:16}),(0,G.jsx)(`span`,{children:`上一步`})]}),(0,G.jsxs)(`span`,{className:`wizard-progress`,children:[`第 `,T,` 步,共 4 步`]}),(0,G.jsxs)(`dl`,{className:`summary-chips`,"aria-label":`配置摘要`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`模板`}),(0,G.jsx)(`dd`,{children:xn})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Runtime`}),(0,G.jsx)(`dd`,{children:Sn})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`模型`}),(0,G.jsx)(`dd`,{children:wn})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Tool`}),(0,G.jsx)(`dd`,{children:oe.length})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`MCP`}),(0,G.jsx)(`dd`,{children:ce.length})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Skill`}),(0,G.jsx)(`dd`,{children:ue.length})]})]}),(0,G.jsxs)(`button`,{className:`button tertiary summary-toggle`,type:`button`,"aria-expanded":Me,onClick:()=>Ne(e=>!e),children:[(0,G.jsx)(Ke,{size:16}),(0,G.jsx)(`span`,{children:`完整摘要`})]}),(0,G.jsxs)(`div`,{className:`wizard-flow-actions`,children:[(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:sn,children:`保存草稿`}),T<4?(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:()=>fn(T+1),children:[(0,G.jsx)(`span`,{children:`继续`}),(0,G.jsx)(j,{size:16})]}):(0,G.jsxs)(`button`,{className:`button accent`,type:`submit`,disabled:Ae,children:[(0,G.jsx)(Qe,{size:16}),(0,G.jsx)(`span`,{children:Ae?`正在创建`:`创建 Agent`})]})]})]})]})}),(0,G.jsx)(Oa,{open:Me,compact:!0,title:`配置摘要`,subtitle:`检查本轮创建使用的 Runtime、模型、能力与权限策略。`,onOpenChange:Ne,children:(0,G.jsxs)(`div`,{className:`wizard-summary-content`,children:[(0,G.jsxs)(`dl`,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`模板`}),(0,G.jsx)(`dd`,{children:xn})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Runtime`}),(0,G.jsx)(`dd`,{children:Sn})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`模型`}),(0,G.jsx)(`dd`,{children:wn})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Skill`}),(0,G.jsx)(`dd`,{children:ue.length})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`MCP`}),(0,G.jsx)(`dd`,{children:ce.length})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Tool`}),(0,G.jsx)(`dd`,{children:oe.length})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`策略`}),(0,G.jsx)(`dd`,{children:I===`research`?`Plan-Act-Observe`:`Direct`})]})]}),(0,G.jsx)(`div`,{className:`summary-divider`}),(0,G.jsxs)(`div`,{className:`summary-note`,children:[(0,G.jsx)(ot,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:Cn.title}),(0,G.jsx)(`p`,{children:Cn.description})]})]}),(0,G.jsxs)(`div`,{className:`summary-note`,children:[(0,G.jsx)(Ue,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:On?`声明校验`:`不可变构建`}),(0,G.jsx)(`p`,{children:On?`冻结 YAML 与 runtime 摘要;云端部署不使用代码包。`:`Skill、MCP 和 Tool 将锁定版本与摘要。`})]})]})]})})]})]})]}),Pe&&(0,G.jsx)(Az,{model:Pe,onClose:()=>Fe(null),onChanged:Ut}),Ie&&(0,G.jsx)(Mz,{onClose:()=>Re(!1),onConnected:()=>{Re(!1),Ut()}})]})}function uV(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:new Intl.DateTimeFormat(`zh-CN`,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}).format(t)}function dV(e){return e.displayName||e.command.payload.content?.slice(0,28)||e.taskId}function fV(e){return e.kind===`once`?`单次 · ${uV(e.at)}`:e.kind===`interval`?`每 ${e.everySeconds||60} 秒`:e.expression||`Cron`}function pV(e=``){return{agentId:e,displayName:``,prompt:``,kind:`cron`,timezone:`Asia/Shanghai`,at:``,everySeconds:`3600`,expression:`0 9 * * 1-5`,misfirePolicy:`run_once`,enabled:!0,continuity:`new_session`,sessionId:``}}function mV(e){return{...pV(e.target.agentId||``),agentId:e.target.agentId||``,displayName:e.displayName||``,prompt:e.command.payload.content||``,kind:e.schedule.kind,timezone:e.schedule.timezone||`Asia/Shanghai`,at:e.schedule.at?e.schedule.at.slice(0,16):``,everySeconds:String(e.schedule.everySeconds||3600),expression:e.schedule.expression||`0 9 * * 1-5`,misfirePolicy:e.schedule.misfirePolicy||`skip`,enabled:e.enabled,continuity:e.continuity,sessionId:e.target.sessionId||``}}function hV(e){let t={kind:e.kind,timezone:e.timezone.trim()||`Asia/Shanghai`,misfirePolicy:e.misfirePolicy};if(e.kind===`once`){if(!e.at)throw Error(`请填写单次任务的执行时间`);t.at=new Date(e.at).toISOString()}else if(e.kind===`interval`){let n=Number(e.everySeconds);if(!Number.isInteger(n)||n<60)throw Error(`间隔至少为 60 秒`);t.everySeconds=n}else{if(!e.expression.trim())throw Error(`请填写 Cron 表达式`);t.expression=e.expression.trim()}return{displayName:e.displayName.trim()||e.prompt.trim().slice(0,32),prompt:e.prompt.trim(),schedule:t,enabled:e.enabled,continuity:e.continuity,sessionId:e.continuity===`continue_session`&&e.sessionId.trim()||null}}function gV(e){return e===`succeeded`?`成功`:e===`failed`?`失败`:e===`running`?`运行中`:e===`accepted`?`已接收`:e===`claimed`?`已认领`:e===`skipped`?`已跳过`:e===`cancelled`?`已取消`:e||`未知`}function _V(e){return e===`succeeded`?`ready`:e===`failed`||e===`cancelled`?`failed`:`pending`}function vV(e){return e.state===`claimed`||e.state===`accepted`||e.state===`running`}var yV={DISPATCH_FAILED:`提交失败`,PLUGIN_EXECUTION_FAILED:`插件执行失败`,RUNTIME_TIMEOUT:`执行超时`,misfire_skipped:`错过计划时间,已按策略跳过`,concurrency_forbid_active_occurrence:`已有执行未结束,本次已跳过`,runtime_completed:`运行时已确认完成`};function bV(e){return e?yV[e]||e:``}function xV(e){if(!e.errorCode)return`执行说明`;let t=bV(e.errorCode);return t===e.errorCode?t:`${t} · ${e.errorCode}`}function SV(e){return e.transitions?.length?e.transitions:[e.claimedAt&&{state:`claimed`,at:e.claimedAt},e.acceptedAt&&{state:`accepted`,at:e.acceptedAt},e.startedAt&&{state:`running`,at:e.startedAt},e.completedAt&&{state:e.state,at:e.completedAt,detail:e.detail,errorCode:e.errorCode}].filter(Boolean)}function CV({items:e,taskNames:t,agentNames:n}){return e.length?(0,G.jsx)(`div`,{className:`automation-occurrences`,children:e.map(e=>{let r=e.target?.agentId||``,i=SV(e);return(0,G.jsxs)(`article`,{className:`automation-occurrence-card`,children:[(0,G.jsxs)(`div`,{className:`automation-occurrence-summary`,children:[(0,G.jsx)(`span`,{className:`automation-state`,"data-state":_V(e.state),children:gV(e.state)}),(0,G.jsx)(`strong`,{children:t.get(e.taskId)||e.taskId}),(0,G.jsx)(`span`,{children:e.trigger===`manual`?`手动触发`:`计划触发`}),(0,G.jsx)(`time`,{children:uV(e.scheduledFor)})]}),(0,G.jsxs)(`dl`,{className:`automation-occurrence-facts`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Occurrence`}),(0,G.jsx)(`dd`,{children:e.occurrenceId})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Agent`}),(0,G.jsx)(`dd`,{children:n.get(r)||r||`目标已删除`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Attempt`}),(0,G.jsx)(`dd`,{children:e.attempt||1})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Command`}),(0,G.jsx)(`dd`,{children:e.commandId||`尚未接收`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Session`}),(0,G.jsx)(`dd`,{children:e.sessionId})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Run`}),(0,G.jsx)(`dd`,{children:e.runId||`尚未绑定`})]})]}),i.length>0&&(0,G.jsx)(`ol`,{className:`automation-timeline`,"aria-label":`${e.occurrenceId} 状态时间线`,children:i.map((e,t)=>(0,G.jsxs)(`li`,{children:[(0,G.jsx)(`span`,{children:gV(e.state)}),(0,G.jsx)(`time`,{children:uV(e.at)}),(e.errorCode||e.detail)&&(0,G.jsx)(`small`,{children:bV(e.errorCode||e.detail)})]},`${e.state}-${e.at}-${t}`))}),(e.errorCode||e.detail)&&(0,G.jsxs)(`div`,{className:`automation-diagnosis`,children:[(0,G.jsx)(`strong`,{children:xV(e)}),(0,G.jsx)(`span`,{children:bV(e.detail)||`—`})]})]},e.occurrenceId)})}):(0,G.jsx)(`p`,{className:`automation-empty`,children:`还没有执行记录。`})}function wV({currentAgentId:e,agents:t,onSelectAgent:n,scopedAgentId:r=``,embedded:i=!1,onTaskCountChanged:a}){let[o,c]=(0,s.useState)([]),[l,u]=(0,s.useState)([]),[d,f]=(0,s.useState)(null),[p,m]=(0,s.useState)(!0),[h,_]=(0,s.useState)(``),[v,y]=(0,s.useState)(null),[b,x]=(0,s.useState)([]),[S,C]=(0,s.useState)(()=>pV(e)),[w,T]=(0,s.useState)(``),[E,D]=(0,s.useState)(!1),[O,k]=(0,s.useState)(!1),[A,j]=(0,s.useState)(null),[M,N]=(0,s.useState)(`tasks`),[P,F]=(0,s.useState)(r),I=(0,s.useCallback)(async()=>{m(!0),_(``);try{let[e,t]=await Promise.all([g(`/api/v1/schedules`),g(`/api/v1/schedule-occurrences?limit=200`)]);if(!e.ok)throw Error(`定时任务加载失败(${e.status})`);let n=await e.json(),i=t.ok?await t.json():{items:[]},o=n.items||[];c(o),u(i.items||[]),f(n.availability||null),y(e=>o.find(t=>t.taskId===e?.taskId)||null),a&&a(r?o.filter(e=>e.target.agentId===r).length:o.length)}catch(e){_(e?.message||`定时任务加载失败`)}finally{m(!1)}},[a,r]),L=(0,s.useCallback)(async(e,t=!0)=>{y(e),t&&x([]);let n=e.target.agentId||``;if(!n)return[];let r=await g(`/api/v1/agents/${encodeURIComponent(n)}/schedules/${encodeURIComponent(e.taskId)}/occurrences`);if(!r.ok)return[];let i=(await r.json()).items||[];return x(i),i},[]);(0,s.useEffect)(()=>{I()},[I]),(0,s.useEffect)(()=>{F(r)},[r]),(0,s.useEffect)(()=>{w||C(pV(e))},[e,w]);let R=b.some(vV);(0,s.useEffect)(()=>{if(!v||!R)return;let e=window.setInterval(()=>{L(v,!1).then(e=>{e.some(vV)||I()})},750);return()=>window.clearInterval(e)},[L,I,R,v]);let B=(0,s.useMemo)(()=>new Map(t.map(e=>[e.metadata.id,e.metadata.name])),[t]),V=(0,s.useMemo)(()=>new Map(o.map(e=>[e.taskId,dV(e)])),[o]),H=(0,s.useMemo)(()=>P?o.filter(e=>e.target.agentId===P):o,[P,o]),ee=(0,s.useMemo)(()=>P?l.filter(e=>e.target?.agentId===P):l,[P,l]),te=(0,s.useMemo)(()=>{let e=new Map;for(let t of l)e.has(t.taskId)||e.set(t.taskId,t);return e},[l]),ne=[{id:`task`,header:`任务`,minWidth:220,cell:e=>(0,G.jsxs)(`div`,{className:`automation-task-cell`,children:[(0,G.jsx)(`strong`,{children:dV(e)}),(0,G.jsx)(`span`,{children:B.get(e.target.agentId||``)||e.target.agentId||`历史任务`})]})},{id:`trigger`,header:`触发规则`,minWidth:150,cell:e=>fV(e.schedule)},{id:`next`,header:`下次执行`,minWidth:120,cell:e=>uV(e.nextRunAt)},{id:`mode`,header:`会话`,minWidth:100,cell:e=>e.continuity===`continue_session`?`继续会话`:`新会话`},{id:`recent`,header:`最近终态`,minWidth:110,cell:e=>te.has(e.taskId)?gV(te.get(e.taskId).state):`—`},{id:`state`,header:`状态`,width:110,cell:e=>{let t=e.enabled?d?.triggerActive?`已启用`:`已配置`:`已停用`;return(0,G.jsx)(`span`,{className:`automation-state`,"data-state":e.enabled&&d?.triggerActive?`ready`:`idle`,children:t})}}];function U(e){T(e.taskId),C(mV(e)),y(e),D(!0),N(`tasks`),L(e)}async function re(){if(!S.agentId){_(`请选择 Agent`);return}if(!S.prompt.trim()){_(`请填写到期时发送给 Agent 的提示词`);return}k(!0),_(``);try{let e=hV(S),t=!!w,n=await g(t?`/api/v1/agents/${encodeURIComponent(S.agentId)}/schedules/${encodeURIComponent(w)}`:`/api/v1/agents/${encodeURIComponent(S.agentId)}/schedules`,{method:t?`PUT`:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),r=await n.json().catch(()=>null);if(!n.ok)throw Error(r?.error?.message||`保存失败(${n.status})`);T(``),D(!1),C(pV(S.agentId)),J(t?`定时任务已更新`:`定时任务已创建`,r?.displayName||`本地自动化`),await I(),t&&r&&await L(r)}catch(e){_(e?.message||`保存定时任务失败`)}finally{k(!1)}}async function ie(e){let t=e.target.agentId;if(!t){_(`历史任务缺少 Agent 标识,不能从 Studio 触发`);return}let n=await g(`/api/v1/agents/${encodeURIComponent(t)}/schedules/${encodeURIComponent(e.taskId)}:run`,{method:`POST`}),r=await n.json().catch(()=>null);if(!n.ok){_(r?.error?.message||`立即运行失败(${n.status})`);return}J(`已提交到本地 Agent Kernel`,`等待终态对账,不以 accepted 当作成功。`),await L(e),await I()}async function ae(e){let t=e.target.agentId;if(!t)return;let n={...mV(e),enabled:!e.enabled};if(!(await g(`/api/v1/agents/${encodeURIComponent(t)}/schedules/${encodeURIComponent(e.taskId)}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(hV(n))})).ok){_(`更新任务状态失败`);return}await I()}async function oe(){if(A?.target.agentId){if(!(await g(`/api/v1/agents/${encodeURIComponent(A.target.agentId)}/schedules/${encodeURIComponent(A.taskId)}`,{method:`DELETE`})).ok){_(`删除任务失败`);return}j(null),y(null),x([]),await I()}}return(0,G.jsxs)(`div`,{className:`${i?`automation-page-embedded`:`page-container`} automation-page`,"data-layout":i?`embedded`:`document`,children:[!i&&(0,G.jsx)(Sd,{children:(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:()=>{T(``),C(pV(e)),D(!0)},children:[(0,G.jsx)(Qe,{size:15}),`新建定时任务`]})}),(0,G.jsxs)(`div`,{className:`automation-intro`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:i?`该 Agent 的自动化`:`自动化 / 定时任务`}),(0,G.jsx)(`p`,{children:`在已精确绑定的 Agent Kernel 上运行。选择一条任务查看详情,只有新建或编辑时才打开表单。`})]}),(0,G.jsx)(`span`,{className:`automation-availability`,"data-state":d?.triggerActive?`ready`:`idle`,children:d?.triggerActive?`本地调度运行中`:d?.running?`监视中 · 等待 Runtime`:`本地调度未启动`})]}),h&&(0,G.jsx)(`div`,{className:`form-error`,children:h}),(0,G.jsxs)(`div`,{className:`automation-runtime-boundary`,role:`status`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`执行环境`}),(0,G.jsx)(`strong`,{children:`本地 Agent Kernel`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`调度状态`}),(0,G.jsx)(`strong`,{children:d?.triggerActive?`运行中`:d?.running?`等待 Runtime`:`未启动`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`下次扫描`}),(0,G.jsx)(`strong`,{children:uV(d?.nextScanAt)})]})]}),(0,G.jsxs)(`div`,{className:`automation-toolbar`,children:[(0,G.jsxs)(`div`,{className:`automation-tabs`,role:`tablist`,"aria-label":`自动化视图`,children:[(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":M===`tasks`,className:M===`tasks`?`active`:``,onClick:()=>N(`tasks`),children:`全部任务`}),(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":M===`history`,className:M===`history`?`active`:``,onClick:()=>N(`history`),children:`执行记录`})]}),!i&&(0,G.jsxs)(`label`,{children:[`Agent 筛选`,(0,G.jsxs)(`select`,{"aria-label":`筛选 Agent`,value:P,onChange:e=>F(e.target.value),children:[(0,G.jsx)(`option`,{value:``,children:`全部 Agent`}),t.map(e=>(0,G.jsx)(`option`,{value:e.metadata.id,children:e.metadata.name},e.metadata.id))]})]})]}),M===`tasks`&&(0,G.jsxs)(`div`,{className:`automation-layout`,children:[(0,G.jsx)(`section`,{className:`automation-list block`,children:(0,G.jsx)(_m,{columns:ne,data:H,getRowId:e=>e.taskId,caption:`定时任务列表`,loading:p,error:h&&!o.length?h:``,onRetry:()=>void I(),onRowActivate:e=>{D(!1),L(e)},rowAriaLabel:e=>`查看定时任务 ${dV(e)} 的详情`,empty:{icon:(0,G.jsx)(z,{size:22}),title:P?`该 Agent 还没有定时任务`:`还没有定时任务`,description:`创建一个本地任务,在 Agent Kernel 保持运行时自动触发。`}})}),(0,G.jsx)(`aside`,{className:`automation-inspector block${E?` is-editor automation-form`:``}`,children:E?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`section-heading`,children:(0,G.jsxs)(`div`,{className:`section-heading-copy`,children:[(0,G.jsx)(`h2`,{children:w?`编辑定时任务`:`新建定时任务`}),(0,G.jsx)(`p`,{children:`目标实例和版本由 Studio 解析,不由浏览器填写。`})]})}),(0,G.jsxs)(`label`,{children:[`Agent`,(0,G.jsxs)(`select`,{value:S.agentId,disabled:!!w,onChange:e=>{C(t=>({...t,agentId:e.target.value})),n(e.target.value)},children:[(0,G.jsx)(`option`,{value:``,children:`选择 Agent`}),t.map(e=>(0,G.jsx)(`option`,{value:e.metadata.id,children:e.metadata.name},e.metadata.id))]})]}),(0,G.jsxs)(`label`,{children:[`任务名称`,(0,G.jsx)(`input`,{value:S.displayName,onChange:e=>C(t=>({...t,displayName:e.target.value})),placeholder:`例如:工作日销售日报`})]}),(0,G.jsxs)(`label`,{children:[`到期提示词`,(0,G.jsx)(`textarea`,{value:S.prompt,onChange:e=>C(t=>({...t,prompt:e.target.value})),placeholder:`例如:生成昨日销售摘要并列出异常`})]}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsxs)(`label`,{children:[`触发方式`,(0,G.jsxs)(`select`,{value:S.kind,onChange:e=>C(t=>({...t,kind:e.target.value})),children:[(0,G.jsx)(`option`,{value:`cron`,children:`Cron`}),(0,G.jsx)(`option`,{value:`interval`,children:`固定间隔`}),(0,G.jsx)(`option`,{value:`once`,children:`单次`})]})]}),(0,G.jsxs)(`label`,{children:[`时区`,(0,G.jsx)(`input`,{value:S.timezone,onChange:e=>C(t=>({...t,timezone:e.target.value}))})]})]}),S.kind===`cron`&&(0,G.jsxs)(`label`,{children:[`Cron 表达式`,(0,G.jsx)(`input`,{value:S.expression,onChange:e=>C(t=>({...t,expression:e.target.value}))})]}),S.kind===`interval`&&(0,G.jsxs)(`label`,{children:[`间隔(秒)`,(0,G.jsx)(`input`,{type:`number`,min:`60`,value:S.everySeconds,onChange:e=>C(t=>({...t,everySeconds:e.target.value}))})]}),S.kind===`once`&&(0,G.jsxs)(`label`,{children:[`执行时间`,(0,G.jsx)(`input`,{type:`datetime-local`,value:S.at,onChange:e=>C(t=>({...t,at:e.target.value}))})]}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsxs)(`label`,{children:[`错过时`,(0,G.jsxs)(`select`,{value:S.misfirePolicy,onChange:e=>C(t=>({...t,misfirePolicy:e.target.value})),children:[(0,G.jsx)(`option`,{value:`run_once`,children:`补跑一次`}),(0,G.jsx)(`option`,{value:`skip`,children:`跳过`})]})]}),(0,G.jsxs)(`label`,{children:[`会话`,(0,G.jsxs)(`select`,{value:S.continuity,onChange:e=>C(t=>({...t,continuity:e.target.value})),children:[(0,G.jsx)(`option`,{value:`new_session`,children:`新会话`}),(0,G.jsx)(`option`,{value:`continue_session`,children:`继续会话`})]})]})]}),S.continuity===`continue_session`&&(0,G.jsxs)(`label`,{children:[`Session ID`,(0,G.jsx)(`input`,{value:S.sessionId,onChange:e=>C(t=>({...t,sessionId:e.target.value})),placeholder:`选择或粘贴可恢复的本地 Session`})]}),(0,G.jsxs)(`label`,{className:`automation-checkbox`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:S.enabled,onChange:e=>C(t=>({...t,enabled:e.target.checked}))}),`创建后立即启用`]}),(0,G.jsxs)(`div`,{className:`automation-form-actions`,children:[(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:()=>{T(``),C(pV(e)),D(!1)},children:`取消`}),(0,G.jsx)(`button`,{className:`button accent`,type:`button`,disabled:O,onClick:()=>void re(),children:O?`保存中…`:w?`保存变更`:`创建任务`})]})]}):v?(0,G.jsxs)(`div`,{className:`automation-detail`,children:[(0,G.jsxs)(`div`,{className:`automation-detail-heading`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:dV(v)}),(0,G.jsxs)(`p`,{children:[`下次执行 `,uV(v.nextRunAt)]})]}),(0,G.jsx)(`span`,{className:`automation-state`,"data-state":v.enabled&&d?.triggerActive?`ready`:`idle`,children:v.enabled?`已启用`:`已停用`})]}),(0,G.jsxs)(`div`,{className:`automation-detail-actions`,children:[(0,G.jsxs)(`button`,{className:`button secondary small`,type:`button`,onClick:()=>U(v),children:[(0,G.jsx)(Ye,{size:14}),`编辑`]}),(0,G.jsxs)(`button`,{className:`button secondary small`,type:`button`,disabled:!d?.available,onClick:()=>void ie(v),children:[(0,G.jsx)(Xe,{size:14}),`立即运行`]}),(0,G.jsx)(`button`,{className:`button secondary small`,type:`button`,onClick:()=>void ae(v),children:v.enabled?`停用`:`启用`})]}),(0,G.jsxs)(`div`,{className:`automation-detail-grid`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`到期提示词`}),(0,G.jsx)(`p`,{children:v.command.payload.content||`—`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`触发规则`}),(0,G.jsx)(`p`,{children:fV(v.schedule)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`会话`}),(0,G.jsx)(`p`,{children:v.continuity===`continue_session`?`继续已有会话`:`每次新建会话`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`目标 Build`}),(0,G.jsx)(`p`,{children:v.target.agentVersionRef||`—`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`最近一次`}),(0,G.jsx)(`p`,{children:b[0]?`${gV(b[0].state)} · ${uV(b[0].completedAt||b[0].scheduledFor)}`:`暂无记录`})]})]}),(0,G.jsxs)(`div`,{className:`automation-inspector-history`,children:[(0,G.jsxs)(`h3`,{children:[(0,G.jsx)(ue,{size:16}),`最近执行`]}),(0,G.jsx)(CV,{items:b.slice(0,3),taskNames:V,agentNames:B})]}),(0,G.jsxs)(`button`,{className:`automation-delete-link`,type:`button`,onClick:()=>j(v),children:[(0,G.jsx)(ht,{size:14}),`删除`]})]}):(0,G.jsxs)(`div`,{className:`automation-inspector-empty`,children:[(0,G.jsx)(z,{size:22}),(0,G.jsx)(`strong`,{children:`选择一个定时任务`}),(0,G.jsx)(`p`,{children:`查看运行记录、立即执行或修改计划。`}),(0,G.jsxs)(`button`,{className:`button secondary small`,type:`button`,onClick:()=>{T(``),C(pV(e)),D(!0)},children:[(0,G.jsx)(Qe,{size:14}),`新建任务`]})]})})]}),M===`history`&&(0,G.jsxs)(`section`,{className:`automation-history block`,children:[(0,G.jsx)(`div`,{className:`section-heading`,children:(0,G.jsxs)(`div`,{className:`section-heading-copy`,children:[(0,G.jsx)(`h2`,{children:`执行记录`}),(0,G.jsx)(`p`,{children:`持久化的 Occurrence 事实;“已接收”不代表执行成功。`})]})}),(0,G.jsx)(CV,{items:ee,taskNames:V,agentNames:B})]}),A&&(0,G.jsx)(ka,{title:`删除定时任务「${dV(A)}」?`,description:`任务定义将被删除;已写入的执行历史仍可用于审计。`,confirmText:`删除任务`,busy:!1,onConfirm:()=>void oe(),onCancel:()=>j(null)})]})}function TV(e,t){let n=new URLSearchParams({buildId:e});return t&&n.set(`agentId`,t),`#/deployments/new?${n.toString()}`}function EV(e){return`#/deployments/${encodeURIComponent(e)}`}function DV(e){if(window.location.hash===e){window.dispatchEvent(new HashChangeEvent(`hashchange`));return}window.location.hash=e}function OV(e,t=28){return e.length>t?`${e.slice(0,t)}…`:e}function kV({detail:e,catalog:t,buildId:n,onClose:r}){let[i,a]=(0,s.useState)(`curl`),o=e.draft,c=o.metadata.labels||{},l=o.spec.bindings?.modelProfileId||o.spec.bindings?.modelProfileIds?.[0]||``,u=t.find(e=>e.resourceId===l),d=c[`agentkit.ksyun.com/template`]||`blank`,f={model:u?.contract?.model||u?.name||c[`agentkit.ksyun.com/model`]||`glm-5.1`,input:[{role:`user`,content:[{type:`input_text`,text:d===`research`?`调研 Agent 工程平台的核心能力`:`请根据你的职责处理这个请求`}]}],metadata:{agent_id:o.metadata.id},stream:!0},p=i===`curl`?[`curl -X POST "${window.location.origin}/v1/responses" \\`,` -H "Content-Type: application/json" \\`,` -H "Authorization: Bearer <RUNTIME_API_KEY>" \\`,` -d '${JSON.stringify(f,null,2)}'`].join(`
|
|
252
|
+
`):[`const response = await fetch("${window.location.origin}/v1/responses", {`,` method: "POST",`,` headers: {`,` "Content-Type": "application/json",`,' "Authorization": `Bearer ${runtimeApiKey}`',` },`,` body: JSON.stringify(${JSON.stringify(f,null,2)})`,`});`].join(`
|
|
253
|
+
`);return(0,G.jsxs)(BD,{title:`调用 Agent`,subtitle:`使用统一 Runtime 的 OpenAI Responses API;本地与云端请求体一致。`,onClose:r,children:[(0,G.jsxs)(`div`,{className:`callout`,children:[(0,G.jsx)(ot,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`标准接入协议`}),(0,G.jsx)(`p`,{children:`本地 Studio 仅监听 loopback;部署后由云端网关校验 Runtime API Key,不暴露 Studio Session 或 CSRF Token。`})]})]}),(0,G.jsxs)(`div`,{className:`code-tabs`,children:[(0,G.jsx)(`button`,{className:i===`curl`?`active`:``,type:`button`,onClick:()=>a(`curl`),children:`cURL`}),(0,G.jsx)(`button`,{className:i===`javascript`?`active`:``,type:`button`,onClick:()=>a(`javascript`),children:`JavaScript`})]}),(0,G.jsx)(Db,{code:p,language:i===`curl`?`bash`:`javascript`,filename:i===`curl`?`invoke-agent.sh`:`invoke-agent.js`,wrap:!0}),(0,G.jsxs)(`div`,{className:`api-contract`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`Endpoint`}),(0,G.jsx)(`code`,{children:`POST /v1/responses`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`本地 Build`}),(0,G.jsx)(`code`,{children:n||`尚未构建`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`Conversation`}),(0,G.jsx)(`code`,{children:`首次调用可省略`})]})]})]})}function AV({agentId:e,onBack:t,onChat:n,onBuild:r,onEdit:i,onChanged:a}){let[o,c]=(0,s.useState)(null),[l,u]=(0,s.useState)([]),[d,f]=(0,s.useState)([]),[p,m]=(0,s.useState)(!1),[h,_]=(0,s.useState)(!1),[v,y]=(0,s.useState)(!1),[b,x]=(0,s.useState)(``),[S,C]=(0,s.useState)(null),[w,T]=(0,s.useState)(`overview`);(0,s.useEffect)(()=>{T(`overview`),g(`/api/v1/agents/${encodeURIComponent(e)}`).then(e=>e.json()).then(c).catch(()=>c(null)),g(`/api/v1/catalog/resources?limit=200`).then(e=>e.json()).then(e=>u(e.items||[])).catch(()=>{}),g(`/api/v1/deployments`).then(e=>e.json()).then(e=>f(e.items||[])).catch(()=>{}),g(`/api/v1/agents/${encodeURIComponent(e)}/schedules`).then(e=>e.ok?e.json():null).then(e=>C(e?.items?.length??0)).catch(()=>C(null))},[e]);async function E(){y(!0),x(``);try{let n=await g(`/api/v1/agents/${encodeURIComponent(e)}`,{method:`DELETE`});if(!n.ok){let e=await n.json().catch(()=>null);throw Error(e?.error?.message||`删除失败(${n.status})`)}m(!1),a(),t()}catch(e){x(e.message)}finally{y(!1)}}if(!o)return(0,G.jsx)(`div`,{className:`page-container`,"data-layout":`document`,children:(0,G.jsx)(`p`,{style:{color:`var(--text-tertiary)`},children:`正在加载 Agent 配置…`})});let D=o.draft,O=D.spec.bindings||{},k=D.metadata.labels||{},A=String(k[`agentkit.ksyun.com/models`]||``).split(`,`).map(e=>e.trim()).filter(Boolean),j=O.modelProfileIds?.length?O.modelProfileIds:O.modelProfileId?[O.modelProfileId]:A.length?A:k[`agentkit.ksyun.com/model`]?[k[`agentkit.ksyun.com/model`]]:[],M=(o.builds||[]).find(e=>e.status===`SUCCEEDED`),N=M?d.find(e=>e.buildId===M.id):void 0,P=N?.status===`READY`,F=e=>l.find(t=>t.resourceId===e)?.displayName||OV(e),I=(O.tools||[]).map(e=>typeof e==`string`?e:e.resourceId),L=[[`Model`,j],[`Skill`,(O.skills||[]).map(e=>e.resourceId)],[`MCP`,(O.mcpServers||[]).map(e=>e.resourceId)],[`Tool`,I]].filter(([,e])=>e.length>0);function R(){M&&DV(N?EV(N.id):TV(M.id,D.metadata.id))}return(0,G.jsxs)(`div`,{className:`page-container`,"data-layout":`document`,children:[(0,G.jsxs)(Sd,{children:[(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:()=>n(e),children:[(0,G.jsx)(Le,{size:15}),(0,G.jsx)(`span`,{children:`打开会话`})]}),(0,G.jsxs)(`button`,{className:`button secondary`,type:`button`,onClick:()=>i(e),children:[(0,G.jsx)(lt,{size:15}),(0,G.jsx)(`span`,{children:`编辑`})]}),(0,G.jsxs)(`button`,{className:`button secondary`,type:`button`,onClick:r,children:[(0,G.jsx)(Ue,{size:15}),(0,G.jsx)(`span`,{children:`校验并构建`})]}),(0,G.jsxs)(`button`,{className:`button secondary`,type:`button`,onClick:R,disabled:!M,children:[(0,G.jsx)(de,{size:15}),(0,G.jsx)(`span`,{children:N?`查看云端部署`:`部署到云端`})]}),(0,G.jsx)(yd,{label:`${D.metadata.name} 的更多操作`,items:[{label:`编辑`,onSelect:()=>i(e)},{label:`校验并构建`,onSelect:r},{label:N?`查看云端部署`:`部署到云端`,onSelect:R,disabled:!M},{label:`管理定时任务`,onSelect:()=>T(`automations`)},{label:`调用方式`,onSelect:()=>_(!0)},{label:`删除 Agent`,danger:!0,onSelect:()=>m(!0)}]})]}),b&&(0,G.jsx)(`div`,{className:`form-error`,style:{marginBottom:16},children:b}),(0,G.jsxs)(`div`,{className:`automation-tabs agent-detail-tabs`,role:`tablist`,"aria-label":`Agent 详情`,children:[(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":w===`overview`,className:w===`overview`?`active`:``,onClick:()=>T(`overview`),children:`概览`}),(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":w===`automations`,className:w===`automations`?`active`:``,onClick:()=>T(`automations`),children:`自动化`})]}),w===`overview`&&(0,G.jsxs)(`div`,{className:`detail-layout`,children:[(0,G.jsxs)(`div`,{className:`detail-main`,children:[(0,G.jsxs)(`section`,{className:`detail-section block`,children:[(0,G.jsx)(`div`,{className:`section-heading`,children:(0,G.jsx)(`h2`,{children:`角色与任务`})}),(0,G.jsxs)(`div`,{className:`readonly-field`,children:[(0,G.jsx)(`span`,{children:`系统提示词`}),(0,G.jsx)(`pre`,{children:D.spec.instructions?.system||``})]}),(0,G.jsxs)(`div`,{className:`readonly-field`,children:[(0,G.jsx)(`span`,{children:`任务契约`}),(0,G.jsx)(`pre`,{children:D.spec.instructions?.task||`未配置任务契约`})]})]}),(0,G.jsxs)(`section`,{className:`detail-section block`,children:[(0,G.jsx)(`div`,{className:`section-heading`,children:(0,G.jsx)(`h2`,{children:`能力绑定`})}),L.length?(0,G.jsx)(`div`,{className:`binding-groups`,children:L.map(([e,t])=>(0,G.jsxs)(`div`,{className:`binding-group`,children:[(0,G.jsx)(`span`,{children:e}),(0,G.jsx)(`div`,{className:`binding-items`,children:t.map(e=>(0,G.jsxs)(`span`,{className:`compact-resource`,children:[(0,G.jsx)(V,{size:13}),F(e)]},e))})]},e))}):(0,G.jsxs)(`div`,{className:`capability-empty-state`,children:[(0,G.jsx)(`span`,{children:`当前 Agent 尚未绑定模型、Tool、MCP 或 Skill。`}),(0,G.jsx)(`button`,{className:`button secondary small`,type:`button`,onClick:()=>i(e),children:`绑定能力`})]})]}),(0,G.jsxs)(`section`,{className:`detail-section block`,children:[(0,G.jsxs)(`div`,{className:`section-heading`,children:[(0,G.jsx)(z,{size:18}),(0,G.jsxs)(`div`,{className:`section-heading-copy`,children:[(0,G.jsx)(`h2`,{children:`自动化`}),(0,G.jsx)(`p`,{children:`定时任务仅在本地 Studio 与该 Agent 的 Kernel Runtime 精确绑定时执行。`})]})]}),(0,G.jsxs)(`div`,{className:`capability-empty-state`,children:[(0,G.jsx)(`span`,{children:S===null?`正在读取定时任务…`:S?`已配置 ${S} 个定时任务`:`还没有定时任务`}),(0,G.jsx)(`button`,{className:`button secondary small`,type:`button`,onClick:()=>T(`automations`),children:`管理定时任务`})]})]})]}),(0,G.jsxs)(`aside`,{className:`detail-aside block`,children:[(0,G.jsx)(`div`,{className:`aside-title`,children:`运行摘要`}),(0,G.jsxs)(`dl`,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Revision`}),(0,G.jsxs)(`dd`,{children:[`r`,D.metadata.revision]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Runtime`}),(0,G.jsx)(`dd`,{children:D.spec.runtime?.type||k[`agentkit.ksyun.com/framework`]||`adk`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`策略`}),(0,G.jsx)(`dd`,{children:D.spec.execution?.strategy||`-`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`最大步骤`}),(0,G.jsx)(`dd`,{children:D.spec.execution?.maxSteps??`-`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`超时`}),(0,G.jsx)(`dd`,{children:D.spec.execution?.timeoutSeconds?`${D.spec.execution.timeoutSeconds}s`:`-`})]})]}),(0,G.jsx)(`div`,{className:`aside-divider`}),(0,G.jsx)(`div`,{className:`build-state notice`,"data-state":M?`ready`:`idle`,children:M?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`status-dot success`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`部署声明已就绪`}),(0,G.jsx)(`span`,{children:OV(M.bundleDigest||M.id)})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`status-dot neutral`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`尚未构建`}),(0,G.jsx)(`span`,{children:`校验 YAML 声明后即可部署或本地对话`})]})]})}),N&&(0,G.jsxs)(`div`,{className:`build-state notice`,"data-state":P?`ready`:`idle`,children:[(0,G.jsx)(`span`,{className:`status-dot ${P?`success`:`neutral`}`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:P?`云端实例运行中`:`云端部署:${N.status}`}),(0,G.jsx)(`span`,{children:N.agentId||N.instanceId||N.id})]})]})]})]}),w===`automations`&&(0,G.jsx)(wV,{currentAgentId:e,agents:[{metadata:{id:e,name:D.metadata.name}}],onSelectAgent:()=>{},scopedAgentId:e,embedded:!0,onTaskCountChanged:C}),p&&(0,G.jsx)(ka,{title:`确认删除 Agent「${D.metadata.name}」?`,description:`Agent ID:${D.metadata.id}。删除后其配置与 Revision 将移除,此操作不可撤销。`,confirmText:`确认删除`,busy:v,onConfirm:E,onCancel:()=>m(!1)}),h&&(0,G.jsx)(kV,{detail:o,catalog:l,buildId:M?.id,onClose:()=>_(!1)})]})}var jV=new Set([`SUCCEEDED`,`FAILED`,`CANCELLED`,`TIMED_OUT`]);function MV(e){return e===`SUCCEEDED`?`ready`:[`FAILED`,`CANCELLED`,`TIMED_OUT`].includes(e)?`failed`:e===`IDLE`?`idle`:`pending`}function NV(e){return{IDLE:`尚未构建`,QUEUED:`排队中`,RUNNING:`构建中`,SUCCEEDED:`构建完成`,FAILED:`构建失败`,CANCELLED:`已取消`,TIMED_OUT:`已超时`}[e]||e}function PV(e,t=42){return e.length>t?`${e.slice(0,t)}…`:e}function FV(e){return e.split(/\r?\n\r?\n/).filter(Boolean).map(e=>{let t=e.split(/\r?\n/),n=Number(t.find(e=>e.startsWith(`id:`))?.slice(3).trim()),r=t.find(e=>e.startsWith(`event:`))?.slice(6).trim()||``,i=t.filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(`
|
|
254
|
+
`);if(!Number.isFinite(n)||n<=0||!r||!i)return null;try{let e=JSON.parse(i);return{id:n,type:r,data:e&&typeof e==`object`?e:{}}}catch{return null}}).filter(e=>e!==null)}async function IV(e){let t=await g(`/api/v1${e}`);return t.ok?FV(await t.text()):[]}function LV({currentAgentId:e,agents:t,onSelectAgent:n,onCreate:r}){let[i,a]=(0,s.useState)(null),[o,c]=(0,s.useState)(`IDLE`),[l,u]=(0,s.useState)(`选择 Agent 后开始本地构建。
|
|
255
|
+
`),[d,f]=(0,s.useState)(``),[p,m]=(0,s.useState)(!1),h=(0,s.useRef)(null),_=(0,s.useRef)(0),v=(0,s.useCallback)(async()=>{if(!e){a(null);return}try{let t=await g(`/api/v1/agents/${encodeURIComponent(e)}`);if(!t.ok)throw Error(`Agent detail is unavailable`);a(await t.json())}catch{a(null)}},[e]);(0,s.useEffect)(()=>{v()},[v]);let y=i?.draft,b=i?.builds||[],x=b.find(e=>e.status===`SUCCEEDED`)||b[0],S=x?.status===`SUCCEEDED`&&!p,C=t.find(t=>t.metadata.id===e),w=y?.metadata?.labels?.[`agentkit.ksyun.com/artifact-type`],T=w===`ManagedRuntime`||!w&&y?.spec?.runtime?.type===`codex`,E=e=>T?{IDLE:`尚未校验`,QUEUED:`校验排队中`,RUNNING:`正在校验`,SUCCEEDED:`声明已校验`,FAILED:`校验失败`,CANCELLED:`已取消`,TIMED_OUT:`校验超时`}[e]||e:NV(e);(0,s.useEffect)(()=>{p||(c(x?.status||`IDLE`),f(``),u(x?[`${T?`Declaration`:`Build`} ${x.id}`,`Revision ${x.sourceRevision??y?.metadata?.revision??`-`}`,`${T?`YAML digest`:`Bundle`} ${x.bundleDigest||`-`}`,`Resolved ${x.resolvedDigest||`-`}`,`Status ${x.status}`].join(`
|
|
256
|
+
`):T?`选择 YAML Agent 后校验声明。
|
|
257
|
+
`:`选择 Agent 后开始本地构建。
|
|
258
|
+
`))},[p,y?.metadata?.revision,T,x]);function D(e){u(t=>`${t}${e}`),requestAnimationFrame(()=>{h.current&&(h.current.scrollTop=h.current.scrollHeight)})}function O(){!e||!S||(n(e),DV(TV(x.id,e)))}async function k(){if(!y||p)return;let e=++_.current;m(!0),c(`QUEUED`),f(`提交中`),u(T?`提交 YAML 声明校验…
|
|
259
|
+
`:`提交本地构建…
|
|
260
|
+
`);try{let t=await g(`/api/v1/agents/${encodeURIComponent(y.metadata.id)}/builds`,{method:`POST`,headers:{"Content-Type":`application/json`,"Idempotency-Key":`build-${y.metadata.id}-r${y.metadata.revision}-${Date.now()}`},body:JSON.stringify({revision:y.metadata.revision,runEvaluation:!1})});if(!t.ok)throw t.status===409?(await v(),Error(`Agent 信息已更新,请重新点击构建`)):Error(`构建提交失败(${t.status})`);let n=await t.json();f(n.id);let r=0,i=null;for(let t=0;t<1200;t+=1){if(_.current!==e)return;let t=await IV(`/operations/${encodeURIComponent(n.id)}/events?after=${r}`);t.length&&(r=Math.max(r,...t.map(e=>Number(e.id)||0)),D(t.map(e=>`${String(e.id).padStart(2,`0`)} ${e.type}`).join(`
|
|
261
|
+
`)+`
|
|
262
|
+
`));let a=await g(`/api/v1/operations/${encodeURIComponent(n.id)}`).then(e=>e.json());if(c(a.status||`QUEUED`),jV.has(a.status)){i=a;break}await new Promise(e=>setTimeout(e,200))}if(!i)throw Error(`构建操作等待超时`);if(i.status!==`SUCCEEDED`)throw Error(i.error?.message||`构建未完成`);await v(),J(T?`YAML 声明已校验`:`不可变 Bundle 已构建`,i.resourceId||`构建完成`)}catch(t){_.current===e&&(c(`FAILED`),D(`${t?.message||`构建失败`}\n`),J(`构建失败`,t?.message||`未知错误`,`error`))}finally{_.current===e&&m(!1)}}let A=MV(o),j=x?.runtimeName?`${x.runtimeName} ${x.runtimeVersion||``}`.trim():y?.spec?.runtime?.type||`未选择`;return(0,G.jsxs)(`div`,{className:`delivery-page`,"data-layout":`document`,children:[(0,G.jsx)(Sd,{children:(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:k,disabled:!y||p,children:[(0,G.jsx)(Ue,{size:15}),(0,G.jsx)(`span`,{children:p?T?`校验中`:`构建中`:T?`校验 YAML 声明`:`构建当前 Agent`})]})}),(0,G.jsxs)(`div`,{className:`delivery-intro`,children:[(0,G.jsx)(`h2`,{children:T?`ManagedRuntime 声明`:`Code Bundle`}),(0,G.jsx)(`span`,{className:`delivery-status-badge`,"data-state":A,children:E(o)})]}),t.length===0?(0,G.jsxs)(`div`,{className:`delivery-empty-state`,children:[(0,G.jsx)(Ue,{size:24}),(0,G.jsx)(`h2`,{children:`还没有可构建的 Agent`}),(0,G.jsx)(`p`,{children:`先创建 Agent,再生成可部署到云端的交付记录。`}),(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:r,children:[(0,G.jsx)(Qe,{size:15}),(0,G.jsx)(`span`,{children:`创建 Agent`})]})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`section`,{className:`delivery-stat-strip compact-delivery-summary`,"aria-label":`构建摘要`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`Agent`}),(0,G.jsx)(`strong`,{title:e||``,children:C?.metadata.name||y?.metadata?.name||`未选择`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`Revision`}),(0,G.jsx)(`strong`,{children:y?`r${y.metadata.revision}`:`-`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`Runtime`}),(0,G.jsx)(`strong`,{children:j})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:T?`YAML 摘要`:`Bundle`}),(0,G.jsx)(`strong`,{className:`mono`,children:PV(x?.bundleDigest||`-`)})]})]}),(0,G.jsxs)(`section`,{className:`delivery-next-step`,"data-state":S?`ready`:A,"aria-label":`构建下一步`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`下一步`}),(0,G.jsx)(`strong`,{children:S?`构建完成,下一步可部署到云端`:`等待构建完成`})]}),S&&(0,G.jsxs)(`button`,{className:`button secondary compact`,type:`button`,onClick:O,children:[(0,G.jsx)(de,{size:15}),`部署到云端`]})]}),(0,G.jsxs)(`details`,{className:`delivery-block delivery-detail-disclosure`,children:[(0,G.jsx)(`summary`,{children:T?`声明详情`:`构建详情`}),(0,G.jsx)(`p`,{children:T?`校验 YAML 声明并锁定 Runtime、模型与能力摘要,生成可追溯的托管运行时制品。`:`查看不可变 Bundle、输入 Revision 与交付记录。`}),(0,G.jsxs)(`div`,{className:`delivery-fact-chain`,children:[(0,G.jsxs)(`div`,{className:`delivery-fact-step`,"data-state":y?`ready`:`idle`,children:[(0,G.jsx)(`span`,{children:T?`输入 YAML Revision`:`输入 Revision`}),(0,G.jsx)(`strong`,{children:y?`r${y.metadata.revision}`:`未选择`}),(0,G.jsx)(`code`,{children:y?.metadata?.id||`-`})]}),(0,G.jsxs)(`div`,{className:`delivery-fact-step`,"data-state":A,children:[(0,G.jsx)(`span`,{children:T?`声明摘要`:`不可变 Bundle`}),(0,G.jsx)(`strong`,{children:x?.status===`SUCCEEDED`?T?`已校验`:`已生成`:E(o)}),(0,G.jsx)(`code`,{children:x?.bundleDigest||`尚无 digest`})]})]})]}),(0,G.jsxs)(`details`,{className:`delivery-block`,open:p,children:[(0,G.jsxs)(`summary`,{children:[T?`声明校验日志`:`构建技术日志`,` `,d?`· ${PV(d,28)}`:``]}),(0,G.jsx)(`pre`,{ref:h,children:l})]})]})]})}var RV=new Set([`hermes`,`openclaw`]);function zV(e){if(!e)return!1;let t=e.sessionEventChat??e.SessionEventChat??e.session_event_chat;if(t===!0)return!0;if(!t||typeof t!=`object`)return!1;let n=t;return n.enabled===!0||n.Enabled===!0||n.supported===!0||n.Supported===!0}function BV(e){if(e.chatTransport)return{kind:e.chatTransport,reason:e.chatRoutingReason||(e.chatTransport===`official-dashboard`?`native-runtime-without-session-event-chat-capability`:`studio-compatible-framework`)};if(zV(e.capabilities))return{kind:`studio-session-events`,reason:`declared-session-event-chat-capability`};let t=String(e.runtimeType||e.framework||``).trim().toLowerCase();return RV.has(t)?{kind:`official-dashboard`,reason:`native-runtime-without-session-event-chat-capability`}:{kind:`studio-session-events`,reason:`studio-compatible-framework`}}var VV={READY:5,DEPLOYING:4,ADMITTING:3,FAILED:2,ROLLED_BACK:1};function HV(e,t=new Map){let n=new Map;for(let r of e){let e=r.agentId?.trim();if(!e)continue;let i=n.get(e),a=t.get(e)?.trim(),o=!!(a&&r.versionId===a),s=!!(a&&i?.versionId===a),c=VV[r.status||``]||0,l=VV[i?.status||``]||0;(!i||o&&!s||o===s&&c>l)&&n.set(e,r)}return[...n.values()]}function UV(e,t){let n=new Map;for(let e of t){let t=e.agentId?.trim();t&&!n.has(t)&&n.set(t,e)}let r=HV(e,new Map([...n.entries()].flatMap(([e,t])=>t.versionId?.trim()?[[e,t.versionId.trim()]]:[]))).map(e=>{let t=n.get(e.agentId?.trim()||``);return{...e,agentName:t?.name||e.agentName,status:t?.status||e.status,endpoint:t?.endpoint||e.endpoint,framework:t?.framework||e.framework,runtimeType:t?.runtimeType||e.runtimeType,capabilities:t?.capabilities||e.capabilities,chatTransport:t?.chatTransport||e.chatTransport,chatRoutingReason:t?.chatRoutingReason||e.chatRoutingReason,versionId:t?.versionId||e.versionId,updatedAt:t?.updatedAt||e.updatedAt,creatorName:t?.creatorName||e.creatorName,source:`receipt`}}),i=new Set(r.map(e=>e.agentId)),a=[...n.values()].flatMap(e=>{let t=e.agentId?.trim();return!t||i.has(t)?[]:[{id:`account:${t}`,agentId:t,agentName:e.name||t,status:e.status,endpoint:e.endpoint,framework:e.framework,runtimeType:e.runtimeType,capabilities:e.capabilities,chatTransport:e.chatTransport,chatRoutingReason:e.chatRoutingReason,versionId:e.versionId,updatedAt:e.updatedAt,creatorName:e.creatorName,source:`account`}]});return[...r,...a]}var WV=new Set([`SUCCEEDED`,`FAILED`,`CANCELLED`,`TIMED_OUT`,`INTERRUPTED`]),GV=`agentkit-studio:deployment-operation-attempts:v2`,KV=500,qV=new Set([403,404,410]),JV=new Map,YV={},XV=class extends Error{status;constructor(e,t){super(e),this.status=t,this.name=`OperationStatusError`}};function ZV(){try{return typeof document>`u`?void 0:document.defaultView?.localStorage}catch{return}}function QV(e,t){return t?g(e,{signal:t}):g(e)}function $V(e,t){return t?{...e,status:String(t.status||e.status).toUpperCase(),agentName:t.name||e.agentName,endpoint:t.endpoint||e.endpoint,framework:t.framework||e.framework,runtimeType:t.runtimeType||e.runtimeType,capabilities:t.capabilities||e.capabilities,chatTransport:t.chatTransport||e.chatTransport,chatRoutingReason:t.chatRoutingReason||e.chatRoutingReason,versionId:t.versionId||e.versionId,updatedAt:t.updatedAt||e.updatedAt,creatorName:t.creatorName||e.creatorName}:e}function eH(e){try{let t=ZV();if(!t)return{...YV[e]||{}};let n=JSON.parse(t.getItem(e)||`{}`);return n&&typeof n==`object`?n:{}}catch{return{...YV[e]||{}}}}function tH(e,t){YV={...YV,[e]:{...t}};try{ZV()?.setItem(e,JSON.stringify(t))}catch{}}function nH(e){return`studio-${e}-${globalThis.crypto?.randomUUID?.()||`${Math.random().toString(36).slice(2)}-${Date.now().toString(36)}`}`}function rH(e,t,n){let r=eH(e),i=r[t];if(i?.idempotencyKey)return i;let a={actionKey:t,idempotencyKey:nH(n),operationId:``};return r[t]=a,tH(e,r),a}function iH(e,t,n){let r={...t,operationId:n},i=eH(e);return i[t.actionKey]=r,tH(e,i),r}function aH(e,t){let n=eH(e),r=n[t.actionKey];!r||r.idempotencyKey!==t.idempotencyKey||(delete n[t.actionKey],tH(e,n))}function oH(e){return e instanceof DOMException&&e.name===`AbortError`}function sH(e){if(e.aborted)throw new DOMException(`Operation aborted`,`AbortError`)}async function cH(e,t){sH(t),await new Promise((n,r)=>{let i=window.setTimeout(()=>{t.removeEventListener(`abort`,a),n()},e),a=()=>{window.clearTimeout(i),r(new DOMException(`Operation aborted`,`AbortError`))};t.addEventListener(`abort`,a,{once:!0})})}async function lH(e,t){let n=JV.get(e)||Promise.resolve(),r,i=new Promise(e=>{r=e}),a=n.then(()=>i);JV.set(e,a),await n;try{return await t()}finally{r(),JV.get(e)===a&&JV.delete(e)}}async function uH(e,t,n){sH(t);let r=navigator.locks;return r?r.request(e,{mode:`exclusive`,signal:t},async()=>n()):lH(e,async()=>(sH(t),n()))}async function dH(e){let t=await g(`/api/v1/system/bootstrap`,{signal:e});if(!t.ok)throw Error(`读取部署操作作用域失败(${t.status})`);let n=(await t.json())?.operationScope,r=String(n?.workspace||``).trim(),i=String(n?.cloudCredential||``).trim();if(!r||!i)throw Error(`部署操作作用域不可用,请刷新 Studio`);return`${GV}:${encodeURIComponent(r)}:${encodeURIComponent(i)}`}async function fH(e,t,n){for(;;){await cH(KV,n);let r=await g(`/api/v1/operations/${encodeURIComponent(e)}`,{signal:n});if(!r.ok)throw new XV(`${t}状态读取失败(${r.status})`,r.status);let i=await r.json();if(WV.has(i.status))return i}}async function pH(e,t,n,r,i,a){let o=`${e}:${t}`,s=await uH(o,i,async()=>{let o=rH(e,t,n);if(!o.operationId){let t=await a(o.idempotencyKey,i);if(!t.ok){t.status<500&&aH(e,o);let n=``;try{n=(await t.clone().json())?.error?.message||``}catch{}throw Error(n||`${r}提交失败(${t.status})`)}let n=await t.json(),s=String(n?.id||``).trim();if(!s)throw aH(e,o),Error(`${r}提交结果缺少 operation_id`);o=iH(e,o,s)}return o}),c;try{c=await fH(s.operationId,r,i)}catch(t){throw t instanceof XV&&qV.has(t.status)&&await uH(o,i,async()=>{aH(e,s)}),t}return await uH(o,i,async()=>{aH(e,s)}),c}function mH(e){return[`READY`,`RUNNING`].includes(e)?`ready`:[`FAILED`,`ROLLED_BACK`,`ERROR`,`TERMINATED`].includes(e)?`failed`:[`ADMITTING`,`DEPLOYING`,`CREATING`,`UPDATING`].includes(e)?`pending`:`idle`}function hH(e){return{ADMITTING:`准入中`,DEPLOYING:`部署中`,READY:`已就绪`,FAILED:`部署失败`,ROLLED_BACK:`已回滚`,RUNNING:`运行中`,CREATING:`创建中`,UPDATING:`更新中`,ERROR:`异常`,TERMINATED:`已终止`}[e]||`状态未知`}function gH(e,t=28){return e.length>t?`${e.slice(0,t)}…`:e}function _H(){let e=window.location.hash.match(/^#\/deployments\/([^/?]+)(?:\?.*)?$/),t=e?decodeURIComponent(e[1]):``;return t===`new`?``:t}function vH(){let e=window.location.hash.match(/^#\/deployments\/new(?:\?(.*))?$/);if(!e)return null;let t=new URLSearchParams(e[1]||``);return{buildId:t.get(`buildId`)?.trim()||``,agentId:t.get(`agentId`)?.trim()||``}}function yH(e){if(!e)return`—`;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString(`zh-CN`,{hour12:!1})}function bH({onCreate:e,onOpenChat:t,onSelectBuild:n}){let[r,i]=(0,s.useState)([]),[a,o]=(0,s.useState)(!0),[c,l]=(0,s.useState)(``),[u,d]=(0,s.useState)(new Set),[f,p]=(0,s.useState)(``),[m,h]=(0,s.useState)(!1),[_,v]=(0,s.useState)(!1),[y,b]=(0,s.useState)(null),[x,S]=(0,s.useState)(!1),[C,w]=(0,s.useState)(null),[T,E]=(0,s.useState)(!1),[D,O]=(0,s.useState)(()=>vH()),[k,j]=(0,s.useState)([]),[M,N]=(0,s.useState)(()=>vH()?.buildId||``),[P,F]=(0,s.useState)(``),[I,L]=(0,s.useState)(!1),[R,z]=(0,s.useState)(!1),[B,V]=(0,s.useState)(``),H=(0,s.useRef)(new Set);(0,s.useEffect)(()=>()=>{for(let e of H.current)e.abort();H.current.clear()},[]);function ee(){let e=new AbortController;return H.current.add(e),e}function te(e){H.current.delete(e)}let ne=(0,s.useCallback)(async e=>{o(!0),l(``);try{let[t,n]=await Promise.all([QV(`/api/v1/deployments`,e),QV(`/api/v1/cloud-agents?size=100`,e)]);if(!t.ok)throw Error(`读取部署记录失败(${t.status})`);let r=await t.json(),a=n.ok?await n.json():{items:[]},o=Array.isArray(r.items)?r.items:[],s=[...new Set(o.flatMap(e=>e.agentId?.trim()?[e.agentId.trim()]:[]))],c=await Promise.all(s.map(t=>Promise.resolve().then(()=>QV(`/api/v1/cloud-agents/${encodeURIComponent(t)}`,e)).then(async e=>e.ok?await e.json():null).catch(e=>{if(oH(e))throw e;return null}))),l=Array.isArray(a.items)?a.items:[],u=new Map(l.flatMap(e=>e.agentId?[[e.agentId,e]]:[]));for(let e of c)e?.agentId&&u.set(e.agentId,{...u.get(e.agentId),...e});let d=[...u.values()],f=new Map(o.map(e=>[e.id,e])),p=UV(o,d).map(e=>{if(e.source===`receipt`)return{...f.get(e.id),...e,id:e.id,source:`receipt`};let t=d.find(t=>t.agentId===e.agentId);return{id:e.id,buildId:``,bundleDigest:``,versionId:String(e.versionId||t?.versionId||``),status:String(e.status||t?.status||`UNKNOWN`).toUpperCase(),target:{region:String(t?.region||``),environment:`cloud`},agentId:e.agentId,agentName:e.agentName,endpoint:e.endpoint,framework:String(e.framework||t?.framework||``),runtimeType:String(e.runtimeType||t?.runtimeType||``),capabilities:e.capabilities||t?.capabilities,chatTransport:e.chatTransport||t?.chatTransport,chatRoutingReason:e.chatRoutingReason||t?.chatRoutingReason,updatedAt:String(e.updatedAt||t?.updatedAt||``),creatorName:e.creatorName||t?.creatorName,source:`account`}});e?.aborted||i(p)}catch(t){!oH(t)&&!e?.aborted&&l(t?.message||`部署记录不可用`)}finally{e?.aborted||o(!1)}},[]);(0,s.useEffect)(()=>{let e=new AbortController;return ne(e.signal),()=>e.abort()},[ne]),(0,s.useEffect)(()=>{let e=()=>{let e=vH();if(O(e),e){N(e.buildId),b(null);return}let t=_H();if(!t){b(null);return}let n=r.find(e=>e.id===t);n&&y?.deployment.id!==t&&se(n,!1)};return e(),window.addEventListener(`popstate`,e),window.addEventListener(`hashchange`,e),()=>{window.removeEventListener(`popstate`,e),window.removeEventListener(`hashchange`,e)}},[r,y?.deployment.id]),(0,s.useEffect)(()=>{if(!D)return;let e=!1;return L(!0),V(``),(async()=>{try{let[t,n]=await Promise.all([g(`/api/v1/agents?limit=100`),g(`/api/v1/system/settings`)]);if(!t.ok)throw Error(`读取可部署 Build 失败(${t.status})`);let r=await t.json(),i=n.ok?await n.json():{},a=Array.isArray(r.items)?r.items:[],o=(await Promise.all(a.map(async e=>{let t=String(e?.metadata?.id||``).trim();if(!t)return null;let n=await g(`/api/v1/agents/${encodeURIComponent(t)}`);return n.ok?n.json():null}))).flatMap(e=>{if(!e)return[];let t=String(e?.draft?.metadata?.id||``).trim(),n=String(e?.draft?.metadata?.name||t||`未命名 Agent`),r=String(e?.draft?.spec?.runtime?.type||``),i=String(e?.draft?.metadata?.labels?.[`agentkit.ksyun.com/artifact-type`]||(r===`codex`?`ManagedRuntime`:`Code`));return(Array.isArray(e.builds)?e.builds:[]).filter(e=>e.status===`SUCCEEDED`).map(e=>({...e,agentId:t,agentName:n,runtimeName:e.runtimeName||r,artifactType:i}))}).sort((e,t)=>String(t.createdAt||``).localeCompare(String(e.createdAt||``)));if(D.buildId&&!o.some(e=>e.id===D.buildId)){let e=await g(`/api/v1/builds/${encodeURIComponent(D.buildId)}`);if(e.ok){let t=await e.json(),n=String(t.agentId||D.agentId||``).trim(),r=n?await g(`/api/v1/agents/${encodeURIComponent(n)}`):null,i=r?.ok?await r.json():null;if(String(t.status||``)===`SUCCEEDED`&&n){let e=String(i?.draft?.spec?.runtime?.type||t.runtimeName||``);o=[{...t,agentId:n,agentName:String(i?.draft?.metadata?.name||n),runtimeName:t.runtimeName||e,artifactType:String(i?.draft?.metadata?.labels?.[`agentkit.ksyun.com/artifact-type`]||(e===`codex`?`ManagedRuntime`:`Code`))},...o]}}}if(e)return;F(String(i.cloudRegion||``).trim()),j(o);let s=o.find(e=>e.isCurrent!==!1);if(D.buildId){let e=o.find(e=>e.id===D.buildId);if(!e)throw Error(`Build ${D.buildId} 不存在或尚未成功`);e.isCurrent===!1&&s?N(s.id):N(D.buildId)}else N(e=>o.some(t=>t.id===e)?e:(s||o[0])?.id||``)}catch(t){e||V(t?.message||`可部署 Build 不可用`)}finally{e||L(!1)}})(),()=>{e=!0}},[D?.agentId,D?.buildId]);let U=(0,s.useMemo)(()=>({ready:r.filter(e=>mH(e.status)===`ready`).length,pending:r.filter(e=>mH(e.status)===`pending`).length,failed:r.filter(e=>mH(e.status)===`failed`).length}),[r]);async function re(e){d(t=>new Set(t).add(e.id));try{let t=e.source===`account`?await g(`/api/v1/cloud-agents/${encodeURIComponent(e.agentId||``)}`):await g(`/api/v1/deployments/${encodeURIComponent(e.id)}`);if(!t.ok)throw Error(`状态刷新失败(${t.status})`);let n=await t.json(),r=e.source===`account`?$V(e,n):{...e,...n,source:`receipt`};if(e.source===`receipt`&&r.agentId){let e=await g(`/api/v1/cloud-agents/${encodeURIComponent(r.agentId)}`).catch(()=>null);e?.ok&&(r=$V(r,await e.json()))}i(t=>t.map(t=>t.id===e.id?r:t))}catch(t){l(`${e.instanceId||e.id}:${t?.message||`状态未知`}`)}finally{d(t=>{let n=new Set(t);return n.delete(e.id),n})}}async function ie(){await Promise.all(r.map(e=>re(e)))}async function ae(e){l(``);try{let t=await g(BV(e).kind===`official-dashboard`||e.source===`account`?`/api/v1/cloud-agents/${encodeURIComponent(e.agentId||``)}:dashboard`:`/api/v1/deployments/${encodeURIComponent(e.id)}:dashboard`,{method:`POST`});if(!t.ok)throw Error(`创建云端 UI 访问链接失败(${t.status})`);let n=await t.json(),r=String(n?.accessUrl||n?.access_url||``).trim();if(!r)throw Error(`云端未返回 Agent UI 地址`);window.open(r,`_blank`,`noopener,noreferrer`)}catch(t){l(`${e.instanceId||e.id}:${t?.message||`无法打开云端 UI`}`)}}async function oe(e,t){let n=await QV(`/api/v1/cloud-agents/${encodeURIComponent(e)}/versions?page=1&size=100`,t);if(!n.ok)throw Error(`读取云端版本失败(${n.status})`);let r=await n.json(),i=r.items||r.versions||r.Versions||[];return{items:(Array.isArray(i)?i:[]).map(e=>({versionId:String(e.versionId||e.version_id||e.VersionId||``),versionName:String(e.versionName||e.version_name||e.VersionName||``),tag:String(e.tag||e.Tag||``),status:String(e.status||e.Status||``),trafficPercentage:Number(e.trafficPercentage??e.traffic_percentage??e.TrafficPercentage??0),createdAt:e.createdAt||e.created_at||e.CreatedAt,createdBy:e.createdBy||e.created_by||e.CreatedBy,canRollback:!!(e.canRollback??e.can_rollback??e.CanRollback),rollbackDisabledReason:String(e.rollbackDisabledReason||e.rollback_disabled_reason||e.RollbackDisabledReason||``)})).filter(e=>e.versionId),currentVersionId:String(r.currentVersionId||r.current_version_id||r.CurrentVersionId||``)}}async function se(e,t=!0,n){if(n?.aborted)return;t&&window.history.pushState(null,``,`#/deployments/${encodeURIComponent(e.id)}`),b({deployment:e,sourceAgentId:``,sourceAgentName:``,builds:[],versions:[],currentVersionId:``,loading:!0,error:``}),p(``),h(!1);let r=e.agentId?oe(e.agentId,n):Promise.resolve({items:[],currentVersionId:``});try{if(e.source===`account`){let t=await QV(`/api/v1/cloud-agents/${encodeURIComponent(e.agentId||``)}`,n);if(!t.ok)throw Error(`刷新云端 Agent 状态失败(${t.status})`);let a=await t.json(),o={...e,agentName:String(a.name||e.agentName||e.agentId||`云端 Agent`),status:String(a.status||e.status).toUpperCase(),endpoint:a.endpoint||e.endpoint,framework:a.framework||e.framework,runtimeType:a.runtimeType||e.runtimeType,capabilities:a.capabilities||e.capabilities,chatTransport:a.chatTransport||e.chatTransport,chatRoutingReason:a.chatRoutingReason||e.chatRoutingReason,versionId:a.versionId||e.versionId,updatedAt:a.updatedAt||e.updatedAt,creatorName:a.creatorName||e.creatorName},s=await r;if(n?.aborted)return;i(t=>t.map(t=>t.id===e.id?o:t)),b({deployment:o,sourceAgentId:``,sourceAgentName:o.agentName||o.agentId||`账号云端 Agent`,builds:[],versions:s.items,currentVersionId:s.currentVersionId,loading:!1,error:``});return}let t=await QV(`/api/v1/deployments/${encodeURIComponent(e.id)}`,n);if(!t.ok)throw Error(`刷新云端 Agent 状态失败(${t.status})`);let a={...e,...await t.json(),source:`receipt`},o=a;if(a.agentId){let e=await QV(`/api/v1/cloud-agents/${encodeURIComponent(a.agentId)}`,n).catch(e=>{if(oH(e))throw e;return null});e?.ok&&(o=$V(a,await e.json()))}if(n?.aborted)return;i(t=>t.map(t=>t.id===e.id?o:t));let s=await QV(`/api/v1/builds/${encodeURIComponent(o.buildId)}`,n);if(!s.ok)throw Error(`读取当前 Build 失败(${s.status})`);let c=await s.json(),l=String(c.agentId||``).trim();if(!l)throw Error(`当前部署缺少本地 Agent 关联`);let u=await QV(`/api/v1/agents/${encodeURIComponent(l)}`,n);if(!u.ok)throw Error(`读取本地 Build 历史失败(${u.status})`);let d=await u.json(),f=(Array.isArray(d.builds)?d.builds:[]).filter(e=>e.status===`SUCCEEDED`).sort((e,t)=>String(t.createdAt||``).localeCompare(String(e.createdAt||``))),p=await r;if(n?.aborted)return;b({deployment:o,sourceAgentId:l,sourceAgentName:String(d?.draft?.metadata?.name||l),builds:f,versions:p.items,currentVersionId:p.currentVersionId,loading:!1,error:``})}catch(e){if(oH(e)||n?.aborted)return;let t=await r.catch(()=>({items:[],currentVersionId:``}));b(n=>n?{...n,versions:t.items,currentVersionId:t.currentVersionId,loading:!1,error:e?.message||`云端 Agent 详情不可用`}:null)}}async function ce(){if(!M||R)return;let e=k.find(e=>e.id===M);if(!e){V(`请选择一个已成功的 Build`);return}if(!P){V(`请先在 Studio 设置中配置云端 Region`);return}z(!0),V(``);let t=`deploy:${M}:${P}`,n=ee();try{let r=await pH(await dH(n.signal),t,`deploy`,`部署`,n.signal,(e,t)=>g(`/api/v1/builds/${encodeURIComponent(M)}/deployments`,{method:`POST`,headers:{"Content-Type":`application/json`,"Idempotency-Key":e},body:JSON.stringify({target:{region:P,environment:`cloud`},releasePolicy:{strategy:`rolling`,approval:`none`}}),signal:t}));if(r.status!==`SUCCEEDED`)throw Error(r.error?.message||`部署未完成`);sH(n.signal),await ne(n.signal),sH(n.signal);let i=String(r.resourceId||``).trim();DV(i?EV(i):`#/deployments`),J(`已提交云端部署`,`${e.agentName||e.agentId} · ${e.id}`)}catch(e){!oH(e)&&!n.signal.aborted&&V(e?.message||`部署失败`)}finally{te(n),n.signal.aborted||z(!1)}}function le(){b(null),p(``),h(!1),window.history.pushState(null,``,`#/deployments`)}async function ue(e,t){if(!t||x)return;S(!0),l(``);let n=`update:${e.agentId||e.id}:${t}`,r=ee();try{let i=await pH(await dH(r.signal),n,`update`,`更新`,r.signal,(n,r)=>g(`/api/v1/builds/${encodeURIComponent(t)}/deployments`,{method:`POST`,headers:{"Content-Type":`application/json`,"Idempotency-Key":n},body:JSON.stringify({target:e.target,releasePolicy:{strategy:`rolling`,approval:`none`}}),signal:r}));if(i.status!==`SUCCEEDED`)throw Error(i.error?.message||`更新未完成`);sH(r.signal),b(null),await ne(r.signal),sH(r.signal),J(`已提交云端更新`,`Build ${t}`)}catch(e){!oH(e)&&!r.signal.aborted&&l(e?.message||`更新失败`)}finally{te(r),r.signal.aborted||S(!1)}}async function W(){if(!C||T)return;let e=C;E(!0),l(``);try{let t=await g(e.source===`account`?`/api/v1/cloud-agents/${encodeURIComponent(e.agentId||``)}`:`/api/v1/deployments/${encodeURIComponent(e.id)}`,{method:`DELETE`});if(!t.ok)throw Error(`删除云端 Agent 失败(${t.status})`);let n=await t.json();w(null),b(null),await ne(),J(`云端 Agent 已删除`,String(n.agentId||e.agentId||``))}catch(e){l(e?.message||`删除云端 Agent 失败`)}finally{E(!1)}}async function fe(){if(!y||!f||_)return;let e=y.deployment,t=String(e.agentId||``).trim(),n=f,r=y.versions.find(e=>e.versionId===n),i=n===y.currentVersionId||r?.status.toLowerCase()===`current`;if(!t||!r?.canRollback||i)return;v(!0),b(e=>e&&{...e,error:``});let a=`rollback:${t}:${n}`,o=ee();try{let r=await pH(await dH(o.signal),a,`rollback`,`回滚`,o.signal,(e,r)=>g(`/api/v1/cloud-agents/${encodeURIComponent(t)}:rollback-version`,{method:`POST`,headers:{"Content-Type":`application/json`,"Idempotency-Key":e},body:JSON.stringify({versionId:n}),signal:r}));if(r.status!==`SUCCEEDED`)throw Error(r.error?.message||`回滚未完成`);sH(o.signal),h(!1),p(``),await ne(o.signal),await se(e,!1,o.signal),sH(o.signal),J(`已提交版本回滚`,`云端版本 ${n}`)}catch(e){!oH(e)&&!o.signal.aborted&&(h(!1),b(t=>t&&{...t,error:e?.message||`回滚失败`}))}finally{te(o),o.signal.aborted||v(!1)}}if(D){let e=k.find(e=>e.id===M);return(0,G.jsxs)(`div`,{className:`delivery-page deployment-create-page`,"data-layout":`document`,children:[(0,G.jsxs)(Sd,{children:[(0,G.jsxs)(`button`,{className:`button secondary`,type:`button`,onClick:()=>DV(`#/deployments`),children:[(0,G.jsx)(A,{size:15}),(0,G.jsx)(`span`,{children:`返回云端 Agent`})]}),(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:()=>void ce(),disabled:!e||R||I,children:[(0,G.jsx)(de,{size:15}),(0,G.jsx)(`span`,{children:R?`部署中…`:`部署到云端`})]})]}),(0,G.jsx)(`div`,{className:`delivery-intro`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:`部署到云端`}),(0,G.jsx)(`p`,{children:`选择一个已成功的 Build,由 Studio 提交统一云端部署操作。`})]})}),B&&(0,G.jsx)(`div`,{className:`form-error`,role:`alert`,children:B}),(0,G.jsxs)(`section`,{className:`delivery-block`,"aria-label":`选择部署 Build`,children:[(0,G.jsx)(`h2`,{children:`选择 Build`}),(0,G.jsx)(`p`,{children:`ManagedRuntime 使用已校验声明;ADK、LangGraph 等代码 Agent 使用不可变 Code Bundle。`}),I?(0,G.jsx)(`p`,{children:`正在读取可部署 Build…`}):k.length?(0,G.jsx)(`div`,{className:`deployment-version-list`,role:`radiogroup`,"aria-label":`可部署 Build`,children:k.map(e=>(0,G.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":e.id===M,"aria-label":`${e.agentName||e.agentId||`Agent`} ${e.id}${e.isCurrent===!1?` (声明已变更)`:``}`,className:`deployment-version-option`,"data-selected":e.id===M,"data-stale":e.isCurrent===!1,onClick:()=>N(e.id),children:[(0,G.jsx)(`strong`,{className:`deployment-version-name`,children:e.agentName||e.agentId||`未命名 Agent`}),(0,G.jsxs)(`span`,{className:`deployment-version-state`,"data-state":e.isCurrent===!1?`stale`:`available`,children:[e.artifactType===`ManagedRuntime`?`托管声明`:`代码 Bundle`,e.isCurrent===!1?` · 声明已变更`:``]}),(0,G.jsx)(`code`,{title:e.id,children:gH(e.id,24)}),(0,G.jsx)(`time`,{className:`deployment-version-time`,dateTime:e.createdAt||void 0,children:yH(e.createdAt)})]},e.id))}):(0,G.jsxs)(`div`,{className:`delivery-empty-state`,children:[(0,G.jsx)(Ue,{size:24}),(0,G.jsx)(`h2`,{children:`没有可部署的 Build`}),(0,G.jsx)(`p`,{children:`请先完成 Agent 构建或 ManagedRuntime 声明校验。`}),(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:n,children:`前往构建`})]}),e&&(0,G.jsxs)(`div`,{className:`api-contract`,"aria-label":`部署提交摘要`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`Agent`}),(0,G.jsx)(`strong`,{children:e.agentName||e.agentId})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`Build`}),(0,G.jsx)(`code`,{children:e.id})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`制品`}),(0,G.jsx)(`strong`,{children:e.artifactType===`ManagedRuntime`?`ManagedRuntime 声明`:`Code Bundle`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`目标`}),(0,G.jsx)(`strong`,{children:`云端`})]})]})]})]})}if(y){let e=y.builds[0],n=y.versions.find(e=>e.versionId===f&&e.canRollback&&e.versionId!==y.currentVersionId&&e.status.toLowerCase()!==`current`),r=y.versions.find(e=>e.versionId===y.currentVersionId||e.status.toLowerCase()===`current`),i=y.deployment.source===`receipt`,a=i&&y.deployment.artifactId===`managed-runtime`&&!!e&&e.id!==y.deployment.buildId,o=BV(y.deployment);return(0,G.jsxs)(`div`,{className:`delivery-page deployment-detail-page`,"data-layout":`document`,children:[(0,G.jsxs)(Sd,{children:[(0,G.jsxs)(`button`,{className:`button secondary`,type:`button`,onClick:le,children:[(0,G.jsx)(A,{size:15}),(0,G.jsx)(`span`,{children:`返回云端 Agent`})]}),!!y.deployment.agentId&&(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:()=>h(!0),disabled:!n?.canRollback||x||_,children:_?`回滚中…`:n?`回滚到所选版本`:`选择版本回滚`}),a&&(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:()=>void ue(y.deployment,e.id),disabled:x,children:x?`更新中…`:`部署最新 Build`}),mH(y.deployment.status)===`ready`&&(0,G.jsx)(`button`,{className:`button accent`,type:`button`,onClick:()=>o.kind===`official-dashboard`?void ae(y.deployment):t(y.deployment),disabled:x,children:o.kind===`official-dashboard`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ye,{size:15}),`链接`]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Le,{size:15}),`进入会话`]})})]}),(0,G.jsxs)(`div`,{className:`delivery-intro deployment-detail-heading`,children:[(0,G.jsx)(`button`,{className:`button tertiary compact`,type:`button`,onClick:le,"aria-label":`返回云端 Agent`,children:(0,G.jsx)(A,{size:16})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:y.deployment.agentName||y.sourceAgentName||`云端 Agent`}),(0,G.jsx)(`p`,{children:y.deployment.agentId||y.deployment.id})]})]}),y.error&&(0,G.jsx)(`div`,{className:`form-error`,role:`alert`,children:y.error}),(0,G.jsxs)(`section`,{className:`delivery-block`,"aria-label":`云端 Agent 详情`,children:[(0,G.jsxs)(`div`,{className:`api-contract`,"aria-label":`云端部署事实`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`名称`}),(0,G.jsx)(`strong`,{children:y.deployment.agentName||y.sourceAgentName})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`来源`}),(0,G.jsx)(`strong`,{children:i?`Studio 部署记录`:`账号云端 Agent`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`创建子账号`}),(0,G.jsx)(`strong`,{children:y.deployment.creatorName||`-`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`状态`}),(0,G.jsx)(`strong`,{children:hH(y.deployment.status)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`云端 Agent`}),(0,G.jsx)(`code`,{children:y.deployment.agentId||`尚未返回`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`类型`}),(0,G.jsx)(`code`,{children:y.deployment.framework||y.deployment.artifactId||`尚未返回`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`Endpoint`}),(0,G.jsx)(`code`,{children:y.deployment.endpoint||`尚未返回`})]}),y.deployment.instanceId&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`实例`}),(0,G.jsx)(`code`,{children:y.deployment.instanceId})]}),i&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`当前 Build`}),(0,G.jsx)(`code`,{children:y.deployment.buildId})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`当前版本`}),(0,G.jsx)(`code`,{title:r?.versionId||y.deployment.versionId||void 0,children:r?.versionName||r?.tag||y.deployment.versionId||`尚未返回`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`更新时间`}),(0,G.jsx)(`code`,{children:yH(y.deployment.updatedAt)})]}),i&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`Bundle`}),(0,G.jsx)(`code`,{title:y.deployment.bundleDigest,children:y.deployment.bundleDigest})]})]}),y.deployment.agentId?(0,G.jsxs)(`section`,{className:`deployment-version-history`,"aria-label":`云端版本历史`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{children:`云端版本历史`}),(0,G.jsx)(`p`,{children:`版本状态与可回滚性来自云端 Server`})]}),y.loading?(0,G.jsx)(`p`,{children:`正在读取版本…`}):(0,G.jsxs)(`div`,{className:`deployment-version-list`,role:`radiogroup`,"aria-label":`选择回滚版本`,children:[(0,G.jsxs)(`div`,{className:`deployment-version-header`,"aria-hidden":`true`,children:[(0,G.jsx)(`span`,{children:`版本`}),(0,G.jsx)(`span`,{children:`状态`}),(0,G.jsx)(`span`,{children:`流量`}),(0,G.jsx)(`span`,{children:`创建时间`})]}),y.versions.length?y.versions.map(e=>{let t=e.versionId===y.currentVersionId||e.status.toLowerCase()===`current`,n=t?`当前`:e.canRollback?`可回滚`:`不可回滚`;return(0,G.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":e.versionId===f,"aria-label":`${t?`当前版本`:e.canRollback?`可回滚版本`:`不可回滚版本`} ${e.versionName||e.tag||`未命名`}`,className:`deployment-version-option`,"data-current":t,"data-selected":e.versionId===f,disabled:t||!e.canRollback||x||_,onClick:()=>p(e.versionId),children:[(0,G.jsx)(`strong`,{className:`deployment-version-name`,children:e.versionName||e.tag||`未命名版本`}),(0,G.jsx)(`span`,{className:`deployment-version-state`,"data-state":t?`current`:e.canRollback?`available`:`disabled`,children:n}),(0,G.jsxs)(`span`,{className:`deployment-version-traffic`,children:[e.trafficPercentage,`%`]}),(0,G.jsx)(`time`,{className:`deployment-version-time`,dateTime:e.createdAt||void 0,children:yH(e.createdAt)})]},e.versionId)}):(0,G.jsx)(`p`,{className:`deployment-version-empty`,children:`云端暂未返回版本记录。`})]})]}):(0,G.jsx)(`div`,{className:`callout`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`缺少云端 Agent ID`}),(0,G.jsx)(`p`,{children:`当前记录无法查询 Server 版本历史,因此不开放版本回滚。`})]})})]}),m&&n&&(0,G.jsx)(ka,{title:`确认回滚云端 Agent?`,description:`当前云端版本 ${r?.versionName||y.deployment.versionId||`未知`}(${r?.versionId||y.deployment.versionId||`未知`})将回滚到 ${n.versionName||n.tag||`目标版本`}(${n.versionId})。系统将调用 Server RollbackVersion,并在提交后重新读取 Agent 与版本列表。`,confirmText:`确认回滚`,danger:!1,busy:_,onConfirm:()=>void fe(),onCancel:()=>h(!1)})]})}return(0,G.jsxs)(`div`,{className:`delivery-page`,"data-layout":`document`,children:[(0,G.jsxs)(Sd,{children:[(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:()=>DV(`#/deployments/new`),children:[(0,G.jsx)(de,{size:15}),(0,G.jsx)(`span`,{children:`部署 Agent`})]}),(0,G.jsxs)(`button`,{className:`button secondary`,type:`button`,onClick:()=>void ie(),disabled:!r.length||u.size>0,children:[(0,G.jsx)(et,{size:15}),(0,G.jsx)(`span`,{children:`刷新全部状态`})]})]}),c&&(0,G.jsx)(`div`,{className:`form-error`,role:`alert`,children:c}),(0,G.jsxs)(`section`,{className:`delivery-stat-strip compact-delivery-summary`,"aria-label":`部署摘要`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,title:`同一 Agent 的多次部署按 Agent 聚合`,children:`云端 Agent`}),(0,G.jsx)(`strong`,{children:r.length})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`运行中`}),(0,G.jsx)(`strong`,{children:U.ready})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`部署中`}),(0,G.jsx)(`strong`,{children:U.pending})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`异常`}),(0,G.jsx)(`strong`,{children:U.failed})]})]}),a?(0,G.jsx)(`div`,{className:`delivery-empty-state`,children:(0,G.jsx)(`p`,{children:`正在读取云端 Agent…`})}):r.length?(0,G.jsxs)(`section`,{className:`delivery-block`,"aria-label":`云端 Agent 列表`,children:[(0,G.jsxs)(`div`,{className:`delivery-section-heading`,children:[(0,G.jsx)(`h2`,{children:`Agent 列表`}),(0,G.jsxs)(`span`,{children:[r.length,` 个`]})]}),(0,G.jsx)(`div`,{className:`delivery-table-scroll`,children:(0,G.jsxs)(`table`,{className:`delivery-table`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`th`,{children:`Agent`}),(0,G.jsx)(`th`,{children:`状态`}),(0,G.jsx)(`th`,{children:`类型`}),(0,G.jsx)(`th`,{children:`创建子账号`}),(0,G.jsx)(`th`,{children:`版本`}),(0,G.jsx)(`th`,{children:`更新时间`}),(0,G.jsx)(`th`,{children:(0,G.jsx)(`span`,{className:`sr-only`,children:`操作`})})]})}),(0,G.jsx)(`tbody`,{children:r.map(e=>{let n=u.has(e.id),r=BV(e);return(0,G.jsxs)(`tr`,{children:[(0,G.jsx)(`td`,{children:(0,G.jsxs)(`button`,{className:`delivery-agent-identity`,type:`button`,"aria-label":`查看 ${e.agentName||e.agentId||`云端 Agent`} 详情`,onClick:()=>void se(e),children:[(0,G.jsx)(`strong`,{children:e.agentName||e.agentId||`云端 Agent`}),(0,G.jsx)(`code`,{title:e.agentId||e.id,children:gH(e.agentId||e.id,24)})]})}),(0,G.jsx)(`td`,{children:(0,G.jsx)(`span`,{className:`delivery-status-badge`,"data-state":mH(e.status),children:hH(e.status)})}),(0,G.jsxs)(`td`,{children:[(0,G.jsx)(`strong`,{children:e.framework||(e.artifactId===`managed-runtime`?`YAML Agent`:`高代码 Agent`)}),e.source===`receipt`&&(0,G.jsx)(`small`,{children:`Studio 部署记录`})]}),(0,G.jsx)(`td`,{children:e.creatorName||`-`}),(0,G.jsx)(`td`,{children:(0,G.jsx)(`code`,{title:e.versionId||``,children:gH(e.versionId||`—`,20)})}),(0,G.jsx)(`td`,{children:(0,G.jsx)(`span`,{className:`delivery-updated-at`,children:yH(e.updatedAt)})}),(0,G.jsxs)(`td`,{className:`delivery-row-actions`,children:[mH(e.status)===`ready`&&e.agentId&&(0,G.jsx)(`button`,{className:`button secondary compact`,type:`button`,"aria-label":r.kind===`official-dashboard`?`打开官方 Dashboard`:`打开云端 Agent 会话`,onClick:()=>r.kind===`official-dashboard`?void ae(e):t(e),children:r.kind===`official-dashboard`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ye,{size:15}),(0,G.jsx)(`span`,{children:`链接`})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Le,{size:15}),(0,G.jsx)(`span`,{children:`会话`})]})}),(0,G.jsx)(yd,{label:`${e.agentName||e.agentId||e.id} 的更多操作`,items:[{label:n?`正在刷新状态`:`刷新状态`,disabled:n,onSelect:()=>void re(e)},...mH(e.status)===`ready`&&e.agentId?[{label:`在 Hosted UI 中打开`,onSelect:()=>void ae(e)}]:[],...e.source===`receipt`?[{label:`版本管理`,onSelect:()=>void se(e)}]:[],...e.agentId?[{label:`删除云端 Agent`,danger:!0,onSelect:()=>w(e)}]:[]]})]})]},e.id)})})]})})]}):(0,G.jsxs)(`div`,{className:`delivery-empty-state`,children:[(0,G.jsx)(de,{size:24}),(0,G.jsx)(`h2`,{children:`还没有云端 Agent`}),(0,G.jsx)(`p`,{children:`可以从 Agent 详情构建并部署到云端。`}),(0,G.jsxs)(`div`,{className:`delivery-empty-actions`,children:[(0,G.jsx)(`button`,{className:`button accent`,type:`button`,onClick:()=>DV(`#/deployments/new`),children:`部署 Agent`}),(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:e,children:`创建 Agent`})]})]}),C&&(0,G.jsx)(ka,{title:`删除云端 Agent?`,description:`将删除 ${C.agentId||C.id} 的云端实例和本地部署记录。此操作不会删除本地 Agent 与 Build。`,confirmText:`删除云端 Agent`,busy:T,onConfirm:()=>void W(),onCancel:()=>w(null)})]})}var xH=e=>typeof e==`boolean`||e instanceof Boolean,SH=e=>typeof e==`number`||e instanceof Number,CH=e=>typeof e==`bigint`||e instanceof BigInt,wH=e=>!!e&&e instanceof Date,TH=e=>typeof e==`string`||e instanceof String,EH=e=>Array.isArray(e),DH=e=>typeof e==`object`&&!!e,OH=e=>!!e&&e instanceof Object&&typeof e==`function`;function kH(e,t){return t===void 0&&(t=!1),!e||t?`"${e}"`:e}function AH(e,t,n){return n?JSON.stringify(e):t?`"${e}"`:e}function jH(e){let{field:t,value:n,data:r,lastElement:i,openBracket:a,closeBracket:o,level:c,style:l,shouldExpandNode:u,clickToExpandNode:d,outerRef:f,beforeExpandChange:p}=e,m=(0,s.useRef)(!1),[h,g]=(0,s.useState)(()=>u(c,n,t)),_=(0,s.useRef)(null);(0,s.useEffect)(()=>{m.current?g(u(c,n,t)):m.current=!0},[u]);let v=(0,s.useId)();if(r.length===0)return MH({field:t,openBracket:a,closeBracket:o,lastElement:i,style:l});let y=h?l.collapseIcon:l.expandIcon,b=h?l.ariaLables.collapseJson:l.ariaLables.expandJson,x=c+1,S=r.length-1,C=e=>{h!==e&&(!p||p({level:c,value:n,field:t,newExpandValue:e}))&&g(e)},w=e=>{if(e.key===`ArrowRight`||e.key===`ArrowLeft`)e.preventDefault(),C(e.key===`ArrowRight`);else if(e.key===`ArrowUp`||e.key===`ArrowDown`){e.preventDefault();let t=e.key===`ArrowUp`?-1:1;if(!f.current)return;let n=f.current.querySelectorAll(`[role=button]`),r=-1;for(let e=0;e<n.length;e++)if(n[e].tabIndex===0){r=e;break}if(r<0)return;let i=(r+t+n.length)%n.length;n[r].tabIndex=-1,n[i].tabIndex=0,n[i].focus()}},T=()=>{C(!h);let e=_.current;if(!e)return;let t=f.current?.querySelector(`[role=button][tabindex="0"]`);t&&(t.tabIndex=-1),e.tabIndex=0,e.focus()};return(0,s.createElement)(`div`,{className:l.basicChildStyle,role:`treeitem`,"aria-expanded":h,"aria-selected":void 0},(0,s.createElement)(`span`,{className:y,onClick:T,onKeyDown:w,role:`button`,"aria-label":b,"aria-expanded":h,"aria-controls":h?v:void 0,ref:_,tabIndex:c===0?0:-1}),(t||t===``)&&(d?(0,s.createElement)(`span`,{className:l.clickableLabel,onClick:T,onKeyDown:w},kH(t,l.quotesForFieldNames),`:`):(0,s.createElement)(`span`,{className:l.label},kH(t,l.quotesForFieldNames),`:`)),(0,s.createElement)(`span`,{className:l.punctuation},a),h?(0,s.createElement)(`ul`,{id:v,role:`group`,className:l.childFieldsContainer},r.map((e,t)=>(0,s.createElement)(IH,{key:e[0]||t,field:e[0],value:e[1],style:l,lastElement:t===S,level:x,shouldExpandNode:u,clickToExpandNode:d,beforeExpandChange:p,outerRef:f}))):(0,s.createElement)(`span`,{className:l.collapsedContent,onClick:T,onKeyDown:w}),(0,s.createElement)(`span`,{className:l.punctuation},o),!i&&(0,s.createElement)(`span`,{className:l.punctuation},`,`))}function MH(e){let{field:t,openBracket:n,closeBracket:r,lastElement:i,style:a}=e;return(0,s.createElement)(`div`,{className:a.basicChildStyle,role:`treeitem`,"aria-selected":void 0},(t||t===``)&&(0,s.createElement)(`span`,{className:a.label},kH(t,a.quotesForFieldNames),`:`),(0,s.createElement)(`span`,{className:a.punctuation},n),(0,s.createElement)(`span`,{className:a.punctuation},r),!i&&(0,s.createElement)(`span`,{className:a.punctuation},`,`))}function NH(e){let{field:t,value:n,style:r,lastElement:i,shouldExpandNode:a,clickToExpandNode:o,level:s,outerRef:c,beforeExpandChange:l}=e;return jH({field:t,value:n,lastElement:i||!1,level:s,openBracket:`{`,closeBracket:`}`,style:r,shouldExpandNode:a,clickToExpandNode:o,data:Object.keys(n).map(e=>[e,n[e]]),outerRef:c,beforeExpandChange:l})}function PH(e){let{field:t,value:n,style:r,lastElement:i,level:a,shouldExpandNode:o,clickToExpandNode:s,outerRef:c,beforeExpandChange:l}=e;return jH({field:t,value:n,lastElement:i||!1,level:a,openBracket:`[`,closeBracket:`]`,style:r,shouldExpandNode:o,clickToExpandNode:s,data:n.map(e=>[void 0,e]),outerRef:c,beforeExpandChange:l})}function FH(e){let{field:t,value:n,style:r,lastElement:i}=e,a,o=r.otherValue;return n===null?(a=`null`,o=r.nullValue):n===void 0?(a=`undefined`,o=r.undefinedValue):TH(n)?(a=AH(n,!r.noQuotesForStringValues,r.stringifyStringValues),o=r.stringValue):xH(n)?(a=n?`true`:`false`,o=r.booleanValue):SH(n)?(a=n.toString(),o=r.numberValue):CH(n)?(a=`${n.toString()}n`,o=r.numberValue):a=wH(n)?n.toISOString():OH(n)?`function() { }`:n.toString(),(0,s.createElement)(`div`,{className:r.basicChildStyle,role:`treeitem`,"aria-selected":void 0},(t||t===``)&&(0,s.createElement)(`span`,{className:r.label},kH(t,r.quotesForFieldNames),`:`),(0,s.createElement)(`span`,{className:o},a),!i&&(0,s.createElement)(`span`,{className:r.punctuation},`,`))}function IH(e){let t=e.value;return EH(t)?(0,s.createElement)(PH,Object.assign({},e)):DH(t)&&!wH(t)&&!OH(t)?(0,s.createElement)(NH,Object.assign({},e)):(0,s.createElement)(FH,Object.assign({},e))}var LH={"container-base":`_GzYRV`,"punctuation-base":`_3eOF8`,pointer:`_1MFti`,"expander-base":`_f10Tu _1MFti`,"expand-icon":`_1UmXx`,"collapse-icon":`_1LId0`,"collapsed-content-base":`_1pNG9 _1MFti`,"container-light":`_2IvMF _GzYRV`,"basic-element-style":`_2bkNM`,"child-fields-container":`_1BXBN`,"label-light":`_1MGIk`,"clickable-label-light":`_2YKJg _1MGIk _1MFti`,"punctuation-light":`_3uHL6 _3eOF8`,"value-null-light":`_2T6PJ`,"value-undefined-light":`_1Gho6`,"value-string-light":`_vGjyY`,"value-number-light":`_1bQdo`,"value-boolean-light":`_3zQKs`,"value-other-light":`_1xvuR`,"collapse-icon-light":`_oLqym _f10Tu _1MFti _1LId0`,"expand-icon-light":`_2AXVT _f10Tu _1MFti _1UmXx`,"collapsed-content-light":`_2KJWg _1pNG9 _1MFti`,"container-dark":`_11RoI _GzYRV`,"expand-icon-dark":`_17H2C _f10Tu _1MFti _1UmXx`,"collapse-icon-dark":`_3QHg2 _f10Tu _1MFti _1LId0`,"collapsed-content-dark":`_3fDAz _1pNG9 _1MFti`,"label-dark":`_2bSDX`,"clickable-label-dark":`_1RQEj _2bSDX _1MFti`,"punctuation-dark":`_gsbQL _3eOF8`,"value-null-dark":`_LaAZe`,"value-undefined-dark":`_GTKgm`,"value-string-dark":`_Chy1W`,"value-number-dark":`_2bveF`,"value-boolean-dark":`_2vRm-`,"value-other-dark":`_1prJR`},RH={container:LH[`container-light`],basicChildStyle:LH[`basic-element-style`],childFieldsContainer:LH[`child-fields-container`],label:LH[`label-light`],clickableLabel:LH[`clickable-label-light`],nullValue:LH[`value-null-light`],undefinedValue:LH[`value-undefined-light`],stringValue:LH[`value-string-light`],booleanValue:LH[`value-boolean-light`],numberValue:LH[`value-number-light`],otherValue:LH[`value-other-light`],punctuation:LH[`punctuation-light`],collapseIcon:LH[`collapse-icon-light`],expandIcon:LH[`expand-icon-light`],collapsedContent:LH[`collapsed-content-light`],noQuotesForStringValues:!1,quotesForFieldNames:!1,ariaLables:{collapseJson:`collapse JSON`,expandJson:`expand JSON`},stringifyStringValues:!1};LH[`container-dark`],LH[`basic-element-style`],LH[`child-fields-container`],LH[`label-dark`],LH[`clickable-label-dark`],LH[`value-null-dark`],LH[`value-undefined-dark`],LH[`value-string-dark`],LH[`value-boolean-dark`],LH[`value-number-dark`],LH[`value-other-dark`],LH[`punctuation-dark`],LH[`collapse-icon-dark`],LH[`expand-icon-dark`],LH[`collapsed-content-dark`];var zH=()=>!0,BH=e=>e<1,VH=e=>{let{data:t,style:n=RH,shouldExpandNode:r=zH,clickToExpandNode:i=!1,beforeExpandChange:a,compactTopLevel:o,...c}=e,l=(0,s.useRef)(null);return(0,s.createElement)(`div`,Object.assign({"aria-label":`JSON view`},c,{className:n.container,ref:l,role:`tree`}),o&&DH(t)?Object.entries(t).map(e=>{let[t,o]=e;return(0,s.createElement)(IH,{key:t,field:t,value:o,style:{...RH,...n},lastElement:!0,level:1,shouldExpandNode:r,clickToExpandNode:i,beforeExpandChange:a,outerRef:l})}):(0,s.createElement)(IH,{value:t,style:{...RH,...n},lastElement:!0,level:0,shouldExpandNode:r,clickToExpandNode:i,outerRef:l,beforeExpandChange:a}))};function HH(e){return e===`failed`||e===`canceled`||e===`cancelled`||e===`interrupted`?3:e===`completed`?2:+(e===`running`)}function UH(e,t){let n=[...e?.sourceEvents||[],t].sort((e,t)=>e.seqId-t.seqId),r=n[0],i=n[n.length-1],a={...e?.details||{},...t.details},o=t.details.text,s=t.type.startsWith(`reasoning.`),c=t.type.startsWith(`text.`),l=t.category===`assistant`;if((s||c)&&typeof o==`string`){let n=s?`reasoning`:`output`,r=e?.details[n];a[n]=t.type.endsWith(`.delta`)&&t.details.replace!==!0&&typeof r==`string`?r+o:o,a.text=a[n]}t.type===`usage.reported`&&(a.usage={...t.details});let u=HH(t.status)>=HH(e?.status||null)?t.status??e?.status??null:e?.status??null,d=!!(u&&HH(u)>=2)||/\.(end|completed|resolved)$/.test(t.type),f=r.timestamp,p=d?i.timestamp:e?.endedAt??null,m=p!==null&&n.length>1&&p>f?(p-f)*1e3:null;return{...e||t,...t,type:l?`assistant.message`:t.type,summary:l?`Message`:t.summary,status:u,durationMs:t.durationMs??e?.durationMs??m,details:a,sourceEvents:n,firstSeqId:r.seqId,lastSeqId:i.seqId,startedAt:f,endedAt:p}}function WH(e,t){let n=e.byRecordId.get(t.recordId);if(n===void 0){e.byRecordId.set(t.recordId,e.items.length),e.items.push(UH(void 0,t));return}e.items[n]=UH(e.items[n],t)}function GH(e){return{...e,items:[...e.items],bySeq:new Map(e.bySeq),byRecordId:new Map(e.byRecordId)}}function KH(e=[],t=!1){let n={items:[],bySeq:new Map,byRecordId:new Map,lastSeqId:0,gap:null,hasMore:t,followTail:!0};for(let t of[...e].sort((e,t)=>e.seqId-t.seqId))n.bySeq.has(t.seqId)||(n.bySeq.set(t.seqId,t),WH(n,t),n.lastSeqId=t.seqId);return n}function qH(e,t,n=!0){if(e.bySeq.has(t.seqId))return e;let r=GH(e);if(r.bySeq.set(t.seqId,t),t.seqId<=r.lastSeqId)return r;if(!n)return WH(r,t),r.lastSeqId=t.seqId,r.gap=null,r;if(t.seqId>r.lastSeqId+1)return r.gap={afterSeqId:r.lastSeqId,beforeSeqId:t.seqId},r;let i=t;for(;i;)WH(r,i),r.lastSeqId=i.seqId,i=r.bySeq.get(r.lastSeqId+1);let a=[...r.bySeq.keys()].filter(e=>e>r.lastSeqId).sort((e,t)=>e-t)[0];return r.gap=a===void 0?null:{afterSeqId:r.lastSeqId,beforeSeqId:a},r}function JH(e,t,n){let r=new Map(e.bySeq);for(let e of t)r.has(e.seqId)||r.set(e.seqId,e);let i=KH([...r.values()],n);return i.followTail=e.followTail,i}function YH(e){return e===null||Number.isNaN(e)?`不可用`:e<1e3?`${Math.round(e)} ms`:`${(e/1e3).toFixed(e<1e4?2:1)} s`}function XH(e){return e===`tool`?(0,G.jsx)(yt,{size:15}):e===`assistant`?(0,G.jsx)(N,{size:15}):e===`context`?(0,G.jsx)(I,{size:15}):e===`user`?(0,G.jsx)(Ie,{size:15}):e===`approval`?(0,G.jsx)(ot,{size:15}):e===`artifact`?(0,G.jsx)(xe,{size:15}):(0,G.jsx)(ae,{size:15})}function ZH(e){return[$H(e),e.status||`未上报`,YH(e.durationMs)].join(` · `)}function QH(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:{}}function $H(e){let t=e.details.name??e.details.model;return typeof t==`string`&&t?t:e.summary}function eU(e,t){let n=QH(e.details.usage)[t];return typeof n==`number`?String(n):`-`}function tU(e){return{user:`User`,context:`Context`,assistant:`Assistant`,tool:`Tool`,approval:`Approval`,artifact:`Artifact`,system:`System`}[e]}function nU(e){return e.category===`user`||e.category===`context`?`input`:e.category===`assistant`?`model`:e.category===`tool`?`tools`:null}function rU(e,t){let n=new URLSearchParams({limit:`100`});return t&&n.set(`invocationId`,t),`/api/v1/sessions/${encodeURIComponent(e)}/events?${n}`}function iU({record:e}){let[t,n]=(0,s.useState)(e.category===`system`?`source`:`summary`);return(0,G.jsxs)(`div`,{className:`trajectory-detail`,children:[(0,G.jsxs)(`header`,{className:`trajectory-detail-heading`,children:[(0,G.jsx)(`strong`,{children:$H(e)}),(0,G.jsxs)(`span`,{children:[tU(e.category),` · `,e.status||`未上报`]})]}),(0,G.jsx)(`div`,{className:`trajectory-detail-tabs`,role:`tablist`,"aria-label":`节点详情`,children:[`summary`,`preview`,`raw`,`source`].map(e=>(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===e,onClick:()=>n(e),children:e===`summary`?`Summary`:e===`preview`?`Preview`:e===`raw`?`Raw Events`:`Source`},e))}),t===`summary`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`h3`,{children:`Timing`}),(0,G.jsx)(`pre`,{children:JSON.stringify({status:e.status,durationMs:e.durationMs,ttftMs:e.details.ttft_ms??null,startedAt:e.startedAt,endedAt:e.endedAt},null,2)})]}),e.details.usage!==void 0&&(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`h3`,{children:`Usage`}),(0,G.jsx)(`pre`,{children:JSON.stringify(e.details.usage,null,2)})]})]}),t===`preview`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`h3`,{children:`Input`}),(0,G.jsx)(`pre`,{children:JSON.stringify(e.details.args??e.details.input??(e.category===`user`?e.details.text:null),null,2)})]}),(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`h3`,{children:`Output`}),(0,G.jsx)(`pre`,{children:JSON.stringify(e.details.result??e.details.output??null,null,2)})]}),(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`h3`,{children:`Reasoning`}),(0,G.jsx)(`pre`,{children:JSON.stringify(e.details.reasoning??null,null,2)})]})]}),t===`raw`&&(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`h3`,{children:`Raw Events`}),(0,G.jsx)(`pre`,{children:JSON.stringify(e.sourceEvents.map(e=>e.source??e),null,2)})]}),t===`source`&&(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`h3`,{children:`Source`}),(0,G.jsx)(`pre`,{children:JSON.stringify({recordId:e.recordId,eventIds:e.sourceEvents.map(e=>e.eventId),seqIds:e.sourceEvents.map(e=>e.seqId),turnId:e.turnId,stepId:e.stepId},null,2)})]})]})}function aU({sessionId:e,invocationId:t,onSelectionChange:n}){let[r,i]=(0,s.useState)(()=>KH()),[a,o]=(0,s.useState)(!0),[c,l]=(0,s.useState)(!0),[u,d]=(0,s.useState)(!0),[f,p]=(0,s.useState)(!1),[m,h]=(0,s.useState)(null),[_,v]=(0,s.useState)(!0),[y,b]=(0,s.useState)(``),x=(0,s.useRef)(null);(0,s.useEffect)(()=>{let n=!1,r=null;return v(!0),b(``),i(KH()),h(null),g(rU(e,t)).then(async e=>{if(!e.ok)throw Error(`轨迹加载失败(${e.status})`);return e.json()}).then(a=>{if(n)return;let o=KH(a.items||[],!!a.page?.hasMore);i(o),v(!1);let s=new URLSearchParams({afterSeqId:String(o.lastSeqId)});t&&s.set(`invocationId`,t),r=new EventSource(`/api/v1/sessions/${encodeURIComponent(e)}/events/stream?${s}`),r.addEventListener(`runtime_event`,e=>{try{let n=JSON.parse(e.data);i(e=>qH(e,n,!t))}catch{b(`实时轨迹包含无法解析的事件`)}})}).catch(e=>{n||(v(!1),b(e instanceof Error?e.message:`轨迹加载失败`))}),()=>{n=!0,r?.close()}},[t,e]),(0,s.useEffect)(()=>{if(!r.gap)return;let n=!1,a=r.gap,o=new URLSearchParams({limit:`500`,beforeSeqId:String(a.beforeSeqId)});return t&&o.set(`invocationId`,t),g(`/api/v1/sessions/${encodeURIComponent(e)}/events?${o}`).then(e=>{if(!e.ok)throw Error(`轨迹补拉失败(${e.status})`);return e.json()}).then(e=>{if(n)return;let t=(e.items||[]).filter(e=>e.seqId>a.afterSeqId).sort((e,t)=>e.seqId-t.seqId);i(e=>t.reduce((e,t)=>qH(e,t),e))}).catch(()=>{n||b(`实时轨迹存在序号缺口,补拉失败`)}),()=>{n=!0}},[t,e,r.gap]),(0,s.useEffect)(()=>{let e=x.current;e&&r.followTail&&(e.scrollTop=e.scrollHeight)},[r.followTail,r.items]);let S=(0,s.useCallback)(async()=>{let n=Math.min(...r.bySeq.keys());if(!Number.isFinite(n))return;let a=new URLSearchParams({limit:`100`,beforeSeqId:String(n)});t&&a.set(`invocationId`,t);let o=await g(`/api/v1/sessions/${encodeURIComponent(e)}/events?${a}`);if(!o.ok){b(`更早轨迹加载失败`);return}let s=await o.json();i(e=>JH(e,s.items||[],s.page.hasMore))},[t,e,r.bySeq]),C=(0,s.useMemo)(()=>{let e=new Map,t=new Map;for(let n of r.items){if(n.recordId.startsWith(`turn:`)&&n.turnId){let t=n.details.turn_index;e.set(n.turnId,typeof t==`number`?`Turn ${t}`:n.summary)}if(n.recordId.startsWith(`step:`)&&n.stepId){let e=n.details.step_index;t.set(n.stepId,typeof e==`number`?`Step ${e}`:n.summary)}}let n=r.items.filter(e=>e.category!==`system`),i=u?n:n.filter(e=>e.category!==`tool`),a=new Map;for(let t of i){let n=t.turnId||`run`,r=t.turnId?e.get(t.turnId)||`Turn`:`Run`,i=a.get(n)||{id:n,label:r,items:[]};i.items.push(t),a.set(n,i)}let o=Math.max(0,...r.items.map(e=>e.durationMs||0));return{groups:[...a.values()],semanticItems:n,systemItems:r.items.filter(e=>e.category===`system`),steps:t,turns:e.size,hasUsage:n.some(e=>Object.keys(QH(e.details.usage)).length>0),duration:o,calls:n.filter(e=>e.category===`tool`).length}},[u,r.items]),w=m&&r.items.find(e=>e.recordId===m)||null;(0,s.useEffect)(()=>{n?.(w)},[n,w]);let T=(0,s.useMemo)(()=>{let e=C.semanticItems.filter(e=>nU(e)&&(u||e.category!==`tool`)),t=Math.min(...e.map(e=>e.startedAt)),n=Math.max(...e.map(e=>e.endedAt??e.startedAt));return{items:e,start:t,span:Math.max(n-t,.001)}},[u,C.semanticItems]);return(0,G.jsxs)(`section`,{className:`trajectory-view`,"aria-label":`实时轨迹`,children:[(0,G.jsxs)(`header`,{className:`trajectory-toolbar`,children:[(0,G.jsxs)(`div`,{className:`segmented-control`,"aria-label":`轨迹显示控制`,children:[(0,G.jsx)(`button`,{type:`button`,className:a?`selected`:``,"aria-pressed":a,disabled:T.items.length<=1,onClick:()=>o(e=>!e),children:`Duration`}),(0,G.jsx)(`button`,{type:`button`,className:c?`selected`:``,"aria-pressed":c,onClick:()=>l(e=>!e),children:`Turns`}),(0,G.jsx)(`button`,{type:`button`,className:u?`selected`:``,"aria-pressed":u,disabled:C.calls===0,onClick:()=>d(e=>!e),children:`Calls`})]}),(0,G.jsxs)(`strong`,{className:`trajectory-summary-value`,children:[C.turns,` Turn · `,C.calls,` Call · `,YH(C.duration)]}),r.hasMore&&(0,G.jsxs)(`button`,{className:`button tertiary small`,type:`button`,onClick:()=>void S(),children:[(0,G.jsx)(ne,{size:14}),(0,G.jsx)(`span`,{children:`加载更早`})]})]}),y&&(0,G.jsx)(`div`,{className:`trajectory-status error`,children:y}),_&&(0,G.jsx)(`div`,{className:`trajectory-status`,children:`正在读取轨迹...`}),!_&&!C.semanticItems.length&&!C.systemItems.length&&(0,G.jsx)(`div`,{className:`trajectory-status`,children:`当前 Session 没有轨迹事件。`}),!!T.items.length&&(0,G.jsx)(`div`,{className:`trajectory-timeline`,"aria-label":`轨迹时间带`,"data-mode":a?`duration`:`equal`,children:[`input`,`model`,`tools`].map(e=>(0,G.jsxs)(`div`,{className:`trajectory-lane`,children:[(0,G.jsx)(`span`,{children:e===`input`?`Input`:e===`model`?`Model`:`Tools`}),(0,G.jsx)(`div`,{children:T.items.filter(t=>nU(t)===e).map((e,t,n)=>{let r=a?(e.startedAt-T.start)/T.span*100:t/Math.max(n.length,1)*100,i=a?Math.max(2,((e.endedAt??e.startedAt)-e.startedAt)/T.span*100):100/Math.max(n.length,1);return(0,G.jsx)(`i`,{"data-category":e.category,title:$H(e),style:{left:`${r}%`,width:`${Math.min(i,100-r)}%`}},e.recordId)})})]},e))}),(0,G.jsxs)(`div`,{ref:x,className:`trajectory-ledger`,role:`log`,"aria-label":`轨迹事件`,onScroll:e=>{let t=e.currentTarget,n=t.scrollHeight-t.scrollTop-t.clientHeight<48;i(e=>e.followTail===n?e:{...e,followTail:n})},children:[!!C.semanticItems.length&&(0,G.jsxs)(`div`,{className:`trajectory-column-header`,"data-usage":C.hasUsage,"aria-hidden":`true`,children:[(0,G.jsx)(`span`,{children:`Event`}),C.hasUsage&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{children:`Input Tokens`}),(0,G.jsx)(`span`,{children:`Output Tokens`}),(0,G.jsx)(`span`,{children:`Think`})]}),(0,G.jsx)(`span`,{children:`Time`})]}),C.groups.map(e=>(0,G.jsxs)(s.Fragment,{children:[(0,G.jsxs)(`div`,{className:`trajectory-turn-header`,children:[(0,G.jsx)(`strong`,{children:e.label}),(0,G.jsxs)(`span`,{children:[e.items.length,` nodes`]})]}),c&&e.items.map((t,n)=>{let r=t.stepId?C.steps.get(t.stepId)||`Step`:``,i=n>0?e.items[n-1]:null,a=i?.stepId?C.steps.get(i.stepId)||`Step`:``;return(0,G.jsxs)(s.Fragment,{children:[r&&r!==a&&(0,G.jsxs)(`div`,{className:`trajectory-group-label`,children:[e.label,` · `,r]}),(0,G.jsxs)(`button`,{type:`button`,className:`trajectory-row`,"data-usage":C.hasUsage,"data-category":t.category,"data-status":t.status||`unknown`,"aria-pressed":t.recordId===m,"aria-label":ZH(t),onClick:()=>h(t.recordId),children:[(0,G.jsx)(`span`,{className:`trajectory-row-icon`,children:XH(t.category)}),(0,G.jsxs)(`span`,{className:`trajectory-row-copy`,children:[(0,G.jsx)(`strong`,{children:$H(t)}),(0,G.jsxs)(`small`,{children:[tU(t.category),` · `,t.status||`未上报`]})]}),C.hasUsage&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`trajectory-row-metric`,children:eU(t,`input_tokens`)}),(0,G.jsx)(`span`,{className:`trajectory-row-metric`,children:eU(t,`output_tokens`)}),(0,G.jsx)(`span`,{className:`trajectory-row-metric`,children:eU(t,`reasoning_tokens`)})]}),(0,G.jsx)(`span`,{className:`trajectory-row-duration`,children:YH(t.durationMs)})]})]},t.recordId)})]},e.id)),!!C.systemItems.length&&(0,G.jsxs)(`div`,{className:`trajectory-system-events`,children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>p(e=>!e),"aria-expanded":f,children:[(0,G.jsx)(k,{size:14}),`System Events (`,C.systemItems.length,`)`]}),f&&C.systemItems.map(e=>(0,G.jsxs)(`button`,{type:`button`,className:`trajectory-system-row`,"aria-pressed":e.recordId===m,onClick:()=>h(e.recordId),children:[e.type,` · #`,e.lastSeqId]},e.recordId))]})]}),!r.followTail&&(0,G.jsx)(`button`,{className:`button secondary small trajectory-latest`,type:`button`,onClick:()=>{let e=x.current;e&&(e.scrollTop=e.scrollHeight),i(e=>({...e,followTail:!0}))},children:`回到最新`})]})}function oU(e,t=18){let n=String(e||``);return n.length>t?`${n.slice(0,t)}…`:n}function sU(e,t=`-`){return e==null||e===``?t:String(e)}function cU(e){let t=String(e||``).toUpperCase();return t===`COMPLETED`||t===`SUCCEEDED`||t===`OK`?`成功`:t===`RUNNING`?`运行中`:t===`PAUSED`?`已暂停`:t===`FAILED`||t===`ERROR`||t===`INTERNAL`?`失败`:t===`CANCELLED`?`已取消`:t||`未知`}function lU(e){if(e==null||Number.isNaN(Number(e)))return`未上报`;let t=Number(e);return t<1?`${t.toFixed(3)} ms`:t<1e3?`${Math.round(t)} ms`:`${(t/1e3).toFixed(t<1e4?2:1)} s`}function uU(e){return e==null?`未上报`:new Intl.NumberFormat(`zh-CN`).format(Number(e))}function dU(e){if(e==null||typeof e==`boolean`)return null;let t=Number(e);return Number.isFinite(t)&&t>=0?t:null}function fU(e){let t=dU(e.totalTokens);if(t!==null&&e.usageCompleteness?.totalTokens!==!1)return t;let n=dU(e.inputTokens),r=dU(e.outputTokens);return n!==null&&r!==null&&e.usageCompleteness?.inputTokens!==!1&&e.usageCompleteness?.outputTokens!==!1?n+r:null}function pU(e){return[e.inputTokens,e.outputTokens,e.totalTokens].some(e=>dU(e)!==null)}function mU(e){let t=fU(e);return t===null?pU(e)?`部分上报`:`未上报`:uU(t)}function hU(e){let t=dU(e.inputTokens),n=dU(e.outputTokens);return`${t===null?`—`:`${e.usageCompleteness?.inputTokens===!1?`≥`:``}${uU(t)}`} 输入 · ${n===null?`—`:`${e.usageCompleteness?.outputTokens===!1?`≥`:``}${uU(n)}`} 输出`}function gU(e){let t=fU(e);if(t!==null)return uU(t);if(dU(e.totalTokens)!==null)return`部分上报`;let n=dU(e.inputTokens),r=dU(e.outputTokens);return n!==null&&r!==null||n!==null&&e.usageCompleteness?.inputTokens===!1||r!==null&&e.usageCompleteness?.outputTokens===!1?`部分上报`:n===null?r===null?`未上报`:`${uU(r)} 输出`:`${uU(n)} 输入`}function _U(e){try{let t=Number(BigInt(String(e||`0`))/1000000n);return t?new Date(t).toISOString():`-`}catch{return`-`}}function vU(e){if(!e)return`刚刚`;let t=new Date(e);return Number.isNaN(t.getTime())?`未知时间`:new Intl.DateTimeFormat(`zh-CN`,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}).format(t)}function yU(e){try{return JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t,2)}catch{return String(e)}}function bU(e){return e==null?`-`:typeof e==`object`?yU(e):String(e)}var xU={container:`otlp-json`,childFieldsContainer:`otlp-json-children`,basicChildStyle:`otlp-json-row`,collapseIcon:`otlp-json-toggle otlp-json-collapse`,expandIcon:`otlp-json-toggle otlp-json-expand`,collapsedContent:`otlp-json-collapsed`,label:`otlp-json-key`,clickableLabel:`otlp-json-key otlp-json-key-clickable`,nullValue:`otlp-json-null`,undefinedValue:`otlp-json-null`,numberValue:`otlp-json-number`,stringValue:`otlp-json-string`,booleanValue:`otlp-json-boolean`,otherValue:`otlp-json-other`,punctuation:`otlp-json-punctuation`,quotesForFieldNames:!0,stringifyStringValues:!0,ariaLables:{collapseJson:`收起 JSON 节点`,expandJson:`展开 JSON 节点`}},SU=[`agentkit.event.text`,`agentkit.event.delta`,`agentkit.event.content`,`agentkit.event.output`,`agentkit.event.args`,`agentkit.event.command`,`agentkit.event.input`,`agentkit.event.prompt`];function CU(e){if(!e)return``;for(let t of SU){let n=e[t];if(typeof n==`string`&&n.trim())return n;if(typeof n==`number`||typeof n==`boolean`)return String(n)}return``}function wU(e){let t=[],n=``,r=null,i=0,a=(e=!1)=>{r&&n.trim()&&t.push({kind:r,text:n,segments:i,final:e}),n=``,i=0},o={};for(let t of e||[]){let e=CU(t.attributes);if(t.name===`thinking.delta`||t.name===`message.delta`){let o=t.name===`thinking.delta`?`thinking`:`message`;r!==o&&(a(),r=o),n+=e,i+=1}else if(t.name===`thinking.completed`||t.name===`message.completed`){let n=t.name===`thinking.completed`?`thinking`:`message`;e&&(o[n]=e)}}a();for(let e of[`thinking`,`message`]){let n=o[e];if(!n)continue;let r=t.findIndex(t=>t.kind===e);r>=0?t[r]={kind:e,text:n,segments:t[r].segments,final:!0}:t.push({kind:e,text:n,segments:1,final:!0})}return t}async function TU(e){try{await navigator.clipboard.writeText(e);return}catch{}let t=document.createElement(`textarea`);t.value=e,document.body.appendChild(t),t.select();try{document.execCommand(`copy`)}catch{}t.remove()}function EU({text:e,className:t}){let[n,r]=(0,s.useState)(!1);return(0,G.jsx)(`button`,{type:`button`,className:`copy-btn ${t||``}`,title:`复制`,onClick:t=>{t.stopPropagation(),TU(e),r(!0),setTimeout(()=>r(!1),1500)},children:n?(0,G.jsx)(V,{size:12,style:{color:`var(--success)`}}):(0,G.jsx)(me,{size:12})})}function DU({label:e,text:t,tone:n,icon:r,meta:i}){let[a,o]=(0,s.useState)(!1),c=t.length>600,l=a||!c?t:`${t.slice(0,600)}…`;return(0,G.jsxs)(`div`,{className:`io-block io-${n}`,children:[(0,G.jsxs)(`div`,{className:`io-head`,children:[(0,G.jsxs)(`span`,{className:`io-label`,children:[r,e]}),i&&(0,G.jsx)(`span`,{className:`io-meta`,children:i}),(0,G.jsx)(`span`,{style:{flex:1}}),(0,G.jsx)(EU,{text:t,className:`copy-visible`})]}),(0,G.jsx)(`div`,{className:`io-text`,children:l}),c&&(0,G.jsx)(`button`,{type:`button`,className:`io-expand`,onClick:()=>o(!a),children:a?`收起`:`展开全文(${t.length} 字符)`})]})}function OU({span:e}){let t=e.attributes||{},n=t[`agentkit.tool.input`],r=t[`agentkit.tool.output`],i=wU(e.events||[]);return n!=null&&n!==``||r!=null&&r!==``||i.length>0?(0,G.jsxs)(`div`,{className:`io-stack`,children:[n!=null&&n!==``&&(0,G.jsx)(DU,{label:`工具输入`,text:bU(n),tone:`tool`}),r!=null&&r!==``&&(0,G.jsx)(DU,{label:`工具输出`,text:bU(r),tone:`tool`}),i.map((e,t)=>(0,G.jsx)(DU,{label:e.kind===`message`?`模型输出`:`思考过程`,text:e.text,tone:e.kind,icon:e.kind===`message`?(0,G.jsx)(Ie,{size:12}):(0,G.jsx)(R,{size:12}),meta:e.final?`完整`:`${e.segments} 段增量`},t))]}):(0,G.jsx)(`div`,{className:`trace-stage-empty compact`,children:(0,G.jsx)(`p`,{children:`该 Span 没有捕获内容(可在 设置 → 可观测 开启 Trace 内容记录)。`})})}function kU({values:e}){let t=Object.entries(e||{}).sort(([e],[t])=>e.localeCompare(t));return t.length?(0,G.jsx)(`dl`,{className:`trace-kv-list`,children:t.map(([e,t])=>(0,G.jsxs)(`div`,{className:`trace-kv-row`,children:[(0,G.jsx)(`dt`,{className:`trace-kv-key`,children:e}),(0,G.jsx)(`dd`,{className:`trace-kv-value`,children:bU(t)}),(0,G.jsx)(EU,{text:bU(t),className:`trace-kv-copy`})]},e))}):(0,G.jsx)(`div`,{className:`trace-stage-empty compact`,children:(0,G.jsx)(`p`,{children:`没有可展示的字段。`})})}var AU=[{id:`spans`,label:`Spans`},{id:`trajectory`,label:`轨迹`},{id:`attributes`,label:`Attributes`},{id:`events`,label:`Events`},{id:`resource`,label:`Resource`},{id:`raw`,label:`Raw OTLP`}],jU=50;function MU({refreshTick:e}){let[t,n]=(0,s.useState)([]),[r,i]=(0,s.useState)([]),[a,o]=(0,s.useState)(``),[c,l]=(0,s.useState)(``),[u,d]=(0,s.useState)(``),[f,p]=(0,s.useState)(`24h`),[m,h]=(0,s.useState)(null),[_,v]=(0,s.useState)(null),[y,b]=(0,s.useState)(null),[x,S]=(0,s.useState)(`spans`),[C,w]=(0,s.useState)(null),[T,E]=(0,s.useState)(null),[D,j]=(0,s.useState)(!1),[M,N]=(0,s.useState)(!0),[P,F]=(0,s.useState)(!1),[I,L]=(0,s.useState)(!1),[R,z]=(0,s.useState)(0),[B,V]=(0,s.useState)([null]),[ee,te]=(0,s.useState)(null),[U,re]=(0,s.useState)(0),[ie,ae]=(0,s.useState)(!0),[oe,se]=(0,s.useState)(``),ce=(0,s.useRef)(0),le=(0,s.useRef)(0);(0,s.useEffect)(()=>{g(`/api/v1/agents?limit=100`).then(e=>e.json()).then(e=>{i((e.items||[]).map(e=>({id:e.metadata.id,name:e.metadata.name,appearance:e.metadata.appearance})))}).catch(()=>{})},[e]);let ue=(0,s.useCallback)(async e=>{let t=++ce.current;try{let n=await g(`/api/v1/traces/${encodeURIComponent(e)}`).then(e=>e.json());if(ce.current!==t)return;v(n),b(n.rootSpanId||n.spans?.[0]?.spanId||null),S(`spans`),w(null),E(null),N(!0),F(!1),L(!1)}catch{}},[]),de=(0,s.useCallback)(async e=>{let t=++le.current,r=new URLSearchParams({limit:String(jU),sort:`startedAt:desc`});c&&r.set(`agentId`,c),u&&r.set(`status`,u),a.trim()&&r.set(`query`,a.trim()),e&&r.set(`cursor`,e),ae(!0),se(``);try{let e=await g(`/api/v1/traces?${r}`);if(!e.ok)throw Error(`Trace 列表加载失败(${e.status})`);let i=await e.json();if(le.current!==t)return;let a=i.items||[];n(a),te(i.nextCursor||null),re(Number(i.total)||0)}catch(e){if(le.current!==t)return;n([]),te(null),re(0),se(e instanceof Error?e.message:`Trace 列表加载失败`)}finally{le.current===t&&ae(!1)}},[c,a,u]);(0,s.useEffect)(()=>{V([null]),z(0),de(null)},[de,e]),(0,s.useEffect)(()=>{let e=new URLSearchParams({range:f});c&&e.set(`agentId`,c),u&&e.set(`status`,u),g(`/api/v1/traces/overview?${e}`).then(e=>e.ok?e.json():Promise.reject(Error())).then(h).catch(()=>h(null))},[c,f,e,u]),(0,s.useEffect)(()=>{if(x!==`raw`||!_||T)return;let e=_.traceId;j(!0),g(`/api/v1/traces/${encodeURIComponent(e)}/otlp`).then(e=>e.json()).then(e=>{E(e),j(!1)}).catch(()=>j(!1))},[x,_,T]);let W=_?.spans?.find(e=>e.spanId===y)||null,fe=(0,s.useMemo)(()=>{let e=_?.spans||[],t=new Map;e.forEach(e=>{let n=e.parentSpanId||``;t.has(n)||t.set(n,[]),t.get(n).push(e)}),t.forEach(e=>e.sort((e,t)=>{try{return Number(BigInt(e.startTimeUnixNano||`0`)-BigInt(t.startTimeUnixNano||`0`))}catch{return 0}}));let n=[],r=new Set,i=(e,a)=>{!e||r.has(e.spanId)||(r.add(e.spanId),n.push({span:e,depth:a}),(t.get(e.spanId)||[]).forEach(e=>i(e,a+1)))};return i(e.find(e=>e.spanId===_?.rootSpanId)||e.find(e=>!e.parentSpanId),0),e.forEach(e=>i(e,+!!e.parentSpanId)),n},[_]),pe=fe.find(e=>e.span.spanId===_?.rootSpanId)?.span||fe[0]?.span,he=(0,s.useMemo)(()=>{if(!pe)return{start:0n,duration:1};try{let e=BigInt(pe.startTimeUnixNano||`0`),t=BigInt(pe.endTimeUnixNano||pe.startTimeUnixNano||`0`);return{start:e,duration:Number(t>e?t-e:1n)}}catch{return{start:0n,duration:1}}},[pe]),ge=_?.metrics||{durationMs:_?.durationMs,inputTokens:_?.inputTokens,outputTokens:_?.outputTokens,totalTokens:_?.totalTokens,usageReported:_?.usageReported},_e=r.find(e=>e.id===_?.agentId),ve=(0,s.useMemo)(()=>[{id:`status`,header:`状态`,width:130,cell:e=>(0,G.jsxs)(`span`,{className:`trace-table-status ${e.status}`,title:e.status,children:[(0,G.jsx)(`span`,{className:`trace-list-status ${e.status}`}),cU(e.status)]})},{id:`identity`,header:`Agent / Run`,minWidth:270,cell:e=>{let t=r.find(t=>t.id===e.agentId),n=t?.name||e.agentId||`unknown-agent`;return(0,G.jsxs)(`button`,{type:`button`,className:`trace-table-open trace-table-agent`,onClick:()=>ue(e.traceId),children:[(0,G.jsx)(Ct,{name:n,appearance:t?.appearance,size:`xs`}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:n}),(0,G.jsx)(`small`,{children:oU(e.runId||e.traceId,32)})]})]})}},{id:`startedAt`,header:`开始时间`,minWidth:140,cell:e=>vU(e.startedAt)},{id:`duration`,header:`耗时`,width:110,cell:e=>lU(e.durationMs)},{id:`model`,header:`模型`,minWidth:140,cell:e=>e.model||`-`},{id:`tokens`,header:`Token`,width:110,cell:e=>gU(e)},{id:`spans`,header:`Span`,width:80,cell:e=>e.spanCount||0},{id:`actions`,header:(0,G.jsx)(`span`,{className:`sr-only`,children:`操作`}),width:110,className:`actions-column`,headerClassName:`actions-column`,cell:e=>(0,G.jsx)(`button`,{type:`button`,className:`button tertiary small`,onClick:()=>ue(e.traceId),children:`查看详情`})}],[r,ue]),ye=(0,s.useCallback)(()=>{if(_?.traceId){ue(_.traceId);return}de(B[R]||null)},[_?.traceId,B,R,de,ue]),be=(0,s.useCallback)(()=>{if(R<=0)return;let e=R-1;z(e),de(B[e]||null)},[B,R,de]),xe=(0,s.useCallback)(()=>{if(!ee)return;let e=R+1;V(t=>{let n=t.slice(0,e);return n[e]=ee,n}),z(e),de(ee)},[R,de,ee]);async function Se(){!_?.traceId||!_.rootSpanId||(await TU(`00-${_.traceId}-${_.rootSpanId}-01`),J(`traceparent 已复制`,oU(_.traceId,24)))}async function Ce(){if(!_)return;let e=T;e||(e=await g(`/api/v1/traces/${encodeURIComponent(_.traceId)}/otlp`).then(e=>e.json()).catch(()=>null),e&&E(e)),e&&(await TU(JSON.stringify(e,null,2)),J(`Raw OTLP 已复制`,oU(_.traceId,24)))}async function we(){if(!_?.sessionId)return;let e=window.showSaveFilePicker;if(!e){J(`浏览器不支持导出`,`请使用支持文件保存的 Chromium 浏览器。`,`error`);return}let t;try{t=await e({suggestedName:`${_.sessionId}-${_.runId||`session`}-session-log.jsonl`,types:[{description:`Session Log`,accept:{"application/x-ndjson":[`.jsonl`]}}]})}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return;J(`Session Log 导出失败`,e instanceof Error?e.message:`无法选择保存位置`,`error`);return}try{let e=await g(`/api/v1/sessions/${encodeURIComponent(_.sessionId)}:export`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filename:t.name,invocationId:_.runId||void 0,download:!0})});if(!e.ok)throw Error(`导出失败(${e.status})`);let n=await t.createWritable();await n.write(await e.blob()),await n.close();let r=e.headers.get(`X-Session-Event-Count`)||`0`;J(`Session Log 已导出`,`${t.name} · ${r} 条事件`)}catch(e){J(`Session Log 导出失败`,e instanceof Error?e.message:`未知错误`,`error`)}}return(0,G.jsxs)(`div`,{className:`page-container observability-page`,id:`traceExplorer`,"data-layout":`workbench`,children:[(0,G.jsxs)(xd,{children:[(0,G.jsxs)(`div`,{className:`search-field header-search-field`,children:[(0,G.jsx)(tt,{size:14}),(0,G.jsx)(`input`,{type:`search`,"aria-label":`搜索 Trace、Run 或 Session`,placeholder:`搜索 Trace、Run 或 Session`,value:a,onChange:e=>o(e.target.value)})]}),(0,G.jsxs)(`div`,{className:`segmented-control compact`,"aria-label":`可观测时间范围`,children:[(0,G.jsx)(`button`,{type:`button`,className:f===`24h`?`selected`:``,onClick:()=>p(`24h`),children:`24 小时`}),(0,G.jsx)(`button`,{type:`button`,className:f===`7d`?`selected`:``,onClick:()=>p(`7d`),children:`7 天`})]})]}),_&&(0,G.jsxs)(Sd,{children:[(0,G.jsxs)(`button`,{className:`button tertiary`,type:`button`,onClick:()=>void we(),children:[(0,G.jsx)(k,{size:15}),(0,G.jsx)(`span`,{children:`导出 Session Log`})]}),(0,G.jsxs)(`button`,{className:`button tertiary`,type:`button`,onClick:()=>{ce.current+=1,v(null),b(null),F(!1),L(!1)},children:[(0,G.jsx)(A,{size:15}),(0,G.jsx)(`span`,{children:`返回 Trace 列表`})]})]}),(0,G.jsxs)(`div`,{className:`data-page-body observability-body`,children:[(0,G.jsx)(NU,{overview:m,range:f}),!_&&(0,G.jsxs)(`div`,{className:`trace-toolbar`,"aria-label":`Trace 筛选`,children:[(0,G.jsx)(Fh,{className:`compact-select`,ariaLabel:`按 Agent 筛选`,value:c||`__all__`,options:[{value:`__all__`,label:`全部 Agent`},...r.map(e=>({value:e.id,label:e.name}))],onValueChange:e=>l(e===`__all__`?``:e)}),(0,G.jsx)(Fh,{className:`compact-select`,ariaLabel:`按状态筛选`,value:u||`__all__`,options:[{value:`__all__`,label:`全部状态`},{value:`COMPLETED`,label:`成功`},{value:`FAILED`,label:`失败`},{value:`CANCELLED`,label:`已取消`}],onValueChange:e=>d(e===`__all__`?``:e)})]}),_&&(0,G.jsxs)(`section`,{className:`stat-strip`,"aria-label":`Trace 指标`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`Trace 状态`}),(0,G.jsx)(`strong`,{children:_?cU(_.status):`未选择`}),(0,G.jsx)(`small`,{children:_?`${_.spans?.length||0} Span · ${_.target?.name||`本地工作区`}`:`选择一条 Trace 查看`})]}),(0,G.jsxs)(`div`,{className:`emphasis`,"data-state":_?.status===`FAILED`?`failed`:_?.status===`COMPLETED`?`ready`:`running`,children:[(0,G.jsx)(`span`,{children:`总耗时`}),(0,G.jsx)(`strong`,{children:_?lU(ge.durationMs):`未上报`}),(0,G.jsx)(`small`,{children:_?ge.durationMs===null||ge.durationMs===void 0?`Runtime 未上报`:ge.durationSource===`runtime`?`Runtime 精确上报`:`Studio 时钟回退`:`等待 Runtime 上报`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`Token`}),(0,G.jsx)(`strong`,{children:_?mU(ge):`未上报`}),(0,G.jsx)(`small`,{children:_&&pU(ge)?hU(ge):`输入 / 输出`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`模型`}),(0,G.jsx)(`strong`,{children:_?.model||`-`}),(0,G.jsx)(`small`,{children:_?`${_.runtimeType||`unknown`} · ${ge.usageSource||`Usage 未上报`}`:`Runtime`})]})]}),!_&&(0,G.jsxs)(`section`,{className:`trace-list-page`,"aria-label":`Trace 列表`,children:[(0,G.jsx)(`header`,{className:`trace-list-page-header`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`Trace`}),(0,G.jsxs)(`span`,{children:[U,` 条`]})]})}),(0,G.jsx)(_m,{columns:ve,data:t,getRowId:e=>e.traceId,caption:`Trace 列表`,minWidth:1060,loading:ie,error:oe,onRetry:ye,onRowActivate:e=>ue(e.traceId),rowAriaLabel:e=>`${e.agentId||`Agent`} ${e.runId||e.traceId}`,empty:{icon:(0,G.jsx)(O,{size:20}),title:`还没有 Trace`,description:`运行一次 Agent 后在这里查看调用链,或调整筛选条件。`},pagination:{pageIndex:R,pageSize:jU,total:U,hasNextPage:!!ee,onPreviousPage:be,onNextPage:xe}})]}),_&&(0,G.jsxs)(`div`,{className:`trace-workbench detail-route${P?` detail-expanded`:``}${I?` detail-collapsed`:``}`,children:[(0,G.jsxs)(`aside`,{className:`trace-run-panel`,"aria-label":`本页 Trace`,children:[(0,G.jsx)(`div`,{className:`trace-panel-header`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`Traces`}),(0,G.jsxs)(`span`,{children:[U,` 条结果`]})]})}),(0,G.jsx)(`div`,{className:`trace-run-list`,children:t.map(e=>{let t=r.find(t=>t.id===e.agentId);return(0,G.jsxs)(`button`,{type:`button`,className:e.traceId===_.traceId?`active`:``,onClick:()=>ue(e.traceId),children:[(0,G.jsxs)(`span`,{className:`trace-run-identity`,children:[(0,G.jsx)(Ct,{name:t?.name||e.agentId||`Agent`,appearance:t?.appearance,size:`xs`}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:t?.name||e.agentId||`Agent`}),(0,G.jsx)(`small`,{children:oU(e.runId||e.traceId,22)})]})]}),(0,G.jsxs)(`span`,{className:`trace-run-meta`,children:[(0,G.jsx)(`span`,{className:`mono`,children:lU(e.durationMs)}),(0,G.jsx)(`span`,{className:`badge`,"data-state":e.status===`FAILED`?`failed`:e.status===`COMPLETED`?`ready`:`running`,title:e.status,children:cU(e.status)})]})]},e.traceId)})})]}),(0,G.jsxs)(`section`,{className:`trace-span-panel`,"aria-label":`Span 时间瀑布`,children:[(0,G.jsxs)(`div`,{className:`trace-panel-header trace-span-header`,children:[(0,G.jsx)(Ct,{name:_e?.name||_.agentId||`Agent`,appearance:_e?.appearance,size:`sm`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:_?`${_e?.name||_.agentId||`Agent`} · ${_.runId||`Run`}`:`选择一条 Trace`}),(0,G.jsx)(`span`,{className:`mono`,children:_?.traceId||`-`})]}),(0,G.jsxs)(`button`,{className:`button tertiary small`,type:`button`,disabled:!_,onClick:Se,children:[(0,G.jsx)(me,{size:14}),(0,G.jsx)(`span`,{children:`复制 traceparent`})]}),I&&(0,G.jsxs)(`button`,{className:`button secondary small trace-detail-reopen`,type:`button`,onClick:()=>L(!1),children:[(0,G.jsx)(ne,{size:14}),(0,G.jsx)(`span`,{children:`展开右侧详情`})]})]}),(0,G.jsxs)(`div`,{className:`trace-axis`,"aria-hidden":`true`,children:[(0,G.jsx)(`span`,{children:`Span`}),(0,G.jsx)(`span`,{children:`0%`}),(0,G.jsx)(`span`,{children:`50%`}),(0,G.jsx)(`span`,{children:`100%`}),(0,G.jsx)(`span`,{children:`耗时`})]}),(0,G.jsx)(`div`,{className:`trace-span-tree`,children:fe.length===0?(0,G.jsxs)(`div`,{className:`trace-stage-empty`,children:[(0,G.jsx)(Ve,{size:20}),(0,G.jsx)(`p`,{children:_?`该 OTLP Trace 没有 Span。`:`选择左侧 Trace,查看 Agent、模型和 Tool 的父子关系与耗时。`})]}):fe.map(({span:e,depth:t})=>{let n=0,r=0;try{let t=BigInt(e.startTimeUnixNano||`0`),i=BigInt(e.endTimeUnixNano||e.startTimeUnixNano||`0`);n=Math.max(0,Math.min(100,Number(t-he.start)/he.duration*100)),r=Math.max(0,Math.min(100-n,Number(i-t)/he.duration*100))}catch{}return(0,G.jsxs)(`button`,{type:`button`,className:`trace-span-row${e.spanId===y?` active`:``}`,"data-kind":e.kind,"data-status":e.status,onClick:()=>{b(e.spanId),S(`spans`)},children:[(0,G.jsxs)(`span`,{className:`trace-span-name`,children:[(0,G.jsx)(`span`,{className:`trace-span-guides`,children:Array.from({length:t},(e,t)=>(0,G.jsx)(`span`,{className:`trace-span-guide`},t))}),(0,G.jsx)(`span`,{className:`trace-span-status ${e.status}`}),(0,G.jsxs)(`span`,{className:`trace-span-name-copy`,children:[(0,G.jsx)(`strong`,{children:e.name}),(0,G.jsxs)(`span`,{children:[e.kind,` · `,oU(e.spanId,16)]})]})]}),(0,G.jsx)(`span`,{className:`trace-waterfall-track`,children:(0,G.jsx)(`span`,{className:`trace-waterfall-bar`,style:{"--span-left":`${n.toFixed(3)}%`,"--span-width":`${r.toFixed(3)}%`}})}),(0,G.jsx)(`span`,{className:`trace-span-duration`,children:lU(e.durationMs)})]},e.spanId)})})]}),(0,G.jsxs)(`aside`,{className:`trace-detail-panel${I?` is-collapsed`:``}`,"aria-label":`Span 详情`,children:[(0,G.jsxs)(`div`,{className:`trace-panel-header`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:W?sU(W.name):`Span 详情`}),(0,G.jsx)(`span`,{children:W?`${sU(W.kind)} · ${cU(W.status)}`:`尚未选择 Span`})]}),(0,G.jsxs)(`div`,{className:`trace-detail-actions`,children:[!I&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`button`,{className:`button tertiary small`,type:`button`,disabled:!_,onClick:Ce,children:[(0,G.jsx)(me,{size:14}),(0,G.jsx)(`span`,{children:`复制 Raw OTLP`})]}),(0,G.jsxs)(`button`,{className:`button tertiary small trace-detail-expand`,type:`button`,"aria-pressed":P,title:P?`退出放大详情`:`放大详情`,onClick:()=>F(!P),children:[P?(0,G.jsx)(Re,{size:14}):(0,G.jsx)(Pe,{size:14}),(0,G.jsx)(`span`,{children:P?`退出放大`:`放大详情`})]})]}),(0,G.jsxs)(`button`,{className:`button tertiary small trace-detail-collapse`,type:`button`,"aria-expanded":!I,title:I?`展开 Trace 详情`:`收起 Trace 详情`,onClick:()=>{L(e=>!e),I||F(!1)},children:[I?(0,G.jsx)(ne,{size:14}):(0,G.jsx)(H,{size:14}),(0,G.jsx)(`span`,{children:I?`展开详情`:`收起详情`})]})]})]}),!I&&(0,G.jsx)(`div`,{className:`trace-tabs`,role:`tablist`,"aria-label":`Trace 详情分类`,children:AU.map(e=>(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":x===e.id,className:x===e.id?`active`:``,onClick:()=>S(e.id),children:e.label},e.id))}),!I&&(0,G.jsxs)(`div`,{className:`trace-detail-body${x===`raw`?` raw-active`:``}`,children:[x===`trajectory`&&(0,G.jsxs)(`div`,{className:`trace-trajectory-layout`,children:[(0,G.jsx)(aU,{sessionId:_.sessionId,invocationId:_.runId||void 0,onSelectionChange:w}),(0,G.jsx)(`aside`,{className:`trajectory-selection`,"aria-label":`轨迹详情`,children:C?(0,G.jsx)(iU,{record:C}):(0,G.jsx)(`div`,{className:`trace-stage-empty compact`,children:(0,G.jsx)(`p`,{children:`选择一条轨迹事件查看详情。`})})})]}),x!==`raw`&&x!==`trajectory`&&(0,G.jsxs)(`div`,{children:[!W&&(0,G.jsx)(`div`,{className:`trace-stage-empty compact`,children:(0,G.jsx)(`p`,{children:`选择一个 Span 查看标准属性。`})}),W&&x===`spans`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(OU,{span:W}),(0,G.jsxs)(`dl`,{className:`trace-detail-grid`,style:{marginTop:14},children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Trace ID`}),(0,G.jsx)(`dd`,{children:_?.traceId})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Span ID`}),(0,G.jsx)(`dd`,{children:W.spanId})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Parent`}),(0,G.jsx)(`dd`,{children:W.parentSpanId||`Root`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Kind`}),(0,G.jsx)(`dd`,{children:W.kind})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`状态`}),(0,G.jsx)(`dd`,{title:W.status,children:cU(W.status)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`开始`}),(0,G.jsx)(`dd`,{children:_U(W.startTimeUnixNano)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`耗时`}),(0,G.jsx)(`dd`,{children:lU(W.durationMs)})]})]})]}),W&&x===`attributes`&&(0,G.jsx)(kU,{values:W.attributes||{}}),W&&x===`events`&&(0,G.jsx)(IU,{events:W.events||[]}),W&&x===`resource`&&(0,G.jsx)(kU,{values:{..._?.resource||{},"otel.scope.name":_?.scope?.name,"otel.scope.version":_?.scope?.version}})]}),(0,G.jsxs)(`div`,{className:`trace-raw`,hidden:x!==`raw`,children:[x===`raw`&&!D&&T&&(0,G.jsxs)(`div`,{className:`trace-raw-toolbar`,children:[(0,G.jsx)(`span`,{children:`JSON Tree`}),(0,G.jsxs)(`div`,{role:`group`,"aria-label":`JSON 展开控制`,children:[(0,G.jsx)(`button`,{type:`button`,className:M?``:`active`,onClick:()=>N(!1),children:`全部收起`}),(0,G.jsx)(`button`,{type:`button`,className:M?`active`:``,onClick:()=>N(!0),children:`全部展开`})]})]}),x===`raw`&&D&&(0,G.jsx)(`div`,{className:`trace-raw-loading`,children:`正在读取 OTLP JSON…`}),x===`raw`&&!D&&T&&(0,G.jsx)(`div`,{className:`trace-raw-tree`,children:(0,G.jsx)(VH,{"aria-label":`Raw OTLP JSON`,data:T,style:xU,shouldExpandNode:M?zH:BH,clickToExpandNode:!0})}),x===`raw`&&!D&&!T&&(0,G.jsx)(`div`,{className:`trace-raw-loading`,children:`没有可显示的 OTLP JSON。`})]})]})]})]})]})]})}function NU({overview:e,range:t}){let n=e?.total||0,r=e?.completed||0,i=e?.successRate==null?`—`:`${Math.round(e.successRate*100)}%`,a=e?.averageDurationMs==null?`—`:lU(e.averageDurationMs),o=e?.totalTokens||0,s=e?.inputTokens||0,c=e?.outputTokens||0,l=e?.buckets||[],u=l.some(e=>e.runs>0);return(0,G.jsxs)(`section`,{className:`observability-overview${u?` has-trend`:``}`,"aria-label":`运行概览`,children:[(0,G.jsxs)(`div`,{className:`overview-metric-grid`,children:[(0,G.jsx)(PU,{icon:(0,G.jsx)(O,{size:15}),label:t===`7d`?`近 7 天运行`:`近 24 小时运行`,value:String(n)}),(0,G.jsx)(PU,{icon:(0,G.jsx)(re,{size:15}),label:`成功率`,value:i,note:n?`${r} / ${n}`:void 0,tone:`success`}),(0,G.jsx)(PU,{icon:(0,G.jsx)(ue,{size:15}),label:`平均耗时`,value:a,note:r?`${r} 个完成运行`:void 0}),(0,G.jsx)(PU,{icon:(0,G.jsx)(pe,{size:15}),label:`Token`,value:n?o?uU(o):`未上报`:`—`,note:o?`${uU(s)} 输入 · ${uU(c)} 输出`:void 0})]}),u&&(0,G.jsxs)(`div`,{className:`overview-chart-card`,children:[(0,G.jsx)(`div`,{className:`overview-chart-header`,children:(0,G.jsx)(`strong`,{children:`运行趋势`})}),(0,G.jsx)(FU,{buckets:l,range:t}),(0,G.jsxs)(`div`,{className:`overview-chart-legend`,children:[(0,G.jsx)(`span`,{className:`legend-runs`}),`运行数`,(0,G.jsx)(`span`,{className:`legend-success`}),`成功数`]})]})]})}function PU({icon:e,label:t,value:n,note:r,tone:i=`neutral`}){return(0,G.jsxs)(`article`,{className:`overview-metric-card ${i}`,children:[(0,G.jsxs)(`div`,{className:`overview-metric-label`,children:[(0,G.jsx)(`span`,{children:e}),(0,G.jsx)(`small`,{children:t})]}),(0,G.jsx)(`strong`,{children:n}),r&&(0,G.jsx)(`p`,{children:r})]})}function FU({buckets:e,range:t}){let n=e.map(e=>{let n=new Date(e.startedAt),r=t===`7d`?`${n.getMonth()+1}/${n.getDate()}`:`${String(n.getHours()).padStart(2,`0`)}:00`;return{...e,label:r,success:e.completed}});if(!n.length||!n.some(e=>e.runs>0))return(0,G.jsx)(`div`,{className:`trace-stage-empty compact`,children:(0,G.jsx)(`p`,{children:`暂无运行数据`})});let r=Math.max(1,...n.map(e=>e.runs)),i={l:30,r:10,t:10,b:22},a=800-i.l-i.r,o=118-i.t-i.b,s=a/Math.max(1,n.length-1),c=e=>i.t+o-e/r*o,l=n.map((e,t)=>`${i.l+t*s},${c(e.runs)}`).join(` `),u=n.map((e,t)=>`${i.l+t*s},${c(e.success)}`).join(` `),d=`M ${i.l},${i.t+o} L ${l.split(` `).join(` L `)} L ${i.l+(n.length-1)*s},${i.t+o} Z`,f=Math.ceil(n.length/6);return(0,G.jsxs)(`svg`,{className:`overview-chart`,viewBox:`0 0 800 118`,preserveAspectRatio:`none`,"aria-label":`运行趋势曲线`,children:[[0,.25,.5,.75,1].map(e=>{let t=i.t+o-e*o;return(0,G.jsx)(`line`,{x1:i.l,y1:t,x2:800-i.r,y2:t,stroke:`var(--border)`,strokeWidth:`1`,strokeDasharray:e===0?`0`:`3 3`},e)}),(0,G.jsx)(`path`,{d,fill:`var(--accent-soft)`,opacity:`0.6`}),(0,G.jsx)(`polyline`,{points:l,fill:`none`,stroke:`var(--accent)`,strokeWidth:`2`,strokeLinejoin:`round`,strokeLinecap:`round`}),(0,G.jsx)(`polyline`,{points:u,fill:`none`,stroke:`var(--success)`,strokeWidth:`2`,strokeLinejoin:`round`,strokeLinecap:`round`,strokeDasharray:`4 3`}),n.map((e,t)=>(0,G.jsx)(`circle`,{cx:i.l+t*s,cy:c(e.runs),r:`2.5`,fill:`var(--accent)`,children:(0,G.jsx)(`title`,{children:`${e.label}:${e.runs} 次运行,${e.success} 次成功`})},e.startedAt)),n.map((e,t)=>(t%f===0||t===n.length-1)&&(0,G.jsx)(`text`,{x:i.l+t*s,y:110,textAnchor:`middle`,fill:`var(--text-tertiary)`,fontSize:`11`,children:e.label},`label-${e.startedAt}`))]})}function IU({events:e}){let t=(0,s.useMemo)(()=>{let t=[],n=``,r=null,i=0,a=()=>{r&&n.trim()&&t.push({type:`card`,card:{kind:r,text:n,segments:i,final:!1}}),n=``,i=0,r=null};for(let o of e)if(o.name===`thinking.delta`||o.name===`message.delta`){let e=o.name===`thinking.delta`?`thinking`:`message`;r!==e&&a(),r=e,n+=CU(o.attributes),i+=1}else o.name===`thinking.completed`||o.name===`message.completed`||(a(),t.push({type:`event`,event:o}));return a(),t},[e]);return e.length?(0,G.jsx)(`div`,{className:`io-stack`,children:t.map((e,t)=>e.type===`card`?(0,G.jsx)(DU,{label:e.card.kind===`message`?`模型输出流`:`思考流`,text:e.card.text,tone:e.card.kind,icon:e.card.kind===`message`?(0,G.jsx)(Ie,{size:12}):(0,G.jsx)(R,{size:12}),meta:`${e.card.segments} 段增量`},t):(0,G.jsxs)(`article`,{className:`trace-event-card`,children:[(0,G.jsx)(`strong`,{children:e.event.name}),(0,G.jsx)(`span`,{children:_U(e.event.timeUnixNano)}),(0,G.jsx)(kU,{values:e.event.attributes||{}})]},t))}):(0,G.jsx)(`div`,{className:`trace-stage-empty compact`,children:(0,G.jsx)(`p`,{children:`该 Span 没有 Events。`})})}var LU=[{kind:`model`,label:`模型`,icon:ge},{kind:`tool`,label:`Tool`,icon:yt},{kind:`mcp`,label:`MCP Server`,icon:Ve},{kind:`skill`,label:`Skill`,icon:ct}];function RU(e){return e===`ready`?`可用`:e===`missing-secret`?`缺少凭证`:e===`unhealthy`||e===`failed`?`异常`:e===`unresolved`?`未解析`:e||`未知`}function zU(e){return e.requiredSecretRefs?.[0]||e.contract?.credentialRef||``}function BU({refreshTick:e,onOpenResources:t}){let[n,r]=(0,s.useState)([]),[i,a]=(0,s.useState)({}),[o,c]=(0,s.useState)(0),[l,u]=(0,s.useState)(``),[d,f]=(0,s.useState)(null),[p,m]=(0,s.useState)(`24h`),[h,_]=(0,s.useState)(null),[v,y]=(0,s.useState)([]),[b,x]=(0,s.useState)(``),S=(0,s.useCallback)(async()=>{let[e,t,n,i,o,s]=await Promise.all([g(`/api/v1/catalog/resources?limit=200`).then(e=>e.json()).catch(()=>({items:[]})),g(`/api/v1/catalog/models`).then(e=>e.json()).catch(()=>null),g(`/api/v1/runs?limit=200`).then(e=>e.json()).catch(()=>({items:[]})),g(`/api/v1/system/bootstrap`).then(e=>e.json()).catch(()=>null),g(`/api/v1/traces/overview?range=${p}`).then(e=>e.ok?e.json():null).catch(()=>null),g(`/api/v1/deployments`).then(e=>e.ok?e.json():{items:[]}).catch(()=>({items:[]}))]),l=e.items||[];t?.items?.length&&(l=[...l.filter(e=>e.kind!==`model`||e.source===`local`||e.source===`market`),...t.items]),r(l),c((n.items||[]).length),u(i?.workspace?.path||``),f(!!i?.workspace),_(o),y(Array.isArray(s?.items)?s.items:[]);let d=[...new Set(l.filter(e=>e.kind===`model`).map(zU).filter(Boolean))],m=await Promise.all(d.map(async e=>{try{return[e,await(await g(`/api/v1/credentials/${encodeURIComponent(e.replace(/^env:\/\//,``))}`)).json()]}catch{return[e,{configured:!1}]}}));a(Object.fromEntries(m))},[p]);(0,s.useEffect)(()=>{S()},[S,e]);let C=e=>e.kind===`model`?i[zU(e)]?.configured?`ready`:`missing-secret`:e.status,w=n.filter(e=>e.kind===`model`).filter(e=>C(e)===`ready`),T=n.filter(e=>[`tool`,`mcp`,`skill`].includes(e.kind)).filter(e=>C(e)===`ready`),E=d==null?`pending`:d?`ready`:`failed`,D=d==null?`检查中`:d?`运行正常`:`连接失败`,O=h?.buckets||[],k=O.length>1&&O.some(e=>e.runs>0),A=Math.max(1,...O.map(e=>e.runs)),M=k?O.find(e=>e.runs===A):void 0,N=b.trim().toLocaleLowerCase(),P=(0,s.useMemo)(()=>n.filter(e=>C(e)!==`ready`).length,[i,n]),F=v.filter(e=>e.status===`READY`).length,I=v.filter(e=>[`ADMITTING`,`DEPLOYING`].includes(String(e.status))).length,L=F?`ready`:I?`pending`:`idle`,R=F?`${F} 已就绪`:I?`${I} 部署中`:`尚未部署`;return(0,G.jsxs)(`div`,{className:`page-container runtime-resource-page`,"data-layout":`document`,children:[(0,G.jsx)(xd,{children:(0,G.jsxs)(`div`,{className:`segmented-control compact`,role:`tablist`,"aria-label":`运行趋势时间范围`,children:[(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":p===`24h`,onClick:()=>m(`24h`),children:`24 小时`}),(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":p===`7d`,onClick:()=>m(`7d`),children:`7 天`})]})}),(0,G.jsxs)(`div`,{className:`data-page-body`,children:[(0,G.jsxs)(`section`,{className:`runtime-status-summary`,"aria-label":`运行状态`,children:[(0,G.jsxs)(`div`,{title:l||`本地工作区`,"data-state":E,children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`本地 Runtime`}),(0,G.jsxs)(`strong`,{className:`stat-value`,children:[(0,G.jsx)(`span`,{className:`summary-status-dot`}),D]}),E===`failed`&&(0,G.jsxs)(`button`,{className:`text-button`,type:`button`,onClick:()=>void S(),children:[(0,G.jsx)(et,{size:13}),`重新检查`]})]}),(0,G.jsxs)(`div`,{"data-state":L,children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`云端部署`}),(0,G.jsx)(`strong`,{className:`stat-value`,children:R})]})]}),(0,G.jsxs)(`div`,{className:`stat-strip compact-summary runtime-metric-summary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`可用模型`}),(0,G.jsx)(`strong`,{className:`stat-value`,children:w.length})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:`能力资源`}),(0,G.jsx)(`strong`,{className:`stat-value`,children:T.length})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`stat-label`,children:p===`24h`?`近 24 小时运行`:`近 7 天运行`}),(0,G.jsx)(`strong`,{className:`stat-value`,children:h?.total??o})]})]}),(0,G.jsxs)(`section`,{className:`runtime-trend block${k?``:` is-empty`}`,children:[(0,G.jsxs)(`div`,{className:`block-head`,children:[(0,G.jsx)(`strong`,{children:`运行量趋势`}),M&&(0,G.jsx)(`span`,{className:`head-actions`,children:(0,G.jsxs)(`span`,{className:`tag`,children:[`峰值 `,A]})})]}),k?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`runtime-trend-bars`,"aria-label":`运行量趋势`,children:O.map((e,t)=>(0,G.jsx)(`span`,{className:`runtime-trend-bar`,"data-peak":e.runs===A||void 0,style:{height:`${Math.max(4,Math.round(e.runs/A*100))}%`},title:`${e.startedAt} · ${e.runs} 次运行`},`${e.startedAt}-${t}`))}),(0,G.jsxs)(`div`,{className:`chart-axis`,children:[(0,G.jsx)(`span`,{children:`开始`}),(0,G.jsx)(`span`,{children:p===`24h`?`12:00`:`中段`}),(0,G.jsx)(`span`,{children:`现在`})]})]}):(0,G.jsx)(`div`,{className:`runtime-trend-empty`,children:(0,G.jsx)(`strong`,{children:O.length===1?`继续运行后即可形成趋势`:`运行 Agent 后即可查看趋势`})})]}),(0,G.jsxs)(`section`,{className:`runtime-resource-section block`,children:[(0,G.jsxs)(`div`,{className:`section-heading`,children:[(0,G.jsx)(`h2`,{title:`优先展示异常资源,每类最多展示 5 项`,children:`本地能力概览`}),(0,G.jsx)(`span`,{className:`badge`,"data-state":P?`warning`:`ready`,children:P?`${P} 项需处理`:`全部可用`})]}),(0,G.jsx)(`div`,{className:`section-toolbar runtime-resource-toolbar`,children:(0,G.jsxs)(`div`,{className:`search-field`,children:[(0,G.jsx)(tt,{size:14}),(0,G.jsx)(`input`,{type:`search`,"aria-label":`搜索运行资源`,placeholder:`搜索资源`,value:b,onChange:e=>x(e.target.value)})]})}),(0,G.jsx)(`div`,{className:`runtime-resource-groups`,children:LU.map(e=>{let r=n.filter(t=>t.kind===e.kind),i=r.filter(e=>!N||`${e.displayName} ${e.name}`.toLocaleLowerCase().includes(N)).sort((e,t)=>Number(C(e)===`ready`)-Number(C(t)===`ready`)).slice(0,5),a=e.icon;return(0,G.jsxs)(`article`,{className:`runtime-resource-group block`,children:[(0,G.jsxs)(`header`,{children:[(0,G.jsx)(`span`,{className:`runtime-group-icon`,children:(0,G.jsx)(a,{size:15})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:e.label}),(0,G.jsx)(`small`,{children:r.length})]}),r.length>0&&(0,G.jsxs)(`button`,{className:`text-button`,type:`button`,onClick:()=>t(e.kind),children:[`查看全部 `,(0,G.jsx)(j,{size:13})]})]}),(0,G.jsx)(`div`,{className:`runtime-resource-list`,children:i.length===0?(0,G.jsx)(`div`,{className:`runtime-resource-empty`,children:`暂无资源`}):i.map(e=>{let t=C(e);return(0,G.jsxs)(`div`,{className:`runtime-resource-row`,children:[(0,G.jsx)(`span`,{className:`resource-state ${t===`ready`?`ready`:`warning`}`}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:e.displayName}),(0,G.jsx)(`small`,{children:e.version||e.source||e.name})]}),(0,G.jsx)(`span`,{className:`badge`,"data-state":t===`ready`?`ready`:`pending`,children:RU(t)})]},e.resourceId)})})]},e.kind)})})]})]})]})}function VU(e){return typeof e==`object`&&!!e&&typeof e.apply==`function`}async function HU(e){let t=window.__ModuleLoader__,n;window.__ModuleLoader__={load(t){if(n)throw Error(`DSH client bundle ${e.pluginId} registered more than once`);n=t}};try{await new Promise((t,n)=>{let r=document.createElement(`script`);r.async=!0,r.src=e.url,r.onload=()=>{r.remove(),t()},r.onerror=()=>{r.remove(),n(Error(`DSH client bundle ${e.pluginId} failed to load`))},document.head.append(r)})}finally{t?window.__ModuleLoader__=t:delete window.__ModuleLoader__}if(!n||n.id!==e.pluginId)throw Error(`DSH client bundle ${e.pluginId} registered an unexpected module`);let r={react:s},i=n.factory(t=>{if(!(t in r))throw Error(`DSH client bundle ${e.pluginId} requires unavailable module ${t}`);return r[t]});if(!VU(i))throw Error(`DSH client bundle ${e.pluginId} did not export a Cordis plugin`);return i}var UU=new class{target;bundleLoader;activeDigest=``;activeRuntime=null;pending=Promise.resolve();constructor(e,t=HU){this.target=e,this.bundleLoader=t}refresh(){return this.enqueue(async()=>{let e=await g(`/api/v1/plugin-ecosystems/dsh/profile`);if(!e.ok)throw Error(`DSH Profile client graph is unavailable`);await this.activate(await e.json())})}reconcile(e){return this.enqueue(()=>this.activate(e))}async activate(e){if(e.clientGraphDigest===this.activeDigest)return;let t=e.clientBundles.filter(e=>e.enabled&&e.compatible);if(t.length!==e.clientBundles.filter(e=>e.enabled).length){let t=e.clientBundles.find(e=>e.enabled&&!e.compatible);throw Error(`DSH client bundle ${t?.pluginId||`unknown`} is incompatible: ${t?.incompatibilityReason||`unknown reason`}`)}let n=new KB;try{for(let e of t){let t=await this.bundleLoader(e);await n.mount(t)}}catch(e){throw await n.dispose(),e}let r=this.activeRuntime;this.target.contributions.replaceAll(n.contributions),this.activeRuntime=n,this.activeDigest=e.clientGraphDigest,await r?.dispose()}dispose(){return this.enqueue(async()=>{this.target.contributions.replaceAll(new Gz),await this.activeRuntime?.dispose(),this.activeRuntime=null,this.activeDigest=``})}enqueue(e){let t=this.pending.then(e);return this.pending=t.catch(()=>void 0),t}}(qB);function WU(e){let t=e?.item||e;if(t?.ecosystem!==`dsh`&&t?.ecosystem!==`codex`)throw Error(`不支持的插件生态`);let n=String(t.pluginId||``).trim();if(!n)throw Error(`插件状态缺少 pluginId`);let r=t.runtimeState||t.runtime_state||{},i=String(t.state||``).toLowerCase(),a=String(r.state||t.providerState||t.provider_state||``).toLowerCase(),o=t.installed!==!1,s=o&&(t.failed===!0||i===`failed`||a===`failed`),c=o&&!s&&(t.bound===!0||i===`bound`||a===`bound`),l=o&&!s&&(c||t.ready===!0||i===`ready`||a===`ready`),u=o&&(t.enabled===!0||l||i===`enabled`),d=s?`failed`:c?`bound`:l?`ready`:u?`enabled`:`installed`,f=String(r.providerRef||r.provider_ref||t.providerRef||t.provider_ref||``).trim(),p=String(r.errorCode||r.error_code||t.errorCode||t.error_code||``).trim();return{ecosystem:t.ecosystem,pluginId:n,resolvedVersion:String(t.resolvedVersion||``),distributionName:String(t.distributionName||n),displayName:t.displayName,marketplaceName:t.marketplaceName,installed:o,enabled:u,ready:l,bound:c,failed:s,state:d,providerRef:f||void 0,errorCode:p||void 0,riskDisclosures:Array.isArray(t.riskDisclosures)?t.riskDisclosures:[],host:t.host,description:e?.description||t.description,capabilities:e?.capabilities||t.capabilities,clientBundle:t.clientBundle||t.client_bundle}}var GU=e=>[e.ecosystem,e.marketplaceName||`default`,e.pluginId,e.resolvedVersion||`host-managed`].join(`:`),KU=e=>e.ecosystem===`dsh`?`DeepSeek Harness 插件`:`Codex 官方插件`,qU={"@kingsoftcloud/ksadk-codex-provider":{title:`Codex AgentProvider`,publisher:`KsADK 官方`,kind:`Agent Provider`,summary:`让 Agent 使用 Codex App Server 的原生会话、工具与审批能力。`}};function JU(e){let t=qU[e.pluginId];return t?t.title:e.displayName?.trim()?e.displayName.trim():(e.pluginId.split(`/`).at(-1)||e.pluginId).replace(/^(ksadk-|dsh-)/,``).split(/[-_.]+/).map(e=>e?`${e[0].toUpperCase()}${e.slice(1)}`:``).join(` `)}function YU(e){let t=qU[e.pluginId];return t?t.publisher:e.pluginId.match(/^(@[^/]+)\//)?.[1]||e.marketplaceName||(e.ecosystem===`dsh`?`DeepSeek Harness`:`Codex Marketplace`)}function XU(e){let t=qU[e.pluginId];return t?t.kind:e.providerRef?`Agent Provider`:e.clientBundle?.compatible||(e.capabilities?.apps||[]).length?`界面扩展`:(e.capabilities?.skills||[]).length||(e.capabilities?.mcpServers||[]).length?`Agent 能力`:e.ecosystem===`dsh`?`Harness 扩展`:`工作台扩展`}function ZU(e){let t=qU[e.pluginId];return t?t.summary:e.description?.trim()?e.description.trim():e.providerRef?`为 Studio Agent 提供可选运行时与执行能力。`:e.ecosystem===`dsh`?`通过 DeepSeek Harness 扩展 Agent 的上下文、工具或工作流。`:`通过 Codex App Server 扩展工作台能力。`}var QU=[`常用`,`效率`,`创意`,`开发`,`更多`];function $U(e){let t=`${e.pluginId} ${JU(e)}`.toLowerCase();return/gmail|google-drive|google-calendar|github|notion|slack/.test(t)?`常用`:/linear|atlassian|calendar|outlook|teams|sharepoint|clickup|monday|granola|todo|asana|trello/.test(t)?`效率`:/canva|figma|design|image|video|remotion|hyperframe|higgs|adobe|runway/.test(t)?`创意`:/github|cloudflare|sentry|vercel|circleci|coderabbit|security|build|developer|code/.test(t)?`开发`:`更多`}var eW=(e,t)=>e?.error?.message||e?.detail||e?.message||t,tW={installed:`待启用`,enabled:`已启用`,ready:`就绪`,bound:`已绑定`,failed:`失败`};function nW({item:e}){let t=e.failed?U:e.state===`installed`?oe:ie;return(0,G.jsxs)(`span`,{className:`plugin-state`,"data-state":e.state,children:[(0,G.jsx)(t,{size:13}),` `,tW[e.state]]})}function rW({item:e}){let t=!!(e.providerRef&&(e.ready||e.bound)),n=[...e.capabilities?.skills||[],...e.capabilities?.mcpServers||[]],r=!!(e.clientBundle?.compatible||(e.capabilities?.apps||[]).length);return!e.providerRef&&n.length===0&&!r?null:(0,G.jsxs)(`section`,{className:`plugin-detail-section`,"aria-label":`贡献能力与使用方式`,children:[(0,G.jsx)(`h3`,{children:`贡献能力与使用方式`}),e.providerRef&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`dl`,{className:`plugin-compatibility-list`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`AgentProvider`}),(0,G.jsx)(`dd`,{children:t?`可用`:`未就绪`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`providerRef`}),(0,G.jsx)(`dd`,{children:e.providerRef})]})]}),(0,G.jsx)(`p`,{className:`plugin-detail-muted`,children:t?`在创建或编辑 Agent 时从 Runtime 选择器使用。`:`Provider 尚未就绪,暂不能用于创建 Agent。`}),t&&(0,G.jsx)(`p`,{children:(0,G.jsx)(`a`,{className:`button secondary`,href:`#/create`,children:`去创建 Agent`})})]}),r&&(0,G.jsx)(`p`,{className:`plugin-detail-muted`,children:`界面扩展启用后会自动出现在插件声明的页面、侧栏或 Tab。`}),n.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`p`,{className:`plugin-detail-muted`,children:`Skill 与 MCP 能力需在 Agent 编辑页绑定后使用。`}),(0,G.jsx)(`p`,{children:(0,G.jsx)(`a`,{className:`button secondary`,href:`#/agents`,children:`去 Agent 列表绑定`})})]})]})}function iW(){let[e,t]=(0,s.useState)([]),[n,r]=(0,s.useState)([]),[i,a]=(0,s.useState)({}),[o,c]=(0,s.useState)(``),[l,u]=(0,s.useState)(``),[d,f]=(0,s.useState)(!1),[p,m]=(0,s.useState)(!1),[h,_]=(0,s.useState)(``),[v,y]=(0,s.useState)(`codex`),[b,x]=(0,s.useState)(`load`),[S,C]=(0,s.useState)(``),w=(0,s.useCallback)(async()=>{x(`load`),C(``);try{let[e,n]=await Promise.all([g(`/api/v1/plugin-ecosystems/dsh/plugins`),g(`/api/v1/plugin-ecosystems/codex/plugins`)]),[i,s]=await Promise.all([e.json(),n.json()]),l=(s.items||[]).map(WU),u=[...(i.items||[]).map(WU),...l.filter(e=>e.installed)];t(u),r(l.filter(e=>!e.installed)),a({dsh:i.host,codex:s.host}),!o&&u[0]&&c(GU(u[0]))}catch(e){C(e?.message||`插件状态加载失败`)}finally{x(``)}},[o]);(0,s.useEffect)(()=>{w()},[]);let T=(0,s.useMemo)(()=>e.find(e=>GU(e)===o)||null,[e,o]),E=(0,s.useMemo)(()=>{let e=h.trim().toLowerCase(),t=n.filter(t=>!e||[JU(t),YU(t),XU(t),ZU(t),t.pluginId].some(t=>t.toLowerCase().includes(e)));return QU.map(e=>({category:e,items:t.filter(t=>$U(t)===e)})).filter(e=>e.items.length>0)},[h,n]);async function D(){try{await UU.refresh()}catch(e){J(`插件状态已更新`,e?.message||`界面扩展装载失败,已保留原界面`)}}async function O(){if(!(!d||!l.trim())){x(`install`),C(``);try{let e=await g(`/api/v1/plugin-ecosystems/dsh/plugins:install`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({source:l.trim(),acceptHostPermissions:!0})}),t=await e.json();if(!e.ok)throw Error(t?.error?.message||`DSH 插件安装失败`);let n=WU(t);c(GU(n)),f(!1),u(``),J(n.enabled?`插件已安装`:`已安装,待启用`,n.displayName||n.pluginId),await w(),await D()}catch(e){C(e?.message||`DSH 插件安装失败`)}finally{x(``)}}}async function k(e){if(p){x(`codex:${GU(e)}`),C(``);try{let t=await g(`/api/v1/plugin-ecosystems/codex/plugins/${encodeURIComponent(e.pluginId)}:install`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({marketplaceName:e.marketplaceName||null,acceptUndeclaredPermissions:!0})}),n=await t.json();if(!t.ok)throw Error(eW(n,`Codex 插件安装失败`));let r=WU(n);m(!1),J(r.enabled?`插件已安装`:`已安装,待启用`,r.displayName||r.pluginId),await w()}catch(e){C(e?.message||`Codex 插件安装失败`)}finally{x(``)}}}async function A(e){if(e.ecosystem!==`dsh`)return;let t=e.enabled?`disable`:`enable`;x(`toggle`),C(``);try{let n=await g(`/api/v1/plugin-ecosystems/dsh/plugins/${encodeURIComponent(e.pluginId)}:${t}`,{method:`POST`}),r=await n.json();if(!n.ok)throw Error(eW(r,`DSH 插件状态更新失败`));await w(),await D()}catch(e){C(e?.message||`DSH 插件状态更新失败`)}finally{x(``)}}async function j(e){let t=`/api/v1/plugin-ecosystems/${e.ecosystem}/plugins/${encodeURIComponent(e.pluginId)}`;x(`delete`),C(``);try{let n=await g(t,{method:`DELETE`});if(!n.ok){let e=await n.json();throw Error(eW(e,`插件卸载失败`))}c(``),await w(),e.ecosystem===`dsh`&&await D()}catch(e){C(e?.message||`插件卸载失败`)}finally{x(``)}}return(0,G.jsxs)(`div`,{className:`page-container plugins-page`,"data-layout":`document`,children:[(0,G.jsx)(Sd,{children:(0,G.jsx)(`button`,{className:`icon-button tertiary`,"aria-label":`刷新插件`,onClick:()=>void w(),children:(0,G.jsx)(et,{size:16})})}),(0,G.jsxs)(`header`,{className:`plugins-intro`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:`插件`}),(0,G.jsx)(`p`,{children:`安装、启用和使用分开管理;只有已启用的插件才会投影给匹配的 Agent Provider。`})]}),(0,G.jsxs)(`div`,{className:`plugins-hosts`,"aria-label":`插件宿主状态`,children:[(0,G.jsx)(`span`,{className:`plugin-bridge-badge`,"data-state":i.dsh?.available?`available`:`unavailable`,children:i.dsh?.available?`DSH ${i.dsh.version||``}`:`DSH 不可用`}),(0,G.jsx)(`span`,{className:`plugin-bridge-badge`,"data-state":i.codex?.available?`available`:`unavailable`,children:i.codex?.available?`Codex ${i.codex.version||``}`:`Codex 不可用`})]})]}),S&&(0,G.jsx)(`div`,{className:`form-error`,role:`alert`,children:S}),(0,G.jsxs)(`div`,{className:`plugins-workspace`,children:[(0,G.jsxs)(`section`,{className:`plugin-list-panel block`,children:[(0,G.jsx)(`div`,{className:`section-heading`,children:(0,G.jsxs)(`div`,{className:`section-heading-copy`,children:[(0,G.jsx)(`h2`,{children:`已安装`}),(0,G.jsx)(`p`,{children:b===`load`?`正在读取`:`${e.length} 个插件`})]})}),(0,G.jsxs)(`div`,{className:`plugin-list`,children:[e.map(e=>(0,G.jsxs)(`button`,{className:`plugin-list-item${GU(e)===o?` selected`:``}`,"aria-current":GU(e)===o?`true`:void 0,onClick:()=>c(GU(e)),children:[(0,G.jsx)(`span`,{className:`plugin-avatar`,"data-ecosystem":e.ecosystem,children:e.ecosystem===`dsh`?(0,G.jsx)($e,{size:17}):(0,G.jsx)(Ze,{size:17})}),(0,G.jsxs)(`span`,{className:`plugin-list-identity`,children:[(0,G.jsx)(`strong`,{children:JU(e)}),(0,G.jsxs)(`small`,{children:[YU(e),` · `,XU(e)]}),(0,G.jsx)(`em`,{children:ZU(e)})]}),(0,G.jsx)(nW,{item:e})]},GU(e))),!b&&!e.length&&(0,G.jsxs)(`div`,{className:`plugin-list-empty`,children:[(0,G.jsx)(Ze,{size:19}),(0,G.jsx)(`span`,{children:`还没有安装插件`})]})]})]}),(0,G.jsx)(`aside`,{className:`plugin-detail-panel block`,"aria-label":`插件详情`,children:T?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`header`,{className:`plugin-detail-header`,children:[(0,G.jsx)(`span`,{className:`plugin-avatar large`,"data-ecosystem":T.ecosystem,children:T.ecosystem===`dsh`?(0,G.jsx)($e,{size:20}):(0,G.jsx)(Ze,{size:20})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:JU(T)}),(0,G.jsxs)(`p`,{children:[YU(T),` · `,XU(T)]})]}),(0,G.jsx)(nW,{item:T})]}),(0,G.jsx)(`p`,{className:`plugin-detail-summary`,children:ZU(T)}),T.failed&&T.errorCode&&(0,G.jsx)(`p`,{className:`form-error`,role:`status`,children:T.errorCode}),(0,G.jsx)(rW,{item:T}),(0,G.jsxs)(`details`,{className:`plugin-technical-details`,children:[(0,G.jsx)(`summary`,{children:`技术信息`}),(0,G.jsxs)(`dl`,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`插件标识`}),(0,G.jsx)(`dd`,{children:T.pluginId})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`版本`}),(0,G.jsx)(`dd`,{children:T.resolvedVersion||`由宿主解析`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`来源`}),(0,G.jsx)(`dd`,{children:KU(T)})]})]})]}),(0,G.jsxs)(`div`,{className:`plugin-detail-actions`,children:[T.ecosystem===`dsh`&&(0,G.jsx)(`button`,{className:`button secondary`,disabled:!!b,onClick:()=>void A(T),children:T.enabled?`停用`:`启用`}),(0,G.jsxs)(`button`,{className:`button danger`,disabled:!!b,onClick:()=>void j(T),children:[(0,G.jsx)(ht,{size:15}),`卸载`]})]})]}):(0,G.jsxs)(`div`,{className:`plugin-detail-empty`,children:[(0,G.jsx)(Ze,{size:22}),(0,G.jsx)(`strong`,{children:`选择一个插件`}),(0,G.jsx)(`span`,{children:`从下方添加插件后,可在这里查看状态与可用能力。`})]})})]}),(0,G.jsxs)(`section`,{className:`plugin-marketplace block`,children:[(0,G.jsxs)(`div`,{className:`plugin-marketplace-heading`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:`发现插件`}),(0,G.jsx)(`p`,{children:v===`codex`?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{children:`兼容格式 · 生命周期由 Codex App Server 管理`}),(0,G.jsx)(`small`,{children:`安装后仍需按 Agent 显式授权。`})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{children:`默认插件格式 · 当前 DSH Profile`}),(0,G.jsx)(`small`,{children:`安装到当前工作区,可随后启用并绑定给 Agent。`})]})})]}),v===`codex`&&(0,G.jsxs)(`label`,{className:`plugin-search`,children:[(0,G.jsx)(tt,{size:16}),(0,G.jsx)(`span`,{className:`sr-only`,children:`搜索插件`}),(0,G.jsx)(`input`,{value:h,onChange:e=>_(e.target.value),placeholder:`搜索插件`})]})]}),(0,G.jsxs)(`div`,{className:`plugin-marketplace-tabs`,role:`tablist`,"aria-label":`插件市场`,children:[(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":v===`codex`,onClick:()=>y(`codex`),children:`Codex 插件`}),(0,G.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":v===`dsh`,onClick:()=>y(`dsh`),children:`DeepSeek Harness 插件`})]}),v===`codex`?b===`load`?(0,G.jsxs)(`div`,{className:`plugin-marketplace-loading`,children:[(0,G.jsx)(Ne,{className:`animate-spin`,size:18}),(0,G.jsx)(`span`,{children:`正在读取 Codex 插件目录…`})]}):n.length>0?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`label`,{className:`codex-risk-confirmation${p?` accepted`:``}`,children:[(0,G.jsx)(U,{size:18}),(0,G.jsx)(`input`,{type:`checkbox`,checked:p,onChange:e=>m(e.target.checked)}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`安装前确认权限`}),(0,G.jsx)(`small`,{children:`Codex 插件由 App Server 以当前用户权限管理,请确认插件来源可信。`})]}),(0,G.jsx)(`em`,{children:p?`已确认`:`勾选后可安装`})]}),(0,G.jsx)(`div`,{className:`plugin-category-list`,"aria-label":`可安装 Codex 插件`,children:E.map(e=>(0,G.jsxs)(`section`,{className:`plugin-category`,children:[(0,G.jsx)(`h3`,{children:e.category}),(0,G.jsx)(`div`,{className:`plugin-marketplace-list`,children:e.items.map(e=>(0,G.jsxs)(`div`,{className:`plugin-marketplace-row`,children:[(0,G.jsx)(`span`,{className:`plugin-avatar`,"data-ecosystem":`codex`,children:(0,G.jsx)(Ze,{size:16})}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:JU(e)}),(0,G.jsxs)(`small`,{children:[YU(e),` · `,XU(e)]}),(0,G.jsx)(`em`,{children:ZU(e)})]}),(0,G.jsx)(`button`,{className:`button secondary small`,disabled:!p||!!b,onClick:()=>void k(e),children:b===`codex:${GU(e)}`?(0,G.jsx)(Ne,{className:`animate-spin`,size:15}):`安装`})]},GU(e)))})]},e.category))}),!E.length&&(0,G.jsx)(`p`,{className:`plugin-discovery-empty`,children:`没有匹配的插件。`})]}):(0,G.jsx)(`p`,{className:`plugin-discovery-empty`,children:`当前没有可安装的 Codex 插件。`}):(0,G.jsxs)(`div`,{className:`plugin-dsh-market`,children:[(0,G.jsxs)(`div`,{className:`plugin-dsh-market-copy`,children:[(0,G.jsx)(`span`,{className:`plugin-avatar`,"data-ecosystem":`dsh`,children:(0,G.jsx)($e,{size:18})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`从来源安装`}),(0,G.jsx)(`p`,{children:`支持 npm 包、Git 地址或本地路径,适合官方、私有插件与本地开发。`})]})]}),(0,G.jsxs)(`div`,{className:`plugin-source-form`,children:[(0,G.jsx)(`label`,{className:`sr-only`,htmlFor:`dshSource`,children:`DSH 插件来源`}),(0,G.jsx)(`input`,{id:`dshSource`,value:l,onChange:e=>u(e.target.value),placeholder:`npm 包、Git 地址或本地路径`}),(0,G.jsxs)(`button`,{className:`button secondary`,disabled:!d||!l.trim()||!!b,onClick:()=>void O(),children:[b===`install`?(0,G.jsx)(Ne,{className:`animate-spin`,size:15}):(0,G.jsx)(P,{size:15}),`安装到 Profile`]})]}),(0,G.jsxs)(`label`,{className:`plugin-source-confirmation`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:d,onChange:e=>f(e.target.checked)}),(0,G.jsx)(`span`,{children:`我已知悉:DSH 包及安装脚本以当前系统用户权限运行。`})]})]})]})]})}function aW(e){if(typeof e==`string`||typeof e==`number`)return``+e;let t=``;if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=aW(e[n]))!==``&&(t+=(t&&` `)+r);else for(let n in e)e[n]&&(t+=(t&&` `)+n);return t}var oW={value:()=>{}};function sW(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+``)||r in n||/[\s.]/.test(r))throw Error(`illegal type: `+r);n[r]=[]}return new cW(n)}function cW(e){this._=e}function lW(e,t){return e.trim().split(/^|\s+/).map(function(e){var n=``,r=e.indexOf(`.`);if(r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),e&&!t.hasOwnProperty(e))throw Error(`unknown type: `+e);return{type:e,name:n}})}cW.prototype=sW.prototype={constructor:cW,on:function(e,t){var n=this._,r=lW(e+``,n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(e=r[a]).type)&&(i=uW(n[i],e.name)))return i;return}if(t!=null&&typeof t!=`function`)throw Error(`invalid callback: `+t);for(;++a<o;)if(i=(e=r[a]).type)n[i]=dW(n[i],e.name,t);else if(t==null)for(i in n)n[i]=dW(n[i],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new cW(e)},call:function(e,t){if((i=arguments.length-2)>0)for(var n=Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(a=this._[e],r=0,i=a.length;r<i;++r)a[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw Error(`unknown type: `+e);for(var r=this._[e],i=0,a=r.length;i<a;++i)r[i].value.apply(t,n)}};function uW(e,t){for(var n=0,r=e.length,i;n<r;++n)if((i=e[n]).name===t)return i.value}function dW(e,t,n){for(var r=0,i=e.length;r<i;++r)if(e[r].name===t){e[r]=oW,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var fW={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`};function pW(e){var t=e+=``,n=t.indexOf(`:`);return n>=0&&(t=e.slice(0,n))!==`xmlns`&&(e=e.slice(n+1)),fW.hasOwnProperty(t)?{space:fW[t],local:e}:e}function mW(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===`http://www.w3.org/1999/xhtml`&&t.documentElement.namespaceURI===`http://www.w3.org/1999/xhtml`?t.createElement(e):t.createElementNS(n,e)}}function hW(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function gW(e){var t=pW(e);return(t.local?hW:mW)(t)}function _W(){}function vW(e){return e==null?_W:function(){return this.querySelector(e)}}function yW(e){typeof e!=`function`&&(e=vW(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=Array(o),c,l,u=0;u<o;++u)(c=a[u])&&(l=e.call(c,c.__data__,u,a))&&(`__data__`in c&&(l.__data__=c.__data__),s[u]=l);return new sK(r,this._parents)}function bW(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function xW(){return[]}function SW(e){return e==null?xW:function(){return this.querySelectorAll(e)}}function CW(e){return function(){return bW(e.apply(this,arguments))}}function wW(e){e=typeof e==`function`?CW(e):SW(e);for(var t=this._groups,n=t.length,r=[],i=[],a=0;a<n;++a)for(var o=t[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&(r.push(e.call(c,c.__data__,l,o)),i.push(c));return new sK(r,i)}function TW(e){return function(){return this.matches(e)}}function EW(e){return function(t){return t.matches(e)}}var DW=Array.prototype.find;function OW(e){return function(){return DW.call(this.children,e)}}function kW(){return this.firstElementChild}function AW(e){return this.select(e==null?kW:OW(typeof e==`function`?e:EW(e)))}var jW=Array.prototype.filter;function MW(){return Array.from(this.children)}function NW(e){return function(){return jW.call(this.children,e)}}function PW(e){return this.selectAll(e==null?MW:NW(typeof e==`function`?e:EW(e)))}function FW(e){typeof e!=`function`&&(e=TW(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new sK(r,this._parents)}function IW(e){return Array(e.length)}function LW(){return new sK(this._enter||this._groups.map(IW),this._parents)}function RW(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}RW.prototype={constructor:RW,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function zW(e){return function(){return e}}function BW(e,t,n,r,i,a){for(var o=0,s,c=t.length,l=a.length;o<l;++o)(s=t[o])?(s.__data__=a[o],r[o]=s):n[o]=new RW(e,a[o]);for(;o<c;++o)(s=t[o])&&(i[o]=s)}function VW(e,t,n,r,i,a,o){var s,c,l=new Map,u=t.length,d=a.length,f=Array(u),p;for(s=0;s<u;++s)(c=t[s])&&(f[s]=p=o.call(c,c.__data__,s,t)+``,l.has(p)?i[s]=c:l.set(p,c));for(s=0;s<d;++s)p=o.call(e,a[s],s,a)+``,(c=l.get(p))?(r[s]=c,c.__data__=a[s],l.delete(p)):n[s]=new RW(e,a[s]);for(s=0;s<u;++s)(c=t[s])&&l.get(f[s])===c&&(i[s]=c)}function HW(e){return e.__data__}function UW(e,t){if(!arguments.length)return Array.from(this,HW);var n=t?VW:BW,r=this._parents,i=this._groups;typeof e!=`function`&&(e=zW(e));for(var a=i.length,o=Array(a),s=Array(a),c=Array(a),l=0;l<a;++l){var u=r[l],d=i[l],f=d.length,p=WW(e.call(u,u&&u.__data__,l,r)),m=p.length,h=s[l]=Array(m),g=o[l]=Array(m);n(u,d,h,g,c[l]=Array(f),p,t);for(var _=0,v=0,y,b;_<m;++_)if(y=h[_]){for(_>=v&&(v=_+1);!(b=g[v])&&++v<m;);y._next=b||null}}return o=new sK(o,r),o._enter=s,o._exit=c,o}function WW(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function GW(){return new sK(this._exit||this._groups.map(IW),this._parents)}function KW(e,t,n){var r=this.enter(),i=this,a=this.exit();return typeof e==`function`?(r=e(r),r&&=r.selection()):r=r.append(e+``),t!=null&&(i=t(i),i&&=i.selection()),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function qW(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,i=n.length,a=r.length,o=Math.min(i,a),s=Array(i),c=0;c<o;++c)for(var l=n[c],u=r[c],d=l.length,f=s[c]=Array(d),p,m=0;m<d;++m)(p=l[m]||u[m])&&(f[m]=p);for(;c<i;++c)s[c]=n[c];return new sK(s,this._parents)}function JW(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function YW(e){e||=XW;function t(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}for(var n=this._groups,r=n.length,i=Array(r),a=0;a<r;++a){for(var o=n[a],s=o.length,c=i[a]=Array(s),l,u=0;u<s;++u)(l=o[u])&&(c[u]=l);c.sort(t)}return new sK(i,this._parents).order()}function XW(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function ZW(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function QW(){return Array.from(this)}function $W(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function eG(){let e=0;for(let t of this)++e;return e}function tG(){return!this.node()}function nG(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var i=t[n],a=0,o=i.length,s;a<o;++a)(s=i[a])&&e.call(s,s.__data__,a,i);return this}function rG(e){return function(){this.removeAttribute(e)}}function iG(e){return function(){this.removeAttributeNS(e.space,e.local)}}function aG(e,t){return function(){this.setAttribute(e,t)}}function oG(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function sG(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function cG(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function lG(e,t){var n=pW(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?iG:rG:typeof t==`function`?n.local?cG:sG:n.local?oG:aG)(n,t))}function uG(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function dG(e){return function(){this.style.removeProperty(e)}}function fG(e,t,n){return function(){this.style.setProperty(e,t,n)}}function pG(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function mG(e,t,n){return arguments.length>1?this.each((t==null?dG:typeof t==`function`?pG:fG)(e,t,n??``)):hG(this.node(),e)}function hG(e,t){return e.style.getPropertyValue(t)||uG(e).getComputedStyle(e,null).getPropertyValue(t)}function gG(e){return function(){delete this[e]}}function _G(e,t){return function(){this[e]=t}}function vG(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function yG(e,t){return arguments.length>1?this.each((t==null?gG:typeof t==`function`?vG:_G)(e,t)):this.node()[e]}function bG(e){return e.trim().split(/^|\s+/)}function xG(e){return e.classList||new SG(e)}function SG(e){this._node=e,this._names=bG(e.getAttribute(`class`)||``)}SG.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute(`class`,this._names.join(` `)))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute(`class`,this._names.join(` `)))},contains:function(e){return this._names.indexOf(e)>=0}};function CG(e,t){for(var n=xG(e),r=-1,i=t.length;++r<i;)n.add(t[r])}function wG(e,t){for(var n=xG(e),r=-1,i=t.length;++r<i;)n.remove(t[r])}function TG(e){return function(){CG(this,e)}}function EG(e){return function(){wG(this,e)}}function DG(e,t){return function(){(t.apply(this,arguments)?CG:wG)(this,e)}}function OG(e,t){var n=bG(e+``);if(arguments.length<2){for(var r=xG(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof t==`function`?DG:t?TG:EG)(n,t))}function kG(){this.textContent=``}function AG(e){return function(){this.textContent=e}}function jG(e){return function(){var t=e.apply(this,arguments);this.textContent=t??``}}function MG(e){return arguments.length?this.each(e==null?kG:(typeof e==`function`?jG:AG)(e)):this.node().textContent}function NG(){this.innerHTML=``}function PG(e){return function(){this.innerHTML=e}}function FG(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??``}}function IG(e){return arguments.length?this.each(e==null?NG:(typeof e==`function`?FG:PG)(e)):this.node().innerHTML}function LG(){this.nextSibling&&this.parentNode.appendChild(this)}function RG(){return this.each(LG)}function zG(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function BG(){return this.each(zG)}function VG(e){var t=typeof e==`function`?e:gW(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function HG(){return null}function UG(e,t){var n=typeof e==`function`?e:gW(e),r=t==null?HG:typeof t==`function`?t:vW(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function WG(){var e=this.parentNode;e&&e.removeChild(this)}function GG(){return this.each(WG)}function KG(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function qG(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function JG(e){return this.select(e?qG:KG)}function YG(e){return arguments.length?this.property(`__data__`,e):this.node().__data__}function XG(e){return function(t){e.call(this,t,this.__data__)}}function ZG(e){return e.trim().split(/^|\s+/).map(function(e){var t=``,n=e.indexOf(`.`);return n>=0&&(t=e.slice(n+1),e=e.slice(0,n)),{type:e,name:t}})}function QG(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,i=t.length,a;n<i;++n)a=t[n],(!e.type||a.type===e.type)&&a.name===e.name?this.removeEventListener(a.type,a.listener,a.options):t[++r]=a;++r?t.length=r:delete this.__on}}}function $G(e,t,n){return function(){var r=this.__on,i,a=XG(t);if(r){for(var o=0,s=r.length;o<s;++o)if((i=r[o]).type===e.type&&i.name===e.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=t;return}}this.addEventListener(e.type,a,n),i={type:e.type,name:e.name,value:t,listener:a,options:n},r?r.push(i):this.__on=[i]}}function eK(e,t,n){var r=ZG(e+``),i,a=r.length,o;if(arguments.length<2){var s=this.node().__on;if(s){for(var c=0,l=s.length,u;c<l;++c)for(i=0,u=s[c];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(s=t?$G:QG,i=0;i<a;++i)this.each(s(r[i],t,n));return this}function tK(e,t,n){var r=uG(e),i=r.CustomEvent;typeof i==`function`?i=new i(t,n):(i=r.document.createEvent(`Event`),n?(i.initEvent(t,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(t,!1,!1)),e.dispatchEvent(i)}function nK(e,t){return function(){return tK(this,e,t)}}function rK(e,t){return function(){return tK(this,e,t.apply(this,arguments))}}function iK(e,t){return this.each((typeof t==`function`?rK:nK)(e,t))}function*aK(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var oK=[null];function sK(e,t){this._groups=e,this._parents=t}function cK(){return new sK([[document.documentElement]],oK)}function lK(){return this}sK.prototype=cK.prototype={constructor:sK,select:yW,selectAll:wW,selectChild:AW,selectChildren:PW,filter:FW,data:UW,enter:LW,exit:GW,join:KW,merge:qW,selection:lK,order:JW,sort:YW,call:ZW,nodes:QW,node:$W,size:eG,empty:tG,each:nG,attr:lG,style:mG,property:yG,classed:OG,text:MG,html:IG,raise:RG,lower:BG,append:VG,insert:UG,remove:GG,clone:JG,datum:YG,on:eK,dispatch:iK,[Symbol.iterator]:aK};function uK(e){return typeof e==`string`?new sK([[document.querySelector(e)]],[document.documentElement]):new sK([[e]],oK)}function dK(e){let t;for(;t=e.sourceEvent;)e=t;return e}function fK(e,t){if(e=dK(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var i=t.getBoundingClientRect();return[e.clientX-i.left-t.clientLeft,e.clientY-i.top-t.clientTop]}}return[e.pageX,e.pageY]}var pK={passive:!1},mK={capture:!0,passive:!1};function hK(e){e.stopImmediatePropagation()}function gK(e){e.preventDefault(),e.stopImmediatePropagation()}function _K(e){var t=e.document.documentElement,n=uK(e).on(`dragstart.drag`,gK,mK);`onselectstart`in t?n.on(`selectstart.drag`,gK,mK):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect=`none`)}function vK(e,t){var n=e.document.documentElement,r=uK(e).on(`dragstart.drag`,null);t&&(r.on(`click.drag`,gK,mK),setTimeout(function(){r.on(`click.drag`,null)},0)),`onselectstart`in n?r.on(`selectstart.drag`,null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var yK=e=>()=>e;function bK(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:a,x:o,y:s,dx:c,dy:l,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:u}})}bK.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function xK(e){return!e.ctrlKey&&!e.button}function SK(){return this.parentNode}function CK(e,t){return t??{x:e.x,y:e.y}}function wK(){return navigator.maxTouchPoints||`ontouchstart`in this}function TK(){var e=xK,t=SK,n=CK,r=wK,i={},a=sW(`start`,`drag`,`end`),o=0,s,c,l,u,d=0;function f(e){e.on(`mousedown.drag`,p).filter(r).on(`touchstart.drag`,g).on(`touchmove.drag`,_,pK).on(`touchend.drag touchcancel.drag`,v).style(`touch-action`,`none`).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}function p(n,r){if(!(u||!e.call(this,n,r))){var i=y(this,t.call(this,n,r),n,r,`mouse`);i&&(uK(n.view).on(`mousemove.drag`,m,mK).on(`mouseup.drag`,h,mK),_K(n.view),hK(n),l=!1,s=n.clientX,c=n.clientY,i(`start`,n))}}function m(e){if(gK(e),!l){var t=e.clientX-s,n=e.clientY-c;l=t*t+n*n>d}i.mouse(`drag`,e)}function h(e){uK(e.view).on(`mousemove.drag mouseup.drag`,null),vK(e.view,l),gK(e),i.mouse(`end`,e)}function g(n,r){if(e.call(this,n,r)){var i=n.changedTouches,a=t.call(this,n,r),o=i.length,s,c;for(s=0;s<o;++s)(c=y(this,a,n,r,i[s].identifier,i[s]))&&(hK(n),c(`start`,n,i[s]))}}function _(e){var t=e.changedTouches,n=t.length,r,a;for(r=0;r<n;++r)(a=i[t[r].identifier])&&(gK(e),a(`drag`,e,t[r]))}function v(e){var t=e.changedTouches,n=t.length,r,a;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),r=0;r<n;++r)(a=i[t[r].identifier])&&(hK(e),a(`end`,e,t[r]))}function y(e,t,r,s,c,l){var u=a.copy(),d=fK(l||r,t),p,m,h;if((h=n.call(e,new bK(`beforestart`,{sourceEvent:r,target:f,identifier:c,active:o,x:d[0],y:d[1],dx:0,dy:0,dispatch:u}),s))!=null)return p=h.x-d[0]||0,m=h.y-d[1]||0,function n(r,a,l){var g=d,_;switch(r){case`start`:i[c]=n,_=o++;break;case`end`:delete i[c],--o;case`drag`:d=fK(l||a,t),_=o}u.call(r,e,new bK(r,{sourceEvent:a,subject:h,target:f,identifier:c,active:_,x:d[0]+p,y:d[1]+m,dx:d[0]-g[0],dy:d[1]-g[1],dispatch:u}),s)}}return f.filter=function(t){return arguments.length?(e=typeof t==`function`?t:yK(!!t),f):e},f.container=function(e){return arguments.length?(t=typeof e==`function`?e:yK(e),f):t},f.subject=function(e){return arguments.length?(n=typeof e==`function`?e:yK(e),f):n},f.touchable=function(e){return arguments.length?(r=typeof e==`function`?e:yK(!!e),f):r},f.on=function(){var e=a.on.apply(a,arguments);return e===a?f:e},f.clickDistance=function(e){return arguments.length?(d=(e=+e)*e,f):Math.sqrt(d)},f}function EK(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function DK(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function OK(){}var kK=.7,AK=1/kK,jK=`\\s*([+-]?\\d+)\\s*`,MK=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,NK=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,PK=/^#([0-9a-f]{3,8})$/,FK=RegExp(`^rgb\\(${jK},${jK},${jK}\\)$`),IK=RegExp(`^rgb\\(${NK},${NK},${NK}\\)$`),LK=RegExp(`^rgba\\(${jK},${jK},${jK},${MK}\\)$`),RK=RegExp(`^rgba\\(${NK},${NK},${NK},${MK}\\)$`),zK=RegExp(`^hsl\\(${MK},${NK},${NK}\\)$`),BK=RegExp(`^hsla\\(${MK},${NK},${NK},${MK}\\)$`),VK={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};EK(OK,KK,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:HK,formatHex:HK,formatHex8:UK,formatHsl:WK,formatRgb:GK,toString:GK});function HK(){return this.rgb().formatHex()}function UK(){return this.rgb().formatHex8()}function WK(){return aq(this).formatHsl()}function GK(){return this.rgb().formatRgb()}function KK(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=PK.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?qK(t):n===3?new ZK(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?JK(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?JK(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=FK.exec(e))?new ZK(t[1],t[2],t[3],1):(t=IK.exec(e))?new ZK(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=LK.exec(e))?JK(t[1],t[2],t[3],t[4]):(t=RK.exec(e))?JK(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=zK.exec(e))?iq(t[1],t[2]/100,t[3]/100,1):(t=BK.exec(e))?iq(t[1],t[2]/100,t[3]/100,t[4]):VK.hasOwnProperty(e)?qK(VK[e]):e===`transparent`?new ZK(NaN,NaN,NaN,0):null}function qK(e){return new ZK(e>>16&255,e>>8&255,e&255,1)}function JK(e,t,n,r){return r<=0&&(e=t=n=NaN),new ZK(e,t,n,r)}function YK(e){return e instanceof OK||(e=KK(e)),e?(e=e.rgb(),new ZK(e.r,e.g,e.b,e.opacity)):new ZK}function XK(e,t,n,r){return arguments.length===1?YK(e):new ZK(e,t,n,r??1)}function ZK(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}EK(ZK,XK,DK(OK,{brighter(e){return e=e==null?AK:AK**+e,new ZK(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?kK:kK**+e,new ZK(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ZK(nq(this.r),nq(this.g),nq(this.b),tq(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:QK,formatHex:QK,formatHex8:$K,formatRgb:eq,toString:eq}));function QK(){return`#${rq(this.r)}${rq(this.g)}${rq(this.b)}`}function $K(){return`#${rq(this.r)}${rq(this.g)}${rq(this.b)}${rq((isNaN(this.opacity)?1:this.opacity)*255)}`}function eq(){let e=tq(this.opacity);return`${e===1?`rgb(`:`rgba(`}${nq(this.r)}, ${nq(this.g)}, ${nq(this.b)}${e===1?`)`:`, ${e})`}`}function tq(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function nq(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function rq(e){return e=nq(e),(e<16?`0`:``)+e.toString(16)}function iq(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new sq(e,t,n,r)}function aq(e){if(e instanceof sq)return new sq(e.h,e.s,e.l,e.opacity);if(e instanceof OK||(e=KK(e)),!e)return new sq;if(e instanceof sq)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new sq(o,s,c,e.opacity)}function oq(e,t,n,r){return arguments.length===1?aq(e):new sq(e,t,n,r??1)}function sq(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}EK(sq,oq,DK(OK,{brighter(e){return e=e==null?AK:AK**+e,new sq(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?kK:kK**+e,new sq(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new ZK(uq(e>=240?e-240:e+120,i,r),uq(e,i,r),uq(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new sq(cq(this.h),lq(this.s),lq(this.l),tq(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=tq(this.opacity);return`${e===1?`hsl(`:`hsla(`}${cq(this.h)}, ${lq(this.s)*100}%, ${lq(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function cq(e){return e=(e||0)%360,e<0?e+360:e}function lq(e){return Math.max(0,Math.min(1,e||0))}function uq(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var dq=e=>()=>e;function fq(e,t){return function(n){return e+n*t}}function pq(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function mq(e){return(e=+e)==1?hq:function(t,n){return n-t?pq(t,n,e):dq(isNaN(t)?n:t)}}function hq(e,t){var n=t-e;return n?fq(e,n):dq(isNaN(e)?t:e)}var gq=(function e(t){var n=mq(t);function r(e,t){var r=n((e=XK(e)).r,(t=XK(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=hq(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function _q(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function vq(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function yq(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o;for(o=0;o<r;++o)i[o]=Oq(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function bq(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function xq(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Sq(e,t){var n={},r={},i;for(i in(typeof e!=`object`||!e)&&(e={}),(typeof t!=`object`||!t)&&(t={}),t)i in e?n[i]=Oq(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var Cq=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,wq=new RegExp(Cq.source,`g`);function Tq(e){return function(){return e}}function Eq(e){return function(t){return e(t)+``}}function Dq(e,t){var n=Cq.lastIndex=wq.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=Cq.exec(e))&&(i=wq.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:xq(r,i)})),n=wq.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?Eq(c[0].x):Tq(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function Oq(e,t){var n=typeof t,r;return t==null||n===`boolean`?dq(t):(n===`number`?xq:n===`string`?(r=KK(t))?(t=r,gq):Dq:t instanceof KK?gq:t instanceof Date?bq:vq(t)?_q:Array.isArray(t)?yq:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?Sq:xq)(e,t)}var kq=180/Math.PI,Aq={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function jq(e,t,n,r,i,a){var o,s,c;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(s=Math.sqrt(n*n+r*r))&&(n/=s,r/=s,c/=s),e*r<t*n&&(e=-e,t=-t,c=-c,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(t,e)*kq,skewX:Math.atan(c)*kq,scaleX:o,scaleY:s}}var Mq;function Nq(e){let t=new(typeof DOMMatrix==`function`?DOMMatrix:WebKitCSSMatrix)(e+``);return t.isIdentity?Aq:jq(t.a,t.b,t.c,t.d,t.e,t.f)}function Pq(e){return e==null||(Mq||=document.createElementNS(`http://www.w3.org/2000/svg`,`g`),Mq.setAttribute(`transform`,e),!(e=Mq.transform.baseVal.consolidate()))?Aq:(e=e.matrix,jq(e.a,e.b,e.c,e.d,e.e,e.f))}function Fq(e,t,n,r){function i(e){return e.length?e.pop()+` `:``}function a(e,r,i,a,o,s){if(e!==i||r!==a){var c=o.push(`translate(`,null,t,null,n);s.push({i:c-4,x:xq(e,i)},{i:c-2,x:xq(r,a)})}else(i||a)&&o.push(`translate(`+i+t+a+n)}function o(e,t,n,a){e===t?t&&n.push(i(n)+`rotate(`+t+r):(e-t>180?t+=360:t-e>180&&(e+=360),a.push({i:n.push(i(n)+`rotate(`,null,r)-2,x:xq(e,t)}))}function s(e,t,n,a){e===t?t&&n.push(i(n)+`skewX(`+t+r):a.push({i:n.push(i(n)+`skewX(`,null,r)-2,x:xq(e,t)})}function c(e,t,n,r,a,o){if(e!==n||t!==r){var s=a.push(i(a)+`scale(`,null,`,`,null,`)`);o.push({i:s-4,x:xq(e,n)},{i:s-2,x:xq(t,r)})}else(n!==1||r!==1)&&a.push(i(a)+`scale(`+n+`,`+r+`)`)}return function(t,n){var r=[],i=[];return t=e(t),n=e(n),a(t.translateX,t.translateY,n.translateX,n.translateY,r,i),o(t.rotate,n.rotate,r,i),s(t.skewX,n.skewX,r,i),c(t.scaleX,t.scaleY,n.scaleX,n.scaleY,r,i),t=n=null,function(e){for(var t=-1,n=i.length,a;++t<n;)r[(a=i[t]).i]=a.x(e);return r.join(``)}}}var Iq=Fq(Nq,`px, `,`px)`,`deg)`),Lq=Fq(Pq,`, `,`)`,`)`),Rq=1e-12;function zq(e){return((e=Math.exp(e))+1/e)/2}function Bq(e){return((e=Math.exp(e))-1/e)/2}function Vq(e){return((e=Math.exp(2*e))-1)/(e+1)}var Hq=(function e(t,n,r){function i(e,i){var a=e[0],o=e[1],s=e[2],c=i[0],l=i[1],u=i[2],d=c-a,f=l-o,p=d*d+f*f,m,h;if(p<Rq)h=Math.log(u/s)/t,m=function(e){return[a+e*d,o+e*f,s*Math.exp(t*e*h)]};else{var g=Math.sqrt(p),_=(u*u-s*s+r*p)/(2*s*n*g),v=(u*u-s*s-r*p)/(2*u*n*g),y=Math.log(Math.sqrt(_*_+1)-_);h=(Math.log(Math.sqrt(v*v+1)-v)-y)/t,m=function(e){var r=e*h,i=zq(y),c=s/(n*g)*(i*Vq(t*r+y)-Bq(y));return[a+c*d,o+c*f,s*i/zq(t*r+y)]}}return m.duration=h*1e3*t/Math.SQRT2,m}return i.rho=function(t){var n=Math.max(.001,+t),r=n*n;return e(n,r,r*r)},i})(Math.SQRT2,2,4),Uq=0,Wq=0,Gq=0,Kq=1e3,qq,Jq,Yq=0,Xq=0,Zq=0,Qq=typeof performance==`object`&&performance.now?performance:Date,$q=typeof window==`object`&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function eJ(){return Xq||=($q(tJ),Qq.now()+Zq)}function tJ(){Xq=0}function nJ(){this._call=this._time=this._next=null}nJ.prototype=rJ.prototype={constructor:nJ,restart:function(e,t,n){if(typeof e!=`function`)throw TypeError(`callback is not a function`);n=(n==null?eJ():+n)+(t==null?0:+t),!this._next&&Jq!==this&&(Jq?Jq._next=this:qq=this,Jq=this),this._call=e,this._time=n,cJ()},stop:function(){this._call&&(this._call=null,this._time=1/0,cJ())}};function rJ(e,t,n){var r=new nJ;return r.restart(e,t,n),r}function iJ(){eJ(),++Uq;for(var e=qq,t;e;)(t=Xq-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Uq}function aJ(){Xq=(Yq=Qq.now())+Zq,Uq=Wq=0;try{iJ()}finally{Uq=0,sJ(),Xq=0}}function oJ(){var e=Qq.now(),t=e-Yq;t>Kq&&(Zq-=t,Yq=e)}function sJ(){for(var e,t=qq,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:qq=n);Jq=e,cJ(r)}function cJ(e){Uq||(Wq&&=clearTimeout(Wq),e-Xq>24?(e<1/0&&(Wq=setTimeout(aJ,e-Qq.now()-Zq)),Gq&&=clearInterval(Gq)):(Gq||=(Yq=Qq.now(),setInterval(oJ,Kq)),Uq=1,$q(aJ)))}function lJ(e,t,n){var r=new nJ;return t=t==null?0:+t,r.restart(n=>{r.stop(),e(n+t)},t,n),r}var uJ=sW(`start`,`end`,`cancel`,`interrupt`),dJ=[];function fJ(e,t,n,r,i,a){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;gJ(e,n,{name:t,index:r,group:i,on:uJ,tween:dJ,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:0})}function pJ(e,t){var n=hJ(e,t);if(n.state>0)throw Error(`too late; already scheduled`);return n}function mJ(e,t){var n=hJ(e,t);if(n.state>3)throw Error(`too late; already running`);return n}function hJ(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw Error(`transition not found`);return n}function gJ(e,t,n){var r=e.__transition,i;r[t]=n,n.timer=rJ(a,0,n.time);function a(e){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=e&&o(e-n.delay)}function o(a){var l,u,d,f;if(n.state!==1)return c();for(l in r)if(f=r[l],f.name===n.name){if(f.state===3)return lJ(o);f.state===4?(f.state=6,f.timer.stop(),f.on.call(`interrupt`,e,e.__data__,f.index,f.group),delete r[l]):+l<t&&(f.state=6,f.timer.stop(),f.on.call(`cancel`,e,e.__data__,f.index,f.group),delete r[l])}if(lJ(function(){n.state===3&&(n.state=4,n.timer.restart(s,n.delay,n.time),s(a))}),n.state=2,n.on.call(`start`,e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,i=Array(d=n.tween.length),l=0,u=-1;l<d;++l)(f=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(i[++u]=f);i.length=u+1}}function s(t){for(var r=t<n.duration?n.ease.call(null,t/n.duration):(n.timer.restart(c),n.state=5,1),a=-1,o=i.length;++a<o;)i[a].call(e,r);n.state===5&&(n.on.call(`end`,e,e.__data__,n.index,n.group),c())}function c(){for(var i in n.state=6,n.timer.stop(),delete r[t],r)return;delete e.__transition}}function _J(e,t){var n=e.__transition,r,i,a=!0,o;if(n){for(o in t=t==null?null:t+``,n){if((r=n[o]).name!==t){a=!1;continue}i=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(i?`interrupt`:`cancel`,e,e.__data__,r.index,r.group),delete n[o]}a&&delete e.__transition}}function vJ(e){return this.each(function(){_J(this,e)})}function yJ(e,t){var n,r;return function(){var i=mJ(this,e),a=i.tween;if(a!==n){r=n=a;for(var o=0,s=r.length;o<s;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function bJ(e,t,n){var r,i;if(typeof n!=`function`)throw Error();return function(){var a=mJ(this,e),o=a.tween;if(o!==r){i=(r=o).slice();for(var s={name:t,value:n},c=0,l=i.length;c<l;++c)if(i[c].name===t){i[c]=s;break}c===l&&i.push(s)}a.tween=i}}function xJ(e,t){var n=this._id;if(e+=``,arguments.length<2){for(var r=hJ(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===e)return o.value;return null}return this.each((t==null?yJ:bJ)(n,e,t))}function SJ(e,t,n){var r=e._id;return e.each(function(){var e=mJ(this,r);(e.value||={})[t]=n.apply(this,arguments)}),function(e){return hJ(e,r).value[t]}}function CJ(e,t){var n;return(typeof t==`number`?xq:t instanceof KK?gq:(n=KK(t))?(t=n,gq):Dq)(e,t)}function wJ(e){return function(){this.removeAttribute(e)}}function TJ(e){return function(){this.removeAttributeNS(e.space,e.local)}}function EJ(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttribute(e);return o===i?null:o===r?a:a=t(r=o,n)}}function DJ(e,t,n){var r,i=n+``,a;return function(){var o=this.getAttributeNS(e.space,e.local);return o===i?null:o===r?a:a=t(r=o,n)}}function OJ(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttribute(e):(o=this.getAttribute(e),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function kJ(e,t,n){var r,i,a;return function(){var o,s=n(this),c;return s==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),c=s+``,o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s)))}}function AJ(e,t){var n=pW(e),r=n===`transform`?Lq:CJ;return this.attrTween(e,typeof t==`function`?(n.local?kJ:OJ)(n,r,SJ(this,`attr.`+e,t)):t==null?(n.local?TJ:wJ)(n):(n.local?DJ:EJ)(n,r,t))}function jJ(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function MJ(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function NJ(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&MJ(e,i)),n}return i._value=t,i}function PJ(e,t){var n,r;function i(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&jJ(e,i)),n}return i._value=t,i}function FJ(e,t){var n=`attr.`+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!=`function`)throw Error();var r=pW(e);return this.tween(n,(r.local?NJ:PJ)(r,t))}function IJ(e,t){return function(){pJ(this,e).delay=+t.apply(this,arguments)}}function LJ(e,t){return t=+t,function(){pJ(this,e).delay=t}}function RJ(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?IJ:LJ)(t,e)):hJ(this.node(),t).delay}function zJ(e,t){return function(){mJ(this,e).duration=+t.apply(this,arguments)}}function BJ(e,t){return t=+t,function(){mJ(this,e).duration=t}}function VJ(e){var t=this._id;return arguments.length?this.each((typeof e==`function`?zJ:BJ)(t,e)):hJ(this.node(),t).duration}function HJ(e,t){if(typeof t!=`function`)throw Error();return function(){mJ(this,e).ease=t}}function UJ(e){var t=this._id;return arguments.length?this.each(HJ(t,e)):hJ(this.node(),t).ease}function WJ(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!=`function`)throw Error();mJ(this,e).ease=n}}function GJ(e){if(typeof e!=`function`)throw Error();return this.each(WJ(this._id,e))}function KJ(e){typeof e!=`function`&&(e=TW(e));for(var t=this._groups,n=t.length,r=Array(n),i=0;i<n;++i)for(var a=t[i],o=a.length,s=r[i]=[],c,l=0;l<o;++l)(c=a[l])&&e.call(c,c.__data__,l,a)&&s.push(c);return new xY(r,this._parents,this._name,this._id)}function qJ(e){if(e._id!==this._id)throw Error();for(var t=this._groups,n=e._groups,r=t.length,i=n.length,a=Math.min(r,i),o=Array(r),s=0;s<a;++s)for(var c=t[s],l=n[s],u=c.length,d=o[s]=Array(u),f,p=0;p<u;++p)(f=c[p]||l[p])&&(d[p]=f);for(;s<r;++s)o[s]=t[s];return new xY(o,this._parents,this._name,this._id)}function JJ(e){return(e+``).trim().split(/^|\s+/).every(function(e){var t=e.indexOf(`.`);return t>=0&&(e=e.slice(0,t)),!e||e===`start`})}function YJ(e,t,n){var r,i,a=JJ(t)?pJ:mJ;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function XJ(e,t){var n=this._id;return arguments.length<2?hJ(this.node(),n).on.on(e):this.each(YJ(n,e,t))}function ZJ(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function QJ(){return this.on(`end.remove`,ZJ(this._id))}function $J(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=vW(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o<i;++o)for(var s=r[o],c=s.length,l=a[o]=Array(c),u,d,f=0;f<c;++f)(u=s[f])&&(d=e.call(u,u.__data__,f,s))&&(`__data__`in u&&(d.__data__=u.__data__),l[f]=d,fJ(l[f],t,n,f,l,hJ(u,n)));return new xY(a,this._parents,t,n)}function eY(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=SW(e));for(var r=this._groups,i=r.length,a=[],o=[],s=0;s<i;++s)for(var c=r[s],l=c.length,u,d=0;d<l;++d)if(u=c[d]){for(var f=e.call(u,u.__data__,d,c),p,m=hJ(u,n),h=0,g=f.length;h<g;++h)(p=f[h])&&fJ(p,t,n,h,f,m);a.push(f),o.push(u)}return new xY(a,o,t,n)}var tY=cK.prototype.constructor;function nY(){return new tY(this._groups,this._parents)}function rY(e,t){var n,r,i;return function(){var a=hG(this,e),o=(this.style.removeProperty(e),hG(this,e));return a===o?null:a===n&&o===r?i:i=t(n=a,r=o)}}function iY(e){return function(){this.style.removeProperty(e)}}function aY(e,t,n){var r,i=n+``,a;return function(){var o=hG(this,e);return o===i?null:o===r?a:a=t(r=o,n)}}function oY(e,t,n){var r,i,a;return function(){var o=hG(this,e),s=n(this),c=s+``;return s??(c=s=(this.style.removeProperty(e),hG(this,e))),o===c?null:o===r&&c===i?a:(i=c,a=t(r=o,s))}}function sY(e,t){var n,r,i,a=`style.`+t,o=`end.`+a,s;return function(){var c=mJ(this,e),l=c.on,u=c.value[a]==null?s||=iY(t):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),c.on=r}}function cY(e,t,n){var r=(e+=``)==`transform`?Iq:CJ;return t==null?this.styleTween(e,rY(e,r)).on(`end.style.`+e,iY(e)):typeof t==`function`?this.styleTween(e,oY(e,r,SJ(this,`style.`+e,t))).each(sY(this._id,e)):this.styleTween(e,aY(e,r,t),n).on(`end.style.`+e,null)}function lY(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function uY(e,t,n){var r,i;function a(){var a=t.apply(this,arguments);return a!==i&&(r=(i=a)&&lY(e,a,n)),r}return a._value=t,a}function dY(e,t,n){var r=`style.`+(e+=``);if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!=`function`)throw Error();return this.tween(r,uY(e,t,n??``))}function fY(e){return function(){this.textContent=e}}function pY(e){return function(){var t=e(this);this.textContent=t??``}}function mY(e){return this.tween(`text`,typeof e==`function`?pY(SJ(this,`text`,e)):fY(e==null?``:e+``))}function hY(e){return function(t){this.textContent=e.call(this,t)}}function gY(e){var t,n;function r(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&hY(r)),t}return r._value=e,r}function _Y(e){var t=`text`;if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!=`function`)throw Error();return this.tween(t,gY(e))}function vY(){for(var e=this._name,t=this._id,n=SY(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)if(c=o[l]){var u=hJ(c,t);fJ(c,e,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new xY(r,this._parents,e,n)}function yY(){var e,t,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var s={value:o},c={value:function(){--i===0&&a()}};n.each(function(){var n=mJ(this,r),i=n.on;i!==e&&(t=(e=i).copy(),t._.cancel.push(s),t._.interrupt.push(s),t._.end.push(c)),n.on=t}),i===0&&a()})}var bY=0;function xY(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function SY(){return++bY}var CY=cK.prototype;xY.prototype={constructor:xY,select:$J,selectAll:eY,selectChild:CY.selectChild,selectChildren:CY.selectChildren,filter:KJ,merge:qJ,selection:nY,transition:vY,call:CY.call,nodes:CY.nodes,node:CY.node,size:CY.size,empty:CY.empty,each:CY.each,on:XJ,attr:AJ,attrTween:FJ,style:cY,styleTween:dY,text:mY,textTween:_Y,remove:QJ,tween:xJ,delay:RJ,duration:VJ,ease:UJ,easeVarying:GJ,end:yY,[Symbol.iterator]:CY[Symbol.iterator]};function wY(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var TY={time:null,delay:0,duration:250,ease:wY};function EY(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw Error(`transition ${t} not found`);return n}function DY(e){var t,n;e instanceof xY?(t=e._id,e=e._name):(t=SY(),(n=TY).time=eJ(),e=e==null?null:e+``);for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],s=o.length,c,l=0;l<s;++l)(c=o[l])&&fJ(c,e,t,l,o,n||EY(c,t));return new xY(r,this._parents,e,t)}cK.prototype.interrupt=vJ,cK.prototype.transition=DY;var OY=e=>()=>e;function kY(e,{sourceEvent:t,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function AY(e,t,n){this.k=e,this.x=t,this.y=n}AY.prototype={constructor:AY,scale:function(e){return e===1?this:new AY(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new AY(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return`translate(`+this.x+`,`+this.y+`) scale(`+this.k+`)`}};var jY=new AY(1,0,0);MY.prototype=AY.prototype;function MY(e){for(;!e.__zoom;)if(!(e=e.parentNode))return jY;return e.__zoom}function NY(e){e.stopImmediatePropagation()}function PY(e){e.preventDefault(),e.stopImmediatePropagation()}function FY(e){return(!e.ctrlKey||e.type===`wheel`)&&!e.button}function IY(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute(`viewBox`)?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function LY(){return this.__zoom||jY}function RY(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function zY(){return navigator.maxTouchPoints||`ontouchstart`in this}function BY(e,t,n){var r=e.invertX(t[0][0])-n[0][0],i=e.invertX(t[1][0])-n[1][0],a=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function VY(){var e=FY,t=IY,n=BY,r=RY,i=zY,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],s=250,c=Hq,l=sW(`start`,`zoom`,`end`),u,d,f,p=500,m=150,h=0,g=10;function _(e){e.property(`__zoom`,LY).on(`wheel.zoom`,w,{passive:!1}).on(`mousedown.zoom`,T).on(`dblclick.zoom`,E).filter(i).on(`touchstart.zoom`,D).on(`touchmove.zoom`,O).on(`touchend.zoom touchcancel.zoom`,k).style(`-webkit-tap-highlight-color`,`rgba(0,0,0,0)`)}_.transform=function(e,t,n,r){var i=e.selection?e.selection():e;i.property(`__zoom`,LY),e===i?i.interrupt().each(function(){S(this,arguments).event(r).start().zoom(null,typeof t==`function`?t.apply(this,arguments):t).end()}):x(e,t,n,r)},_.scaleBy=function(e,t,n,r){_.scaleTo(e,function(){return this.__zoom.k*(typeof t==`function`?t.apply(this,arguments):t)},n,r)},_.scaleTo=function(e,r,i,a){_.transform(e,function(){var e=t.apply(this,arguments),a=this.__zoom,s=i==null?b(e):typeof i==`function`?i.apply(this,arguments):i,c=a.invert(s),l=typeof r==`function`?r.apply(this,arguments):r;return n(y(v(a,l),s,c),e,o)},i,a)},_.translateBy=function(e,r,i,a){_.transform(e,function(){return n(this.__zoom.translate(typeof r==`function`?r.apply(this,arguments):r,typeof i==`function`?i.apply(this,arguments):i),t.apply(this,arguments),o)},null,a)},_.translateTo=function(e,r,i,a,s){_.transform(e,function(){var e=t.apply(this,arguments),s=this.__zoom,c=a==null?b(e):typeof a==`function`?a.apply(this,arguments):a;return n(jY.translate(c[0],c[1]).scale(s.k).translate(typeof r==`function`?-r.apply(this,arguments):-r,typeof i==`function`?-i.apply(this,arguments):-i),e,o)},a,s)};function v(e,t){return t=Math.max(a[0],Math.min(a[1],t)),t===e.k?e:new AY(t,e.x,e.y)}function y(e,t,n){var r=t[0]-n[0]*e.k,i=t[1]-n[1]*e.k;return r===e.x&&i===e.y?e:new AY(e.k,r,i)}function b(e){return[(+e[0][0]+ +e[1][0])/2,(+e[0][1]+ +e[1][1])/2]}function x(e,n,r,i){e.on(`start.zoom`,function(){S(this,arguments).event(i).start()}).on(`interrupt.zoom end.zoom`,function(){S(this,arguments).event(i).end()}).tween(`zoom`,function(){var e=this,a=arguments,o=S(e,a).event(i),s=t.apply(e,a),l=r==null?b(s):typeof r==`function`?r.apply(e,a):r,u=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),d=e.__zoom,f=typeof n==`function`?n.apply(e,a):n,p=c(d.invert(l).concat(u/d.k),f.invert(l).concat(u/f.k));return function(e){if(e===1)e=f;else{var t=p(e),n=u/t[2];e=new AY(n,l[0]-t[0]*n,l[1]-t[1]*n)}o.zoom(null,e)}})}function S(e,t,n){return!n&&e.__zooming||new C(e,t)}function C(e,n){this.that=e,this.args=n,this.active=0,this.sourceEvent=null,this.extent=t.apply(e,n),this.taps=0}C.prototype={event:function(e){return e&&(this.sourceEvent=e),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit(`start`)),this},zoom:function(e,t){return this.mouse&&e!==`mouse`&&(this.mouse[1]=t.invert(this.mouse[0])),this.touch0&&e!==`touch`&&(this.touch0[1]=t.invert(this.touch0[0])),this.touch1&&e!==`touch`&&(this.touch1[1]=t.invert(this.touch1[0])),this.that.__zoom=t,this.emit(`zoom`),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit(`end`)),this},emit:function(e){var t=uK(this.that).datum();l.call(e,this.that,new kY(e,{sourceEvent:this.sourceEvent,target:_,type:e,transform:this.that.__zoom,dispatch:l}),t)}};function w(t,...i){if(!e.apply(this,arguments))return;var s=S(this,i).event(t),c=this.__zoom,l=Math.max(a[0],Math.min(a[1],c.k*2**r.apply(this,arguments))),u=fK(t);if(s.wheel)(s.mouse[0][0]!==u[0]||s.mouse[0][1]!==u[1])&&(s.mouse[1]=c.invert(s.mouse[0]=u)),clearTimeout(s.wheel);else if(c.k===l)return;else s.mouse=[u,c.invert(u)],_J(this),s.start();PY(t),s.wheel=setTimeout(d,m),s.zoom(`mouse`,n(y(v(c,l),s.mouse[0],s.mouse[1]),s.extent,o));function d(){s.wheel=null,s.end()}}function T(t,...r){if(f||!e.apply(this,arguments))return;var i=t.currentTarget,a=S(this,r,!0).event(t),s=uK(t.view).on(`mousemove.zoom`,d,!0).on(`mouseup.zoom`,p,!0),c=fK(t,i),l=t.clientX,u=t.clientY;_K(t.view),NY(t),a.mouse=[c,this.__zoom.invert(c)],_J(this),a.start();function d(e){if(PY(e),!a.moved){var t=e.clientX-l,r=e.clientY-u;a.moved=t*t+r*r>h}a.event(e).zoom(`mouse`,n(y(a.that.__zoom,a.mouse[0]=fK(e,i),a.mouse[1]),a.extent,o))}function p(e){s.on(`mousemove.zoom mouseup.zoom`,null),vK(e.view,a.moved),PY(e),a.event(e).end()}}function E(r,...i){if(e.apply(this,arguments)){var a=this.__zoom,c=fK(r.changedTouches?r.changedTouches[0]:r,this),l=a.invert(c),u=a.k*(r.shiftKey?.5:2),d=n(y(v(a,u),c,l),t.apply(this,i),o);PY(r),s>0?uK(this).transition().duration(s).call(x,d,c,r):uK(this).call(_.transform,d,c,r)}}function D(t,...n){if(e.apply(this,arguments)){var r=t.touches,i=r.length,a=S(this,n,t.changedTouches.length===i).event(t),o,s,c,l;for(NY(t),s=0;s<i;++s)c=r[s],l=fK(c,this),l=[l,this.__zoom.invert(l),c.identifier],a.touch0?!a.touch1&&a.touch0[2]!==l[2]&&(a.touch1=l,a.taps=0):(a.touch0=l,o=!0,a.taps=1+!!u);u&&=clearTimeout(u),o&&(a.taps<2&&(d=l[0],u=setTimeout(function(){u=null},p)),_J(this),a.start())}}function O(e,...t){if(this.__zooming){var r=S(this,t).event(e),i=e.changedTouches,a=i.length,s,c,l,u;for(PY(e),s=0;s<a;++s)c=i[s],l=fK(c,this),r.touch0&&r.touch0[2]===c.identifier?r.touch0[0]=l:r.touch1&&r.touch1[2]===c.identifier&&(r.touch1[0]=l);if(c=r.that.__zoom,r.touch1){var d=r.touch0[0],f=r.touch0[1],p=r.touch1[0],m=r.touch1[1],h=(h=p[0]-d[0])*h+(h=p[1]-d[1])*h,g=(g=m[0]-f[0])*g+(g=m[1]-f[1])*g;c=v(c,Math.sqrt(h/g)),l=[(d[0]+p[0])/2,(d[1]+p[1])/2],u=[(f[0]+m[0])/2,(f[1]+m[1])/2]}else if(r.touch0)l=r.touch0[0],u=r.touch0[1];else return;r.zoom(`touch`,n(y(c,l,u),r.extent,o))}}function k(e,...t){if(this.__zooming){var n=S(this,t).event(e),r=e.changedTouches,i=r.length,a,o;for(NY(e),f&&clearTimeout(f),f=setTimeout(function(){f=null},p),a=0;a<i;++a)o=r[a],n.touch0&&n.touch0[2]===o.identifier?delete n.touch0:n.touch1&&n.touch1[2]===o.identifier&&delete n.touch1;if(n.touch1&&!n.touch0&&(n.touch0=n.touch1,delete n.touch1),n.touch0)n.touch0[1]=this.__zoom.invert(n.touch0[0]);else if(n.end(),n.taps===2&&(o=fK(o,this),Math.hypot(d[0]-o[0],d[1]-o[1])<g)){var s=uK(this).on(`dblclick.zoom`);s&&s.apply(this,arguments)}}}return _.wheelDelta=function(e){return arguments.length?(r=typeof e==`function`?e:OY(+e),_):r},_.filter=function(t){return arguments.length?(e=typeof t==`function`?t:OY(!!t),_):e},_.touchable=function(e){return arguments.length?(i=typeof e==`function`?e:OY(!!e),_):i},_.extent=function(e){return arguments.length?(t=typeof e==`function`?e:OY([[+e[0][0],+e[0][1]],[+e[1][0],+e[1][1]]]),_):t},_.scaleExtent=function(e){return arguments.length?(a[0]=+e[0],a[1]=+e[1],_):[a[0],a[1]]},_.translateExtent=function(e){return arguments.length?(o[0][0]=+e[0][0],o[1][0]=+e[1][0],o[0][1]=+e[0][1],o[1][1]=+e[1][1],_):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},_.constrain=function(e){return arguments.length?(n=e,_):n},_.duration=function(e){return arguments.length?(s=+e,_):s},_.interpolate=function(e){return arguments.length?(c=e,_):c},_.on=function(){var e=l.on.apply(l,arguments);return e===l?_:e},_.clickDistance=function(e){return arguments.length?(h=(e=+e)*e,_):Math.sqrt(h)},_.tapDistance=function(e){return arguments.length?(g=+e,_):g},_}var HY={error001:(e=`react`)=>`Seems like you have not used ${e===`svelte`?`SvelteFlowProvider`:`ReactFlowProvider`} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>`It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.`,error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>`The parent container needs a width and a height to render the graph.`,error005:()=>`Only child nodes can use a parent extent.`,error006:()=>`Can't create edge. An edge needs a source and a target.`,error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e===`source`?n:r}", edge id: ${t}.`,error010:()=>`Handle: No node id found. Make sure to only use a Handle inside a custom Node.`,error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e=`react`)=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>`useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.`,error015:()=>`It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.`,error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},UY=[[-1/0,-1/0],[1/0,1/0]],WY=[`Enter`,` `,`Escape`],GY={"node.a11yDescription.default":`Press enter or space to select a node. Press delete to remove it and escape to cancel.`,"node.a11yDescription.keyboardDisabled":`Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.`,"node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":`Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.`,"controls.ariaLabel":`Control Panel`,"controls.zoomIn.ariaLabel":`Zoom In`,"controls.zoomOut.ariaLabel":`Zoom Out`,"controls.fitView.ariaLabel":`Fit View`,"controls.interactive.ariaLabel":`Toggle Interactivity`,"minimap.ariaLabel":`Mini Map`,"handle.ariaLabel":`Handle`},KY;(function(e){e.Strict=`strict`,e.Loose=`loose`})(KY||={});var qY;(function(e){e.Free=`free`,e.Vertical=`vertical`,e.Horizontal=`horizontal`})(qY||={});var JY;(function(e){e.Partial=`partial`,e.Full=`full`})(JY||={});var YY={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},XY;(function(e){e.Bezier=`default`,e.Straight=`straight`,e.Step=`step`,e.SmoothStep=`smoothstep`,e.SimpleBezier=`simplebezier`})(XY||={});var ZY;(function(e){e.Arrow=`arrow`,e.ArrowClosed=`arrowclosed`})(ZY||={});var $;(function(e){e.Left=`left`,e.Top=`top`,e.Right=`right`,e.Bottom=`bottom`})($||={});var QY={[$.Left]:$.Right,[$.Right]:$.Left,[$.Top]:$.Bottom,[$.Bottom]:$.Top};function $Y(e){return e===null?null:e?`valid`:`invalid`}var eX=e=>!!e&&typeof e==`object`&&`id`in e&&`source`in e&&`target`in e,tX=e=>!!e&&typeof e==`object`&&`id`in e&&`position`in e&&!(`source`in e)&&!(`target`in e),nX=e=>!!e&&typeof e==`object`&&`id`in e&&`internals`in e&&!(`source`in e)&&!(`target`in e),rX=(e,t=[0,0])=>{let{width:n,height:r}=LX(e),i=e.origin??t,a=n*i[0],o=r*i[1];return{x:e.position.x-a,y:e.position.y-o}},iX=(e,t={nodeOrigin:[0,0]})=>e.length===0?{x:0,y:0,width:0,height:0}:yX(e.reduce((e,n)=>{let r=typeof n==`string`,i=!t.nodeLookup&&!r?n:void 0;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):nX(n)?n:t.nodeLookup.get(n.id)),_X(e,i?xX(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),aX=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(e=>{(t.filter===void 0||t.filter(e))&&(n=_X(n,xX(e)),r=!0)}),r?yX(n):{x:0,y:0,width:0,height:0}},oX=(e,t,[n,r,i]=[0,0,1],a=!1,o=!1)=>{let s=(t.x-n)/i,c=(t.y-r)/i,l=t.width/i,u=t.height/i,d=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(o&&!n||r)continue;let i=e.width??t.width??t.initialWidth??0,f=e.height??t.height??t.initialHeight??0,{x:p,y:m}=t.internals.positionAbsolute,h=CX(s,c,l,u,p,m,i,f),g=i*f,_=a&&h>0;(!t.internals.handleBounds||_||h>=g||t.dragging)&&d.push(t)}return d},sX=(e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))};function cX(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{let i;if(t?.includeHiddenNodes){let{width:t,height:n}=LX(e);i=t>0&&n>0}else i=!!(e.measured.width&&e.measured.height&&!e.hidden);i&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}async function lX({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:a},o){if(e.size===0)return!0;let s=PX(aX(cX(e,o)),t,n,o?.minZoom??i,o?.maxZoom??a,o?.padding??.1);return await r.setViewport(s,{duration:o?.duration,ease:o?.ease,interpolate:o?.interpolate}),!0}function uX({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){let o=n.get(e),s=o.parentId?n.get(o.parentId):void 0,{x:c,y:l}=s?s.internals.positionAbsolute:{x:0,y:0},u=o.origin??r,d=o.extent||i;if(o.extent===`parent`&&!o.expandParent){if(!s)a?.(`005`,HY.error005());else{let e=s.measured.width,t=s.measured.height;e&&t&&(d=[[c,l],[c+e,l+t]])}}else s&&IX(o.extent)&&(d=[[o.extent[0][0]+c,o.extent[0][1]+l],[o.extent[1][0]+c,o.extent[1][1]+l]]);let f=IX(d)?pX(t,d,o.measured):t;return(o.measured.width===void 0||o.measured.height===void 0)&&a?.(`015`,HY.error015()),{position:{x:f.x-c+(o.measured.width??0)*u[0],y:f.y-l+(o.measured.height??0)*u[1]},positionAbsolute:f}}async function dX({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let a=new Set(e.map(e=>e.id)),o=[];for(let e of n){if(e.deletable===!1)continue;let t=a.has(e.id),n=!t&&e.parentId&&o.find(t=>t.id===e.parentId);(t||n)&&o.push(e)}let s=new Set(t.map(e=>e.id)),c=r.filter(e=>e.deletable!==!1),l=sX(o,c);for(let e of c)s.has(e.id)&&!l.find(t=>t.id===e.id)&&l.push(e);if(!i)return{edges:l,nodes:o};let u=await i({nodes:o,edges:l});return typeof u==`boolean`?u?{edges:l,nodes:o}:{edges:[],nodes:[]}:u}var fX=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),pX=(e={x:0,y:0},t,n)=>({x:fX(e.x,t[0][0],t[1][0]-(n?.width??0)),y:fX(e.y,t[0][1],t[1][1]-(n?.height??0))});function mX(e,t,n){let{width:r,height:i}=LX(n),{x:a,y:o}=n.internals.positionAbsolute;return pX(e,[[a,o],[a+r,o+i]],t)}var hX=(e,t,n)=>e<t?fX(Math.abs(e-t),1,t)/t:e>n?-fX(Math.abs(e-n),1,t)/t:0,gX=(e,t,n=15,r=40)=>[hX(e.x,r,t.width-r)*n,hX(e.y,r,t.height-r)*n],_X=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),vX=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),yX=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),bX=(e,t=[0,0])=>{let{x:n,y:r}=nX(e)?e.internals.positionAbsolute:rX(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},xX=(e,t=[0,0])=>{let{x:n,y:r}=nX(e)?e.internals.positionAbsolute:rX(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},SX=(e,t)=>yX(_X(vX(e),vX(t))),CX=(e,t,n,r,i,a,o,s)=>{let c=Math.max(0,Math.min(e+n,i+o)-Math.max(e,i)),l=Math.max(0,Math.min(t+r,a+s)-Math.max(t,a));return Math.ceil(c*l)},wX=(e,t)=>CX(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),TX=e=>EX(e.width)&&EX(e.height)&&EX(e.x)&&EX(e.y),EX=e=>!isNaN(e)&&isFinite(e),DX=(e,t)=>(e,t)=>{},OX=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),kX=({x:e,y:t},[n,r,i],a=!1,o=[1,1])=>{let s={x:(e-n)/i,y:(t-r)/i};return a?OX(s,o):s},AX=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function jX(e,t){if(typeof e==`number`)return Math.floor((t-t/(1+e))*.5);if(typeof e==`string`&&e.endsWith(`px`)){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if(typeof e==`string`&&e.endsWith(`%`)){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function MX(e,t,n){if(typeof e==`string`||typeof e==`number`){let r=jX(e,n),i=jX(e,t);return{top:r,right:i,bottom:r,left:i,x:i*2,y:r*2}}if(typeof e==`object`){let r=jX(e.top??e.y??0,n),i=jX(e.bottom??e.y??0,n),a=jX(e.left??e.x??0,t),o=jX(e.right??e.x??0,t);return{top:r,right:o,bottom:i,left:a,x:a+o,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function NX(e,t,n,r,i,a){let{x:o,y:s}=AX(e,[t,n,r]),{x:c,y:l}=AX({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=i-c,d=a-l;return{left:Math.floor(o),top:Math.floor(s),right:Math.floor(u),bottom:Math.floor(d)}}var PX=(e,t,n,r,i,a)=>{let o=MX(a,t,n),s=(t-o.x)/e.width,c=(n-o.y)/e.height,l=fX(Math.min(s,c),r,i),u=e.x+e.width/2,d=e.y+e.height/2,f=t/2-u*l,p=n/2-d*l,m=NX(e,f,p,l,t,n),h={left:Math.min(m.left-o.left,0),top:Math.min(m.top-o.top,0),right:Math.min(m.right-o.right,0),bottom:Math.min(m.bottom-o.bottom,0)};return{x:f-h.left+h.right,y:p-h.top+h.bottom,zoom:l}},FX=()=>typeof navigator<`u`&&navigator?.userAgent?.indexOf(`Mac`)>=0;function IX(e){return e!=null&&e!==`parent`}function LX(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function RX(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function zX(e,t={width:0,height:0},n,r,i){let a={...e},o=r.get(n);if(o){let e=o.origin||i;a.x+=o.internals.positionAbsolute.x-(t.width??0)*e[0],a.y+=o.internals.positionAbsolute.y-(t.height??0)*e[1]}return a}function BX(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function VX(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function HX(e){return{...GY,...e||{}}}function UX(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:a,y:o}=YX(e),s=kX({x:a-(i?.left??0),y:o-(i?.top??0)},r),{x:c,y:l}=n?OX(s,t):s;return{xSnapped:c,ySnapped:l,...s}}var WX=e=>({width:e.offsetWidth,height:e.offsetHeight}),GX=e=>e?.getRootNode?.()||window?.document,KX=[`INPUT`,`SELECT`,`TEXTAREA`];function qX(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1?KX.includes(t.nodeName)||t.hasAttribute(`contenteditable`)||!!t.closest(`.nokey`):!1}var JX=e=>`clientX`in e,YX=(e,t)=>{let n=JX(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},XX=(e,t,n,r,i)=>{let a=t.querySelectorAll(`.${e}`);return!a||!a.length?null:Array.from(a).map(t=>{let a=t.getBoundingClientRect();return{id:t.getAttribute(`data-handleid`),type:e,nodeId:i,position:t.getAttribute(`data-handlepos`),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...WX(t)}})};function ZX({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:a,targetControlX:o,targetControlY:s}){let c=e*.125+i*.375+o*.375+n*.125,l=t*.125+a*.375+s*.375+r*.125;return[c,l,Math.abs(c-e),Math.abs(l-t)]}function QX(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function $X({pos:e,x1:t,y1:n,x2:r,y2:i,c:a}){switch(e){case $.Left:return[t-QX(t-r,a),n];case $.Right:return[t+QX(r-t,a),n];case $.Top:return[t,n-QX(n-i,a)];case $.Bottom:return[t,n+QX(i-n,a)]}}function eZ({sourceX:e,sourceY:t,sourcePosition:n=$.Bottom,targetX:r,targetY:i,targetPosition:a=$.Top,curvature:o=.25}){let[s,c]=$X({pos:n,x1:e,y1:t,x2:r,y2:i,c:o}),[l,u]=$X({pos:a,x1:r,y1:i,x2:e,y2:t,c:o}),[d,f,p,m]=ZX({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:s,sourceControlY:c,targetControlX:l,targetControlY:u});return[`M${e},${t} C${s},${c} ${l},${u} ${r},${i}`,d,f,p,m]}function tZ({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,a=n<e?n+i:n-i,o=Math.abs(r-t)/2;return[a,r<t?r+o:r-o,i,o]}function nZ({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:i=!1,zIndexMode:a=`basic`}){return a===`manual`?r:(i&&n?r+1e3:r)+Math.max(e.parentId||i&&e.selected?e.internals.z:0,t.parentId||i&&t.selected?t.internals.z:0)}function rZ({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let a=_X(xX(e),xX(t));return a.x===a.x2&&(a.x2+=1),a.y===a.y2&&(a.y2+=1),wX({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},yX(a))>0}var iZ=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||``}-${n}${r||``}`,aZ=(e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)),oZ=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.(`006`,HY.error006()),t;let r=n.getEdgeId||iZ,i;return i=eX(e)?{...e}:{...e,id:r(e)},aZ(i,t)?t:(i.sourceHandle===null&&delete i.sourceHandle,i.targetHandle===null&&delete i.targetHandle,t.concat(i))};function sZ({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,a,o,s]=tZ({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,a,o,s]}var cZ={[$.Left]:{x:-1,y:0},[$.Right]:{x:1,y:0},[$.Top]:{x:0,y:-1},[$.Bottom]:{x:0,y:1}},lZ=({source:e,sourcePosition:t=$.Bottom,target:n})=>t===$.Left||t===$.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},uZ=(e,t)=>Math.sqrt((t.x-e.x)**2+(t.y-e.y)**2);function dZ({source:e,sourcePosition:t=$.Bottom,target:n,targetPosition:r=$.Top,center:i,offset:a,stepPosition:o}){let s=cZ[t],c=cZ[r],l={x:e.x+s.x*a,y:e.y+s.y*a},u={x:n.x+c.x*a,y:n.y+c.y*a},d=lZ({source:l,sourcePosition:t,target:u}),f=d.x===0?`y`:`x`,p=d[f],m=[],h,g,_={x:0,y:0},v={x:0,y:0},[,,y,b]=tZ({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*c[f]===-1){f===`x`?(h=i.x??l.x+(u.x-l.x)*o,g=i.y??(l.y+u.y)/2):(h=i.x??(l.x+u.x)/2,g=i.y??l.y+(u.y-l.y)*o);let e=[{x:h,y:l.y},{x:h,y:u.y}],t=[{x:l.x,y:g},{x:u.x,y:g}];m=s[f]===p?f===`x`?e:t:f===`x`?t:e}else{let i=[{x:l.x,y:u.y}],o=[{x:u.x,y:l.y}];if(m=f===`x`?s.x===p?o:i:s.y===p?i:o,t===r){let t=Math.abs(e[f]-n[f]);if(t<=a){let r=Math.min(a-1,a-t);s[f]===p?_[f]=(l[f]>e[f]?-1:1)*r:v[f]=(u[f]>n[f]?-1:1)*r}}if(t!==r){let e=f===`x`?`y`:`x`,t=s[f]===c[e],n=l[e]>u[e],r=l[e]<u[e];(s[f]===1&&(!t&&n||t&&r)||s[f]!==1&&(!t&&r||t&&n))&&(m=f===`x`?i:o)}let d={x:l.x+_.x,y:l.y+_.y},y={x:u.x+v.x,y:u.y+v.y};Math.max(Math.abs(d.x-m[0].x),Math.abs(y.x-m[0].x))>=Math.max(Math.abs(d.y-m[0].y),Math.abs(y.y-m[0].y))?(h=(d.x+y.x)/2,g=m[0].y):(h=m[0].x,g=(d.y+y.y)/2)}let x={x:l.x+_.x,y:l.y+_.y},S={x:u.x+v.x,y:u.y+v.y};return[[e,...x.x!==m[0].x||x.y!==m[0].y?[x]:[],...m,...S.x!==m[m.length-1].x||S.y!==m[m.length-1].y?[S]:[],n],h,g,y,b]}function fZ(e,t,n,r){let i=Math.min(uZ(e,t)/2,uZ(t,n)/2,r),{x:a,y:o}=t;if(e.x===a&&a===n.x||e.y===o&&o===n.y)return`L${a} ${o}`;if(e.y===o){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${a+i*t},${o}Q ${a},${o} ${a},${o+i*r}`}let s=e.x<n.x?1:-1;return`L ${a},${o+i*(e.y<n.y?-1:1)}Q ${a},${o} ${a+i*s},${o}`}function pZ({sourceX:e,sourceY:t,sourcePosition:n=$.Bottom,targetX:r,targetY:i,targetPosition:a=$.Top,borderRadius:o=5,centerX:s,centerY:c,offset:l=20,stepPosition:u=.5}){let[d,f,p,m,h]=dZ({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:a,center:{x:s,y:c},offset:l,stepPosition:u}),g=`M${d[0].x} ${d[0].y}`;for(let e=1;e<d.length-1;e++)g+=fZ(d[e-1],d[e],d[e+1],o);return g+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[g,f,p,m,h]}function mZ(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function hZ(e){let{sourceNode:t,targetNode:n}=e;if(!mZ(t)||!mZ(n))return null;let r=t.internals.handleBounds||gZ(t.handles),i=n.internals.handleBounds||gZ(n.handles),a=vZ(r?.source??[],e.sourceHandle),o=vZ(e.connectionMode===KY.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),e.targetHandle);if(!a||!o)return e.onError?.(`008`,HY.error008(a?`target`:`source`,{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=a?.position||$.Bottom,c=o?.position||$.Top,l=_Z(t,a,s),u=_Z(n,o,c);return{sourceX:l.x,sourceY:l.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:c}}function gZ(e){if(!e)return null;let t=[],n=[];for(let r of e)r.width=r.width??1,r.height=r.height??1,r.type===`source`?t.push(r):r.type===`target`&&n.push(r);return{source:t,target:n}}function _Z(e,t,n=$.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,a=(t?.y??0)+e.internals.positionAbsolute.y,{width:o,height:s}=t??LX(e);if(r)return{x:i+o/2,y:a+s/2};switch(t?.position??n){case $.Top:return{x:i+o/2,y:a};case $.Right:return{x:i+o,y:a+s/2};case $.Bottom:return{x:i+o/2,y:a+s};case $.Left:return{x:i,y:a+s/2}}}function vZ(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function yZ(e,t){return e?typeof e==`string`?e:`${t?`${t}__`:``}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join(`&`)}`:``}function bZ(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let a=new Set;return e.reduce((e,o)=>([o.markerStart||r,o.markerEnd||i].forEach(r=>{if(r&&typeof r==`object`){let i=yZ(r,t);a.has(i)||(e.push({id:i,color:r.color||n,...r}),a.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}var xZ=1e3,SZ=10,CZ={nodeOrigin:[0,0],nodeExtent:UY,elevateNodesOnSelect:!0,zIndexMode:`basic`,defaults:{}},wZ={...CZ,checkEquality:!0};function TZ(e,t){let n={...e};for(let e in t)t[e]!==void 0&&(n[e]=t[e]);return n}function EZ(e,t,n){let r=TZ(CZ,n);for(let n of e.values())if(n.parentId)jZ(n,e,t,r);else{let e=pX(rX(n,r.nodeOrigin),IX(n.extent)?n.extent:r.nodeExtent,LX(n));n.internals.positionAbsolute=e}}function DZ(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],r=[];for(let t of e.handles){let i={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};t.type===`source`?n.push(i):t.type===`target`&&r.push(i)}return{source:n,target:r}}function OZ(e){return e===`manual`}function kZ(e,t,n,r={}){let i=TZ(wZ,r),a={i:0},o=new Map(t),s=i?.elevateNodesOnSelect&&!OZ(i.zIndexMode)?xZ:0,c=e.length>0,l=!1;t.clear(),n.clear();for(let u of e){let e=o.get(u.id);if(i.checkEquality&&u===e?.internals.userNode)t.set(u.id,e);else{let n=pX(rX(u,i.nodeOrigin),IX(u.extent)?u.extent:i.nodeExtent,LX(u));e={...i.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:n,handleBounds:DZ(u,e),z:MZ(u,s,i.zIndexMode),userNode:u}},t.set(u.id,e)}(e.measured===void 0||e.measured.width===void 0||e.measured.height===void 0)&&!e.hidden&&(c=!1),u.parentId&&jZ(e,t,n,r,a),l||=u.selected??!1}return{nodesInitialized:c,hasSelectedNodes:l}}function AZ(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function jZ(e,t,n,r,i){let{elevateNodesOnSelect:a,nodeOrigin:o,nodeExtent:s,zIndexMode:c}=TZ(CZ,r),l=e.parentId,u=t.get(l);if(!u){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}AZ(e,n),i&&!u.parentId&&u.internals.rootParentIndex===void 0&&c===`auto`&&(u.internals.rootParentIndex=++i.i,u.internals.z=u.internals.z+i.i*SZ),i&&u.internals.rootParentIndex!==void 0&&(i.i=u.internals.rootParentIndex);let{x:d,y:f,z:p}=NZ(e,u,o,s,a&&!OZ(c)?xZ:0,c),{positionAbsolute:m}=e.internals,h=d!==m.x||f!==m.y;(h||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:d,y:f}:m,z:p}})}function MZ(e,t,n){let r=EX(e.zIndex)?e.zIndex:0;return OZ(n)?r:r+(e.selected?t:0)}function NZ(e,t,n,r,i,a){let{x:o,y:s}=t.internals.positionAbsolute,c=LX(e),l=rX(e,n),u=IX(e.extent)?pX(l,e.extent,c):l,d=pX({x:o+u.x,y:s+u.y},r,c);e.extent===`parent`&&(d=mX(d,c,t));let f=MZ(e,i,a),p=t.internals.z??0;return{x:d.x,y:d.y,z:p>=f?p+1:f}}function PZ(e,t,n,r=[0,0]){let i=[],a=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=SX(a.get(n.parentId)?.expandedRect??bX(e),n.rect);a.set(n.parentId,{expandedRect:r,parent:e})}return a.size>0&&a.forEach(({expandedRect:t,parent:a},o)=>{let s=a.internals.positionAbsolute,c=LX(a),l=a.origin??r,u=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,d=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,f=Math.max(c.width,Math.round(t.width)),p=Math.max(c.height,Math.round(t.height)),m=(f-c.width)*l[0],h=(p-c.height)*l[1];(u>0||d>0||m||h)&&(i.push({id:o,type:`position`,position:{x:a.position.x-u+m,y:a.position.y-d+h}}),n.get(o)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:`position`,position:{x:t.position.x+u,y:t.position.y+d}})})),(c.width<t.width||c.height<t.height||u||d)&&i.push({id:o,type:`dimensions`,setAttributes:!0,dimensions:{width:f+(u?l[0]*u-m:0),height:p+(d?l[1]*d-h:0)}})}),i}function FZ(e,t,n,r,i,a,o){let s=r?.querySelector(`.xyflow__viewport`),c=!1;if(!s)return{changes:[],updatedInternals:c};let l=[],u=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),c=!0;continue}let s=WX(r.nodeElement),u=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(u||!e.internals.handleBounds||r.force)){let p=r.nodeElement.getBoundingClientRect(),m=IX(e.extent)?e.extent:a,{positionAbsolute:h}=e.internals;if(e.parentId&&e.extent===`parent`){let n=t.get(e.parentId);n&&(h=mX(h,s,n))}else m&&(h=pX(h,m,s));let g={...e,measured:s,internals:{...e.internals,positionAbsolute:h,handleBounds:{source:XX(`source`,r.nodeElement,p,d,e.id),target:XX(`target`,r.nodeElement,p,d,e.id)}}};t.set(e.id,g),e.parentId&&jZ(g,t,n,{nodeOrigin:i,zIndexMode:o}),c=!0,u&&(l.push({id:e.id,type:`dimensions`,dimensions:s}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:bX(g,i)}))}}if(f.length>0){let e=PZ(f,t,n,i);l.push(...e)}return{changes:l,updatedInternals:c}}async function IZ({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:a}){if(!t||!e.x&&!e.y)return!1;let o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,a]],r);return!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2])}function LZ(e,t,n,r,i,a){let o=i,s=r.get(o)||new Map;r.set(o,s.set(n,t)),o=`${i}-${e}`;let c=r.get(o)||new Map;if(r.set(o,c.set(n,t)),a){o=`${i}-${e}-${a}`;let s=r.get(o)||new Map;r.set(o,s.set(n,t))}}function RZ(e,t,n){e.clear(),t.clear();for(let r of n){let{source:n,target:i,sourceHandle:a=null,targetHandle:o=null}=r,s={edgeId:r.id,source:n,target:i,sourceHandle:a,targetHandle:o},c=`${n}-${a}--${i}-${o}`;LZ(`source`,s,`${i}-${o}--${n}-${a}`,e,n,a),LZ(`target`,s,c,e,i,o),t.set(r.id,r)}}function zZ(e,t){if(!e.parentId)return!1;let n=t.get(e.parentId);return n?n.selected?!0:zZ(n,t):!1}function BZ(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function VZ(e,t,n,r){let i=new Map;for(let[a,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!zZ(o,e))&&(o.draggable||t&&o.draggable===void 0)){let t=e.get(a);t&&i.set(a,{id:a,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}function HZ({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,a]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:a.position,dragging:r})}if(!e)return[i[0],i];let a=n.get(e)?.internals.userNode;return[a?{...a,position:t.get(e)?.position||a.position,dragging:r}:i[0],i]}function UZ({dragItems:e,snapGrid:t,x:n,y:r}){let i=e.values().next().value;if(!i)return null;let a={x:n-i.distance.x,y:r-i.distance.y},o=OX(a,t);return{x:o.x-a.x,y:o.y-a.y}}function WZ({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let a={x:null,y:null},o=0,s=new Map,c=!1,l={x:0,y:0},u=null,d=!1,f=null,p=!1,m=!1,h=null;function g({noDragClassName:g,handleSelector:_,domNode:v,isSelectable:y,nodeId:b,nodeClickDistance:x=0}){f=uK(v);function S({x:e,y:n}){let{nodeLookup:i,nodeExtent:o,snapGrid:c,snapToGrid:l,nodeOrigin:u,onNodeDrag:d,onSelectionDrag:f,onError:p,updateNodePositions:g}=t();a={x:e,y:n};let _=!1,v=s.size>1,y=v&&o?vX(aX(s)):null,x=v&&l?UZ({dragItems:s,snapGrid:c,x:e,y:n}):null;for(let[t,r]of s){if(!i.has(t))continue;let a={x:e-r.distance.x,y:n-r.distance.y};l&&(a=x?{x:Math.round(a.x+x.x),y:Math.round(a.y+x.y)}:OX(a,c));let s=null;if(v&&o&&!r.extent&&y){let{positionAbsolute:e}=r.internals,t=e.x-y.x+o[0][0],n=e.x+r.measured.width-y.x2+o[1][0],i=e.y-y.y+o[0][1],a=e.y+r.measured.height-y.y2+o[1][1];s=[[t,i],[n,a]]}let{position:d,positionAbsolute:f}=uX({nodeId:t,nextPosition:a,nodeLookup:i,nodeExtent:s||o,nodeOrigin:u,onError:p});_=_||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=f}if(m||=_,_&&(g(s,!0),h&&(r||d||!b&&f))){let[e,t]=HZ({nodeId:b,dragItems:s,nodeLookup:i});r?.(h,s,e,t),d?.(h,e,t),b||f?.(h,t)}}async function C(){if(!u)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){c=!1,cancelAnimationFrame(o);return}let[s,d]=gX(l,u,r);(s!==0||d!==0)&&(a.x=(a.x??0)-s/e[2],a.y=(a.y??0)-d/e[2],await n({x:s,y:d})&&S(a)),o=requestAnimationFrame(C)}function w(r){let{nodeLookup:i,multiSelectionActive:o,nodesDraggable:c,transform:l,snapGrid:f,snapToGrid:p,selectNodesOnDrag:m,onNodeDragStart:h,onSelectionDragStart:g,unselectNodesAndEdges:_}=t();d=!0,(!m||!y)&&!o&&b&&(i.get(b)?.selected||_()),y&&m&&b&&e?.(b);let v=UX(r.sourceEvent,{transform:l,snapGrid:f,snapToGrid:p,containerBounds:u});if(a=v,s=VZ(i,c,v,b),s.size>0&&(n||h||!b&&g)){let[e,t]=HZ({nodeId:b,dragItems:s,nodeLookup:i});n?.(r.sourceEvent,s,e,t),h?.(r.sourceEvent,e,t),b||g?.(r.sourceEvent,t)}}let T=TK().clickDistance(x).on(`start`,e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:o,snapToGrid:s}=t();u=n?.getBoundingClientRect()||null,p=!1,m=!1,h=e.sourceEvent,r===0&&w(e),a=UX(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:s,containerBounds:u}),l=YX(e.sourceEvent,u)}).on(`drag`,e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:o,nodeDragThreshold:f,nodeLookup:m}=t(),g=UX(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:o,containerBounds:u});if(h=e.sourceEvent,(e.sourceEvent.type===`touchmove`&&e.sourceEvent.touches.length>1||b&&!m.has(b))&&(p=!0),!p){if(!c&&n&&d&&(c=!0,C()),!d){let t=YX(e.sourceEvent,u),n=t.x-l.x,r=t.y-l.y;Math.sqrt(n*n+r*r)>f&&w(e)}(a.x!==g.xSnapped||a.y!==g.ySnapped)&&s&&d&&(l=YX(e.sourceEvent,u),S(g))}}).on(`end`,e=>{if(!d||p){p&&s.size>0&&t().updateNodePositions(s,!1);return}if(c=!1,d=!1,cancelAnimationFrame(o),s.size>0){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:a,onSelectionDragStop:o}=t();if(m&&=(r(s,!1),!1),i||a||!b&&o){let[t,r]=HZ({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,s,t,r),a?.(e.sourceEvent,t,r),b||o?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!g||!BZ(t,`.${g}`,v))&&(!_||BZ(t,_,v))});f.call(T)}function _(){f?.on(`.drag`,null)}return{update:g,destroy:_}}function GZ(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(let e of t.values())wX(i,bX(e))>0&&r.push(e);return r}var KZ=250;function qZ(e,t,n,r){let i=[],a=1/0,o=GZ(e,n,t+KZ);for(let n of o){let o=[...n.internals.handleBounds?.source??[],...n.internals.handleBounds?.target??[]];for(let s of o){if(r.nodeId===s.nodeId&&r.type===s.type&&r.id===s.id)continue;let{x:o,y:c}=_Z(n,s,s.position,!0),l=Math.sqrt((o-e.x)**2+(c-e.y)**2);l>t||(l<a?(i=[{...s,x:o,y:c}],a=l):l===a&&i.push({...s,x:o,y:c}))}}if(!i.length)return null;if(i.length>1){let e=r.type===`source`?`target`:`source`;return i.find(t=>t.type===e)??i[0]}return i[0]}function JZ(e,t,n,r,i,a=!1){let o=r.get(e);if(!o)return null;let s=i===`strict`?o.internals.handleBounds?.[t]:[...o.internals.handleBounds?.source??[],...o.internals.handleBounds?.target??[]],c=(n?s?.find(e=>e.id===n):s?.[0])??null;return c&&a?{...c,..._Z(o,c,c.position,!0)}:c}function YZ(e,t){return e||(t?.classList.contains(`target`)?`target`:t?.classList.contains(`source`)?`source`:null)}function XZ(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var ZZ=()=>!0;function QZ(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:o,domNode:s,nodeLookup:c,lib:l,autoPanOnConnect:u,flowId:d,panBy:f,cancelConnection:p,onConnectStart:m,onConnect:h,onConnectEnd:g,isValidConnection:_=ZZ,onReconnectEnd:v,updateConnection:y,getTransform:b,getFromHandle:x,autoPanSpeed:S,dragThreshold:C=1,handleDomNode:w}){let T=GX(e.target),E=0,D,{x:O,y:k}=YX(e),A=YZ(a,w),j=s?.getBoundingClientRect(),M=!1;if(!j||!A)return;let N=JZ(i,A,r,c,t);if(!N)return;let P=YX(e,j),F=!1,I=null,L=!1,R=null;function z(){if(!u||!j)return;let[e,t]=gX(P,j,S);f({x:e,y:t}),E=requestAnimationFrame(z)}let B={...N,nodeId:i,type:A,position:N.position},V=c.get(i),H={inProgress:!0,isValid:null,from:_Z(V,B,$.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:V,to:P,toHandle:null,toPosition:QY[B.position],toNode:null,pointer:P};function ee(){M=!0,y(H),m?.(e,{nodeId:i,handleId:r,handleType:A})}C===0&&ee();function te(e){if(!M){let{x:t,y:n}=YX(e),r=t-O,i=n-k;if(!(r*r+i*i>C*C))return;ee()}if(!x()||!B){ne(e);return}let a=b();P=YX(e,j),D=qZ(kX(P,a,!1,[1,1]),n,c,B),F||=(z(),!0);let s=$Z(e,{handle:D,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:o?`target`:`source`,isValidConnection:_,doc:T,lib:l,flowId:d,nodeLookup:c});R=s.handleDomNode,I=s.connection,L=XZ(!!D,s.isValid);let u=c.get(i),f=u?_Z(u,B,$.Left,!0):H.from,p={...H,from:f,isValid:L,to:s.toHandle&&L?AX({x:s.toHandle.x,y:s.toHandle.y},a):P,toHandle:s.toHandle,toPosition:L&&s.toHandle?s.toHandle.position:QY[B.position],toNode:s.toHandle?c.get(s.toHandle.nodeId):null,pointer:P};y(p),H=p}function ne(e){if(!(`touches`in e&&e.touches.length>0)){if(M){(D||R)&&I&&L&&h?.(I);let{inProgress:t,...n}=H,r={...n,toPosition:H.toHandle?H.toPosition:null};g?.(e,r),a&&v?.(e,r)}p(),cancelAnimationFrame(E),F=!1,L=!1,I=null,R=null,T.removeEventListener(`mousemove`,te),T.removeEventListener(`mouseup`,ne),T.removeEventListener(`touchmove`,te),T.removeEventListener(`touchend`,ne)}}T.addEventListener(`mousemove`,te),T.addEventListener(`mouseup`,ne),T.addEventListener(`touchmove`,te),T.addEventListener(`touchend`,ne)}function $Z(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:i,fromType:a,doc:o,lib:s,flowId:c,isValidConnection:l=ZZ,nodeLookup:u}){let d=a===`target`,f=t?o.querySelector(`.${s}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=YX(e),h=o.elementFromPoint(p,m),g=h?.classList.contains(`${s}-flow__handle`)?h:f,_={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=YZ(void 0,g),t=g.getAttribute(`data-nodeid`),a=g.getAttribute(`data-handleid`),o=g.classList.contains(`connectable`),s=g.classList.contains(`connectableend`);if(!t||!e)return _;let c={source:d?t:r,sourceHandle:d?a:i,target:d?r:t,targetHandle:d?i:a};_.connection=c,_.isValid=o&&s&&(n===KY.Strict?d&&e===`source`||!d&&e===`target`:t!==r||a!==i)&&l(c),_.toHandle=JZ(t,e,a,u,n,!0)}return _}var eQ={onPointerDown:QZ,isValid:$Z};function tQ({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=uK(e);function a({translateExtent:e,width:a,height:o,zoomStep:s=1,pannable:c=!0,zoomable:l=!0,inversePan:u=!1}){let d=e=>{if(e.sourceEvent.type!==`wheel`||!t)return;let r=n(),i=e.sourceEvent.ctrlKey&&FX()?10:1,a=-e.sourceEvent.deltaY*(e.sourceEvent.deltaMode===1?.05:e.sourceEvent.deltaMode?1:.002)*s,o=r[2]*2**(a*i);t.scaleTo(o)},f=[0,0],p=VY().on(`start`,e=>{(e.sourceEvent.type===`mousedown`||e.sourceEvent.type===`touchstart`)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on(`zoom`,c?i=>{let s=n();if(i.sourceEvent.type!==`mousemove`&&i.sourceEvent.type!==`touchmove`||!t)return;let c=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],l=[c[0]-f[0],c[1]-f[1]];f=c;let d=r()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),p={x:s[0]-l[0]*d,y:s[1]-l[1]*d},m=[[0,0],[a,o]];t.setViewportConstrained({x:p.x,y:p.y,zoom:s[2]},m,e)}:null).on(`zoom.wheel`,l?d:null);i.call(p,{})}function o(){i.on(`zoom`,null)}return{update:a,destroy:o,pointer:fK}}var nQ=e=>({x:e.x,y:e.y,zoom:e.k}),rQ=({x:e,y:t,zoom:n})=>jY.translate(e,t).scale(n),iQ=(e,t)=>e.target.closest(`.${t}`),aQ=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),oQ=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,sQ=(e,t=0,n=oQ,r=()=>{})=>{let i=typeof t==`number`&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on(`end`,r):e},cQ=e=>{let t=e.ctrlKey&&FX()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function lQ({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:o,onPanZoomStart:s,onPanZoom:c,onPanZoomEnd:l}){return u=>{if(iQ(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let d=n.property(`__zoom`).k||1;if(u.ctrlKey&&o){let e=fK(u),t=d*2**cQ(u);r.scaleTo(n,t,e,u);return}let f=u.deltaMode===1?20:1,p=i===qY.Vertical?0:u.deltaX*f,m=i===qY.Horizontal?0:u.deltaY*f;!FX()&&u.shiftKey&&i!==qY.Vertical&&(p=u.deltaY*f,m=0),r.translateBy(n,-(p/d)*a,-(m/d)*a,{internal:!0});let h=nQ(n.property(`__zoom`));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c?.(u,h):(e.isPanScrolling=!0,s?.(u,h)),e.panScrollTimeout=setTimeout(()=>{l?.(u,h),e.isPanScrolling=!1},150)}}function uQ({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let a=r.type===`wheel`,o=!t&&a&&!r.ctrlKey,s=iQ(r,e);if(r.ctrlKey&&a&&s&&r.preventDefault(),o||s)return null;r.preventDefault(),n.call(this,r,i)}}function dQ({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=nQ(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type===`mousedown`&&t(!0),n&&n?.(r.sourceEvent,i)}}function fQ({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return a=>{e.usedRightMouseButton=!!(n&&aQ(t,e.mouseButton??0)),a.sourceEvent?.sync||r([a.transform.x,a.transform.y,a.transform.k]),i&&!a.sourceEvent?.internal&&i?.(a.sourceEvent,nQ(a.transform))}}function pQ({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:a}){return o=>{if(!o.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,a&&aQ(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&a(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),i)){let t=nQ(o.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(o.sourceEvent,t)},n?150:0)}}}function mQ({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:a,userSelectionActive:o,noWheelClassName:s,noPanClassName:c,lib:l,connectionInProgress:u}){return d=>{let f=e||t,p=n&&d.ctrlKey,m=d.type===`wheel`;if(d.button===1&&d.type===`mousedown`&&(iQ(d,`${l}-flow__node`)||iQ(d,`${l}-flow__edge`)))return!0;if(!r&&!f&&!i&&!a&&!n||o||u&&!m||iQ(d,s)&&m||iQ(d,c)&&(!m||i&&m&&!e)||!n&&d.ctrlKey&&m)return!1;if(!n&&d.type===`touchstart`&&d.touches?.length>1)return d.preventDefault(),!1;if(!f&&!i&&!p&&m||!r&&(d.type===`mousedown`||d.type===`touchstart`)||Array.isArray(r)&&!r.includes(d.button)&&d.type===`mousedown`)return!1;let h=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||m)&&h}}function hQ({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:o,onPanZoomEnd:s,onDraggingChange:c}){let l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),d=[[0,0],[u.width,u.height]];(typeof ResizeObserver<`u`?new ResizeObserver(e=>{let t=e[0];t&&(d=[[0,0],[t.contentRect.width,t.contentRect.height]])}):null)?.observe(e);let f=VY().extent(()=>d).scaleExtent([t,n]).translateExtent(r),p=uK(e).call(f);y({x:i.x,y:i.y,zoom:fX(i.zoom,t,n)},[[0,0],[u.width,u.height]],r);let m=p.on(`wheel.zoom`),h=p.on(`dblclick.zoom`);f.wheelDelta(cQ);async function g(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?Oq:Hq).transform(sQ(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function _({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:i,panOnDrag:u,panOnScrollMode:d,panOnScrollSpeed:g,preventScrolling:_,zoomOnPinch:y,zoomOnScroll:b,zoomOnDoubleClick:x,zoomActivationKeyPressed:S,lib:C,onTransformChange:w,connectionInProgress:T,paneClickDistance:E,selectionOnDrag:D}){r&&!l.isZoomingOrPanning&&v();let O=i&&!S&&!r;f.clickDistance(D?1/0:!EX(E)||E<0?0:E);let k=O?lQ({zoomPanValues:l,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:d,panOnScrollSpeed:g,zoomOnPinch:y,onPanZoomStart:o,onPanZoom:a,onPanZoomEnd:s}):uQ({noWheelClassName:e,preventScrolling:_,d3ZoomHandler:m});p.on(`wheel.zoom`,k,{passive:!1});let A=dQ({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:o});f.on(`start`,A);let j=fQ({zoomPanValues:l,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:a,onTransformChange:w});f.on(`zoom`,j);let M=pQ({zoomPanValues:l,panOnDrag:u,panOnScroll:i,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:c});f.on(`end`,M);let N=mQ({zoomActivationKeyPressed:S,panOnDrag:u,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:x,zoomOnPinch:y,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:T});f.filter(N),x?p.on(`dblclick.zoom`,h):p.on(`dblclick.zoom`,null)}function v(){f.on(`zoom`,null)}async function y(e,t,n){let r=rQ(e),i=f?.constrain()(r,t,n);return i&&await g(i),i}async function b(e,t){let n=rQ(e);return await g(n,t),n}function x(e){if(p){let t=rQ(e),n=p.property(`__zoom`);(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&f?.transform(p,t,null,{sync:!0})}}function S(){let e=p?MY(p.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}}async function C(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?Oq:Hq).scaleTo(sQ(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}async function w(e,t){return p?new Promise(n=>{f?.interpolate(t?.interpolate===`linear`?Oq:Hq).scaleBy(sQ(p,t?.duration,t?.ease,()=>n(!0)),e)}):!1}function T(e){f?.scaleExtent(e)}function E(e){f?.translateExtent(e)}function D(e){let t=!EX(e)||e<0?0:e;f?.clickDistance(t)}return{update:_,destroy:v,setViewport:b,setViewportConstrained:y,getViewport:S,scaleTo:C,scaleBy:w,setScaleExtent:T,setTranslateExtent:E,syncViewport:x,setClickDistance:D}}var gQ;(function(e){e.Line=`line`,e.Handle=`handle`})(gQ||={});function _Q({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:a}){let o=e-t,s=n-r,c=[o>0?1:o<0?-1:0,s>0?1:s<0?-1:0];return o&&i&&(c[0]*=-1),s&&a&&(c[1]*=-1),c}function vQ(e){return{isHorizontal:e.includes(`right`)||e.includes(`left`),isVertical:e.includes(`bottom`)||e.includes(`top`),affectsX:e.includes(`left`),affectsY:e.includes(`top`)}}function yQ(e,t){return Math.max(0,t-e)}function bQ(e,t){return Math.max(0,e-t)}function xQ(e,t,n){return Math.max(0,t-e,e-n)}function SQ(e,t){return e?!t:t}function CQ(e,t,n,r,i,a,o,s){let{affectsX:c,affectsY:l}=t,{isHorizontal:u,isVertical:d}=t,f=u&&d,{xSnapped:p,ySnapped:m}=n,{minWidth:h,maxWidth:g,minHeight:_,maxHeight:v}=r,{x:y,y:b,width:x,height:S,aspectRatio:C}=e,w=Math.floor(u?p-e.pointerX:0),T=Math.floor(d?m-e.pointerY:0),E=x+(c?-w:w),D=S+(l?-T:T),O=-a[0]*x,k=-a[1]*S,A=xQ(E,h,g),j=xQ(D,_,v);if(o){let e=0,t=0;c&&w<0?e=yQ(y+w+O,o[0][0]):!c&&w>0&&(e=bQ(y+E+O,o[1][0])),l&&T<0?t=yQ(b+T+k,o[0][1]):!l&&T>0&&(t=bQ(b+D+k,o[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(s){let e=0,t=0;c&&w>0?e=bQ(y+w,s[0][0]):!c&&w<0&&(e=yQ(y+E,s[1][0])),l&&T>0?t=bQ(b+T,s[0][1]):!l&&T<0&&(t=yQ(b+D,s[1][1])),A=Math.max(A,e),j=Math.max(j,t)}if(i){if(u){let e=xQ(E/C,_,v)*C;if(A=Math.max(A,e),o){let e=0;e=!c&&!l||c&&!l&&f?bQ(b+k+E/C,o[1][1])*C:yQ(b+k+(c?w:-w)/C,o[0][1])*C,A=Math.max(A,e)}if(s){let e=0;e=!c&&!l||c&&!l&&f?yQ(b+E/C,s[1][1])*C:bQ(b+(c?w:-w)/C,s[0][1])*C,A=Math.max(A,e)}}if(d){let e=xQ(D*C,h,g)/C;if(j=Math.max(j,e),o){let e=0;e=!c&&!l||l&&!c&&f?bQ(y+D*C+O,o[1][0])/C:yQ(y+(l?T:-T)*C+O,o[0][0])/C,j=Math.max(j,e)}if(s){let e=0;e=!c&&!l||l&&!c&&f?yQ(y+D*C,s[1][0])/C:bQ(y+(l?T:-T)*C,s[0][0])/C,j=Math.max(j,e)}}}T+=T<0?j:-j,w+=w<0?A:-A,i&&(f?E>D*C?T=(SQ(c,l)?-w:w)/C:w=(SQ(c,l)?-T:T)*C:u?(T=w/C,l=c):(w=T*C,c=l));let M=c?y+w:y,N=l?b+T:b;return{width:x+(c?-w:w),height:S+(l?-T:T),x:a[0]*w*(c?-1:1)+M,y:a[1]*T*(l?-1:1)+N}}var wQ={width:0,height:0,x:0,y:0},TQ={...wQ,pointerX:0,pointerY:0,aspectRatio:1};function EQ(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,a=e.measured.width??0,o=e.measured.height??0,s=n[0]*a,c=n[1]*o;return[[r-s,i-c],[r+a-s,i+o-c]]}function DQ({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let a=uK(e),o={controlDirection:vQ(`bottom-right`),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function s({controlPosition:e,boundaries:s,keepAspectRatio:c,resizeDirection:l,onResizeStart:u,onResize:d,onResizeEnd:f,shouldResize:p}){let m={...wQ},h={...TQ};o={boundaries:s,resizeDirection:l,keepAspectRatio:c,controlDirection:vQ(e)};let g,_=null,v=[],y,b,x,S=!1,C=TK().on(`start`,e=>{let{nodeLookup:r,transform:i,snapGrid:a,snapToGrid:o,nodeOrigin:s,paneDomNode:c}=n();if(g=r.get(t),!g)return;_=c?.getBoundingClientRect()??null;let{xSnapped:l,ySnapped:d}=UX(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:o,containerBounds:_});m={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},h={...m,pointerX:l,pointerY:d,aspectRatio:m.width/m.height},y=void 0,b=IX(g.extent)?g.extent:void 0,g.parentId&&(g.extent===`parent`||g.expandParent)&&(y=r.get(g.parentId)),y&&g.extent===`parent`&&(b=[[0,0],[y.measured.width,y.measured.height]]),v=[],x=void 0;for(let[e,n]of r)if(n.parentId===t&&(v.push({id:e,position:{...n.position},extent:n.extent}),n.extent===`parent`||n.expandParent)){let e=EQ(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}u?.(e,{...m})}).on(`drag`,e=>{let{transform:t,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n(),c=UX(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:a,containerBounds:_}),l=[];if(!g)return;let{x:u,y:f,width:C,height:w}=m,T={},E=g.origin??s,{width:D,height:O,x:k,y:A}=CQ(h,o.controlDirection,c,o.boundaries,o.keepAspectRatio,E,b,x),j=D!==C,M=O!==w,N=k!==u&&j,P=A!==f&&M;if(!N&&!P&&!j&&!M)return;if((N||P||E[0]===1||E[1]===1)&&(T.x=N?k:m.x,T.y=P?A:m.y,m.x=T.x,m.y=T.y,v.length>0)){let e=k-u,t=A-f;for(let n of v)n.position={x:n.position.x-e+E[0]*(D-C),y:n.position.y-t+E[1]*(O-w)},l.push(n)}if((j||M)&&(T.width=j&&(!o.resizeDirection||o.resizeDirection===`horizontal`)?D:m.width,T.height=M&&(!o.resizeDirection||o.resizeDirection===`vertical`)?O:m.height,m.width=T.width,m.height=T.height),y&&g.expandParent){let e=E[0]*(T.width??0);T.x&&T.x<e&&(m.x=e,h.x-=T.x-e);let t=E[1]*(T.height??0);T.y&&T.y<t&&(m.y=t,h.y-=T.y-t)}let F=_Q({width:m.width,prevWidth:C,height:m.height,prevHeight:w,affectsX:o.controlDirection.affectsX,affectsY:o.controlDirection.affectsY}),I={...m,direction:F};p?.(e,I)!==!1&&(S=!0,d?.(e,I),r(T,l))}).on(`end`,e=>{S&&=(f?.(e,{...m}),i?.({...m}),!1)});a.call(C)}function c(){a.on(`.drag`,null)}return{update:s,destroy:c}}var OQ=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{n.clear()}},o=t=e(r,i,a);return a},kQ=e=>e?OQ(e):OQ,{useDebugValue:AQ}=s.default,{useSyncExternalStoreWithSelector:jQ}=Zd.default,MQ=e=>e;function NQ(e,t=MQ,n){let r=jQ(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return AQ(r),r}var PQ=(e,t)=>{let n=kQ(e),r=(e,r=t)=>NQ(n,e,r);return Object.assign(r,n),r},FQ=(e,t)=>e?PQ(e,t):PQ;function IQ(e,t){if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,r]of e)if(!Object.is(r,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var LQ=(0,s.createContext)(null),RQ=LQ.Provider,zQ=HY.error001(`react`);function BQ(e,t){let n=(0,s.useContext)(LQ);if(n===null)throw Error(zQ);return NQ(n,e,t)}function VQ(){let e=(0,s.useContext)(LQ);if(e===null)throw Error(zQ);return(0,s.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var HQ={display:`none`},UQ={position:`absolute`,width:1,height:1,margin:-1,border:0,padding:0,overflow:`hidden`,clip:`rect(0px, 0px, 0px, 0px)`,clipPath:`inset(100%)`},WQ=`react-flow__node-desc`,GQ=`react-flow__edge-desc`,KQ=`react-flow__aria-live`,qQ=e=>e.ariaLiveMessage,JQ=e=>e.ariaLabelConfig;function YQ({rfId:e}){let t=BQ(qQ);return(0,G.jsx)(`div`,{id:`${KQ}-${e}`,"aria-live":`assertive`,"aria-atomic":`true`,style:UQ,children:t})}function XQ({rfId:e,disableKeyboardA11y:t}){let n=BQ(JQ);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{id:`${WQ}-${e}`,style:HQ,children:t?n[`node.a11yDescription.default`]:n[`node.a11yDescription.keyboardDisabled`]}),(0,G.jsx)(`div`,{id:`${GQ}-${e}`,style:HQ,children:n[`edge.a11yDescription.default`]}),!t&&(0,G.jsx)(YQ,{rfId:e})]})}var ZQ=(0,s.forwardRef)(({position:e=`top-left`,children:t,className:n,style:r,...i},a)=>{let o=`${e}`.split(`-`);return(0,G.jsx)(`div`,{className:aW([`react-flow__panel`,n,...o]),style:r,ref:a,...i,children:t})});ZQ.displayName=`Panel`;var QQ=`https://reactflow.dev?utm_source=attribution`;function $Q({proOptions:e,position:t=`bottom-right`}){return e?.hideAttribution?null:(0,G.jsx)(ZQ,{position:t,className:`react-flow__attribution`,"data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${QQ}`,children:(0,G.jsx)(`a`,{href:QQ,target:`_blank`,rel:`noopener noreferrer`,"aria-label":`React Flow attribution`,children:`React Flow`})})}var e$=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},t$=e=>e.id;function n$(e,t){return IQ(e.selectedNodes.map(t$),t.selectedNodes.map(t$))&&IQ(e.selectedEdges.map(t$),t.selectedEdges.map(t$))}function r$({onSelectionChange:e}){let t=VQ(),{selectedNodes:n,selectedEdges:r}=BQ(e$,n$);return(0,s.useEffect)(()=>{let i={nodes:n,edges:r};e?.(i),t.getState().onSelectionChangeHandlers.forEach(e=>e(i))},[n,r,e]),null}var i$=e=>!!e.onSelectionChangeHandlers;function a$({onSelectionChange:e}){let t=BQ(i$);return e||t?(0,G.jsx)(r$,{onSelectionChange:e}):null}var o$=[0,0],s$={x:0,y:0,zoom:1},c$=[...`nodes.edges.defaultNodes.defaultEdges.onConnect.onConnectStart.onConnectEnd.onClickConnectStart.onClickConnectEnd.nodesDraggable.autoPanOnNodeFocus.nodesConnectable.nodesFocusable.edgesFocusable.edgesReconnectable.elevateNodesOnSelect.elevateEdgesOnSelect.minZoom.maxZoom.nodeExtent.onNodesChange.onEdgesChange.elementsSelectable.connectionMode.snapGrid.snapToGrid.translateExtent.connectOnClick.defaultEdgeOptions.fitView.fitViewOptions.onNodesDelete.onEdgesDelete.onDelete.onNodeDrag.onNodeDragStart.onNodeDragStop.onSelectionDrag.onSelectionDragStart.onSelectionDragStop.onMoveStart.onMove.onMoveEnd.noPanClassName.nodeOrigin.autoPanOnConnect.autoPanOnNodeDrag.onError.connectionRadius.isValidConnection.selectNodesOnDrag.nodeDragThreshold.connectionDragThreshold.onBeforeDelete.debug.autoPanSpeed.ariaLabelConfig.zIndexMode`.split(`.`),`rfId`],l$=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),u$={translateExtent:UY,nodeOrigin:o$,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:`nopan`,rfId:`1`};function d$(e){let{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:o,reset:c,setDefaultNodesAndEdges:l}=BQ(l$,IQ),u=VQ();(0,s.useEffect)(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=u$,c()}),[]);let d=(0,s.useRef)(u$);return(0,s.useEffect)(()=>{for(let s of c$){let c=e[s];c!==d.current[s]&&e[s]!==void 0&&(s===`nodes`?t(c):s===`edges`?n(c):s===`minZoom`?r(c):s===`maxZoom`?i(c):s===`translateExtent`?a(c):s===`nodeExtent`?o(c):s===`ariaLabelConfig`?u.setState({ariaLabelConfig:HX(c)}):s===`fitView`?u.setState({fitViewQueued:c}):s===`fitViewOptions`?u.setState({fitViewOptions:c}):u.setState({[s]:c}))}d.current=e},c$.map(t=>e[t])),null}function f$(){return typeof window>`u`||!window.matchMedia?null:window.matchMedia(`(prefers-color-scheme: dark)`)}function p$(e){let[t,n]=(0,s.useState)(e===`system`?null:e);return(0,s.useEffect)(()=>{if(e!==`system`){n(e);return}let t=f$(),r=()=>n(t?.matches?`dark`:`light`);return r(),t?.addEventListener(`change`,r),()=>{t?.removeEventListener(`change`,r)}},[e]),t===null?f$()?.matches?`dark`:`light`:t}var m$=typeof document<`u`?document:null;function h$(e=null,t={target:m$,actInsideInputWithModifier:!0}){let[n,r]=(0,s.useState)(!1),i=(0,s.useRef)(!1),a=(0,s.useRef)(new Set([])),[o,c]=(0,s.useMemo)(()=>{if(e!==null){let t=(Array.isArray(e)?e:[e]).filter(e=>typeof e==`string`).map(e=>e.replace(`+`,`
|
|
263
|
+
`).replace(`
|
|
264
|
+
|
|
265
|
+
`,`
|
|
266
|
+
+`).split(`
|
|
267
|
+
`));return[t,t.reduce((e,t)=>e.concat(...t),[])]}return[[],[]]},[e]);return(0,s.useEffect)(()=>{let n=t?.target??m$,s=t?.actInsideInputWithModifier??!0;if(e!==null){let e=e=>{if(i.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!i.current||i.current&&!s)&&qX(e))return!1;let n=_$(e.code,c);if(a.current.add(e[n]),g$(o,a.current,!1)){let n=e.composedPath?.()?.[0]||e.target,a=n?.nodeName===`BUTTON`||n?.nodeName===`A`;t.preventDefault!==!1&&(i.current||!a)&&e.preventDefault(),r(!0)}},l=e=>{let t=_$(e.code,c);g$(o,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[t]),e.key===`Meta`&&a.current.clear(),i.current=!1},u=()=>{a.current.clear(),r(!1)};return n?.addEventListener(`keydown`,e),n?.addEventListener(`keyup`,l),window.addEventListener(`blur`,u),window.addEventListener(`contextmenu`,u),()=>{n?.removeEventListener(`keydown`,e),n?.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,u),window.removeEventListener(`contextmenu`,u)}}},[e,r]),n}function g$(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function _$(e,t){return t.includes(e)?`code`:`key`}var v$=()=>{let e=VQ();return(0,s.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{let{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{let{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[r,i,a],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??i,zoom:t.zoom??a},n),!0):!1},getViewport:()=>{let[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{let{width:r,height:i,minZoom:a,maxZoom:o,panZoom:s}=e.getState(),c=PX(t,r,i,a,o,n?.padding??.1);return s?(await s.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{let{transform:r,snapGrid:i,snapToGrid:a,domNode:o}=e.getState();if(!o)return t;let{x:s,y:c}=o.getBoundingClientRect(),l={x:t.x-s,y:t.y-c},u=n.snapGrid??i;return kX(l,r,n.snapToGrid??a,u)},flowToScreenPosition:t=>{let{transform:n,domNode:r}=e.getState();if(!r)return t;let{x:i,y:a}=r.getBoundingClientRect(),o=AX(t,n);return{x:o.x+i,y:o.y+a}}}),[])};function y$(e,t){let n=[],r=new Map,i=[];for(let t of e)if(t.type===`add`){i.push(t);continue}else if(t.type===`remove`||t.type===`replace`)r.set(t.id,[t]);else{let e=r.get(t.id);e?e.push(t):r.set(t.id,[t])}for(let e of t){let t=r.get(e.id);if(!t){n.push(e);continue}if(t[0].type===`remove`)continue;if(t[0].type===`replace`){n.push({...t[0].item});continue}let i={...e};for(let e of t)b$(e,i);n.push(i)}return i.length&&i.forEach(e=>{e.index===void 0?n.push({...e.item}):n.splice(e.index,0,{...e.item})}),n}function b$(e,t){switch(e.type){case`select`:t.selected=e.selected;break;case`position`:e.position!==void 0&&(t.position=e.position),e.dragging!==void 0&&(t.dragging=e.dragging);break;case`dimensions`:e.dimensions!==void 0&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes===`width`)&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes===`height`)&&(t.height=e.dimensions.height))),typeof e.resizing==`boolean`&&(t.resizing=e.resizing)}}function x$(e,t){return y$(e,t)}function S$(e,t){return y$(e,t)}function C$(e,t){return{id:e,type:`select`,selected:t}}function w$(e,t=new Set,n=!1){let r=[];for(let[i,a]of e){let e=t.has(i);!(a.selected===void 0&&!e)&&a.selected!==e&&(n&&(a.selected=e),r.push(C$(a.id,e)))}return r}function T$({items:e=[],lookup:t}){let n=[],r=new Map(e.map(e=>[e.id,e]));for(let[r,i]of e.entries()){let e=t.get(i.id),a=e?.internals?.userNode??e;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:`replace`}),a===void 0&&n.push({item:i,type:`add`,index:r})}for(let[e]of t)r.get(e)===void 0&&n.push({id:e,type:`remove`});return n}function E$(e){return{id:e.id,type:`remove`}}var D$=DX(`React Flow`,`https://reactflow.dev/`);function O$(e,t,n={}){return oZ(e,t,{...n,onError:n.onError??D$})}var k$=e=>tX(e),A$=e=>eX(e);function j$(e){return(0,s.forwardRef)(e)}var M$=typeof window<`u`?s.useLayoutEffect:s.useEffect;function N$(e){let[t,n]=(0,s.useState)(BigInt(0)),[r]=(0,s.useState)(()=>P$(()=>n(e=>e+BigInt(1))));return M$(()=>{let t=r.get();t.length&&(e(t),r.reset())},[t]),r}function P$(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var F$=(0,s.createContext)(null);function I$({children:e}){let t=VQ(),n=N$((0,s.useCallback)(e=>{let{nodes:n=[],setNodes:r,hasDefaultNodes:i,onNodesChange:a,nodeLookup:o,fitViewQueued:s,onNodesChangeMiddlewareMap:c}=t.getState(),l=n;for(let t of e)l=typeof t==`function`?t(l):t;let u=T$({items:l,lookup:o});for(let e of c.values())u=e(u);i&&r(l),u.length>0?a?.(u):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:r}=t.getState();e&&r(n)})},[])),r=N$((0,s.useCallback)(e=>{let{edges:n=[],setEdges:r,hasDefaultEdges:i,onEdgesChange:a,edgeLookup:o}=t.getState(),s=n;for(let t of e)s=typeof t==`function`?t(s):t;i?r(s):a&&a(T$({items:s,lookup:o}))},[])),i=(0,s.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,G.jsx)(F$.Provider,{value:i,children:e})}function L$(){let e=(0,s.useContext)(F$);if(!e)throw Error(`useBatchContext must be used within a BatchProvider`);return e}var R$=e=>!!e.panZoom;function z$(){let e=v$(),t=VQ(),n=L$(),r=BQ(R$),i=(0,s.useMemo)(()=>{let e=e=>t.getState().nodeLookup.get(e),r=e=>{n.nodeQueue.push(e)},i=e=>{n.edgeQueue.push(e)},a=e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState(),i=k$(e)?e:n.get(e.id),a=i.parentId?zX(i.position,i.measured,i.parentId,n,r):i.position;return bX({...i,position:a,width:i.measured?.width??i.width,height:i.measured?.height??i.height})},o=(e,t,n={replace:!1})=>{r(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&k$(e)?e:{...r,...e}}return r}))},s=(e,t,n={replace:!1})=>{i(r=>r.map(r=>{if(r.id===e){let e=typeof t==`function`?t(r):t;return n.replace&&A$(e)?e:{...r,...e}}return r}))};return{getNodes:()=>t.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=t.getState();return e.map(e=>({...e}))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:r,setEdges:i,addNodes:e=>{let t=Array.isArray(e)?e:[e];n.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];n.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:n=[],transform:r}=t.getState(),[i,a,o]=r;return{nodes:e.map(e=>({...e})),edges:n.map(e=>({...e})),viewport:{x:i,y:a,zoom:o}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{let{nodes:r,edges:i,onNodesDelete:a,onEdgesDelete:o,triggerNodeChanges:s,triggerEdgeChanges:c,onDelete:l,onBeforeDelete:u}=t.getState(),{nodes:d,edges:f}=await dX({nodesToRemove:e,edgesToRemove:n,nodes:r,edges:i,onBeforeDelete:u}),p=f.length>0,m=d.length>0;if(p){let e=f.map(E$);o?.(f),c(e)}if(m){let e=d.map(E$);a?.(d),s(e)}return(m||p)&&l?.({nodes:d,edges:f}),{deletedNodes:d,deletedEdges:f}},getIntersectingNodes:(e,n=!0,r)=>{let i=TX(e),o=i?e:a(e),s=r!==void 0;return o?(r||t.getState().nodes).filter(r=>{let a=t.getState().nodeLookup.get(r.id);if(a&&!i&&(r.id===e.id||!a.internals.positionAbsolute))return!1;let c=bX(s?r:a),l=wX(c,o);return n&&l>0||l>=c.width*c.height||l>=o.width*o.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let r=TX(e)?e:a(e);if(!r)return!1;let i=wX(r,t);return n&&i>0||i>=t.width*t.height||i>=r.width*r.height},updateNode:o,updateNodeData:(e,t,n={replace:!1})=>{o(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let r=typeof t==`function`?t(e):t;return n.replace?{...e,data:r}:{...e,data:{...e.data,...r}}},n)},getNodesBounds:e=>{let{nodeLookup:n,nodeOrigin:r}=t.getState();return iX(e,{nodeLookup:n,nodeOrigin:r})},getHandleConnections:({type:e,id:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${e}${n?`-${n}`:``}`)?.values()??[]),getNodeConnections:({type:e,handleId:n,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${e?n?`-${e}-${n}`:`-${e}`:``}`)?.values()??[]),fitView:async e=>{let r=t.getState().fitViewResolver??VX();return t.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:r}),n.nodeQueue.push(e=>[...e]),r.promise}}},[]);return(0,s.useMemo)(()=>({...i,...e,viewportInitialized:r}),[r])}var B$=e=>e.selected,V$=typeof window<`u`?window:void 0;function H$({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=VQ(),{deleteElements:r}=z$(),i=h$(e,{actInsideInputWithModifier:!1}),a=h$(t,{target:V$});(0,s.useEffect)(()=>{if(i){let{edges:e,nodes:t}=n.getState();r({nodes:t.filter(B$),edges:e.filter(B$)}),n.setState({nodesSelectionActive:!1})}},[i]),(0,s.useEffect)(()=>{n.setState({multiSelectionActive:a})},[a])}function U$(e){let t=VQ();(0,s.useEffect)(()=>{let n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;let n=WX(e.current);(n.height===0||n.width===0)&&t.getState().onError?.(`004`,HY.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener(`resize`,n);let t=new ResizeObserver(()=>n());return t.observe(e.current),()=>{window.removeEventListener(`resize`,n),t&&e.current&&t.unobserve(e.current)}}},[])}var W$={position:`absolute`,width:`100%`,height:`100%`,top:0,left:0},G$=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function K$({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:i=.5,panOnScrollMode:a=qY.Free,zoomOnDoubleClick:o=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:p,preventScrolling:m=!0,children:h,noWheelClassName:g,noPanClassName:_,onViewportChange:v,isControlledViewport:y,paneClickDistance:b,selectionOnDrag:x}){let S=VQ(),C=(0,s.useRef)(null),{userSelectionActive:w,lib:T,connectionInProgress:E}=BQ(G$,IQ),D=h$(p),O=(0,s.useRef)();U$(C);let k=(0,s.useCallback)(e=>{v?.({x:e[0],y:e[1],zoom:e[2]}),y||S.setState({transform:e})},[v,y]);return(0,s.useEffect)(()=>{if(C.current){O.current=hQ({domNode:C.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,onDraggingChange:e=>S.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:r}=S.getState();r?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:r}=S.getState();r?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:r}=S.getState();r?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=O.current.getViewport();return S.setState({panZoom:O.current,transform:[e,t,n],domNode:C.current.closest(`.react-flow`)}),()=>{O.current?.destroy()}}},[]),(0,s.useEffect)(()=>{O.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:i,panOnScrollMode:a,zoomOnDoubleClick:o,panOnDrag:c,zoomActivationKeyPressed:D,preventScrolling:m,noPanClassName:_,userSelectionActive:w,noWheelClassName:g,lib:T,onTransformChange:k,connectionInProgress:E,selectionOnDrag:x,paneClickDistance:b})},[e,t,n,r,i,a,o,c,D,m,_,w,g,T,k,E,x,b]),(0,G.jsx)(`div`,{className:`react-flow__renderer`,ref:C,style:W$,children:h})}var q$=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function J$(){let{userSelectionActive:e,userSelectionRect:t}=BQ(q$,IQ);return e&&t?(0,G.jsx)(`div`,{className:`react-flow__selection react-flow__container`,style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var Y$=(e,t)=>n=>{n.target===t.current&&e?.(n)},X$=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Z$({isSelecting:e,selectionKeyPressed:t,selectionMode:n=JY.Full,panOnDrag:r,autoPanOnSelection:i,paneClickDistance:a,selectionOnDrag:o,onSelectionStart:c,onSelectionEnd:l,onPaneClick:u,onPaneContextMenu:d,onPaneScroll:f,onPaneMouseEnter:p,onPaneMouseMove:m,onPaneMouseLeave:h,children:g}){let _=(0,s.useRef)(0),v=VQ(),{userSelectionActive:y,elementsSelectable:b,dragging:x,panBy:S,autoPanSpeed:C}=BQ(X$,IQ),w=b&&(e||y),T=(0,s.useRef)(null),E=(0,s.useRef)(),D=(0,s.useRef)(new Set),O=(0,s.useRef)(new Set),k=(0,s.useRef)(!1),A=(0,s.useRef)(!1),j=(0,s.useRef)({x:0,y:0}),M=(0,s.useRef)(!1),N=e=>{if(A.current||k.current||v.getState().connection.inProgress){A.current=!1,k.current=!1;return}u?.(e),v.getState().resetSelectedElements(),v.setState({nodesSelectionActive:!1})},P=e=>{if(Array.isArray(r)&&r?.includes(2)){e.preventDefault();return}d?.(e)},F=f?e=>f(e):void 0,I=e=>{A.current&&=(e.stopPropagation(),!1)},L=n=>{let{domNode:r,transform:i}=v.getState();if(E.current=r?.getBoundingClientRect(),!E.current)return;let a=n.target===T.current;if(!a&&n.target.closest(`.nokey`)||!e||!(o&&a||t)||n.button!==0||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),A.current=!1;let{x:s,y:c}=YX(n.nativeEvent,E.current),l=kX({x:s,y:c},i);v.setState({userSelectionRect:{width:0,height:0,startX:l.x,startY:l.y,x:s,y:c}}),a||(n.stopPropagation(),n.preventDefault())};function R(e,t){let{userSelectionRect:r}=v.getState();if(!r)return;let{transform:i,nodeLookup:a,edgeLookup:o,connectionLookup:s,triggerNodeChanges:c,triggerEdgeChanges:l,defaultEdgeOptions:u}=v.getState(),d={x:r.startX,y:r.startY},{x:f,y:p}=AX(d,i),m={startX:d.x,startY:d.y,x:e<f?e:f,y:t<p?t:p,width:Math.abs(e-f),height:Math.abs(t-p)},h=D.current,g=O.current;D.current=new Set(oX(a,m,i,n===JY.Partial,!0).map(e=>e.id)),O.current=new Set;let _=u?.selectable??!0;for(let e of D.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=o.get(e);t&&(t.selectable??_)&&O.current.add(e)}}BX(h,D.current)||c(w$(a,D.current,!0)),BX(g,O.current)||l(w$(o,O.current)),v.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}function z(){if(!i||!E.current)return;let[e,t]=gX(j.current,E.current,C);S({x:e,y:t}).then(e=>{if(!A.current||!e){_.current=requestAnimationFrame(z);return}let{x:t,y:n}=j.current;R(t,n),_.current=requestAnimationFrame(z)})}let B=()=>{cancelAnimationFrame(_.current),_.current=0,M.current=!1};(0,s.useEffect)(()=>()=>B(),[]);let V=e=>{let{userSelectionRect:n,transform:r,resetSelectedElements:i}=v.getState();if(!E.current||!n)return;let{x:o,y:s}=YX(e.nativeEvent,E.current);j.current={x:o,y:s};let l=AX({x:n.startX,y:n.startY},r);if(!A.current){let n=t?0:a;if(Math.hypot(o-l.x,s-l.y)<=n)return;i(),c?.(e)}A.current=!0,M.current||=(z(),!0),R(o,s)},H=e=>{if(!w){e.target===T.current&&v.getState().connection.inProgress&&(k.current=!0);return}e.button===0&&(e.target?.releasePointerCapture?.(e.pointerId),!y&&e.target===T.current&&v.getState().userSelectionRect&&N?.(e),v.setState({userSelectionActive:!1,userSelectionRect:null}),A.current&&(l?.(e),v.setState({nodesSelectionActive:D.current.size>0})),B())},ee=e=>{e.target?.releasePointerCapture?.(e.pointerId),B()},te=r===!0||Array.isArray(r)&&r.includes(0);return(0,G.jsxs)(`div`,{className:aW([`react-flow__pane`,{draggable:te,dragging:x,selection:e}]),onClick:w?void 0:Y$(N,T),onContextMenu:Y$(P,T),onWheel:Y$(F,T),onPointerEnter:w?void 0:p,onPointerMove:w?V:m,onPointerUp:H,onPointerCancel:w?ee:void 0,onPointerDownCapture:w?L:void 0,onClickCapture:w?I:void 0,onPointerLeave:h,ref:T,style:W$,children:[g,(0,G.jsx)(J$,{})]})}function Q$({id:e,store:t,unselect:n=!1,nodeRef:r}){let{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:o,nodeLookup:s,onError:c}=t.getState(),l=s.get(e);if(!l){c?.(`012`,HY.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&o)&&(a({nodes:[l],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):i([e])}function $$({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:i,isSelectable:a,nodeClickDistance:o}){let c=VQ(),[l,u]=(0,s.useState)(!1),d=(0,s.useRef)();return(0,s.useEffect)(()=>{if(!t)return d.current=WZ({getStoreItems:()=>c.getState(),onNodeMouseDown:t=>{Q$({id:t,store:c,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}}),()=>{d.current?.destroy(),d.current=void 0}},[t,c,e]),(0,s.useEffect)(()=>{t||!e.current||!d.current||d.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i,nodeClickDistance:o})},[n,r,t,a,e,i,o]),l}var e1=e=>t=>t.selected&&(t.draggable||e&&t.draggable===void 0);function t1(){let e=VQ();return(0,s.useCallback)(t=>{let{nodeExtent:n,snapToGrid:r,snapGrid:i,nodesDraggable:a,onError:o,updateNodePositions:s,nodeLookup:c,nodeOrigin:l}=e.getState(),u=new Map,d=e1(a),f=r?i[0]:5,p=r?i[1]:5,m=t.direction.x*f*t.factor,h=t.direction.y*p*t.factor;for(let[,e]of c){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+m,y:e.internals.positionAbsolute.y+h};r&&(t=OX(t,i));let{position:a,positionAbsolute:s}=uX({nodeId:e.id,nextPosition:t,nodeLookup:c,nodeExtent:n,nodeOrigin:l,onError:o});e.position=a,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)},[])}var n1=(0,s.createContext)(null),r1=n1.Provider;n1.Consumer;var i1=()=>(0,s.useContext)(n1),a1=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),o1=(0,s.createContext)(null);function s1({children:e}){let t=BQ(a1,IQ);return(0,G.jsx)(o1.Provider,{value:t,children:e})}function c1(){let e=(0,s.useContext)(o1);if(!e)throw Error(`useHandleConfig must be used within a HandleConfigProvider`);return e}var l1={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},u1=(e,t,n)=>r=>{let{connectionClickStartHandle:i,connectionMode:a,connection:o}=r,{fromHandle:s,toHandle:c,isValid:l}=o;if(!s&&!i)return l1;let u=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:s?.nodeId===e&&s?.id===t&&s?.type===n,connectingTo:u,clickConnecting:i?.nodeId===e&&i?.id===t&&i?.type===n,isPossibleEndHandle:a===KY.Strict?s?.type!==n:e!==s?.nodeId||t!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!i,valid:u&&l}};function d1({type:e=`source`,position:t=$.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:i=!0,isConnectableEnd:a=!0,id:o,onConnect:s,children:c,className:l,onMouseDown:u,onTouchStart:d,...f},p){let m=o||null,h=e===`target`,g=VQ(),_=i1(),{connectOnClick:v,noPanClassName:y,rfId:b}=c1(),{connectingFrom:x,connectingTo:S,clickConnecting:C,isPossibleEndHandle:w,connectionInProcess:T,clickConnectionInProcess:E,valid:D}=BQ(u1(_,m,e),IQ);_||g.getState().onError?.(`010`,HY.error010());let O=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:r}=g.getState(),i={...t,...e};if(r){let{edges:e,setEdges:t,onError:n}=g.getState();t(O$(i,e,{onError:n}))}n?.(i),s?.(i)},k=e=>{if(!_)return;let t=JX(e.nativeEvent);if(i&&(t&&e.button===0||!t)){let t=g.getState();eQ.onPointerDown(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:h,handleId:m,nodeId:_,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:O,isValidConnection:n||((...e)=>g.getState().isValidConnection?.(...e)??!0),getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):d?.(e)};return(0,G.jsx)(`div`,{"data-handleid":m,"data-nodeid":_,"data-handlepos":t,"data-id":`${b}-${_}-${m}-${e}`,className:aW([`react-flow__handle`,`react-flow__handle-${t}`,`nodrag`,y,l,{source:!h,target:h,connectable:r,connectablestart:i,connectableend:a,clickconnecting:C,connectingfrom:x,connectingto:S,valid:D,connectionindicator:r&&(!T||w)&&(T||E?a:i)}]),onMouseDown:k,onTouchStart:k,onClick:v?t=>{let{onClickConnectStart:r,onClickConnectEnd:a,connectionClickStartHandle:o,connectionMode:s,isValidConnection:c,lib:l,rfId:u,nodeLookup:d,connection:f}=g.getState();if(!_||!o&&!i)return;if(!o){r?.(t.nativeEvent,{nodeId:_,handleId:m,handleType:e}),g.setState({connectionClickStartHandle:{nodeId:_,type:e,id:m}});return}let p=GX(t.target),h=n||c,{connection:v,isValid:y}=eQ.isValid(t.nativeEvent,{handle:{nodeId:_,id:m,type:e},connectionMode:s,fromNodeId:o.nodeId,fromHandleId:o.id||null,fromType:o.type,isValidConnection:h,flowId:u,doc:p,lib:l,nodeLookup:d});y&&v&&O(v);let b=structuredClone(f);delete b.inProgress,b.toPosition=b.toHandle?b.toHandle.position:null,a?.(t,b),g.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:c})}var f1=(0,s.memo)(j$(d1));function p1({data:e,isConnectable:t,sourcePosition:n=$.Bottom}){return(0,G.jsxs)(G.Fragment,{children:[e?.label,(0,G.jsx)(f1,{type:`source`,position:n,isConnectable:t})]})}function m1({data:e,isConnectable:t,targetPosition:n=$.Top,sourcePosition:r=$.Bottom}){return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(f1,{type:`target`,position:n,isConnectable:t}),e?.label,(0,G.jsx)(f1,{type:`source`,position:r,isConnectable:t})]})}function h1(){return null}function g1({data:e,isConnectable:t,targetPosition:n=$.Top}){return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(f1,{type:`target`,position:n,isConnectable:t}),e?.label]})}var _1={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},v1={input:p1,default:m1,output:g1,group:h1};function y1(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var b1=e=>{let{width:t,height:n,x:r,y:i}=aX(e.nodeLookup,{filter:e=>!!e.selected});return{width:EX(t)?t:null,height:EX(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${i}px)`}};function x1({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let r=VQ(),{width:i,height:a,transformString:o,userSelectionActive:c}=BQ(b1,IQ),l=t1(),u=(0,s.useRef)(null);(0,s.useEffect)(()=>{n||u.current?.focus({preventScroll:!0})},[n]);let d=!c&&i!==null&&a!==null;if($$({nodeRef:u,disabled:!d}),!d)return null;let f=e?t=>{e(t,r.getState().nodes.filter(e=>e.selected))}:void 0;return(0,G.jsx)(`div`,{className:aW([`react-flow__nodesselection`,`react-flow__container`,t]),style:{transform:o},children:(0,G.jsx)(`div`,{ref:u,className:`react-flow__nodesselection-rect`,onContextMenu:f,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(_1,e.key)&&(e.preventDefault(),l({direction:_1[e.key],factor:e.shiftKey?4:1}))},style:{width:i,height:a}})})}var S1=typeof window<`u`?window:void 0,C1=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function w1({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,paneClickDistance:s,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:u,selectionMode:d,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:m,panActivationKeyCode:h,zoomActivationKeyCode:g,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:b,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:w,autoPanOnSelection:T,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,preventScrolling:A,onSelectionContextMenu:j,noWheelClassName:M,noPanClassName:N,disableKeyboardA11y:P,onViewportChange:F,isControlledViewport:I}){let{nodesSelectionActive:L,userSelectionActive:R}=BQ(C1,IQ),z=h$(l,{target:S1}),B=h$(h,{target:S1}),V=B||w,H=B||b,ee=u&&V!==!0,te=z||R||ee;return H$({deleteKeyCode:c,multiSelectionKeyCode:m}),(0,G.jsx)(K$,{onPaneContextMenu:a,elementsSelectable:_,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:H,panOnScrollSpeed:x,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!z&&V,defaultViewport:E,translateExtent:D,minZoom:O,maxZoom:k,zoomActivationKeyCode:g,preventScrolling:A,noWheelClassName:M,noPanClassName:N,onViewportChange:F,isControlledViewport:I,paneClickDistance:s,selectionOnDrag:ee,children:(0,G.jsxs)(Z$,{onSelectionStart:f,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:i,onPaneContextMenu:a,onPaneScroll:o,panOnDrag:V,autoPanOnSelection:T,isSelecting:!!te,selectionMode:d,selectionKeyPressed:z,paneClickDistance:s,selectionOnDrag:ee,children:[e,L&&(0,G.jsx)(x1,{onSelectionContextMenu:j,noPanClassName:N,disableKeyboardA11y:P})]})})}w1.displayName=`FlowRenderer`;var T1=(0,s.memo)(w1),E1=e=>t=>e?oX(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(e=>e.id):Array.from(t.nodeLookup.keys());function D1(e){return BQ((0,s.useCallback)(E1(e),[e]),IQ)}var O1=e=>e.updateNodeInternals;function k1(){let e=BQ(O1),[t]=(0,s.useState)(()=>typeof ResizeObserver>`u`?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute(`data-id`);n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,s.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function A1({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){let i=VQ(),a=(0,s.useRef)(null),o=(0,s.useRef)(null),c=(0,s.useRef)(e.sourcePosition),l=(0,s.useRef)(e.targetPosition),u=(0,s.useRef)(t),d=n&&!!e.internals.handleBounds;return(0,s.useEffect)(()=>{a.current&&!e.hidden&&(!d||o.current!==a.current)&&(o.current&&r?.unobserve(o.current),r?.observe(a.current),o.current=a.current)},[d,e.hidden]),(0,s.useEffect)(()=>()=>{o.current&&=(r?.unobserve(o.current),null)},[]),(0,s.useEffect)(()=>{if(a.current){let n=u.current!==t,r=c.current!==e.sourcePosition,o=l.current!==e.targetPosition;(n||r||o)&&(u.current=t,c.current=e.sourcePosition,l.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),a}function j1({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:i,onContextMenu:a,onDoubleClick:o,nodesDraggable:s,elementsSelectable:c,nodesConnectable:l,nodesFocusable:u,resizeObserver:d,noDragClassName:f,noPanClassName:p,disableKeyboardA11y:m,rfId:h,nodeTypes:g,nodeClickDistance:_,onError:v}){let{node:y,internals:b,isParent:x}=BQ(t=>{let n=t.nodeLookup.get(e),r=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:r}},IQ),S=y.type||`default`,C=g?.[S]||v1[S];C===void 0&&(v?.(`003`,HY.error003(S)),S=`default`,C=g?.default||v1.default);let w=!!(y.draggable||s&&y.draggable===void 0),T=!!(y.selectable||c&&y.selectable===void 0),E=!!(y.connectable||l&&y.connectable===void 0),D=!!(y.focusable||u&&y.focusable===void 0),O=VQ(),k=RX(y),A=A1({node:y,nodeType:S,hasDimensions:k,resizeObserver:d}),j=$$({nodeRef:A,disabled:y.hidden||!w,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:_}),M=t1();if(y.hidden)return null;let N=LX(y),P=y1(y),F=T||w||t||n||r||i,I=n?e=>n(e,{...b.userNode}):void 0,L=r?e=>r(e,{...b.userNode}):void 0,R=i?e=>i(e,{...b.userNode}):void 0,z=a?e=>a(e,{...b.userNode}):void 0,B=o?e=>o(e,{...b.userNode}):void 0,V=n=>{let{selectNodesOnDrag:r,nodeDragThreshold:i}=O.getState();T&&(!r||!w||i>0)&&Q$({id:e,store:O,nodeRef:A}),t&&t(n,{...b.userNode})},H=t=>{if(!(qX(t.nativeEvent)||m)){if(WY.includes(t.key)&&T){let n=t.key===`Escape`;Q$({id:e,store:O,unselect:n,nodeRef:A})}else if(w&&y.selected&&Object.prototype.hasOwnProperty.call(_1,t.key)){t.preventDefault();let{ariaLabelConfig:e}=O.getState();O.setState({ariaLiveMessage:e[`node.a11yDescription.ariaLiveMessage`]({direction:t.key.replace(`Arrow`,``).toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),M({direction:_1[t.key],factor:t.shiftKey?4:1})}}},ee=()=>{if(m||!A.current?.matches(`:focus-visible`))return;let{transform:t,width:n,height:r,autoPanOnNodeFocus:i,setCenter:a}=O.getState();i&&(oX(new Map([[e,y]]),{x:0,y:0,width:n,height:r},t,!0).length>0||a(y.position.x+N.width/2,y.position.y+N.height/2,{zoom:t[2]}))};return(0,G.jsx)(`div`,{className:aW([`react-flow__node`,`react-flow__node-${S}`,{[p]:w},y.className,{selected:y.selected,selectable:T,parent:x,draggable:w,dragging:j}]),ref:A,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:F?`all`:`none`,visibility:k?`visible`:`hidden`,...y.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:I,onMouseMove:L,onMouseLeave:R,onContextMenu:z,onClick:V,onDoubleClick:B,onKeyDown:D?H:void 0,tabIndex:D?0:void 0,onFocus:D?ee:void 0,role:y.ariaRole??(D?`group`:void 0),"aria-roledescription":`node`,"aria-describedby":m?void 0:`${WQ}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:(0,G.jsx)(r1,{value:e,children:(0,G.jsx)(C,{id:e,data:y.data,type:S,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:y.selected??!1,selectable:T,draggable:w,deletable:y.deletable??!0,isConnectable:E,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:j,dragHandle:y.dragHandle,zIndex:b.z,parentId:y.parentId,...N})})})}var M1=(0,s.memo)(j1),N1=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function P1(e){let{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:i}=BQ(N1,IQ),a=D1(e.onlyRenderVisibleElements),o=k1();return(0,G.jsx)(`div`,{className:`react-flow__nodes`,style:W$,children:a.map(a=>(0,G.jsx)(M1,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:o,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}P1.displayName=`NodeRenderer`;var F1=(0,s.memo)(P1);function I1(e){return BQ((0,s.useCallback)(t=>{if(!e)return t.edges.map(e=>e.id);let n=[];if(t.width&&t.height)for(let e of t.edges){let r=t.nodeLookup.get(e.source),i=t.nodeLookup.get(e.target);r&&i&&rZ({sourceNode:r,targetNode:i,width:t.width,height:t.height,transform:t.transform})&&n.push(e.id)}return n},[e]),IQ)}var L1=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,G.jsx)(`polyline`,{className:`arrow`,style:n,strokeLinecap:`round`,fill:`none`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4`})},R1=({color:e=`none`,strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,G.jsx)(`polyline`,{className:`arrowclosed`,style:n,strokeLinecap:`round`,strokeLinejoin:`round`,points:`-5,-4 0,0 -5,4 -5,-4`})},z1={[ZY.Arrow]:L1,[ZY.ArrowClosed]:R1};function B1(e){let t=VQ();return(0,s.useMemo)(()=>Object.prototype.hasOwnProperty.call(z1,e)?z1[e]:(t.getState().onError?.(`009`,HY.error009(e)),null),[e])}var V1=({id:e,type:t,color:n,width:r=12.5,height:i=12.5,markerUnits:a=`strokeWidth`,strokeWidth:o,orient:s=`auto-start-reverse`})=>{let c=B1(t);return c?(0,G.jsx)(`marker`,{className:`react-flow__arrowhead`,id:e,markerWidth:`${r}`,markerHeight:`${i}`,viewBox:`-10 -10 20 20`,markerUnits:a,orient:s,refX:`0`,refY:`0`,children:(0,G.jsx)(c,{color:n,strokeWidth:o})}):null},H1=({defaultColor:e,rfId:t})=>{let n=BQ(e=>e.edges),r=BQ(e=>e.defaultEdgeOptions),i=(0,s.useMemo)(()=>bZ(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return i.length?(0,G.jsx)(`svg`,{className:`react-flow__marker`,"aria-hidden":`true`,children:(0,G.jsx)(`defs`,{children:i.map(e=>(0,G.jsx)(V1,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};H1.displayName=`MarkerDefinitions`;var U1=(0,s.memo)(H1);function W1({x:e,y:t,label:n,labelStyle:r,labelShowBg:i=!0,labelBgStyle:a,labelBgPadding:o=[2,4],labelBgBorderRadius:c=2,children:l,className:u,...d}){let[f,p]=(0,s.useState)({x:1,y:0,width:0,height:0}),m=aW([`react-flow__edge-textwrapper`,u]),h=(0,s.useRef)(null);return(0,s.useEffect)(()=>{if(h.current){let e=h.current.getBBox();p({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n?(0,G.jsxs)(`g`,{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:m,visibility:f.width?`visible`:`hidden`,...d,children:[i&&(0,G.jsx)(`rect`,{width:f.width+2*o[0],x:-o[0],y:-o[1],height:f.height+2*o[1],className:`react-flow__edge-textbg`,style:a,rx:c,ry:c}),(0,G.jsx)(`text`,{className:`react-flow__edge-text`,y:f.height/2,dy:`0.3em`,ref:h,style:r,children:n}),l]}):null}W1.displayName=`EdgeText`;var G1=(0,s.memo)(W1);function K1({path:e,labelX:t,labelY:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c,interactionWidth:l=20,...u}){return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`path`,{...u,d:e,fill:`none`,className:aW([`react-flow__edge-path`,u.className])}),l?(0,G.jsx)(`path`,{d:e,fill:`none`,strokeOpacity:0,strokeWidth:l,className:`react-flow__edge-interaction`}):null,r&&EX(t)&&EX(n)?(0,G.jsx)(G1,{x:t,y:n,label:r,labelStyle:i,labelShowBg:a,labelBgStyle:o,labelBgPadding:s,labelBgBorderRadius:c}):null]})}function q1({pos:e,x1:t,y1:n,x2:r,y2:i}){return e===$.Left||e===$.Right?[.5*(t+r),n]:[t,.5*(n+i)]}function J1({sourceX:e,sourceY:t,sourcePosition:n=$.Bottom,targetX:r,targetY:i,targetPosition:a=$.Top}){let[o,s]=q1({pos:n,x1:e,y1:t,x2:r,y2:i}),[c,l]=q1({pos:a,x1:r,y1:i,x2:e,y2:t}),[u,d,f,p]=ZX({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:o,sourceControlY:s,targetControlX:c,targetControlY:l});return[`M${e},${t} C${o},${s} ${c},${l} ${r},${i}`,u,d,f,p]}function Y1(e){return(0,s.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o,targetPosition:s,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})=>{let[v,y,b]=J1({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s}),x=e.isInternal?void 0:t;return(0,G.jsx)(K1,{id:x,path:v,labelX:y,labelY:b,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:_})})}var X1=Y1({isInternal:!1}),Z1=Y1({isInternal:!0});X1.displayName=`SimpleBezierEdge`,Z1.displayName=`SimpleBezierEdgeInternal`;function Q1(e){return(0,s.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,sourcePosition:p=$.Bottom,targetPosition:m=$.Top,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=pZ({sourceX:n,sourceY:r,sourcePosition:p,targetX:i,targetY:a,targetPosition:m,borderRadius:_?.borderRadius,offset:_?.offset,stepPosition:_?.stepPosition}),S=e.isInternal?void 0:t;return(0,G.jsx)(K1,{id:S,path:y,labelX:b,labelY:x,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:h,markerStart:g,interactionWidth:v})})}var $1=Q1({isInternal:!1}),e0=Q1({isInternal:!0});$1.displayName=`SmoothStepEdge`,e0.displayName=`SmoothStepEdgeInternal`;function t0(e){return(0,s.memo)(({id:t,...n})=>{let r=e.isInternal?void 0:t;return(0,G.jsx)($1,{...n,id:r,pathOptions:(0,s.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var n0=t0({isInternal:!1}),r0=t0({isInternal:!0});n0.displayName=`StepEdge`,r0.displayName=`StepEdgeInternal`;function i0(e){return(0,s.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})=>{let[g,_,v]=sZ({sourceX:n,sourceY:r,targetX:i,targetY:a}),y=e.isInternal?void 0:t;return(0,G.jsx)(K1,{id:y,path:g,labelX:_,labelY:v,label:o,labelStyle:s,labelShowBg:c,labelBgStyle:l,labelBgPadding:u,labelBgBorderRadius:d,style:f,markerEnd:p,markerStart:m,interactionWidth:h})})}var a0=i0({isInternal:!1}),o0=i0({isInternal:!0});a0.displayName=`StraightEdge`,o0.displayName=`StraightEdgeInternal`;function s0(e){return(0,s.memo)(({id:t,sourceX:n,sourceY:r,targetX:i,targetY:a,sourcePosition:o=$.Bottom,targetPosition:s=$.Top,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,pathOptions:_,interactionWidth:v})=>{let[y,b,x]=eZ({sourceX:n,sourceY:r,sourcePosition:o,targetX:i,targetY:a,targetPosition:s,curvature:_?.curvature}),S=e.isInternal?void 0:t;return(0,G.jsx)(K1,{id:S,path:y,labelX:b,labelY:x,label:c,labelStyle:l,labelShowBg:u,labelBgStyle:d,labelBgPadding:f,labelBgBorderRadius:p,style:m,markerEnd:h,markerStart:g,interactionWidth:v})})}var c0=s0({isInternal:!1}),l0=s0({isInternal:!0});c0.displayName=`BezierEdge`,l0.displayName=`BezierEdgeInternal`;var u0={default:l0,straight:o0,step:r0,smoothstep:e0,simplebezier:Z1},d0={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},f0=(e,t,n)=>n===$.Left?e-t:n===$.Right?e+t:e,p0=(e,t,n)=>n===$.Top?e-t:n===$.Bottom?e+t:e,m0=`react-flow__edgeupdater`;function h0({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:i,onMouseEnter:a,onMouseOut:o,type:s}){return(0,G.jsx)(`circle`,{onMouseDown:i,onMouseEnter:a,onMouseOut:o,className:aW([m0,`${m0}-${s}`]),cx:f0(t,r,e),cy:p0(n,r,e),r,stroke:`transparent`,fill:`transparent`})}function g0({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:i,targetX:a,targetY:o,sourcePosition:s,targetPosition:c,onReconnect:l,onReconnectStart:u,onReconnectEnd:d,setReconnecting:f,setUpdateHover:p}){let m=VQ(),h=(e,t)=>{if(e.button!==0)return;let{autoPanOnConnect:r,domNode:i,connectionMode:a,connectionRadius:o,lib:s,onConnectStart:c,cancelConnection:p,nodeLookup:h,rfId:g,panBy:_,updateConnection:v}=m.getState(),y=t.type===`target`;eQ.onPointerDown(e.nativeEvent,{autoPanOnConnect:r,connectionMode:a,connectionRadius:o,domNode:i,handleId:t.id,nodeId:t.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:t.type,lib:s,flowId:g,cancelConnection:p,panBy:_,isValidConnection:(...e)=>m.getState().isValidConnection?.(...e)??!0,onConnect:e=>l?.(n,e),onConnectStart:(r,i)=>{f(!0),u?.(e,n,t.type),c?.(r,i)},onConnectEnd:(...e)=>m.getState().onConnectEnd?.(...e),onReconnectEnd:(e,r)=>{f(!1),d?.(e,n,t.type,r)},updateConnection:v,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},g=e=>h(e,{nodeId:n.target,id:n.targetHandle??null,type:`target`}),_=e=>h(e,{nodeId:n.source,id:n.sourceHandle??null,type:`source`}),v=()=>p(!0),y=()=>p(!1);return(0,G.jsxs)(G.Fragment,{children:[(e===!0||e===`source`)&&(0,G.jsx)(h0,{position:s,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:`source`}),(e===!0||e===`target`)&&(0,G.jsx)(h0,{position:c,centerX:a,centerY:o,radius:t,onMouseDown:_,onMouseEnter:v,onMouseOut:y,type:`target`})]})}function _0({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:i,onDoubleClick:a,onContextMenu:o,onMouseEnter:c,onMouseMove:l,onMouseLeave:u,reconnectRadius:d,onReconnect:f,onReconnectStart:p,onReconnectEnd:m,rfId:h,edgeTypes:g,noPanClassName:_,onError:v,disableKeyboardA11y:y}){let b=BQ(t=>t.edgeLookup.get(e)),x=BQ(e=>e.defaultEdgeOptions);b=x?{...x,...b}:b;let S=b.type||`default`,C=g?.[S]||u0[S];C===void 0&&(v?.(`011`,HY.error011(S)),S=`default`,C=g?.default||u0.default);let w=!!(b.focusable||t&&b.focusable===void 0),T=f!==void 0&&(b.reconnectable||n&&b.reconnectable===void 0),E=!!(b.selectable||r&&b.selectable===void 0),D=(0,s.useRef)(null),[O,k]=(0,s.useState)(!1),[A,j]=(0,s.useState)(!1),M=VQ(),{zIndex:N=b.zIndex,sourceX:P,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z}=BQ((0,s.useCallback)(t=>{let n=t.nodeLookup.get(b.source),r=t.nodeLookup.get(b.target);if(!n||!r)return d0;let i=hZ({id:e,sourceNode:n,targetNode:r,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:t.connectionMode,onError:v}),a=nZ({selected:b.selected,zIndex:b.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode});return{...i||d0,zIndex:a}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex]),IQ),B=(0,s.useMemo)(()=>b.markerStart?`url('#${yZ(b.markerStart,h)}')`:void 0,[b.markerStart,h]),V=(0,s.useMemo)(()=>b.markerEnd?`url('#${yZ(b.markerEnd,h)}')`:void 0,[b.markerEnd,h]);if(b.hidden||P===null||F===null||I===null||L===null)return null;let H=t=>{let{addSelectedEdges:n,unselectNodesAndEdges:r,multiSelectionActive:a}=M.getState();E&&(M.setState({nodesSelectionActive:!1}),b.selected&&a?(r({nodes:[],edges:[b]}),D.current?.blur()):n([e])),i&&i(t,b)},ee=a?e=>{a(e,{...b})}:void 0,te=o?e=>{o(e,{...b})}:void 0,ne=c?e=>{c(e,{...b})}:void 0,U=l?e=>{l(e,{...b})}:void 0,re=u?e=>{u(e,{...b})}:void 0;return(0,G.jsx)(`svg`,{style:{zIndex:N},children:(0,G.jsxs)(`g`,{className:aW([`react-flow__edge`,`react-flow__edge-${S}`,b.className,_,{selected:b.selected,animated:b.animated,inactive:!E&&!i,updating:O,selectable:E}]),onClick:H,onDoubleClick:ee,onContextMenu:te,onMouseEnter:ne,onMouseMove:U,onMouseLeave:re,onKeyDown:w?t=>{if(!y&&WY.includes(t.key)&&E){let{unselectNodesAndEdges:n,addSelectedEdges:r}=M.getState();t.key===`Escape`?(D.current?.blur(),n({edges:[b]})):r([e])}}:void 0,tabIndex:w?0:void 0,role:b.ariaRole??(w?`group`:`img`),"aria-roledescription":`edge`,"data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":w?`${GQ}-${h}`:void 0,ref:D,...b.domAttributes,children:[!A&&(0,G.jsx)(C,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:E,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:P,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:B,markerEnd:V,pathOptions:`pathOptions`in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),T&&(0,G.jsx)(g0,{edge:b,isReconnectable:T,reconnectRadius:d,onReconnect:f,onReconnectStart:p,onReconnectEnd:m,sourceX:P,sourceY:F,targetX:I,targetY:L,sourcePosition:R,targetPosition:z,setUpdateHover:k,setReconnecting:j})]})})}var v0=(0,s.memo)(_0),y0=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function b0({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:i,onReconnect:a,onEdgeContextMenu:o,onEdgeMouseEnter:s,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:u,reconnectRadius:d,onEdgeDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:h}){let{edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,onError:y}=BQ(y0,IQ),b=I1(t);return(0,G.jsxs)(`div`,{className:`react-flow__edges`,children:[(0,G.jsx)(U1,{defaultColor:e,rfId:n}),b.map(e=>(0,G.jsx)(v0,{id:e,edgesFocusable:g,edgesReconnectable:_,elementsSelectable:v,noPanClassName:i,onReconnect:a,onContextMenu:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,onClick:u,reconnectRadius:d,onDoubleClick:f,onReconnectStart:p,onReconnectEnd:m,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:h},e))]})}b0.displayName=`EdgeRenderer`;var x0=(0,s.memo)(b0),S0=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function C0({children:e}){let t=VQ(),n=(0,s.useRef)(null),[r]=(0,s.useState)(()=>t.getState().transform);return M$(()=>{let e=null,r=()=>{let r=t.getState().transform;e&&r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]||(e=r,n.current&&(n.current.style.transform=S0(r)))};return r(),t.subscribe(r)},[t]),(0,G.jsx)(`div`,{ref:n,className:`react-flow__viewport xyflow__viewport react-flow__container`,style:{transform:S0(r)},children:e})}function w0(e){let t=z$(),n=(0,s.useRef)(!1);(0,s.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var T0=e=>e.panZoom?.syncViewport;function E0(e){let t=BQ(T0),n=VQ();return(0,s.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function D0(e){return e.connection.inProgress?{...e.connection,to:kX(e.connection.to,e.transform)}:{...e.connection}}function O0(e){return e?t=>e(D0(t)):D0}function k0(e){return BQ(O0(e),IQ)}var A0=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function j0({containerStyle:e,style:t,type:n,component:r}){let{nodesConnectable:i,width:a,height:o,isValid:s,inProgress:c}=BQ(A0,IQ);return a&&i&&c?(0,G.jsx)(`svg`,{style:e,width:a,height:o,className:`react-flow__connectionline react-flow__container`,children:(0,G.jsx)(`g`,{className:aW([`react-flow__connection`,$Y(s)]),children:(0,G.jsx)(M0,{style:t,type:n,CustomComponent:r,isValid:s})})}):null}var M0=({style:e,type:t=XY.Bezier,CustomComponent:n,isValid:r})=>{let{inProgress:i,from:a,fromNode:o,fromHandle:s,fromPosition:c,to:l,toNode:u,toHandle:d,toPosition:f,pointer:p}=k0();if(!i)return;if(n)return(0,G.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:s,fromX:a.x,fromY:a.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:f,connectionStatus:$Y(r),toNode:u,toHandle:d,pointer:p});let m=``,h={sourceX:a.x,sourceY:a.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:f};switch(t){case XY.Bezier:[m]=eZ(h);break;case XY.SimpleBezier:[m]=J1(h);break;case XY.Step:[m]=pZ({...h,borderRadius:0});break;case XY.SmoothStep:[m]=pZ(h);break;default:[m]=sZ(h)}return(0,G.jsx)(`path`,{d:m,fill:`none`,className:`react-flow__connection-path`,style:e})};M0.displayName=`ConnectionLine`;var N0={};function P0(e=N0){(0,s.useRef)(e),VQ(),(0,s.useEffect)(()=>{},[e])}function F0(){VQ(),(0,s.useRef)(!1),(0,s.useEffect)(()=>{},[])}function I0({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:i,onNodeDoubleClick:a,onEdgeDoubleClick:o,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,onSelectionContextMenu:d,onSelectionStart:f,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:h,connectionLineComponent:g,connectionLineContainerStyle:_,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:w,onlyRenderVisibleElements:T,elementsSelectable:E,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,preventScrolling:j,defaultMarkerColor:M,zoomOnScroll:N,zoomOnPinch:P,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,zoomOnDoubleClick:R,panOnDrag:z,autoPanOnSelection:B,onPaneClick:V,onPaneMouseEnter:H,onPaneMouseMove:ee,onPaneMouseLeave:te,onPaneScroll:ne,onPaneContextMenu:U,paneClickDistance:re,nodeClickDistance:ie,onEdgeContextMenu:ae,onEdgeMouseEnter:oe,onEdgeMouseMove:se,onEdgeMouseLeave:ce,reconnectRadius:le,onReconnect:ue,onReconnectStart:de,onReconnectEnd:W,noDragClassName:fe,noWheelClassName:pe,noPanClassName:me,disableKeyboardA11y:he,nodeExtent:ge,rfId:_e,viewport:ve,onViewportChange:ye,nodesDraggable:be}){return P0(e),P0(t),F0(),w0(n),E0(ve),(0,G.jsx)(T1,{onPaneClick:V,onPaneMouseEnter:H,onPaneMouseMove:ee,onPaneMouseLeave:te,onPaneContextMenu:U,onPaneScroll:ne,paneClickDistance:re,deleteKeyCode:w,selectionKeyCode:v,selectionOnDrag:y,selectionMode:b,onSelectionStart:f,onSelectionEnd:p,multiSelectionKeyCode:x,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:E,zoomOnScroll:N,zoomOnPinch:P,zoomOnDoubleClick:R,panOnScroll:F,panOnScrollSpeed:I,panOnScrollMode:L,panOnDrag:z,autoPanOnSelection:B,defaultViewport:D,translateExtent:O,minZoom:k,maxZoom:A,onSelectionContextMenu:d,preventScrolling:j,noDragClassName:fe,noWheelClassName:pe,noPanClassName:me,disableKeyboardA11y:he,onViewportChange:ye,isControlledViewport:!!ve,children:(0,G.jsxs)(C0,{children:[(0,G.jsx)(x0,{edgeTypes:t,onEdgeClick:i,onEdgeDoubleClick:o,onReconnect:ue,onReconnectStart:de,onReconnectEnd:W,onlyRenderVisibleElements:T,onEdgeContextMenu:ae,onEdgeMouseEnter:oe,onEdgeMouseMove:se,onEdgeMouseLeave:ce,reconnectRadius:le,defaultMarkerColor:M,noPanClassName:me,disableKeyboardA11y:he,rfId:_e}),(0,G.jsx)(j0,{style:h,type:m,component:g,containerStyle:_}),(0,G.jsx)(`div`,{className:`react-flow__edgelabel-renderer`}),(0,G.jsx)(F1,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:u,nodeClickDistance:ie,onlyRenderVisibleElements:T,noPanClassName:me,noDragClassName:fe,disableKeyboardA11y:he,nodeExtent:ge,rfId:_e,nodesDraggable:be}),(0,G.jsx)(`div`,{className:`react-flow__viewport-portal`})]})})}I0.displayName=`GraphView`;var L0=(0,s.memo)(I0),R0=DX(`React Flow`,`https://reactflow.dev/`),z0=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c=.5,maxZoom:l=2,nodeOrigin:u,nodeExtent:d,zIndexMode:f=`basic`}={})=>{let p=new Map,m=new Map,h=new Map,g=new Map,_=r??t??[],v=n??e??[],y=u??[0,0],b=d??UY;RZ(h,g,_);let{nodesInitialized:x}=kZ(v,p,m,{nodeOrigin:y,nodeExtent:b,zIndexMode:f}),S=[0,0,1];if(o&&i&&a){let{x:e,y:t,zoom:n}=PX(aX(p,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),i,a,c,l,s?.padding??.1);S=[e,t,n]}return{rfId:`1`,width:i??0,height:a??0,transform:S,nodes:v,nodesInitialized:x,nodeLookup:p,parentLookup:m,edges:_,edgeLookup:g,connectionLookup:h,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:UY,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:KY.Strict,domNode:null,paneDragging:!1,noPanClassName:`nopan`,nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:o??!1,fitViewOptions:s,fitViewResolver:null,connection:{...YY},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:``,autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:R0,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:`react`,debug:!1,ariaLabelConfig:GY,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},B0=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,zIndexMode:f})=>FQ((p,m)=>{async function h(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:r,width:i,height:a,minZoom:o,maxZoom:s}=m();t&&(await lX({nodes:e,width:i,height:a,panZoom:t,minZoom:o,maxZoom:s},n),r?.resolve(!0),p({fitViewResolver:null}))}return{...z0({nodes:e,edges:t,width:i,height:a,fitView:o,fitViewOptions:s,minZoom:c,maxZoom:l,nodeOrigin:u,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:r,elevateNodesOnSelect:i,fitViewQueued:a,zIndexMode:o,nodesSelectionActive:s}=m(),{nodesInitialized:c,hasSelectedNodes:l}=kZ(e,t,n,{nodeOrigin:r,nodeExtent:d,elevateNodesOnSelect:i,checkEquality:!0,zIndexMode:o}),u=s&&l;a&&c?(h(),p({nodes:e,nodesInitialized:c,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:u})):p({nodes:e,nodesInitialized:c,nodesSelectionActive:u})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=m();RZ(t,n,e),p({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=m();t(e),p({hasDefaultNodes:!0})}if(t){let{setEdges:e}=m();e(t),p({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:r,domNode:i,nodeOrigin:a,nodeExtent:o,debug:s,fitViewQueued:c,zIndexMode:l}=m(),{changes:u,updatedInternals:d}=FZ(e,n,r,i,a,o,l);d&&(EZ(n,r,{nodeOrigin:a,nodeExtent:o,zIndexMode:l}),c?(h(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),u?.length>0&&(s&&console.log(`React Flow: trigger node changes`,u),t?.(u)))},updateNodePositions:(e,t=!1)=>{let n=[],r=[],{nodeLookup:i,triggerNodeChanges:a,connection:o,updateConnection:s,onNodesChangeMiddlewareMap:c}=m();for(let[a,c]of e){let e=i.get(a),l=!!(e?.expandParent&&e?.parentId&&c?.position),u={id:a,type:`position`,position:l?{x:Math.max(0,c.position.x),y:Math.max(0,c.position.y)}:c.position,dragging:t};if(e&&o.inProgress&&o.fromNode.id===e.id){let t=_Z(e,o.fromHandle,$.Left,!0);s({...o,from:t})}l&&e.parentId&&n.push({id:a,parentId:e.parentId,rect:{...c.internals.positionAbsolute,width:c.measured.width??0,height:c.measured.height??0}}),r.push(u)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=m(),a=PZ(n,i,e,t);r.push(...a)}for(let e of c.values())r=e(r);a(r)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:r,hasDefaultNodes:i,debug:a}=m();e?.length&&(i&&n(x$(e,r)),a&&console.log(`React Flow: trigger node changes`,e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:r,hasDefaultEdges:i,debug:a}=m();e?.length&&(i&&n(S$(e,r)),a&&console.log(`React Flow: trigger edge changes`,e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){i(e.map(e=>C$(e,!0)));return}i(w$(r,new Set([...e]),!0)),a(w$(n))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=m();if(t){a(e.map(e=>C$(e,!0)));return}a(w$(n,new Set([...e]))),i(w$(r,new Set,!0))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:r,nodeLookup:i,triggerNodeChanges:a,triggerEdgeChanges:o}=m(),s=e||r,c=t||n,l=[];for(let e of s){if(!e.selected)continue;let t=i.get(e.id);t&&(t.selected=!1),l.push(C$(e.id,!1))}let u=[];for(let e of c)e.selected&&u.push(C$(e.id,!1));a(l),o(u)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=m();t?.setScaleExtent([e,n]),p({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=m();t?.setScaleExtent([n,e]),p({maxZoom:e})},setTranslateExtent:e=>{m().panZoom?.setTranslateExtent(e),p({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:r,elementsSelectable:i}=m();if(!i)return;let a=t.reduce((e,t)=>t.selected?[...e,C$(t.id,!1)]:e,[]),o=e.reduce((e,t)=>t.selected?[...e,C$(t.id,!1)]:e,[]);n(a),r(o)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:r,nodeOrigin:i,elevateNodesOnSelect:a,nodeExtent:o,zIndexMode:s}=m();(e[0][0]!==o[0][0]||e[0][1]!==o[0][1]||e[1][0]!==o[1][0]||e[1][1]!==o[1][1])&&(kZ(t,n,r,{nodeOrigin:i,nodeExtent:e,elevateNodesOnSelect:a,checkEquality:!1,zIndexMode:s}),p({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:r,panZoom:i,translateExtent:a}=m();return IZ({delta:e,panZoom:i,transform:t,translateExtent:a,width:n,height:r})},setCenter:async(e,t,n)=>{let{width:r,height:i,maxZoom:a,panZoom:o}=m();if(!o)return!1;let s=n?.zoom===void 0?a:n.zoom;return await o.setViewport({x:r/2-e*s,y:i/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{p({connection:{...YY}})},updateConnection:e=>{p({connection:e})},reset:()=>p({...z0()})}},Object.is);function V0({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:i,initialHeight:a,initialMinZoom:o,initialMaxZoom:c,initialFitViewOptions:l,fitView:u,nodeOrigin:d,nodeExtent:f,zIndexMode:p,children:m}){let[h]=(0,s.useState)(()=>B0({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:i,height:a,fitView:u,minZoom:o,maxZoom:c,fitViewOptions:l,nodeOrigin:d,nodeExtent:f,zIndexMode:p}));return(0,G.jsx)(RQ,{value:h,children:(0,G.jsx)(I$,{children:(0,G.jsx)(s1,{children:m})})})}function H0({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:i,width:a,height:o,fitView:c,fitViewOptions:l,minZoom:u,maxZoom:d,nodeOrigin:f,nodeExtent:p,zIndexMode:m}){return(0,s.useContext)(LQ)?(0,G.jsx)(G.Fragment,{children:e}):(0,G.jsx)(V0,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:o,fitView:c,initialFitViewOptions:l,initialMinZoom:u,initialMaxZoom:d,nodeOrigin:f,nodeExtent:p,zIndexMode:m,children:e})}var U0={width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`,zIndex:0};function W0({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:i,nodeTypes:a,edgeTypes:o,onNodeClick:c,onEdgeClick:l,onInit:u,onMove:d,onMoveStart:f,onMoveEnd:p,onConnect:m,onConnectStart:h,onConnectEnd:g,onClickConnectStart:_,onClickConnectEnd:v,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,onNodeDragStart:w,onNodeDrag:T,onNodeDragStop:E,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onSelectionChange:A,onSelectionDragStart:j,onSelectionDrag:M,onSelectionDragStop:N,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:I,onBeforeDelete:L,connectionMode:R,connectionLineType:z=XY.Bezier,connectionLineStyle:B,connectionLineComponent:V,connectionLineContainerStyle:H,deleteKeyCode:ee=`Backspace`,selectionKeyCode:te=`Shift`,selectionOnDrag:ne=!1,selectionMode:U=JY.Full,panActivationKeyCode:re=`Space`,multiSelectionKeyCode:ie=FX()?`Meta`:`Control`,zoomActivationKeyCode:ae=FX()?`Meta`:`Control`,snapToGrid:oe,snapGrid:se,onlyRenderVisibleElements:ce=!1,selectNodesOnDrag:le,nodesDraggable:ue,autoPanOnNodeFocus:de,nodesConnectable:W,nodesFocusable:fe,nodeOrigin:pe=o$,edgesFocusable:me,edgesReconnectable:he,elementsSelectable:ge=!0,defaultViewport:_e=s$,minZoom:ve=.5,maxZoom:ye=2,translateExtent:be=UY,preventScrolling:xe=!0,nodeExtent:Se,defaultMarkerColor:Ce=`#b1b1b7`,zoomOnScroll:we=!0,zoomOnPinch:Te=!0,panOnScroll:Ee=!1,panOnScrollSpeed:De=.5,panOnScrollMode:Oe=qY.Free,zoomOnDoubleClick:ke=!0,panOnDrag:Ae=!0,onPaneClick:je,onPaneMouseEnter:Me,onPaneMouseMove:Ne,onPaneMouseLeave:Pe,onPaneScroll:Fe,onPaneContextMenu:Ie,paneClickDistance:Le=1,nodeClickDistance:Re=0,children:ze,onReconnect:Be,onReconnectStart:Ve,onReconnectEnd:He,onEdgeContextMenu:Ue,onEdgeDoubleClick:We,onEdgeMouseEnter:Ge,onEdgeMouseMove:Ke,onEdgeMouseLeave:qe,reconnectRadius:Je=10,onNodesChange:Ye,onEdgesChange:Xe,noDragClassName:Ze=`nodrag`,noWheelClassName:Qe=`nowheel`,noPanClassName:$e=`nopan`,fitView:et,fitViewOptions:tt,connectOnClick:nt,attributionPosition:rt,proOptions:it,defaultEdgeOptions:at,elevateNodesOnSelect:ot=!0,elevateEdgesOnSelect:st=!1,disableKeyboardA11y:ct=!1,autoPanOnConnect:lt,autoPanOnNodeDrag:ut,autoPanOnSelection:dt=!0,autoPanSpeed:ft,connectionRadius:pt,isValidConnection:mt,onError:ht,style:gt,id:_t,nodeDragThreshold:vt,connectionDragThreshold:yt,viewport:bt,onViewportChange:xt,width:St,height:Ct,colorMode:wt=`light`,debug:Tt,onScroll:Et,ariaLabelConfig:K,zIndexMode:Dt=`basic`,...Ot},kt){let At=_t||`1`,jt=p$(wt),Mt=(0,s.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:`instant`}),Et?.(e)},[Et]);return(0,G.jsx)(`div`,{"data-testid":`rf__wrapper`,...Ot,onScroll:Mt,style:{...gt,...U0},ref:kt,className:aW([`react-flow`,i,jt]),id:_t,role:`application`,children:(0,G.jsxs)(H0,{nodes:e,edges:t,width:St,height:Ct,fitView:et,fitViewOptions:tt,minZoom:ve,maxZoom:ye,nodeOrigin:pe,nodeExtent:Se,zIndexMode:Dt,children:[(0,G.jsx)(d$,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:m,onConnectStart:h,onConnectEnd:g,onClickConnectStart:_,onClickConnectEnd:v,nodesDraggable:ue,autoPanOnNodeFocus:de,nodesConnectable:W,nodesFocusable:fe,edgesFocusable:me,edgesReconnectable:he,elementsSelectable:ge,elevateNodesOnSelect:ot,elevateEdgesOnSelect:st,minZoom:ve,maxZoom:ye,nodeExtent:Se,onNodesChange:Ye,onEdgesChange:Xe,snapToGrid:oe,snapGrid:se,connectionMode:R,translateExtent:be,connectOnClick:nt,defaultEdgeOptions:at,fitView:et,fitViewOptions:tt,onNodesDelete:D,onEdgesDelete:O,onDelete:k,onNodeDragStart:w,onNodeDrag:T,onNodeDragStop:E,onSelectionDrag:M,onSelectionDragStart:j,onSelectionDragStop:N,onMove:d,onMoveStart:f,onMoveEnd:p,noPanClassName:$e,nodeOrigin:pe,rfId:At,autoPanOnConnect:lt,autoPanOnNodeDrag:ut,autoPanSpeed:ft,onError:ht,connectionRadius:pt,isValidConnection:mt,selectNodesOnDrag:le,nodeDragThreshold:vt,connectionDragThreshold:yt,onBeforeDelete:L,debug:Tt,ariaLabelConfig:K,zIndexMode:Dt}),(0,G.jsx)(L0,{onInit:u,onNodeClick:c,onEdgeClick:l,onNodeMouseEnter:y,onNodeMouseMove:b,onNodeMouseLeave:x,onNodeContextMenu:S,onNodeDoubleClick:C,nodeTypes:a,edgeTypes:o,connectionLineType:z,connectionLineStyle:B,connectionLineComponent:V,connectionLineContainerStyle:H,selectionKeyCode:te,selectionOnDrag:ne,selectionMode:U,deleteKeyCode:ee,multiSelectionKeyCode:ie,panActivationKeyCode:re,zoomActivationKeyCode:ae,onlyRenderVisibleElements:ce,defaultViewport:_e,translateExtent:be,minZoom:ve,maxZoom:ye,preventScrolling:xe,zoomOnScroll:we,zoomOnPinch:Te,zoomOnDoubleClick:ke,panOnScroll:Ee,panOnScrollSpeed:De,panOnScrollMode:Oe,panOnDrag:Ae,autoPanOnSelection:dt,onPaneClick:je,onPaneMouseEnter:Me,onPaneMouseMove:Ne,onPaneMouseLeave:Pe,onPaneScroll:Fe,onPaneContextMenu:Ie,paneClickDistance:Le,nodeClickDistance:Re,onSelectionContextMenu:P,onSelectionStart:F,onSelectionEnd:I,onReconnect:Be,onReconnectStart:Ve,onReconnectEnd:He,onEdgeContextMenu:Ue,onEdgeDoubleClick:We,onEdgeMouseEnter:Ge,onEdgeMouseMove:Ke,onEdgeMouseLeave:qe,reconnectRadius:Je,defaultMarkerColor:Ce,noDragClassName:Ze,noWheelClassName:Qe,noPanClassName:$e,rfId:At,disableKeyboardA11y:ct,nodeExtent:Se,viewport:bt,onViewportChange:xt,nodesDraggable:ue}),(0,G.jsx)(a$,{onSelectionChange:A}),ze,(0,G.jsx)($Q,{proOptions:it,position:rt}),(0,G.jsx)(XQ,{rfId:At,disableKeyboardA11y:ct})]})})}var G0=j$(W0);HY.error014();function K0({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,G.jsx)(`path`,{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:aW([`react-flow__background-pattern`,n,r])})}function q0({radius:e,className:t}){return(0,G.jsx)(`circle`,{cx:e,cy:e,r:e,className:aW([`react-flow__background-pattern`,`dots`,t])})}var J0;(function(e){e.Lines=`lines`,e.Dots=`dots`,e.Cross=`cross`})(J0||={});var Y0={[J0.Dots]:1,[J0.Lines]:1,[J0.Cross]:6},X0=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Z0({id:e,variant:t=J0.Dots,gap:n=20,size:r,lineWidth:i=1,offset:a=0,color:o,bgColor:c,style:l,className:u,patternClassName:d}){let f=(0,s.useRef)(null),{transform:p,patternId:m}=BQ(X0,IQ),h=r||Y0[t],g=t===J0.Dots,_=t===J0.Cross,v=Array.isArray(n)?n:[n,n],y=[v[0]*p[2]||1,v[1]*p[2]||1],b=h*p[2],x=Array.isArray(a)?a:[a,a],S=_?[b,b]:y,C=[x[0]*p[2]||1+S[0]/2,x[1]*p[2]||1+S[1]/2],w=`${m}${e||``}`;return(0,G.jsxs)(`svg`,{className:aW([`react-flow__background`,u]),style:{...l,...W$,"--xy-background-color-props":c,"--xy-background-pattern-color-props":o},ref:f,"data-testid":`rf__background`,children:[(0,G.jsx)(`pattern`,{id:w,x:p[0]%y[0],y:p[1]%y[1],width:y[0],height:y[1],patternUnits:`userSpaceOnUse`,patternTransform:`translate(-${C[0]},-${C[1]})`,children:g?(0,G.jsx)(q0,{radius:b/2,className:d}):(0,G.jsx)(K0,{dimensions:S,lineWidth:i,variant:t,className:d})}),(0,G.jsx)(`rect`,{x:`0`,y:`0`,width:`100%`,height:`100%`,fill:`url(#${w})`})]})}Z0.displayName=`Background`,(0,s.memo)(Z0);function Q0(){return(0,G.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 32`,children:(0,G.jsx)(`path`,{d:`M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z`})})}function $0(){return(0,G.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 5`,children:(0,G.jsx)(`path`,{d:`M0 0h32v4.2H0z`})})}function e2(){return(0,G.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 32 30`,children:(0,G.jsx)(`path`,{d:`M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z`})})}function t2(){return(0,G.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,G.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z`})})}function n2(){return(0,G.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 25 32`,children:(0,G.jsx)(`path`,{d:`M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z`})})}function r2({children:e,className:t,...n}){return(0,G.jsx)(`button`,{type:`button`,className:aW([`react-flow__controls-button`,t]),...n,children:e})}var i2=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function a2({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:i,onZoomIn:a,onZoomOut:o,onFitView:s,onInteractiveChange:c,className:l,children:u,position:d=`bottom-left`,orientation:f=`vertical`,"aria-label":p}){let m=VQ(),{isInteractive:h,minZoomReached:g,maxZoomReached:_,ariaLabelConfig:v}=BQ(i2,IQ),{zoomIn:y,zoomOut:b,fitView:x}=z$();return(0,G.jsxs)(ZQ,{className:aW([`react-flow__controls`,f===`horizontal`?`horizontal`:`vertical`,l]),position:d,style:e,"data-testid":`rf__controls`,"aria-label":p??v[`controls.ariaLabel`],children:[t&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(r2,{onClick:()=>{y(),a?.()},className:`react-flow__controls-zoomin`,title:v[`controls.zoomIn.ariaLabel`],"aria-label":v[`controls.zoomIn.ariaLabel`],disabled:_,children:(0,G.jsx)(Q0,{})}),(0,G.jsx)(r2,{onClick:()=>{b(),o?.()},className:`react-flow__controls-zoomout`,title:v[`controls.zoomOut.ariaLabel`],"aria-label":v[`controls.zoomOut.ariaLabel`],disabled:g,children:(0,G.jsx)($0,{})})]}),n&&(0,G.jsx)(r2,{className:`react-flow__controls-fitview`,onClick:()=>{x(i),s?.()},title:v[`controls.fitView.ariaLabel`],"aria-label":v[`controls.fitView.ariaLabel`],children:(0,G.jsx)(e2,{})}),r&&(0,G.jsx)(r2,{className:`react-flow__controls-interactive`,onClick:()=>{m.setState({nodesDraggable:!h,nodesConnectable:!h,elementsSelectable:!h}),c?.(!h)},title:v[`controls.interactive.ariaLabel`],"aria-label":v[`controls.interactive.ariaLabel`],children:h?(0,G.jsx)(n2,{}):(0,G.jsx)(t2,{})}),u]})}a2.displayName=`Controls`;var o2=(0,s.memo)(a2);function s2({id:e,x:t,y:n,width:r,height:i,style:a,color:o,strokeColor:s,strokeWidth:c,className:l,borderRadius:u,shapeRendering:d,selected:f,onClick:p}){let{background:m,backgroundColor:h}=a||{},g=o||m||h;return(0,G.jsx)(`rect`,{className:aW([`react-flow__minimap-node`,{selected:f},l]),x:t,y:n,rx:u,ry:u,width:r,height:i,style:{fill:g,stroke:s,strokeWidth:c},shapeRendering:d,onClick:p?t=>p(t,e):void 0})}var c2=(0,s.memo)(s2),l2=e=>e.nodes.map(e=>e.id),u2=e=>e instanceof Function?e:()=>e;function d2({nodeStrokeColor:e,nodeColor:t,nodeClassName:n=``,nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=c2,onClick:o}){let s=BQ(l2,IQ),c=u2(t),l=u2(e),u=u2(n),d=typeof window>`u`||window.chrome?`crispEdges`:`geometricPrecision`;return(0,G.jsx)(G.Fragment,{children:s.map(e=>(0,G.jsx)(p2,{id:e,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:o,shapeRendering:d},e))})}function f2({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:i,nodeStrokeWidth:a,shapeRendering:o,NodeComponent:s,onClick:c}){let{node:l,x:u,y:d,width:f,height:p}=BQ(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let r=n.internals.userNode,{x:i,y:a}=n.internals.positionAbsolute,{width:o,height:s}=LX(r);return{node:r,x:i,y:a,width:o,height:s}},IQ);return!l||l.hidden||!RX(l)?null:(0,G.jsx)(s,{x:u,y:d,width:f,height:p,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:i,strokeColor:n(l),strokeWidth:a,shapeRendering:o,onClick:c,id:l.id})}var p2=(0,s.memo)(f2),m2=(0,s.memo)(d2),h2=200,g2=150,_2=e=>!e.hidden,v2=e=>{let t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?SX(aX(e.nodeLookup,{filter:_2}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},y2=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,b2=(e,t)=>y2(e.viewBB,t.viewBB)&&y2(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,x2=`react-flow__minimap-desc`;function S2({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:i=``,nodeBorderRadius:a=5,nodeStrokeWidth:o,nodeComponent:c,bgColor:l,maskColor:u,maskStrokeColor:d,maskStrokeWidth:f,position:p=`bottom-right`,onClick:m,onNodeClick:h,pannable:g=!1,zoomable:_=!1,ariaLabel:v,inversePan:y,zoomStep:b=1,offsetScale:x=5}){let S=VQ(),C=(0,s.useRef)(null),{boundingRect:w,viewBB:T,rfId:E,panZoom:D,translateExtent:O,flowWidth:k,flowHeight:A,ariaLabelConfig:j}=BQ(v2,b2),M=e?.width??h2,N=e?.height??g2,P=w.width/M,F=w.height/N,I=Math.max(P,F),L=I*M,R=I*N,z=x*I,B=w.x-(L-w.width)/2-z,V=w.y-(R-w.height)/2-z,H=L+z*2,ee=R+z*2,te=`${x2}-${E}`,ne=(0,s.useRef)(0),U=(0,s.useRef)();ne.current=I,(0,s.useEffect)(()=>{if(C.current&&D)return U.current=tQ({domNode:C.current,panZoom:D,getTransform:()=>S.getState().transform,getViewScale:()=>ne.current}),()=>{U.current?.destroy()}},[D]),(0,s.useEffect)(()=>{U.current?.update({translateExtent:O,width:k,height:A,inversePan:y,pannable:g,zoomStep:b,zoomable:_})},[g,_,y,b,O,k,A]);let re=m?e=>{let[t,n]=U.current?.pointer(e)||[0,0];m(e,{x:t,y:n})}:void 0,ie=h?(0,s.useCallback)((e,t)=>{let n=S.getState().nodeLookup.get(t).internals.userNode;h(e,n)},[]):void 0,ae=v??j[`minimap.ariaLabel`];return(0,G.jsx)(ZQ,{position:p,style:{...e,"--xy-minimap-background-color-props":typeof l==`string`?l:void 0,"--xy-minimap-mask-background-color-props":typeof u==`string`?u:void 0,"--xy-minimap-mask-stroke-color-props":typeof d==`string`?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof f==`number`?f*I:void 0,"--xy-minimap-node-background-color-props":typeof r==`string`?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n==`string`?n:void 0,"--xy-minimap-node-stroke-width-props":typeof o==`number`?o:void 0},className:aW([`react-flow__minimap`,t]),"data-testid":`rf__minimap`,children:(0,G.jsxs)(`svg`,{width:M,height:N,viewBox:`${B} ${V} ${H} ${ee}`,className:`react-flow__minimap-svg`,role:`img`,"aria-labelledby":te,ref:C,onClick:re,children:[ae&&(0,G.jsx)(`title`,{id:te,children:ae}),(0,G.jsx)(m2,{onClick:ie,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:a,nodeClassName:i,nodeStrokeWidth:o,nodeComponent:c}),(0,G.jsx)(`path`,{className:`react-flow__minimap-mask`,d:`M${B-z},${V-z}h${H+z*2}v${ee+z*2}h${-H-z*2}z
|
|
268
|
+
M${T.x},${T.y}h${T.width}v${T.height}h${-T.width}z`,fillRule:`evenodd`,pointerEvents:`none`})]})})}S2.displayName=`MiniMap`,(0,s.memo)(S2);var C2=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,w2={[gQ.Line]:`right`,[gQ.Handle]:`bottom-right`};function T2({nodeId:e,position:t,variant:n=gQ.Handle,className:r,style:i=void 0,children:a,color:o,minWidth:c=10,minHeight:l=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:f=!1,resizeDirection:p,autoScale:m=!0,shouldResize:h,onResizeStart:g,onResize:_,onResizeEnd:v}){let y=i1(),b=typeof e==`string`?e:y,x=VQ(),S=(0,s.useRef)(null),C=n===gQ.Handle,w=BQ((0,s.useCallback)(C2(C&&m),[C,m]),IQ),T=(0,s.useRef)(null),E=t??w2[n];(0,s.useEffect)(()=>{if(!(!S.current||!b))return T.current||=DQ({domNode:S.current,nodeId:b,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,domNode:a}=x.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:r,nodeOrigin:i,paneDomNode:a}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:r,parentLookup:i,nodeOrigin:a}=x.getState(),o=[],s={x:e.x,y:e.y},c=r.get(b);if(c&&c.expandParent&&c.parentId){let t=c.origin??a,n=e.width??c.measured.width??0,l=e.height??c.measured.height??0,u=PZ([{id:c.id,parentId:c.parentId,rect:{width:n,height:l,...zX({x:e.x??c.position.x,y:e.y??c.position.y},{width:n,height:l},c.parentId,r,t)}}],r,i,a);o.push(...u),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*l,e.y):void 0}if(s.x!==void 0&&s.y!==void 0){let e={id:b,type:`position`,position:{...s}};o.push(e)}if(e.width!==void 0&&e.height!==void 0){let t={id:b,type:`dimensions`,resizing:!0,setAttributes:p?p===`horizontal`?`width`:`height`:!0,dimensions:{width:e.width,height:e.height}};o.push(t)}for(let e of t){let t={...e,type:`position`};o.push(t)}n(o)},onEnd:({width:e,height:t})=>{let n={id:b,type:`dimensions`,resizing:!1,dimensions:{width:e,height:t}};x.getState().triggerNodeChanges([n])}}),T.current.update({controlPosition:E,boundaries:{minWidth:c,minHeight:l,maxWidth:u,maxHeight:d},keepAspectRatio:f,resizeDirection:p,onResizeStart:g,onResize:_,onResizeEnd:v,shouldResize:h}),()=>{T.current?.destroy()}},[E,c,l,u,d,f,g,_,v,h]);let D=E.split(`-`);return(0,G.jsx)(`div`,{className:aW([`react-flow__resize-control`,`nodrag`,...D,n,r]),ref:S,style:{...i,scale:w,...o&&{[C?`backgroundColor`:`borderColor`]:o}},children:a})}(0,s.memo)(T2);var E2=204,D2=96,O2=84,k2={input:Le,runtime:W,model:ge,capabilities:Ve,output:ie};function A2(e,t=34){return e?e.length<=t?e:`${e.slice(0,t)}…`:`-`}function j2(e){if(!e)return`未绑定模型`;let t=e.split(`:`);return(t[0]===`model`&&t.length>=4?t.slice(2,-1).join(`:`):e).replace(/-(\d+)$/,`.$1`).replace(/^glm/i,`GLM`).replace(/^gpt/i,`GPT`).replace(/^qwen/i,`Qwen`).replace(/^deepseek/i,`DeepSeek`)}function M2(e){if(!e)return`刚刚`;let t=new Date(e);return Number.isNaN(t.getTime())?`未知时间`:new Intl.DateTimeFormat(`zh-CN`,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}).format(t)}function N2(e){return e===`COMPLETED`||e===`SUCCEEDED`?`成功`:e===`RUNNING`?`运行中`:e===`FAILED`?`失败`:e===`PAUSED`?`已暂停`:e||`未知`}function P2({data:e}){let t=k2[e.icon];return(0,G.jsxs)(`div`,{className:`pipeline-node-card`,title:e.fullTitle||e.title,children:[(0,G.jsx)(f1,{id:`top`,type:`target`,position:$.Top}),(0,G.jsx)(f1,{id:`top-out`,type:`source`,position:$.Top}),(0,G.jsx)(f1,{id:`right`,type:`source`,position:$.Right}),(0,G.jsx)(f1,{id:`right-in`,type:`target`,position:$.Right}),(0,G.jsx)(f1,{id:`bottom`,type:`source`,position:$.Bottom}),(0,G.jsx)(f1,{id:`bottom-in`,type:`target`,position:$.Bottom}),(0,G.jsx)(f1,{id:`left`,type:`target`,position:$.Left}),(0,G.jsx)(f1,{id:`left-out`,type:`source`,position:$.Left}),(0,G.jsx)(`span`,{className:`pipeline-node-icon`,children:(0,G.jsx)(t,{size:15})}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:e.title}),(0,G.jsx)(`small`,{children:e.subtitle})]})]})}var F2={pipeline:P2};function I2(e,t){let n=Math.max(560,t-96),r=Math.max(1,Math.min(n>=1120||n>=720?3:2,e.length)),i=r*E2+(r-1)*O2,a=Math.max(48,(Math.max(t,560)-i)/2),o=e.map((e,t)=>{let n=Math.floor(t/r),i=t%r,o=n%2==0?i:r-1-i;return{row:n,column:o,x:a+o*288,y:56+n*172}});return{nodes:e.map((e,t)=>({id:e.id,type:`pipeline`,position:{x:o[t].x,y:o[t].y},data:{title:e.title,subtitle:e.subtitle,icon:e.icon,fullTitle:e.fullTitle||e.title},style:{width:E2,height:D2}})),edges:e.slice(1).map((t,n)=>{let r=o[n],i=o[n+1],a=r.row!==i.row,s=i.column>r.column;return{id:`edge-${e[n].id}-${t.id}`,source:e[n].id,target:t.id,sourceHandle:a?`bottom`:s?`right`:`left-out`,targetHandle:a?`top`:s?`left`:`right-in`,type:`smoothstep`,label:t.incomingLabel,markerEnd:{type:ZY.ArrowClosed,width:14,height:14}}})}}function L2(){let e=(0,s.useRef)(null),[t,n]=(0,s.useState)(960);return(0,s.useLayoutEffect)(()=>{let t=e.current;if(!t)return;let r=e=>{e>0&&n(e)};r(t.getBoundingClientRect().width);let i=new ResizeObserver(e=>{r(e[0]?.contentRect.width||0)});return i.observe(t),()=>i.disconnect()},[]),{containerRef:e,width:t}}function R2({steps:e}){let{containerRef:t,width:n}=L2(),[r,i]=(0,s.useState)(null),a=(0,s.useMemo)(()=>I2(e,n),[e,n]);return(0,s.useEffect)(()=>{r&&requestAnimationFrame(()=>r.fitView({padding:.16,duration:260}))},[a,r]),(0,G.jsx)(`div`,{ref:t,className:`orchestration-graph`,role:`application`,"aria-label":`执行链路画布`,"data-layout":`adaptive-serpentine`,"data-background":`plain`,children:(0,G.jsx)(G0,{nodes:a.nodes,edges:a.edges,nodeTypes:F2,onInit:i,fitView:!0,fitViewOptions:{padding:.16},minZoom:.55,maxZoom:1.35,nodesConnectable:!1,elementsSelectable:!0,panOnScroll:!0,selectionOnDrag:!1,proOptions:{hideAttribution:!0},children:(0,G.jsx)(o2,{showFitView:!1,position:`bottom-right`,children:(0,G.jsx)(r2,{"aria-label":`适应画布`,title:`适应画布`,onClick:()=>r?.fitView({padding:.16,duration:260}),children:(0,G.jsx)(Pe,{size:14})})})})})}function z2({currentAgentId:e,agents:t,onSelectAgent:n,onCreate:r}){let[i,a]=(0,s.useState)(null),[o,c]=(0,s.useState)([]),[l,u]=(0,s.useState)([]);(0,s.useEffect)(()=>{Promise.all([g(`/api/v1/catalog/resources?limit=200`).then(e=>e.json()),g(`/api/v1/catalog/models`).then(e=>e.json()).catch(()=>null)]).then(([e,t])=>{let n=e.items||[],r=t?.items||[];u([...n.filter(e=>e.kind!==`model`||e.source===`local`||e.source===`market`),...r])}).catch(()=>{})},[]),(0,s.useEffect)(()=>{if(!e){a(null),c([]);return}let t=!1;return Promise.all([g(`/api/v1/agents/${encodeURIComponent(e)}`).then(e=>e.json()),g(`/api/v1/runs?limit=200`).then(e=>e.json()).catch(()=>({items:[]}))]).then(([n,r])=>{t||(a(n.draft||null),c((r.items||[]).filter(t=>t.agentId===e)))}).catch(()=>{t||(a(null),c([]))}),()=>{t=!0}},[e]);let d=i?.spec?.bindings||{},f=i?.spec?.runtime?.type||i?.metadata?.labels?.[`agentkit.ksyun.com/framework`]||`runtime`,p=i?.spec?.execution?.strategy||`direct`,m=l.find(e=>e.resourceId===d.modelProfileId),h=(d.tools?.length||0)+(d.mcpServers?.length||0)+(d.skills?.length||0),_=o.slice(-5).reverse(),v=(0,s.useMemo)(()=>{let e=f===`codex`?`Codex Runtime`:f===`adk`?`ADK Runtime`:f===`langgraph`?`LangGraph Runtime`:`${f} Runtime`,t=m?.displayName||m?.name||j2(d.modelProfileId),n=[{id:`input`,icon:`input`,title:`任务输入`,subtitle:`用户消息与会话上下文`},{id:`runtime`,icon:`runtime`,title:e,fullTitle:`${f} RuntimeAdapter`,subtitle:`${p} · 本地执行`,incomingLabel:`调度`},{id:`model`,icon:`model`,title:A2(t,24),fullTitle:d.modelProfileId?`${t} · ${d.modelProfileId}`:t,subtitle:`模型配置`,incomingLabel:`调用模型`}];return h>0&&n.push({id:`capabilities`,icon:`capabilities`,title:`${h} 个能力绑定`,subtitle:`${d.tools?.length||0} Tool · ${d.mcpServers?.length||0} MCP · ${d.skills?.length||0} Skill`,incomingLabel:`加载能力`}),n.push({id:`output`,icon:`output`,title:`结构化输出`,subtitle:`返回会话并写入 Trace`,incomingLabel:`写回结果`}),n},[d,h,m?.displayName,f,p]);return(0,G.jsxs)(`div`,{className:`page-container orchestration-page`,"data-layout":`document`,children:[!i&&(0,G.jsx)(Sd,{children:(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:r,children:[(0,G.jsx)(Qe,{size:15}),(0,G.jsx)(`span`,{children:`创建 Agent`})]})}),i?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`section`,{className:`stat-strip compact-summary`,"aria-label":`编排概览`,children:[(0,G.jsxs)(`div`,{title:i.metadata?.id,children:[(0,G.jsx)(`span`,{children:`Revision`}),(0,G.jsxs)(`strong`,{children:[`r`,i.metadata?.revision||1]})]}),(0,G.jsxs)(`div`,{title:`${p} · Edge`,children:[(0,G.jsx)(`span`,{children:`Runtime`}),(0,G.jsx)(`strong`,{children:f})]}),(0,G.jsxs)(`div`,{title:`${d.tools?.length||0} Tool · ${d.mcpServers?.length||0} MCP · ${d.skills?.length||0} Skill`,children:[(0,G.jsx)(`span`,{children:`能力绑定`}),(0,G.jsx)(`strong`,{children:h})]}),(0,G.jsxs)(`div`,{className:`emphasis`,children:[(0,G.jsx)(`span`,{children:`最近调度`}),(0,G.jsx)(`strong`,{children:_[0]?N2(_[0].status):`暂无`})]})]}),(0,G.jsxs)(`div`,{className:`orchestration-workbench`,children:[(0,G.jsxs)(`section`,{className:`orchestration-canvas block`,children:[(0,G.jsxs)(`div`,{className:`section-heading`,children:[(0,G.jsx)(Ct,{name:i.metadata?.name||`Agent`,appearance:i.metadata?.appearance,size:`md`}),(0,G.jsx)(`div`,{className:`section-heading-copy`,children:(0,G.jsx)(`h2`,{title:i.metadata?.id,children:i.metadata?.name})})]}),(0,G.jsx)(R2,{steps:v})]}),(0,G.jsxs)(`aside`,{className:`orchestration-aside block`,children:[(0,G.jsxs)(`section`,{className:`orchestration-aside-section`,children:[(0,G.jsx)(`div`,{className:`aside-title`,children:`路由与约束`}),(0,G.jsxs)(`dl`,{children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Revision`}),(0,G.jsxs)(`dd`,{children:[`r`,i.metadata?.revision]})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`执行位置`}),(0,G.jsx)(`dd`,{children:`Edge · Local`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Runtime`}),(0,G.jsx)(`dd`,{children:f})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`策略`}),(0,G.jsx)(`dd`,{children:p})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`最大步骤`}),(0,G.jsx)(`dd`,{children:i.spec?.execution?.maxSteps||`-`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`云端`}),(0,G.jsx)(`dd`,{children:`未连接`})]})]})]}),(0,G.jsx)(`div`,{className:`aside-divider`}),(0,G.jsxs)(`section`,{className:`orchestration-aside-section`,children:[(0,G.jsx)(`div`,{className:`aside-title`,children:`最近调度`}),(0,G.jsx)(`div`,{className:`dispatch-log`,children:_.length===0?(0,G.jsx)(`div`,{className:`dispatch-log-empty`,children:`当前 Agent 还没有运行记录`}):_.map(e=>(0,G.jsxs)(`div`,{className:`dispatch-log-row`,children:[(0,G.jsx)(`span`,{className:`dispatch-status ${String(e.status).toLowerCase()}`}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:A2(e.input||`运行`)}),(0,G.jsxs)(`small`,{children:[M2(e.startedAt),` · `,N2(e.status)]})]})]},e.id))})]})]})]})]}):(0,G.jsxs)(`div`,{className:`orchestration-empty empty-state block`,children:[(0,G.jsx)(`span`,{className:`empty-icon`,children:(0,G.jsx)(Ve,{size:24})}),(0,G.jsx)(`h2`,{children:`先选择或创建一个 Agent`}),(0,G.jsx)(`p`,{children:`编排视图会读取 Agent Revision、RuntimeRef 和能力绑定生成真实执行链路。`})]})]})}var B2=new Set([`QUEUED`,`RUNNING`]);function V2(e){if(!e)return`-`;let t=new Date(e);return Number.isNaN(t.getTime())?`-`:new Intl.DateTimeFormat(`zh-CN`,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}).format(t)}function H2(e){return e==null?`-`:e<1e3?`${e} ms`:`${(e/1e3).toFixed(2)} s`}function U2(e){if(!e.completedAt)return B2.has(e.status)?`进行中`:`-`;let t=new Date(e.completedAt).getTime()-new Date(e.createdAt).getTime();return Number.isFinite(t)&&t>=0?H2(t):`-`}function W2(e){return e===`PASSED`||e===`SUCCEEDED`?`success`:B2.has(e)?`info`:e===`CANCELLED`||e===`INTERRUPTED`?`warning`:`danger`}function G2(e){return[`ERROR`,`CANCELLED`,`UNAVAILABLE`].includes(e.targetRun.status)?e.targetRun.status:e.metrics.every(e=>!e.required||e.status===`PASS`)?`PASSED`:`FAILED`}async function K2(e,t){try{let n=await e.json();return n?.error?.message||n?.detail?.message||t}catch{return t}}var q2=[{id:`response_contract@v1`,label:`响应契约`},{id:`runtime_budget@v1`,label:`运行预算`},{id:`tool_trajectory@v1`,label:`工具轨迹`},{id:`reference_match@v1`,label:`参考答案匹配`}],J2=q2.slice(0,3).map(e=>e.id);function Y2({refreshTick:e,onOpenRun:t=e=>window.history.pushState(null,``,`#/evaluations/${encodeURIComponent(e)}`)}){let n=(0,s.useRef)(null),r=(0,s.useRef)(0),[i,a]=(0,s.useState)([]),[o,c]=(0,s.useState)({builds:[]}),[l,u]=(0,s.useState)([]),[d,f]=(0,s.useState)(!0),[p,m]=(0,s.useState)(``),[h,_]=(0,s.useState)(!1),[v,y]=(0,s.useState)(!1),[b,x]=(0,s.useState)(``),[S,C]=(0,s.useState)(``),[w,T]=(0,s.useState)(!1),[E,D]=(0,s.useState)(``),[k,A]=(0,s.useState)(`a2a`),[j,M]=(0,s.useState)(``),[N,P]=(0,s.useState)(``),[F,I]=(0,s.useState)(120),[L,R]=(0,s.useState)(!1),[z,B]=(0,s.useState)(()=>[...J2]),V=(0,s.useCallback)(async()=>{let e=++r.current;n.current?.abort();let t=new AbortController;n.current=t;try{let n=await g(`/api/v1/evaluation-runs`,{signal:t.signal});if(!n.ok)throw Error(await K2(n,`评测任务加载失败`));let i=await n.json();e===r.current&&(a(i.items||[]),m(``))}catch(n){if(t.signal.aborted)return;e===r.current&&m(n instanceof Error?n.message:`评测任务加载失败`)}finally{e===r.current&&f(!1)}},[]),H=(0,s.useCallback)(async()=>{try{let[e,t]=await Promise.all([g(`/api/v1/evaluation-targets`),g(`/api/v1/agents`)]);if(!e.ok)return;let[n,r]=await Promise.all([e.json(),t.ok?t.json():Promise.resolve({items:[]})]);c({builds:n.builds||[]}),u(r.items||[])}catch{}},[]);(0,s.useEffect)(()=>{f(!0),V(),H()},[H,V,e]),(0,s.useEffect)(()=>{if(!i.some(e=>B2.has(e.status)))return;let e=()=>{document.visibilityState===`visible`&&V()},t=window.setInterval(e,1e3);return document.addEventListener(`visibilitychange`,e),()=>{window.clearInterval(t),document.removeEventListener(`visibilitychange`,e)}},[V,i]),(0,s.useEffect)(()=>()=>n.current?.abort(),[]);function ee(e){if(A(e),e!==`studio_build`){P(``);return}let t=l.find(e=>o.builds.some(t=>t.agentId===e.metadata.id))?.metadata.id||o.builds[0]?.agentId||``;M(t),P(o.builds.find(e=>e.agentId===t)?.id||``)}let te=(0,s.useMemo)(()=>o.builds.filter(e=>e.agentId===j),[o.builds,j]);(0,s.useEffect)(()=>{k===`studio_build`&&M(e=>e&&o.builds.some(t=>t.agentId===e)?e:l.find(e=>o.builds.some(t=>t.agentId===e.metadata.id))?.metadata.id||o.builds[0]?.agentId||``)},[l,o.builds,k]),(0,s.useEffect)(()=>{k===`studio_build`&&P(e=>te.some(t=>t.id===e)?e:te[0]?.id||``)},[te,k]);async function ne(e){e.preventDefault(),y(!0),x(``);try{let e=await g(`/api/v1/evaluations`,{method:`POST`,headers:{"Content-Type":`application/json`,"Idempotency-Key":`evaluation-${Date.now()}`},body:JSON.stringify({evalsetFile:S.trim(),target:{kind:k,locator:N.trim()},config:{timeoutSeconds:F,failFast:L,dataPolicy:`local_only`,evaluators:z}})});if(!e.ok)throw Error(await K2(e,`评测任务创建失败`));_(!1),x(`评测任务已创建`),J(`评测任务已创建`,S.trim()),await V()}catch(e){J(`评测任务创建失败`,e instanceof Error?e.message:`请稍后重试`,`error`)}finally{y(!1)}}async function U(e){T(!0),D(``);let t=new FormData;t.append(`file`,e);try{let e=await g(`/api/v1/evaluation-files`,{method:`POST`,body:t});if(!e.ok)throw Error(await K2(e,`EvalSet 文件导入失败`));let n=await e.json();C(n.path||``)}catch(e){D(e instanceof Error?e.message:`EvalSet 文件导入失败`)}finally{T(!1)}}let re=(0,s.useMemo)(()=>[{id:`evalset`,header:`EvalSet / Run`,minWidth:260,cell:e=>(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`strong`,{children:e.evalset.name||`未命名 EvalSet`}),(0,G.jsx)(`span`,{className:`resource-origin mono`,children:e.id})]})},{id:`target`,header:`Target`,minWidth:180,cell:e=>(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{children:e.target.label||e.target.kind||`-`}),(0,G.jsx)(`span`,{className:`resource-origin mono`,children:e.target.kind||`-`})]})},{id:`status`,header:`状态`,width:120,cell:e=>(0,G.jsx)(`span`,{className:`status-badge ${W2(e.status)}`,children:e.status})},{id:`progress`,header:`进度 / Case`,minWidth:150,cell:e=>e.summary?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`strong`,{children:[e.summary.passedCases,` / `,e.summary.totalCases]}),(0,G.jsx)(`span`,{className:`resource-origin`,children:`通过`})]}):e.progress?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`strong`,{children:[e.progress.current,` / `,e.progress.total]}),(0,G.jsx)(`span`,{className:`resource-origin`,children:e.progress.caseId||`执行中`})]}):(0,G.jsx)(`span`,{children:`等待开始`})},{id:`createdAt`,header:`创建时间`,minWidth:150,cell:e=>V2(e.createdAt)},{id:`duration`,header:`耗时`,width:100,cell:U2}],[]),ie=i.filter(e=>B2.has(e.status)).length,ae=i.filter(e=>e.hasReport).filter(e=>e.status===`PASSED`).length,oe=i.filter(e=>[`FAILED`,`ERROR`,`INTERRUPTED`].includes(e.status)).length,se=k===`a2a`?`Agent 地址`:k===`local_source`?`Agent 源码目录`:`Build`;return(0,G.jsxs)(`div`,{className:`page-container evaluation-page`,"data-layout":`data`,"data-scroll-mode":`data`,children:[(0,G.jsx)(Sd,{children:(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:()=>_(!0),children:[(0,G.jsx)(Xe,{size:15}),(0,G.jsx)(`span`,{children:`新建评测`})]})}),b&&(0,G.jsx)(`p`,{className:`sr-only`,role:`status`,children:b}),(0,G.jsxs)(`section`,{className:`evaluation-page__metrics`,"aria-label":`评测汇总`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`全部`}),(0,G.jsx)(`strong`,{children:i.length})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`运行中`}),(0,G.jsx)(`strong`,{children:ie})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`已通过`}),(0,G.jsx)(`strong`,{children:ae})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`异常`}),(0,G.jsx)(`strong`,{children:oe})]})]}),(0,G.jsxs)(`section`,{className:`evaluation-page__run-list`,"aria-label":`评测运行`,children:[(0,G.jsx)(`div`,{className:`evaluation-page__panel-header`,children:(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`评测运行`}),(0,G.jsxs)(`span`,{children:[i.length,` 个任务`]})]})}),(0,G.jsx)(_m,{columns:re,data:i,getRowId:e=>e.id,caption:`评测运行列表`,minWidth:980,loading:d,error:p,onRetry:()=>void V(),onRowActivate:e=>t(e.id),rowAriaLabel:e=>`打开评测 ${e.evalset.name||e.id}`,empty:{icon:(0,G.jsx)(O,{size:22}),title:`还没有评测任务`,description:`创建评测后即可在这里查看结果。`}})]}),h&&(0,G.jsx)(BD,{title:`新建评测`,subtitle:`选择 EvalSet、Target 和评估器。任务创建后将在后台执行。`,wide:!0,closeDisabled:v,onClose:()=>_(!1),footer:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`drawer-footer-spacer`}),(0,G.jsx)(`button`,{className:`button tertiary`,type:`button`,onClick:()=>_(!1),disabled:v,children:`取消`}),(0,G.jsx)(`button`,{className:`button accent`,type:`submit`,form:`evaluation-create-form`,disabled:v||w||!S.trim()||!N.trim()||!z.length,children:v?`正在创建`:`开始评测`})]}),children:(0,G.jsxs)(`form`,{id:`evaluation-create-form`,className:`evaluation-page__create form-grid two-columns`,onSubmit:ne,children:[(0,G.jsxs)(Y,{className:`evaluation-page__field--wide`,label:`EvalSet 文件`,htmlFor:`evaluation-evalset`,requirement:`required`,children:[(0,G.jsxs)(`div`,{className:`evaluation-page__evalset-picker`,children:[(0,G.jsx)(`input`,{id:`evaluation-evalset`,className:`sr-only`,type:`file`,accept:`.yaml,.yml,.json,application/json,application/yaml,text/yaml`,"aria-label":`选择 EvalSet 文件`,disabled:w,onChange:e=>{let t=e.target.files?.[0];e.target.value=``,t&&U(t)}}),(0,G.jsxs)(`label`,{className:`button secondary`,htmlFor:`evaluation-evalset`,children:[(0,G.jsx)(we,{size:15}),(0,G.jsx)(`span`,{children:w?`正在导入`:`选择文件`})]}),(0,G.jsx)(`span`,{className:`evaluation-page__evalset-path`,title:S,children:S||`尚未选择 EvalSet`})]}),E&&(0,G.jsx)(`p`,{className:`studio-field-error`,role:`alert`,children:E})]}),(0,G.jsx)(Y,{label:`Target 类型`,requirement:`required`,children:(0,G.jsx)(Fh,{ariaLabel:`Target 类型`,value:k,options:[{value:`a2a`,label:`A2A Agent`},{value:`local_source`,label:`本地源码`},{value:`studio_build`,label:`Studio Build`}],onValueChange:e=>ee(e)})}),k===`studio_build`&&(0,G.jsx)(Y,{label:`Agent`,htmlFor:`evaluation-agent`,requirement:`required`,children:(0,G.jsx)(Fh,{id:`evaluation-agent`,ariaLabel:`Studio Agent`,value:j,placeholder:`请选择 Agent`,options:l.map(e=>({value:e.metadata.id,label:e.metadata.name,description:o.builds.some(t=>t.agentId===e.metadata.id)?e.metadata.id:`${e.metadata.id} · 需先构建`,disabled:!o.builds.some(t=>t.agentId===e.metadata.id)})),disabled:!l.some(e=>o.builds.some(t=>t.agentId===e.metadata.id)),onValueChange:M})}),(0,G.jsx)(Y,{label:se,htmlFor:`evaluation-locator`,requirement:`required`,children:k===`studio_build`?(0,G.jsx)(Fh,{id:`evaluation-locator`,ariaLabel:`Studio Build`,value:N,placeholder:`暂无成功 Build`,options:te.map(e=>({value:e.id,label:e.id,description:e.runtime})),disabled:!te.length,onValueChange:P}):(0,G.jsx)(`input`,{id:`evaluation-locator`,value:N,onChange:e=>P(e.target.value),required:!0,placeholder:k===`a2a`?`https://agent.example.test/a2a`:`.`})}),(0,G.jsx)(Y,{label:`超时(秒)`,htmlFor:`evaluation-timeout`,requirement:`required`,children:(0,G.jsx)(`input`,{id:`evaluation-timeout`,type:`number`,min:1,max:3600,value:F,onChange:e=>I(Number(e.target.value)),required:!0})}),(0,G.jsx)(Y,{label:`运行策略`,children:(0,G.jsxs)(`label`,{className:`checkbox-row evaluation-page__fail-fast`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:L,onChange:e=>R(e.target.checked)}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`Fail fast`}),(0,G.jsx)(`small`,{children:`首个失败 Case 后停止`})]})]})}),(0,G.jsxs)(Y,{className:`evaluation-page__field--wide`,label:`评估器`,requirement:`required`,children:[(0,G.jsx)(`div`,{className:`evaluation-page__evaluator-options`,role:`group`,"aria-label":`评估器`,children:q2.map(e=>(0,G.jsxs)(`label`,{className:`checkbox-row`,children:[(0,G.jsx)(`input`,{type:`checkbox`,"aria-label":e.label,checked:z.includes(e.id),onChange:t=>B(n=>t.target.checked?[...n,e.id]:n.filter(t=>t!==e.id))}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:e.label}),(0,G.jsx)(`small`,{children:e.id})]})]},e.id))}),!z.length&&(0,G.jsx)(`p`,{className:`studio-field-error`,role:`alert`,children:`至少选择一个评估器`})]})]})})]})}function X2(e){return typeof e==`string`?e:e==null?`-`:JSON.stringify(e,null,2)}function Z2(e,t,n,r){let i=n.slice(0,t).filter(t=>t.type===e.type).length;return r.filter(t=>t.evidence?.assertion===e.type)[i]}function Q2({runId:e,onBack:t}){let n=(0,s.useRef)(null),[r,i]=(0,s.useState)(null),[a,o]=(0,s.useState)(``),[c,l]=(0,s.useState)(!0),[u,d]=(0,s.useState)(``),[f,p]=(0,s.useState)(!1),m=(0,s.useCallback)(async()=>{n.current?.abort();let t=new AbortController;n.current=t;try{let n=await g(`/api/v1/evaluation-runs/${encodeURIComponent(e)}`,{signal:t.signal});if(!n.ok)throw Error(await K2(n,`评测详情加载失败`));let r=await n.json();i(r),o(e=>r.report?.caseRuns.some(t=>t.caseId===e)?e:r.report?.caseRuns[0]?.caseId||``),d(``)}catch(e){if(t.signal.aborted)return;d(e instanceof Error?e.message:`评测详情加载失败`)}finally{t.signal.aborted||l(!1)}},[e]);(0,s.useEffect)(()=>(l(!0),m(),()=>n.current?.abort()),[m]),(0,s.useEffect)(()=>{if(!r||!B2.has(r.status))return;let e=()=>{document.visibilityState===`visible`&&m()},t=window.setInterval(e,1e3);return document.addEventListener(`visibilitychange`,e),()=>{window.clearInterval(t),document.removeEventListener(`visibilitychange`,e)}},[m,r]);let h=(0,s.useMemo)(()=>r?.report?.caseRuns.find(e=>e.caseId===a)||null,[a,r]),_=(0,s.useMemo)(()=>new Map((r?.report?.spec.evalset.cases||[]).map(e=>[e.id,e])),[r]),v=h?_.get(h.caseId):void 0;async function y(){if(!(!r||!B2.has(r.status)||f)){p(!0);try{let e=await g(`/api/v1/operations/${encodeURIComponent(r.operationId)}:cancel`,{method:`POST`});if(!e.ok)throw Error(await K2(e,`取消评测失败`));J(`已提交取消请求`,r.evalset.name||r.id),await m()}catch(e){J(`取消评测失败`,e instanceof Error?e.message:`请稍后重试`,`error`)}finally{p(!1)}}}return(0,G.jsxs)(`div`,{className:`page-container evaluation-page evaluation-detail-page`,"data-layout":`data`,"data-scroll-mode":`workbench`,children:[(0,G.jsxs)(`header`,{className:`page-header`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h1`,{children:r?.evalset.name||`评测详情`}),(0,G.jsx)(`p`,{className:`mono`,children:e})]}),(0,G.jsxs)(`div`,{className:`header-actions`,children:[(0,G.jsxs)(`button`,{className:`button tertiary`,type:`button`,onClick:t,children:[(0,G.jsx)(A,{size:15}),(0,G.jsx)(`span`,{children:`返回评测列表`})]}),(0,G.jsxs)(`button`,{className:`button secondary`,type:`button`,onClick:()=>void m(),children:[(0,G.jsx)(et,{size:15}),(0,G.jsx)(`span`,{children:`刷新`})]}),r&&B2.has(r.status)&&(0,G.jsxs)(`button`,{className:`button danger`,type:`button`,onClick:()=>void y(),disabled:f,children:[(0,G.jsx)(ut,{size:14}),(0,G.jsx)(`span`,{children:f?`正在取消`:`取消评测`})]})]})]}),c&&!r?(0,G.jsxs)(`div`,{className:`evaluation-page__detail-empty`,children:[(0,G.jsx)(O,{size:22}),(0,G.jsx)(`strong`,{children:`正在加载评测详情`})]}):u&&!r?(0,G.jsxs)(`div`,{className:`evaluation-page__detail-empty`,role:`alert`,children:[(0,G.jsx)(`strong`,{children:`评测详情加载失败`}),(0,G.jsx)(`span`,{children:u}),(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:()=>void m(),children:`重试`})]}):r?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`section`,{className:`evaluation-detail-page__overview`,"aria-label":`评测运行概览`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`状态`}),(0,G.jsx)(`strong`,{children:(0,G.jsx)(`span`,{className:`status-badge ${W2(r.status)}`,children:r.status})}),(0,G.jsx)(`small`,{children:r.error?.message||`任务状态`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`进度`}),(0,G.jsx)(`strong`,{children:r.progress?`${r.progress.current} / ${r.progress.total}`:r.summary?`${r.summary.passedCases} / ${r.summary.totalCases}`:`等待开始`}),(0,G.jsx)(`small`,{children:r.progress?.caseId||(r.hasReport?`通过 Case`:`尚未执行 Case`)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`Target`}),(0,G.jsx)(`strong`,{children:r.target.label||r.target.kind||`-`}),(0,G.jsx)(`small`,{children:r.target.kind||`-`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`耗时`}),(0,G.jsx)(`strong`,{children:U2(r)}),(0,G.jsx)(`small`,{children:V2(r.createdAt)})]})]}),!r.report&&(0,G.jsxs)(`section`,{className:`evaluation-detail-page__pending`,children:[(0,G.jsx)(O,{size:20}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:B2.has(r.status)?`评测正在后台执行`:`该任务没有可用报告`}),(0,G.jsx)(`span`,{children:r.progress?.caseId?`当前 Case:${r.progress.caseId}`:r.error?.message||`等待运行状态更新。`})]})]}),r.report&&(0,G.jsxs)(`section`,{className:`evaluation-detail-page__report`,children:[(0,G.jsxs)(`div`,{className:`evaluation-page__panel-header`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`评测报告`}),(0,G.jsxs)(`span`,{children:[r.report.caseRuns.length,` 个 Case`]})]}),(0,G.jsx)(`span`,{className:`status-badge ${W2(r.report.status)}`,children:r.report.status})]}),(0,G.jsxs)(`dl`,{className:`evaluation-page__snapshot`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Target`}),(0,G.jsx)(`dd`,{children:r.report.spec.target.kind})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Runtime`}),(0,G.jsx)(`dd`,{children:r.report.spec.target.runtime||`-`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Revision Digest`}),(0,G.jsx)(`dd`,{className:`mono`,children:r.report.spec.target.revisionDigest})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Entrypoint`}),(0,G.jsx)(`dd`,{className:`mono`,children:r.report.spec.target.entrypoint})]})]}),(0,G.jsxs)(`section`,{className:`evaluation-page__dataset`,"aria-labelledby":`evaluation-dataset-heading`,children:[(0,G.jsxs)(`div`,{className:`evaluation-page__dataset-heading`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{id:`evaluation-dataset-heading`,children:`数据集快照`}),typeof r.report.spec.evalset.metadata?.description==`string`&&(0,G.jsx)(`p`,{children:r.report.spec.evalset.metadata.description})]}),(0,G.jsx)(`span`,{children:r.report.spec.evalset.schemaVersion||`ksadk.eval/v1`})]}),(0,G.jsxs)(`dl`,{className:`evaluation-page__dataset-summary`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`名称`}),(0,G.jsx)(`dd`,{children:r.report.spec.evalset.name})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Case`}),(0,G.jsx)(`dd`,{children:r.report.spec.evalset.cases?.length??r.report.caseRuns.length})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`来源格式`}),(0,G.jsx)(`dd`,{children:r.report.spec.evalset.sourceFormat||`-`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:`Content Digest`}),(0,G.jsx)(`dd`,{className:`mono`,children:r.report.spec.evalset.contentDigest||`-`})]})]})]}),(0,G.jsxs)(`div`,{className:`evaluation-page__case-layout`,children:[(0,G.jsx)(`div`,{className:`evaluation-page__case-list`,"aria-label":`Case 列表`,children:r.report.caseRuns.map(e=>{let t=G2(e),n=_.get(e.caseId)?.turns.at(-1)?.input;return(0,G.jsxs)(`button`,{type:`button`,className:e.caseId===a?`active`:``,onClick:()=>o(e.caseId),children:[(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:e.caseId}),(0,G.jsx)(`small`,{className:`evaluation-page__case-preview`,children:n||`Attempt ${e.attempt}`})]}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`span`,{className:`status-badge ${W2(t)}`,children:t}),(0,G.jsx)(`small`,{children:H2(e.targetRun.durationMs)})]})]},e.caseId)})}),(0,G.jsx)(`div`,{className:`evaluation-page__case-detail`,children:h?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`h3`,{children:`输入与预期`}),v?(0,G.jsx)(`div`,{className:`evaluation-page__turns`,children:v.turns.map((e,t)=>(0,G.jsxs)(`article`,{children:[(0,G.jsxs)(`strong`,{children:[`Turn `,t+1]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`输入`}),(0,G.jsx)(`pre`,{children:e.input})]}),e.expectedOutput!==void 0&&e.expectedOutput!==null&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`期望输出`}),(0,G.jsx)(`pre`,{children:e.expectedOutput})]}),!!e.expectedTools?.length&&(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{children:`期望工具`}),(0,G.jsx)(`div`,{className:`evaluation-page__expected-tools`,children:e.expectedTools.map((e,n)=>(0,G.jsx)(`code`,{children:String(e.name||X2(e))},`${t}-${n}`))})]})]},`${v.id}-turn-${t}`))}):(0,G.jsx)(`p`,{className:`evaluation-page__muted`,children:`该报告没有保存 Case 输入快照。`})]}),!!v?.assertions?.length&&(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`h3`,{children:`断言与评估结果`}),(0,G.jsx)(`div`,{className:`evaluation-page__assertions`,children:v.assertions.map((e,t,n)=>{let r=Z2(e,t,n,h.metrics);return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:e.type}),(0,G.jsx)(`small`,{children:e.required===!1?`可选`:`必需`})]}),(0,G.jsx)(`code`,{children:X2(e.value)}),(0,G.jsx)(`span`,{className:`status-badge ${W2(r?.status===`PASS`?`PASSED`:r?.status||`UNAVAILABLE`)}`,children:r?.status||`-`})]},`${e.type}-${t}`)})})]}),(0,G.jsxs)(`section`,{children:[(0,G.jsxs)(`div`,{className:`evaluation-page__section-title`,children:[(0,G.jsx)(`h3`,{children:`Agent 输出`}),(0,G.jsxs)(`span`,{children:[H2(h.targetRun.durationMs),` · `,h.targetRun.usage?.reported?`${h.targetRun.usage.totalTokens||0} Tokens`:`Token 未上报`]})]}),(0,G.jsx)(`pre`,{children:h.targetRun.output||h.targetRun.errorMessage||`无输出`})]}),(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`h3`,{children:`评估指标`}),(0,G.jsx)(`div`,{className:`evaluation-page__evidence`,children:h.metrics.map(e=>(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`strong`,{children:[e.name,`@`,e.version||`v1`]}),(0,G.jsx)(`span`,{className:`status-badge ${W2(e.status===`PASS`?`PASSED`:e.status)}`,children:e.status}),(0,G.jsx)(`span`,{children:e.score??`-`})]},`${e.name}-${e.version||`v1`}-${e.status}`))})]}),(0,G.jsx)(`section`,{className:`evaluation-page__case-evidence`,children:(0,G.jsxs)(`details`,{children:[(0,G.jsx)(`summary`,{children:`执行证据`}),(0,G.jsx)(`h4`,{children:`TraceRef`}),(0,G.jsx)(`pre`,{children:h.targetRun.traceRef?JSON.stringify(h.targetRun.traceRef,null,2):`未上报 TraceRef`}),!!v&&Object.keys(v.metadata||{}).length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`h4`,{children:`Case Metadata`}),(0,G.jsx)(`pre`,{children:JSON.stringify(v.metadata,null,2)})]})]})})]}):(0,G.jsx)(`div`,{className:`evaluation-page__detail-empty`,children:(0,G.jsx)(`span`,{children:`选择一个 Case 查看详情。`})})})]})]})]}):null]})}var $2=[{value:`system`,label:`跟随系统`,description:`随 macOS 或浏览器切换`,icon:ze},{value:`light`,label:`浅色`,description:`始终使用明亮界面`,icon:dt},{value:`dark`,label:`深色`,description:`始终使用暗色界面`,icon:Be}],e4=[{id:`general`,label:`通用`},{id:`credentials`,label:`模型与凭证`},{id:`cloud`,label:`云端连接`},{id:`runtime`,label:`运行与沙箱`},{id:`about`,label:`关于`}];function t4(e){return e===`workspace`||e===`session`?`工作区`:e===`environment`?`启动环境`:e===`missing`?`未配置`:e}function n4(e){let t=(e||`read-only`).replaceAll(`_`,`-`);return t===`workspace-write`||t===`workspace-write-auto`||t===`full-access`?t:`read-only`}function r4({themePreference:e,onThemePreferenceChange:t,initialSection:n=`general`,onClose:r}){let[i,a]=(0,s.useState)(null),o=y_({resolver:k_(pz),defaultValues:{sandbox:`read-only`,buildAfterCreate:!0,codexProxy:`auto`,cloudRegion:``,cloudBucket:``,cloudAccessKey:``,cloudSecretKey:``,cloudAccountId:``}}),[c,l]=(0,s.useState)([]),[u,d]=(0,s.useState)([]),[f,p]=(0,s.useState)(!1),[m,h]=(0,s.useState)(null),[_,v]=(0,s.useState)(n),y=(0,s.useCallback)(e=>{v(e),document.getElementById(`settings-${e}`)?.scrollIntoView({behavior:`smooth`,block:`start`})},[]);(0,s.useEffect)(()=>{let e=requestAnimationFrame(()=>y(n));return()=>cancelAnimationFrame(e)},[n,y]);let b=(0,s.useCallback)(async()=>{try{let[e,t]=await Promise.all([g(`/api/v1/catalog/resources?limit=200`).then(e=>e.json()),g(`/api/v1/catalog/models`).then(e=>e.json()).catch(()=>null)]),n=(e.items||[]).filter(e=>e.kind===`model`);t?.items?.length&&(n=[...n.filter(e=>e.source===`local`||e.source===`market`),...t.items]);let r=[],i=new Set;for(let e of n){let t=e.requiredSecretRefs?.[0]||e.contract?.credentialRef||``;if(!t||i.has(t))continue;i.add(t);let n=t.replace(/^env:\/\//,``),a={configured:!1,source:`missing`};try{a=await g(`/api/v1/credentials/${encodeURIComponent(n)}`).then(e=>e.json())}catch{}r.push({ref:t,name:n,configured:!!a?.configured,source:a?.source||`missing`,model:e})}l(r)}catch{l([])}},[]);(0,s.useEffect)(()=>{(async()=>{try{let e=await g(`/api/v1/system/settings`).then(e=>e.json());a(e),o.reset({sandbox:n4(e.sandbox),buildAfterCreate:e.buildAfterCreate!==!1,codexProxy:e.codexProxy||`auto`,cloudRegion:e.cloudRegion||``,cloudBucket:e.cloudBucket||``})}catch{a({})}await b();try{let e=await g(`/api/v1/system/bootstrap`).then(e=>e.json());d([[`工作区`,e?.workspace?.name||`-`],[`路径`,e?.workspace?.path||`-`],[`API 版本`,e?.apiVersion||`-`]])}catch{d([])}})()},[b,o]);async function x(e){p(!0);try{let t={sandbox:e.sandbox,buildAfterCreate:e.buildAfterCreate,codexProxy:e.codexProxy};e.cloudRegion.trim()&&(t.cloudRegion=e.cloudRegion.trim()),e.cloudBucket.trim()&&(t.cloudBucket=e.cloudBucket.trim()),e.cloudAccessKey.trim()&&(t.cloudAccessKey=e.cloudAccessKey.trim()),e.cloudSecretKey.trim()&&(t.cloudSecretKey=e.cloudSecretKey.trim()),e.cloudAccountId.trim()&&(t.cloudAccountId=e.cloudAccountId.trim());let n=await g(`/api/v1/system/settings`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)});if(!n.ok){let e=await n.json().catch(()=>null);if(Nb(e,o.setError)){p(!1);return}throw Error(e?.error?.message||`保存失败(${n.status})`)}r(),J(`设置已保存`,`工作区级配置已写入 .agentkit/settings.yaml。`)}catch(e){J(`保存失败`,e.message,`error`)}p(!1)}return(0,G.jsx)(Vg,{...o,children:(0,G.jsxs)(BD,{title:`设置`,subtitle:`工作区级配置,保存到 .agentkit/settings.yaml,重启后仍生效。`,wide:!0,onClose:r,footer:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:r,children:`取消`}),(0,G.jsxs)(`button`,{className:`button accent`,type:`button`,onClick:o.handleSubmit(x),disabled:f||i==null,children:[(0,G.jsx)(V,{size:15}),(0,G.jsx)(`span`,{children:f?`保存中`:`保存`})]})]}),children:[(0,G.jsxs)(`div`,{className:`settings-layout`,children:[(0,G.jsx)(`nav`,{className:`settings-section-nav`,"aria-label":`设置分类`,children:e4.map(e=>(0,G.jsx)(`button`,{className:_===e.id?`active`:``,type:`button`,onClick:()=>y(e.id),children:e.label},e.id))}),(0,G.jsxs)(`div`,{className:`settings-sections`,children:[(0,G.jsxs)(`section`,{id:`settings-general`,className:`settings-group`,tabIndex:-1,children:[(0,G.jsx)(`h3`,{children:`外观`}),(0,G.jsx)(`div`,{className:`appearance-options`,role:`radiogroup`,"aria-label":`颜色模式`,children:$2.map(n=>{let r=n.icon;return(0,G.jsxs)(`label`,{className:`appearance-option${e===n.value?` selected`:``}`,children:[(0,G.jsx)(r,{"aria-hidden":`true`}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:n.label}),(0,G.jsx)(`small`,{children:n.description})]}),(0,G.jsx)(`input`,{type:`radio`,name:`studio-theme`,value:n.value,checked:e===n.value,onChange:()=>t(n.value)})]},n.value)})}),(0,G.jsx)(`p`,{className:`appearance-note`,children:`外观仅保存到当前浏览器,并会立即应用到 Studio 与会话工作台。`})]}),(0,G.jsxs)(`section`,{id:`settings-runtime`,className:`settings-group`,tabIndex:-1,children:[(0,G.jsx)(`h3`,{children:`执行与沙箱`}),(0,G.jsx)(Y,{label:`默认执行权限(Codex)`,requirement:`required`,htmlFor:`settingSandbox`,hint:`新 Agent 默认值;会话页可单次覆盖,下一轮对话生效。`,error:o.formState.errors.sandbox?.message,children:(0,G.jsx)(Fh,{id:`settingSandbox`,ariaLabel:`默认执行权限`,value:o.watch(`sandbox`),options:[{value:`read-only`,label:`只读沙箱(不可写)`},{value:`workspace-write`,label:`请求批准(写工作区,每次询问)`},{value:`workspace-write-auto`,label:`替我审批(写工作区,仅风险询问)`},{value:`full-access`,label:`完全访问(不受限读写)`}],onValueChange:e=>o.setValue(`sandbox`,e,{shouldDirty:!0,shouldValidate:!0})})}),(0,G.jsx)(`div`,{className:`studio-form-field`,children:(0,G.jsxs)(`label`,{className:`checkbox-row`,children:[(0,G.jsx)(`input`,{type:`checkbox`,...o.register(`buildAfterCreate`)}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`创建后立即构建`}),(0,G.jsx)(`small`,{children:`新建 Agent 保存后自动构建并进入会话`})]})]})})]}),(0,G.jsxs)(`section`,{id:`settings-credentials`,className:`settings-group`,tabIndex:-1,children:[(0,G.jsx)(`h3`,{children:`凭证`}),c.length===0?(0,G.jsx)(`div`,{className:`settings-empty`,children:`暂无凭证`}):c.map(e=>(0,G.jsxs)(`div`,{className:`settings-credential`,children:[(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:e.name}),(0,G.jsx)(`small`,{children:e.configured?`已配置 · ${t4(e.source)}`:`未配置`})]}),(0,G.jsx)(`button`,{className:`button secondary small`,type:`button`,onClick:()=>h(e.model),children:`配置`})]},e.ref))]}),(0,G.jsxs)(`section`,{id:`settings-runtime-proxy`,className:`settings-group`,tabIndex:-1,children:[(0,G.jsx)(`h3`,{children:`运行时`}),(0,G.jsx)(Y,{label:`Codex Responses→Chat 代理`,requirement:`required`,htmlFor:`settingCodexProxy`,hint:`非原生 Responses 上游可启用兼容代理。`,error:o.formState.errors.codexProxy?.message,children:(0,G.jsx)(Fh,{id:`settingCodexProxy`,ariaLabel:`Codex Responses 代理`,value:o.watch(`codexProxy`),options:[{value:`auto`,label:`自动(探测)`},{value:`forced`,label:`强制启用`},{value:`direct`,label:`强制直连`}],onValueChange:e=>o.setValue(`codexProxy`,e,{shouldDirty:!0,shouldValidate:!0})})})]}),(0,G.jsxs)(`section`,{id:`settings-cloud`,className:`settings-group`,tabIndex:-1,children:[(0,G.jsx)(`h3`,{children:`云端部署`}),(0,G.jsx)(`p`,{className:`helper`,children:`配置云端部署使用的区域和制品存储。`}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`Region`,requirement:`optional`,htmlFor:`settingCloudRegion`,error:o.formState.errors.cloudRegion?.message,children:(0,G.jsx)(`input`,{id:`settingCloudRegion`,placeholder:`cn-beijing-6`,...o.register(`cloudRegion`)})}),(0,G.jsx)(Y,{label:`KS3 Bucket`,requirement:`optional`,htmlFor:`settingCloudBucket`,hint:`留空时复用启动环境或 SDK 默认 Bucket。`,error:o.formState.errors.cloudBucket?.message,children:(0,G.jsx)(`input`,{id:`settingCloudBucket`,placeholder:`agentengine-<account>-cn-beijing-6`,...o.register(`cloudBucket`)})})]}),(0,G.jsxs)(`div`,{className:`form-grid two-columns`,children:[(0,G.jsx)(Y,{label:`Access Key`,requirement:`optional`,htmlFor:`settingCloudAccessKey`,hint:`金山云账号 AK,用于云端请求签名;留空保留已保存值。`,error:o.formState.errors.cloudAccessKey?.message,children:(0,G.jsx)(`input`,{id:`settingCloudAccessKey`,type:`password`,autoComplete:`off`,placeholder:i?.cloudAccountConfigured?`已配置(留空保持不变)`:`AKLT...`,...o.register(`cloudAccessKey`)})}),(0,G.jsx)(Y,{label:`Secret Key`,requirement:`optional`,htmlFor:`settingCloudSecretKey`,hint:`金山云账号 SK;留空保留已保存值。`,error:o.formState.errors.cloudSecretKey?.message,children:(0,G.jsx)(`input`,{id:`settingCloudSecretKey`,type:`password`,autoComplete:`off`,placeholder:i?.cloudAccountConfigured?`已配置(留空保持不变)`:``,...o.register(`cloudSecretKey`)})})]}),(0,G.jsx)(Y,{label:`Account ID`,requirement:`optional`,htmlFor:`settingCloudAccountId`,hint:`主账号 ID(X-Ksc-Account-Id);可从金山云控制台获取。`,error:o.formState.errors.cloudAccountId?.message,children:(0,G.jsx)(`input`,{id:`settingCloudAccountId`,placeholder:`10203040...`,...o.register(`cloudAccountId`)})}),(0,G.jsxs)(`p`,{className:`helper`,children:[`云端账号:`,i?.cloudAccountConfigured?`已就绪`:`尚未配置`,`;云端部署:`,i?.cloudSignedAccountConfigured?`已就绪`:`尚未配置`]})]}),(0,G.jsxs)(`section`,{id:`settings-about`,className:`settings-group`,tabIndex:-1,children:[(0,G.jsx)(`h3`,{children:`关于`}),(0,G.jsx)(`dl`,{className:`trace-detail-grid`,children:u.map(([e,t])=>(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`dt`,{children:e}),(0,G.jsx)(`dd`,{children:t})]},e))})]})]})]}),m&&(0,G.jsx)(Az,{model:m,onClose:()=>h(null),onChanged:b})]})})}function i4(e){return String(e||``).replace(/\\u([0-9a-fA-F]{4})/g,(e,t)=>String.fromCharCode(Number.parseInt(t,16)))}function a4(e){let t=String(e||``).trim();for(let e=0;e<3;e+=1){if(!t)return t;let e=t[0],n=t[t.length-1];if(!(e===`{`&&n===`}`||e===`[`&&n===`]`||e===`"`&&n===`"`))return t.replace(/\\n/g,`
|
|
269
|
+
`).replace(/\\"/g,`"`);try{let e=JSON.parse(t);if(typeof e!=`string`)return o4(e);t=e.trim()}catch{return i4(t).replace(/\\n/g,`
|
|
270
|
+
`).replace(/\\"/g,`"`)}}return t}function o4(e){return typeof e==`string`?a4(e):Array.isArray(e)?e.map(e=>o4(e)):!e||typeof e!=`object`?e:Object.fromEntries(Object.entries(e).map(([e,t])=>[e,o4(t)]))}function s4(e){return typeof e==`string`?a4(e):o4(e)}function c4(e){return e===!1||typeof e==`string`&&e.trim().toLowerCase()===`false`}function l4(e){return e===!0||typeof e==`string`&&e.trim().toLowerCase()===`true`}function u4(e){return e==null||e===!1?!1:typeof e==`string`?e.trim().length>0:typeof e!=`object`||Object.keys(e).length>0}function d4(e){return String(e?.status||``).trim().toLowerCase()===`accepted_not_extracted`}function f4(e,t=0){if(!e||t>4)return!1;if(typeof e==`string`){let n=a4(e);return n!==e&&f4(n,t+1)}if(Array.isArray(e))return e.some(e=>f4(e,t+1));if(typeof e!=`object`||d4(e))return!1;if(c4(e.ok)||c4(e.success))return!0;let n=l4(e.ok)||l4(e.success),r=String(e.status||``).trim().toLowerCase();return!n&&[`error`,`failed`,`failure`].includes(r)||!n&&(u4(e.error_type)||u4(e.error_message)||u4(e.error))?!0:Object.values(e).some(e=>f4(e,t+1))}function p4(e){return e==null||e===``?!1:f4(s4(e))}var m4=class extends Error{code;status;capability;runId;cursor;cause;constructor(e,t,n={}){super(t),this.name=`ConversationClientError`,this.code=e,this.status=n.status,this.capability=n.capability,this.runId=n.runId,this.cursor=n.cursor,this.cause=n.cause}},h4=`conversation.ksadk.io/v1`,g4=/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/,_4=new Set([`native`,`translated`,`degraded`,`unavailable`]),v4=new Set([`user_message`,`assistant_text`,`reasoning`,`tool_call`,`approval`,`progress`,`plan`,`goal`,`artifact`,`a2ui`,`error`,`unknown`]),y4=new Set([`append`,`replace`,`completed`]),b4=new Set([`pending`,`streaming`,`completed`,`failed`]),x4=new Set([`public`,`internal`,`hidden`]),S4=new Set([`apiVersion`,`kind`,`inputId`,`sessionId`,`idempotencyKey`,`parts`,`modelRef`,`reasoning`,`extensions`]),C4=new Set([`kind`,`text`]),w4=new Set([`kind`,`attachmentRef`,`mediaType`,`name`]),T4=`ksadk.approval`,E4=`ksadk.collaboration`,D4=`ksadk.goal`;function O4(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function k4(e,t){return typeof e==`string`&&e.length>0&&e.length<=t}function A4(e,t,n=!1){return e==null||typeof e==`string`&&e.length<=t&&(n||e.length>0)}function j4(e,t){return Object.keys(e).every(e=>t.has(e))}function M4(e){let t=O4(e);return!t||typeof t.kind!=`string`?null:t.kind===`text`?!j4(t,C4)||!k4(t.text,131072)?null:{kind:`text`,text:t.text}:t.kind===`attachment`?!j4(t,w4)||!k4(t.attachmentRef,2048)||!k4(t.mediaType,256)||!A4(t.name,1024,!0)?null:{kind:`attachment`,attachmentRef:t.attachmentRef,mediaType:t.mediaType,...t.name===void 0?{}:{name:t.name}}:null}function N4(e){if(e===void 0)return{};let t=O4(e);if(!t||Object.keys(t).some(e=>!g4.test(e)||!e.includes(`.`)))return null;let n=t[T4],r=t[E4],i=t[D4];return n!==void 0&&![`ask`,`risk`,`full`].includes(String(n))||r!==void 0&&![`default`,`plan`].includes(String(r))||i!==void 0&&!k4(i,4096)?null:{...t}}function P4(e){let t=O4(e);if(!t||!j4(t,S4)||t.apiVersion!==h4||t.kind!==`ConversationInput`||!k4(t.inputId,256)||!k4(t.sessionId,256)||!k4(t.idempotencyKey,512)||!Array.isArray(t.parts)||t.parts.length===0||!A4(t.modelRef,256)||!A4(t.reasoning,64))return null;let n=t.parts.map(M4),r=N4(t.extensions);return n.some(e=>e===null)||r===null?null:{apiVersion:h4,kind:`ConversationInput`,inputId:t.inputId,sessionId:t.sessionId,idempotencyKey:t.idempotencyKey,parts:n,...t.modelRef===void 0?{}:{modelRef:t.modelRef},...t.reasoning===void 0?{}:{reasoning:t.reasoning},...t.extensions===void 0?{}:{extensions:r}}}function F4(e){let t=P4({...e,apiVersion:e.apiVersion||h4,kind:e.kind||`ConversationInput`});if(!t)throw new m4(`conversation_contract_mismatch`,`Conversation input does not match conversation.ksadk.io/v1.`);return t}function I4(e){let t=e.parts.map(e=>e.kind===`text`?`text`:e.mediaType.toLowerCase().startsWith(`image/`)?`attachment.image`:`attachment.file`);e.modelRef&&t.push(`model.select`),e.reasoning&&t.push(`reasoning.effort`);for(let n of Object.keys(e.extensions||{}))n===T4?t.push(`approval`):n===E4?e.extensions?.[n]===`plan`&&t.push(`plan`):n===D4?t.push(`goal`):t.push(n);return[...new Set(t)]}function L4(e,t){if(e.sessionId!==t.sessionId)throw new m4(`conversation_session_mismatch`,`Conversation input session does not match the active surface.`);for(let n of I4(t))if(!H4(e,n))throw new m4(`conversation_input_unsupported`,`Conversation input is not declared by the active surface.`,{capability:n});return t}function R4(e){let t=O4(e);return!t||!k4(t.name,128)||!g4.test(t.name)||!_4.has(t.mode)||!A4(t.reason,512,!0)||(t.mode===`degraded`||t.mode===`unavailable`)&&!k4(t.reason,512)?null:{name:t.name,mode:t.mode,...t.reason===void 0?{}:{reason:t.reason}}}function z4(e){if(e===void 0)return[];if(!Array.isArray(e))return null;let t=e.map(R4);if(t.some(e=>e===null))return null;let n=t;return new Set(n.map(e=>e.name)).size===n.length?n:null}function B4(e){let t=O4(e);if(!t||t.apiVersion!==h4||t.kind!==`ConversationSurface`||!k4(t.surfaceId,256)||!k4(t.sessionId,256)||!k4(t.providerRef,256))return null;let n=z4(t.inputs),r=z4(t.outputs);return!n||!r?null:{apiVersion:h4,kind:`ConversationSurface`,surfaceId:t.surfaceId,sessionId:t.sessionId,providerRef:t.providerRef,inputs:n,outputs:r}}function V4(e){let t=O4(e);if(!t||t.apiVersion!==h4||t.kindVersion!==1||!k4(t.itemId,512)||!A4(t.parentItemId,512)||!Array.isArray(t.sourceEventIds)||t.sourceEventIds.length===0||t.sourceEventIds.some(e=>typeof e!=`string`||e.length===0)||new Set(t.sourceEventIds).size!==t.sourceEventIds.length||!k4(t.sessionId,256)||!k4(t.runId,256)||!k4(t.kind,128)||!y4.has(t.operation)||!b4.has(t.lifecycle)||t.visibility!==void 0&&!x4.has(t.visibility)||!k4(t.payloadSchemaRef,256)||!A4(t.capabilityRef,256,!0))return null;let n=t.operation,r=t.lifecycle;if(n===`completed`&&r!==`completed`&&r!==`failed`)return null;let i=t.payload===void 0?{}:O4(t.payload),a=t.nativeRef===void 0?{}:O4(t.nativeRef);if(!i||!a)return null;let o=String(t.kind||`unknown`),s=v4.has(o)?o:`unknown`;return{apiVersion:h4,kindVersion:1,itemId:t.itemId,...t.parentItemId===void 0?{}:{parentItemId:t.parentItemId},sourceEventIds:[...t.sourceEventIds],sessionId:t.sessionId,runId:t.runId,kind:s,operation:n,lifecycle:r,visibility:s===`unknown`&&o!==`unknown`?`hidden`:t.visibility||`public`,payloadSchemaRef:t.payloadSchemaRef,payload:s===`unknown`&&o!==`unknown`?{originalKind:o,summary:`This content type is not supported by the current renderer.`}:{...i},...t.capabilityRef===void 0?{}:{capabilityRef:t.capabilityRef},nativeRef:{...a}}}function H4(e,...t){return e.inputs.some(e=>t.includes(e.name)&&(e.mode===`native`||e.mode===`translated`))}var U4={user_message:`conversation.item.user_message/v1`,assistant_text:`conversation.item.assistant_text/v1`,reasoning:`conversation.item.reasoning/v1`,tool_call:`conversation.item.tool-call/v1`,approval:`conversation.item.approval/v1`,artifact:`conversation.item.artifact/v1`,a2ui:`conversation.item.a2ui/v1`,error:`conversation.item.error/v1`};function W4(e){return e.lifecycle===`completed`||e.lifecycle===`failed`}var G4=new Set([`aborted`,`canceled`,`cancelled`,`failed`,`incomplete`,`interrupted`]);function K4(e){if(e.kind!==`progress`&&e.kind!==`error`||!W4(e))return;let t=typeof e.payload.status==`string`?e.payload.status.toLowerCase():``;if(t===`completed`)return`completed`;if(G4.has(t))return`failed`}function q4(e){let t=U4[e.kind];return t===void 0||t===e.payloadSchemaRef}function J4(e){if(typeof e!=`string`||e.length===0)return null;try{let t=new URL(e);return t.protocol!==`http:`&&t.protocol!==`https:`||t.username||t.password?null:t.toString()}catch{return null}}function Y4(e){return{id:e.itemId,parentId:e.parentItemId||null,runId:e.runId,kind:e.kind,text:typeof e.payload.text==`string`?e.payload.text:``,lifecycle:e.lifecycle}}function X4(e){return{id:e.itemId,name:typeof e.payload.name==`string`&&e.payload.name?e.payload.name:`Artifact`,mimeType:typeof e.payload.mimeType==`string`&&e.payload.mimeType?e.payload.mimeType:`application/octet-stream`,uri:J4(e.payload.uri)}}function Z4(e,t){let n=e.payload[t];return typeof n==`string`&&n?n:null}function Q4(e){if(e.kind===`tool_call`){let t=Z4(e,`callId`);if(t)return`tool:${t}`}if(e.kind===`approval`){let t=Z4(e,`interactionId`);if(t)return`approval:${t}`}if(e.kind===`a2ui`){let t=Z4(e,`surfaceId`);if(t)return`a2ui:${t}`}return`item:${e.itemId}`}function $4(e,t){let n=W4(e)&&!W4(t);return{...e,...t,itemId:e.itemId,parentItemId:e.parentItemId,sourceEventIds:[...new Set([...e.sourceEventIds,...t.sourceEventIds])],payload:{...e.payload,...t.payload},nativeRef:{...e.nativeRef,...t.nativeRef},...n?{lifecycle:e.lifecycle,operation:e.operation}:{}}}function e3(e){let t=[],n=new Map;for(let r of e){let e=Q4(r),i=n.get(e);if(i===void 0){n.set(e,t.length),t.push({key:e,item:r,sourceItemIds:[r.itemId]});continue}let a=t[i];t[i]={key:e,item:$4(a.item,r),sourceItemIds:[...new Set([...a.sourceItemIds,r.itemId])]}}return t}function t3(e,t={}){let n=e.items.filter(e=>e.visibility===`public`||t.includeInternal===!0&&e.visibility===`internal`),r=n.filter(q4),i=n.filter(e=>!q4(e)),a=new Set([`user_message`,`assistant_text`,`reasoning`]),o=r.filter(e=>a.has(e.kind)).map(Y4),s=e=>r.filter(t=>t.kind===e).map(e=>typeof e.payload.text==`string`?e.payload.text:``).join(``),c=[...r.filter(e=>e.kind===`unknown`),...i],l=r.filter(e=>e.kind===`error`),u=[...r].reverse().find(e=>K4(e)!==void 0);return{timeline:e3(r.filter(e=>e.kind!==`progress`)),output:s(`assistant_text`),reasoning:s(`reasoning`),textItems:o,toolItems:r.filter(e=>e.kind===`tool_call`),approvalItems:r.filter(e=>e.kind===`approval`),structuredInputItems:r.filter(e=>e.kind===`progress`&&e.payloadSchemaRef===`conversation.item.structured-input/v1`),a2uiItems:r.filter(e=>e.kind===`a2ui`),artifacts:r.filter(e=>e.kind===`artifact`).map(X4),fallbacks:[...c.map(e=>({id:e.itemId,title:`Unsupported content`,detail:String(e.payload.summary||e.payload.originalKind||e.payloadSchemaRef),failed:e.lifecycle===`failed`})),...l.map(e=>({id:e.itemId,title:`Run failed`,detail:String(e.payload.error||`The agent run failed.`),failed:!0}))],runId:n.at(-1)?.runId||``,terminalStatus:u?K4(u):void 0}}function n3(){return{items:[],appliedSources:[]}}function r3(e){return e.lifecycle===`completed`||e.lifecycle===`failed`}function i3(e,t){let n={...e,...t};typeof e.text==`string`&&typeof t.text==`string`&&(n.text=e.text+t.text);for(let r of[`data`,`operations`])Array.isArray(e[r])&&Array.isArray(t[r])&&(n[r]=[...e[r],...t[r]]);return n}function a3(e,t){let n=t.sourceEventIds.map(e=>JSON.stringify([t.itemId,e])),r=new Set(e.appliedSources);if(n.every(e=>r.has(e)))return e;n.forEach(e=>r.add(e));let i=e.items.findIndex(e=>e.itemId===t.itemId),a=i>=0?e.items[i]:void 0;if(a&&r3(a)&&!r3(t))return{...e,appliedSources:[...r]};let o=[...e.items];if(!a)o.push(t);else{let e=[...new Set([...a.sourceEventIds,...t.sourceEventIds])];o[i]=a.kind===t.kind?t.operation===`append`?{...t,payload:i3(a.payload,t.payload),sourceEventIds:e}:{...t,sourceEventIds:e}:{...t,kind:`unknown`,operation:`replace`,payloadSchemaRef:`conversation.item.unknown/v1`,payload:{summary:`The content type changed for the same item and was safely degraded.`},sourceEventIds:e}}return{items:o,appliedSources:[...r]}}var o3=class{state=n3();apply(e){let t=a3(this.state,e);if(t===this.state)return!1;let n=t.items!==this.state.items;return this.state=t,n}applyAll(e){for(let t of e)this.apply(t)}snapshot(){return{items:this.state.items.map(e=>({...e,sourceEventIds:[...e.sourceEventIds],payload:{...e.payload},nativeRef:{...e.nativeRef}})),appliedSources:[...this.state.appliedSources]}}},s3=8;function c3(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function l3(e){if(e?.aborted)throw new m4(`conversation_aborted`,`Conversation request was aborted.`)}function u3(e,t){return t?.aborted===!0||e instanceof Error&&e.name===`AbortError`}function d3(e){let t=e.trim().replace(/\/+$/,``);if(!t)return``;if(!t.includes(`://`))return t.startsWith(`/`)?t:`/${t}`;try{let e=new URL(t);if(e.protocol!==`http:`&&e.protocol!==`https:`||e.username||e.password)throw Error(`unsafe URL`);return e.toString().replace(/\/$/,``)}catch(e){throw new m4(`conversation_contract_mismatch`,`Conversation base URL must be an HTTP(S) URL without embedded credentials.`,{cause:e})}}function f3(e){return Math.min(200*2**Math.max(0,e-1),2e3)}function p3(e){return new Promise(t=>{setTimeout(t,e)})}async function m3(e,t,n){if(l3(n),!n){await e(t);return}await new Promise((r,i)=>{let a=()=>i(new m4(`conversation_aborted`,`Conversation request was aborted.`));n.addEventListener(`abort`,a,{once:!0}),e(t).then(r,i).finally(()=>{n.removeEventListener(`abort`,a)})})}function h3(e,t,n){let r=e.snapshot();return{cursor:t,runId:n,state:r,presentation:t3(r)}}function g3(e,t){let n,r=[];for(let t of e.split(/\r?\n/)){let e=t.endsWith(`\r`)?t.slice(0,-1):t;if(!e||e.startsWith(`:`))continue;let i=e.indexOf(`:`),a=i<0?e:e.slice(0,i),o=i<0?``:e.slice(i+1),s=o.startsWith(` `)?o.slice(1):o;if(a===`id`){if(!/^\d+$/.test(s)||!Number.isSafeInteger(Number(s)))throw new m4(`conversation_stream_error`,`Conversation stream contains an invalid replay cursor.`);n=Number(s)}else a===`data`&&r.push(s)}if(r.length===0)return;let i=r.join(`
|
|
271
|
+
`);if(!i||i===`[DONE]`)return;let a;try{a=JSON.parse(i)}catch(e){throw new m4(`conversation_contract_mismatch`,`Conversation stream contains invalid JSON.`,{cause:e})}let o=c3(a);if(!o||o.conversationItem===void 0){n!==void 0&&(t.cursor=Math.max(t.cursor,n));return}if(n===void 0)throw new m4(`conversation_stream_error`,`Canonical conversation items require an SSE replay cursor.`);let s=V4(o.conversationItem);if(!s)throw new m4(`conversation_contract_mismatch`,`Conversation stream item does not match conversation.ksadk.io/v1.`);if(t.runId&&t.runId!==s.runId)throw new m4(`conversation_contract_mismatch`,`Conversation stream changed canonical run identity.`,{runId:t.runId,cursor:t.cursor});t.runId=s.runId;let c=t.reducer.apply(s);t.cursor=Math.max(t.cursor,n),c&&t.options.onItem?.(s),t.options.onUpdate?.(h3(t.reducer,t.cursor,t.runId))}async function _3(e,t){if(!e.body)throw new m4(`conversation_stream_error`,`Conversation response has no event stream body.`);let n=e.body.getReader(),r=new TextDecoder,i=``;try{for(;;){l3(t.options.signal);let{value:e,done:a}=await n.read();if(a)break;i+=r.decode(e,{stream:!0});let o=/\r?\n\r?\n/.exec(i);for(;o?.index!==void 0;){let e=o.index,n=o[0].length;g3(i.slice(0,e),t),i=i.slice(e+n),o=/\r?\n\r?\n/.exec(i)}}i+=r.decode(),i.trim()&&g3(i,t)}catch(e){throw e instanceof m4?e:(u3(e,t.options.signal)&&l3(t.options.signal),new m4(`conversation_stream_error`,`Conversation event stream was interrupted.`,{cause:e,runId:t.runId||void 0,cursor:t.cursor}))}finally{n.releaseLock()}}function v3(e){return e.state.items.some(e=>K4(e)!==void 0)}var y3=class{fetcher;baseUrl;maxReconnects;sleep;retryDelayMs;constructor(e={}){if(!Number.isInteger(e.maxReconnects??s3)||(e.maxReconnects??s3)<0||(e.maxReconnects??s3)>32)throw new m4(`conversation_contract_mismatch`,`Conversation reconnect limit must be an integer from 0 to 32.`);this.fetcher=e.fetch,this.baseUrl=d3(e.baseUrl||``),this.maxReconnects=e.maxReconnects??s3,this.sleep=e.sleep||p3,this.retryDelayMs=e.retryDelayMs||f3}fetch(){if(this.fetcher)return this.fetcher;if(typeof globalThis.fetch==`function`)return globalThis.fetch.bind(globalThis);throw new m4(`conversation_http_error`,`No fetch implementation is available for the conversation client.`)}url(e){return`${this.baseUrl}${e}`}async request(e,t,n,r=`conversation_stream_error`){l3(n);try{return await this.fetch()(e,t)}catch(e){throw e instanceof m4?e:(u3(e,n)&&l3(n),new m4(r,`Conversation network request failed.`,{cause:e}))}}assertOk(e){if(!e.ok)throw new m4(`conversation_http_error`,`Conversation endpoint returned HTTP ${e.status}.`,{status:e.status})}async getSurface(e,t,n={}){if(!e||!t)throw new m4(`conversation_contract_mismatch`,`Agent and session identities are required to get a conversation surface.`);let r=n.signal?{signal:n.signal}:void 0,i=await this.request(this.url(`/api/v1/agents/${encodeURIComponent(e)}/conversation-surface?sessionId=${encodeURIComponent(t)}`),r,n.signal,`conversation_http_error`);this.assertOk(i);let a;try{a=await i.json()}catch(e){throw new m4(`conversation_contract_mismatch`,`Conversation surface response is not valid JSON.`,{cause:e})}let o=c3(a),s=B4(o?.surface);if(!o||typeof o.buildId!=`string`||!o.buildId||!s)throw new m4(`conversation_contract_mismatch`,`Conversation surface response does not match conversation.ksadk.io/v1.`);return{buildId:o.buildId,surface:s}}async streamTurn(e){l3(e.signal),L4(e.bootstrap.surface,e.input);let t={cursor:0,runId:``,reducer:new o3,options:e},n={method:`POST`,headers:{"Content-Type":`application/json`,"Idempotency-Key":e.input.idempotencyKey},body:JSON.stringify({input:e.input}),...e.signal?{signal:e.signal}:{}},r=await this.request(this.url(`/api/v1/builds/${encodeURIComponent(e.bootstrap.buildId)}/conversation:stream`),n,e.signal);this.assertOk(r);try{await _3(r,t)}catch(e){if(!(e instanceof m4)||e.code!==`conversation_stream_error`||!t.runId)throw e}let i=h3(t.reducer,t.cursor,t.runId);if(v3(i))return i;if(!t.runId)throw new m4(`conversation_run_identity_missing`,`The stream ended before a canonical item supplied its run identity.`,{cursor:t.cursor});for(let n=1;n<=this.maxReconnects;n+=1){await m3(this.sleep,this.retryDelayMs(n),e.signal),l3(e.signal);let r;try{r=await this.request(this.url(`/api/v1/runs/${encodeURIComponent(t.runId)}/events?after=${t.cursor}`),{method:`GET`,headers:{"Last-Event-ID":String(t.cursor)},...e.signal?{signal:e.signal}:{}},e.signal),this.assertOk(r),await _3(r,t)}catch(e){if(e instanceof m4&&e.code===`conversation_aborted`||e instanceof m4&&e.code===`conversation_contract_mismatch`||e instanceof m4&&e.code===`conversation_http_error`&&e.status!==void 0&&e.status<500)throw e;continue}if(i=h3(t.reducer,t.cursor,t.runId),v3(i))return i}throw new m4(`conversation_reconnect_exhausted`,`Conversation replay stopped after the configured reconnect limit.`,{runId:t.runId,cursor:t.cursor})}},b3=0;function x3(e){return b3+=1,`${e}-${b3}`}function S3(e){let t=[];if(e.reasoning&&e.reasoning.trim()&&t.push({id:x3(`thinking`),type:`thinking`,content:e.reasoning,status:`done`}),e.tools)for(let n of Object.values(e.tools))t.push({id:x3(`tool`),type:`tool`,toolName:n.name,args:n.args??``,output:n.output,status:n.status??`completed`});return e.content&&e.content.trim()&&t.push({id:x3(`text`),type:`text`,content:e.content,status:`done`}),t}var C3={"run.started":`in_progress`,"run.progress":`in_progress`,"run.completed":`completed`,"run.failed":`failed`,"run.canceled":`cancelled`,"run.interrupted":`interrupted`},w3=new Set([`completed`,`failed`,`cancelled`,`canceled`]);function T3(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:null}function E3(e){let t=T3(e.source),n=t?T3(t.metadata):null;return String(n?.native_item_kind||``)}function D3(e,t){let n=T3(e[t]);if(!n)return[];let r=n?.parts;return Array.isArray(r)?r:t===`update`?[n]:[]}function O3(e){let t=T3(e);if(!t)return``;if(typeof t.text==`string`)return t.text;let n=T3(t.data);if(n){let e=n.content;if(Array.isArray(e))return e.map(e=>String(T3(e)?.text||``)).join(``);for(let e of[`text`,`output`,`stdout`,`stderr`])if(n[e]!=null)return String(n[e])}return``}function k3(e){return e.map(O3).join(``)}function A3(e){return e.some(e=>T3(T3(e)?.data)?.type===`userMessage`)}function j3(e){if(e.length===1){let t=T3(T3(e[0])?.data);if(t)return t}return k3(e)||null}function M3(e,t,n){return{RuntimeItem:{RunId:String(e.run_id||``),ScopeId:String(e.scope_id||e.run_id||``),ItemId:String(e.item_id||``),...n?{PartId:n}:{},Operation:t,SourceEventId:String(e.event_id||``)}}}var N3=class{textByPart=new Map;sessionId;constructor(e){this.sessionId=e}translate(e){if(!T3(e))return null;let t=Number(e.seq);if(!Number.isFinite(t)||t<=0)return null;let n=String(e.family||``),r=String(e.event_type||``),i=String(e.run_id||``),a=()=>({EventId:e.event_id?String(e.event_id):`kernel-${t}`,SessionId:this.sessionId,InvocationId:i||void 0,SeqId:t});if(n===`interaction`)return{...a(),EventType:r,payload:e};if(n===`control`){if(r===`control.run_transition`){let t=String(e.state||``).toLowerCase();if(w3.has(t))return{...a(),EventType:`run_status`,Content:{status:t}}}return null}if(n!==`runtime`)return null;let o=C3[r];if(o)return{...a(),EventType:`run_status`,Content:{status:o}};let s=E3(e);if(r===`item.started`){let t=D3(e,`initial`);return s===`userMessage`||A3(t)||s===`reasoning`||e.item_kind===`reasoning`?null:s===`agentMessage`||!s&&e.item_kind===`message`?{...a(),EventType:`assistant_stream_snapshot`,Content:{parts:[{text:``}]},Metadata:M3(e,`replace`)}:s&&s!==`notification`?{...a(),EventType:`tool_call`,Metadata:{...M3(e,`replace`),call_id:String(e.item_id||``),tool_name:s,run_id:i,tool_args:j3(t)}}:null}if(r===`item.updated`){let n=D3(e,`update`),r=T3(n[0]),i=String(r?.part_id||e.item_id||t),o=String(e.op||`replace`),c=k3(n),l=this.textByPart.get(i)||``,u=o===`append`?l+c:c;return this.textByPart.set(i,u),s===`agentMessage`||!s&&e.item_kind===`message`?{...a(),EventType:`assistant_stream_snapshot`,Content:{parts:[{text:u}]},Metadata:M3(e,`replace`,i)}:s===`reasoning`||e.item_kind===`reasoning`?{...a(),EventType:`reasoning`,Content:{parts:[{text:c}]},Metadata:M3(e,o===`append`?`append`:`replace`,i)}:null}if(r===`item.snapshot_replaced`){let n=D3(e,`snapshot`),r=String(T3(n[0])?.part_id||e.item_id||t),i=k3(n);return this.textByPart.set(r,i),s===`agentMessage`||!s&&e.item_kind===`message`?{...a(),EventType:`assistant_stream_snapshot`,Content:{parts:[{text:i}]},Metadata:M3(e,`replace`,r)}:s===`reasoning`||e.item_kind===`reasoning`?{...a(),EventType:`reasoning`,Content:{parts:[{text:i}]},Metadata:M3(e,`replace`,r)}:null}if(r===`item.completed`){let n=D3(e,`snapshot`);if(s===`userMessage`||A3(n))return{...a(),EventType:`user_message`,Content:{parts:[{text:k3(n)}]}};if(s===`agentMessage`||!s&&e.item_kind===`message`){let r=k3(n),i=String(T3(n[0])?.part_id||e.item_id||t);return this.textByPart.set(i,r),{...a(),EventType:`assistant_message`,Content:{parts:[{text:r}]},Metadata:M3(e,`completed`,i)}}if(s===`reasoning`||e.item_kind===`reasoning`){let r=String(T3(n[0])?.part_id||e.item_id||t);return{...a(),EventType:`reasoning`,Content:{parts:[{text:k3(n)}]},Metadata:M3(e,`completed`,r)}}return s&&s!==`notification`?{...a(),EventType:`tool_result`,Metadata:{...M3(e,`completed`),call_id:String(e.item_id||``),tool_name:s,run_id:i,tool_output:j3(n)}}:null}return r===`item.failed`&&s&&s!==`notification`&&s!==`agentMessage`&&s!==`reasoning`?{...a(),EventType:`tool_result`,Metadata:{...M3(e,`completed`),call_id:String(e.item_id||``),tool_name:s,run_id:i,tool_output:{error:T3(e.error)||e.error||`item failed`}}}:null}};function P3(){return{toolNames:new Map,toolArguments:new Map,callIds:new Map,currentResponseId:``}}function F3(e){return typeof e==`string`?e:Array.isArray(e)?e.map(e=>typeof e==`string`?e:e&&typeof e==`object`&&typeof e.text==`string`?e.text:``).join(``):e&&typeof e==`object`&&typeof e.text==`string`?e.text:``}function I3(e){return e==null?``:typeof e==`string`?e:typeof e==`object`?JSON.stringify(e,null,2):String(e)}function L3(...e){for(let t of e){let e=F3(t);if(e)return e}return``}function R3(e,t){return String(e?.id||e?.item_id||e?.call_id||t?.item_id||t?.call_id||t?.output_index||``)}function z3(e,t,n,r,i){t&&(e.toolNames.set(t,r),e.toolArguments.set(t,i));let a=String(n?.call_id||``);a&&(e.callIds.set(a,t||r),e.toolNames.set(a,r),e.toolArguments.set(a,i))}function B3(e,t,n,r=`tool`){let i=String(n?.call_id||``);return String(n?.name||n?.tool_name||(t?e.toolNames.get(t):``)||(i?e.toolNames.get(i):``)||r)}function V3(e){if(!e||typeof e!=`object`)return``;let t=F3(e.content);return L3(e.output_text,e.text,e.summary_text,e.summary,e.delta,t)}function H3(e){let t=e?.response&&typeof e.response==`object`?e.response:e,n=L3(t?.output_text,t?.text);if(n)return n;let r=Array.isArray(t?.output)?t.output:[];for(let e of r){let t=V3(e);if(t)return t}return``}function U3(e){let t=e?.response&&typeof e.response==`object`?e.response:e;return Array.isArray(t?.output)?t.output:[]}function W3(e){let t=e;if(typeof t==`string`)try{t=JSON.parse(t)}catch{return{}}return Array.isArray(t)&&(t=t[0]||{}),!t||typeof t!=`object`?{}:t.value&&typeof t.value==`object`&&!Array.isArray(t.value)?{...t.value,approval_request_id:t.value.approval_request_id||t.value.id||t.id}:t}function G3({data:e,state:t,status:n}){let r=e?.item||e?.output_item||e||{},i=String(r.type||``).trim(),a=R3(r,e);if(i===`function_call`){let e=B3(t,a,r),i=I3(r.arguments??r.args??r.input);return z3(t,a,r,e,i),[{type:`tool_upsert`,name:e,args:i,status:n}]}if(i===`function_call_output`)return[{type:`tool_result`,name:B3(t,a,r),output:I3(r.output??r.result??r.content)}];if(i===`mcp_approval_request`){let n=String(r.name||`approval`),i=I3(r.arguments??r.args),a=String(r.id||r.approval_request_id||``);return[{type:`tool_upsert`,name:n,args:i,status:`paused`,approvalRequestId:a,previousResponseId:String(e?.response_id||t.currentResponseId||``),serverLabel:String(r.server_label||``)},{type:`approval_request`,approvalRequestId:a,previousResponseId:String(e?.response_id||t.currentResponseId||``),name:n,args:i}]}if(i===`reasoning`||i===`reasoning_summary`||i===`reasoning_summary_text`){let e=V3(r);return e?[{type:`reasoning_delta`,text:e}]:[]}if(i===`message`){let e=V3(r);return e?[{type:n===`completed`?`text_final`:`text_delta`,text:e}]:[]}return[]}function K3({eventName:e,data:t,state:n}){let r=String(t?.type||e||``).trim(),i=String(t?.id||t?.response?.id||t?.response_id||``);if(i.startsWith(`resp_`)&&(n.currentResponseId=i),r===`response.tool_call`)return[{type:`tool_upsert`,name:String(t?.name||t?.tool_name||`tool`),args:I3(t?.args??t?.arguments),status:`running`}];if(r===`response.tool_result`||r===`response.ksadk.tool_result`)return[{type:`tool_result`,name:String(t?.name||t?.tool_name||`tool`),output:I3(t?.output??t?.result)}];if(r===`response.output_item.added`)return G3({data:t,state:n,status:`running`});if(r===`response.output_item.done`)return G3({data:t,state:n,status:`completed`});if(r===`response.function_call_arguments.delta`){let e=String(t?.item_id||t?.call_id||``),r=B3(n,e,t),i=`${n.toolArguments.get(e)||``}${String(t?.delta||``)}`;return n.toolArguments.set(e,i),[{type:`tool_upsert`,name:r,args:i,status:`running`}]}if(r===`response.function_call_arguments.done`){let e=String(t?.item_id||t?.call_id||``),r=B3(n,e,t),i=I3(t?.arguments??n.toolArguments.get(e));return n.toolArguments.set(e,i),[{type:`tool_upsert`,name:r,args:i,status:`running`}]}if(r===`response.reasoning.delta`||r===`response.reasoning_text.delta`||r===`response.reasoning_summary.delta`||r===`response.reasoning_summary_text.delta`){let e=L3(t?.delta,t?.text);return e?[{type:`reasoning_delta`,text:e}]:[]}if(r===`response.output_text.delta`){let e=L3(t?.delta,t?.text);return e?[{type:`text_delta`,text:e}]:[]}if(r===`response.output_text.done`){let e=L3(t?.text,t?.delta);return e?[{type:`text_final`,text:e}]:[]}if(r===`response.content_part.delta`){let e=String(t?.part?.type||t?.delta?.type||t?.content_type||``),n=L3(t?.delta?.text,t?.delta,t?.text);return n?e.includes(`reasoning`)?[{type:`reasoning_delta`,text:n}]:[{type:`text_delta`,text:n}]:[]}if(r===`response.completed`){let e=H3(t),r=U3(t).flatMap(e=>G3({data:{...t,item:e},state:n,status:`completed`})),i=r.some(e=>e.type===`text_final`);return[...r,...e&&!i?[{type:`text_final`,text:e}]:[],{type:`terminal`,status:`completed`}]}if(r===`response.failed`)return[{type:`failed`,message:t?.error?.message||`Agent 运行失败`},{type:`terminal`,status:`failed`}];if(r===`response.incomplete`)return[{type:`incomplete`},{type:`terminal`,status:`incomplete`}];if(r===`response.cancelled`)return[{type:`terminal`,status:`cancelled`}];if(r===`response.approval_request`||r===`response.ksadk.approval_request`){let e=W3(t?.interrupt_info),r=String(e.approval_request_id||e.id||``),i=String(t?.response_id||n.currentResponseId||``),a=e.approval_requests&&typeof e.approval_requests==`object`?e.approval_requests:e,o=Array.isArray(a.action_requests)?a.action_requests:[];if(o.length>0){let e=o.map(e=>({type:`tool_upsert`,name:String(e?.name||`tool`),args:JSON.stringify(e?.args??{}),status:`paused`,approvalRequestId:r,previousResponseId:i})),t=o[0]||{};return[...e,{type:`approval_request`,approvalRequestId:r,previousResponseId:i,name:String(t?.name||`人工确认`),args:JSON.stringify(t?.args??{})}]}return[{type:`approval_request`,approvalRequestId:r,previousResponseId:i}]}if(new Set([`response.ksadk.a2ui_surface_begin`,`a2ui.surface.begin`,`response.a2ui.createSurface`,`a2ui.createSurface`,`createSurface`]).has(r)){let e=t?.surface&&typeof t.surface==`object`?t.surface:{};return[{type:`a2ui_surface_begin`,surfaceId:String(t?.surface_id||t?.surfaceId||e.surface_id||e.surfaceId||``),surface:e}]}if(new Set([`response.ksadk.a2ui_surface_update`,`a2ui.surface.update`,`response.a2ui.updateComponents`,`a2ui.updateComponents`,`updateComponents`]).has(r)){let e=t?.surface&&typeof t.surface==`object`?t.surface:{};return[{type:`a2ui_surface_update`,surfaceId:String(t?.surface_id||t?.surfaceId||e.surface_id||e.surfaceId||``),surface:e}]}if(new Set([`response.ksadk.a2ui_surface_end`,`a2ui.surface.end`,`response.a2ui.deleteSurface`,`a2ui.deleteSurface`,`deleteSurface`]).has(r))return[{type:`a2ui_surface_end`,surfaceId:String(t?.surface_id||t?.surfaceId||``)}];if(new Set([`response.ksadk.a2ui_interaction`,`a2ui.interaction`]).has(r))return[{type:`a2ui_interaction`,surfaceId:String(t?.surface_id||t?.surfaceId||``),interactionId:String(t?.interaction_id||t?.interactionId||``),kind:String(t?.kind||`input`),inputSchema:t?.input_schema&&typeof t.input_schema==`object`?t.input_schema:{}}];let a=t?.content?.parts?.[0]?.text;return a&&!t?.actions?.finishReason?[{type:`text_delta`,text:String(a)}]:[]}var q3=new Set([`completed`,`failed`,`error`,`cancelled`,`canceled`,`aborted`,`interrupted`,`resume_failed`]),J3=new Set([`tool_call`,`tool_result`,`stage_tool_call`,`stage_tool_result`]),Y3={"run.started":`in_progress`,"run.progress":`in_progress`,"run.interrupted":`interrupted`,"run.completed":`completed`,"run.failed":`failed`,"run.canceled":`cancelled`};function X3(e){let t=e?.Content?.payload;return t&&typeof t==`object`?t:{}}function Z3(e,t){let n=String(e||``),r=String(t||``);return n?!r||n.endsWith(r)?n:r.startsWith(n)?r:`${n}${r}`:r}function Q3(e){let t=String(e?.EventType||``),n=X3(e);return Y3[t]?{...e,EventType:`run_status`,Content:{status:String(n.status||Y3[t]),...n.detail?{detail:String(n.detail)}:{}}}:t===`reasoning.delta`||t===`reasoning.completed`?{...e,EventType:`reasoning`,Content:{role:`model`,parts:[{text:String(n.text||``)}]}}:t===`tool.call.begin`?{...e,EventType:`tool_call`,Metadata:{...e.Metadata||{},tool_name:n.name,tool_args:n.args,tool_call_id:n.call_id},Content:{role:`model`,parts:[]}}:t===`tool.call.end`?{...e,EventType:`tool_result`,Metadata:{...e.Metadata||{},tool_name:n.name,tool_output:n.error||n.result,tool_call_id:n.call_id},Content:{role:`model`,parts:[]}}:e}function $3(e){let t=[],n=new Map;for(let r of Array.isArray(e)?e:[]){let e=String(r?.EventType||``);if(e===`text.delta`||e===`text.completed`){let e=String(r?.InvocationId||``).trim();if(!e)continue;let t=n.get(e);n.set(e,{event:r,text:Z3(t?.text,X3(r).text)});continue}t.push(Q3(r))}for(let{event:e,text:r}of n.values())t.push({...e,EventType:`assistant_stream_snapshot`,Content:{role:`model`,parts:[{text:r}]},Metadata:{...e.Metadata||{},stream_snapshot:!0}});return t.sort((e,t)=>p6(e)-p6(t))}function e6(e){return typeof e==`string`?e:Array.isArray(e)?e.map(e=>typeof e==`string`?e:e&&typeof e==`object`&&typeof e.text==`string`?e.text:``).join(``):``}function t6(e){let t=String(e||``).trim();return t?`/agentengine/api/v1/AttachmentContent?FileUri=${encodeURIComponent(t)}`:``}function n6(e){return String(e||``).match(/^data:([^;,]+)/)?.[1]||``}function r6(e,t){let n=String(e||``).trim(),r=String(t||``).trim();return!n||!r||n===r?!0:n.endsWith(`/*`)?r.startsWith(n.slice(0,-1)):r.endsWith(`/*`)?n.startsWith(r.slice(0,-1)):!1}function i6(e){let t=e?.Content?.parts||[],n=[],r=new Map,i=e=>{let t=`${e.fileUri||e.url||e.name}|${e.type}`;r.has(t)||r.set(t,e)};for(let e of t){if(e?.type===`input_text`||e?.text){n.push(e.text||``);continue}if(e?.type===`input_file`&&e.inlineData){i({name:e.inlineData.displayName||`attachment`,url:`data:${e.inlineData.mimeType||`application/octet-stream`};base64,${e.inlineData.data}`,type:e.inlineData.mimeType||`application/octet-stream`});continue}if(e?.type===`input_file`&&typeof e.file_data==`string`&&e.file_data){i({name:e.filename||e.displayName||e.display_name||`attachment`,url:`data:${e.mime_type||e.mimeType||`application/octet-stream`};base64,${e.file_data}`,type:e.mime_type||e.mimeType||`application/octet-stream`});continue}if(e?.type===`input_file`&&typeof e.file_url==`string`&&e.file_url.trim()){let t=e.file_url.trim();i({name:e.filename||e.displayName||e.display_name||`attachment`,url:t6(t),type:e.mime_type||e.mimeType||`application/octet-stream`,fileUri:t});continue}if(e?.type===`input_image`||e?.type===`image_url`){let t=typeof e.image_url==`string`?e.image_url:e.image_url?.url;t&&i({name:e.filename||e.displayName||e.display_name||`uploaded_image`,url:t,type:e.mime_type||e.mimeType||n6(t)||`image/*`});continue}if(e?.type===`input_file`&&e.fileData){let t=String(e.fileData.fileUri||``).trim();i({name:e.fileData.displayName||`attachment`,url:t6(t),type:e.fileData.mimeType||`application/octet-stream`,fileUri:t})}}let a=Array.isArray(e?.Metadata?.attachments)?e.Metadata.attachments:[];for(let e of a){let t=String(e.file_uri||``).trim(),n={name:e.display_name||`attachment`,url:t6(t),type:e.mime_type||`application/octet-stream`,fileUri:t};!n.url&&!n.fileUri&&Array.from(r.values()).some(e=>e.name===n.name&&r6(e.type,n.type)&&(e.url||e.fileUri))||i(n)}let o=Array.from(r.values());return{text:n.join(``),attachments:o.length>0?o:void 0}}function a6(e){let t=e?.Metadata?.responses_output;if(!Array.isArray(t))return{};let n=P3(),r=K3({eventName:`response.completed`,data:{response:{id:String(e.Metadata?.response_id||``),output:t}},state:n}),i=``,a={};for(let e of r){if(e.type===`reasoning_delta`){i+=e.text;continue}if(e.type===`tool_upsert`){a[e.name]={...a[e.name]||{name:e.name,args:``},name:e.name,args:e.args,status:e.status,...e.approvalRequestId?{approvalRequestId:e.approvalRequestId}:{},...e.previousResponseId?{previousResponseId:e.previousResponseId}:{},...e.serverLabel?{serverLabel:e.serverLabel}:{},...e.approvalRequestId?{approvalStatus:`pending`}:{}};continue}e.type===`tool_result`&&(a[e.name]={...a[e.name]||{name:e.name,args:``},name:e.name,output:e.output,status:p4(e.output)?`error`:`completed`})}return{...i?{reasoning:i}:{},...Object.keys(a).length>0?{tools:a}:{}}}function o6(e,t,n){return t===`running`?e===`prompt_too_long`?`检测到上下文过长,正在自动压缩历史后重试`:`正在自动压缩上下文`:n?e===`prompt_too_long`?`上下文过长,系统已自动压缩历史并重试`:`系统已自动压缩较早的对话上下文`:t===`failed`?`自动压缩上下文未完成`:e===`prompt_too_long`?`已完成上下文压缩,并继续当前回复`:`已完成上下文压缩`}function s6(e,t){return t?.itemId?[`runtime-item`,t.runId||e,t.scopeId||e,t.itemId].join(`\0`):[e,t.content||``,t.reasoning||``].join(`\0`)}function c6(e){let t=String(e?.InvocationId||``).trim(),n=e?.Metadata?.RuntimeItem;return n?.ItemId?[`runtime-item`,n.RunId||t,n.ScopeId||t,n.ItemId].join(`\0`):t}function l6(e){let t=e?.Metadata?.RuntimeItem;return t?.ItemId?{id:`runtime:${t.RunId||e.InvocationId||`run`}:${t.ScopeId||e.InvocationId||`scope`}:${t.ItemId}`,runId:String(t.RunId||e.InvocationId||``),scopeId:String(t.ScopeId||e.InvocationId||``),itemId:String(t.ItemId),partId:t.PartId?String(t.PartId):void 0}:null}function u6(e){return e?.Metadata?.responses_mirror===!0||String(e?.Metadata?.responses_mirror||``).trim().toLowerCase()===`true`}function d6(e){if(e?.EventType!==`user_message`)return``;let t=i6(e),n=(t.attachments||[]).map(e=>[e.name||``,e.fileUri||``,e.url||``,e.type||``].join(``)).sort().join(``);return[String(t.text||``).trim(),n].join(`\0`)}function f6(e){return e?.EventType===`assistant_stream_snapshot`}function p6(e){let t=Number(e?.SeqId||0);if(Number.isFinite(t)&&t>0)return t;let n=Number(e?.Timestamp||0);return Number.isFinite(n)?n:0}function m6(e){if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function h6(e){let t=String(e?.EventType||``);if(!J3.has(t))return null;let n=String(e.Metadata?.tool_name||e.Metadata?.name||e.Metadata?.function_name||e6(e.Content?.parts)||`tool`).trim()||`tool`,r={name:n,args:``,status:`running`},i=t===`tool_result`||t===`stage_tool_result`?(()=>{let t=m6(e.Metadata?.tool_output??e.Metadata?.output??e.Metadata?.result??e6(e.Content?.parts));return{...r,output:t,status:p4(t)?`error`:`completed`}})():{...r,args:m6(e.Metadata?.tool_args??e.Metadata?.arguments??e.Metadata?.args??{})},a=l6(e);return{id:a?.id||e.EventId||String(Date.now()+Math.random()),role:`model`,content:``,timestamp:e.Timestamp||Date.now(),eventType:t,...a||{},tools:{[n]:i}}}function g6(e={},t={}){let n={...e||{}};for(let[e,r]of Object.entries(t||{}))n[e]={...n[e]||{},...r||{},name:e,args:r?.args||n[e]?.args||``};return n}function _6(e={},t=``){let n=String(t||``).trim().toLowerCase(),r=n===`completed`?`completed`:q3.has(n)?`error`:``;if(!r)return e;let i=!1,a={};for(let[t,n]of Object.entries(e||{}))n?.status===`running`?(i=!0,a[t]={...n,status:r}):a[t]=n;return i?a:e}function v6(e,t){return{...e,reasoning:y6(e.reasoning,t.reasoning),tools:g6(e.tools,t.tools),eventId:t.eventId||e.eventId,responseId:t.responseId||e.responseId,traceId:t.traceId||e.traceId,rootSpanId:t.rootSpanId||e.rootSpanId,timestamp:Math.max(Number(e.timestamp||0),Number(t.timestamp||0))||t.timestamp||e.timestamp,id:t.responseId||t.reasoning||t.tools?t.id:e.id}}function y6(e=``,t=``){let n=String(e||``),r=String(t||``);return n?!r||n.endsWith(r)?n:r.startsWith(n)?r:`${n}${r}`:r}function b6(e){return{id:e.id,role:`system`,eventType:`context_checkpoint`,status:e.status,trigger:e.trigger,compactedUntilSeqId:e.compactedUntilSeqId,summary:e.summary,historical:e.historical,timestamp:e.timestamp,content:o6(e.trigger,e.status,e.historical)}}function x6(e){let t=e?.EventType||``,n=l6(e);if(t===`run_status`)return e.Content?.status===`failed`?{id:e.EventId||String(Date.now()+Math.random()),role:`system`,content:e.Content?.detail||`本轮运行失败。`,eventType:t,status:`failed`,timestamp:e.Timestamp||Date.now()}:e.Content?.status===`cancelled`?{id:e.EventId||String(Date.now()+Math.random()),role:`system`,content:e.Content?.detail||`本轮输出已停止。`,eventType:t,status:`cancelled`,timestamp:e.Timestamp||Date.now()}:null;if(t===`context_checkpoint`){let t=i6(e);return b6({id:e.EventId||String(Date.now()+Math.random()),timestamp:e.Timestamp||Date.now(),status:`completed`,trigger:String(e.Metadata?.trigger||`auto`),compactedUntilSeqId:Number(e.Metadata?.compacted_until_seq_id||0)||void 0,summary:t.text||void 0,historical:!0})}if(t===`reasoning`){let r=i6(e).text||e6(e.Metadata?.reasoning);return r?{id:n?.id||e.EventId||String(Date.now()+Math.random()),role:`model`,content:``,reasoning:r,timestamp:e.Timestamp||Date.now(),eventType:t,...n||{}}:null}if(J3.has(t))return h6(e);if(t!==`user_message`&&t!==`assistant_message`&&t!==`assistant_stream_snapshot`)return null;let r=i6(e),i=t===`assistant_message`?a6(e):{};if(!r.text&&!r.attachments?.length&&!i.reasoning&&!i.tools)return null;let a=String(e.Metadata?.response_id||e.Metadata?.ResponseId||``).trim(),o=String(e.Metadata?.trace_id||e.Metadata?.TraceId||``).trim(),s=String(e.Metadata?.root_span_id||e.Metadata?.rootSpanId||e.Metadata?.RootSpanId||``).trim();return{id:n?.id||e.EventId||String(Date.now()+Math.random()),role:t===`user_message`?`user`:`model`,content:r.text,timestamp:e.Timestamp||Date.now(),eventType:t,eventId:e.EventId||void 0,responseId:a||void 0,traceId:o||void 0,rootSpanId:s||void 0,attachments:r.attachments,...n||{},...i}}function S6(e=[]){let t=new Map,n=new Map,r=new Set,i=new Set,a=new Set,o=new Set,s=$3(e),c=[];for(let e of s){let t=String(e?.EventId||``).trim();if(t){if(o.has(t))continue;o.add(t)}c.push(e)}let l=new Set,u=new Set,d=new Map;for(let e of c){if(e?.EventType!==`user_message`||u6(e)){if(e?.EventType===`assistant_message`){let t=c6(e);t&&u.add(t)}if(f6(e)){let t=c6(e);if(t){let n=d.get(t);(!n||p6(e)>=p6(n))&&d.set(t,e)}}continue}let t=d6(e);t&&l.add(t)}let f=c.filter(e=>{if(f6(e)){let t=c6(e);return!t||!u.has(t)&&d.get(t)===e}if(e?.EventType!==`user_message`||!u6(e))return!0;let t=d6(e);return!t||!l.has(t)});for(let e of f){let a=String(e.InvocationId||``).trim();a&&e.EventType===`user_message`&&i.add(a),a&&[`assistant_message`,`assistant_stream_snapshot`,`reasoning`,`tool_call`,`tool_result`,`stage_tool_call`,`stage_tool_result`].includes(String(e.EventType||``))&&r.add(a),e.EventType===`run_status`&&a&&(t.set(a,String(e.Content?.status||``).trim()),n.set(a,e))}let p=[],m=new Map,h=new Map,g=null,_=new Map,v=e=>{let t=e?.itemId?`${e.runId||e.invocationId||``}\u0000${e.scopeId||e.invocationId||``}\u0000${e.itemId}`:``,n=t?h.get(t):void 0;if(n!==void 0){p[n]=v6(p[n],e);return}let r=String(e?.responseId||``).trim(),i=r?m.get(r):void 0;if(i!==void 0){p[i]=v6(p[i],e);return}r&&m.set(r,p.length),t&&h.set(t,p.length),p.push(e)},y=()=>{g&&=(v(g),null)},b=e=>{let n=String(e||``).trim();if(!n)return{};let r=_.get(n);return r?(_.delete(n),{tools:_6(r.tools,t.get(n))}):{}};for(let e of f){if(e.EventType===`run_status`)continue;let t=x6(e);if(!t)continue;let n=String(e.InvocationId||``).trim();if(n&&(t.invocationId=n),J3.has(t.eventType)){let n=String(e.InvocationId||``).trim();if(t.itemId){y(),v(t);continue}if(!n){y(),v(t);continue}let r=_.get(n);_.set(n,{...r||{id:t.id,role:`model`,content:``,timestamp:t.timestamp,invocationId:n},timestamp:Math.max(Number(r?.timestamp||0),Number(t.timestamp||0)),tools:g6(r?.tools,t.tools)});continue}if(t.eventType===`reasoning`){let n=String(e.InvocationId||``).trim(),r=String(e.Metadata?.RuntimeItem?.Operation||``).toLowerCase(),i=!!(t.itemId&&g?.itemId===t.itemId&&g?.runId===t.runId&&g?.scopeId===t.scopeId),a=!!(!t.itemId&&!g?.itemId&&n&&g?.invocationId===n);if(g&&(i||a)){g.reasoning=r===`replace`||r===`completed`?t.reasoning:`${g.reasoning||``}${t.reasoning||``}`,g.timestamp=t.timestamp;continue}y(),g={...t,...n?{invocationId:n}:{}};continue}let r=t.eventType===`assistant_message`||t.eventType===`assistant_stream_snapshot`;if(r&&g){let n=String(e.InvocationId||``).trim(),r=s6(n,t);if(t.eventType===`assistant_message`&&n&&a.has(r)){g=null;continue}t.eventType===`assistant_message`&&n&&a.add(r),v({...t,...b(n),reasoning:y6(g.reasoning,t.reasoning)}),g=null;continue}if(y(),r){let n=String(e.InvocationId||``).trim(),r=s6(n,t);if(t.eventType===`assistant_message`&&n&&a.has(r))continue;t.eventType===`assistant_message`&&n&&a.add(r),v({...t,...b(n)});continue}v(t)}y();for(let[e,n]of _.entries())v({...n,tools:_6(n.tools,t.get(e))});for(let[e,a]of t.entries()){if(a!==`in_progress`||r.has(e)||!i.has(e))continue;let t=n.get(e)||{};v({id:`run-placeholder-${e}`,role:`model`,content:``,status:`running`,eventType:`run_status`,timestamp:t.Timestamp||Date.now()})}return p}function C6(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:null}function w6(e){if(typeof e==`number`&&Number.isFinite(e))return e>0&&e<1e11?e*1e3:e;let t=Date.parse(String(e||``));return Number.isFinite(t)?t:Date.now()}function T6(e){let t=C6(e?.Content?.runtime_event);if(t&&String(t.event_type||``))return{...t,family:`runtime`,seq:Number(e.SeqId||t.seq||0),timestamp:e.Timestamp||t.timestamp};let n=C6(e?.Content?.session_event);if(!n||String(n.family||``)!==`runtime`)return null;let r=C6(n.payload);return!r||!String(r.event_type||n.event_type||``)?null:{...r,family:`runtime`,event_type:r.event_type||n.event_type,run_id:r.run_id||n.run_id,seq:Number(e.SeqId||n.seq||r.seq||0),timestamp:e.Timestamp||n.timestamp||r.timestamp}}function E6(e){return e.role===`model`?{...e,blocks:S3({content:e.content,reasoning:e.reasoning,tools:e.tools})}:e}function D6(e,t){let n=t.find(e=>e.role===`user`),r=t.filter(e=>e.role===`model`),i=e.filter(e=>e.role===`model`).at(-1),a=r.at(-1);return e.map(e=>e.role===`user`&&n?{...e,...n,invocationId:e.invocationId||n.invocationId}:E6(e===i&&a?{...e,responseId:a.responseId||e.responseId,traceId:a.traceId||e.traceId,rootSpanId:a.rootSpanId||e.rootSpanId}:e))}function O6(e){return new Set(e.filter(e=>e.role===`model`&&e.eventType===`assistant_message`&&!!String(e.content||``).trim()&&!!e.invocationId).map(e=>String(e.invocationId)))}function k6(e,t,n){let r=new N3(n),i=[],a=new Set,o=[...t||[]].sort((e,t)=>Number(e.SeqId||0)-Number(t.SeqId||0));for(let e of o){let t=T6(e);if(!t)continue;let n=String(t.run_id||``).trim();n&&a.add(n);let o=r.translate(t);o&&i.push({...o,SeqId:Number(e.SeqId||o.SeqId||0),Timestamp:w6(e.Timestamp||o.Timestamp)})}let s=S6(i).filter(e=>e.invocationId&&a.has(e.invocationId)),c=new Map;for(let t of e){let e=String(t.invocationId||``);e&&c.set(e,[...c.get(e)||[],t])}let l=O6(s),u=[...l].flatMap(e=>D6(s.filter(t=>t.invocationId===e),c.get(e)||[]));return{messages:[...e.filter(e=>e.role===`a2ui`||!e.invocationId||!l.has(e.invocationId)),...u].sort((e,t)=>Number(e.timestamp||0)-Number(t.timestamp||0)),canonicalRunIds:[...l],translatedEvents:i}}function A6(e,t){let n=Math.max(0,Number(t)||0),r=Number.isFinite(e)&&Number(e)>=0&&n>0,i=r?Math.max(0,Number(e)):0;return{known:r,usedTokens:i,limitTokens:n,percent:r?Math.max(0,Math.min(100,Math.round(i/n*100))):0}}function j6(e){return{title:`上下文窗口`,value:e.known?`${e.percent}% 已用`:`用量未上报`,detail:e.known?`已用 ${e.usedTokens.toLocaleString(`en-US`)} tokens,共 ${e.limitTokens.toLocaleString(`en-US`)}`:e.limitTokens>0?`上限 ${e.limitTokens.toLocaleString(`en-US`)} tokens`:`当前模型未提供上下文上限`}}function M6(e){return[...e].reverse().find(e=>e.usage?.reported===!0&&Number.isFinite(e.usage.inputTokens))?.usage?.inputTokens}var N6=new Set([`RUNNING`,`PAUSED`,`WAITING_INPUT`]);function P6(e){return[...e].filter(e=>N6.has(String(e.status||``))).sort((e,t)=>Date.parse(e.startedAt||`1970-01-01`)-Date.parse(t.startedAt||`1970-01-01`)).at(-1)}function F6(e,t){return t?e.filter(e=>e.id!==t):e}function I6(e){let t=e.completedAt||e.startedAt||``,n=Date.parse(t);return Number.isFinite(n)?n:0}function L6(e,t){let n=new Map;for(let r of e){if(r.agentId!==t||!r.sessionId)continue;let e=n.get(r.sessionId)||[];e.push(r),n.set(r.sessionId,e)}return[...n.entries()].map(([e,t])=>{let n=[...t].sort((e,t)=>I6(e)-I6(t)),r=n[0],i=n.at(-1),a=[...n].reverse().find(e=>N6.has(String(e.status||``)));return{id:e,title:r?.input?.trim()||`新会话`,updatedAt:i.completedAt||i.startedAt||``,running:!!a,activeStatus:a?.status,runs:n}}).sort((e,t)=>Date.parse(t.updatedAt||`1970-01-01`)-Date.parse(e.updatedAt||`1970-01-01`))}function R6(e,t){return{localId:e,responseId:e,sessionId:t,runId:``,reasoning:``,output:``,status:`streaming`,error:``,activities:[],surfaces:[],conversationItems:n3(),timeline:[],artifacts:[],fallbacks:[],pendingApprovals:[],transport:`responses`}}function z6(e){return e&&typeof e==`object`?e:{}}function B6(e,t){if(typeof e.detail==`string`&&e.detail.trim())return e.detail;let n=z6(e.detail),r=n.command||n.title||n.name||n.message||n.action;return typeof r==`string`&&r.trim()?r:typeof e.prompt==`string`&&e.prompt.trim()?e.prompt:typeof e.kind==`string`&&e.kind.trim()?e.kind:t}function V6(e,t,n){let r=[...n.toolItems.map(e=>({id:`tool:${e.itemId}`,kind:`tool`,title:String(e.payload.tool||`调用工具`),status:e.lifecycle===`failed`?`failed`:e.lifecycle===`completed`?`completed`:`running`,detail:$6(e.payload),data:e.payload})),...n.approvalItems.map(e=>({id:`approval:${e.itemId}`,kind:`approval`,title:B6(e.payload,`等待批准`),status:e.lifecycle===`failed`?`failed`:e.lifecycle===`completed`?`completed`:`waiting`,detail:$6(e.payload),data:e.payload}))],i={...e,conversationItems:t,timeline:n.timeline,output:n.output,reasoning:n.reasoning,activities:r,artifacts:n.artifacts,fallbacks:n.fallbacks,pendingApprovals:n.approvalItems.filter(e=>e.lifecycle===`pending`&&Number(e.payload.revision)>0).map(e=>({id:String(e.payload.interactionId||e.itemId),title:B6(e.payload,`此操作需要批准`),revision:Number(e.payload.revision)})),runId:n.runId||e.runId,status:n.terminalStatus===`failed`?`failed`:n.terminalStatus===`completed`?`completed`:n.approvalItems.some(e=>e.lifecycle===`pending`)?`waiting_input`:e.status,error:n.terminalStatus===`failed`?n.fallbacks.find(e=>e.failed)?.detail||`Agent 运行失败`:e.error};if(n.a2uiItems.length||n.structuredInputItems.length){i={...i,surfaces:[]};for(let e of n.a2uiItems){let t=Array.isArray(e.payload.data)?e.payload.data:[];i=J6(i,{type:`a2ui.surface.update`,runId:e.runId,operations:t})}for(let e of n.structuredInputItems){let t=String(e.payload.surfaceId||``);t&&(i=J6(i,{type:e.lifecycle===`completed`?`a2ui.action`:`a2ui.interaction`,runId:e.runId,surfaceId:t,interactionId:String(e.payload.interactionId||e.itemId),kind:String(e.payload.kind||`form`),inputSchema:z6(e.payload.inputSchema),revision:Number(e.payload.revision||0)}))}}return i}function H6(e,t){return V6(e,t.state,t.presentation)}function U6(e,t,n){let r=String(t.runId||t.run_id||e.runId);if(n===`run.completed`)return{...e,runId:r,status:`completed`};if(n===`run.cancelled`||n===`run.canceled`)return{...e,runId:r,status:`cancelled`};if(n===`run.failed`||n===`run.interrupted`){let i=z6(t.error);return{...e,runId:r,status:`failed`,error:String(i.message||t.message||(n===`run.interrupted`?`Agent 运行中断`:`Agent 运行失败`))}}return null}function W6(e,t){let n=String(t.type||``),r=V4(t.conversationItem);if(r){let i=a3(e.conversationItems,r),a=i===e.conversationItems?e:V6(e,i,t3(i));return U6(a,t,n)||a}if(t.conversationItem!==void 0)return U6(e,t,n)||{...e,runId:String(t.runId||t.run_id||e.runId)};let i=U6(e,t,n);if(i)return i;if(n===`response.created`||n===`response.in_progress`){let n=z6(t.response);return{...e,responseId:String(n.id||e.responseId)}}if(n===`response.reasoning_summary_text.delta`)return{...e,reasoning:e.reasoning+String(t.delta||``)};if(n===`response.output_text.delta`)return{...e,output:e.output+String(t.delta||``)};if(n===`response.output_item.added`||n===`response.output_item.done`){let r=e8(z6(t.item),n.endsWith(`.done`));if(!r)return e;let i=e.activities.findIndex(e=>e.id===r.id),a=[...e.activities];return i<0?a.push(r):a[i]={...a[i],...r},{...e,activities:a}}if(n.startsWith(`a2ui.`))return J6(e,t);if(n===`response.paused`)return{...e,runId:String(t.runId||t.run_id||e.runId),status:`paused`};if(n===`response.resumed`)return{...e,runId:String(t.runId||t.run_id||e.runId),status:`streaming`};if(/^response\.(?:web_search_call|file_search_call|mcp_call)\./.test(n)){let r=String(t.item_id||t.itemId||t.call_id||t.callId||n.split(`.`)[1]),i=n.includes(`web_search`)?`网页搜索`:n.includes(`file_search`)?`文件搜索`:`MCP 调用`,a=n.endsWith(`.failed`)?`failed`:n.endsWith(`.completed`)?`completed`:`running`,o={id:`tool:${r}`,kind:`tool`,title:i,status:a,detail:``,data:z6(t)},s=e.activities.findIndex(e=>e.id===o.id),c=[...e.activities];return s<0?c.push(o):c[s]={...c[s],...o},{...e,activities:c}}if(n===`response.completed`){let n=z6(t.response),r=z6(n.metadata);return{...e,responseId:String(n.id||e.responseId),runId:String(r.runtime_run_id||r.runtimeRunId||e.runId),usage:z6(n.usage),status:`completed`}}if(n===`response.cancelled`||n===`response.canceled`)return{...e,status:`cancelled`};if(n===`response.failed`||n===`error`){let n=z6(t.response),r=z6(t.error||n.error);return{...e,status:`failed`,error:String(r.message||t.message||`Agent 运行失败`)}}return e}function G6(e){return{id:e,catalogId:``,components:{},roots:[],dataModel:{}}}function K6(e){let t=e.a2uiOperations??e.a2ui_operations??e.operations;return Array.isArray(t)?t.map(z6):[]}function q6(e,t){for(let n of t){let t=z6(n.createSurface);if(Object.keys(t).length){let n=String(t.surfaceId||t.surface_id||``);if(!n)continue;let r=e.get(n)||G6(n);e.set(n,{...r,catalogId:String(t.catalogId||t.catalog_id||r.catalogId)});continue}let r=z6(n.updateComponents);if(Object.keys(r).length){let t=String(r.surfaceId||r.surface_id||``);if(!t)continue;let n=e.get(t)||G6(t),i={...n.components},a=Array.isArray(r.components)?r.components.map(z6):[];for(let e of a){let t=String(e.id||e.componentId||e.component_id||``),n=String(e.component||e.type||``);t&&n&&(i[t]={...e,id:t,component:n})}let o=new Set;for(let e of Object.values(i)){let t=Array.isArray(e.children)?e.children:[];for(let e of t)typeof e==`string`&&o.add(e);typeof e.child==`string`&&o.add(e.child)}let s=Object.keys(i).filter(e=>!o.has(e));e.set(t,{...n,components:i,roots:s});continue}let i=z6(n.updateDataModel);if(Object.keys(i).length){let t=String(i.surfaceId||i.surface_id||``);if(!t)continue;let n=e.get(t)||G6(t),r=z6(i.value);e.set(t,{...n,dataModel:String(i.path||`/`)===`/`?r:{...n.dataModel,...r}});continue}let a=z6(n.deleteSurface);if(Object.keys(a).length){let t=String(a.surfaceId||a.surface_id||``);t&&e.delete(t)}}}function J6(e,t){let n=new Map(e.surfaces.map(e=>[e.id,{...e,components:{...e.components},dataModel:{...e.dataModel}}]));q6(n,K6(t));let r=String(t.type||``),i=String(t.surfaceId||t.surface_id||``);if(r===`a2ui.interaction`&&i){let e=n.get(i)||G6(i);n.set(i,{...e,interaction:{id:String(t.interactionId||t.interaction_id||``),revision:Number(t.revision||0),kind:String(t.kind||`form`),status:Number(t.revision||0)>0?`pending`:`expired`,inputSchema:z6(t.inputSchema||t.input_schema)}})}if(r===`a2ui.action`&&i){let e=n.get(i);e?.interaction&&n.set(i,{...e,interaction:{...e.interaction,status:`resolved`}})}return{...e,runId:String(t.runId||t.run_id||e.runId),surfaces:[...n.values()],status:e.status===`completed`||e.status===`failed`?e.status:r===`a2ui.interaction`?`waiting_input`:r===`a2ui.action`?`streaming`:e.status}}function Y6(e){let t=R6(`persisted`,`persisted`);for(let n of e)n.type.startsWith(`a2ui.`)&&(t=J6(t,{type:n.type,...n.data||{}}));return t.surfaces}function X6(e){let t=``,n=(e=!1)=>{t=t.replaceAll(`\r
|
|
272
|
+
`,`
|
|
273
|
+
`);let n=t.indexOf(`
|
|
274
|
+
|
|
275
|
+
`);for(;n>=0;)r(t.slice(0,n)),t=t.slice(n+2),n=t.indexOf(`
|
|
276
|
+
|
|
277
|
+
`);e&&t.trim()&&(r(t),t=``)},r=t=>{let n=`message`,r,i=[];for(let e of t.split(`
|
|
278
|
+
`))if(!(!e||e.startsWith(`:`))){if(e.startsWith(`event:`)&&(n=e.slice(6).trim()),e.startsWith(`id:`)){let t=Number(e.slice(3).trim());Number.isSafeInteger(t)&&t>=0&&(r=t)}e.startsWith(`data:`)&&i.push(e.slice(5).trimStart())}if(!i.length)return;let a=i.join(`
|
|
279
|
+
`);if(a!==`[DONE]`)try{let t=JSON.parse(a);e({...t,type:String(t.type||n),...r===void 0?{}:{sseId:r}})}catch{e({type:n,message:a,...r===void 0?{}:{sseId:r}})}};return{push(e){t+=e,n()},finish(){n(!0)}}}function Z6(e,t){return String(e.callId||e.call_id||e.toolCallId||e.tool_call_id||t)}function Q6(e,t){return String(e===`command`?t.command||t.name||`执行命令`:e===`tool`?t.name||t.tool||`调用工具`:t.kind||t.action||`等待批准`)}function $6(e){let t=e.output??e.result??e.message??e.error??``;return typeof t==`string`?t:t&&typeof t==`object`?JSON.stringify(t,null,2):t===``?``:String(t)}function e8(e,t){let n=String(e.type||``);if(![`function_call`,`mcp_call`,`shell_call`,`local_shell_call`,`file_search_call`,`web_search_call`,`approval_request`].includes(n))return null;let r=String(e.call_id||e.callId||e.id||`tool`),i=n===`shell_call`||n===`local_shell_call`,a=n===`approval_request`,o=a?`approval`:i?`command`:`tool`,s=z6(e.action),c=Array.isArray(s.commands)?s.commands.filter(e=>typeof e==`string`).join(` && `):``,l=a?String(s.title||s.kind||`等待批准`):i?c||String(e.name||`执行命令`):n===`web_search_call`?`网页搜索`:n===`file_search_call`?`文件搜索`:String(e.name||e.server_label||`调用工具`),u=String(e.status||``),d=u===`failed`||u===`error`||Number(e.exit_code??e.exitCode??0)!==0?`failed`:a&&!t?`waiting`:t?`completed`:`running`;return{id:`${o}:${r}`,kind:o,title:l,status:d,detail:$6(e),data:e}}function t8(e){return[String(e.runId||``),String(e.scopeId||``),String(e.itemId||``),String(e.partId||``)].join(`/`)}function n8(e){let t=z6(e.data?.runtimeEvent),n=t.output_refs??t.outputRefs;return Array.isArray(n)?n.map(z6):[]}function r8(e){let t=[],n=new Map,r=[],i=new Map,a=null;for(let o of e){let e=o.data||{},s=o.type===`thinking.delta`||o.type===`thinking.completed`,c=o.type===`message.delta`||o.type===`message.completed`;if(s||c){let r=s?`thinking`:`message`,i=o.type.endsWith(`.completed`),a=i?`complete`:String(e.operation||`append`),c=String(e.text||e.delta||``),l=`${r}:${t8(e)}`,u=n.get(l),d=z6(e.runtimeEvent),f=String(e.phase||d.phase||``);if(u===void 0)n.set(l,t.length),t.push({runId:String(e.runId||``),scopeId:String(e.scopeId||``),itemId:String(e.itemId||``),partId:String(e.partId||``),phase:f,kind:r,text:c,completed:i});else{let e=t[u],n=a===`append`?e.text+c:c||e.text;t[u]={...e,phase:e.phase||f,text:n,completed:i||e.completed}}continue}if([`run.completed`,`run.failed`,`run.interrupted`,`run.cancelled`,`run.canceled`].includes(o.type)){let e=n8(o);e.length&&(a=e);continue}let l=null;if(o.type.startsWith(`command.`)?l=`command`:o.type.startsWith(`tool.`)?l=`tool`:o.type===`approval.requested`&&(l=`approval`),!l)continue;let u=Z6(e,`${l}-${o.id}`),d=i.get(`${l}:${u}`),f=o.type.endsWith(`.completed`),p=o.type.endsWith(`.failed`)||!!e.error||Number(e.exitCode??e.exit_code??0)!==0,m=l===`approval`?`waiting`:p?`failed`:f?`completed`:`running`,h={id:`${l}:${u}`,kind:l,title:Q6(l,e),status:m,detail:$6(e),data:e};if(d===void 0)i.set(h.id,r.length),r.push(h);else{let e=r[d];r[d]={...e,...h,title:h.title===Q6(l,{})?e.title:h.title,detail:h.detail||e.detail}}}let o=t.filter(e=>e.kind===`message`),s=t.filter(e=>e.kind===`thinking`).map(e=>e.text).join(``),c;if(a&&a.length){let e=new Map;for(let t of o)e.set(`${t.scopeId}/${t.itemId}`,t);c=a.map(t=>e.get(`${String(t.scope_id??t.scopeId??``)}/${String(t.item_id??t.itemId??``)}`)).filter(e=>!!e).map(e=>e.text).join(`
|
|
280
|
+
|
|
281
|
+
`)}else{let e=o.filter(e=>e.completed);c=(e.length?e:o).map(e=>e.text).join(``)}return{reasoning:s,output:c,textItems:t,activities:r}}function i8(e){let t=Number(e.totalTokens??e.total_tokens??0);return`${Number.isFinite(t)?t.toLocaleString(`en-US`):`0`} tokens`}function a8(e){let t=Number(e.durationMs??e.duration_ms);return!Number.isFinite(t)||t<0?``:t<1e3?`${Math.round(t)}ms`:`${(t/1e3).toFixed(1)}s`}function o8(e){let t=[],n=new Map,r=e.some(e=>e.type===`run.started`),i=(e,r)=>{let i=n.get(e);if(i===void 0){n.set(e,t.length),t.push(r);return}t[i]={...t[i],...r}};for(let a of e){let e=a.data||{},o=a.type||``;if(o===`run.created`){if(r)continue;t.push({id:`run:${a.id}`,kind:`run`,title:`Run 创建`,summary:String(e.model||e.runtimeType||``),detail:``,status:`running`,createdAt:a.createdAt,data:e});continue}if(o===`run.started`){let n=z6(e.runtimeEvent);t.push({id:`run:${a.id}`,kind:`run`,title:`Run 启动`,summary:String(e.runtimeType||n.runtimeType||n.model||`Local Runtime`),detail:``,status:`running`,createdAt:a.createdAt,data:e});continue}if([`run.completed`,`run.failed`,`run.interrupted`,`run.cancelled`,`run.canceled`].includes(o)){let n=o===`run.failed`||o===`run.interrupted`,r=o===`run.cancelled`||o===`run.canceled`;t.push({id:`run:${a.id}`,kind:`run`,title:n?o===`run.interrupted`?`Run 中断`:`Run 失败`:r?`Run 取消`:`Run 完成`,summary:a8(e),detail:n?String(e.error||e.message||``):``,status:n?`failed`:`completed`,createdAt:a.createdAt,data:e});continue}if(o.startsWith(`thinking.`)||o.startsWith(`message.`)){let r=o.startsWith(`thinking.`)?`thinking`:`message`,s=`stream:${r}`,c=n.get(s),l=c===void 0?null:t[c],u=String(e.text||e.delta||``),d=o.endsWith(`.completed`),f=d&&u?u:`${l?.detail||``}${u}`;i(s,{id:s,kind:r,title:r===`thinking`?`思考过程`:`模型回复`,summary:f?`${f.length} 字`:``,detail:f,status:d?`completed`:`running`,createdAt:a.createdAt||l?.createdAt,data:e});continue}let s=null;if(o.startsWith(`command.`)?s=`command`:o.startsWith(`tool.`)?s=`tool`:o.startsWith(`approval.`)&&(s=`approval`),s){let r=`${s}:${Z6(e,String(a.id))}`,c=n.get(r),l=c===void 0?null:t[c],u=o.endsWith(`.failed`)||!!e.error||Number(e.exitCode??e.exit_code??0)!==0,d=o.endsWith(`.completed`)||o.endsWith(`.resolved`),f=$6(e)||l?.detail||``,p=Q6(s,e),m=Q6(s,{});i(r,{id:r,kind:s,title:p===m&&l?.title?l.title:p,summary:a8(e),detail:f,status:u?`failed`:d?`completed`:s===`approval`?`waiting`:`running`,createdAt:a.createdAt||l?.createdAt,data:e});continue}o===`usage.reported`&&t.push({id:`usage:${a.id}`,kind:`usage`,title:`用量上报`,summary:i8(e),detail:``,status:`completed`,createdAt:a.createdAt,data:e})}if([...e].reverse().find(e=>[`run.completed`,`run.failed`,`run.interrupted`,`run.cancelled`,`run.canceled`].includes(e.type)))for(let e of t)e.status===`running`&&(e.kind===`thinking`||e.kind===`message`)&&(e.status=`completed`);return t}function s8(e,t){let n=e.filter(e=>e.type.startsWith(`memory.recall.`)),r=[...n].reverse().find(e=>e.type===`memory.recall.projected`);if(r){let e=Number(r.data?.candidate_count??r.data?.count??0);return{status:`used`,title:`已提供长期记忆`,description:e>0?`${e} 条相关记忆已交付本次运行`:`相关记忆已交付本次运行`}}let i=[...n].reverse().find(e=>e.type===`memory.recall.completed`);if(i){let e=Number(i.data?.candidate_count??i.data?.count??0);return{status:`recalled`,title:`已召回长期记忆`,description:e>0?`已找到 ${e} 条,但未确认交付 Runner`:`已找到相关记忆,但未确认交付 Runner`}}return n.some(e=>e.type===`memory.recall.failed`)?{status:`failed`,title:`长期记忆召回失败`,description:`本次未能读取长期记忆,可在 Trace 中查看原因`}:n.some(e=>e.type===`memory.recall.empty`)?{status:`empty`,title:`未使用长期记忆`,description:`未找到与当前问题相关的记忆`}:Number(t||0)>0?{status:`used`,title:`已纳入长期记忆`,description:`相关记忆已纳入本次上下文`}:{status:`unused`,title:`未使用长期记忆`,description:`本次回答未选入长期记忆`}}function c8(e){return!Number.isFinite(e)||Number(e)<0?`未上报`:Number(e)<1e3?`${Math.round(Number(e))}ms`:`${(Number(e)/1e3).toFixed(2)}s`}function l8(e){return Number.isFinite(e)?Number(e).toLocaleString():`未上报`}function u8(e){return{platform_safety:`平台安全规则`,agent_identity:`角色定义`,agent_policy:`任务规则`,runtime_capabilities:`运行时能力说明`,resource_manifest:`工具与 Skill 说明`,request_instructions:`本次请求指令`}[e]||e}function d8(e){return{platform_safety:`平台策略`,agent_identity:`Agent Revision`,agent_policy:`Agent Revision`,runtime_capabilities:`Runtime Adapter`,resource_manifest:`构建资源清单`,request_instructions:`本次请求`}[e]||`Prompt Compiler`}function f8(e){return e.length>20?`${e.slice(0,17)}…`:e}function p8(e){return e===`RUNNING`||e===`CREATED`?`运行中`:e===`COMPLETED`?`已完成`:e===`CANCELLED`?`已取消`:e===`INTERRUPTED`?`已中断`:e===`TIMED_OUT`?`已超时`:`失败`}function m8(e){try{return BigInt(String(e.startTimeUnixNano||`0`))}catch{return 0n}}function h8(e){if(!e.length)return[];let t=[...e].sort((e,t)=>m8(e)<m8(t)?-1:1),n=t.reduce((e,t)=>{let n=m8(t);return!e||n<e?n:e},0n),r=t.map(e=>Number(m8(e)-n)/1e6),i=Math.max(1,...t.map((e,t)=>r[t]+Math.max(0,Number(e.durationMs)||0))),a=new Map(t.map(e=>[e.spanId,e])),o=e=>{let t=0,n=e.parentSpanId,r=new Set;for(;n&&a.has(n)&&!r.has(n)&&t<3;)r.add(n),t+=1,n=a.get(n)?.parentSpanId;return t};return t.slice(0,8).map((e,t)=>({...e,left:Math.min(96,Math.max(0,r[t]/i*100)),width:Math.max(3,Math.min(100,Math.max(0,Number(e.durationMs)||0)/i*100)),depth:o(e)}))}function g8(e){return e.kind===`thinking`?(0,G.jsx)(L,{size:13}):e.kind===`message`?(0,G.jsx)(Ie,{size:13}):e.kind===`command`?(0,G.jsx)(pt,{size:13}):e.kind===`tool`?(0,G.jsx)(yt,{size:13}):e.kind===`approval`?(0,G.jsx)(ot,{size:13}):e.kind===`usage`?(0,G.jsx)(De,{size:13}):(0,G.jsx)(Xe,{size:13})}async function _8(e){let t=await g(`/api/v1/runs/${encodeURIComponent(e)}/events`);if(!t.ok)return[];let n=[],r=X6(e=>{let{type:t,...r}=e;n.push({id:n.length+1,type:t,data:r})});return r.push(await t.text()),r.finish(),n}function v8({agentId:e,onOpenTrace:t,onClose:n}){let[r,i]=(0,s.useState)(null),[a,o]=(0,s.useState)([]),[c,l]=(0,s.useState)([]),[u,d]=(0,s.useState)(null),[f,p]=(0,s.useState)(null),[m,h]=(0,s.useState)(null),[_,v]=(0,s.useState)(!1),[y,b]=(0,s.useState)(!0),[x,S]=(0,s.useState)(0);(0,s.useEffect)(()=>{let t=!1,n=null,r=0;async function a(){let s=++r;try{let n=((await g(`/api/v1/runs`).then(e=>e.json())).items||[]).filter(t=>!e||t.agentId===e).at(-1)||null;if(t||s!==r)return;if(i(n),!n){o([]),l([]),d(null),p(null);return}let[a,c,u,f]=await Promise.all([_8(n.id),g(`/api/v1/traces/${encodeURIComponent(n.traceId)}`).then(e=>e.ok?e.json():null).catch(()=>null),g(`/api/v1/runs/${encodeURIComponent(n.id)}/context`).then(e=>e.ok?e.json():null).catch(()=>null),g(`/api/v1/runs/${encodeURIComponent(n.id)}/prompt`).then(e=>e.ok?e.json():null).catch(()=>null)]);!t&&s===r&&(o(a),l(c?.spans||[]),d(u),p(f))}catch{}finally{!t&&s===r&&b(!1),t||(n=window.setTimeout(a,2500))}}return b(!0),a(),()=>{t=!0,r+=1,n!==null&&window.clearTimeout(n)}},[e,x]),(0,s.useEffect)(()=>{h(null),v(!1)},[r?.id]);async function C(e){if(!(m||_)){v(!0);try{let t=await g(`/api/v1/runs/${encodeURIComponent(e)}/prompt?include_content=true`),n=t.ok?await t.json():null;h(n?.reveal||{available:!1,reason:`Prompt 详情读取失败。`})}catch{h({available:!1,reason:`Prompt 详情读取失败。`})}finally{v(!1)}}}let w=r?.status===`RUNNING`||r?.status===`CREATED`,T=r?/fail|error|interrupt|timed/i.test(r.status):!1,E=(0,s.useMemo)(()=>o8(a),[a]),D=(0,s.useMemo)(()=>h8(c),[c]),k=r?.usage?.reported===!0,A=u?.decisions||[],M=!!(u||f||k),N=A.some(e=>e.decision===`dropped`)?`部分内容已舍弃`:A.some(e=>e.decision===`compressed`)?`已自动压缩`:A.some(e=>e.decision===`replaced`)?`部分内容已替换`:M?`正常`:`等待证据`,P=Object.keys(f?.tokensBySection||{}).map(u8),F=u?.tokensByKind?.recalled_memory,I=(0,s.useMemo)(()=>s8(a,F),[a,F]),R=Number.isFinite(u?.plannedInputTokens)&&Number.isFinite(u?.projectedInputTokens)&&Number(u?.plannedInputTokens)!==Number(u?.projectedInputTokens);return(0,G.jsxs)(`aside`,{className:`chat-run-panel`,"aria-label":`运行检查器`,children:[(0,G.jsxs)(`div`,{className:`chat-run-head`,children:[(0,G.jsxs)(`span`,{className:`chat-run-title`,children:[(0,G.jsx)(O,{size:15}),` 运行检查器`]}),(0,G.jsx)(`span`,{className:`chat-run-head-spacer`}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:()=>S(e=>e+1),title:`刷新`,children:(0,G.jsx)(et,{size:14})}),(0,G.jsx)(`button`,{className:`icon-btn`,onClick:n,title:`收起`,children:(0,G.jsx)(bt,{size:14})})]}),y&&!r?(0,G.jsxs)(`div`,{className:`chat-run-empty`,children:[(0,G.jsx)(Ne,{size:16,className:`animate-spin`}),` 正在读取最近运行…`]}):r?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`chat-run-scroll`,children:[(0,G.jsxs)(`section`,{className:`chat-run-overview`,children:[(0,G.jsxs)(`div`,{className:`chat-run-status-row`,children:[(0,G.jsx)(`span`,{className:`chat-run-state-icon ${w?`running`:T?`failed`:`completed`}`,children:w?(0,G.jsx)(Ne,{size:15,className:`animate-spin`}):T?(0,G.jsx)(ce,{size:15}):(0,G.jsx)(ie,{size:15})}),(0,G.jsxs)(`div`,{className:`chat-run-identity`,children:[(0,G.jsx)(`strong`,{children:p8(r.status)}),(0,G.jsx)(`span`,{title:r.id,children:f8(r.id)})]}),(0,G.jsx)(`span`,{className:`chat-run-state ${w?`running`:T?`failed`:`completed`}`,children:r.status})]}),r.error?.message&&(0,G.jsxs)(`div`,{className:`chat-run-error`,role:`alert`,children:[(0,G.jsx)(ce,{size:15}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:r.error.code||`运行失败`}),(0,G.jsx)(`span`,{children:r.error.message})]})]}),(0,G.jsxs)(`div`,{className:`chat-run-route`,children:[(0,G.jsx)(ge,{size:13}),(0,G.jsx)(`span`,{children:`Edge · Local`}),(0,G.jsx)(`i`,{}),(0,G.jsxs)(`span`,{children:[r.runtimeType||`codex`,` Runtime`]}),(0,G.jsx)(`i`,{}),(0,G.jsx)(`span`,{children:r.model||`未指定模型`})]})]}),(0,G.jsxs)(`section`,{className:`chat-run-section`,children:[(0,G.jsxs)(`div`,{className:`chat-run-section-title`,children:[(0,G.jsx)(`span`,{children:`本次运行`}),(0,G.jsx)(`small`,{children:r.startedAt?new Date(r.startedAt).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}):``})]}),(0,G.jsxs)(`div`,{className:`chat-run-metrics`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(ue,{size:13}),(0,G.jsx)(`span`,{children:`耗时`}),(0,G.jsx)(`strong`,{children:c8(r.durationMs)})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(pe,{size:13}),(0,G.jsx)(`span`,{children:`总 Token`}),(0,G.jsx)(`strong`,{children:k?l8(r.usage?.totalTokens):`未上报`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(Ie,{size:13}),(0,G.jsx)(`span`,{children:`输入 / 输出`}),(0,G.jsx)(`strong`,{children:k?`${l8(r.usage?.inputTokens)} / ${l8(r.usage?.outputTokens)}`:`未上报`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(Oe,{size:13}),(0,G.jsx)(`span`,{children:`Span`}),(0,G.jsx)(`strong`,{children:c.length||`—`})]})]})]}),(0,G.jsxs)(`section`,{className:`chat-run-section pcm-run-summary`,children:[(0,G.jsxs)(`div`,{className:`chat-run-section-title`,children:[(0,G.jsx)(`span`,{children:`运行解释`}),(0,G.jsx)(`small`,{children:N})]}),(0,G.jsxs)(`div`,{className:`pcm-run-health ${N===`正常`?`healthy`:N===`等待证据`?`pending`:`adjusted`}`,children:[N===`正常`?(0,G.jsx)(ie,{size:16}):(0,G.jsx)(De,{size:16}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:N===`正常`?`本次运行依据已正常准备`:N}),(0,G.jsx)(`span`,{children:u?`规则、相关记忆和当前问题已按策略处理`:f&&k?`规则证据与模型用量已记录;Runner 内部上下文由框架管理`:`正在收集本次运行依据`})]})]}),(0,G.jsxs)(`div`,{className:`pcm-run-signal-list`,children:[(0,G.jsxs)(`details`,{className:`pcm-run-signal`,onToggle:e=>{e.currentTarget.open&&C(r.id)},children:[(0,G.jsxs)(`summary`,{children:[(0,G.jsx)(ie,{size:14}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:`规则已应用`}),(0,G.jsx)(`span`,{children:P.length?P.join(` · `):f?.sectionCount?`${f.sectionCount} 个规则来源`:`本次未提供规则来源证据`})]}),(0,G.jsx)(H,{className:`pcm-run-signal-chevron`,size:14})]}),(0,G.jsx)(`div`,{className:`pcm-run-signal-details`,children:_?(0,G.jsx)(`p`,{children:`正在按本次不可变 Build 校验并读取 Prompt…`}):m?.available&&m.sections?.length?m.sections.map(e=>(0,G.jsxs)(`div`,{className:`pcm-run-prompt-section`,children:[(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:u8(e.id)}),(0,G.jsxs)(`small`,{children:[`来源:`,d8(e.id)]})]}),(0,G.jsx)(`pre`,{children:e.content})]},e.id)):(0,G.jsx)(`p`,{children:m?.reason||`展开后按需读取 Prompt 正文;正文不会写入 Trace。`})})]}),(0,G.jsxs)(`div`,{className:`pcm-run-signal-static ${I.status===`failed`?`attention`:``}`,children:[(0,G.jsx)(L,{size:14}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:I.title}),(0,G.jsx)(`span`,{children:I.description})]})]}),(0,G.jsxs)(`div`,{className:`pcm-run-signal-static ${N!==`正常`&&N!==`等待证据`?`attention`:``}`,children:[(0,G.jsx)(De,{size:14}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:R?`上下文已按预算调整`:A.some(e=>e.decision===`compressed`||e.decision===`dropped`||e.decision===`replaced`)?N:`上下文无需压缩`}),(0,G.jsx)(`span`,{children:R?`关键规则与当前问题已优先保留`:`未检测到压缩、替换或舍弃`})]})]})]})]}),(0,G.jsxs)(`section`,{className:`chat-run-section`,children:[(0,G.jsxs)(`div`,{className:`chat-run-section-title`,children:[(0,G.jsx)(`span`,{children:`Trace 瀑布`}),(0,G.jsx)(`small`,{children:D.length?`${D.length} 个节点`:`等待 Span`})]}),D.length?(0,G.jsx)(`div`,{className:`chat-run-waterfall`,children:D.map(e=>{let t=/fail|error/i.test(e.status);return(0,G.jsxs)(`div`,{className:`chat-run-waterfall-row`,children:[(0,G.jsx)(`span`,{className:`chat-run-waterfall-label`,style:{paddingLeft:e.depth*8},title:e.name,children:e.name}),(0,G.jsx)(`span`,{className:`chat-run-waterfall-track`,children:(0,G.jsx)(`i`,{className:t?`failed`:``,style:{left:`${e.left}%`,width:`${e.width}%`}})}),(0,G.jsx)(`small`,{children:c8(e.durationMs)})]},e.spanId)})}):(0,G.jsx)(`div`,{className:`chat-run-inline-empty`,children:`运行开始后显示 Span 时序`})]}),(0,G.jsxs)(`section`,{className:`chat-run-section chat-run-events-section`,children:[(0,G.jsxs)(`div`,{className:`chat-run-section-title`,children:[(0,G.jsx)(`span`,{children:`执行事件`}),(0,G.jsx)(`small`,{children:E.length})]}),(0,G.jsx)(`div`,{className:`chat-run-timeline`,children:E.length?E.map(e=>(0,G.jsxs)(`div`,{className:`chat-run-event ${e.kind} ${e.status}`,children:[(0,G.jsx)(`span`,{className:`chat-run-event-icon`,children:g8(e)}),(0,G.jsxs)(`div`,{className:`chat-run-event-copy`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:e.title}),(0,G.jsx)(`small`,{children:e.summary})]}),e.detail&&(0,G.jsxs)(`details`,{children:[(0,G.jsx)(`summary`,{children:`查看详情`}),(0,G.jsx)(`pre`,{children:e.detail})]})]})]},e.id)):(0,G.jsx)(`div`,{className:`chat-run-inline-empty`,children:`正在建立 Runtime 连接…`})})]})]}),(0,G.jsx)(`div`,{className:`chat-run-footer`,children:(0,G.jsxs)(`button`,{className:`btn soft`,onClick:t,children:[`打开完整 Trace `,(0,G.jsx)(j,{size:14})]})})]}):(0,G.jsx)(`div`,{className:`chat-run-empty`,children:`发送一条消息后,这里会显示执行位置、用量与事件时间线。`})]})}var y8=[{value:`ask`,label:`请求批准`,compactLabel:`请求批准`,description:`文件修改与外部写入会逐次请求确认`},{value:`risk`,label:`帮我批准`,compactLabel:`帮我批准`,description:`仅在检测到风险操作时请求确认`},{value:`full`,label:`完全访问权限`,compactLabel:`完全访问`,description:`不受限制地访问互联网和工作区文件`}];function b8(e){return e===`ask`||e===`risk`||e===`full`?e:`risk`}function x8(e){return`agentkit-studio:approval:${e}`}function S8(e){return y8.find(t=>t.value===e)||y8[1]}function C8(e){return Array.isArray(e)?e.map(e=>{if(typeof e==`string`)return{label:e,value:e,description:``};let t=e&&typeof e==`object`?e:{},n=String(t.value??t.id??t.label??``);return{label:String(t.label??t.title??n),value:n,description:String(t.description??t.help??``)}}).filter(e=>e.value):[]}function w8(e){return(Array.isArray(e.children)?e.children:typeof e.child==`string`?[e.child]:[]).filter(e=>typeof e==`string`)}function T8({surface:e,busy:t=!1,onSubmit:n}){let[r,i]=(0,s.useState)(()=>({...e.dataModel})),[a,o]=(0,s.useState)({}),c=(0,s.useRef)(new Set),l=e.interaction?.status===`pending`,u=t||!l,d=e.roots.length?e.roots:Object.keys(e.components).slice(0,1);(0,s.useEffect)(()=>{i(t=>{let n={...t};for(let[t,r]of Object.entries(e.dataModel))c.current.has(t)||(n[t]=r);return n})},[e.dataModel]);let f=(e,t)=>{c.current.add(e),i(n=>({...n,[e]:t}))},p=(t,i={})=>{if(!e.interaction||u)return;let o={...r};for(let[e,t]of Object.entries(a)){let n=t.trim();if(!n)continue;let r=o[e];o[e]=Array.isArray(r)?[...r.filter(e=>String(e)!==n),n]:n}n(e.interaction.id,e.interaction.revision,t,{...o,...i})},m=(t,n)=>{let s=String(t.name||t.id),l=C8(t.options),d=Array.isArray(r[s])?r[s]:[],p=String(r[s]??t.value??``),m=!!(t.allow_other??t.allowOther??t.is_other??t.isOther),h=a[s]??``;return(0,G.jsxs)(`fieldset`,{className:`a2ui-field a2ui-options`,children:[(0,G.jsx)(`legend`,{children:String(t.label||t.title||`请选择`)}),!!t.description&&(0,G.jsx)(`p`,{className:`a2ui-field-description`,children:String(t.description)}),(0,G.jsxs)(`div`,{className:`a2ui-choice-list`,role:n?`group`:`radiogroup`,children:[l.map((t,r)=>{let i=n?d.includes(t.value):p===t.value;return(0,G.jsxs)(`label`,{className:`a2ui-choice${i?` selected`:``}`,children:[(0,G.jsx)(`input`,{type:n?`checkbox`:`radio`,"aria-label":t.label,name:n?void 0:`${e.id}-${s}`,checked:i,disabled:u,onChange:e=>{n?f(s,e.target.checked?[...d,t.value]:d.filter(e=>e!==t.value)):(o(e=>({...e,[s]:``})),f(s,t.value))}}),(0,G.jsx)(`span`,{className:`a2ui-choice-index`,children:r+1}),(0,G.jsxs)(`span`,{className:`a2ui-choice-copy`,children:[(0,G.jsx)(`strong`,{children:t.label}),t.description&&(0,G.jsx)(`small`,{children:t.description})]})]},t.value)}),m&&(0,G.jsxs)(`label`,{className:`a2ui-other${h?` active`:``}`,children:[(0,G.jsx)(`span`,{className:`a2ui-other-icon`,children:(0,G.jsx)(Ye,{size:14})}),(0,G.jsx)(`input`,{type:t.secret?`password`:`text`,"aria-label":`${String(t.label||t.title||s)}自定义输入`,value:h,placeholder:String(t.other_placeholder||t.otherPlaceholder||`其他,请输入…`),disabled:u,onChange:e=>{let t=e.target.value;c.current.add(s),o(e=>({...e,[s]:t})),n||i(e=>({...e,[s]:``}))}})]})]})]})},h=t=>{let n=e.components[t];if(!n)return null;let i=n.component,a=w8(n).map(e=>(0,G.jsx)(`div`,{children:h(e)},e));if(i===`Card`)return(0,G.jsxs)(`section`,{className:`a2ui-card`,children:[!!n.title&&(0,G.jsx)(`h3`,{children:String(n.title)}),!!n.body&&(0,G.jsx)(`p`,{children:String(n.body)}),a.length>0&&(0,G.jsx)(`div`,{className:`a2ui-card-content`,children:a})]});if([`Column`,`Row`].includes(i))return(0,G.jsx)(`div`,{className:`a2ui-layout ${i.toLowerCase()}`,children:a});if(i===`Text`)return(0,G.jsx)(`p`,{className:`a2ui-text ${String(n.variant||`body`)}`,children:String(n.text||``)});if([`TextField`,`Input`].includes(i)){let e=String(n.name||n.id);return(0,G.jsxs)(`label`,{className:`a2ui-field`,children:[(0,G.jsx)(`span`,{children:String(n.label||n.title||e)}),(0,G.jsx)(`input`,{value:String(r[e]??n.value??``),placeholder:String(n.placeholder||``),disabled:u,onChange:t=>f(e,t.target.value)})]})}if([`Select`,`RadioGroup`,`MultipleChoice`].includes(i)){let e=String(n.name||n.id),t=C8(n.options),a=i===`MultipleChoice`&&!!n.multiple;return i===`RadioGroup`||i===`MultipleChoice`?m(n,a):(0,G.jsxs)(`div`,{className:`a2ui-field`,children:[(0,G.jsx)(`span`,{children:String(n.label||n.title||`请选择`)}),(0,G.jsx)(Fh,{ariaLabel:String(n.label||n.title||`请选择`),value:String(r[e]??n.value??``),options:t,disabled:u,onValueChange:t=>f(e,t)})]})}if(i===`CheckboxGroup`)return m(n,!0);if(i===`ApprovalBar`)return(0,G.jsxs)(`div`,{className:`a2ui-approval`,role:`group`,"aria-label":`批准操作`,children:[(0,G.jsxs)(`span`,{className:`a2ui-approval-summary`,children:[(0,G.jsx)(st,{size:15}),String(n.summary||n.tool_name||`请确认此操作`)]}),(0,G.jsxs)(`span`,{className:`a2ui-actions`,children:[(0,G.jsxs)(`button`,{type:`button`,className:`secondary`,disabled:u,onClick:()=>p(`deny`),children:[(0,G.jsx)(bt,{size:14}),String(n.deny_label||`拒绝`)]}),(0,G.jsxs)(`button`,{type:`button`,disabled:u,onClick:()=>p(`approve`),children:[(0,G.jsx)(V,{size:14}),String(n.approve_label||`批准`)]})]})]});if(i===`Form`)return(0,G.jsxs)(`form`,{className:`a2ui-form`,onSubmit:e=>{e.preventDefault(),p(`submit`)},children:[!!n.title&&(0,G.jsx)(`strong`,{children:String(n.title)}),a,(0,G.jsx)(`div`,{className:`a2ui-form-actions`,children:(0,G.jsxs)(`button`,{type:`submit`,disabled:u,children:[String(n.submit_label||`提交`),(0,G.jsx)(he,{size:14})]})})]});if(i===`Button`){let e=String(n.action||n.name||n.id||`submit`);return(0,G.jsx)(`button`,{type:`button`,disabled:u,onClick:()=>p(e),children:String(n.label||n.text||`提交`)})}return(0,G.jsxs)(`div`,{className:`a2ui-unsupported`,children:[`此卡片包含暂不支持的组件:`,i||`unknown`]})},g=d.map(e=>(0,G.jsx)(`div`,{children:h(e)},e));return(0,G.jsxs)(`div`,{className:`a2ui-surface${l?` pending`:` resolved`}`,"data-surface-id":e.id,children:[g,e.interaction&&!l&&(0,G.jsxs)(`div`,{className:`a2ui-resolved`,children:[(0,G.jsx)(V,{size:14}),`已提交`]})]})}var E8=[{id:`plan`,slash:`/plan`,label:`计划模式`,description:`下一轮只分析并形成可执行计划`},{id:`goal`,slash:`/goal`,label:`设定长期目标`,description:`启动可暂停、可持续的 Codex Goal`},{id:`default`,slash:`/default`,label:`默认模式`,description:`返回直接执行模式`}];function D8(e){if(!e.startsWith(`/`)||/\s/.test(e))return[];let t=e.toLocaleLowerCase();return E8.filter(e=>e.slash.startsWith(t))}function O8(e){let t=e.trim();return t===`/plan`?{kind:`toggle-plan`}:t===`/default`?{kind:`set-default`}:t===`/goal`||t.startsWith(`/goal `)?{kind:`goal`,objective:t.slice(5).trim()}:{kind:`message`,text:t}}function k8(e,t){let n=[];e.trim()&&n.push({type:`input_text`,text:e.trim()});for(let e of t)e.kind===`image`&&e.dataUrl?n.push({type:`input_image`,image_url:e.dataUrl,filename:e.name}):e.kind===`text`&&n.push({type:`input_text`,text:`\n\n<attachment name="${e.name.replaceAll(`"`,`"`)}">\n${e.text||``}\n</attachment>`});return[{role:`user`,content:n}]}var A8=new Set([`txt`,`md`,`json`,`yaml`,`yml`,`csv`,`ts`,`tsx`,`js`,`jsx`,`py`,`go`,`rs`,`java`,`sh`,`css`,`html`,`xml`,`toml`,`ini`,`log`]),j8=[`image/*`,`.txt`,`.md`,`.json`,`.yaml`,`.yml`,`.csv`,`.ts`,`.tsx`,`.js`,`.jsx`,`.py`,`.go`,`.rs`,`.java`,`.sh`,`.css`,`.html`,`.xml`,`.toml`,`.ini`,`.log`].join(`,`);function M8(e){return new TextEncoder().encode(JSON.stringify(k8(``,e))).byteLength}function N8(e){return e.split(`.`).at(-1)?.toLocaleLowerCase()||``}function P8(e){return new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(Error(`无法读取附件 ${e.name}`)),r.onload=()=>t(String(r.result||``)),r.readAsDataURL(e)})}function F8(e){return typeof e.text==`function`?e.text():new Promise((t,n)=>{let r=new FileReader;r.onerror=()=>n(Error(`无法读取附件 ${e.name}`)),r.onload=()=>t(String(r.result||``)),r.readAsText(e)})}async function I8(e){let t={id:`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,name:e.name,mimeType:e.type||`application/octet-stream`,size:e.size};if(e.type.startsWith(`image/`))return{...t,kind:`image`,dataUrl:await P8(e)};if(e.type.startsWith(`text/`)||A8.has(N8(e.name)))return{...t,kind:`text`,text:await F8(e)};throw Error(`暂不支持 ${e.name};请添加图片或 UTF-8 文本/代码文件`)}function L8(e){return e<1024?`${e} B`:`${Math.max(.1,e/1024).toFixed(1)} KiB`}function R8({id:e}){return e===`goal`?(0,G.jsx)(ft,{size:16}):e==="default"?(0,G.jsx)(gt,{size:16}):(0,G.jsx)(Me,{size:16})}function z8({disabled:e,onTogglePlan:t,onStartGoal:n,onFiles:r,active:i=!0,allowAttachments:a=!0,allowPlan:o=!0,allowGoal:c=!0,attachmentAccept:l=j8,attachmentLimit:u=4}){let d=(0,s.useRef)(null),[f,p]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{i||p(!1)},[i]),!a&&!o&&!c?null:(0,G.jsxs)(G.Fragment,{children:[a&&(0,G.jsx)(`input`,{ref:d,className:`composer-file-input`,type:`file`,tabIndex:-1,"aria-label":`选择本轮附件`,multiple:!0,accept:l||void 0,onChange:e=>{let t=[...e.target.files||[]];e.target.value=``,t.length&&r(t)}}),(0,G.jsxs)(od,{open:f,onOpenChange:p,children:[(0,G.jsx)(sd,{asChild:!0,children:(0,G.jsx)(`button`,{className:`chat-plus-trigger`,type:`button`,disabled:e,"aria-label":`添加附件或运行控制`,title:`添加附件或运行控制`,children:(0,G.jsx)(Qe,{size:17})})}),(0,G.jsx)(cd,{children:(0,G.jsxs)(ld,{className:`composer-action-menu`,side:`top`,align:`start`,sideOffset:10,collisionPadding:12,children:[a&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(ud,{className:`composer-action-heading`,children:`添加到本轮`}),(0,G.jsxs)(dd,{className:`composer-action-item`,onSelect:()=>d.current?.click(),children:[(0,G.jsx)(qe,{size:16}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`添加附件`}),(0,G.jsxs)(`small`,{children:[`本轮最多 `,u,` 个`]})]})]})]}),a&&(o||c)&&(0,G.jsx)(hd,{className:`composer-action-separator`}),(o||c)&&(0,G.jsx)(ud,{className:`composer-action-heading`,children:`运行方式`}),o&&(0,G.jsxs)(dd,{className:`composer-action-item`,onSelect:t,children:[(0,G.jsx)(Me,{size:16}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`计划模式`}),(0,G.jsx)(`small`,{children:`下一轮使用 Codex Plan`})]})]}),c&&(0,G.jsxs)(dd,{className:`composer-action-item`,onSelect:n,children:[(0,G.jsx)(ft,{size:16}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:`设定长期目标`}),(0,G.jsx)(`small`,{children:`朝可验证的停止条件持续推进`})]})]})]})})]})]})}function B8({input:e,activeIndex:t,onSelect:n,allowPlan:r=!0,allowGoal:i=!0}){let a=D8(e).filter(e=>(e.id!==`plan`||r)&&(e.id!==`goal`||i)&&(e.id!=="default"||r));return a.length?(0,G.jsx)(pb,{className:`composer-command-menu`,shouldFilter:!1,"aria-label":`斜杠命令`,children:(0,G.jsx)(pb.List,{children:a.map((e,r)=>(0,G.jsxs)(pb.Item,{value:e.id,"data-active":r===t?`true`:`false`,onSelect:()=>n(e.id),children:[(0,G.jsx)(R8,{id:e.id}),(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:e.label}),(0,G.jsx)(`small`,{children:e.description})]}),(0,G.jsx)(`kbd`,{children:e.slash})]},e.id))})}):null}var V8=[{value:``,label:`自动`,description:`使用模型或 Agent 的默认推理强度`},{value:`low`,label:`低`,description:`优先缩短响应时间`},{value:`medium`,label:`中`,description:`平衡速度与推理深度`},{value:`high`,label:`高`,description:`优先更充分的推理`}];function H8({value:e,onChange:t,active:n}){let[r,i]=(0,s.useState)(!1);(0,s.useEffect)(()=>{n||i(!1)},[n]);let a=S8(e),o=e===`ask`?(0,G.jsx)(ke,{size:15}):e===`full`?(0,G.jsx)(at,{size:15}):(0,G.jsx)(ot,{size:15});return(0,G.jsxs)(od,{open:r,onOpenChange:i,children:[(0,G.jsx)(sd,{asChild:!0,children:(0,G.jsxs)(`button`,{className:`chat-approval-trigger ${e}`,type:`button`,"aria-label":`批准模式:${a.label}`,title:`${a.label};下一轮生效`,children:[o,(0,G.jsx)(`span`,{children:a.compactLabel}),(0,G.jsx)(H,{size:13})]})}),(0,G.jsx)(cd,{children:(0,G.jsxs)(ld,{className:`chat-approval-menu`,side:`top`,sideOffset:9,align:`start`,collisionPadding:12,children:[(0,G.jsxs)(`div`,{className:`chat-approval-menu-heading`,children:[(0,G.jsx)(`strong`,{children:`如何批准 Agent 操作?`}),(0,G.jsx)(`span`,{children:`下一轮生效`})]}),(0,G.jsx)(fd,{value:e,onValueChange:e=>t(b8(e)),children:y8.map(e=>(0,G.jsxs)(pd,{value:e.value,className:`chat-approval-option ${e.value}`,children:[(0,G.jsx)(`span`,{className:`chat-approval-option-icon`,children:e.value===`ask`?(0,G.jsx)(ke,{size:17}):e.value===`full`?(0,G.jsx)(at,{size:17}):(0,G.jsx)(ot,{size:17})}),(0,G.jsxs)(`span`,{className:`chat-approval-option-copy`,children:[(0,G.jsx)(`strong`,{children:e.label}),(0,G.jsx)(`small`,{children:e.description})]}),(0,G.jsx)(md,{className:`chat-approval-indicator`,children:(0,G.jsx)(V,{size:16})})]},e.value))})]})})]})}function U8({models:e,model:t,reasoningEffort:n,disabled:r,active:i,allowModelSelection:a,allowReasoning:o,onModelChange:c,onReasoningEffortChange:l,onConfigure:u}){let[d,f]=(0,s.useState)(!1);(0,s.useEffect)(()=>{i||f(!1)},[i]);let p=e.find(e=>e.id===t),m=p?.label||t||`未绑定模型`,h=p?.reasoningEfforts||[],g=o&&h.length>0,_=V8.find(e=>e.value===n)?.label||`自动`;return!a&&!g?null:a&&e.length===0?(0,G.jsxs)(`button`,{className:`chat-model-trigger missing`,type:`button`,"aria-label":`当前 Agent 未绑定模型,前往配置`,title:`当前 Agent 未绑定模型`,onClick:u,children:[(0,G.jsx)(L,{size:14}),(0,G.jsx)(`span`,{children:`未绑定模型`})]}):(0,G.jsxs)(od,{open:d,onOpenChange:f,children:[(0,G.jsx)(sd,{asChild:!0,children:(0,G.jsxs)(`button`,{className:`chat-model-trigger chat-model-summary-trigger`,type:`button`,disabled:r,"aria-label":a?g?`模型 ${m},推理强度 ${_}`:`模型 ${m}`:`推理强度 ${_}`,title:`${a?`选择模型`:``}${a&&g?`与`:``}${g?`推理强度`:``};下一轮生效`,children:[(0,G.jsx)(`span`,{children:a?m:`推理强度`}),g&&(0,G.jsx)(`b`,{children:_}),(0,G.jsx)(H,{size:13})]})}),(0,G.jsx)(cd,{children:(0,G.jsxs)(ld,{className:`chat-model-menu chat-model-reasoning-menu`,side:`top`,sideOffset:9,align:`end`,collisionPadding:12,children:[a&&(0,G.jsxs)(gd,{children:[(0,G.jsxs)(_d,{className:`chat-model-settings-row`,children:[(0,G.jsx)(`strong`,{children:`模型`}),(0,G.jsx)(`span`,{children:m}),(0,G.jsx)(te,{size:16})]}),(0,G.jsx)(cd,{children:(0,G.jsx)(vd,{className:`chat-model-menu chat-model-submenu`,sideOffset:8,alignOffset:-6,collisionPadding:12,children:(0,G.jsx)(fd,{value:t,onValueChange:c,children:e.map(e=>(0,G.jsxs)(pd,{value:e.id,className:`chat-model-option`,children:[(0,G.jsx)(`span`,{children:e.label}),(0,G.jsx)(md,{children:(0,G.jsx)(V,{size:15})})]},e.id))})})})]}),g&&(0,G.jsxs)(gd,{children:[(0,G.jsxs)(_d,{className:`chat-model-settings-row`,children:[(0,G.jsx)(`strong`,{children:`推理强度`}),(0,G.jsx)(`span`,{children:_}),(0,G.jsx)(te,{size:16})]}),(0,G.jsx)(cd,{children:(0,G.jsx)(vd,{className:`chat-model-menu chat-model-submenu chat-reasoning-submenu`,sideOffset:8,alignOffset:-6,collisionPadding:12,children:(0,G.jsx)(fd,{value:n,onValueChange:e=>l(e),children:V8.filter(e=>e.value===``||h.includes(e.value)).map(e=>(0,G.jsxs)(pd,{value:e.value,className:`chat-reasoning-option`,children:[(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:e.label}),(0,G.jsx)(`small`,{children:e.description})]}),(0,G.jsx)(md,{children:(0,G.jsx)(V,{size:15})})]},e.value||`auto`))})})})]})]})})]})}function W8({input:e,placeholder:t,disabled:n,active:r,attachments:i,mode:a,approvalMode:o,models:c,model:l,reasoningEffort:u,commandIndex:d=0,contextControl:f,sendControl:p,canSend:m,textareaRef:h,onInputChange:g,onFiles:_,onRemoveAttachment:v,onSetMode:y,onStartGoal:b,onApprovalModeChange:x,onModelChange:S,onReasoningEffortChange:C,onConfigureModel:w,onCommandSelect:T,onCommandIndexChange:E,onSend:D,allowAttachments:O=!0,allowPlan:k=!0,allowGoal:A=!0,allowApproval:j=!0,allowModelSelection:M=!0,allowReasoning:N=!0,attachmentAccept:P,attachmentLimit:F=4}){let I=(0,s.useRef)(null),L=h||I,R=D8(e).filter(e=>(e.id!==`plan`||k)&&(e.id!==`goal`||A)&&(e.id!=="default"||k));function z(e){if(R.length&&[`ArrowDown`,`ArrowUp`].includes(e.key)){e.preventDefault();let t=e.key===`ArrowDown`?1:-1;E?.((d+t+R.length)%R.length);return}if(R.length&&e.key===`Escape`){e.preventDefault(),g(``);return}if(e.key===`Enter`&&!e.shiftKey&&!e.nativeEvent.isComposing){if(e.preventDefault(),R.length){T(R[Math.min(d,R.length-1)].id);return}D()}}return(0,G.jsxs)(`div`,{className:`chat-composer`,"data-ui":`sender`,children:[(0,G.jsx)(B8,{input:e,activeIndex:d,onSelect:T,allowPlan:k,allowGoal:A}),O&&i.length>0&&(0,G.jsx)(`div`,{className:`chat-attachment-list`,"aria-label":`本轮附件`,role:`list`,children:i.map(e=>(0,G.jsxs)(`article`,{className:`chat-attachment-chip ${e.kind}`,role:`listitem`,children:[e.kind===`image`&&e.previewUrl?(0,G.jsx)(`img`,{src:e.previewUrl,alt:`${e.name} 预览`}):(0,G.jsx)(`span`,{className:`chat-attachment-icon`,children:(0,G.jsx)(Ce,{size:15})}),(0,G.jsxs)(`span`,{className:`chat-attachment-copy`,children:[(0,G.jsx)(`strong`,{children:e.name}),(0,G.jsxs)(`small`,{children:[e.kind===`image`?`图片`:e.kind===`text`?`文本`:`文件`,` · `,L8(e.size),` · 已就绪`]})]}),(0,G.jsx)(`button`,{type:`button`,"aria-label":`移除附件 ${e.name}`,onClick:()=>v(e.id),children:(0,G.jsx)(bt,{size:13})})]},e.id))}),(0,G.jsx)(`textarea`,{ref:L,rows:1,value:e,onChange:e=>g(e.target.value),onKeyDown:z,placeholder:t,"aria-label":`消息`,disabled:n}),(0,G.jsxs)(`div`,{className:`chat-composer-footer`,children:[(0,G.jsx)(z8,{disabled:n,active:r,allowAttachments:O,allowPlan:k,allowGoal:A,onTogglePlan:()=>y(a===`plan`?`default`:`plan`),onStartGoal:b,onFiles:_,attachmentAccept:P,attachmentLimit:F}),k&&a===`plan`&&(0,G.jsxs)(`button`,{className:`chat-mode-chip`,type:`button`,title:`点击返回默认模式`,onClick:()=>y(`default`),children:[(0,G.jsx)(Me,{size:14}),(0,G.jsx)(`span`,{children:`计划`})]}),j&&(0,G.jsx)(H8,{value:o,onChange:x,active:r}),(0,G.jsx)(`span`,{className:`chat-composer-spacer`}),f,(0,G.jsx)(U8,{models:c,model:l,reasoningEffort:u,disabled:n,active:r,allowModelSelection:M,allowReasoning:N,onModelChange:S,onReasoningEffortChange:C,onConfigure:w}),p||(0,G.jsx)(`button`,{className:`chat-send-button`,type:`button`,"aria-label":`发送消息`,title:`发送消息`,onClick:D,disabled:!m||n,children:(0,G.jsx)(nt,{size:15})})]})]})}function G8(e){let t=Math.max(0,Math.floor(e/1e3)),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n?`${n}时 ${r}分`:r?`${r}分 ${i}秒`:`${i}秒`}function K8(e){if(!e)return`刚刚启动`;let t=new Date(e);return Number.isNaN(t.getTime())?`刚刚启动`:`${new Intl.DateTimeFormat(`zh-CN`,{hour:`2-digit`,minute:`2-digit`,hour12:!1}).format(t)} 启动`}function q8({mode:e,status:t,objective:n,startedAt:r,elapsedMs:i,now:a,onPause:o,onResume:c,onStop:l}){let[u,d]=(0,s.useState)(a??Date.now()),f=(0,s.useMemo)(()=>r?Date.parse(r):NaN,[r]),p=t===`running`,m=t===`waiting`,h=t===`paused`,g=e===`goal`?ft:Me,_=m?e===`goal`?`目标等待输入`:`计划等待输入`:h?e===`goal`?`目标已暂停`:`计划已暂停`:e===`goal`?`目标执行中`:`正在规划`,v=i??(Number.isFinite(f)?Math.max(0,u-f):0);return(0,s.useEffect)(()=>{if(!p||a!=null)return;let e=window.setInterval(()=>d(Date.now()),1e3);return()=>window.clearInterval(e)},[a,p]),(0,G.jsxs)(`div`,{className:`runtime-mode-bar ${e} ${t}`,"data-testid":`runtime-mode-bar`,children:[(0,G.jsx)(`span`,{className:`runtime-mode-icon`,children:(0,G.jsx)(g,{size:15})}),(0,G.jsxs)(`div`,{className:`runtime-mode-copy`,children:[(0,G.jsxs)(`span`,{children:[(0,G.jsx)(`strong`,{children:_}),(0,G.jsx)(`span`,{children:n})]}),(0,G.jsxs)(`small`,{children:[(0,G.jsx)(ue,{size:12}),` `,K8(r),` · `,G8(v)]})]}),(0,G.jsxs)(`div`,{className:`runtime-mode-actions`,children:[p&&o&&(0,G.jsx)(`button`,{type:`button`,onClick:o,"aria-label":`暂停${e===`goal`?`目标`:`计划`}`,title:`暂停`,children:(0,G.jsx)(Je,{size:14,fill:`currentColor`})}),h&&c&&(0,G.jsx)(`button`,{type:`button`,onClick:c,"aria-label":`继续${e===`goal`?`目标`:`计划`}`,title:`继续`,children:(0,G.jsx)(Xe,{size:14,fill:`currentColor`})}),(0,G.jsx)(`button`,{type:`button`,onClick:l,"aria-label":`结束${e===`goal`?`目标`:`计划`}`,title:`结束`,children:(0,G.jsx)(ut,{size:13,fill:`currentColor`})})]})]})}function J8(e){return e.replace(/(api[_ -]?key|authorization|bearer)(\s*[:=]\s*)[^\s,;]+/gi,`$1$2***`).replace(/\bsk-[A-Za-z0-9_-]{6,}\b/g,`sk-***`).replace(/\b[A-Za-z0-9_-]{24,}\.{0,3}\b/g,e=>e.startsWith(`run_`)||e.startsWith(`resp_`)?e:`***`)}function Y8(e){let t=e.toLocaleLowerCase();return/api.?key|credential|auth|unauthorized|401|403|凭证/.test(t)?{title:`模型凭证无效或已过期`,message:`请更新模型 API Key,验证连接后重新运行本轮消息。`,recoverable:`credential`}:/must configure model|model.*not configured|未配置模型|未绑定模型/.test(t)?{title:`当前 Agent 尚未绑定模型`,message:`先在 Agent 配置中绑定一个可用模型,再重新运行本轮消息。`,recoverable:`model`}:{title:`Agent 运行失败`,message:`本轮没有生成结果。可以重新运行;若问题持续,请展开技术详情定位原因。`,recoverable:`retry`}}function X8(e){if(!(e instanceof m4))return e instanceof Error?e.message:String(e);switch(e.code){case`conversation_run_identity_missing`:return`会话流在返回可恢复的 Run 标识前中断,请刷新会话查看运行结果。`;case`conversation_reconnect_exhausted`:return`会话流已断开,自动续流后仍未到达终态;运行仍在后台继续,请刷新会话查看结果。`;case`conversation_input_unsupported`:return`当前 Agent 不支持本轮选择的输入能力,请调整附件、模型或运行模式后重试。`;case`conversation_session_mismatch`:return`会话已发生变化,请刷新后重试。`;case`conversation_contract_mismatch`:return`Agent 返回的会话数据与当前协议不兼容,请刷新或改用旧版兼容入口。`;case`conversation_http_error`:case`conversation_stream_error`:return`云端会话连接中断,请稍后重试;已开始的运行仍可从会话记录恢复。`;case`conversation_aborted`:return`本轮会话已停止。`}}function Z8(e,...t){return e.status===`legacy`||e.status===`declared`&&H4(e.surface,...t)}function Q8(e){let t=e?.capabilities?.reasoning_efforts;return Array.isArray(t)?t.filter(e=>e===`low`||e===`medium`||e===`high`):[]}function $8({usedTokens:e,limitTokens:t,known:n,percent:r}){let i=(0,s.useId)(),a=j6({usedTokens:e,limitTokens:t,known:n,percent:r}),o=`${a.title}:${a.value},${a.detail}`;return(0,G.jsxs)(`span`,{className:`chat-context-ring${n?``:` unknown`}`,role:`img`,"aria-label":o,"aria-describedby":i,tabIndex:0,children:[(0,G.jsxs)(`svg`,{viewBox:`0 0 24 24`,"aria-hidden":`true`,children:[(0,G.jsx)(`circle`,{className:`chat-context-track`,cx:`12`,cy:`12`,r:`8.5`,pathLength:`100`}),(0,G.jsx)(`circle`,{className:`chat-context-value`,cx:`12`,cy:`12`,r:`8.5`,pathLength:`100`,strokeDasharray:`${n?r:12} ${n?100-r:88}`})]}),(0,G.jsxs)(`span`,{id:i,role:`tooltip`,className:`chat-context-tooltip`,children:[(0,G.jsx)(`span`,{children:a.title}),(0,G.jsx)(`strong`,{children:a.value}),(0,G.jsx)(`small`,{children:a.detail})]})]})}function e5(e){return`${e}_${typeof crypto.randomUUID==`function`?crypto.randomUUID().replaceAll(`-`,``):`${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`}`}function t5(e){if(!e)return`刚刚`;let t=new Date(e);if(Number.isNaN(t.getTime()))return``;let n=new Date;return t.toDateString()===n.toDateString()?new Intl.DateTimeFormat(`zh-CN`,{hour:`2-digit`,minute:`2-digit`}).format(t):new Intl.DateTimeFormat(`zh-CN`,{month:`2-digit`,day:`2-digit`}).format(t)}function n5(e){if(!e)return`刚刚`;let t=new Date(e);return Number.isNaN(t.getTime())?``:new Intl.DateTimeFormat(`zh-CN`,{month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}).format(t)}function r5(e,t=34){let n=e.replace(/\s+/g,` `).trim();return n.length>t?`${n.slice(0,t)}…`:n}function i5(e){if(!Number.isFinite(e)||Number(e)<0)return``;let t=Number(e)/1e3;return t<10?`${t.toFixed(1)} 秒`:`${Math.round(t)} 秒`}async function a5(e){let t=await e.clone().json().catch(()=>null);return t?.error?.message||t?.Message||t?.message||`请求失败(HTTP ${e.status})`}async function o5(e,t){let n;n=e.kind===`image`&&e.dataUrl?await(await fetch(e.dataUrl,{signal:t})).blob():new Blob([e.text||``],{type:e.mimeType||`text/plain`});let r=new FormData;r.append(`file`,new File([n],e.name,{type:e.mimeType||n.type||`application/octet-stream`}));let i=await g(`/api/v1/conversation-attachments`,{method:`POST`,body:r,signal:t});if(!i.ok)throw Error(await a5(i));let a=await i.json();if(typeof a?.attachmentRef!=`string`||typeof a?.mediaType!=`string`||typeof a?.name!=`string`)throw Error(`附件上传响应无效`);return a}function s5({error:e,onConfigure:t,onOpenSettings:n,onRetry:r}){let i=Y8(e),a=i.recoverable===`credential`?n:t;return(0,G.jsxs)(`div`,{className:`chat-run-error`,role:`alert`,children:[(0,G.jsx)(`span`,{className:`chat-run-error-icon`,children:(0,G.jsx)(at,{size:17})}),(0,G.jsxs)(`div`,{className:`chat-run-error-copy`,children:[(0,G.jsx)(`strong`,{children:i.title}),(0,G.jsx)(`p`,{children:i.message}),(0,G.jsxs)(`div`,{className:`chat-run-error-actions`,children:[i.recoverable!==`retry`&&a&&(0,G.jsx)(`button`,{className:`button secondary small`,type:`button`,onClick:a,children:i.recoverable===`credential`?`配置凭证`:`配置 Agent`}),r&&(0,G.jsx)(`button`,{className:`button secondary small`,type:`button`,onClick:r,children:`重新运行`})]}),(0,G.jsxs)(`details`,{className:`chat-run-error-detail`,children:[(0,G.jsx)(`summary`,{children:`技术详情`}),(0,G.jsx)(`pre`,{children:J8(e)})]})]})]})}function c5(e){return e===`command`?(0,G.jsx)(pt,{size:14}):e===`approval`?(0,G.jsx)(at,{size:14}):(0,G.jsx)(yt,{size:14})}function l5(e){return e.kind===`command`?`命令`:e.kind===`approval`?`人工确认`:`工具`}function u5(e){let t=e.replace(/```[\s\S]*?```/g,` `).replace(/[`#>*_[\]()-]+/g,` `).replace(/\s+/g,` `).trim();return t?r5(t.split(/[。!?!?]+|\.(?=\s|$)/).map(e=>e.trim()).filter(Boolean).at(-1)||t,72):``}function d5({reasoning:e,activities:t,streaming:n=!1,durationMs:r}){if(!e&&t.length===0)return null;let i=t.find(e=>e.status===`running`||e.status===`waiting`),a=i5(r),o=n?i?`${i.status===`waiting`?`等待确认`:`正在处理`} · ${i.title}`:u5(e)?`正在思考 · ${u5(e)}`:`正在思考`:a?`已思考(用时 ${a})`:t.length>0?`已完成思考 · ${t.length} 项操作`:`查看思考过程`;return(0,G.jsxs)(`details`,{className:`chat-processing-group`,open:n,"data-ui":`think`,children:[(0,G.jsxs)(`summary`,{children:[(0,G.jsx)(L,{size:15,className:`chat-processing-icon`}),(0,G.jsx)(`span`,{children:o}),n&&(0,G.jsx)(Ne,{size:13,className:`animate-spin`}),(0,G.jsx)(H,{size:14,className:`details-chevron`})]}),(0,G.jsxs)(`div`,{className:`chat-processing-content`,children:[e&&(0,G.jsx)(`div`,{className:`chat-reasoning-content`,children:e}),t.map(e=>(0,G.jsx)(f5,{activity:e},e.id))]})]})}function f5({activity:e}){let t=!!e.detail||Object.keys(e.data).length>2,n=(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`chat-activity-icon`,children:c5(e.kind)}),(0,G.jsxs)(`span`,{className:`chat-activity-copy`,children:[(0,G.jsx)(`small`,{children:l5(e)}),(0,G.jsx)(`strong`,{children:e.title})]}),(0,G.jsx)(`span`,{className:`chat-activity-status ${e.status}`,children:e.status===`completed`?`已完成`:e.status===`failed`?`失败`:e.status===`waiting`?`等待确认`:`运行中`})]});return t?(0,G.jsxs)(`details`,{className:`chat-activity-card ${e.kind}`,children:[(0,G.jsxs)(`summary`,{children:[n,(0,G.jsx)(H,{size:14,className:`details-chevron`})]}),(0,G.jsx)(`pre`,{children:e.detail||JSON.stringify(e.data,null,2)})]}):(0,G.jsx)(`div`,{className:`chat-activity-card ${e.kind}`,children:(0,G.jsx)(`div`,{className:`chat-activity-row`,children:n})})}function p5({items:e,streaming:t}){let n=e.filter(e=>![`artifact`,`a2ui`,`error`].includes(e.item.kind));return n.length?(0,G.jsx)(`div`,{className:`chat-conversation-timeline`,"data-ui":`conversation-timeline`,children:n.map(e=>{let{item:n}=e;if(n.kind===`assistant_text`){let r=typeof n.payload.text==`string`?n.payload.text:``;return r?(0,G.jsx)(v5,{streaming:t&&n.lifecycle===`streaming`,children:r},e.key):null}if(n.kind===`reasoning`){let r=typeof n.payload.text==`string`?n.payload.text:``;return(0,G.jsxs)(`details`,{className:`chat-processing-group`,open:t&&n.lifecycle!==`completed`,"data-ui":`think`,children:[(0,G.jsxs)(`summary`,{children:[(0,G.jsx)(L,{size:15,className:`chat-processing-icon`}),(0,G.jsx)(`span`,{children:n.lifecycle===`completed`?`查看思考过程`:`正在思考`}),t&&n.lifecycle!==`completed`&&(0,G.jsx)(Ne,{size:13,className:`animate-spin`}),(0,G.jsx)(H,{size:14,className:`details-chevron`})]}),r&&(0,G.jsx)(`div`,{className:`chat-processing-content`,children:(0,G.jsx)(`div`,{className:`chat-reasoning-content`,children:r})})]},e.key)}if(n.kind===`tool_call`||n.kind===`approval`){let t=n.kind===`approval`&&n.lifecycle===`pending`,r={id:e.key,kind:n.kind===`approval`?`approval`:`tool`,title:String(n.payload.tool||n.payload.title||n.payload.kind||(t?`等待批准`:`调用工具`)),status:n.lifecycle===`failed`?`failed`:n.lifecycle===`completed`?`completed`:t?`waiting`:`running`,detail:$6(n.payload),data:n.payload};return(0,G.jsx)(f5,{activity:r},e.key)}if(n.kind===`plan`||n.kind===`goal`){let r=typeof n.payload.text==`string`?n.payload.text:typeof n.payload.objective==`string`?n.payload.objective:``;return(0,G.jsxs)(`details`,{className:`chat-activity-card`,open:t&&n.lifecycle!==`completed`,children:[(0,G.jsxs)(`summary`,{children:[(0,G.jsxs)(`span`,{className:`chat-activity-copy`,children:[(0,G.jsx)(`small`,{children:n.kind===`plan`?`计划`:`目标`}),(0,G.jsx)(`strong`,{children:r||(n.kind===`plan`?`正在更新计划`:`正在更新目标`)})]}),(0,G.jsx)(H,{size:14,className:`details-chevron`})]}),r&&(0,G.jsx)(`pre`,{children:r})]},e.key)}return null})}):null}function m5({surfaces:e,approvals:t=[],onInteraction:n}){let r=e.filter(e=>e.interaction?.status===`pending`);return!r.length&&!t.length?null:(0,G.jsxs)(`div`,{className:`chat-pending-interactions`,"aria-label":`待处理确认`,"data-ui":`interaction-tray`,children:[(0,G.jsxs)(`div`,{className:`chat-pending-interactions-heading`,children:[(0,G.jsx)(at,{size:16}),(0,G.jsx)(`strong`,{children:`等待你的确认`}),(0,G.jsx)(`span`,{children:`处理后将继续当前对话`})]}),r.map(e=>(0,G.jsx)(T8,{surface:e,onSubmit:n},e.id)),t.map(e=>(0,G.jsx)(`div`,{className:`chat-activity-card approval`,"data-ui":`approval-card`,children:(0,G.jsxs)(`div`,{className:`chat-activity-row`,children:[(0,G.jsxs)(`span`,{className:`chat-activity-copy`,children:[(0,G.jsx)(`small`,{children:`工具操作`}),(0,G.jsx)(`strong`,{children:e.title})]}),(0,G.jsxs)(`span`,{className:`chat-run-error-actions`,children:[(0,G.jsx)(`button`,{className:`button secondary small`,type:`button`,onClick:()=>{n(e.id,e.revision,`reject`,{})},children:`拒绝`}),(0,G.jsx)(`button`,{className:`button primary small`,type:`button`,onClick:()=>{n(e.id,e.revision,`approve`,{})},children:`允许`})]})]})},e.id))]})}function h5({runId:e,status:t,onInteraction:n}){let[r,i]=(0,s.useState)([]);return(0,s.useEffect)(()=>{let n=!1;async function r(){try{let t=await g(`/api/v1/runs/${encodeURIComponent(e)}/events`);if(!t.ok)return;let r=[],a=X6(e=>{let{type:t,...n}=e;r.push({id:r.length+1,type:t,data:n})});a.push(await t.text()),a.finish(),n||i(r)}catch{}}r();let a=t===`WAITING_INPUT`?window.setInterval(r,500):null;return()=>{n=!0,a!==null&&window.clearInterval(a)}},[e,t]),(0,G.jsx)(m5,{surfaces:Y6(r),onInteraction:(t,r,i,a)=>n(e,t,r,i,a)})}function g5({runId:e,status:t,durationMs:n,showOutput:r=!1,onInteraction:i}){let[a,o]=(0,s.useState)([]),[c,l]=(0,s.useState)(!1);(0,s.useEffect)(()=>{let n=!1;async function r(){try{let t=await g(`/api/v1/runs/${encodeURIComponent(e)}/events`);if(!t.ok)throw Error(await a5(t));let r=[],i=X6(e=>{let{type:t,...n}=e;r.push({id:r.length+1,type:t,data:n})});i.push(await t.text()),i.finish(),n||o(r)}catch{}finally{n||l(!0)}}r();let i=[`RUNNING`,`PAUSED`,`WAITING_INPUT`].includes(String(t))?window.setInterval(r,500):null;return()=>{n=!0,i!==null&&window.clearInterval(i)}},[e,t]);let u=(0,s.useMemo)(()=>r8(a),[a]),d=(0,s.useMemo)(()=>Y6(a),[a]),f=d.filter(e=>e.interaction?.status!==`pending`);return!c&&[`RUNNING`,`PAUSED`,`WAITING_INPUT`].includes(String(t))?(0,G.jsxs)(`div`,{className:`chat-activity-loading`,children:[(0,G.jsx)(Ne,{size:13,className:`animate-spin`}),` 正在读取运行事件`]}):!u.reasoning&&!u.output&&u.activities.length===0&&d.length===0?t===`RUNNING`?(0,G.jsxs)(`span`,{className:`message-loading`,"aria-label":`正在生成`,children:[(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{})]}):null:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(d5,{reasoning:u.reasoning,activities:u.activities,streaming:t===`RUNNING`,durationMs:n}),f.map(t=>(0,G.jsx)(T8,{surface:t,onSubmit:(t,n,r,a)=>i(e,t,n,r,a)},t.id)),r&&u.output&&(0,G.jsx)(v5,{children:u.output})]})}function _5({children:e}){let[t,n]=(0,s.useState)(!1),r=s.Children.toArray(e)[0]??null,i=(0,s.isValidElement)(r)?r.props:{},a=i.className?.replace(/^language-/,``)||`代码`,o=String(i.children??``).replace(/\n$/,``);async function c(){if(!(!navigator.clipboard||!o))try{await navigator.clipboard.writeText(o),n(!0),window.setTimeout(()=>n(!1),1600)}catch{n(!1)}}return(0,G.jsxs)(`div`,{className:`chat-code-block`,children:[(0,G.jsxs)(`div`,{className:`chat-code-header`,children:[(0,G.jsx)(`span`,{children:a}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{c()},"aria-label":t?`已复制代码`:`复制代码`,children:[t?(0,G.jsx)(V,{size:13}):(0,G.jsx)(me,{size:13}),(0,G.jsx)(`span`,{children:t?`已复制`:`复制`})]})]}),(0,G.jsx)(`pre`,{children:e})]})}function v5({children:e,streaming:t=!1}){return(0,G.jsx)(`div`,{className:`chat-markdown${t?` streaming`:``}`,children:(0,G.jsx)(CP,{remarkPlugins:[DL],components:{a:({href:e,children:t})=>(0,G.jsx)(`a`,{href:e,target:`_blank`,rel:`noreferrer`,children:t}),code:({className:e,children:t})=>(0,G.jsx)(`code`,{className:e,children:t}),pre:({children:e})=>(0,G.jsx)(_5,{children:e})},children:e})})}function y5({run:e,agentName:t,agentAppearance:n,onInteraction:r,onConfigure:i,onOpenSettings:a,onRetry:o}){let s=e.status&&![`COMPLETED`,`RUNNING`,`PAUSED`,`WAITING_INPUT`].includes(e.status),c=e.output||e.error?.message||(s?`运行状态:${e.status}`:``);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`article`,{className:`message user`,"data-ui":`bubble`,"data-role":`user`,children:[(0,G.jsxs)(`div`,{className:`message-meta`,children:[(0,G.jsx)(`strong`,{children:`你`}),(0,G.jsx)(`span`,{children:n5(e.startedAt)})]}),(0,G.jsx)(`div`,{className:`message-content`,children:(0,G.jsx)(`span`,{className:`plain-message`,children:e.input})})]}),(0,G.jsxs)(`article`,{className:`message assistant${s?` error`:``}`,"data-ui":`bubble`,"data-role":`assistant`,children:[(0,G.jsxs)(`div`,{className:`message-meta`,children:[(0,G.jsx)(Ct,{name:t,appearance:n,size:`xs`}),(0,G.jsx)(`strong`,{children:t}),(0,G.jsx)(`span`,{children:n5(e.completedAt||e.startedAt)}),e.model&&(0,G.jsx)(`span`,{className:`message-model`,children:e.model})]}),(0,G.jsxs)(`div`,{className:`message-content`,children:[(0,G.jsx)(g5,{runId:e.id,status:e.status,durationMs:e.durationMs,showOutput:[`RUNNING`,`PAUSED`,`WAITING_INPUT`].includes(String(e.status)),onInteraction:r}),[`RUNNING`,`PAUSED`,`WAITING_INPUT`].includes(String(e.status))?null:s?(0,G.jsx)(s5,{error:c,onConfigure:i,onOpenSettings:a,onRetry:()=>o(e.input)}):c?(0,G.jsx)(v5,{children:c}):null]})]})]})}function b5({prompt:e,stream:t,agentName:n,agentAppearance:r,onInteraction:i,onConfigure:a,onOpenSettings:o,onRetry:s}){let c=t.timeline.length>0;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`article`,{className:`message user`,"data-ui":`bubble`,"data-role":`user`,children:[(0,G.jsxs)(`div`,{className:`message-meta`,children:[(0,G.jsx)(`strong`,{children:`你`}),(0,G.jsx)(`span`,{children:`刚刚`})]}),(0,G.jsx)(`div`,{className:`message-content`,children:(0,G.jsx)(`span`,{className:`plain-message`,children:e})})]}),(0,G.jsxs)(`article`,{className:`message assistant streaming-turn${t.status===`failed`?` error`:``}`,"data-ui":`bubble`,"data-role":`assistant`,children:[(0,G.jsxs)(`div`,{className:`message-meta`,children:[(0,G.jsx)(Ct,{name:n,appearance:r,size:`xs`}),(0,G.jsx)(`strong`,{children:n}),(0,G.jsx)(`span`,{children:t.status===`streaming`?`正在生成`:`刚刚`})]}),(0,G.jsxs)(`div`,{className:`message-content`,children:[c?(0,G.jsx)(p5,{items:t.timeline,streaming:t.status===`streaming`}):(0,G.jsx)(d5,{reasoning:t.reasoning,activities:t.activities,streaming:t.status===`streaming`}),t.surfaces.filter(e=>e.interaction?.status!==`pending`).map(e=>(0,G.jsx)(T8,{surface:e,onSubmit:(e,n,r,a)=>i(t.runId,e,n,r,a)},e.id)),t.artifacts.map(e=>(0,G.jsx)(`div`,{className:`chat-activity-card artifact`,"data-ui":`artifact`,children:(0,G.jsxs)(`div`,{className:`chat-activity-row`,children:[(0,G.jsxs)(`span`,{className:`chat-activity-copy`,children:[(0,G.jsx)(`small`,{children:e.mimeType}),(0,G.jsx)(`strong`,{children:e.name})]}),e.uri&&(0,G.jsx)(`a`,{href:e.uri,target:`_blank`,rel:`noreferrer`,children:`打开`})]})},e.id)),t.fallbacks.map(e=>(0,G.jsx)(`div`,{className:`chat-activity-card unknown${e.failed?` failed`:``}`,"data-ui":`conversation-fallback`,role:e.failed?`alert`:`status`,children:(0,G.jsx)(`div`,{className:`chat-activity-row`,children:(0,G.jsxs)(`span`,{className:`chat-activity-copy`,children:[(0,G.jsx)(`small`,{children:e.title}),(0,G.jsx)(`strong`,{children:e.detail})]})})},e.id)),!c&&t.output?(0,G.jsx)(v5,{streaming:t.status===`streaming`,children:t.output}):t.error?(0,G.jsx)(s5,{error:t.error,onConfigure:a,onOpenSettings:o,onRetry:()=>s(e)}):t.status===`cancelled`?(0,G.jsx)(`span`,{className:`plain-message`,children:`运行已停止`}):c||t.artifacts.length||t.fallbacks.length||t.surfaces.length?null:(0,G.jsxs)(`span`,{className:`message-loading`,children:[(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{})]})]})]})]})}function x5({agentId:e,agentName:t,agentAppearance:n,active:r=!0,refreshTick:i=0,onRunChanged:a,onConfigureAgent:o,onOpenSettings:c}){let[l,u]=(0,s.useState)([]),[d,f]=(0,s.useState)([]),[p,m]=(0,s.useState)(``),[h,_]=(0,s.useState)(``),[v,y]=(0,s.useState)(``),[b,x]=(0,s.useState)(``),[S,C]=(0,s.useState)(`risk`),[w,T]=(0,s.useState)(`default`),[E,D]=(0,s.useState)(``),[O,k]=(0,s.useState)([]),[A,j]=(0,s.useState)({status:`loading`}),[M,P]=(0,s.useState)(0),[F,I]=(0,s.useState)(null),[L,R]=(0,s.useState)(``),[z,B]=(0,s.useState)(!0),[V,H]=(0,s.useState)(``),[ee,te]=(0,s.useState)(!1),[ne,U]=(0,s.useState)(!1),re=(0,s.useRef)(null),ie=(0,s.useRef)(null),ae=(0,s.useRef)(null),oe=(0,s.useRef)(!1),se=(0,s.useRef)(!0),ce=(0,s.useRef)(new Map),le=(0,s.useMemo)(()=>e5(`ses_surface`),[e]),ue=(0,s.useMemo)(()=>L6(l,e),[l,e]),de=(0,s.useMemo)(()=>{let e=v.trim().toLocaleLowerCase();return e?ue.filter(t=>t.title.toLocaleLowerCase().includes(e)):ue},[v,ue]),W=ue.find(e=>e.id===h)?.runs||[],fe=P6(W),pe=F?.status||String(fe?.status||``).toLowerCase(),me=[`streaming`,`paused`,`waiting_input`].includes(pe)||!!fe,he=F6(W,F&&L&&F.sessionId===h?fe?.id:void 0),ge=pe===`paused`?`PAUSED`:pe===`waiting_input`?`WAITING`:`RUNNING`,_e=F?.goalObjective||fe?.goalObjective?`goal`:(F?.collaborationMode||fe?.collaborationMode)===`plan`?`plan`:null,ve=pe===`paused`?`paused`:pe===`waiting_input`?`waiting`:`running`,ye=F?.goalObjective||fe?.goalObjective||L||fe?.input||``,be=F?.startedAt||fe?.startedAt,xe=pe===`paused`?fe?.durationMs:void 0,Se=F?[]:he.filter(e=>String(e.status)===`WAITING_INPUT`),Ce=d.find(e=>e.id===p),we=F?.usage,Te=A6(we?.input_tokens??we?.inputTokens??M6(W),Ce?.context_window_tokens??Ce?.contextWindowTokens),Ee=d.map(e=>({id:e.id,label:e.display_name||e.displayName||e.id,reasoningEfforts:Q8(e)})),De=Q8(Ce).includes(E)?E:``,Oe=Z8(A,`text`),ke=Z8(A,`attachment.image`,`attachments`),Ae=Z8(A,`attachment.file`,`attachments`),je=ke||Ae,Me=Z8(A,`plan`),Pe=Z8(A,`goal`),Ie=Z8(A,`approval`,`approval.mode`),Le=Z8(A,`model.select`),Re=Z8(A,`reasoning.effort`),ze=A.status===`loading`,Be=ke&&Ae?j8:ke?`image/*`:j8.split(`,`).filter(e=>e!==`image/*`).join(`,`);(0,s.useEffect)(()=>{E&&!Q8(Ce).includes(E)&&D(``)},[E,Ce]),(0,s.useEffect)(()=>{let t=new AbortController,n=!1,r=h||le;return j({status:`loading`}),new y3({fetch:g}).getSurface(e,r,{signal:t.signal}).then(({buildId:e,surface:t})=>{if(t.sessionId!==r)throw new m4(`conversation_session_mismatch`,`Conversation surface changed session identity.`);n||j({status:`declared`,buildId:e,surface:t})}).catch(e=>{if(!(n||e instanceof Error&&e.name===`AbortError`||e instanceof m4&&e.code===`conversation_aborted`)){if(e instanceof m4&&e.code===`conversation_http_error`&&e.status===404){j({status:`legacy`});return}j({status:`error`})}}),()=>{n=!0,t.abort()}},[e,h,le,i]),(0,s.useEffect)(()=>{A.status===`declared`&&(!Me&&w===`plan`&&(T(`default`),localStorage.setItem(`agentkit:chat:collaboration:${e}`,`default`)),!je&&O.length&&k([]),!Re&&E&&D(``))},[e,je,Me,Re,O.length,w,A.status,E]);let Ve=(0,s.useCallback)(async()=>{let t=await g(`/api/v1/runs`);if(!t.ok)throw Error(await a5(t));let n=(await t.json()).items||[],r=L6(n,e);u(n),_(e=>e&&r.some(t=>t.id===e)?e:r[0]?.id||``)},[e]);(0,s.useEffect)(()=>{U(!1)},[e]);let He=(0,s.useCallback)(async()=>{let[,t]=await Promise.all([Ve(),g(`/api/v1/agents/${encodeURIComponent(e)}/models`)]);if(!t.ok)throw Error(await a5(t));let n=await t.json(),r=n.Models||[];f(r),m(e=>r.some(t=>t.id===e)?e:String(n.Current||r[0]?.id||``))},[e,Ve]);(0,s.useEffect)(()=>{let e=!1;return B(!0),u([]),_(``),He().catch(t=>{e||J(`会话加载失败`,t.message,`error`)}).finally(()=>{e||B(!1)}),()=>{e=!0,ae.current?.abort()}},[e,He,i]),(0,s.useEffect)(()=>{C(b8(localStorage.getItem(x8(e))));let t=localStorage.getItem(`agentkit:chat:collaboration:${e}`);T(t===`plan`?`plan`:`default`),D(``),k([])},[e]),(0,s.useEffect)(()=>{P(0)},[b]),(0,s.useEffect)(()=>{if(!l.some(e=>[`RUNNING`,`PAUSED`,`WAITING_INPUT`].includes(String(e.status))))return;let e=window.setInterval(()=>{Ve().catch(()=>{})},800);return()=>window.clearInterval(e)},[l,Ve]),(0,s.useEffect)(()=>{let e=re.current;!e||!se.current||(e.scrollTop=e.scrollHeight)},[W.length,F?.output,F?.reasoning,F?.status,F?.activities]),(0,s.useEffect)(()=>{let e=re.current;if(!e)return;let t=h?ce.current.get(h):void 0;requestAnimationFrame(()=>{e.scrollTop=t??e.scrollHeight,se.current=t===void 0||e.scrollHeight-e.scrollTop-e.clientHeight<48})},[h]),(0,s.useEffect)(()=>{let e=ie.current;e&&(e.style.height=`42px`,e.style.height=`${Math.min(Math.max(e.scrollHeight,42),160)}px`)},[b]);function Ue(){me||(_(``),R(``),I(null),x(``),k([]),U(!1),se.current=!0,requestAnimationFrame(()=>ie.current?.focus()))}function We(e){let t=re.current;t&&h&&ce.current.set(h,t.scrollTop),I(null),x(``),k([]),R(``),_(e),U(!1),se.current=!ce.current.has(e)}function Ke(t){T(t),localStorage.setItem(`agentkit:chat:collaboration:${e}`,t)}function qe(){let e=w===`plan`?`default`:`plan`;Ke(e),x(``),J(e===`plan`?`计划模式已开启`:`已返回默认模式`,`下一轮对话生效`,`success`),requestAnimationFrame(()=>ie.current?.focus())}function Ye(e){if(e===`goal`){x(`/goal `),requestAnimationFrame(()=>ie.current?.focus());return}if(e==="default"){Ke(`default`),x(``),J(`已返回默认模式`,`下一轮对话生效`,`success`);return}qe()}async function Ze(e){if(me)return;if(!je){J(`当前 Agent 不支持附件`,`运行时没有声明附件输入能力。`,`error`);return}let t=e.filter(e=>e.type.startsWith(`image/`)?ke:Ae);if(t.length!==e.length&&J(`部分附件未添加`,`当前 Agent 没有声明对应的图片或文件输入能力。`,`error`),!t.length)return;let n=Math.max(0,4-O.length);if(!n){J(`附件数量已达上限`,`每轮最多 4 个`,`error`);return}let r=t.slice(0,n);if(O.reduce((e,t)=>e+t.size,0)+r.reduce((e,t)=>e+t.size,0)>15e5){J(`附件体积过大`,`每轮附件总计不能超过 1.5 MiB`,`error`);return}let i=[];for(let e of r)try{i.push(await I8(e))}catch(e){J(`无法添加附件`,e instanceof Error?e.message:String(e),`error`)}if(!i.length)return;let a=[...O,...i];if(M8(a)>15e5){J(`附件编码后体积过大`,`每轮编码后的附件总计不能超过 1.5 MiB`,`error`);return}k(a)}async function Qe(t){let n=typeof t==`string`,r=n?t:b,i=n?[]:O,s=O8(r);if(me||oe.current)return;if(ze){J(`正在确认会话能力`,`请稍后再发送。`,`error`);return}if(!Oe){J(`当前 Agent 不支持文字会话`,`运行时没有声明文字输入能力。`,`error`);return}if(!p){J(`当前 Agent 尚未绑定模型`,`请先完成模型绑定和凭证配置。`,`error`),o?.();return}if(s.kind===`toggle-plan`){if(!Me){J(`当前 Agent 不支持计划模式`,`运行时没有声明 Plan 输入能力。`,`error`);return}qe();return}if(s.kind===`set-default`){Ke(`default`),x(``),J(`已返回默认模式`,`下一轮对话生效`,`success`);return}if(s.kind===`goal`&&!Pe){J(`当前 Agent 不支持长期目标`,`运行时没有声明 Goal 输入能力。`,`error`);return}if(s.kind===`goal`&&!s.objective){J(`请补充目标`,`在 /goal 后输入需要持续完成的目标`,`error`),requestAnimationFrame(()=>ie.current?.focus());return}let c=s.kind===`goal`?s.objective:``,l=s.kind===`message`?s.text||(i.length?`请分析这些附件。`:``):c;if(i.length&&!je){J(`当前 Agent 不支持附件`,`请移除附件后重试。`,`error`);return}if(!l&&!i.length)return;oe.current=!0;let u=h||(A.status===`declared`?A.surface.sessionId:e5(`ses`)),d=e5(`resp`),f=S,m=new AbortController;ae.current=m;let v={...R6(d,u),transport:A.status===`declared`?`conversation`:`responses`,collaborationMode:w,goalObjective:c,startedAt:new Date().toISOString()};_(u),R(l),I(v),n||x(``);let y=i;n||k([]);try{let t=e=>{v=W6(v,e),I(v)};if(A.status===`declared`){let e=await Promise.all(y.map(e=>o5(e,m.signal))),t=F4({inputId:d,sessionId:u,idempotencyKey:d,parts:[{kind:`text`,text:l},...e.map(e=>({kind:`attachment`,attachmentRef:e.attachmentRef,mediaType:e.mediaType,name:e.name}))],...Le?{modelRef:p}:{},...Re&&De?{reasoning:De}:{},extensions:{...Ie?{"ksadk.approval":f}:{},...Me?{"ksadk.collaboration":w}:{},...Pe&&c?{"ksadk.goal":c}:{}}});await new y3({fetch:g}).streamTurn({bootstrap:{buildId:A.buildId,surface:A.surface},input:t,signal:m.signal,onUpdate:e=>{v=H6(v,e),I(v)}})}else{let n=await g(`/v1/responses`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`same-origin`,signal:m.signal,body:JSON.stringify({...Le?{model:p}:{},...Re&&De?{reasoning:{effort:De}}:{},input:k8(l,y),stream:!0,metadata:{agent_id:e,session_id:u,invocation_id:d,...Ie?{approval_mode:f}:{},...Me?{collaboration_mode:w}:{},...Pe&&c?{goal_objective:c}:{}}})});if(!n.ok||!n.body)throw Error(await a5(n));let r=new TextDecoder,i=X6(t),a=n.body.getReader();for(;;){let{value:e,done:t}=await a.read();if(e&&i.push(r.decode(e,{stream:!t})),t)break}i.finish()}if(v.status===`failed`)throw Error(v.error||`Agent 运行失败`);await Ve(),I(null),R(``),a?.()}catch(e){if(m.signal.aborted)v={...v,status:`cancelled`},I(v);else{let t=X8(e);v={...v,status:`failed`,error:t},I(v),J(`运行失败`,t,`error`)}}finally{ae.current=null,oe.current=!1,requestAnimationFrame(()=>ie.current?.focus())}}function $e(t){C(t),localStorage.setItem(x8(e),t)}async function et(){if(me)try{let e=F?.transport===`conversation`&&F.runId?await g(`/api/v1/runs/${encodeURIComponent(F.runId)}:pause`,{method:`POST`}):F?.status===`streaming`?await g(`/v1/responses/${encodeURIComponent(F.responseId)}:pause`,{method:`POST`,credentials:`same-origin`}):await g(`/api/v1/runs/${encodeURIComponent(fe.id)}:pause`,{method:`POST`});if(!e.ok)throw Error(await a5(e));I(e=>e&&{...e,status:`paused`}),window.setTimeout(()=>{Ve().catch(()=>{})},200)}catch(e){J(`暂停运行失败`,e instanceof Error?e.message:String(e),`error`)}}async function tt(){try{let e=F?.transport===`conversation`&&F.runId?await g(`/api/v1/runs/${encodeURIComponent(F.runId)}:resume`,{method:`POST`}):F?.status===`paused`?await g(`/v1/responses/${encodeURIComponent(F.responseId)}:resume`,{method:`POST`,credentials:`same-origin`}):await g(`/api/v1/runs/${encodeURIComponent(fe.id)}:resume`,{method:`POST`});if(!e.ok)throw Error(await a5(e));I(e=>e&&{...e,status:`streaming`}),window.setTimeout(()=>{Ve().catch(()=>{})},200)}catch(e){J(`继续运行失败`,e instanceof Error?e.message:String(e),`error`)}}async function rt(){if(me)try{let e=F?.transport===`conversation`&&F.runId?await g(`/api/v1/runs/${encodeURIComponent(F.runId)}:cancel`,{method:`POST`}):F?await g(`/v1/responses/${encodeURIComponent(F.responseId)}/cancel`,{method:`POST`,credentials:`same-origin`}):await g(`/api/v1/runs/${encodeURIComponent(fe.id)}:cancel`,{method:`POST`});if(!e.ok)throw Error(await a5(e));ae.current?.abort(),I(e=>e&&{...e,status:`cancelled`}),window.setTimeout(()=>{Ve().catch(()=>{})},200)}catch(e){J(`结束运行失败`,e instanceof Error?e.message:String(e),`error`)}}async function it(e,t,n,r,i){if(!e)throw Error(`运行尚未创建,请稍后重试`);let a=await g(`/api/v1/runs/${encodeURIComponent(e)}/interactions/${encodeURIComponent(t)}:submit`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({name:r,data:i,expectedRevision:n,idempotencyKey:`interaction:${t}:revision-${n}`})});if(!a.ok){let e=await a5(a);throw J(`提交交互失败`,e,`error`),Error(e)}I(e=>e&&{...e,status:`streaming`,pendingApprovals:e.pendingApprovals.filter(e=>e.id!==t),surfaces:e.surfaces.map(e=>e.interaction?.id===t?{...e,interaction:{...e.interaction,status:`resolved`}}:e)}),await Ve()}async function at(){if(V){te(!0);try{let e=await g(`/api/v1/sessions/${encodeURIComponent(V)}`,{method:`DELETE`});if(!e.ok)throw Error(await a5(e));h===V&&_(``),H(``),await Ve(),J(`会话已删除`,`相关运行与 Trace 已从本地工作区移除。`)}catch(e){J(`删除失败`,e instanceof Error?e.message:String(e),`error`)}finally{te(!1)}}}return(0,G.jsxs)(`div`,{className:`studio-chat-shell${ne?` sessions-open`:``}`,"data-testid":`studio-chat-workbench`,children:[(0,G.jsxs)(`aside`,{className:`chat-session-sidebar`,"aria-label":`会话历史`,children:[(0,G.jsxs)(`header`,{className:`chat-session-header`,children:[(0,G.jsx)(`h2`,{children:`会话`}),(0,G.jsxs)(`div`,{className:`chat-session-header-actions`,children:[(0,G.jsx)(`button`,{className:`icon-button tertiary`,type:`button`,"aria-label":`新对话`,title:`新对话`,onClick:Ue,disabled:me,children:(0,G.jsx)(Fe,{size:16})}),(0,G.jsx)(`button`,{className:`icon-button tertiary chat-session-mobile-close`,type:`button`,"aria-label":`关闭会话历史`,title:`关闭会话历史`,onClick:()=>U(!1),children:(0,G.jsx)(bt,{size:17})})]})]}),(0,G.jsxs)(`label`,{className:`chat-session-search`,children:[(0,G.jsx)(`span`,{className:`sr-only`,children:`搜索会话`}),(0,G.jsx)(`input`,{type:`search`,value:v,onChange:e=>y(e.target.value),placeholder:`搜索会话`})]}),(0,G.jsx)(`div`,{className:`chat-session-list`,children:z?(0,G.jsxs)(`div`,{className:`chat-session-skeleton`,"aria-label":`正在加载会话`,role:`status`,children:[(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{})]}):de.length===0?(0,G.jsx)(`div`,{className:`session-empty`,children:v?`没有匹配的会话`:`还没有会话`}):de.map(e=>(0,G.jsxs)(`div`,{className:`chat-session-item${h===e.id?` active`:``}${e.running?` running`:``}`,children:[(0,G.jsxs)(`button`,{className:`chat-session-main`,type:`button`,"aria-current":h===e.id?`true`:void 0,onClick:()=>We(e.id),title:`${e.title} · ${t5(e.updatedAt)}`,children:[(0,G.jsx)(`strong`,{children:r5(e.title)}),e.running&&(0,G.jsx)(`span`,{className:`session-status ${String(e.activeStatus||`RUNNING`).toLowerCase()}`,"aria-label":e.activeStatus===`PAUSED`?`已暂停`:e.activeStatus===`WAITING_INPUT`?`等待输入`:`运行中`})]}),(0,G.jsx)(`button`,{className:`chat-session-delete`,type:`button`,"aria-label":`删除会话:${r5(e.title)}`,title:e.running||F?.status===`streaming`&&F.sessionId===e.id?`运行中不可删除`:`删除会话`,disabled:e.running||F?.status===`streaming`&&F.sessionId===e.id,onClick:()=>H(e.id),children:(0,G.jsx)(ht,{size:14})})]},e.id))})]}),(0,G.jsx)(`button`,{className:`chat-session-backdrop`,type:`button`,"aria-label":`关闭会话历史`,onClick:()=>U(!1)}),(0,G.jsxs)(`section`,{className:`chat-conversation`,"aria-label":`与 ${t} 对话`,children:[(0,G.jsxs)(`header`,{className:`chat-conversation-header`,children:[(0,G.jsx)(`button`,{className:`icon-button tertiary chat-session-mobile-trigger`,type:`button`,"aria-label":`打开会话历史`,title:`会话历史`,"aria-expanded":ne,onClick:()=>U(!0),children:(0,G.jsx)(Ge,{size:17})}),(0,G.jsx)(Ct,{name:t,appearance:n,size:`sm`}),(0,G.jsx)(`h1`,{children:t}),me&&(0,G.jsx)(`span`,{className:`badge`,"data-state":pe===`streaming`?`running`:`pending`,children:ge})]}),(0,G.jsx)(`div`,{ref:re,className:`chat-message-list`,role:`log`,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-busy":me,onScroll:e=>{let t=e.currentTarget;se.current=t.scrollHeight-t.scrollTop-t.clientHeight<48,h&&ce.current.set(h,t.scrollTop)},children:W.length===0&&!F?(0,G.jsxs)(`div`,{className:`chat-empty`,children:[(0,G.jsx)(`span`,{className:`chat-empty-icon`,children:(0,G.jsx)(N,{size:22})}),(0,G.jsxs)(`h2`,{children:[`开始与 `,t,` 对话`]}),(0,G.jsx)(`p`,{children:`消息通过统一的 Responses API 发送;思考、工具调用和结果会在同一条时间线中呈现。`}),(0,G.jsx)(`div`,{className:`suggestion-list`,children:[`先介绍你的职责、能力和工作边界。`,`根据当前上下文给出一个清晰的执行计划。`,`列出完成任务还需要我提供的信息。`].map(e=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>{x(e),ie.current?.focus()},children:e},e))})]}):(0,G.jsxs)(G.Fragment,{children:[he.map(e=>(0,G.jsx)(y5,{run:e,agentName:t,agentAppearance:n,onInteraction:it,onConfigure:o,onOpenSettings:c,onRetry:e=>{Qe(e)}},e.id)),F&&F.sessionId===h&&L&&(0,G.jsx)(b5,{prompt:L,stream:F,agentName:t,agentAppearance:n,onInteraction:it,onConfigure:o,onOpenSettings:c,onRetry:e=>{Qe(e)}})]})}),(0,G.jsxs)(`footer`,{className:`chat-composer-wrap`,children:[F&&F.sessionId===h?(0,G.jsx)(m5,{surfaces:F.surfaces,approvals:F.pendingApprovals,onInteraction:(e,t,n,r)=>it(F.runId,e,t,n,r)}):Se.map(e=>(0,G.jsx)(h5,{runId:e.id,status:e.status,onInteraction:it},e.id)),me&&_e&&(0,G.jsx)(q8,{mode:_e,status:ve,objective:ye,startedAt:be,elapsedMs:xe,onPause:ve===`running`?et:void 0,onResume:ve===`paused`?tt:void 0,onStop:rt}),(0,G.jsx)(W8,{input:b,placeholder:ze?`正在确认会话能力…`:A.status===`error`?`会话能力加载失败,请刷新后重试`:Oe?w===`plan`?`描述需要规划的任务…`:`输入消息,或输入 / 使用命令…`:`当前 Agent 未开放文字输入`,disabled:me||ze||!Oe,active:r,attachments:(je?O:[]).map(e=>({id:e.id,name:e.name,kind:e.kind,size:e.size,previewUrl:e.dataUrl})),mode:w,approvalMode:S,models:Ee,model:p,reasoningEffort:E,commandIndex:M,contextControl:(0,G.jsx)($8,{...Te}),sendControl:pe===`paused`?(0,G.jsx)(`button`,{className:`chat-send-button resume`,type:`button`,"aria-label":`继续生成`,title:`继续生成`,onClick:tt,children:(0,G.jsx)(Xe,{size:15,fill:`currentColor`})}):pe===`waiting_input`?(0,G.jsx)(`button`,{className:`chat-send-button pause`,type:`button`,"aria-label":`等待交互输入`,title:`请先处理上方交互卡片`,disabled:!0,children:(0,G.jsx)(Ne,{size:15,className:`animate-spin`})}):me?(0,G.jsx)(`button`,{className:`chat-send-button pause`,type:`button`,"aria-label":`暂停生成`,title:`暂停生成`,onClick:et,children:(0,G.jsx)(Je,{size:15,fill:`currentColor`})}):(0,G.jsx)(`button`,{className:`chat-send-button`,type:`button`,"aria-label":`发送消息`,title:`发送消息`,onClick:()=>{Qe()},disabled:ze||!Oe||!b.trim()&&!(je&&O.length),children:(0,G.jsx)(nt,{size:15})}),canSend:Oe&&!!(b.trim()||je&&O.length),textareaRef:ie,onInputChange:x,onFiles:Ze,onRemoveAttachment:e=>k(t=>t.filter(t=>t.id!==e)),onSetMode:e=>{e!==w&&qe()},onStartGoal:()=>Ye(`goal`),onApprovalModeChange:$e,onModelChange:m,onReasoningEffortChange:D,onConfigureModel:o,onCommandSelect:Ye,onCommandIndexChange:P,onSend:()=>{Qe()},allowAttachments:je,allowPlan:Me,allowGoal:Pe,allowApproval:Ie,allowModelSelection:Le,allowReasoning:Re,attachmentAccept:Be}),(0,G.jsx)(`p`,{className:`chat-composer-disclaimer`,children:`AI 生成内容可能不准确,请核对关键结论与工具操作。`})]})]}),V&&(0,G.jsx)(ka,{title:`删除这个会话?`,description:`相关 Run 与 Trace 会从当前本地工作区移除。`,confirmText:`删除会话`,busy:ee,onConfirm:at,onCancel:()=>H(``)})]})}function S5(e){AP(e,[/\r?\n|\r/g,C5])}function C5(){return{type:`break`}}function w5(){return function(e){S5(e)}}function T5(e){let t=e?.capabilities?.reasoning_efforts;return Array.isArray(t)?t.filter(e=>e===`low`||e===`medium`||e===`high`):[]}function E5(e){if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(e=>{if(typeof e==`string`)return e;if(e&&typeof e==`object`){let t=e;return E5(t.text??t.content??t.value??``)}return``}).filter(Boolean).join(`
|
|
282
|
+
`);if(e&&typeof e==`object`){let t=e;return E5(t.text??t.content??t.value??``)}return``}function D5(e){return typeof e==`string`||typeof e==`number`?String(e):``}function O5(...e){for(let t of e){if(typeof t==`string`&&t.trim())return t.trim();if(!t||typeof t!=`object`)continue;let e=t,n=O5(e.message,e.detail,e.reason,e.error,e.text);if(n)return n}return``}function k5(e){return e&&typeof e==`object`?e:{}}function A5(e){if(!e||typeof e!=`object`)return null;let t=e,n=Object.keys(k5(t.payload)).length?k5(t.payload):t,r=k5(n.content),i=[r.runtime_event,r.runtimeEvent,n.runtime_event,n.runtimeEvent,t.runtime_event,t.runtimeEvent].map(k5).find(e=>Object.keys(e).length>0)||{},a=Object.keys(i).length?i:n,o=D5(t.event_type??t.eventType??n.event_type??n.eventType).toLowerCase();return{event:a,eventType:D5(a.event_type??a.eventType??a.type).toLowerCase()||o,runId:D5(a.run_id??a.runId??n.run_id??n.runId??t.run_id??t.runId),invocationId:D5(a.invocation_id??a.invocationId??n.invocation_id??n.invocationId??t.invocation_id??t.invocationId),seq:Number(a.seq??a.seq_id??a.source_session_seq??n.seq??n.seq_id??n.source_session_seq??t.seq??t.seq_id??t.source_session_seq??0)||0}}function j5(e){return e.reduce((e,t)=>{let n=A5(t);return Math.max(e,n?.seq||0)},0)}function M5(e){let t=k5(e);return(Array.isArray(t.parts)?t.parts.map(k5):[])[0]||t}function N5(e){if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function P5(e){let t=k5(e),n=k5(t.payload),r=k5(n.content),i=A5(e)?.event||{},a=[t.conversationItem,n.conversationItem,r.conversationItem,i.conversationItem];for(let e of a){let t=V4(e);if(t)return t}return null}function F5(e){let t=P5(e);if(!t||t.visibility!==`public`||t.kind===`unknown`||t.kind===`progress`||t.kind===`user_message`)return null;let n=E5(t.payload.text??t.payload.objective??t.payload.error??``),r=t.lifecycle===`failed`?`failed`:t.lifecycle===`completed`?`completed`:t.kind===`approval`&&t.lifecycle===`pending`?`waiting`:`running`,i=t.kind===`assistant_text`?`message`:t.kind===`reasoning`?`reasoning`:t.kind===`tool_call`?`tool`:t.kind,a=E5(t.payload.tool??t.payload.title??t.payload.name??t.payload.kind)||(i===`reasoning`?`思考过程`:i===`approval`?`等待确认`:i===`plan`?`计划`:i===`goal`?`目标`:i===`artifact`?`运行产物`:i===`a2ui`?`交互卡片`:i===`error`?`运行失败`:i===`tool`?`工具调用`:`回复`);return{id:`${t.runId}/${t.itemId}`,kind:i,title:a,text:n,detail:n||N5(t.payload),status:r,operation:t.operation===`append`?`append`:`replace`}}function I5(e){let t=F5(e);if(t)return t;let n=A5(e);if(!n)return null;let r=n.event;if([`message.delta`,`response.output_text.delta`,`output_text.delta`].includes(n.eventType)){let e=k5(r.content),t=k5(r.update),i=E5(t.delta??t.text??r.delta??e.delta??r.text);if(!i)return null;let a=D5(r.item_id??r.itemId??r.output_index)||`legacy`;return{id:`${n.invocationId||n.runId}//message:${a}`,kind:`message`,title:`回复`,text:i,detail:i,status:`running`,operation:r.replace===!0||D5(r.op).toLowerCase()===`replace`?`replace`:`append`}}if(![`item.started`,`item.updated`,`item.completed`,`item.failed`].includes(n.eventType))return null;let i=D5(r.item_kind??r.itemKind).toLowerCase(),a=[`message`,`assistant`,`assistant_message`].includes(i)?`message`:i===`reasoning`?`reasoning`:i===`approval`?`approval`:[`tool`,`tool_call`,`tool_result`,`command`,`command_execution`].includes(i)?`tool`:null;if(!a)return null;let o=n.eventType===`item.started`?r.initial:n.eventType===`item.completed`||n.eventType===`item.failed`?r.snapshot:r.update,s=k5(o),c=M5(o),l=E5(c.text??c.delta??c.content??s.parts??r.text),u=E5(c.name??r.name??r.tool_name??r.title)||(a===`reasoning`?`思考过程`:a===`approval`?`等待确认`:a===`tool`?`工具调用`:`回复`),d=l||N5(c.result??c.output??c.arguments??c.error??``),f=D5(r.item_id??r.itemId??c.call_id??c.callId)||`${a}:${u}`;return{id:[n.invocationId||n.runId,D5(r.scope_id??r.scopeId),f].join(`/`),kind:a,title:u,text:l,detail:d,status:n.eventType===`item.failed`?`failed`:a===`approval`&&n.eventType!==`item.completed`?`waiting`:n.eventType===`item.completed`?`completed`:`running`,operation:D5(r.op).toLowerCase()===`replace`?`replace`:n.eventType===`item.updated`?`append`:`replace`}}function L5(e){let t=I5(e);if(t)return[t];let n=A5(e);if(!n)return[];let r=n.event,i=n.eventType,a=D5(r.id??r.response_id??r.responseId)||n.invocationId||n.runId||`direct`,o=[],s=Array.isArray(r.choices)?r.choices.map(k5):[];if(s.forEach((e,t)=>{let n=k5(e.delta),r=E5(n.reasoning_content??n.reasoning??n.thinking);r&&o.push({id:`${a}//reasoning:${D5(e.index)||t}`,kind:`reasoning`,title:`思考过程`,text:r,detail:r,status:`running`,operation:`append`});let i=E5(n.content);i&&o.push({id:`${a}//message:${D5(e.index)||t}`,kind:`message`,title:`回复`,text:i,detail:i,status:`running`,operation:`append`}),(Array.isArray(n.tool_calls)?n.tool_calls.map(k5):[]).forEach((n,r)=>{let i=k5(n.function),s=E5(i.name??n.name)||`工具调用`,c=E5(i.arguments??n.arguments);o.push({id:`${a}//tool:${D5(e.index)||t}:${D5(n.index)||r}`,kind:`tool`,title:s,text:``,detail:c,status:`running`,operation:`append`})})}),!i&&s.length===0&&typeof r.delta==`string`&&r.delta&&o.push({id:`${a}//message:0`,kind:`message`,title:`回复`,text:r.delta,detail:r.delta,status:`running`,operation:`append`}),i.includes(`reasoning`)&&i.endsWith(`.delta`)){let e=E5(r.delta??r.text??k5(r.part).text);e&&o.push({id:`${a}//reasoning:${D5(r.item_id??r.itemId)||`summary`}`,kind:`reasoning`,title:`思考过程`,text:e,detail:e,status:`running`,operation:r.replace===!0||D5(r.op).toLowerCase()===`replace`?`replace`:`append`})}if([`response.output_item.added`,`response.output_item.done`].includes(i)){let e=k5(r.item),t=D5(e.type).toLowerCase();[`mcp_approval_request`,`approval_request`].includes(t)&&o.push({id:`${a}//approval:${D5(e.id??e.approval_request_id??e.call_id)||`request`}`,kind:`approval`,title:E5(e.title??e.name??e.server_label)||`等待确认`,text:``,detail:E5(e.message)||N5(e.arguments??e.request??``),status:`waiting`,operation:`replace`}),[`function_call`,`tool_call`,`computer_call`,`mcp_call`].includes(t)&&o.push({id:`${a}//tool:${D5(e.id??e.call_id??r.output_index)||`output`}`,kind:`tool`,title:E5(e.name)||`工具调用`,text:``,detail:E5(e.arguments??e.output)||N5(e.arguments??e.output??``),status:i.endsWith(`.done`)?`completed`:`running`,operation:`replace`})}if([`response.function_call_arguments.delta`,`response.mcp_call_arguments.delta`].includes(i)){let e=E5(r.delta);o.push({id:`${a}//tool:${D5(r.item_id??r.itemId??r.call_id)||`output`}`,kind:`tool`,title:E5(r.name)||`工具调用`,text:``,detail:e,status:`running`,operation:`append`})}return i===`response.approval_request`&&o.push({id:`${a}//approval:${D5(r.interaction_id??r.approval_request_id??r.item_id)||`request`}`,kind:`approval`,title:E5(r.title??r.message??k5(r.request).title)||`等待确认`,text:``,detail:E5(r.message)||N5(r.request??``),status:`waiting`,operation:`replace`}),o}function R5(e){let t=A5(e);if(!t)return``;let n=D5(t.event.event_id??t.event.eventId);return n?`${t.runId||t.invocationId}/${n}`:``}function z5(e){let t=A5(e);if(!t)return null;let n=t.event,r=t.eventType;if(D5(n.object).toLowerCase()===`response`){let e=D5(n.status).toLowerCase();if(e===`completed`)return{status:`completed`,error:``};if([`failed`,`cancelled`,`canceled`,`incomplete`].includes(e))return{status:`failed`,error:O5(n.error,n.incomplete_details)||`云端流式响应失败`}}return[`stream.done`,`response.completed`,`response.done`,`done`].includes(r)?{status:`completed`,error:``}:n.error||[`error`,`stream.error`,`response.failed`,`response.error`].includes(r)?{status:`failed`,error:O5(n.error,n.response,n.message,n.detail)||`云端流式响应失败`}:null}function B5(e,t){let n=e.findIndex(e=>e.id===t.id);if(n<0)return[...e,t];let r=e[n],i=[...e];return i[n]={...r,...t,title:t.title===`回复`||t.title===`思考过程`||t.title===`工具调用`?r.title:t.title,text:t.operation===`append`?`${r.text}${t.text}`:t.text||r.text,detail:t.kind===`tool`&&t.operation===`append`?`${r.detail}${t.detail}`:t.detail||r.detail},i}async function V5(e,t){let n=`${e}/sessions/${encodeURIComponent(t)}/events`,r=await g(`${n}?limit=1000`);if(!r.ok)throw Error(await X5(r));let i=await r.json(),a=Array.isArray(i.events)?[...i.events]:[],o=Number(i.total??i.Total??a.length),s=a.length;for(;s<o;){let e=await g(`${n}?limit=1000&offset=${s}`);if(!e.ok)throw Error(await X5(e));let t=await e.json(),r=Array.isArray(t.events)?t.events:[];if(!r.length)break;a.push(...r),s+=r.length}return a}function H5(e){if(!e||typeof e!=`object`)return null;let t=e,n=String(t.session_id??t.sessionId??t.id??``).trim();return n?{id:n,title:E5(t.title)||E5(t.summary)||E5(t.first_prompt??t.firstPrompt)||E5(t.last_prompt??t.lastPrompt)||`新会话`,updatedAt:D5(t.updated_at??t.updatedAt??t.created_at),state:D5(t.active_run_status??t.state),error:O5(t.active_run_error,t.activeRunError,t.last_error,t.lastError,t.error)}:null}function U5(e){let t=e.trim().toLowerCase();return[`running`,`streaming`,`queued`,`pending`,`accepted`].includes(t)?`running`:[`paused`,`waiting`,`waiting_input`,`requires_action`].includes(t)?`waiting_input`:[`failed`,`error`,`cancelled`,`canceled`,`expired`,`aborted`].includes(t)?`failed`:null}function W5(e){if(!e||typeof e!=`object`)return null;let t=e,n=String(t.role??`assistant`).toLowerCase(),r=n===`user`||n===`system`?n:`assistant`;return{id:String(t.message_id??t.messageId??t.seq_id??crypto.randomUUID()),role:r,content:E5(t.content),timestamp:String(t.timestamp??``),invocationId:D5(t.invocation_id??t.invocationId??t.run_id??t.runId)}}function G5(e){let t=k5(e);return{...t,SeqId:t.SeqId??t.seq_id??t.seqId??0,EventId:t.EventId??t.event_id??t.eventId??``,EventType:t.EventType??t.event_type??t.eventType??``,InvocationId:t.InvocationId??t.invocation_id??t.invocationId??t.run_id??t.runId??``,Timestamp:t.Timestamp??t.timestamp??``,Content:t.Content??t.content??{},Metadata:t.Metadata??t.metadata??{}}}function K5(e,t,n){if(!t.length)return{messages:e,canonicalRunIds:new Set};let r=k6(e.map((e,t)=>({id:e.id,role:e.role===`assistant`?`model`:e.role,content:e.content,timestamp:Number.isFinite(Date.parse(e.timestamp))?Date.parse(e.timestamp):t,invocationId:e.invocationId||void 0})),t.map(G5),n);return{messages:r.messages.filter(e=>e.role===`user`||e.role===`model`||e.role===`system`).map(e=>({id:e.id,role:e.role===`model`?`assistant`:e.role===`user`?`user`:`system`,content:e.content,timestamp:new Date(Number(e.timestamp)||0).toISOString(),invocationId:e.invocationId,blocks:e.blocks})),canonicalRunIds:new Set(r.canonicalRunIds)}}function q5(e){let t=new Map;for(let n of e){let e=A5(n);if(!e)continue;let r=e.event,i=n,a=e.eventType,o=r.Metadata&&typeof r.Metadata==`object`?r.Metadata:r.metadata&&typeof r.metadata==`object`?r.metadata:i.Metadata&&typeof i.Metadata==`object`?i.Metadata:i.metadata&&typeof i.metadata==`object`?i.metadata:{},s=o.interrupt_info&&typeof o.interrupt_info==`object`?o.interrupt_info:{},c=o.resume_input&&typeof o.resume_input==`object`?o.resume_input:{},l=String(r.interaction_id??r.interactionId??s.approval_request_id??c.approval_request_id??``).trim();if(l){if([`interaction.requested`,`approval_request`,`response.approval_request`].includes(a)){let n=r.request&&typeof r.request==`object`?r.request:{};t.set(l,{id:l,runId:String(r.run_id??r.runId??e.invocationId??e.runId??i.run_id??i.runId??i.InvocationId??i.invocation_id??``),revision:Number(r.revision??1)||1,kind:String(r.interaction_kind??r.interactionKind??r.kind??n.kind??([`approval_request`,`response.approval_request`].includes(a)?`approval`:`input`)),title:E5(n.title??n.message??n.prompt??s.approval_message??s.tool_name??n.kind??`需要你的确认`)||`需要你的确认`})}else[`interaction.resolved`,`interaction.cancelled`,`interaction.expired`,`approval_response`].includes(a)&&t.delete(l)}}return[...t.values()]}function J5(e,t,n,r){if(!t&&!n&&r<=0)return null;for(let i of e){let e=A5(i);if(!e)continue;let a=e.event,o=e.runId||e.invocationId,s=e.seq;if(!(o&&[t,n].filter(Boolean).includes(o))&&!(r>0&&s>r))continue;let c=e.eventType,l=a.content&&typeof a.content==`object`?a.content:{},u=O5(a.error,a.message,l.error,l.message,l.detail);if([`run.completed`,`run.complete`,`run.succeeded`].includes(c))return{status:`completed`,error:``};if([`run.interrupted`,`run.paused`,`run.waiting_input`,`run.requires_action`].includes(c))return{status:`interrupted`,error:``};if([`run.failed`,`run.cancelled`,`run.expired`,`run.error`].includes(c))return{status:`failed`,error:u};if([`run_status`,`run.status`].includes(c)){let e=a.state_delta&&typeof a.state_delta==`object`?a.state_delta:{},t=e.active_run&&typeof e.active_run==`object`?e.active_run:{},n=String(a.status??l.status??t.status??``).toLowerCase();if([`completed`,`complete`,`succeeded`,`success`].includes(n))return{status:`completed`,error:``};if([`interrupted`,`paused`,`waiting`,`waiting_input`,`requires_action`].includes(n))return{status:`interrupted`,error:``};if([`failed`,`cancelled`,`canceled`,`expired`,`error`,`aborted`].includes(n))return{status:`failed`,error:u||O5(t.error,t.message,t.reason)}}}return null}async function Y5(e,t,n){if(!e.ok)throw Error(await X5(e));if(!e.body)throw Error(`云端事件流为空`);let r=e.body.getReader(),i=new TextDecoder,a=``,o=()=>{r.cancel().catch(()=>{})},s=e=>{let n=e.split(/\r?\n/),r=n.find(e=>e.startsWith(`event:`))?.slice(6).trim()||``,i=n.filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(`
|
|
283
|
+
`);if(i){if(i===`[DONE]`){t({event_type:`stream.done`});return}try{let e=JSON.parse(i);if(r&&e&&typeof e==`object`){let n=e;t(n.event_type||n.eventType||n.type?n:{...n,event_type:r})}else t(e)}catch{}}};n.addEventListener(`abort`,o,{once:!0});try{for(;!n.aborted;){let{done:e,value:t}=await r.read();a+=i.decode(t,{stream:!e});let n=a.split(/\r?\n\r?\n/);if(a=n.pop()||``,n.forEach(s),e){a.trim()&&s(a);break}}}finally{n.removeEventListener(`abort`,o),r.releaseLock()}}async function X5(e){try{let t=await e.json();return String(t?.error?.message||t?.message||t?.detail||`请求失败 (${e.status})`)}catch{return`请求失败 (${e.status})`}}async function Z5(e,t){let n=await g(`${e}/sessions/${encodeURIComponent(t)}/messages`);if(!n.ok)throw Error(await X5(n));return((await n.json()).messages||[]).map(W5).filter(e=>!!e)}async function Q5(e){if(e.size>10485760)throw Error(`${e.name} 超过 10 MB 限制`);return await new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result||``)),r.onerror=()=>n(Error(`${e.name} 读取失败`)),r.readAsDataURL(e)})}function $5({content:e,running:t}){return(0,G.jsxs)(`details`,{className:`chat-processing-group`,open:t,"data-ui":`think`,children:[(0,G.jsxs)(`summary`,{children:[(0,G.jsx)(L,{size:15,className:`chat-processing-icon`}),(0,G.jsx)(`span`,{className:t?`text-shimmer`:``,children:t?`正在思考`:`已思考`})]}),(0,G.jsx)(`div`,{className:`chat-processing-content`,children:(0,G.jsx)(`div`,{className:`chat-reasoning-content`,children:e})})]})}function e7({item:e}){return(0,G.jsxs)(`div`,{className:`chat-activity-card ${e.kind}`,children:[(0,G.jsxs)(`div`,{className:`chat-activity-row`,children:[(0,G.jsx)(`span`,{className:`chat-activity-icon`,children:e.kind===`approval`?(0,G.jsx)(at,{size:15}):e.kind===`plan`||e.kind===`goal`?(0,G.jsx)(L,{size:15}):(0,G.jsx)(yt,{size:15})}),(0,G.jsxs)(`span`,{className:`chat-activity-copy`,children:[(0,G.jsx)(`small`,{children:e.kind===`approval`?`批准`:e.kind===`plan`?`计划`:e.kind===`goal`?`目标`:e.kind===`artifact`?`产物`:e.kind===`a2ui`?`交互`:e.kind===`error`?`错误`:`工具`}),(0,G.jsx)(`strong`,{children:e.title})]}),(0,G.jsx)(`span`,{className:`chat-activity-status ${e.status}`,children:e.status===`completed`?`已完成`:e.status===`failed`?`失败`:e.status===`waiting`?`等待确认`:`运行中`})]}),e.detail&&(0,G.jsx)(`pre`,{children:e.detail})]})}function t7({message:e}){let t=e.role===`assistant`&&e.blocks||[];return t.length?(0,G.jsx)(`div`,{className:`message-blocks`,children:t.map(e=>e.type===`thinking`?(0,G.jsx)($5,{content:e.content,running:e.status===`streaming`},e.id):e.type===`tool`?(0,G.jsx)(e7,{item:{id:e.id,kind:`tool`,title:e.toolName||`工具调用`,text:``,detail:e.output||e.args,status:e.status===`error`?`failed`:e.status===`paused`?`waiting`:e.status===`completed`?`completed`:`running`,operation:`replace`}},e.id):(0,G.jsx)(`div`,{className:`message-content`,children:(0,G.jsx)(CP,{remarkPlugins:[DL,w5],children:e.content})},e.id))}):(0,G.jsx)(`div`,{className:`message-content`,children:(0,G.jsx)(CP,{remarkPlugins:[DL,w5],children:e.content||`…`})})}function n7({items:e,agentName:t,streaming:n}){if(!e.length)return null;let r=e.some(e=>e.source===`direct`&&e.kind===`message`),i=e.some(e=>e.source===`direct`&&e.kind===`reasoning`),a=e.filter(e=>e.source===`direct`||e.source===`session`&&(e.kind!==`message`||!r)&&(e.kind!==`reasoning`||!i));return(0,G.jsx)(`div`,{className:`cloud-runtime-timeline`,"data-ui":`runtime-timeline`,children:a.map(e=>e.kind===`message`?(0,G.jsxs)(`article`,{className:`message assistant streaming`,"aria-label":`云端流式回复`,children:[(0,G.jsx)(`div`,{className:`message-meta`,children:t}),(0,G.jsx)(`div`,{className:`message-content`,children:(0,G.jsx)(CP,{remarkPlugins:[DL,w5],children:e.text})})]},e.id):e.kind===`reasoning`?(0,G.jsx)($5,{content:e.text,running:n&&e.status===`running`},e.id):(0,G.jsx)(e7,{item:e},e.id))})}function r7({deploymentId:e,agentId:t,agentName:n,active:r=!0,refreshTick:i=0}){let[a,o]=(0,s.useState)([]),[c,l]=(0,s.useState)(``),[u,d]=(0,s.useState)([]),[f,p]=(0,s.useState)([]),[m,h]=(0,s.useState)([]),[_,v]=(0,s.useState)(``),[y,b]=(0,s.useState)([]),[x,S]=(0,s.useState)([]),[C,w]=(0,s.useState)(``),[T,E]=(0,s.useState)(`risk`),[D,O]=(0,s.useState)(`default`),[k,A]=(0,s.useState)(``),[j,M]=(0,s.useState)(0),[P,F]=(0,s.useState)(!0),[I,L]=(0,s.useState)(!1),[R,z]=(0,s.useState)(!1),[B,V]=(0,s.useState)(``),[H,ee]=(0,s.useState)(``),[te,ne]=(0,s.useState)(``),[U,re]=(0,s.useState)(!1),ie=(0,s.useRef)(null),ae=(0,s.useRef)(``),oe=(0,s.useRef)(0),se=(0,s.useRef)(!1),ce=(0,s.useRef)(new Set),le=(0,s.useRef)(``),ue=(0,s.useRef)(``),de=(0,s.useRef)(0),W=(0,s.useRef)(new Map),fe=(0,s.useRef)(new Map),pe=(0,s.useRef)(new Set),me=(0,s.useRef)(!1),he=(0,s.useRef)(null),ge=(0,s.useRef)([]),_e=(0,s.useRef)(!1),ve=(0,s.useRef)(new Set),ye=(0,s.useRef)(!0),be=(0,s.useRef)([]),xe=(0,s.useRef)([]),Se=(0,s.useMemo)(()=>`/api/v1/deployments/${encodeURIComponent(e)}/cloud-chat`,[e]),Ce=(0,s.useCallback)(e=>{let t=ae.current!==e;if(t&&(oe.current+=1),ae.current=e,l(e),!t)return;let n=fe.current.get(e);d(n?.messages||[]),p(n?.runtimeItems||[]),h(n?.interactions||[])},[]),we=(0,s.useCallback)((e=``,t=`云端运行未完成`)=>{let n=se.current;se.current=!1,_e.current=!1,z(!1),le.current=``,ue.current=``,de.current=0,d(e=>e.map(e=>e.pending?{...e,pending:!1}:e)),he.current?.abort(),he.current=null,e&&(V(e),n&&J(t,e,`error`))},[]),Te=(0,s.useCallback)(async(e=!0)=>{let t=await g(`${Se}/sessions`);if(!t.ok)throw Error(await X5(t));let n=await t.json(),r=(n.sessions||n.items||[]).map(H5).filter(e=>!!e&&!pe.current.has(e.id));o(r);let i=r.find(e=>e.id===ae.current);i&&U5(i.state)===`failed`&&we(i.error||`这次云端运行未完成;可新建会话后重试。若持续失败,请到可观测页面按会话查看记录。`);let a=ae.current,s=r.some(e=>e.id===a)?a:e&&r[0]?.id||``;Ce(s)},[Se,Ce,we]),Ee=(0,s.useCallback)(async(e,t=oe.current)=>{if(!e)return be.current=[],xe.current=[],d([]),h([]),p([]),{messages:[],canonicalCaughtUp:!1};let[n,r]=await Promise.all([Z5(Se,e),V5(Se,e)]);if(ae.current!==e||oe.current!==t)return{messages:[],canonicalCaughtUp:!1};be.current=n,xe.current=r;let i=K5(n,r,e).messages;W.current.set(e,Math.max(W.current.get(e)||0,j5(r)));let a=J5(r,le.current,ue.current,de.current);a&&(!_e.current||a.status!==`completed`)&&we(a.status===`failed`?a.error||`本次请求已结束,未得到回复。可新建会话后重试;若持续失败,请到可观测页面按会话查看记录。`:``);let o=[...ge.current,...r].slice(-500);ge.current=o;let s=q5(o);h(s);let c=new Set(r.flatMap(e=>{let t=A5(e);return t?[t.runId,t.invocationId].filter(Boolean):[]})),l=i.some(e=>e.role===`assistant`&&!ce.current.has(e.id)&&!!(e.invocationId&&c.has(e.invocationId))&&!!e.blocks?.length),u=r.reduce((e,t)=>{let n=I5(t);if(!n||n.kind===`message`)return e;let r=A5(t),a=r?.runId||r?.invocationId||``,o=i.filter(e=>e.invocationId===a).flatMap(e=>e.blocks||[]);return(n.kind===`reasoning`?o.some(e=>e.type===`thinking`):n.kind===`tool`&&o.some(e=>e.type===`tool`&&e.toolName===n.title))?e:B5(e,{...n,source:`session`})},[]),f=i.some(e=>e.role===`assistant`&&!ce.current.has(e.id));return fe.current.set(e,{messages:i,runtimeItems:u,interactions:s}),_e.current||d(i),!_e.current&&(l||u.length)&&p(e=>l?u:e.some(e=>e.kind===`message`)?e:u),se.current&&f&&!_e.current&&(V(``),we()),{messages:i,canonicalCaughtUp:l}},[Se,we]);(0,s.useEffect)(()=>{let e=!1;return F(!0),o([]),l(``),ae.current=``,oe.current+=1,d([]),be.current=[],xe.current=[],p([]),ge.current=[],h([]),V(``),se.current=!1,_e.current=!1,ve.current=new Set,z(!1),le.current=``,ue.current=``,de.current=0,W.current.clear(),fe.current.clear(),pe.current.clear(),Te().catch(t=>{e||J(`云端会话加载失败`,t.message,`error`)}).finally(()=>{e||F(!1)}),()=>{e=!0}},[Te,i]),(0,s.useEffect)(()=>()=>{he.current?.abort(),he.current=null},[]),(0,s.useEffect)(()=>{let e=!1;return g(`${Se}/models`).then(async e=>{if(!e.ok)throw Error(await X5(e));return await e.json()}).then(t=>{if(e)return;let n=(Array.isArray(t.models)?t.models:Array.isArray(t.items)?t.items:[]).map(e=>{if(typeof e==`string`)return{id:e,label:e};if(!e||typeof e!=`object`)return null;let t=e,n=String(t.id??t.model??t.name??``).trim(),r=t.capabilities&&typeof t.capabilities==`object`?t.capabilities:void 0;return n?{id:n,label:String(t.display_name??t.displayName??t.label??n),capabilities:r}:null}).filter(e=>!!e),r=String(t.current??t.configured_model??t.configuredModel??``).trim();S(n),w(e=>e||(n.some(e=>e.id===r)?r:n[0]?.id||r))}).catch(()=>{}),()=>{e=!0}},[Se]),(0,s.useEffect)(()=>{E(b8(localStorage.getItem(x8(t)))),O(localStorage.getItem(`agentkit:chat:collaboration:${t}`)===`plan`?`plan`:`default`),A(``)},[t]),(0,s.useEffect)(()=>{M(0)},[_]);let De=x.find(e=>e.id===C),Oe=T5(De).includes(k)?k:``;(0,s.useEffect)(()=>{k&&!T5(De).includes(k)&&A(``)},[k,De]),(0,s.useEffect)(()=>{let e=oe.current;be.current=[],xe.current=[],Ee(c,e).catch(e=>{J(`云端会话加载失败`,e.message,`error`)})},[c,Ee]),(0,s.useEffect)(()=>{let e=ie.current;e&&ye.current&&(e.scrollTop=e.scrollHeight)},[u,I,f,R]);async function ke(){let e=await g(`${Se}/sessions`,{method:`POST`});if(!e.ok)throw Error(await X5(e));let t=await e.json(),n=H5(t.session??t.Session??t);if(!n)throw Error(`云端未返回有效会话标识`);return o(e=>[n,...e.filter(e=>e.id!==n.id)]),fe.current.set(n.id,{messages:[],runtimeItems:[],interactions:[]}),Ce(n.id),d([]),be.current=[],xe.current=[],p([]),ge.current=[],h([]),V(``),ye.current=!0,ce.current=new Set,W.current.set(n.id,0),n.id}async function Ae(){if(!(I||R))try{await ke(),re(!1)}catch(e){J(`新建云端会话失败`,e instanceof Error?e.message:String(e),`error`)}}async function je(){let e=O8(_);if(e.kind===`toggle-plan`){Ne(`plan`);return}if(e.kind===`set-default`){Ne(`default`);return}if(e.kind===`goal`&&!e.objective){J(`请补充目标`,`在 /goal 后输入需要持续完成的目标`,`error`);return}let t=e.kind===`goal`?e.objective:``,n=e.kind===`message`?e.text:t;if(!(!n&&y.length===0||I||R||me.current)){v(``),ye.current=!0,me.current=!0,L(!0),se.current=!0,z(!0),p([]),ge.current=[],V(``);try{let e=[];n&&e.push({type:`input_text`,text:n});for(let t of y){let n=await Q5(t);e.push(t.type.startsWith(`image/`)?{type:`input_image`,image_url:n}:{type:`input_file`,filename:t.name,file_data:n})}let r=ae.current||await ke();ce.current=new Set(u.filter(e=>!e.pending&&e.role===`assistant`).map(e=>e.id)),le.current=``,ue.current=``,de.current=W.current.get(r)||0;let i={id:`local-${crypto.randomUUID()}`,role:`user`,content:n||`已上传 ${y.length} 个附件`,timestamp:new Date().toISOString(),pending:!0};d(e=>[...e,i]),he.current?.abort();let a=new AbortController;he.current=a,_e.current=!0,ve.current=new Set;let o=Ee(r),s=(e,t,n=!1)=>{let r={...e,source:t};p(e=>{if(n){let n=e.findIndex(e=>e.id===r.id);if(n>=0){let r=[...e];return r[n]={...r[n],source:t},r}}return B5(e,r)})},c=e=>Y5(e,e=>{let t=A5(e);if(!t)return;t.seq&&W.current.set(r,Math.max(W.current.get(r)||0,t.seq));let n=[t.runId,t.invocationId].filter(Boolean),i=[le.current,ue.current].filter(Boolean);if(i.length&&(!n.length||!n.some(e=>i.includes(e)))||de.current&&t.seq&&t.seq<=de.current)return;i.length||(t.runId&&(le.current=t.runId),t.invocationId&&(ue.current=t.invocationId)),ge.current=[...ge.current,e].slice(-500),h(q5(ge.current));let a=I5(e);if(a){let t=R5(e),n=!!(t&&ve.current.has(t));t&&ve.current.add(t),n||s(a,`session`)}let o=J5([e],le.current,ue.current,de.current);o&&o.status!==`completed`&&(we(o.status===`failed`?o.error||`本次请求已结束,未得到回复。`:``),Ee(r).catch(()=>{}),Te().catch(()=>{}))},a.signal);o.catch(()=>{}).then(()=>{if(a.signal.aborted||!se.current||ae.current!==r)return;let e=W.current.get(r)||0;return de.current=e,g(`${Se}/sessions/${encodeURIComponent(r)}/events/stream?afterSeqId=${e}`,{headers:{Accept:`text/event-stream`},signal:a.signal}).then(c).catch(()=>{})});let l=await g(`${Se}/sessions/${encodeURIComponent(r)}/messages/stream`,{method:`POST`,headers:{"Content-Type":`application/json`,Accept:`text/event-stream`},signal:a.signal,body:JSON.stringify({content:e,model:C||void 0,modelOptions:Oe?{reasoning:{effort:Oe}}:{},toolApprovalMode:T,collaborationMode:D,goalObjective:t||void 0})}),f=``;if(await Y5(l,e=>{ge.current=[...ge.current,e].slice(-500),h(q5(ge.current));let t=R5(e),n=!!(t&&ve.current.has(t));t&&ve.current.add(t),L5(e).forEach(e=>s(e,`direct`,n));let r=z5(e);r&&r.status===`failed`&&(f=r.error,we(r.error,`云端流式响应失败`))},a.signal),se.current){let e=[];try{e=(await Ee(r)).messages}catch{}e.some(e=>e.role===`assistant`&&!ce.current.has(e.id)&&!!(e.content||e.blocks?.length))?(d(e),p([])):p(e=>e.map(e=>e.source===`direct`&&e.status===`running`?{...e,status:`completed`}:e)),we(f,`云端流式响应失败`)}b([]),Te().catch(()=>{})}catch(e){let t=e instanceof Error?e.message:String(e);se.current&&we(t,`云端消息发送失败`)}finally{L(!1),me.current=!1}}}function Me(e){O(e),localStorage.setItem(`agentkit:chat:collaboration:${t}`,e),v(``),J(e===`plan`?`计划模式已开启`:`已返回默认模式`,`下一轮云端对话生效`,`success`)}function Ne(e){if(e===`goal`){v(`/goal `);return}Me(e===`plan`?D===`plan`?`default`:`plan`:`default`)}function Pe(){let e=[...u].reverse().find(e=>e.role===`user`);e&&(v(e.content),V(``))}async function Ie(e){if(!(H||!window.confirm(`确定删除这个云端会话吗?`))){ee(e);try{let t=await g(`${Se}/sessions/${encodeURIComponent(e)}`,{method:`DELETE`});if(!t.ok)throw Error(await X5(t));pe.current.add(e),fe.current.delete(e),o(t=>t.filter(t=>t.id!==e));let n=ae.current===e;n&&(he.current?.abort(),he.current=null,Ce(``),d([]),be.current=[],xe.current=[],p([]),ge.current=[],h([]),V(``)),W.current.delete(e),await Te(!n)}catch(e){J(`删除云端会话失败`,e instanceof Error?e.message:String(e),`error`)}finally{ee(``)}}}async function Le(e,t){if(!(!c||te)){if(!e.runId){J(`交互缺少运行标识`,`请刷新会话后重试。`,`error`);return}ne(e.id);try{let n=await g(`${Se}/sessions/${encodeURIComponent(c)}/interactions`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({runId:e.runId,interactionId:e.id,expectedRevision:e.revision,action:t,response:t===`approve`?{decision:`approve`}:t===`reject`?{decision:`reject`}:{},idempotencyKey:`studio-cloud-${e.id}-${e.revision}-${t}`})});if(!n.ok)throw Error(await X5(n));await Ee(c),J(`已提交确认`,`云端 Agent 将继续当前对话。`,`success`)}catch(e){J(`提交确认失败`,e instanceof Error?e.message:String(e),`error`)}finally{ne(``)}}}return(0,G.jsxs)(`section`,{className:`studio-chat-shell cloud-chat-shell${U?` sessions-open`:``}`,"aria-label":`云端会话`,children:[(0,G.jsxs)(`aside`,{className:`chat-session-sidebar`,"aria-label":`云端会话历史`,children:[(0,G.jsxs)(`header`,{className:`chat-session-header`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h2`,{children:`云端会话`}),(0,G.jsx)(`span`,{children:n})]}),(0,G.jsxs)(`div`,{className:`chat-session-header-actions`,children:[(0,G.jsx)(`button`,{className:`icon-button tertiary`,type:`button`,onClick:Ae,disabled:I||R,"aria-label":`新建云端会话`,title:`新建云端会话`,children:(0,G.jsx)(Fe,{size:17})}),(0,G.jsx)(`button`,{className:`icon-button tertiary chat-session-mobile-close`,type:`button`,"aria-label":`关闭云端会话历史`,title:`关闭云端会话历史`,onClick:()=>re(!1),children:(0,G.jsx)(bt,{size:17})})]})]}),(0,G.jsxs)(`div`,{className:`chat-session-list`,role:`list`,children:[P&&(0,G.jsxs)(`div`,{className:`chat-session-skeleton`,role:`status`,"aria-label":`正在同步云端会话`,children:[(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{}),(0,G.jsx)(`i`,{})]}),!P&&!a.length&&(0,G.jsx)(`p`,{className:`chat-sidebar-empty`,children:`还没有云端会话`}),a.map(e=>{let t=U5(e.state);return(0,G.jsxs)(`div`,{className:`chat-session-item${e.id===c?` active`:``}${t===`running`?` running`:``}`,role:`listitem`,children:[(0,G.jsxs)(`button`,{className:`chat-session-main`,type:`button`,onClick:()=>{Ce(e.id),V(e.error),re(!1)},children:[(0,G.jsx)(`strong`,{children:e.title}),t&&(0,G.jsx)(`span`,{className:`session-status ${t}`,"aria-label":t===`running`?`运行中`:t===`waiting_input`?`等待输入`:`运行失败`})]}),(0,G.jsx)(`button`,{className:`chat-session-delete`,type:`button`,"aria-label":`删除会话 ${e.title}`,title:`删除会话`,disabled:H===e.id,onClick:()=>Ie(e.id),children:(0,G.jsx)(ht,{size:15})})]},e.id)})]})]}),(0,G.jsx)(`button`,{className:`chat-session-backdrop`,type:`button`,"aria-label":`关闭云端会话历史`,onClick:()=>re(!1)}),(0,G.jsxs)(`div`,{className:`chat-conversation`,children:[(0,G.jsxs)(`header`,{className:`chat-conversation-header`,children:[(0,G.jsx)(`button`,{className:`icon-button tertiary chat-session-mobile-trigger`,type:`button`,"aria-label":`打开云端会话历史`,title:`云端会话历史`,"aria-expanded":U,onClick:()=>re(!0),children:(0,G.jsx)(Ge,{size:17})}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h1`,{children:n}),(0,G.jsxs)(`span`,{children:[`云端 Agent · `,t]})]})]}),(0,G.jsxs)(`div`,{ref:ie,className:`chat-message-list`,role:`log`,"aria-live":`polite`,"aria-busy":I||R,onScroll:e=>{let t=e.currentTarget;ye.current=t.scrollHeight-t.scrollTop-t.clientHeight<64},children:[!c&&!P&&(0,G.jsxs)(`div`,{className:`chat-empty`,children:[(0,G.jsx)(`span`,{className:`chat-empty-icon`,children:(0,G.jsx)(N,{})}),(0,G.jsx)(`h2`,{children:`开始一段云端会话`})]}),(B||U5(a.find(e=>e.id===c)?.state||``)===`failed`)&&(0,G.jsxs)(`div`,{className:`cloud-chat-run-warning`,children:[(0,G.jsx)(at,{size:15}),(0,G.jsx)(`span`,{children:B||a.find(e=>e.id===c)?.error||`这次云端运行未完成;可新建会话后重试。若持续失败,请到可观测页面按会话查看记录。`}),B&&(0,G.jsx)(`button`,{className:`text-button`,type:`button`,"aria-label":`重试这条消息`,onClick:Pe,children:`重试`})]}),u.map(e=>(0,G.jsxs)(`article`,{className:`message ${e.role}${e.pending?` pending`:``}${e.streaming?` streaming`:``}`,children:[(0,G.jsx)(`div`,{className:`message-meta`,children:e.role===`user`?`你`:n}),(0,G.jsx)(t7,{message:e})]},e.id)),(0,G.jsx)(n7,{items:f,agentName:n,streaming:R}),(I||R)&&f.length===0&&(0,G.jsx)(`div`,{className:`cloud-chat-pending`,children:(0,G.jsx)(`span`,{className:`text-shimmer`,children:`正在等待云端响应…`})})]}),(0,G.jsxs)(`div`,{className:`chat-composer-wrap`,children:[m.length>0&&(0,G.jsxs)(`div`,{className:`chat-pending-interactions`,role:`region`,"aria-label":`待处理确认`,"data-ui":`interaction-tray`,children:[(0,G.jsxs)(`div`,{className:`chat-pending-interactions-heading`,children:[(0,G.jsx)(at,{size:16}),(0,G.jsx)(`strong`,{children:`等待你的确认`}),(0,G.jsx)(`span`,{children:`处理后将继续当前云端对话`})]}),m.map(e=>(0,G.jsxs)(`div`,{className:`cloud-interaction-card`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`strong`,{children:e.kind===`approval`?`工具操作需要批准`:e.title}),(0,G.jsx)(`span`,{children:e.title})]}),(0,G.jsxs)(`div`,{className:`cloud-interaction-actions`,children:[e.kind===`approval`&&(0,G.jsxs)(`button`,{className:`secondary-button`,type:`button`,disabled:!!te,onClick:()=>Le(e,`reject`),children:[(0,G.jsx)(bt,{size:15}),`拒绝`]}),(0,G.jsxs)(`button`,{className:`primary-button`,type:`button`,disabled:!!te,onClick:()=>Le(e,e.kind===`approval`?`approve`:`submit`),children:[(0,G.jsx)(ot,{size:15}),e.kind===`approval`?`允许执行`:`提交`]})]})]},e.id))]}),(0,G.jsx)(W8,{input:_,placeholder:D===`plan`?`描述需要云端 Agent 规划的任务…`:`发送到云端 Agent`,disabled:!r||I||R,active:r,attachments:y.map((e,t)=>({id:`${t}:${e.name}:${e.size}`,name:e.name,kind:e.type.startsWith(`image/`)?`image`:e.type.startsWith(`text/`)?`text`:`file`,size:e.size})),mode:D,approvalMode:T,models:x.map(e=>({id:e.id,label:e.label,reasoningEfforts:T5(e)})),model:C,reasoningEffort:k,commandIndex:j,canSend:!!(_.trim()||y.length),attachmentAccept:``,attachmentLimit:8,onInputChange:v,onFiles:e=>{let t=e.find(e=>e.size>10485760);t&&J(`附件过大`,`${t.name} 超过 10 MB 限制`,`error`),b(t=>{let n=e.filter(e=>e.size<=10485760);return t.length+n.length>8&&J(`附件过多`,`每轮最多上传 8 个附件`,`error`),[...t,...n].slice(0,8)})},onRemoveAttachment:e=>{let t=Number(e.split(`:`,1)[0]);b(e=>e.filter((e,n)=>n!==t))},onSetMode:Me,onStartGoal:()=>Ne(`goal`),onApprovalModeChange:e=>{E(e),localStorage.setItem(x8(t),e)},onModelChange:w,onReasoningEffortChange:A,onCommandSelect:Ne,onCommandIndexChange:M,onSend:()=>{je()}}),(0,G.jsx)(`p`,{className:`chat-composer-disclaimer`,children:`AI 生成内容可能不准确,请核对关键结论与工具操作。`})]})]})]})}function i7(e){return e<=1023?`compact`:e<=1439?`laptop`:e<=1919?`desktop`:`wide`}function a7(){let[e,t]=(0,s.useState)(()=>i7(window.innerWidth));return(0,s.useEffect)(()=>{let e=()=>t(i7(window.innerWidth));return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),e}var o7=`agentkit-studio-theme`,s7=`(prefers-color-scheme: dark)`;function c7(e){return e===`light`||e===`dark`||e===`system`?e:`light`}function l7(e,t){return e===`system`?t?`dark`:`light`:e}function u7(){try{return c7(window.localStorage.getItem(o7))}catch{return`light`}}function d7(){return typeof window<`u`&&window.matchMedia(`(prefers-color-scheme: dark)`).matches}function f7(e){let t=document.documentElement;t.classList.toggle(`dark`,e===`dark`),t.dataset.theme=e,t.style.colorScheme=e}function p7(){let e=u7();return f7(l7(e,d7())),e}function m7(){let[e,t]=(0,s.useState)(u7),[n,r]=(0,s.useState)(d7),i=l7(e,n);return(0,s.useEffect)(()=>{let e=window.matchMedia(s7),t=()=>r(e.matches);return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),(0,s.useLayoutEffect)(()=>{f7(i)},[i]),{preference:e,resolvedTheme:i,setPreference:(0,s.useCallback)(e=>{t(e);try{window.localStorage.setItem(o7,e)}catch{}},[])}}var h7=`agentkit.studio.rail-expanded`,g7=[{group:`创作`,items:[{id:`agents`,label:`Agent`,icon:N},{id:`conversations`,label:`会话`,icon:Le}]},{group:`资源`,items:[{id:`resources`,label:`工程资源`,icon:F},{id:`runtime-resources`,label:`运行资源`,icon:rt},{id:`plugins`,label:`插件`,icon:Ze,beta:!0}]},{group:`交付与运行`,items:[{id:`builds`,label:`构建`,icon:He},{id:`deployments`,label:`部署`,icon:de},{id:`automations`,label:`自动化`,icon:ue,beta:!0},{id:`orchestration`,label:`编排`,icon:vt,beta:!0},{id:`observability`,label:`可观测`,icon:B},{id:`evaluations`,label:`评测`,icon:le,beta:!0}]}];function _7(){try{let e=window.localStorage.getItem(h7);return e===null?null:e===`true`}catch{return null}}function v7(e){try{window.localStorage.setItem(h7,String(e))}catch{}}function y7(e,t,n){return t===e.id&&(e.id!==`resources`||e.kind==null||e.kind===n)||(t===`agent-detail`||t===`create`)&&e.id===`agents`}function b7({label:e,children:t}){return(0,G.jsxs)(Xv,{children:[(0,G.jsx)(Zv,{asChild:!0,children:t}),(0,G.jsx)(Qv,{children:(0,G.jsxs)($v,{className:`studio-tooltip`,side:`right`,sideOffset:8,children:[e,(0,G.jsx)(ey,{className:`studio-tooltip-arrow`})]})})]})}function x7({view:e,resourceKind:t,expanded:n,workspaceName:r,workspacePath:i,runtimeReady:a,onNavigate:o,extensionItems:s=[],activeExtensionPath:c=``,onNavigateExtension:l=()=>void 0,onOpenSettings:u}){return(0,G.jsx)(Yv,{delayDuration:320,skipDelayDuration:120,children:(0,G.jsxs)(`aside`,{className:`sidebar navigation-rail`,"data-state":n?`expanded`:`compact`,children:[(0,G.jsxs)(`div`,{className:`product`,children:[(0,G.jsx)(`span`,{className:`product-mark`,"aria-hidden":`true`,children:`K`}),(0,G.jsxs)(`span`,{className:`product-copy`,children:[(0,G.jsx)(`strong`,{children:`AgentKit`}),(0,G.jsx)(`span`,{children:`Studio`})]})]}),(0,G.jsx)(b7,{label:i,children:(0,G.jsxs)(`button`,{className:`workspace-switcher`,type:`button`,"aria-label":`${r} 工作区`,"aria-disabled":!a,children:[(0,G.jsx)(`span`,{className:`workspace-mark`,children:(0,G.jsx)(Ee,{size:16})}),(0,G.jsx)(`span`,{className:`workspace-copy`,children:(0,G.jsx)(`strong`,{children:r})})]})}),(0,G.jsxs)(`nav`,{className:`primary-nav`,"aria-label":`产品导航`,children:[g7.map(r=>(0,G.jsxs)(`div`,{className:`nav-group`,children:[(0,G.jsx)(`div`,{className:`nav-label`,children:r.group}),r.items.map(r=>{let i=r.icon,a=y7(r,e,t),s=(0,G.jsxs)(`button`,{className:`nav-item${a?` active`:``}`,type:`button`,"aria-label":r.label,"aria-current":a?`page`:void 0,onClick:()=>o(r.id,r.id===`resources`?r.kind||t:r.kind),children:[(0,G.jsx)(i,{size:18}),(0,G.jsx)(`span`,{children:r.label}),r.beta&&(0,G.jsx)(`span`,{className:`nav-beta-badge`,title:`Beta`,children:`Beta`})]},`${r.id}-${r.label}`);return n?s:(0,G.jsx)(b7,{label:r.label,children:s},`${r.id}-${r.label}`)})]},r.group)),s.length>0&&(0,G.jsxs)(`div`,{className:`nav-group`,"data-testid":`dsh-extension-navigation`,children:[(0,G.jsx)(`div`,{className:`nav-label`,children:`插件`}),s.map(t=>{let r=e===`extension`&&c===t.path,i=(0,G.jsxs)(`button`,{className:`nav-item${r?` active`:``}`,type:`button`,"aria-label":t.label,"aria-current":r?`page`:void 0,onClick:()=>l(t),children:[(0,G.jsx)($e,{size:18}),(0,G.jsx)(`span`,{children:t.label})]},t.id);return n?i:(0,G.jsx)(b7,{label:t.label,children:i},t.id)})]})]}),(0,G.jsxs)(`div`,{className:`sidebar-footer`,children:[(0,G.jsx)(b7,{label:`本地用户`,children:(0,G.jsx)(`span`,{className:`user-avatar`,"aria-label":`本地用户`,children:`A`})}),(0,G.jsx)(b7,{label:`设置`,children:(0,G.jsx)(`button`,{className:`icon-button tertiary`,type:`button`,"aria-label":`设置`,onClick:u,children:(0,G.jsx)(it,{size:16})})})]})]})})}function S7({currentAgentId:e,registry:t=qB.contributions,route:n}){let r=t.getEntries(Wz.workspaceTab).find(e=>e.id===n.workspaceTabId);if(!r)return(0,G.jsxs)(`section`,{className:`empty-state`,role:`status`,children:[(0,G.jsx)(`h2`,{children:`插件页面不可用`}),(0,G.jsx)(`p`,{children:`对应的 DSH workspace tab 已停用或卸载。`})]});let i=r.component;return(0,G.jsx)(i,{active:!0,currentAgentId:e,path:n.path})}var C7={agents:`Agent`,create:`创建 Agent`,"agent-detail":`Agent 配置`,conversations:`会话`,resources:`工程资源`,builds:`构建`,deployments:`部署`,observability:`可观测`,evaluations:`评测`,"runtime-resources":`运行资源`,plugins:`已安装插件`,automations:`自动化`,orchestration:`任务编排`,extension:`插件`},w7=Object.keys(C7),T7=[`model`,`tool`,`mcp`,`skill`],E7=new Set([`conversations`,`builds`,`observability`,`automations`,`orchestration`]),D7=`agentkit-studio:chat-target:v1`;function O7(){try{return j7(window.localStorage.getItem(D7)||``)}catch{return{kind:``,id:``}}}function k7(e){try{window.localStorage.setItem(D7,e)}catch{}}function A7(e){let t=e.replace(/^#\/?/,``).split(`/`).filter(Boolean),n=t[0]===`agents`&&t[1]&&t[2]===`edit`?decodeURIComponent(t[1]):``,r=t[0]===`agents`&&t[1]&&!t[2]?decodeURIComponent(t[1]):``,i=t[0]===`evaluations`&&t[1]?decodeURIComponent(t[1]):``,a=t[0],o=t[0]===`extensions`&&t[1]?`/extensions/${decodeURIComponent(t[1])}`:``,s=n?`create`:r?`agent-detail`:o?`extension`:w7.includes(a)?a:`agents`;return{view:s,resourceKind:s===`resources`&&T7.includes(t[1])?t[1]:`model`,editingAgentId:n,detailAgentId:r,evaluationRunId:i,extensionPath:o}}function j7(e){let t=e.indexOf(`:`);if(t<=0)return{kind:``,id:``};let n=e.slice(0,t);return n!==`cloud`&&n!==`local`?{kind:``,id:``}:{kind:n,id:e.slice(t+1)}}function M7(e,t,n){return e===`extension`&&!n.some(e=>e.path===t)}function N7(){let e=a7(),t=m7(),n=A7(window.location.hash),[r,i]=(0,s.useState)(n.view),[a,o]=(0,s.useState)(n.evaluationRunId),[c,l]=(0,s.useState)(n.extensionPath),[u,d]=(0,s.useState)(n.resourceKind),[f,p]=(0,s.useState)([]),[m,h]=(0,s.useState)(!1),[_,v]=(0,s.useState)(n.detailAgentId||n.editingAgentId||``),[y,b]=(0,s.useState)(``),[x,S]=(0,s.useState)(n.detailAgentId),[C,w]=(0,s.useState)(n.editingAgentId),[T,E]=(0,s.useState)(null),[D,O]=(0,s.useState)(!1),[k,A]=(0,s.useState)(!1),[j,M]=(0,s.useState)(!1),[P,F]=(0,s.useState)(`general`),[I,L]=(0,s.useState)(r===`conversations`),[R,z]=(0,s.useState)([]),[B,V]=(0,s.useState)(!1),[H,ee]=(0,s.useState)(()=>{let e=O7();return e.kind===`cloud`?e.id:``}),[te,ne]=(0,s.useState)(!1),[U,re]=(0,s.useState)(0),[ie,ae]=(0,s.useState)(_7),oe=Kz(qB.contributions,Wz.sidebarNavigation),se=Kz(qB.contributions,Wz.route);(0,s.useEffect)(()=>{UU.refresh().catch(e=>{console.warn(`DSH Profile client graph was not activated`,e)})},[]),(0,s.useEffect)(()=>(document.body.classList.toggle(`create-mode`,r===`create`),()=>document.body.classList.remove(`create-mode`)),[r]),(0,s.useEffect)(()=>{let e=()=>{let e=A7(window.location.hash);i(e.view),d(e.resourceKind),w(e.editingAgentId),S(e.detailAgentId),o(e.evaluationRunId),l(e.extensionPath),(e.editingAgentId||e.detailAgentId)&&v(e.editingAgentId||e.detailAgentId),e.view===`conversations`&&L(!0)};return window.addEventListener(`hashchange`,e),window.addEventListener(`popstate`,e),()=>{window.removeEventListener(`hashchange`,e),window.removeEventListener(`popstate`,e)}},[]);function ce(e){i(e),e===`conversations`&&L(!0),e!==`create`&&w(``),o(``),e!==`extension`&&l(``);let t=e===`resources`?`#/resources/${u}`:`#/${e}`;window.location.hash!==t&&window.history.pushState(null,``,t)}function le(e){i(`evaluations`),o(e),window.history.pushState(null,``,`#/evaluations/${encodeURIComponent(e)}`)}function ue(){o(``),window.history.pushState(null,``,`#/evaluations`)}let de=(0,s.useCallback)(async()=>{try{let e=(await g(`/api/v1/agents?limit=100`).then(e=>e.json())).items||[],t=await Promise.all(e.map(e=>g(`/api/v1/agents/${encodeURIComponent(e.metadata.id)}`).then(e=>e.ok?e.json():null).catch(()=>null))),n=e.map((e,n)=>({...e,builds:t[n]?.builds||[]}));p(n),v(e=>n.some(t=>t.metadata.id===e)?e:n[0]?.metadata.id||``)}catch{}finally{h(!0)}},[]);(0,s.useEffect)(()=>{de()},[de,U]);let W=(0,s.useCallback)(async()=>{try{let[e,t]=await Promise.all([g(`/api/v1/deployments`),g(`/api/v1/cloud-agents?size=100`)]);if(!e.ok)return;let n=await e.json(),r=t.ok?await t.json():{items:[]},i=n.items||[],a=r.items||[],o=[...new Set(i.flatMap(e=>e.agentId?.trim()?[e.agentId.trim()]:[]))],s=await Promise.all(o.map(e=>Promise.resolve().then(()=>g(`/api/v1/cloud-agents/${encodeURIComponent(e)}`)).then(async e=>e.ok?await e.json():null).catch(()=>null))),c=new Map(a.map(e=>[e.agentId,e]));for(let e of s)e?.agentId&&c.set(e.agentId,{...c.get(e.agentId),...e});let l=UV(i,[...c.values()]);z(l),ee(e=>l.some(t=>t.id===e&&BV(t).kind===`studio-session-events`)?e:``)}catch{}finally{V(!0)}},[]);(0,s.useEffect)(()=>{W()},[W,U]),(0,s.useEffect)(()=>{g(`/api/v1/system/bootstrap`).then(e=>e.json()).then(e=>{E(e.workspace||null),O(!!e.workspace)}).catch(()=>O(!1)).finally(()=>A(!0))},[U]);let fe=f.find(e=>e.metadata.id===_),pe=k?D?`ready`:`failed`:`pending`,me=k?D?`运行正常`:`连接失败`:`检查中`;function he(e){e&&(v(e),r===`automations`&&y&&b(e),r===`conversations`&&L(!0))}let ge=R.filter(e=>BV(e).kind===`studio-session-events`),_e=ge.find(e=>e.id===H),ve=r===`conversations`&&!!_e;(0,s.useEffect)(()=>{r!==`conversations`||!m||!B||(_e?k7(`cloud:${_e.id}`):fe&&k7(`local:${fe.metadata.id}`))},[m,B,fe,_e,r]),(0,s.useEffect)(()=>{if(r!==`conversations`||!I||!m||!B||_||fe||_e)return;let e=ge[0];e&&(ee(e.id),ne(!1))},[m,I,B,_,fe,_e,ge,r]);let ye=[...f.map(e=>({value:`local:${e.metadata.id}`,label:`本地 · ${e.metadata.name}`})),...ge.map(e=>({value:`cloud:${e.id}`,label:`云端 · ${e.agentName||e.agentId}`}))],be=_e?`cloud:${_e.id}`:_?`local:${_}`:``;function xe(e){let{kind:t,id:n}=j7(e);if(t===`cloud`&&n){if(!ge.some(e=>e.id===n))return;ee(n),ne(!1),L(!0);return}t===`local`&&n&&(ee(``),he(n))}function Se(e){let t=fe||f[0],n=_e||ge[0];e?(ee(``),v(e)):!e&&_e?v(``):t?(ee(``),v(t.metadata.id)):n?(v(``),ee(n.id),ne(!1)):(v(``),ee(``)),L(!0),ce(`conversations`)}function Ce(e){BV(e).kind===`studio-session-events`&&(z(t=>t.some(t=>t.id===e.id)?t:[...t,e]),ee(e.id),ne(!1),L(!0),ce(`conversations`))}function we(e){w(``),S(e),v(e),i(`agent-detail`);let t=`#/agents/${encodeURIComponent(e)}`;window.location.hash!==t&&window.history.pushState(null,``,t)}function Te(){w(``),ce(`create`)}function Ee(e){w(e),v(e),i(`create`);let t=`#/agents/${encodeURIComponent(e)}/edit`;window.location.hash!==t&&window.history.pushState(null,``,t)}function De(e){d(e),i(`resources`);let t=`#/resources/${e}`;window.location.hash!==t&&window.history.pushState(null,``,t)}let Oe=r===`create`||r===`agent-detail`?`Agent`:null,ke=r===`create`&&C?`编辑 Agent`:C7[r],Ae=T?.name||`Workspace`,je=T?.path||(D?`本地工作区`:`正在连接本地工作区`),Me=r===`create`||r===`conversations`||r===`observability`,Ne=e!==`compact`,Pe=Ne&&(ie??!0);function Fe(){if(!Ne)return;let e=!Pe;ae(e),v7(e)}function Ie(e,t){e===`conversations`?Se():e===`resources`?De(t||`model`):(e===`automations`&&b(``),ce(e))}function Le(e){if(!se.find(t=>t.path===e))return;i(`extension`),l(e),o(``);let t=`#/extensions/${encodeURIComponent(e.replace(/^\/extensions\//,``))}`;window.location.hash!==t&&window.history.pushState(null,``,t)}let Re=se.find(e=>e.path===c);return(0,s.useEffect)(()=>{M7(r,c,se)&&(l(``),i(`agents`),window.history.replaceState(null,``,`#/agents`))},[c,se,r]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`a`,{className:`skip-link`,href:`#mainContent`,children:`跳到主要内容`}),(0,G.jsxs)(`div`,{className:`app-shell`,"data-view":r,"data-viewport":e,"data-focused":Me,"data-rail":Pe?`expanded`:`compact`,children:[(0,G.jsx)(x7,{view:r,resourceKind:u,expanded:Pe,workspaceName:Ae,workspacePath:je,runtimeReady:D,onNavigate:Ie,extensionItems:oe,activeExtensionPath:c,onNavigateExtension:e=>Le(e.path),onOpenSettings:()=>{F(`general`),M(!0)}}),(0,G.jsxs)(`div`,{className:`app-main`,children:[(0,G.jsxs)(`header`,{className:`global-header${Oe?` nested`:``}`,"aria-label":`当前页面`,children:[Ne&&(0,G.jsx)(`button`,{className:`icon-button tertiary rail-toggle`,type:`button`,"aria-label":Pe?`收起导航`:`展开导航`,title:Pe?`收起导航`:`展开导航`,onClick:Fe,children:Pe?(0,G.jsx)(We,{size:16}):(0,G.jsx)(Ge,{size:16})}),Oe&&(0,G.jsxs)(`div`,{className:`header-identity-inline`,"aria-label":`当前位置`,children:[(0,G.jsx)(`button`,{className:`crumb`,type:`button`,onClick:()=>ce(`agents`),children:Oe}),(0,G.jsx)(`span`,{className:`crumb-sep`,children:`/`}),r===`agent-detail`&&fe&&(0,G.jsx)(Ct,{name:fe.metadata.name,appearance:fe.metadata.appearance,template:fe.metadata.labels?.[`agentkit.ksyun.com/template`],size:`sm`}),(0,G.jsx)(`h1`,{children:r===`agent-detail`&&fe?fe.metadata.name:ke}),r===`agent-detail`&&fe&&(0,G.jsxs)(`span`,{className:`mono`,children:[fe.metadata.id,` · r`,fe.metadata.revision||1]})]}),!Oe&&(0,G.jsxs)(`div`,{className:`header-identity`,children:[(0,G.jsxs)(`span`,{children:[`工作区 · `,Ae]}),r===`conversations`?(0,G.jsx)(`strong`,{children:ke}):(0,G.jsx)(`h1`,{children:ke})]}),(0,G.jsxs)(`div`,{className:`header-actions`,children:[(0,G.jsx)(`div`,{id:`pageHeaderTools`,className:`page-header-tools`,"data-testid":`page-header-tools`}),r===`conversations`?(0,G.jsx)(Fh,{className:`header-agent-selector conversation-target-selector`,ariaLabel:`切换会话目标`,value:be,placeholder:`选择会话目标`,options:ye,onValueChange:xe}):E7.has(r)&&(0,G.jsx)(Fh,{className:`header-agent-selector`,ariaLabel:`切换当前 Agent`,value:_,placeholder:`未选择`,options:f.map(e=>({value:e.metadata.id,label:e.metadata.name})),onValueChange:he}),r!==`conversations`&&(0,G.jsx)(`span`,{className:`tag`,children:ve?`云端部署`:`本地`}),(0,G.jsx)(`span`,{className:`badge`,"data-state":pe,children:me}),(0,G.jsx)(`button`,{className:`icon-button tertiary global-refresh-button`,type:`button`,"aria-label":`刷新`,title:`刷新`,onClick:()=>re(e=>e+1),children:(0,G.jsx)(et,{size:16})}),r===`conversations`&&I&&_&&!ve&&(0,G.jsx)(`button`,{className:`icon-button tertiary conversation-run-detail`,type:`button`,"aria-label":`运行详情`,title:`运行详情`,onClick:()=>ne(e=>!e),children:(0,G.jsx)(Ke,{size:16})}),(0,G.jsx)(`div`,{id:`pageHeaderActions`,className:`page-header-page-actions`,"data-testid":`page-header-actions`})]})]}),(0,G.jsxs)(`main`,{id:`mainContent`,children:[(0,G.jsxs)(`div`,{className:`chat-wrap`,"data-layout":`workbench`,style:{display:r===`conversations`?`flex`:`none`},children:[(0,G.jsxs)(`div`,{className:`chat-host`,children:[I&&ve&&_e&&(0,G.jsx)(r7,{deploymentId:_e.id,agentId:_e.agentId||`Agent`,agentName:_e.agentName||_e.agentId||`云端 Agent`,active:r===`conversations`,refreshTick:U},_e.id),I&&!ve&&_&&(0,G.jsx)(x5,{agentId:_,agentName:fe?.metadata.name||`Agent`,agentAppearance:fe?.metadata.appearance,active:r===`conversations`,refreshTick:U,onConfigureAgent:()=>Ee(_),onOpenSettings:()=>{F(`credentials`),M(!0)}},_),I&&!ve&&!_&&(0,G.jsxs)(`div`,{className:`empty-state chat-agent-empty`,role:`status`,children:[(0,G.jsx)(`span`,{className:`empty-icon`,children:(0,G.jsx)(N,{})}),(0,G.jsx)(`h2`,{children:m&&B?`还没有可用的会话目标`:`正在载入会话目标`}),(0,G.jsx)(`p`,{children:m&&B?`可以创建本地 Agent,或在云端 Agent 页面选择受支持的 Agent。`:`正在同步本地工作区与账号云端 Agent…`}),m&&B&&(0,G.jsxs)(`div`,{className:`empty-actions`,children:[(0,G.jsx)(`button`,{className:`primary-button`,type:`button`,onClick:Te,children:`创建本地 Agent`}),(0,G.jsx)(`button`,{className:`button secondary`,type:`button`,onClick:()=>ce(`deployments`),children:`查看云端 Agent`})]})]})]}),te&&I&&_&&!ve&&(0,G.jsx)(v8,{agentId:_,onClose:()=>ne(!1),onOpenTrace:()=>ce(`observability`)})]}),(0,G.jsxs)(`div`,{style:{display:r===`conversations`?`none`:void 0},children:[r===`agents`&&(0,G.jsx)(Lh,{agents:f,runtimeReady:D,runtimeChecked:k,workspaceName:T?.name||``,onCreate:Te,onDetail:we,onChat:Se,onBuild:()=>ce(`builds`),onChanged:de}),r===`create`&&(0,G.jsx)(lV,{editingAgentId:C||void 0,viewportMode:e,onAgentsChanged:de,onBack:()=>C?we(C):ce(`agents`),onCreated:(e,t)=>{w(``),de(),e&&t?Se(e):e?we(e):ce(`agents`)}}),r===`agent-detail`&&x&&(0,G.jsx)(AV,{agentId:x,onBack:()=>ce(`agents`),onChat:Se,onBuild:()=>ce(`builds`),onEdit:Ee,onChanged:de}),r===`resources`&&(0,G.jsx)(wz,{kind:u,onKindChange:De,refreshTick:U}),r===`builds`&&(0,G.jsx)(LV,{currentAgentId:_,agents:f,onSelectAgent:v,onCreate:Te}),r===`deployments`&&(0,G.jsx)(bH,{onCreate:Te,onOpenChat:Ce,onSelectBuild:()=>ce(`builds`)}),r===`observability`&&(0,G.jsx)(MU,{refreshTick:U}),r===`evaluations`&&!a&&(0,G.jsx)(Y2,{refreshTick:U,onOpenRun:le}),r===`evaluations`&&a&&(0,G.jsx)(Q2,{runId:a,onBack:ue}),r===`runtime-resources`&&(0,G.jsx)(BU,{refreshTick:U,onOpenResources:De}),r===`plugins`&&(0,G.jsx)(iW,{}),r===`automations`&&(0,G.jsx)(wV,{currentAgentId:_,agents:f,onSelectAgent:v,scopedAgentId:y}),r===`orchestration`&&(0,G.jsx)(z2,{currentAgentId:_,agents:f,onSelectAgent:v,onCreate:Te}),r===`extension`&&Re&&(0,G.jsx)(S7,{currentAgentId:_,route:Re})]})]})]}),j&&(0,G.jsx)(r4,{themePreference:t.preference,onThemePreferenceChange:t.setPreference,initialSection:P,onClose:()=>M(!1)}),(0,G.jsx)(P_,{})]})]})}async function P7(){p7();try{await _()}catch{}(0,c.createRoot)(document.getElementById(`root`)).render((0,G.jsx)(s.StrictMode,{children:(0,G.jsx)(N7,{})}))}P7();
|